DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_00200_AAD_S_000006_PKG

Source


1 PACKAGE BODY XLA_00200_AAD_S_000006_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_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:02 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 --=============================================================================
73 C_LEVEL_STATEMENT     CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
70 --               *********** Local Trace Routine **********
71 --=============================================================================
72 
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_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_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 
194           ,p_level    => C_LEVEL_PROCEDURE
191 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
192         trace
193           (p_msg      => 'END of ValidateLookupMeaning'
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_PKG.ValidateLookupMeaning');
204        --
205 END ValidateLookupMeaning;
206 --
207 --
208 
209 FUNCTION GetMeaning (
210   p_flex_value_set_id               IN INTEGER
211 , p_flex_value                      IN VARCHAR2
212 , p_source_code                     IN VARCHAR2
213 , p_source_type_code                IN VARCHAR2
214 , p_source_application_id           IN INTEGER
215 )
216 RETURN VARCHAR2
217 IS
218 BEGIN
219 --
220 RETURN NULL ;
221 --
222 EXCEPTION
223   WHEN xla_exceptions_pkg.application_exception THEN
224       RAISE;
225   WHEN OTHERS THEN
226        xla_exceptions_pkg.raise_message
227            (p_location => 'XLA_00200_AAD_S_000006_PKG.GetMeaning');
228 END GetMeaning;
229 --
230 
231 ---------------------------------------
232 --
233 -- PRIVATE FUNCTION
234 --         Description_1
235 --
236 ---------------------------------------
237 FUNCTION Description_1 (
238   p_application_id      IN NUMBER
239 , p_ae_header_id        IN NUMBER DEFAULT NULL 
240 )
241 RETURN VARCHAR2
242 IS
243 l_component_type        VARCHAR2(80)   ;
244 l_component_code        VARCHAR2(30)   ;
245 l_component_type_code   VARCHAR2(1)    ;
246 l_component_appl_id     INTEGER        ;
247 l_amb_context_code      VARCHAR2(30)   ;
248 l_ledger_language       VARCHAR2(30)   ;
249 l_source                VARCHAR2(1996) ;
250 l_description           VARCHAR2(2000) ;
251 l_log_module            VARCHAR2(240)  ;
252 BEGIN
253 IF g_log_enabled THEN
254       l_log_module := C_DEFAULT_MODULE||'.Description_1';
255 END IF;
256 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
257       trace
258          (p_msg      => 'BEGIN of Description_1'
259          ,p_level    => C_LEVEL_PROCEDURE
260          ,p_module   => l_log_module);
261 END IF;
262 
263 l_ledger_language       := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
264 l_component_type        := 'AMB_DESCRIPTION';
265 l_component_code        := 'JE_INVOICE_DESCRIPTION';
266 l_component_type_code   := 'S';
267 l_component_appl_id     :=  200;
268 l_amb_context_code      := 'DEFAULT';
269 l_source                := NULL;
270 l_description           := NULL;
271 
272 
273 l_description := null;
274  l_description := SUBSTR(l_description,1,1996);
275   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
276         trace
277            (p_msg      => 'END of Description_1'
278            ,p_level    => C_LEVEL_PROCEDURE
279            ,p_module   => l_log_module);
280 
281   END IF;
282   RETURN l_description;
283 
284 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
285       trace
286          (p_msg      => 'END of Description_1'
287          ,p_level    => C_LEVEL_PROCEDURE
288          ,p_module   => l_log_module);
289 END IF;
290 RETURN NULL;
291 EXCEPTION
292   WHEN VALUE_ERROR THEN
293      IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
294             trace
295                (p_msg      => 'ERROR: '||sqlerrm
296                ,p_level    => C_LEVEL_EXCEPTION
297                ,p_module   => l_log_module);
298      END IF;
299      RAISE;
300  WHEN xla_exceptions_pkg.application_exception THEN
301       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
302       trace
303          (p_msg      => 'ERROR: '||sqlerrm
304          ,p_level    => C_LEVEL_EXCEPTION
305          ,p_module   => l_log_module);
306       END IF;
307       RAISE;
308  WHEN OTHERS THEN
309        xla_exceptions_pkg.raise_message
310            (p_location => 'XLA_00200_AAD_S_000006_PKG.Description_1');
311 END Description_1;
312 
313 ---------------------------------------
314 --
315 -- PRIVATE FUNCTION
316 --         Description_2
317 --
318 ---------------------------------------
319 FUNCTION Description_2 (
320   p_application_id      IN NUMBER
321 , p_ae_header_id        IN NUMBER DEFAULT NULL 
322 --Invoice Distribution Description
323  , p_source_1            IN VARCHAR2
324 )
325 RETURN VARCHAR2
326 IS
327 l_component_type        VARCHAR2(80)   ;
328 l_component_code        VARCHAR2(30)   ;
329 l_component_type_code   VARCHAR2(1)    ;
330 l_component_appl_id     INTEGER        ;
331 l_amb_context_code      VARCHAR2(30)   ;
332 l_ledger_language       VARCHAR2(30)   ;
333 l_source                VARCHAR2(1996) ;
334 l_description           VARCHAR2(2000) ;
335 l_log_module            VARCHAR2(240)  ;
336 BEGIN
337 IF g_log_enabled THEN
338       l_log_module := C_DEFAULT_MODULE||'.Description_2';
339 END IF;
340 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
341       trace
342          (p_msg      => 'BEGIN of Description_2'
343          ,p_level    => C_LEVEL_PROCEDURE
344          ,p_module   => l_log_module);
345 END IF;
346 
347 l_ledger_language       := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
348 l_component_type        := 'AMB_DESCRIPTION';
349 l_component_code        := 'JE_INV_DIST_DESCRIPTION';
353 l_source                := NULL;
350 l_component_type_code   := 'S';
351 l_component_appl_id     :=  200;
352 l_amb_context_code      := 'DEFAULT';
354 l_description           := NULL;
355 
356 
357   
358   l_source := SUBSTR(p_source_1,1,1996);
359   IF l_source IS NOT NULL THEN
360     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
361     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
362   END IF; 
363  l_description := SUBSTR(l_description,1,1996);
364   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
365         trace
366            (p_msg      => 'END of Description_2'
367            ,p_level    => C_LEVEL_PROCEDURE
368            ,p_module   => l_log_module);
369 
370   END IF;
371   RETURN l_description;
372 
373 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
374       trace
375          (p_msg      => 'END of Description_2'
376          ,p_level    => C_LEVEL_PROCEDURE
377          ,p_module   => l_log_module);
378 END IF;
379 RETURN NULL;
380 EXCEPTION
381   WHEN VALUE_ERROR THEN
382      IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
383             trace
384                (p_msg      => 'ERROR: '||sqlerrm
385                ,p_level    => C_LEVEL_EXCEPTION
386                ,p_module   => l_log_module);
387      END IF;
388      RAISE;
389  WHEN xla_exceptions_pkg.application_exception THEN
390       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
391       trace
392          (p_msg      => 'ERROR: '||sqlerrm
393          ,p_level    => C_LEVEL_EXCEPTION
394          ,p_module   => l_log_module);
395       END IF;
396       RAISE;
397  WHEN OTHERS THEN
398        xla_exceptions_pkg.raise_message
399            (p_location => 'XLA_00200_AAD_S_000006_PKG.Description_2');
400 END Description_2;
401 
402 ---------------------------------------
403 --
404 -- PRIVATE FUNCTION
405 --         AcctDerRule_3
406 --
407 ---------------------------------------
408 FUNCTION AcctDerRule_3 (
409   p_application_id             IN NUMBER
410 , p_ae_header_id               IN NUMBER
411 , p_side                       IN VARCHAR2
412 , p_override_seg_flag          IN VARCHAR2 
413 --Bank Charges Account
414  , p_source_2            IN NUMBER
415 --Automatic Offsets Value
416  , p_source_3            IN VARCHAR2
417  , p_source_3_meaning    IN VARCHAR2
418 , x_transaction_coa_id         OUT NOCOPY NUMBER
419 , x_accounting_coa_id          OUT NOCOPY NUMBER
420 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
421 , x_flex_value_set_id          OUT NOCOPY NUMBER
422 , x_value_type_code            OUT NOCOPY VARCHAR2
423 , x_value_combination_id       OUT NOCOPY NUMBER
424 , x_value_segment_code         OUT NOCOPY VARCHAR2
425 )
426 RETURN VARCHAR2
427 IS
428 l_component_type       VARCHAR2(80)  ;
429 l_component_code       VARCHAR2(30)  ;
430 l_component_type_code  VARCHAR2(1)   ;
431 l_component_appl_id    INTEGER       ;
432 l_amb_context_code     VARCHAR2(30)  ;
433 l_log_module           VARCHAR2(240) ;
434 l_output_value         VARCHAR2(30)  ;
435 BEGIN
436 IF g_log_enabled THEN
437       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_3';
438 END IF;
439 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
440 
441       trace
442          (p_msg      => 'BEGIN of AcctDerRule_3'
443          ,p_level    => C_LEVEL_PROCEDURE
444          ,p_module   => l_log_module);
445 
446 END IF;
447 
448 l_component_type         := 'AMB_ADR';
449 l_component_code         := 'AP_BANK_CHARGES_NAT_ACCT_SEG';
450 l_component_type_code    := 'S';
451 l_component_appl_id      :=  200;
452 l_amb_context_code       := 'DEFAULT';
453 x_transaction_coa_id     :=  null;
454 x_accounting_coa_id      :=  null;
455 x_flexfield_segment_code := 'GL_ACCOUNT';
456 x_flex_value_set_id      :=  null ;
457 
458 
459  IF NVL(p_source_3,'
460 ') =  'ACCOUNT_SEGMENT_VALUE'
461  THEN 
462 --
463   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
464 
465       trace
466          (p_msg      => 'END of AcctDerRule_3'
467          ,p_level    => C_LEVEL_PROCEDURE
468          ,p_module   => l_log_module);
469 
470   END IF;
471   x_value_combination_id  := TO_NUMBER(p_source_2) ;
472   x_value_segment_code    := 'GL_ACCOUNT' ;
473   x_value_type_code       := 'S';
474   l_output_value          :=  null;
475   RETURN l_output_value;
476 
477  ELSE 
478     IF p_override_seg_flag = 'Y' THEN 
479        RETURN '#$NO_OVERRIDE#$';
480     END IF;
481  END IF;
482 
483 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
484 
485       trace
486          (p_msg      => 'END of AcctDerRule_3(invalid)'
487          ,p_level    => C_LEVEL_PROCEDURE
488          ,p_module   => l_log_module);
489 
490 END IF;
491 
492 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
493 x_value_combination_id  := null;
494 x_value_segment_code    := null;
495 x_value_type_code       := null;
496 l_output_value          := null;
497 xla_accounting_err_pkg.build_message
498                  (p_appli_s_name            => 'XLA'
499                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
500                  ,p_token_1                 => 'COMPONENT_NAME'
501                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
502                                                             l_component_type
503                                                           , l_component_code
507                                                           )
504                                                           , l_component_type_code
505                                                           , l_component_appl_id
506                                                           , l_amb_context_code
508                  ,p_token_2                 => 'OWNER'
509                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
510                                                         'XLA_OWNER_TYPE'
511                                                         ,l_component_type_code
512                                                         )
513                  ,p_token_3                 => 'PAD_NAME'
514                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
515                  ,p_token_4                 => 'PAD_OWNER'
516                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
517                                                         'XLA_OWNER_TYPE'
518                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
519                                                         )
520                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
521                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
522                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
523                  ,p_ae_header_id            => NULL
524 );
525 RETURN l_output_value;
526 EXCEPTION
527   WHEN xla_exceptions_pkg.application_exception THEN
528       RAISE;
529   WHEN OTHERS THEN
530        xla_exceptions_pkg.raise_message
531            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_3');
532 END AcctDerRule_3;
533 --
534 
535 ---------------------------------------
536 --
537 -- PRIVATE FUNCTION
538 --         AcctDerRule_4
539 --
540 ---------------------------------------
541 FUNCTION AcctDerRule_4 (
542   p_application_id             IN NUMBER
543 , p_ae_header_id               IN NUMBER
544 , p_side                       IN VARCHAR2
545 , p_override_seg_flag          IN VARCHAR2 
546 --Automatic Offsets Value
547  , p_source_3            IN VARCHAR2
548  , p_source_3_meaning    IN VARCHAR2
549 --Bank Errors Account
550  , p_source_4            IN NUMBER
551 , x_transaction_coa_id         OUT NOCOPY NUMBER
552 , x_accounting_coa_id          OUT NOCOPY NUMBER
553 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
554 , x_flex_value_set_id          OUT NOCOPY NUMBER
555 , x_value_type_code            OUT NOCOPY VARCHAR2
556 , x_value_combination_id       OUT NOCOPY NUMBER
557 , x_value_segment_code         OUT NOCOPY VARCHAR2
558 )
559 RETURN VARCHAR2
560 IS
561 l_component_type       VARCHAR2(80)  ;
562 l_component_code       VARCHAR2(30)  ;
563 l_component_type_code  VARCHAR2(1)   ;
564 l_component_appl_id    INTEGER       ;
565 l_amb_context_code     VARCHAR2(30)  ;
566 l_log_module           VARCHAR2(240) ;
567 l_output_value         VARCHAR2(30)  ;
568 BEGIN
569 IF g_log_enabled THEN
570       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_4';
571 END IF;
572 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
573 
574       trace
575          (p_msg      => 'BEGIN of AcctDerRule_4'
576          ,p_level    => C_LEVEL_PROCEDURE
577          ,p_module   => l_log_module);
578 
579 END IF;
580 
581 l_component_type         := 'AMB_ADR';
582 l_component_code         := 'AP_BANK_ERRORS_NAT_ACCT_SEG';
583 l_component_type_code    := 'S';
584 l_component_appl_id      :=  200;
585 l_amb_context_code       := 'DEFAULT';
586 x_transaction_coa_id     :=  null;
587 x_accounting_coa_id      :=  null;
588 x_flexfield_segment_code := 'GL_ACCOUNT';
589 x_flex_value_set_id      :=  null ;
590 
591 
592  IF NVL(p_source_3,'
593 ') =  'ACCOUNT_SEGMENT_VALUE'
594  THEN 
595 --
596   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
597 
598       trace
599          (p_msg      => 'END of AcctDerRule_4'
600          ,p_level    => C_LEVEL_PROCEDURE
601          ,p_module   => l_log_module);
602 
603   END IF;
604   x_value_combination_id  := TO_NUMBER(p_source_4) ;
605   x_value_segment_code    := 'GL_ACCOUNT' ;
606   x_value_type_code       := 'S';
607   l_output_value          :=  null;
608   RETURN l_output_value;
609 
610  ELSE 
611     IF p_override_seg_flag = 'Y' THEN 
612        RETURN '#$NO_OVERRIDE#$';
613     END IF;
614  END IF;
615 
616 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
617 
618       trace
619          (p_msg      => 'END of AcctDerRule_4(invalid)'
620          ,p_level    => C_LEVEL_PROCEDURE
621          ,p_module   => l_log_module);
622 
623 END IF;
624 
625 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
626 x_value_combination_id  := null;
627 x_value_segment_code    := null;
628 x_value_type_code       := null;
629 l_output_value          := null;
630 xla_accounting_err_pkg.build_message
631                  (p_appli_s_name            => 'XLA'
632                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
633                  ,p_token_1                 => 'COMPONENT_NAME'
634                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
635                                                             l_component_type
639                                                           , l_amb_context_code
636                                                           , l_component_code
637                                                           , l_component_type_code
638                                                           , l_component_appl_id
640                                                           )
641                  ,p_token_2                 => 'OWNER'
642                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
643                                                         'XLA_OWNER_TYPE'
644                                                         ,l_component_type_code
645                                                         )
646                  ,p_token_3                 => 'PAD_NAME'
647                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
648                  ,p_token_4                 => 'PAD_OWNER'
649                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
650                                                         'XLA_OWNER_TYPE'
651                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
652                                                         )
653                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
654                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
655                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
656                  ,p_ae_header_id            => NULL
657 );
658 RETURN l_output_value;
659 EXCEPTION
660   WHEN xla_exceptions_pkg.application_exception THEN
661       RAISE;
662   WHEN OTHERS THEN
663        xla_exceptions_pkg.raise_message
664            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_4');
665 END AcctDerRule_4;
666 --
667 
668 ---------------------------------------
669 --
670 -- PRIVATE FUNCTION
671 --         AcctDerRule_5
672 --
673 ---------------------------------------
674 FUNCTION AcctDerRule_5 (
675   p_application_id             IN NUMBER
676 , p_ae_header_id               IN NUMBER
677 , p_side                       IN VARCHAR2
678 , p_override_seg_flag          IN VARCHAR2 
679 --Bank Cash Account
680  , p_source_5            IN NUMBER
681 , x_transaction_coa_id         OUT NOCOPY NUMBER
682 , x_accounting_coa_id          OUT NOCOPY NUMBER
683 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
684 , x_flex_value_set_id          OUT NOCOPY NUMBER
685 , x_value_type_code            OUT NOCOPY VARCHAR2
686 , x_value_combination_id       OUT NOCOPY NUMBER
687 , x_value_segment_code         OUT NOCOPY VARCHAR2
688 )
689 RETURN VARCHAR2
690 IS
691 l_component_type       VARCHAR2(80)  ;
692 l_component_code       VARCHAR2(30)  ;
693 l_component_type_code  VARCHAR2(1)   ;
694 l_component_appl_id    INTEGER       ;
695 l_amb_context_code     VARCHAR2(30)  ;
696 l_log_module           VARCHAR2(240) ;
697 l_output_value         VARCHAR2(30)  ;
698 BEGIN
699 IF g_log_enabled THEN
700       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_5';
701 END IF;
702 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
703 
704       trace
705          (p_msg      => 'BEGIN of AcctDerRule_5'
706          ,p_level    => C_LEVEL_PROCEDURE
707          ,p_module   => l_log_module);
708 
709 END IF;
710 
711 l_component_type         := 'AMB_ADR';
712 l_component_code         := 'AP_CASH_NATURAL_ACCT_SEG';
713 l_component_type_code    := 'S';
714 l_component_appl_id      :=  200;
715 l_amb_context_code       := 'DEFAULT';
716 x_transaction_coa_id     :=  null;
717 x_accounting_coa_id      :=  null;
718 x_flexfield_segment_code := 'GL_ACCOUNT';
719 x_flex_value_set_id      :=  null ;
720 
721 
722 --
723   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
724 
725       trace
726          (p_msg      => 'END of AcctDerRule_5'
727          ,p_level    => C_LEVEL_PROCEDURE
728          ,p_module   => l_log_module);
729 
730   END IF;
731   x_value_combination_id  := TO_NUMBER(p_source_5) ;
732   x_value_segment_code    := 'GL_ACCOUNT' ;
733   x_value_type_code       := 'S';
734   l_output_value          :=  null;
735   RETURN l_output_value;
736 
737 
738 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
739 
740       trace
741          (p_msg      => 'END of AcctDerRule_5(invalid)'
742          ,p_level    => C_LEVEL_PROCEDURE
743          ,p_module   => l_log_module);
744 
745 END IF;
746 
747 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
748 x_value_combination_id  := null;
749 x_value_segment_code    := null;
750 x_value_type_code       := null;
751 l_output_value          := null;
752 xla_accounting_err_pkg.build_message
753                  (p_appli_s_name            => 'XLA'
754                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
755                  ,p_token_1                 => 'COMPONENT_NAME'
756                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
757                                                             l_component_type
758                                                           , l_component_code
759                                                           , l_component_type_code
760                                                           , l_component_appl_id
761                                                           , l_amb_context_code
762                                                           )
763                  ,p_token_2                 => 'OWNER'
767                                                         )
764                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
765                                                         'XLA_OWNER_TYPE'
766                                                         ,l_component_type_code
768                  ,p_token_3                 => 'PAD_NAME'
769                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
770                  ,p_token_4                 => 'PAD_OWNER'
771                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
772                                                         'XLA_OWNER_TYPE'
773                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
774                                                         )
775                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
776                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
777                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
778                  ,p_ae_header_id            => NULL
779 );
780 RETURN l_output_value;
781 EXCEPTION
782   WHEN xla_exceptions_pkg.application_exception THEN
783       RAISE;
784   WHEN OTHERS THEN
785        xla_exceptions_pkg.raise_message
786            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_5');
787 END AcctDerRule_5;
788 --
789 
790 ---------------------------------------
791 --
792 -- PRIVATE FUNCTION
793 --         AcctDerRule_6
794 --
795 ---------------------------------------
796 FUNCTION AcctDerRule_6 (
797   p_application_id             IN NUMBER
798 , p_ae_header_id               IN NUMBER
799 , p_side                       IN VARCHAR2
800 , p_override_seg_flag          IN VARCHAR2 
801 --Automatic Offsets Value
802  , p_source_3            IN VARCHAR2
803  , p_source_3_meaning    IN VARCHAR2
804 --System Discount Account
805  , p_source_6            IN NUMBER
806 --Discount Distribution Method
807  , p_source_7            IN VARCHAR2
808  , p_source_7_meaning    IN VARCHAR2
809 , x_transaction_coa_id         OUT NOCOPY NUMBER
810 , x_accounting_coa_id          OUT NOCOPY NUMBER
811 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
812 , x_flex_value_set_id          OUT NOCOPY NUMBER
813 , x_value_type_code            OUT NOCOPY VARCHAR2
814 , x_value_combination_id       OUT NOCOPY NUMBER
815 , x_value_segment_code         OUT NOCOPY VARCHAR2
816 )
817 RETURN VARCHAR2
818 IS
819 l_component_type       VARCHAR2(80)  ;
820 l_component_code       VARCHAR2(30)  ;
821 l_component_type_code  VARCHAR2(1)   ;
822 l_component_appl_id    INTEGER       ;
823 l_amb_context_code     VARCHAR2(30)  ;
824 l_log_module           VARCHAR2(240) ;
825 l_output_value         VARCHAR2(30)  ;
826 BEGIN
827 IF g_log_enabled THEN
828       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_6';
829 END IF;
830 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
831 
832       trace
833          (p_msg      => 'BEGIN of AcctDerRule_6'
834          ,p_level    => C_LEVEL_PROCEDURE
835          ,p_module   => l_log_module);
836 
837 END IF;
838 
839 l_component_type         := 'AMB_ADR';
840 l_component_code         := 'AP_DISCOUNT_NAT_ACCT_SEG';
841 l_component_type_code    := 'S';
842 l_component_appl_id      :=  200;
843 l_amb_context_code       := 'DEFAULT';
844 x_transaction_coa_id     :=  null;
845 x_accounting_coa_id      :=  null;
846 x_flexfield_segment_code := 'GL_ACCOUNT';
847 x_flex_value_set_id      :=  null ;
848 
849 
850  IF NVL(p_source_7,'
851 ') =  'SYSTEM' AND 
852 NVL(p_source_3,'
853 ') =  'ACCOUNT_SEGMENT_VALUE'
854  THEN 
855 --
856   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
857 
858       trace
859          (p_msg      => 'END of AcctDerRule_6'
860          ,p_level    => C_LEVEL_PROCEDURE
861          ,p_module   => l_log_module);
862 
863   END IF;
864   x_value_combination_id  := TO_NUMBER(p_source_6) ;
865   x_value_segment_code    := 'GL_ACCOUNT' ;
866   x_value_type_code       := 'S';
867   l_output_value          :=  null;
868   RETURN l_output_value;
869 
870  ELSE 
871     IF p_override_seg_flag = 'Y' THEN 
872        RETURN '#$NO_OVERRIDE#$';
873     END IF;
874  END IF;
875 
876 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
877 
878       trace
879          (p_msg      => 'END of AcctDerRule_6(invalid)'
880          ,p_level    => C_LEVEL_PROCEDURE
881          ,p_module   => l_log_module);
882 
883 END IF;
884 
885 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
886 x_value_combination_id  := null;
887 x_value_segment_code    := null;
888 x_value_type_code       := null;
889 l_output_value          := null;
890 xla_accounting_err_pkg.build_message
891                  (p_appli_s_name            => 'XLA'
892                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
893                  ,p_token_1                 => 'COMPONENT_NAME'
894                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
895                                                             l_component_type
896                                                           , l_component_code
897                                                           , l_component_type_code
898                                                           , l_component_appl_id
899                                                           , l_amb_context_code
900                                                           )
904                                                         ,l_component_type_code
901                  ,p_token_2                 => 'OWNER'
902                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
903                                                         'XLA_OWNER_TYPE'
905                                                         )
906                  ,p_token_3                 => 'PAD_NAME'
907                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
908                  ,p_token_4                 => 'PAD_OWNER'
909                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
910                                                         'XLA_OWNER_TYPE'
911                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
912                                                         )
913                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
914                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
915                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
916                  ,p_ae_header_id            => NULL
917 );
918 RETURN l_output_value;
919 EXCEPTION
920   WHEN xla_exceptions_pkg.application_exception THEN
921       RAISE;
922   WHEN OTHERS THEN
923        xla_exceptions_pkg.raise_message
924            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_6');
925 END AcctDerRule_6;
926 --
927 
928 ---------------------------------------
929 --
930 -- PRIVATE FUNCTION
931 --         AcctDerRule_7
932 --
933 ---------------------------------------
934 FUNCTION AcctDerRule_7 (
935   p_application_id             IN NUMBER
936 , p_ae_header_id               IN NUMBER
937 , p_side                       IN VARCHAR2
938 , p_override_seg_flag          IN VARCHAR2 
939 --Automatic Offsets Value
940  , p_source_3            IN VARCHAR2
941  , p_source_3_meaning    IN VARCHAR2
942 --Purchase Order Rate Variance Gain Account
943  , p_source_8            IN NUMBER
944 --Invoice Distribution Ledger Amount
945  , p_source_9            IN NUMBER
946 --Destination Type of the PO Distribution
947  , p_source_10            IN VARCHAR2
948  , p_source_10_meaning    IN VARCHAR2
949 --Purchase Order Rate Variance Loss Account
950  , p_source_11            IN NUMBER
951 , x_transaction_coa_id         OUT NOCOPY NUMBER
952 , x_accounting_coa_id          OUT NOCOPY NUMBER
953 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
954 , x_flex_value_set_id          OUT NOCOPY NUMBER
955 , x_value_type_code            OUT NOCOPY VARCHAR2
956 , x_value_combination_id       OUT NOCOPY NUMBER
957 , x_value_segment_code         OUT NOCOPY VARCHAR2
958 )
959 RETURN VARCHAR2
960 IS
961 l_component_type       VARCHAR2(80)  ;
962 l_component_code       VARCHAR2(30)  ;
963 l_component_type_code  VARCHAR2(1)   ;
964 l_component_appl_id    INTEGER       ;
965 l_amb_context_code     VARCHAR2(30)  ;
966 l_log_module           VARCHAR2(240) ;
967 l_output_value         VARCHAR2(30)  ;
968 BEGIN
969 IF g_log_enabled THEN
970       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_7';
971 END IF;
972 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
973 
974       trace
975          (p_msg      => 'BEGIN of AcctDerRule_7'
976          ,p_level    => C_LEVEL_PROCEDURE
977          ,p_module   => l_log_module);
978 
979 END IF;
980 
981 l_component_type         := 'AMB_ADR';
982 l_component_code         := 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG';
983 l_component_type_code    := 'S';
984 l_component_appl_id      :=  200;
985 l_amb_context_code       := 'DEFAULT';
986 x_transaction_coa_id     :=  null;
987 x_accounting_coa_id      :=  null;
988 x_flexfield_segment_code := 'GL_ACCOUNT';
989 x_flex_value_set_id      :=  null ;
990 
991 
992  IF NVL(p_source_3,'
993 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
994 p_source_9 <  0 AND 
995 NVL(p_source_10,'
996 ') =  'INVENTORY'
997  THEN 
998 --
999   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1000 
1001       trace
1002          (p_msg      => 'END of AcctDerRule_7'
1003          ,p_level    => C_LEVEL_PROCEDURE
1004          ,p_module   => l_log_module);
1005 
1006   END IF;
1007   x_value_combination_id  := TO_NUMBER(p_source_8) ;
1008   x_value_segment_code    := 'GL_ACCOUNT' ;
1009   x_value_type_code       := 'S';
1010   l_output_value          :=  null;
1011   RETURN l_output_value;
1012 
1013  ELSIF NVL(p_source_3,'
1014 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1015 p_source_9 >  0 AND 
1016 NVL(p_source_10,'
1017 ') =  'INVENTORY'
1018  THEN 
1019 --
1020   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1021 
1022       trace
1023          (p_msg      => 'END of AcctDerRule_7'
1024          ,p_level    => C_LEVEL_PROCEDURE
1025          ,p_module   => l_log_module);
1026 
1027   END IF;
1028   x_value_combination_id  := TO_NUMBER(p_source_11) ;
1029   x_value_segment_code    := 'GL_ACCOUNT' ;
1030   x_value_type_code       := 'S';
1031   l_output_value          :=  null;
1032   RETURN l_output_value;
1033 
1034  ELSE 
1035     IF p_override_seg_flag = 'Y' THEN 
1036        RETURN '#$NO_OVERRIDE#$';
1037     END IF;
1038  END IF;
1039 
1040 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1041 
1042       trace
1043          (p_msg      => 'END of AcctDerRule_7(invalid)'
1044          ,p_level    => C_LEVEL_PROCEDURE
1045          ,p_module   => l_log_module);
1046 
1047 END IF;
1051 x_value_segment_code    := null;
1048 
1049 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1050 x_value_combination_id  := null;
1052 x_value_type_code       := null;
1053 l_output_value          := null;
1054 xla_accounting_err_pkg.build_message
1055                  (p_appli_s_name            => 'XLA'
1056                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1057                  ,p_token_1                 => 'COMPONENT_NAME'
1058                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1059                                                             l_component_type
1060                                                           , l_component_code
1061                                                           , l_component_type_code
1062                                                           , l_component_appl_id
1063                                                           , l_amb_context_code
1064                                                           )
1065                  ,p_token_2                 => 'OWNER'
1066                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1067                                                         'XLA_OWNER_TYPE'
1068                                                         ,l_component_type_code
1069                                                         )
1070                  ,p_token_3                 => 'PAD_NAME'
1071                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1072                  ,p_token_4                 => 'PAD_OWNER'
1073                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1074                                                         'XLA_OWNER_TYPE'
1075                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1076                                                         )
1077                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1078                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1079                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1080                  ,p_ae_header_id            => NULL
1081 );
1082 RETURN l_output_value;
1083 EXCEPTION
1084   WHEN xla_exceptions_pkg.application_exception THEN
1085       RAISE;
1086   WHEN OTHERS THEN
1087        xla_exceptions_pkg.raise_message
1088            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_7');
1089 END AcctDerRule_7;
1090 --
1091 
1092 ---------------------------------------
1093 --
1094 -- PRIVATE FUNCTION
1095 --         AcctDerRule_8
1096 --
1097 ---------------------------------------
1098 FUNCTION AcctDerRule_8 (
1099   p_application_id             IN NUMBER
1100 , p_ae_header_id               IN NUMBER
1101 , p_side                       IN VARCHAR2
1102 , p_override_seg_flag          IN VARCHAR2 
1103 --Automatic Offsets Value
1104  , p_source_3            IN VARCHAR2
1105  , p_source_3_meaning    IN VARCHAR2
1106 --Purchase Order Rate Variance Gain Account
1107  , p_source_8            IN NUMBER
1108 --Destination Type of the PO Distribution
1109  , p_source_10            IN VARCHAR2
1110  , p_source_10_meaning    IN VARCHAR2
1111 , x_transaction_coa_id         OUT NOCOPY NUMBER
1112 , x_accounting_coa_id          OUT NOCOPY NUMBER
1113 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1114 , x_flex_value_set_id          OUT NOCOPY NUMBER
1115 , x_value_type_code            OUT NOCOPY VARCHAR2
1116 , x_value_combination_id       OUT NOCOPY NUMBER
1117 , x_value_segment_code         OUT NOCOPY VARCHAR2
1118 )
1119 RETURN VARCHAR2
1120 IS
1121 l_component_type       VARCHAR2(80)  ;
1122 l_component_code       VARCHAR2(30)  ;
1123 l_component_type_code  VARCHAR2(1)   ;
1124 l_component_appl_id    INTEGER       ;
1125 l_amb_context_code     VARCHAR2(30)  ;
1126 l_log_module           VARCHAR2(240) ;
1127 l_output_value         VARCHAR2(30)  ;
1128 BEGIN
1129 IF g_log_enabled THEN
1130       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_8';
1131 END IF;
1132 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1133 
1134       trace
1135          (p_msg      => 'BEGIN of AcctDerRule_8'
1136          ,p_level    => C_LEVEL_PROCEDURE
1137          ,p_module   => l_log_module);
1138 
1139 END IF;
1140 
1141 l_component_type         := 'AMB_ADR';
1142 l_component_code         := 'AP_ERV_GAIN_NAT_ACCT_SEG';
1143 l_component_type_code    := 'S';
1144 l_component_appl_id      :=  200;
1145 l_amb_context_code       := 'DEFAULT';
1146 x_transaction_coa_id     :=  null;
1147 x_accounting_coa_id      :=  null;
1148 x_flexfield_segment_code := 'GL_ACCOUNT';
1149 x_flex_value_set_id      :=  null ;
1150 
1151 
1152  IF NVL(p_source_3,'
1153 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1154 NVL(p_source_10,'
1155 ') =  'INVENTORY'
1156  THEN 
1157 --
1158   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1159 
1160       trace
1161          (p_msg      => 'END of AcctDerRule_8'
1162          ,p_level    => C_LEVEL_PROCEDURE
1163          ,p_module   => l_log_module);
1164 
1165   END IF;
1166   x_value_combination_id  := TO_NUMBER(p_source_8) ;
1167   x_value_segment_code    := 'GL_ACCOUNT' ;
1168   x_value_type_code       := 'S';
1169   l_output_value          :=  null;
1170   RETURN l_output_value;
1171 
1172  ELSE 
1173     IF p_override_seg_flag = 'Y' THEN 
1174        RETURN '#$NO_OVERRIDE#$';
1175     END IF;
1176  END IF;
1177 
1178 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1179 
1180       trace
1181          (p_msg      => 'END of AcctDerRule_8(invalid)'
1185 END IF;
1182          ,p_level    => C_LEVEL_PROCEDURE
1183          ,p_module   => l_log_module);
1184 
1186 
1187 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1188 x_value_combination_id  := null;
1189 x_value_segment_code    := null;
1190 x_value_type_code       := null;
1191 l_output_value          := null;
1192 xla_accounting_err_pkg.build_message
1193                  (p_appli_s_name            => 'XLA'
1194                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1195                  ,p_token_1                 => 'COMPONENT_NAME'
1196                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1197                                                             l_component_type
1198                                                           , l_component_code
1199                                                           , l_component_type_code
1200                                                           , l_component_appl_id
1201                                                           , l_amb_context_code
1202                                                           )
1203                  ,p_token_2                 => 'OWNER'
1204                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1205                                                         'XLA_OWNER_TYPE'
1206                                                         ,l_component_type_code
1207                                                         )
1208                  ,p_token_3                 => 'PAD_NAME'
1209                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1210                  ,p_token_4                 => 'PAD_OWNER'
1211                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1212                                                         'XLA_OWNER_TYPE'
1213                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1214                                                         )
1215                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1216                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1217                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1218                  ,p_ae_header_id            => NULL
1219 );
1220 RETURN l_output_value;
1221 EXCEPTION
1222   WHEN xla_exceptions_pkg.application_exception THEN
1223       RAISE;
1224   WHEN OTHERS THEN
1225        xla_exceptions_pkg.raise_message
1226            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_8');
1227 END AcctDerRule_8;
1228 --
1229 
1230 ---------------------------------------
1231 --
1232 -- PRIVATE FUNCTION
1233 --         AcctDerRule_9
1234 --
1235 ---------------------------------------
1236 FUNCTION AcctDerRule_9 (
1237   p_application_id             IN NUMBER
1238 , p_ae_header_id               IN NUMBER
1239 , p_side                       IN VARCHAR2
1240 , p_override_seg_flag          IN VARCHAR2 
1241 --Automatic Offsets Value
1242  , p_source_3            IN VARCHAR2
1243  , p_source_3_meaning    IN VARCHAR2
1244 --Destination Type of the PO Distribution
1245  , p_source_10            IN VARCHAR2
1246  , p_source_10_meaning    IN VARCHAR2
1247 --Purchase Order Rate Variance Loss Account
1248  , p_source_11            IN NUMBER
1249 , x_transaction_coa_id         OUT NOCOPY NUMBER
1250 , x_accounting_coa_id          OUT NOCOPY NUMBER
1251 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1252 , x_flex_value_set_id          OUT NOCOPY NUMBER
1253 , x_value_type_code            OUT NOCOPY VARCHAR2
1254 , x_value_combination_id       OUT NOCOPY NUMBER
1255 , x_value_segment_code         OUT NOCOPY VARCHAR2
1256 )
1257 RETURN VARCHAR2
1258 IS
1259 l_component_type       VARCHAR2(80)  ;
1260 l_component_code       VARCHAR2(30)  ;
1261 l_component_type_code  VARCHAR2(1)   ;
1262 l_component_appl_id    INTEGER       ;
1263 l_amb_context_code     VARCHAR2(30)  ;
1264 l_log_module           VARCHAR2(240) ;
1265 l_output_value         VARCHAR2(30)  ;
1266 BEGIN
1267 IF g_log_enabled THEN
1268       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_9';
1269 END IF;
1270 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1271 
1272       trace
1273          (p_msg      => 'BEGIN of AcctDerRule_9'
1274          ,p_level    => C_LEVEL_PROCEDURE
1275          ,p_module   => l_log_module);
1276 
1277 END IF;
1278 
1279 l_component_type         := 'AMB_ADR';
1280 l_component_code         := 'AP_ERV_LOSS_NAT_ACCT_SEG';
1281 l_component_type_code    := 'S';
1282 l_component_appl_id      :=  200;
1283 l_amb_context_code       := 'DEFAULT';
1284 x_transaction_coa_id     :=  null;
1285 x_accounting_coa_id      :=  null;
1286 x_flexfield_segment_code := 'GL_ACCOUNT';
1287 x_flex_value_set_id      :=  null ;
1288 
1289 
1290  IF NVL(p_source_3,'
1291 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1292 NVL(p_source_10,'
1293 ') =  'INVENTORY'
1294  THEN 
1295 --
1296   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1297 
1298       trace
1299          (p_msg      => 'END of AcctDerRule_9'
1300          ,p_level    => C_LEVEL_PROCEDURE
1301          ,p_module   => l_log_module);
1302 
1303   END IF;
1304   x_value_combination_id  := TO_NUMBER(p_source_11) ;
1305   x_value_segment_code    := 'GL_ACCOUNT' ;
1306   x_value_type_code       := 'S';
1307   l_output_value          :=  null;
1308   RETURN l_output_value;
1309 
1310  ELSE 
1311     IF p_override_seg_flag = 'Y' THEN 
1312        RETURN '#$NO_OVERRIDE#$';
1313     END IF;
1314  END IF;
1315 
1316 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1320          ,p_level    => C_LEVEL_PROCEDURE
1317 
1318       trace
1319          (p_msg      => 'END of AcctDerRule_9(invalid)'
1321          ,p_module   => l_log_module);
1322 
1323 END IF;
1324 
1325 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1326 x_value_combination_id  := null;
1327 x_value_segment_code    := null;
1328 x_value_type_code       := null;
1329 l_output_value          := null;
1330 xla_accounting_err_pkg.build_message
1331                  (p_appli_s_name            => 'XLA'
1332                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1333                  ,p_token_1                 => 'COMPONENT_NAME'
1334                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1335                                                             l_component_type
1336                                                           , l_component_code
1337                                                           , l_component_type_code
1338                                                           , l_component_appl_id
1339                                                           , l_amb_context_code
1340                                                           )
1341                  ,p_token_2                 => 'OWNER'
1342                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1343                                                         'XLA_OWNER_TYPE'
1344                                                         ,l_component_type_code
1345                                                         )
1346                  ,p_token_3                 => 'PAD_NAME'
1347                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1348                  ,p_token_4                 => 'PAD_OWNER'
1349                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1350                                                         'XLA_OWNER_TYPE'
1351                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1352                                                         )
1353                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1354                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1355                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1356                  ,p_ae_header_id            => NULL
1357 );
1358 RETURN l_output_value;
1359 EXCEPTION
1360   WHEN xla_exceptions_pkg.application_exception THEN
1361       RAISE;
1362   WHEN OTHERS THEN
1363        xla_exceptions_pkg.raise_message
1364            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_9');
1365 END AcctDerRule_9;
1366 --
1367 
1368 ---------------------------------------
1369 --
1370 -- PRIVATE FUNCTION
1371 --         AcctDerRule_10
1372 --
1373 ---------------------------------------
1374 FUNCTION AcctDerRule_10 (
1375   p_application_id             IN NUMBER
1376 , p_ae_header_id               IN NUMBER
1377 , p_side                       IN VARCHAR2
1378 , p_override_seg_flag          IN VARCHAR2 
1379 --Automatic Offsets Value
1380  , p_source_3            IN VARCHAR2
1381  , p_source_3_meaning    IN VARCHAR2
1382 --Bank Future Dated Payment Account
1383  , p_source_12            IN NUMBER
1384 --Future Dated Payment Account Source Option
1385  , p_source_13            IN VARCHAR2
1386  , p_source_13_meaning    IN VARCHAR2
1387 --Financials Options Future Dated Payment Account
1388  , p_source_14            IN NUMBER
1389 --Supplier Site Future Dated Payment Account
1390  , p_source_15            IN NUMBER
1391 , x_transaction_coa_id         OUT NOCOPY NUMBER
1392 , x_accounting_coa_id          OUT NOCOPY NUMBER
1393 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1394 , x_flex_value_set_id          OUT NOCOPY NUMBER
1395 , x_value_type_code            OUT NOCOPY VARCHAR2
1396 , x_value_combination_id       OUT NOCOPY NUMBER
1397 , x_value_segment_code         OUT NOCOPY VARCHAR2
1398 )
1399 RETURN VARCHAR2
1400 IS
1401 l_component_type       VARCHAR2(80)  ;
1402 l_component_code       VARCHAR2(30)  ;
1403 l_component_type_code  VARCHAR2(1)   ;
1404 l_component_appl_id    INTEGER       ;
1405 l_amb_context_code     VARCHAR2(30)  ;
1406 l_log_module           VARCHAR2(240) ;
1407 l_output_value         VARCHAR2(30)  ;
1408 BEGIN
1409 IF g_log_enabled THEN
1410       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_10';
1411 END IF;
1412 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1413 
1414       trace
1415          (p_msg      => 'BEGIN of AcctDerRule_10'
1416          ,p_level    => C_LEVEL_PROCEDURE
1417          ,p_module   => l_log_module);
1418 
1419 END IF;
1420 
1421 l_component_type         := 'AMB_ADR';
1422 l_component_code         := 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG';
1423 l_component_type_code    := 'S';
1424 l_component_appl_id      :=  200;
1425 l_amb_context_code       := 'DEFAULT';
1426 x_transaction_coa_id     :=  null;
1427 x_accounting_coa_id      :=  null;
1428 x_flexfield_segment_code := 'GL_ACCOUNT';
1429 x_flex_value_set_id      :=  null ;
1430 
1431 
1432  IF (NVL(p_source_3,'
1433 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1434 NVL(p_source_13,'
1435 ') =  'BANK ACCOUNT') AND 
1436 TO_NUMBER(p_source_12) IS NOT NULL 
1437  THEN 
1438 --
1439   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1440 
1441       trace
1442          (p_msg      => 'END of AcctDerRule_10'
1443          ,p_level    => C_LEVEL_PROCEDURE
1444          ,p_module   => l_log_module);
1445 
1446   END IF;
1447   x_value_combination_id  := TO_NUMBER(p_source_12) ;
1448   x_value_segment_code    := 'GL_ACCOUNT' ;
1452 
1449   x_value_type_code       := 'S';
1450   l_output_value          :=  null;
1451   RETURN l_output_value;
1453  ELSIF NVL(p_source_3,'
1454 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1455 NVL(p_source_13,'
1456 ') =  'BANK ACCOUNT'
1457  THEN 
1458 --
1459   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1460 
1461       trace
1462          (p_msg      => 'END of AcctDerRule_10'
1463          ,p_level    => C_LEVEL_PROCEDURE
1464          ,p_module   => l_log_module);
1465 
1466   END IF;
1467   x_value_combination_id  := TO_NUMBER(p_source_14) ;
1468   x_value_segment_code    := 'GL_ACCOUNT' ;
1469   x_value_type_code       := 'S';
1470   l_output_value          :=  null;
1471   RETURN l_output_value;
1472 
1473  ELSIF NVL(p_source_3,'
1474 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1475 NVL(p_source_13,'
1476 ') =  'SUPPLIER SITE' AND 
1477 TO_NUMBER(p_source_15) IS NOT NULL 
1478  THEN 
1479 --
1480   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1481 
1482       trace
1483          (p_msg      => 'END of AcctDerRule_10'
1484          ,p_level    => C_LEVEL_PROCEDURE
1485          ,p_module   => l_log_module);
1486 
1487   END IF;
1488   x_value_combination_id  := TO_NUMBER(p_source_15) ;
1489   x_value_segment_code    := 'GL_ACCOUNT' ;
1490   x_value_type_code       := 'S';
1491   l_output_value          :=  null;
1492   RETURN l_output_value;
1493 
1494  ELSIF NVL(p_source_3,'
1495 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1496 NVL(p_source_13,'
1497 ') =  'SUPPLIER SITE'
1498  THEN 
1499 --
1500   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1501 
1502       trace
1503          (p_msg      => 'END of AcctDerRule_10'
1504          ,p_level    => C_LEVEL_PROCEDURE
1505          ,p_module   => l_log_module);
1506 
1507   END IF;
1508   x_value_combination_id  := TO_NUMBER(p_source_14) ;
1509   x_value_segment_code    := 'GL_ACCOUNT' ;
1510   x_value_type_code       := 'S';
1511   l_output_value          :=  null;
1512   RETURN l_output_value;
1513 
1514  ELSE 
1515     IF p_override_seg_flag = 'Y' THEN 
1516        RETURN '#$NO_OVERRIDE#$';
1517     END IF;
1518  END IF;
1519 
1520 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1521 
1522       trace
1523          (p_msg      => 'END of AcctDerRule_10(invalid)'
1524          ,p_level    => C_LEVEL_PROCEDURE
1525          ,p_module   => l_log_module);
1526 
1527 END IF;
1528 
1529 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1530 x_value_combination_id  := null;
1531 x_value_segment_code    := null;
1532 x_value_type_code       := null;
1533 l_output_value          := null;
1534 xla_accounting_err_pkg.build_message
1535                  (p_appli_s_name            => 'XLA'
1536                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1537                  ,p_token_1                 => 'COMPONENT_NAME'
1538                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1539                                                             l_component_type
1540                                                           , l_component_code
1541                                                           , l_component_type_code
1542                                                           , l_component_appl_id
1543                                                           , l_amb_context_code
1544                                                           )
1545                  ,p_token_2                 => 'OWNER'
1546                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1547                                                         'XLA_OWNER_TYPE'
1548                                                         ,l_component_type_code
1549                                                         )
1550                  ,p_token_3                 => 'PAD_NAME'
1551                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1552                  ,p_token_4                 => 'PAD_OWNER'
1553                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1554                                                         'XLA_OWNER_TYPE'
1555                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1556                                                         )
1557                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1558                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1559                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1560                  ,p_ae_header_id            => NULL
1561 );
1562 RETURN l_output_value;
1563 EXCEPTION
1564   WHEN xla_exceptions_pkg.application_exception THEN
1565       RAISE;
1566   WHEN OTHERS THEN
1567        xla_exceptions_pkg.raise_message
1568            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_10');
1569 END AcctDerRule_10;
1570 --
1571 
1572 ---------------------------------------
1573 --
1574 -- PRIVATE FUNCTION
1575 --         AcctDerRule_11
1576 --
1577 ---------------------------------------
1578 FUNCTION AcctDerRule_11 (
1579   p_application_id             IN NUMBER
1580 , p_ae_header_id               IN NUMBER
1581 , p_side                       IN VARCHAR2
1582 , p_override_seg_flag          IN VARCHAR2 
1583 --Interest Account
1584  , p_source_16            IN NUMBER
1585 --Prorate Interest Invoice Across Distributions Option
1586  , p_source_17            IN VARCHAR2
1587 , x_transaction_coa_id         OUT NOCOPY NUMBER
1588 , x_accounting_coa_id          OUT NOCOPY NUMBER
1592 , x_value_combination_id       OUT NOCOPY NUMBER
1589 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1590 , x_flex_value_set_id          OUT NOCOPY NUMBER
1591 , x_value_type_code            OUT NOCOPY VARCHAR2
1593 , x_value_segment_code         OUT NOCOPY VARCHAR2
1594 )
1595 RETURN VARCHAR2
1596 IS
1597 l_component_type       VARCHAR2(80)  ;
1598 l_component_code       VARCHAR2(30)  ;
1599 l_component_type_code  VARCHAR2(1)   ;
1600 l_component_appl_id    INTEGER       ;
1601 l_amb_context_code     VARCHAR2(30)  ;
1602 l_log_module           VARCHAR2(240) ;
1603 l_output_value         VARCHAR2(30)  ;
1604 BEGIN
1605 IF g_log_enabled THEN
1606       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_11';
1607 END IF;
1608 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1609 
1610       trace
1611          (p_msg      => 'BEGIN of AcctDerRule_11'
1612          ,p_level    => C_LEVEL_PROCEDURE
1613          ,p_module   => l_log_module);
1614 
1615 END IF;
1616 
1617 l_component_type         := 'AMB_ADR';
1618 l_component_code         := 'AP_INTEREST_NAT_ACCT_SEG';
1619 l_component_type_code    := 'S';
1620 l_component_appl_id      :=  200;
1621 l_amb_context_code       := 'DEFAULT';
1622 x_transaction_coa_id     :=  null;
1623 x_accounting_coa_id      :=  null;
1624 x_flexfield_segment_code := 'GL_ACCOUNT';
1625 x_flex_value_set_id      :=  null ;
1626 
1627 
1628  IF NVL(p_source_17,'
1629 ') =  'Y'
1630  THEN 
1631 --
1632   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1633 
1634       trace
1635          (p_msg      => 'END of AcctDerRule_11'
1636          ,p_level    => C_LEVEL_PROCEDURE
1637          ,p_module   => l_log_module);
1638 
1639   END IF;
1640   x_value_combination_id  := TO_NUMBER(p_source_16) ;
1641   x_value_segment_code    := 'GL_ACCOUNT' ;
1642   x_value_type_code       := 'S';
1643   l_output_value          :=  null;
1644   RETURN l_output_value;
1645 
1646  ELSE 
1647     IF p_override_seg_flag = 'Y' THEN 
1648        RETURN '#$NO_OVERRIDE#$';
1649     END IF;
1650  END IF;
1651 
1652 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1653 
1654       trace
1655          (p_msg      => 'END of AcctDerRule_11(invalid)'
1656          ,p_level    => C_LEVEL_PROCEDURE
1657          ,p_module   => l_log_module);
1658 
1659 END IF;
1660 
1661 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1662 x_value_combination_id  := null;
1663 x_value_segment_code    := null;
1664 x_value_type_code       := null;
1665 l_output_value          := null;
1666 xla_accounting_err_pkg.build_message
1667                  (p_appli_s_name            => 'XLA'
1668                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1669                  ,p_token_1                 => 'COMPONENT_NAME'
1670                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1671                                                             l_component_type
1672                                                           , l_component_code
1673                                                           , l_component_type_code
1674                                                           , l_component_appl_id
1675                                                           , l_amb_context_code
1676                                                           )
1677                  ,p_token_2                 => 'OWNER'
1678                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1679                                                         'XLA_OWNER_TYPE'
1680                                                         ,l_component_type_code
1681                                                         )
1682                  ,p_token_3                 => 'PAD_NAME'
1683                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1684                  ,p_token_4                 => 'PAD_OWNER'
1685                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1686                                                         'XLA_OWNER_TYPE'
1687                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1688                                                         )
1689                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1690                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1691                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1692                  ,p_ae_header_id            => NULL
1693 );
1694 RETURN l_output_value;
1695 EXCEPTION
1696   WHEN xla_exceptions_pkg.application_exception THEN
1697       RAISE;
1698   WHEN OTHERS THEN
1699        xla_exceptions_pkg.raise_message
1700            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_11');
1701 END AcctDerRule_11;
1702 --
1703 
1704 ---------------------------------------
1705 --
1706 -- PRIVATE FUNCTION
1707 --         AcctDerRule_12
1708 --
1709 ---------------------------------------
1710 FUNCTION AcctDerRule_12 (
1711   p_application_id             IN NUMBER
1712 , p_ae_header_id               IN NUMBER
1713 , p_side                       IN VARCHAR2
1714 , p_override_seg_flag          IN VARCHAR2 
1715 --Invoice Distribution Account
1716  , p_source_18            IN NUMBER
1717 --Prepaid Expense Account Source Option
1718  , p_source_19            IN VARCHAR2
1719  , p_source_19_meaning    IN VARCHAR2
1720 --Purchase Order Number
1721  , p_source_20            IN VARCHAR2
1722 --Invoice Distribution Type
1723  , p_source_21            IN VARCHAR2
1724  , p_source_21_meaning    IN VARCHAR2
1728 , x_flex_value_set_id          OUT NOCOPY NUMBER
1725 , x_transaction_coa_id         OUT NOCOPY NUMBER
1726 , x_accounting_coa_id          OUT NOCOPY NUMBER
1727 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1729 , x_value_type_code            OUT NOCOPY VARCHAR2
1730 , x_value_combination_id       OUT NOCOPY NUMBER
1731 , x_value_segment_code         OUT NOCOPY VARCHAR2
1732 )
1733 RETURN VARCHAR2
1734 IS
1735 l_component_type       VARCHAR2(80)  ;
1736 l_component_code       VARCHAR2(30)  ;
1737 l_component_type_code  VARCHAR2(1)   ;
1738 l_component_appl_id    INTEGER       ;
1739 l_amb_context_code     VARCHAR2(30)  ;
1740 l_log_module           VARCHAR2(240) ;
1741 l_output_value         VARCHAR2(30)  ;
1742 BEGIN
1743 IF g_log_enabled THEN
1744       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_12';
1745 END IF;
1746 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1747 
1748       trace
1749          (p_msg      => 'BEGIN of AcctDerRule_12'
1750          ,p_level    => C_LEVEL_PROCEDURE
1751          ,p_module   => l_log_module);
1752 
1753 END IF;
1754 
1755 l_component_type         := 'AMB_ADR';
1756 l_component_code         := 'AP_INVOICE_DIST_NAT_ACCT_ITEM';
1757 l_component_type_code    := 'S';
1758 l_component_appl_id      :=  200;
1759 l_amb_context_code       := 'DEFAULT';
1760 x_transaction_coa_id     :=  null;
1761 x_accounting_coa_id      :=  null;
1762 x_flexfield_segment_code := 'GL_ACCOUNT';
1763 x_flex_value_set_id      :=  null ;
1764 
1765 
1766  IF NVL(p_source_19,'
1767 ') =  'Y' AND 
1768 p_source_20 IS NOT NULL AND 
1769 NVL(p_source_21,'
1770 ') =  'ITEM'
1771  THEN 
1772 --
1773   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1774 
1775       trace
1776          (p_msg      => 'END of AcctDerRule_12'
1777          ,p_level    => C_LEVEL_PROCEDURE
1778          ,p_module   => l_log_module);
1779 
1780   END IF;
1781   x_value_combination_id  := TO_NUMBER(p_source_18) ;
1782   x_value_segment_code    := 'GL_ACCOUNT' ;
1783   x_value_type_code       := 'S';
1784   l_output_value          :=  null;
1785   RETURN l_output_value;
1786 
1787  ELSE 
1788     IF p_override_seg_flag = 'Y' THEN 
1789        RETURN '#$NO_OVERRIDE#$';
1790     END IF;
1791  END IF;
1792 
1793 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1794 
1795       trace
1796          (p_msg      => 'END of AcctDerRule_12(invalid)'
1797          ,p_level    => C_LEVEL_PROCEDURE
1798          ,p_module   => l_log_module);
1799 
1800 END IF;
1801 
1802 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1803 x_value_combination_id  := null;
1804 x_value_segment_code    := null;
1805 x_value_type_code       := null;
1806 l_output_value          := null;
1807 xla_accounting_err_pkg.build_message
1808                  (p_appli_s_name            => 'XLA'
1809                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1810                  ,p_token_1                 => 'COMPONENT_NAME'
1811                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1812                                                             l_component_type
1813                                                           , l_component_code
1814                                                           , l_component_type_code
1815                                                           , l_component_appl_id
1816                                                           , l_amb_context_code
1817                                                           )
1818                  ,p_token_2                 => 'OWNER'
1819                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1820                                                         'XLA_OWNER_TYPE'
1821                                                         ,l_component_type_code
1822                                                         )
1823                  ,p_token_3                 => 'PAD_NAME'
1824                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1825                  ,p_token_4                 => 'PAD_OWNER'
1826                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1827                                                         'XLA_OWNER_TYPE'
1828                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1829                                                         )
1830                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1831                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1832                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1833                  ,p_ae_header_id            => NULL
1834 );
1835 RETURN l_output_value;
1836 EXCEPTION
1837   WHEN xla_exceptions_pkg.application_exception THEN
1838       RAISE;
1839   WHEN OTHERS THEN
1840        xla_exceptions_pkg.raise_message
1841            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_12');
1842 END AcctDerRule_12;
1843 --
1844 
1845 ---------------------------------------
1846 --
1847 -- PRIVATE FUNCTION
1848 --         AcctDerRule_13
1849 --
1850 ---------------------------------------
1851 FUNCTION AcctDerRule_13 (
1852   p_application_id             IN NUMBER
1853 , p_ae_header_id               IN NUMBER
1854 , p_side                       IN VARCHAR2
1855 , p_override_seg_flag          IN VARCHAR2 
1856 --Automatic Offsets Value
1857  , p_source_3            IN VARCHAR2
1858  , p_source_3_meaning    IN VARCHAR2
1859 --Invoice Distribution Account
1860  , p_source_18            IN NUMBER
1864 , x_flex_value_set_id          OUT NOCOPY NUMBER
1861 , x_transaction_coa_id         OUT NOCOPY NUMBER
1862 , x_accounting_coa_id          OUT NOCOPY NUMBER
1863 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1865 , x_value_type_code            OUT NOCOPY VARCHAR2
1866 , x_value_combination_id       OUT NOCOPY NUMBER
1867 , x_value_segment_code         OUT NOCOPY VARCHAR2
1868 )
1869 RETURN VARCHAR2
1870 IS
1871 l_component_type       VARCHAR2(80)  ;
1872 l_component_code       VARCHAR2(30)  ;
1873 l_component_type_code  VARCHAR2(1)   ;
1874 l_component_appl_id    INTEGER       ;
1875 l_amb_context_code     VARCHAR2(30)  ;
1876 l_log_module           VARCHAR2(240) ;
1877 l_output_value         VARCHAR2(30)  ;
1878 BEGIN
1879 IF g_log_enabled THEN
1880       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_13';
1881 END IF;
1882 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1883 
1884       trace
1885          (p_msg      => 'BEGIN of AcctDerRule_13'
1886          ,p_level    => C_LEVEL_PROCEDURE
1887          ,p_module   => l_log_module);
1888 
1889 END IF;
1890 
1891 l_component_type         := 'AMB_ADR';
1892 l_component_code         := 'AP_INVOICE_DIST_NAT_ACCT_SEG';
1893 l_component_type_code    := 'S';
1894 l_component_appl_id      :=  200;
1895 l_amb_context_code       := 'DEFAULT';
1896 x_transaction_coa_id     :=  null;
1897 x_accounting_coa_id      :=  null;
1898 x_flexfield_segment_code := 'GL_ACCOUNT';
1899 x_flex_value_set_id      :=  null ;
1900 
1901 
1902  IF NVL(p_source_3,'
1903 ') =  'ACCOUNT_SEGMENT_VALUE'
1904  THEN 
1905 --
1906   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1907 
1908       trace
1909          (p_msg      => 'END of AcctDerRule_13'
1910          ,p_level    => C_LEVEL_PROCEDURE
1911          ,p_module   => l_log_module);
1912 
1913   END IF;
1914   x_value_combination_id  := TO_NUMBER(p_source_18) ;
1915   x_value_segment_code    := 'GL_ACCOUNT' ;
1916   x_value_type_code       := 'S';
1917   l_output_value          :=  null;
1918   RETURN l_output_value;
1919 
1920  ELSE 
1921     IF p_override_seg_flag = 'Y' THEN 
1922        RETURN '#$NO_OVERRIDE#$';
1923     END IF;
1924  END IF;
1925 
1926 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1927 
1928       trace
1929          (p_msg      => 'END of AcctDerRule_13(invalid)'
1930          ,p_level    => C_LEVEL_PROCEDURE
1931          ,p_module   => l_log_module);
1932 
1933 END IF;
1934 
1935 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1936 x_value_combination_id  := null;
1937 x_value_segment_code    := null;
1938 x_value_type_code       := null;
1939 l_output_value          := null;
1940 xla_accounting_err_pkg.build_message
1941                  (p_appli_s_name            => 'XLA'
1942                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1943                  ,p_token_1                 => 'COMPONENT_NAME'
1944                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1945                                                             l_component_type
1946                                                           , l_component_code
1947                                                           , l_component_type_code
1948                                                           , l_component_appl_id
1949                                                           , l_amb_context_code
1950                                                           )
1951                  ,p_token_2                 => 'OWNER'
1952                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1953                                                         'XLA_OWNER_TYPE'
1954                                                         ,l_component_type_code
1955                                                         )
1956                  ,p_token_3                 => 'PAD_NAME'
1957                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1958                  ,p_token_4                 => 'PAD_OWNER'
1959                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1960                                                         'XLA_OWNER_TYPE'
1961                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1962                                                         )
1963                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1964                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1965                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1966                  ,p_ae_header_id            => NULL
1967 );
1968 RETURN l_output_value;
1969 EXCEPTION
1970   WHEN xla_exceptions_pkg.application_exception THEN
1971       RAISE;
1972   WHEN OTHERS THEN
1973        xla_exceptions_pkg.raise_message
1974            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_13');
1975 END AcctDerRule_13;
1976 --
1977 
1978 ---------------------------------------
1979 --
1980 -- PRIVATE FUNCTION
1981 --         AcctDerRule_14
1982 --
1983 ---------------------------------------
1984 FUNCTION AcctDerRule_14 (
1985   p_application_id             IN NUMBER
1986 , p_ae_header_id               IN NUMBER
1987 , p_side                       IN VARCHAR2
1988 , p_override_seg_flag          IN VARCHAR2 
1989 --Invoice Liability Account
1990  , p_source_22            IN NUMBER
1991 , x_transaction_coa_id         OUT NOCOPY NUMBER
1992 , x_accounting_coa_id          OUT NOCOPY NUMBER
1993 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1994 , x_flex_value_set_id          OUT NOCOPY NUMBER
1998 )
1995 , x_value_type_code            OUT NOCOPY VARCHAR2
1996 , x_value_combination_id       OUT NOCOPY NUMBER
1997 , x_value_segment_code         OUT NOCOPY VARCHAR2
1999 RETURN VARCHAR2
2000 IS
2001 l_component_type       VARCHAR2(80)  ;
2002 l_component_code       VARCHAR2(30)  ;
2003 l_component_type_code  VARCHAR2(1)   ;
2004 l_component_appl_id    INTEGER       ;
2005 l_amb_context_code     VARCHAR2(30)  ;
2006 l_log_module           VARCHAR2(240) ;
2007 l_output_value         VARCHAR2(30)  ;
2008 BEGIN
2009 IF g_log_enabled THEN
2010       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_14';
2011 END IF;
2012 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2013 
2014       trace
2015          (p_msg      => 'BEGIN of AcctDerRule_14'
2016          ,p_level    => C_LEVEL_PROCEDURE
2017          ,p_module   => l_log_module);
2018 
2019 END IF;
2020 
2021 l_component_type         := 'AMB_ADR';
2022 l_component_code         := 'AP_LIAB_NAT_ACCT_SEG';
2023 l_component_type_code    := 'S';
2024 l_component_appl_id      :=  200;
2025 l_amb_context_code       := 'DEFAULT';
2026 x_transaction_coa_id     :=  null;
2027 x_accounting_coa_id      :=  null;
2028 x_flexfield_segment_code := 'GL_ACCOUNT';
2029 x_flex_value_set_id      :=  null ;
2030 
2031 
2032 --
2033   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2034 
2035       trace
2036          (p_msg      => 'END of AcctDerRule_14'
2037          ,p_level    => C_LEVEL_PROCEDURE
2038          ,p_module   => l_log_module);
2039 
2040   END IF;
2041   x_value_combination_id  := TO_NUMBER(p_source_22) ;
2042   x_value_segment_code    := 'GL_ACCOUNT' ;
2043   x_value_type_code       := 'S';
2044   l_output_value          :=  null;
2045   RETURN l_output_value;
2046 
2047 
2048 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2049 
2050       trace
2051          (p_msg      => 'END of AcctDerRule_14(invalid)'
2052          ,p_level    => C_LEVEL_PROCEDURE
2053          ,p_module   => l_log_module);
2054 
2055 END IF;
2056 
2057 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2058 x_value_combination_id  := null;
2059 x_value_segment_code    := null;
2060 x_value_type_code       := null;
2061 l_output_value          := null;
2062 xla_accounting_err_pkg.build_message
2063                  (p_appli_s_name            => 'XLA'
2064                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2065                  ,p_token_1                 => 'COMPONENT_NAME'
2066                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2067                                                             l_component_type
2068                                                           , l_component_code
2069                                                           , l_component_type_code
2070                                                           , l_component_appl_id
2071                                                           , l_amb_context_code
2072                                                           )
2073                  ,p_token_2                 => 'OWNER'
2074                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2075                                                         'XLA_OWNER_TYPE'
2076                                                         ,l_component_type_code
2077                                                         )
2078                  ,p_token_3                 => 'PAD_NAME'
2079                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2080                  ,p_token_4                 => 'PAD_OWNER'
2081                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2082                                                         'XLA_OWNER_TYPE'
2083                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2084                                                         )
2085                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2086                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2087                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2088                  ,p_ae_header_id            => NULL
2089 );
2090 RETURN l_output_value;
2091 EXCEPTION
2092   WHEN xla_exceptions_pkg.application_exception THEN
2093       RAISE;
2094   WHEN OTHERS THEN
2095        xla_exceptions_pkg.raise_message
2096            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_14');
2097 END AcctDerRule_14;
2098 --
2099 
2100 ---------------------------------------
2101 --
2102 -- PRIVATE FUNCTION
2103 --         AcctDerRule_15
2104 --
2105 ---------------------------------------
2106 FUNCTION AcctDerRule_15 (
2107   p_application_id             IN NUMBER
2108 , p_ae_header_id               IN NUMBER
2109 , p_side                       IN VARCHAR2
2110 , p_override_seg_flag          IN VARCHAR2 
2111 --Bank Cash Clearing Account
2112  , p_source_23            IN NUMBER
2113 , x_transaction_coa_id         OUT NOCOPY NUMBER
2114 , x_accounting_coa_id          OUT NOCOPY NUMBER
2115 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2116 , x_flex_value_set_id          OUT NOCOPY NUMBER
2117 , x_value_type_code            OUT NOCOPY VARCHAR2
2118 , x_value_combination_id       OUT NOCOPY NUMBER
2119 , x_value_segment_code         OUT NOCOPY VARCHAR2
2120 )
2121 RETURN VARCHAR2
2122 IS
2123 l_component_type       VARCHAR2(80)  ;
2124 l_component_code       VARCHAR2(30)  ;
2125 l_component_type_code  VARCHAR2(1)   ;
2126 l_component_appl_id    INTEGER       ;
2127 l_amb_context_code     VARCHAR2(30)  ;
2131 IF g_log_enabled THEN
2128 l_log_module           VARCHAR2(240) ;
2129 l_output_value         VARCHAR2(30)  ;
2130 BEGIN
2132       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_15';
2133 END IF;
2134 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2135 
2136       trace
2137          (p_msg      => 'BEGIN of AcctDerRule_15'
2138          ,p_level    => C_LEVEL_PROCEDURE
2139          ,p_module   => l_log_module);
2140 
2141 END IF;
2142 
2143 l_component_type         := 'AMB_ADR';
2144 l_component_code         := 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL';
2145 l_component_type_code    := 'S';
2146 l_component_appl_id      :=  200;
2147 l_amb_context_code       := 'DEFAULT';
2148 x_transaction_coa_id     :=  null;
2149 x_accounting_coa_id      :=  null;
2150 x_flexfield_segment_code := 'GL_ACCOUNT';
2151 x_flex_value_set_id      :=  null ;
2152 
2153 
2154 --
2155   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2156 
2157       trace
2158          (p_msg      => 'END of AcctDerRule_15'
2159          ,p_level    => C_LEVEL_PROCEDURE
2160          ,p_module   => l_log_module);
2161 
2162   END IF;
2163   x_value_combination_id  := TO_NUMBER(p_source_23) ;
2164   x_value_segment_code    := 'GL_ACCOUNT' ;
2165   x_value_type_code       := 'S';
2166   l_output_value          :=  null;
2167   RETURN l_output_value;
2168 
2169 
2170 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2171 
2172       trace
2173          (p_msg      => 'END of AcctDerRule_15(invalid)'
2174          ,p_level    => C_LEVEL_PROCEDURE
2175          ,p_module   => l_log_module);
2176 
2177 END IF;
2178 
2179 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2180 x_value_combination_id  := null;
2181 x_value_segment_code    := null;
2182 x_value_type_code       := null;
2183 l_output_value          := null;
2184 xla_accounting_err_pkg.build_message
2185                  (p_appli_s_name            => 'XLA'
2186                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2187                  ,p_token_1                 => 'COMPONENT_NAME'
2188                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2189                                                             l_component_type
2190                                                           , l_component_code
2191                                                           , l_component_type_code
2192                                                           , l_component_appl_id
2193                                                           , l_amb_context_code
2194                                                           )
2195                  ,p_token_2                 => 'OWNER'
2196                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2197                                                         'XLA_OWNER_TYPE'
2198                                                         ,l_component_type_code
2199                                                         )
2200                  ,p_token_3                 => 'PAD_NAME'
2201                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2202                  ,p_token_4                 => 'PAD_OWNER'
2203                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2204                                                         'XLA_OWNER_TYPE'
2205                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2206                                                         )
2207                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2208                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2209                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2210                  ,p_ae_header_id            => NULL
2211 );
2212 RETURN l_output_value;
2213 EXCEPTION
2214   WHEN xla_exceptions_pkg.application_exception THEN
2215       RAISE;
2216   WHEN OTHERS THEN
2217        xla_exceptions_pkg.raise_message
2218            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_15');
2219 END AcctDerRule_15;
2220 --
2221 
2222 ---------------------------------------
2223 --
2224 -- PRIVATE FUNCTION
2225 --         AcctDerRule_16
2226 --
2227 ---------------------------------------
2228 FUNCTION AcctDerRule_16 (
2229   p_application_id             IN NUMBER
2230 , p_ae_header_id               IN NUMBER
2231 , p_side                       IN VARCHAR2
2232 , p_override_seg_flag          IN VARCHAR2 
2233 --Automatic Offsets Value
2234  , p_source_3            IN VARCHAR2
2235  , p_source_3_meaning    IN VARCHAR2
2236 --Internal Realized Gain Account
2237  , p_source_24            IN NUMBER
2238 --Bank Gain Account
2239  , p_source_25            IN NUMBER
2240 , x_transaction_coa_id         OUT NOCOPY NUMBER
2241 , x_accounting_coa_id          OUT NOCOPY NUMBER
2242 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2243 , x_flex_value_set_id          OUT NOCOPY NUMBER
2244 , x_value_type_code            OUT NOCOPY VARCHAR2
2245 , x_value_combination_id       OUT NOCOPY NUMBER
2246 , x_value_segment_code         OUT NOCOPY VARCHAR2
2247 )
2248 RETURN VARCHAR2
2249 IS
2250 l_component_type       VARCHAR2(80)  ;
2251 l_component_code       VARCHAR2(30)  ;
2252 l_component_type_code  VARCHAR2(1)   ;
2253 l_component_appl_id    INTEGER       ;
2254 l_amb_context_code     VARCHAR2(30)  ;
2255 l_log_module           VARCHAR2(240) ;
2256 l_output_value         VARCHAR2(30)  ;
2257 BEGIN
2258 IF g_log_enabled THEN
2259       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_16';
2260 END IF;
2264          (p_msg      => 'BEGIN of AcctDerRule_16'
2261 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2262 
2263       trace
2265          ,p_level    => C_LEVEL_PROCEDURE
2266          ,p_module   => l_log_module);
2267 
2268 END IF;
2269 
2270 l_component_type         := 'AMB_ADR';
2271 l_component_code         := 'AP_REAL_GAIN_NAT_ACCT_SEG';
2272 l_component_type_code    := 'S';
2273 l_component_appl_id      :=  200;
2274 l_amb_context_code       := 'DEFAULT';
2275 x_transaction_coa_id     :=  null;
2276 x_accounting_coa_id      :=  null;
2277 x_flexfield_segment_code := 'GL_ACCOUNT';
2278 x_flex_value_set_id      :=  null ;
2279 
2280 
2281  IF NVL(p_source_3,'
2282 ') =  'ACCOUNT_SEGMENT_VALUE'
2283  THEN 
2284 --
2285   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2286 
2287       trace
2288          (p_msg      => 'END of AcctDerRule_16'
2289          ,p_level    => C_LEVEL_PROCEDURE
2290          ,p_module   => l_log_module);
2291 
2292   END IF;
2293   x_value_combination_id  := TO_NUMBER(p_source_24) ;
2294   x_value_segment_code    := 'GL_ACCOUNT' ;
2295   x_value_type_code       := 'S';
2296   l_output_value          :=  null;
2297   RETURN l_output_value;
2298 
2299  ELSIF NVL(p_source_3,'
2300 ') =  'ACCOUNT_SEGMENT_VALUE'
2301  THEN 
2302 --
2303   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2304 
2305       trace
2306          (p_msg      => 'END of AcctDerRule_16'
2307          ,p_level    => C_LEVEL_PROCEDURE
2308          ,p_module   => l_log_module);
2309 
2310   END IF;
2311   x_value_combination_id  := TO_NUMBER(p_source_25) ;
2312   x_value_segment_code    := 'GL_ACCOUNT' ;
2313   x_value_type_code       := 'S';
2314   l_output_value          :=  null;
2315   RETURN l_output_value;
2316 
2317  ELSE 
2318     IF p_override_seg_flag = 'Y' THEN 
2319        RETURN '#$NO_OVERRIDE#$';
2320     END IF;
2321  END IF;
2322 
2323 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2324 
2325       trace
2326          (p_msg      => 'END of AcctDerRule_16(invalid)'
2327          ,p_level    => C_LEVEL_PROCEDURE
2328          ,p_module   => l_log_module);
2329 
2330 END IF;
2331 
2332 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2333 x_value_combination_id  := null;
2334 x_value_segment_code    := null;
2335 x_value_type_code       := null;
2336 l_output_value          := null;
2337 xla_accounting_err_pkg.build_message
2338                  (p_appli_s_name            => 'XLA'
2339                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2340                  ,p_token_1                 => 'COMPONENT_NAME'
2341                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2342                                                             l_component_type
2343                                                           , l_component_code
2344                                                           , l_component_type_code
2345                                                           , l_component_appl_id
2346                                                           , l_amb_context_code
2347                                                           )
2348                  ,p_token_2                 => 'OWNER'
2349                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2350                                                         'XLA_OWNER_TYPE'
2351                                                         ,l_component_type_code
2352                                                         )
2353                  ,p_token_3                 => 'PAD_NAME'
2354                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2355                  ,p_token_4                 => 'PAD_OWNER'
2356                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2357                                                         'XLA_OWNER_TYPE'
2358                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2359                                                         )
2360                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2361                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2362                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2363                  ,p_ae_header_id            => NULL
2364 );
2365 RETURN l_output_value;
2366 EXCEPTION
2367   WHEN xla_exceptions_pkg.application_exception THEN
2368       RAISE;
2369   WHEN OTHERS THEN
2370        xla_exceptions_pkg.raise_message
2371            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_16');
2372 END AcctDerRule_16;
2373 --
2374 
2375 ---------------------------------------
2376 --
2377 -- PRIVATE FUNCTION
2378 --         AcctDerRule_17
2379 --
2380 ---------------------------------------
2381 FUNCTION AcctDerRule_17 (
2382   p_application_id             IN NUMBER
2383 , p_ae_header_id               IN NUMBER
2384 , p_side                       IN VARCHAR2
2385 , p_override_seg_flag          IN VARCHAR2 
2386 --Automatic Offsets Value
2387  , p_source_3            IN VARCHAR2
2388  , p_source_3_meaning    IN VARCHAR2
2389 --Internal Realized Loss Account
2390  , p_source_26            IN NUMBER
2391 --Bank Loss Account
2392  , p_source_27            IN NUMBER
2393 , x_transaction_coa_id         OUT NOCOPY NUMBER
2394 , x_accounting_coa_id          OUT NOCOPY NUMBER
2395 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2396 , x_flex_value_set_id          OUT NOCOPY NUMBER
2397 , x_value_type_code            OUT NOCOPY VARCHAR2
2401 RETURN VARCHAR2
2398 , x_value_combination_id       OUT NOCOPY NUMBER
2399 , x_value_segment_code         OUT NOCOPY VARCHAR2
2400 )
2402 IS
2403 l_component_type       VARCHAR2(80)  ;
2404 l_component_code       VARCHAR2(30)  ;
2405 l_component_type_code  VARCHAR2(1)   ;
2406 l_component_appl_id    INTEGER       ;
2407 l_amb_context_code     VARCHAR2(30)  ;
2408 l_log_module           VARCHAR2(240) ;
2409 l_output_value         VARCHAR2(30)  ;
2410 BEGIN
2411 IF g_log_enabled THEN
2412       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_17';
2413 END IF;
2414 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2415 
2416       trace
2417          (p_msg      => 'BEGIN of AcctDerRule_17'
2418          ,p_level    => C_LEVEL_PROCEDURE
2419          ,p_module   => l_log_module);
2420 
2421 END IF;
2422 
2423 l_component_type         := 'AMB_ADR';
2424 l_component_code         := 'AP_REAL_LOSS_NAT_ACCT_SEG';
2425 l_component_type_code    := 'S';
2426 l_component_appl_id      :=  200;
2427 l_amb_context_code       := 'DEFAULT';
2428 x_transaction_coa_id     :=  null;
2429 x_accounting_coa_id      :=  null;
2430 x_flexfield_segment_code := 'GL_ACCOUNT';
2431 x_flex_value_set_id      :=  null ;
2432 
2433 
2434  IF NVL(p_source_3,'
2435 ') =  'ACCOUNT_SEGMENT_VALUE'
2436  THEN 
2437 --
2438   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2439 
2440       trace
2441          (p_msg      => 'END of AcctDerRule_17'
2442          ,p_level    => C_LEVEL_PROCEDURE
2443          ,p_module   => l_log_module);
2444 
2445   END IF;
2446   x_value_combination_id  := TO_NUMBER(p_source_26) ;
2447   x_value_segment_code    := 'GL_ACCOUNT' ;
2448   x_value_type_code       := 'S';
2449   l_output_value          :=  null;
2450   RETURN l_output_value;
2451 
2452  ELSIF NVL(p_source_3,'
2453 ') =  'ACCOUNT_SEGMENT_VALUE'
2454  THEN 
2455 --
2456   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2457 
2458       trace
2459          (p_msg      => 'END of AcctDerRule_17'
2460          ,p_level    => C_LEVEL_PROCEDURE
2461          ,p_module   => l_log_module);
2462 
2463   END IF;
2464   x_value_combination_id  := TO_NUMBER(p_source_27) ;
2465   x_value_segment_code    := 'GL_ACCOUNT' ;
2466   x_value_type_code       := 'S';
2467   l_output_value          :=  null;
2468   RETURN l_output_value;
2469 
2470  ELSE 
2471     IF p_override_seg_flag = 'Y' THEN 
2472        RETURN '#$NO_OVERRIDE#$';
2473     END IF;
2474  END IF;
2475 
2476 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2477 
2478       trace
2479          (p_msg      => 'END of AcctDerRule_17(invalid)'
2480          ,p_level    => C_LEVEL_PROCEDURE
2481          ,p_module   => l_log_module);
2482 
2483 END IF;
2484 
2485 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2486 x_value_combination_id  := null;
2487 x_value_segment_code    := null;
2488 x_value_type_code       := null;
2489 l_output_value          := null;
2490 xla_accounting_err_pkg.build_message
2491                  (p_appli_s_name            => 'XLA'
2492                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2493                  ,p_token_1                 => 'COMPONENT_NAME'
2494                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2495                                                             l_component_type
2496                                                           , l_component_code
2497                                                           , l_component_type_code
2498                                                           , l_component_appl_id
2499                                                           , l_amb_context_code
2500                                                           )
2501                  ,p_token_2                 => 'OWNER'
2502                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2503                                                         'XLA_OWNER_TYPE'
2504                                                         ,l_component_type_code
2505                                                         )
2506                  ,p_token_3                 => 'PAD_NAME'
2507                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2508                  ,p_token_4                 => 'PAD_OWNER'
2509                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2510                                                         'XLA_OWNER_TYPE'
2511                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2512                                                         )
2513                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2514                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2515                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2516                  ,p_ae_header_id            => NULL
2517 );
2518 RETURN l_output_value;
2519 EXCEPTION
2520   WHEN xla_exceptions_pkg.application_exception THEN
2521       RAISE;
2522   WHEN OTHERS THEN
2523        xla_exceptions_pkg.raise_message
2524            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_17');
2525 END AcctDerRule_17;
2526 --
2527 
2528 ---------------------------------------
2529 --
2530 -- PRIVATE FUNCTION
2531 --         AcctDerRule_18
2532 --
2533 ---------------------------------------
2534 FUNCTION AcctDerRule_18 (
2535   p_application_id             IN NUMBER
2536 , p_ae_header_id               IN NUMBER
2537 , p_side                       IN VARCHAR2
2541 , x_transaction_coa_id         OUT NOCOPY NUMBER
2538 , p_override_seg_flag          IN VARCHAR2 
2539 --Retainage Account
2540  , p_source_28            IN NUMBER
2542 , x_accounting_coa_id          OUT NOCOPY NUMBER
2543 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2544 , x_flex_value_set_id          OUT NOCOPY NUMBER
2545 , x_value_type_code            OUT NOCOPY VARCHAR2
2546 , x_value_combination_id       OUT NOCOPY NUMBER
2547 , x_value_segment_code         OUT NOCOPY VARCHAR2
2548 )
2549 RETURN VARCHAR2
2550 IS
2551 l_component_type       VARCHAR2(80)  ;
2552 l_component_code       VARCHAR2(30)  ;
2553 l_component_type_code  VARCHAR2(1)   ;
2554 l_component_appl_id    INTEGER       ;
2555 l_amb_context_code     VARCHAR2(30)  ;
2556 l_log_module           VARCHAR2(240) ;
2557 l_output_value         VARCHAR2(30)  ;
2558 BEGIN
2559 IF g_log_enabled THEN
2560       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_18';
2561 END IF;
2562 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2563 
2564       trace
2565          (p_msg      => 'BEGIN of AcctDerRule_18'
2566          ,p_level    => C_LEVEL_PROCEDURE
2567          ,p_module   => l_log_module);
2568 
2569 END IF;
2570 
2571 l_component_type         := 'AMB_ADR';
2572 l_component_code         := 'AP_RETAIN_NAT_ACCT_SEG';
2573 l_component_type_code    := 'S';
2574 l_component_appl_id      :=  200;
2575 l_amb_context_code       := 'DEFAULT';
2576 x_transaction_coa_id     :=  null;
2577 x_accounting_coa_id      :=  null;
2578 x_flexfield_segment_code := 'GL_ACCOUNT';
2579 x_flex_value_set_id      :=  null ;
2580 
2581 
2582 --
2583   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2584 
2585       trace
2586          (p_msg      => 'END of AcctDerRule_18'
2587          ,p_level    => C_LEVEL_PROCEDURE
2588          ,p_module   => l_log_module);
2589 
2590   END IF;
2591   x_value_combination_id  := TO_NUMBER(p_source_28) ;
2592   x_value_segment_code    := 'GL_ACCOUNT' ;
2593   x_value_type_code       := 'S';
2594   l_output_value          :=  null;
2595   RETURN l_output_value;
2596 
2597 
2598 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2599 
2600       trace
2601          (p_msg      => 'END of AcctDerRule_18(invalid)'
2602          ,p_level    => C_LEVEL_PROCEDURE
2603          ,p_module   => l_log_module);
2604 
2605 END IF;
2606 
2607 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2608 x_value_combination_id  := null;
2609 x_value_segment_code    := null;
2610 x_value_type_code       := null;
2611 l_output_value          := null;
2612 xla_accounting_err_pkg.build_message
2613                  (p_appli_s_name            => 'XLA'
2614                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2615                  ,p_token_1                 => 'COMPONENT_NAME'
2616                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2617                                                             l_component_type
2618                                                           , l_component_code
2619                                                           , l_component_type_code
2620                                                           , l_component_appl_id
2621                                                           , l_amb_context_code
2622                                                           )
2623                  ,p_token_2                 => 'OWNER'
2624                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2625                                                         'XLA_OWNER_TYPE'
2626                                                         ,l_component_type_code
2627                                                         )
2628                  ,p_token_3                 => 'PAD_NAME'
2629                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2630                  ,p_token_4                 => 'PAD_OWNER'
2631                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2632                                                         'XLA_OWNER_TYPE'
2633                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2634                                                         )
2635                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2636                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2637                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2638                  ,p_ae_header_id            => NULL
2639 );
2640 RETURN l_output_value;
2641 EXCEPTION
2642   WHEN xla_exceptions_pkg.application_exception THEN
2643       RAISE;
2644   WHEN OTHERS THEN
2645        xla_exceptions_pkg.raise_message
2646            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_18');
2647 END AcctDerRule_18;
2648 --
2649 
2650 ---------------------------------------
2651 --
2652 -- PRIVATE FUNCTION
2653 --         AcctDerRule_19
2654 --
2655 ---------------------------------------
2656 FUNCTION AcctDerRule_19 (
2657   p_application_id             IN NUMBER
2658 , p_ae_header_id               IN NUMBER
2659 , p_side                       IN VARCHAR2
2660 , p_override_seg_flag          IN VARCHAR2 
2661 --Payables Options Tax Difference Account
2662  , p_source_29            IN NUMBER
2663 , x_transaction_coa_id         OUT NOCOPY NUMBER
2664 , x_accounting_coa_id          OUT NOCOPY NUMBER
2665 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2666 , x_flex_value_set_id          OUT NOCOPY NUMBER
2667 , x_value_type_code            OUT NOCOPY VARCHAR2
2668 , x_value_combination_id       OUT NOCOPY NUMBER
2672 IS
2669 , x_value_segment_code         OUT NOCOPY VARCHAR2
2670 )
2671 RETURN VARCHAR2
2673 l_component_type       VARCHAR2(80)  ;
2674 l_component_code       VARCHAR2(30)  ;
2675 l_component_type_code  VARCHAR2(1)   ;
2676 l_component_appl_id    INTEGER       ;
2677 l_amb_context_code     VARCHAR2(30)  ;
2678 l_log_module           VARCHAR2(240) ;
2679 l_output_value         VARCHAR2(30)  ;
2680 BEGIN
2681 IF g_log_enabled THEN
2682       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_19';
2683 END IF;
2684 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2685 
2686       trace
2687          (p_msg      => 'BEGIN of AcctDerRule_19'
2688          ,p_level    => C_LEVEL_PROCEDURE
2689          ,p_module   => l_log_module);
2690 
2691 END IF;
2692 
2693 l_component_type         := 'AMB_ADR';
2694 l_component_code         := 'AP_TAX_DIFFERENCE_NAT_ACCT';
2695 l_component_type_code    := 'S';
2696 l_component_appl_id      :=  200;
2697 l_amb_context_code       := 'DEFAULT';
2698 x_transaction_coa_id     :=  null;
2699 x_accounting_coa_id      :=  null;
2700 x_flexfield_segment_code := 'GL_ACCOUNT';
2701 x_flex_value_set_id      :=  null ;
2702 
2703 
2704 --
2705   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2706 
2707       trace
2708          (p_msg      => 'END of AcctDerRule_19'
2709          ,p_level    => C_LEVEL_PROCEDURE
2710          ,p_module   => l_log_module);
2711 
2712   END IF;
2713   x_value_combination_id  := TO_NUMBER(p_source_29) ;
2714   x_value_segment_code    := 'GL_ACCOUNT' ;
2715   x_value_type_code       := 'S';
2716   l_output_value          :=  null;
2717   RETURN l_output_value;
2718 
2719 
2720 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2721 
2722       trace
2723          (p_msg      => 'END of AcctDerRule_19(invalid)'
2724          ,p_level    => C_LEVEL_PROCEDURE
2725          ,p_module   => l_log_module);
2726 
2727 END IF;
2728 
2729 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2730 x_value_combination_id  := null;
2731 x_value_segment_code    := null;
2732 x_value_type_code       := null;
2733 l_output_value          := null;
2734 xla_accounting_err_pkg.build_message
2735                  (p_appli_s_name            => 'XLA'
2736                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2737                  ,p_token_1                 => 'COMPONENT_NAME'
2738                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2739                                                             l_component_type
2740                                                           , l_component_code
2741                                                           , l_component_type_code
2742                                                           , l_component_appl_id
2743                                                           , l_amb_context_code
2744                                                           )
2745                  ,p_token_2                 => 'OWNER'
2746                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2747                                                         'XLA_OWNER_TYPE'
2748                                                         ,l_component_type_code
2749                                                         )
2750                  ,p_token_3                 => 'PAD_NAME'
2751                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2752                  ,p_token_4                 => 'PAD_OWNER'
2753                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2754                                                         'XLA_OWNER_TYPE'
2755                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2756                                                         )
2757                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2758                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2759                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2760                  ,p_ae_header_id            => NULL
2761 );
2762 RETURN l_output_value;
2763 EXCEPTION
2764   WHEN xla_exceptions_pkg.application_exception THEN
2765       RAISE;
2766   WHEN OTHERS THEN
2767        xla_exceptions_pkg.raise_message
2768            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_19');
2769 END AcctDerRule_19;
2770 --
2771 
2772 ---------------------------------------
2773 --
2774 -- PRIVATE FUNCTION
2775 --         AcctDerRule_20
2776 --
2777 ---------------------------------------
2778 FUNCTION AcctDerRule_20 (
2779   p_application_id             IN NUMBER
2780 , p_ae_header_id               IN NUMBER
2781 , p_side                       IN VARCHAR2
2782 , p_override_seg_flag          IN VARCHAR2 
2783 --Automatic Offsets Value
2784  , p_source_3            IN VARCHAR2
2785  , p_source_3_meaning    IN VARCHAR2
2786 --Discount Distribution Method
2787  , p_source_7            IN VARCHAR2
2788  , p_source_7_meaning    IN VARCHAR2
2789 --Invoice Distribution Account
2790  , p_source_18            IN NUMBER
2791 , x_transaction_coa_id         OUT NOCOPY NUMBER
2792 , x_accounting_coa_id          OUT NOCOPY NUMBER
2793 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2794 , x_flex_value_set_id          OUT NOCOPY NUMBER
2795 , x_value_type_code            OUT NOCOPY VARCHAR2
2796 , x_value_combination_id       OUT NOCOPY NUMBER
2797 , x_value_segment_code         OUT NOCOPY VARCHAR2
2798 )
2799 RETURN VARCHAR2
2800 IS
2801 l_component_type       VARCHAR2(80)  ;
2802 l_component_code       VARCHAR2(30)  ;
2806 l_log_module           VARCHAR2(240) ;
2803 l_component_type_code  VARCHAR2(1)   ;
2804 l_component_appl_id    INTEGER       ;
2805 l_amb_context_code     VARCHAR2(30)  ;
2807 l_output_value         VARCHAR2(30)  ;
2808 BEGIN
2809 IF g_log_enabled THEN
2810       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_20';
2811 END IF;
2812 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2813 
2814       trace
2815          (p_msg      => 'BEGIN of AcctDerRule_20'
2816          ,p_level    => C_LEVEL_PROCEDURE
2817          ,p_module   => l_log_module);
2818 
2819 END IF;
2820 
2821 l_component_type         := 'AMB_ADR';
2822 l_component_code         := 'AP_DISCOUNT_BAL_ACCT_SEG';
2823 l_component_type_code    := 'S';
2824 l_component_appl_id      :=  200;
2825 l_amb_context_code       := 'DEFAULT';
2826 x_transaction_coa_id     :=  null;
2827 x_accounting_coa_id      :=  null;
2828 x_flexfield_segment_code := 'GL_BALANCING';
2829 x_flex_value_set_id      :=  null ;
2830 
2831 
2832  IF NVL(p_source_7,'
2833 ') =  'SYSTEM' AND 
2834 NVL(p_source_3,'
2835 ') =  'BALANCING_SEGMENT'
2836  THEN 
2837 --
2838   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2839 
2840       trace
2841          (p_msg      => 'END of AcctDerRule_20'
2842          ,p_level    => C_LEVEL_PROCEDURE
2843          ,p_module   => l_log_module);
2844 
2845   END IF;
2846   x_value_combination_id  := TO_NUMBER(p_source_18) ;
2847   x_value_segment_code    := 'GL_BALANCING' ;
2848   x_value_type_code       := 'S';
2849   l_output_value          :=  null;
2850   RETURN l_output_value;
2851 
2852  ELSE 
2853     IF p_override_seg_flag = 'Y' THEN 
2854        RETURN '#$NO_OVERRIDE#$';
2855     END IF;
2856  END IF;
2857 
2858 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2859 
2860       trace
2861          (p_msg      => 'END of AcctDerRule_20(invalid)'
2862          ,p_level    => C_LEVEL_PROCEDURE
2863          ,p_module   => l_log_module);
2864 
2865 END IF;
2866 
2867 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2868 x_value_combination_id  := null;
2869 x_value_segment_code    := null;
2870 x_value_type_code       := null;
2871 l_output_value          := null;
2872 xla_accounting_err_pkg.build_message
2873                  (p_appli_s_name            => 'XLA'
2874                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2875                  ,p_token_1                 => 'COMPONENT_NAME'
2876                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2877                                                             l_component_type
2878                                                           , l_component_code
2879                                                           , l_component_type_code
2880                                                           , l_component_appl_id
2881                                                           , l_amb_context_code
2882                                                           )
2883                  ,p_token_2                 => 'OWNER'
2884                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2885                                                         'XLA_OWNER_TYPE'
2886                                                         ,l_component_type_code
2887                                                         )
2888                  ,p_token_3                 => 'PAD_NAME'
2889                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2890                  ,p_token_4                 => 'PAD_OWNER'
2891                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2892                                                         'XLA_OWNER_TYPE'
2893                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2894                                                         )
2895                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2896                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2897                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2898                  ,p_ae_header_id            => NULL
2899 );
2900 RETURN l_output_value;
2901 EXCEPTION
2902   WHEN xla_exceptions_pkg.application_exception THEN
2903       RAISE;
2904   WHEN OTHERS THEN
2905        xla_exceptions_pkg.raise_message
2906            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_20');
2907 END AcctDerRule_20;
2908 --
2909 
2910 ---------------------------------------
2911 --
2912 -- PRIVATE FUNCTION
2913 --         AcctDerRule_21
2914 --
2915 ---------------------------------------
2916 FUNCTION AcctDerRule_21 (
2917   p_application_id             IN NUMBER
2918 , p_ae_header_id               IN NUMBER
2919 , p_side                       IN VARCHAR2
2920 , p_override_seg_flag          IN VARCHAR2 
2921 --Automatic Offsets Value
2922  , p_source_3            IN VARCHAR2
2923  , p_source_3_meaning    IN VARCHAR2
2924 --Invoice Distribution Account
2925  , p_source_18            IN NUMBER
2926 , x_transaction_coa_id         OUT NOCOPY NUMBER
2927 , x_accounting_coa_id          OUT NOCOPY NUMBER
2928 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2929 , x_flex_value_set_id          OUT NOCOPY NUMBER
2930 , x_value_type_code            OUT NOCOPY VARCHAR2
2931 , x_value_combination_id       OUT NOCOPY NUMBER
2932 , x_value_segment_code         OUT NOCOPY VARCHAR2
2933 )
2934 RETURN VARCHAR2
2935 IS
2936 l_component_type       VARCHAR2(80)  ;
2937 l_component_code       VARCHAR2(30)  ;
2941 l_log_module           VARCHAR2(240) ;
2938 l_component_type_code  VARCHAR2(1)   ;
2939 l_component_appl_id    INTEGER       ;
2940 l_amb_context_code     VARCHAR2(30)  ;
2942 l_output_value         VARCHAR2(30)  ;
2943 BEGIN
2944 IF g_log_enabled THEN
2945       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_21';
2946 END IF;
2947 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2948 
2949       trace
2950          (p_msg      => 'BEGIN of AcctDerRule_21'
2951          ,p_level    => C_LEVEL_PROCEDURE
2952          ,p_module   => l_log_module);
2953 
2954 END IF;
2955 
2956 l_component_type         := 'AMB_ADR';
2957 l_component_code         := 'AP_INV_DIST_BAL_SEG';
2958 l_component_type_code    := 'S';
2959 l_component_appl_id      :=  200;
2960 l_amb_context_code       := 'DEFAULT';
2961 x_transaction_coa_id     :=  null;
2962 x_accounting_coa_id      :=  null;
2963 x_flexfield_segment_code := 'GL_BALANCING';
2964 x_flex_value_set_id      :=  null ;
2965 
2966 
2967  IF NVL(p_source_3,'
2968 ') =  'BALANCING_SEGMENT'
2969  THEN 
2970 --
2971   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2972 
2973       trace
2974          (p_msg      => 'END of AcctDerRule_21'
2975          ,p_level    => C_LEVEL_PROCEDURE
2976          ,p_module   => l_log_module);
2977 
2978   END IF;
2979   x_value_combination_id  := TO_NUMBER(p_source_18) ;
2980   x_value_segment_code    := 'GL_BALANCING' ;
2981   x_value_type_code       := 'S';
2982   l_output_value          :=  null;
2983   RETURN l_output_value;
2984 
2985  ELSE 
2986     IF p_override_seg_flag = 'Y' THEN 
2987        RETURN '#$NO_OVERRIDE#$';
2988     END IF;
2989  END IF;
2990 
2991 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2992 
2993       trace
2994          (p_msg      => 'END of AcctDerRule_21(invalid)'
2995          ,p_level    => C_LEVEL_PROCEDURE
2996          ,p_module   => l_log_module);
2997 
2998 END IF;
2999 
3000 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3001 x_value_combination_id  := null;
3002 x_value_segment_code    := null;
3003 x_value_type_code       := null;
3004 l_output_value          := null;
3005 xla_accounting_err_pkg.build_message
3006                  (p_appli_s_name            => 'XLA'
3007                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3008                  ,p_token_1                 => 'COMPONENT_NAME'
3009                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3010                                                             l_component_type
3011                                                           , l_component_code
3012                                                           , l_component_type_code
3013                                                           , l_component_appl_id
3014                                                           , l_amb_context_code
3015                                                           )
3016                  ,p_token_2                 => 'OWNER'
3017                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3018                                                         'XLA_OWNER_TYPE'
3019                                                         ,l_component_type_code
3020                                                         )
3021                  ,p_token_3                 => 'PAD_NAME'
3022                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3023                  ,p_token_4                 => 'PAD_OWNER'
3024                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3025                                                         'XLA_OWNER_TYPE'
3026                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3027                                                         )
3028                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3029                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3030                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3031                  ,p_ae_header_id            => NULL
3032 );
3033 RETURN l_output_value;
3034 EXCEPTION
3035   WHEN xla_exceptions_pkg.application_exception THEN
3036       RAISE;
3037   WHEN OTHERS THEN
3038        xla_exceptions_pkg.raise_message
3039            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_21');
3040 END AcctDerRule_21;
3041 --
3042 
3043 ---------------------------------------
3044 --
3045 -- PRIVATE FUNCTION
3046 --         AcctDerRule_22
3047 --
3048 ---------------------------------------
3049 FUNCTION AcctDerRule_22 (
3050   p_application_id             IN NUMBER
3051 , p_ae_header_id               IN NUMBER
3052 , p_side                       IN VARCHAR2
3053 , p_override_seg_flag          IN VARCHAR2 
3054 --Automatic Offsets Value
3055  , p_source_3            IN VARCHAR2
3056  , p_source_3_meaning    IN VARCHAR2
3057 --Destination Type of the PO Distribution
3058  , p_source_10            IN VARCHAR2
3059  , p_source_10_meaning    IN VARCHAR2
3060 --Invoice Distribution Account
3061  , p_source_18            IN NUMBER
3062 , x_transaction_coa_id         OUT NOCOPY NUMBER
3063 , x_accounting_coa_id          OUT NOCOPY NUMBER
3064 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3065 , x_flex_value_set_id          OUT NOCOPY NUMBER
3066 , x_value_type_code            OUT NOCOPY VARCHAR2
3067 , x_value_combination_id       OUT NOCOPY NUMBER
3068 , x_value_segment_code         OUT NOCOPY VARCHAR2
3069 )
3070 RETURN VARCHAR2
3071 IS
3072 l_component_type       VARCHAR2(80)  ;
3073 l_component_code       VARCHAR2(30)  ;
3077 l_log_module           VARCHAR2(240) ;
3074 l_component_type_code  VARCHAR2(1)   ;
3075 l_component_appl_id    INTEGER       ;
3076 l_amb_context_code     VARCHAR2(30)  ;
3078 l_output_value         VARCHAR2(30)  ;
3079 BEGIN
3080 IF g_log_enabled THEN
3081       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_22';
3082 END IF;
3083 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3084 
3085       trace
3086          (p_msg      => 'BEGIN of AcctDerRule_22'
3087          ,p_level    => C_LEVEL_PROCEDURE
3088          ,p_module   => l_log_module);
3089 
3090 END IF;
3091 
3092 l_component_type         := 'AMB_ADR';
3093 l_component_code         := 'AP_RELATED_DIST_BAL_SEG';
3094 l_component_type_code    := 'S';
3095 l_component_appl_id      :=  200;
3096 l_amb_context_code       := 'DEFAULT';
3097 x_transaction_coa_id     :=  null;
3098 x_accounting_coa_id      :=  null;
3099 x_flexfield_segment_code := 'GL_BALANCING';
3100 x_flex_value_set_id      :=  null ;
3101 
3102 
3103  IF NVL(p_source_3,'
3104 ') =  'BALANCING_SEGMENT' AND 
3105 NVL(p_source_10,'
3106 ') =  'INVENTORY'
3107  THEN 
3108 --
3109   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3110 
3111       trace
3112          (p_msg      => 'END of AcctDerRule_22'
3113          ,p_level    => C_LEVEL_PROCEDURE
3114          ,p_module   => l_log_module);
3115 
3116   END IF;
3117   x_value_combination_id  := TO_NUMBER(p_source_18) ;
3118   x_value_segment_code    := 'GL_BALANCING' ;
3119   x_value_type_code       := 'S';
3120   l_output_value          :=  null;
3121   RETURN l_output_value;
3122 
3123  ELSE 
3124     IF p_override_seg_flag = 'Y' THEN 
3125        RETURN '#$NO_OVERRIDE#$';
3126     END IF;
3127  END IF;
3128 
3129 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3130 
3131       trace
3132          (p_msg      => 'END of AcctDerRule_22(invalid)'
3133          ,p_level    => C_LEVEL_PROCEDURE
3134          ,p_module   => l_log_module);
3135 
3136 END IF;
3137 
3138 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3139 x_value_combination_id  := null;
3140 x_value_segment_code    := null;
3141 x_value_type_code       := null;
3142 l_output_value          := null;
3143 xla_accounting_err_pkg.build_message
3144                  (p_appli_s_name            => 'XLA'
3145                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3146                  ,p_token_1                 => 'COMPONENT_NAME'
3147                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3148                                                             l_component_type
3149                                                           , l_component_code
3150                                                           , l_component_type_code
3151                                                           , l_component_appl_id
3152                                                           , l_amb_context_code
3153                                                           )
3154                  ,p_token_2                 => 'OWNER'
3155                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3156                                                         'XLA_OWNER_TYPE'
3157                                                         ,l_component_type_code
3158                                                         )
3159                  ,p_token_3                 => 'PAD_NAME'
3160                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3161                  ,p_token_4                 => 'PAD_OWNER'
3162                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3163                                                         'XLA_OWNER_TYPE'
3164                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3165                                                         )
3166                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3167                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3168                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3169                  ,p_ae_header_id            => NULL
3170 );
3171 RETURN l_output_value;
3172 EXCEPTION
3173   WHEN xla_exceptions_pkg.application_exception THEN
3174       RAISE;
3175   WHEN OTHERS THEN
3176        xla_exceptions_pkg.raise_message
3177            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_22');
3178 END AcctDerRule_22;
3179 --
3180 
3181 ---------------------------------------
3182 --
3183 -- PRIVATE FUNCTION
3184 --         AcctDerRule_23
3185 --
3186 ---------------------------------------
3187 FUNCTION AcctDerRule_23 (
3188   p_application_id             IN NUMBER
3189 , p_ae_header_id               IN NUMBER
3190 , p_side                       IN VARCHAR2
3191 , p_override_seg_flag          IN VARCHAR2 
3192 --Automatic Offsets Value
3193  , p_source_3            IN VARCHAR2
3194  , p_source_3_meaning    IN VARCHAR2
3195 --Retainage Related Item Distribution Account
3196  , p_source_30            IN NUMBER
3197 , x_transaction_coa_id         OUT NOCOPY NUMBER
3198 , x_accounting_coa_id          OUT NOCOPY NUMBER
3199 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3200 , x_flex_value_set_id          OUT NOCOPY NUMBER
3201 , x_value_type_code            OUT NOCOPY VARCHAR2
3202 , x_value_combination_id       OUT NOCOPY NUMBER
3203 , x_value_segment_code         OUT NOCOPY VARCHAR2
3204 )
3205 RETURN VARCHAR2
3206 IS
3207 l_component_type       VARCHAR2(80)  ;
3208 l_component_code       VARCHAR2(30)  ;
3209 l_component_type_code  VARCHAR2(1)   ;
3213 l_output_value         VARCHAR2(30)  ;
3210 l_component_appl_id    INTEGER       ;
3211 l_amb_context_code     VARCHAR2(30)  ;
3212 l_log_module           VARCHAR2(240) ;
3214 BEGIN
3215 IF g_log_enabled THEN
3216       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_23';
3217 END IF;
3218 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3219 
3220       trace
3221          (p_msg      => 'BEGIN of AcctDerRule_23'
3222          ,p_level    => C_LEVEL_PROCEDURE
3223          ,p_module   => l_log_module);
3224 
3225 END IF;
3226 
3227 l_component_type         := 'AMB_ADR';
3228 l_component_code         := 'AP_RETAIN_RELATED_BAL_SEG';
3229 l_component_type_code    := 'S';
3230 l_component_appl_id      :=  200;
3231 l_amb_context_code       := 'DEFAULT';
3232 x_transaction_coa_id     :=  null;
3233 x_accounting_coa_id      :=  null;
3234 x_flexfield_segment_code := 'GL_BALANCING';
3235 x_flex_value_set_id      :=  null ;
3236 
3237 
3238  IF NVL(p_source_3,'
3239 ') =  'BALANCING_SEGMENT'
3240  THEN 
3241 --
3242   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3243 
3244       trace
3245          (p_msg      => 'END of AcctDerRule_23'
3246          ,p_level    => C_LEVEL_PROCEDURE
3247          ,p_module   => l_log_module);
3248 
3249   END IF;
3250   x_value_combination_id  := TO_NUMBER(p_source_30) ;
3251   x_value_segment_code    := 'GL_BALANCING' ;
3252   x_value_type_code       := 'S';
3253   l_output_value          :=  null;
3254   RETURN l_output_value;
3255 
3256  ELSE 
3257     IF p_override_seg_flag = 'Y' THEN 
3258        RETURN '#$NO_OVERRIDE#$';
3259     END IF;
3260  END IF;
3261 
3262 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3263 
3264       trace
3265          (p_msg      => 'END of AcctDerRule_23(invalid)'
3266          ,p_level    => C_LEVEL_PROCEDURE
3267          ,p_module   => l_log_module);
3268 
3269 END IF;
3270 
3271 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3272 x_value_combination_id  := null;
3273 x_value_segment_code    := null;
3274 x_value_type_code       := null;
3275 l_output_value          := null;
3276 xla_accounting_err_pkg.build_message
3277                  (p_appli_s_name            => 'XLA'
3278                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3279                  ,p_token_1                 => 'COMPONENT_NAME'
3280                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3281                                                             l_component_type
3282                                                           , l_component_code
3283                                                           , l_component_type_code
3284                                                           , l_component_appl_id
3285                                                           , l_amb_context_code
3286                                                           )
3287                  ,p_token_2                 => 'OWNER'
3288                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3289                                                         'XLA_OWNER_TYPE'
3290                                                         ,l_component_type_code
3291                                                         )
3292                  ,p_token_3                 => 'PAD_NAME'
3293                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3294                  ,p_token_4                 => 'PAD_OWNER'
3295                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3296                                                         'XLA_OWNER_TYPE'
3297                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3298                                                         )
3299                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3300                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3301                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3302                  ,p_ae_header_id            => NULL
3303 );
3304 RETURN l_output_value;
3305 EXCEPTION
3306   WHEN xla_exceptions_pkg.application_exception THEN
3307       RAISE;
3308   WHEN OTHERS THEN
3309        xla_exceptions_pkg.raise_message
3310            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_23');
3311 END AcctDerRule_23;
3312 --
3313 
3314 ---------------------------------------
3315 --
3316 -- PRIVATE FUNCTION
3317 --         AcctDerRule_24
3318 --
3319 ---------------------------------------
3320 FUNCTION AcctDerRule_24 (
3321   p_application_id             IN NUMBER
3322 , p_ae_header_id               IN NUMBER
3323 , p_side                       IN VARCHAR2
3324 , p_override_seg_flag          IN VARCHAR2 
3325 --Automatic Offsets Value
3326  , p_source_3            IN VARCHAR2
3327  , p_source_3_meaning    IN VARCHAR2
3328 --Withholding Related Distribution Account
3329  , p_source_31            IN NUMBER
3330 , x_transaction_coa_id         OUT NOCOPY NUMBER
3331 , x_accounting_coa_id          OUT NOCOPY NUMBER
3332 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3333 , x_flex_value_set_id          OUT NOCOPY NUMBER
3334 , x_value_type_code            OUT NOCOPY VARCHAR2
3335 , x_value_combination_id       OUT NOCOPY NUMBER
3336 , x_value_segment_code         OUT NOCOPY VARCHAR2
3337 )
3338 RETURN VARCHAR2
3339 IS
3340 l_component_type       VARCHAR2(80)  ;
3341 l_component_code       VARCHAR2(30)  ;
3342 l_component_type_code  VARCHAR2(1)   ;
3343 l_component_appl_id    INTEGER       ;
3344 l_amb_context_code     VARCHAR2(30)  ;
3348 IF g_log_enabled THEN
3345 l_log_module           VARCHAR2(240) ;
3346 l_output_value         VARCHAR2(30)  ;
3347 BEGIN
3349       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_24';
3350 END IF;
3351 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3352 
3353       trace
3354          (p_msg      => 'BEGIN of AcctDerRule_24'
3355          ,p_level    => C_LEVEL_PROCEDURE
3356          ,p_module   => l_log_module);
3357 
3358 END IF;
3359 
3360 l_component_type         := 'AMB_ADR';
3361 l_component_code         := 'AP_WH_RELATED_DIST_BAL_SEG';
3362 l_component_type_code    := 'S';
3363 l_component_appl_id      :=  200;
3364 l_amb_context_code       := 'DEFAULT';
3365 x_transaction_coa_id     :=  null;
3366 x_accounting_coa_id      :=  null;
3367 x_flexfield_segment_code := 'GL_BALANCING';
3368 x_flex_value_set_id      :=  null ;
3369 
3370 
3371  IF NVL(p_source_3,'
3372 ') =  'BALANCING_SEGMENT'
3373  THEN 
3374 --
3375   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3376 
3377       trace
3378          (p_msg      => 'END of AcctDerRule_24'
3379          ,p_level    => C_LEVEL_PROCEDURE
3380          ,p_module   => l_log_module);
3381 
3382   END IF;
3383   x_value_combination_id  := TO_NUMBER(p_source_31) ;
3384   x_value_segment_code    := 'GL_BALANCING' ;
3385   x_value_type_code       := 'S';
3386   l_output_value          :=  null;
3387   RETURN l_output_value;
3388 
3389  ELSE 
3390     IF p_override_seg_flag = 'Y' THEN 
3391        RETURN '#$NO_OVERRIDE#$';
3392     END IF;
3393  END IF;
3394 
3395 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3396 
3397       trace
3398          (p_msg      => 'END of AcctDerRule_24(invalid)'
3399          ,p_level    => C_LEVEL_PROCEDURE
3400          ,p_module   => l_log_module);
3401 
3402 END IF;
3403 
3404 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3405 x_value_combination_id  := null;
3406 x_value_segment_code    := null;
3407 x_value_type_code       := null;
3408 l_output_value          := null;
3409 xla_accounting_err_pkg.build_message
3410                  (p_appli_s_name            => 'XLA'
3411                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3412                  ,p_token_1                 => 'COMPONENT_NAME'
3413                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3414                                                             l_component_type
3415                                                           , l_component_code
3416                                                           , l_component_type_code
3417                                                           , l_component_appl_id
3418                                                           , l_amb_context_code
3419                                                           )
3420                  ,p_token_2                 => 'OWNER'
3421                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3422                                                         'XLA_OWNER_TYPE'
3423                                                         ,l_component_type_code
3424                                                         )
3425                  ,p_token_3                 => 'PAD_NAME'
3426                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3427                  ,p_token_4                 => 'PAD_OWNER'
3428                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3429                                                         'XLA_OWNER_TYPE'
3430                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3431                                                         )
3432                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3433                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3434                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3435                  ,p_ae_header_id            => NULL
3436 );
3437 RETURN l_output_value;
3438 EXCEPTION
3439   WHEN xla_exceptions_pkg.application_exception THEN
3440       RAISE;
3441   WHEN OTHERS THEN
3442        xla_exceptions_pkg.raise_message
3443            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_24');
3444 END AcctDerRule_24;
3445 --
3446 
3447 ---------------------------------------
3448 --
3449 -- PRIVATE FUNCTION
3450 --         AcctDerRule_25
3451 --
3452 ---------------------------------------
3453 FUNCTION AcctDerRule_25 (
3454   p_application_id              IN NUMBER
3455 , p_ae_header_id                IN NUMBER
3456 , p_side                        IN VARCHAR2 
3457 --Bank Charges Account
3458  , p_source_2            IN NUMBER
3459 --Automatic Offsets Value
3460  , p_source_3            IN VARCHAR2
3461  , p_source_3_meaning    IN VARCHAR2
3462 --Invoice Distribution Account
3463  , p_source_18            IN NUMBER
3464 , x_transaction_coa_id         OUT NOCOPY NUMBER
3465 , x_accounting_coa_id          OUT NOCOPY NUMBER
3466 , x_value_type_code            OUT NOCOPY VARCHAR2
3467 )
3468 RETURN NUMBER
3469 IS
3470 l_component_type       VARCHAR2(80)  ;
3471 l_component_code       VARCHAR2(30)  ;
3472 l_component_type_code  VARCHAR2(1)   ;
3473 l_component_appl_id    INTEGER       ;
3474 l_amb_context_code     VARCHAR2(30)  ;
3475 l_log_module           VARCHAR2(240) ;
3476 l_output_value         NUMBER        ;
3477 BEGIN
3478 IF g_log_enabled THEN
3479       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_25';
3480 END IF;
3481 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3482       trace
3486 END IF;
3483          (p_msg      => 'BEGIN of AcctDerRule_25'
3484          ,p_level    => C_LEVEL_PROCEDURE
3485          ,p_module   => l_log_module);
3487 --
3488 l_component_type         := 'AMB_ADR';
3489 l_component_code         := 'AP_BANK_CHARGES';
3490 l_component_type_code    := 'S';
3491 l_component_appl_id      :=  200;
3492 l_amb_context_code       := 'DEFAULT';
3493 x_transaction_coa_id     :=  null;
3494 x_accounting_coa_id      :=  null;
3495 --
3496 
3497  IF NVL(p_source_3,'
3498 ') <>  'ACCOUNT_SEGMENT_VALUE'
3499  THEN 
3500  --
3501   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3502       trace
3503          (p_msg      => 'END of AcctDerRule_25'
3504          ,p_level    => C_LEVEL_PROCEDURE
3505          ,p_module   => l_log_module);
3506   END IF;
3507   x_value_type_code := 'S';
3508   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_2));
3509   RETURN l_output_value;
3510 
3511  ELSIF NVL(p_source_3,'
3512 ') =  'ACCOUNT_SEGMENT_VALUE'
3513  THEN 
3514  --
3515   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3516       trace
3517          (p_msg      => 'END of AcctDerRule_25'
3518          ,p_level    => C_LEVEL_PROCEDURE
3519          ,p_module   => l_log_module);
3520   END IF;
3521   x_value_type_code := 'S';
3522   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
3523   RETURN l_output_value;
3524 
3525  END IF;
3526 --
3527 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3528       trace
3529          (p_msg      => 'END of AcctDerRule_25(invalid)'
3530          ,p_level    => C_LEVEL_PROCEDURE
3531          ,p_module   => l_log_module);
3532 END IF;
3533 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3534 x_value_type_code := null;
3535 l_output_value    := null;
3536 xla_accounting_err_pkg.build_message
3537                  (p_appli_s_name            => 'XLA'
3538                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3539                  ,p_token_1                 => 'COMPONENT_NAME'
3540                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3541                                                             l_component_type
3542                                                           , l_component_code
3543                                                           , l_component_type_code
3544                                                           , l_component_appl_id
3545                                                           , l_amb_context_code
3546                                                           )
3547                  ,p_token_2                 => 'OWNER'
3548                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3549                                                         'XLA_OWNER_TYPE'
3550                                                         ,l_component_type_code
3551                                                         )
3552                  ,p_token_3                 => 'PAD_NAME'
3553                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3554                  ,p_token_4                 => 'PAD_OWNER'
3555                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3556                                                         'XLA_OWNER_TYPE'
3557                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3558                                                         )
3559                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3560                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3561                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3562                  ,p_ae_header_id            => NULL
3563 );
3564 RETURN l_output_value;
3565 EXCEPTION
3566   WHEN xla_exceptions_pkg.application_exception THEN
3567       RAISE;
3568   WHEN OTHERS THEN
3569        xla_exceptions_pkg.raise_message
3570            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_25');
3571 END AcctDerRule_25;
3572 --
3573 
3574 ---------------------------------------
3575 --
3576 -- PRIVATE FUNCTION
3577 --         AcctDerRule_26
3578 --
3579 ---------------------------------------
3580 FUNCTION AcctDerRule_26 (
3581   p_application_id              IN NUMBER
3582 , p_ae_header_id                IN NUMBER
3583 , p_side                        IN VARCHAR2 
3584 --Automatic Offsets Value
3585  , p_source_3            IN VARCHAR2
3586  , p_source_3_meaning    IN VARCHAR2
3587 --Bank Errors Account
3588  , p_source_4            IN NUMBER
3589 --Invoice Distribution Account
3590  , p_source_18            IN NUMBER
3591 , x_transaction_coa_id         OUT NOCOPY NUMBER
3592 , x_accounting_coa_id          OUT NOCOPY NUMBER
3593 , x_value_type_code            OUT NOCOPY VARCHAR2
3594 )
3595 RETURN NUMBER
3596 IS
3597 l_component_type       VARCHAR2(80)  ;
3598 l_component_code       VARCHAR2(30)  ;
3599 l_component_type_code  VARCHAR2(1)   ;
3600 l_component_appl_id    INTEGER       ;
3601 l_amb_context_code     VARCHAR2(30)  ;
3602 l_log_module           VARCHAR2(240) ;
3603 l_output_value         NUMBER        ;
3604 BEGIN
3605 IF g_log_enabled THEN
3606       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_26';
3607 END IF;
3608 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3609       trace
3610          (p_msg      => 'BEGIN of AcctDerRule_26'
3611          ,p_level    => C_LEVEL_PROCEDURE
3612          ,p_module   => l_log_module);
3613 END IF;
3614 --
3615 l_component_type         := 'AMB_ADR';
3616 l_component_code         := 'AP_BANK_ERRORS';
3617 l_component_type_code    := 'S';
3621 x_accounting_coa_id      :=  null;
3618 l_component_appl_id      :=  200;
3619 l_amb_context_code       := 'DEFAULT';
3620 x_transaction_coa_id     :=  null;
3622 --
3623 
3624  IF NVL(p_source_3,'
3625 ') <>  'ACCOUNT_SEGMENT_VALUE'
3626  THEN 
3627  --
3628   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3629       trace
3630          (p_msg      => 'END of AcctDerRule_26'
3631          ,p_level    => C_LEVEL_PROCEDURE
3632          ,p_module   => l_log_module);
3633   END IF;
3634   x_value_type_code := 'S';
3635   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_4));
3636   RETURN l_output_value;
3637 
3638  ELSIF NVL(p_source_3,'
3639 ') =  'ACCOUNT_SEGMENT_VALUE'
3640  THEN 
3641  --
3642   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3643       trace
3644          (p_msg      => 'END of AcctDerRule_26'
3645          ,p_level    => C_LEVEL_PROCEDURE
3646          ,p_module   => l_log_module);
3647   END IF;
3648   x_value_type_code := 'S';
3649   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
3650   RETURN l_output_value;
3651 
3652  END IF;
3653 --
3654 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3655       trace
3656          (p_msg      => 'END of AcctDerRule_26(invalid)'
3657          ,p_level    => C_LEVEL_PROCEDURE
3658          ,p_module   => l_log_module);
3659 END IF;
3660 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3661 x_value_type_code := null;
3662 l_output_value    := null;
3663 xla_accounting_err_pkg.build_message
3664                  (p_appli_s_name            => 'XLA'
3665                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3666                  ,p_token_1                 => 'COMPONENT_NAME'
3667                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3668                                                             l_component_type
3669                                                           , l_component_code
3670                                                           , l_component_type_code
3671                                                           , l_component_appl_id
3672                                                           , l_amb_context_code
3673                                                           )
3674                  ,p_token_2                 => 'OWNER'
3675                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3676                                                         'XLA_OWNER_TYPE'
3677                                                         ,l_component_type_code
3678                                                         )
3679                  ,p_token_3                 => 'PAD_NAME'
3680                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3681                  ,p_token_4                 => 'PAD_OWNER'
3682                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3683                                                         'XLA_OWNER_TYPE'
3684                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3685                                                         )
3686                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3687                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3688                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3689                  ,p_ae_header_id            => NULL
3690 );
3691 RETURN l_output_value;
3692 EXCEPTION
3693   WHEN xla_exceptions_pkg.application_exception THEN
3694       RAISE;
3695   WHEN OTHERS THEN
3696        xla_exceptions_pkg.raise_message
3697            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_26');
3698 END AcctDerRule_26;
3699 --
3700 
3701 ---------------------------------------
3702 --
3703 -- PRIVATE FUNCTION
3704 --         AcctDerRule_27
3705 --
3706 ---------------------------------------
3707 FUNCTION AcctDerRule_27 (
3708   p_application_id              IN NUMBER
3709 , p_ae_header_id                IN NUMBER
3710 , p_side                        IN VARCHAR2 
3711 --Bank Cash Account
3712  , p_source_5            IN NUMBER
3713 , x_transaction_coa_id         OUT NOCOPY NUMBER
3714 , x_accounting_coa_id          OUT NOCOPY NUMBER
3715 , x_value_type_code            OUT NOCOPY VARCHAR2
3716 )
3717 RETURN NUMBER
3718 IS
3719 l_component_type       VARCHAR2(80)  ;
3720 l_component_code       VARCHAR2(30)  ;
3721 l_component_type_code  VARCHAR2(1)   ;
3722 l_component_appl_id    INTEGER       ;
3723 l_amb_context_code     VARCHAR2(30)  ;
3724 l_log_module           VARCHAR2(240) ;
3725 l_output_value         NUMBER        ;
3726 BEGIN
3727 IF g_log_enabled THEN
3728       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_27';
3729 END IF;
3730 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3731       trace
3732          (p_msg      => 'BEGIN of AcctDerRule_27'
3733          ,p_level    => C_LEVEL_PROCEDURE
3734          ,p_module   => l_log_module);
3735 END IF;
3736 --
3737 l_component_type         := 'AMB_ADR';
3738 l_component_code         := 'AP_CASH';
3739 l_component_type_code    := 'S';
3740 l_component_appl_id      :=  200;
3741 l_amb_context_code       := 'DEFAULT';
3742 x_transaction_coa_id     :=  null;
3743 x_accounting_coa_id      :=  null;
3744 --
3745 
3746  --
3747   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3748       trace
3749          (p_msg      => 'END of AcctDerRule_27'
3750          ,p_level    => C_LEVEL_PROCEDURE
3751          ,p_module   => l_log_module);
3752   END IF;
3753   x_value_type_code := 'S';
3757 --
3754   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_5));
3755   RETURN l_output_value;
3756 
3758 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3759       trace
3760          (p_msg      => 'END of AcctDerRule_27(invalid)'
3761          ,p_level    => C_LEVEL_PROCEDURE
3762          ,p_module   => l_log_module);
3763 END IF;
3764 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3765 x_value_type_code := null;
3766 l_output_value    := null;
3767 xla_accounting_err_pkg.build_message
3768                  (p_appli_s_name            => 'XLA'
3769                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3770                  ,p_token_1                 => 'COMPONENT_NAME'
3771                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3772                                                             l_component_type
3773                                                           , l_component_code
3774                                                           , l_component_type_code
3775                                                           , l_component_appl_id
3776                                                           , l_amb_context_code
3777                                                           )
3778                  ,p_token_2                 => 'OWNER'
3779                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3780                                                         'XLA_OWNER_TYPE'
3781                                                         ,l_component_type_code
3782                                                         )
3783                  ,p_token_3                 => 'PAD_NAME'
3784                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3785                  ,p_token_4                 => 'PAD_OWNER'
3786                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3787                                                         'XLA_OWNER_TYPE'
3788                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3789                                                         )
3790                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3791                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3792                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3793                  ,p_ae_header_id            => NULL
3794 );
3795 RETURN l_output_value;
3796 EXCEPTION
3797   WHEN xla_exceptions_pkg.application_exception THEN
3798       RAISE;
3799   WHEN OTHERS THEN
3800        xla_exceptions_pkg.raise_message
3801            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_27');
3802 END AcctDerRule_27;
3803 --
3804 
3805 ---------------------------------------
3806 --
3807 -- PRIVATE FUNCTION
3808 --         AcctDerRule_28
3809 --
3810 ---------------------------------------
3811 FUNCTION AcctDerRule_28 (
3812   p_application_id              IN NUMBER
3813 , p_ae_header_id                IN NUMBER
3814 , p_side                        IN VARCHAR2 
3815 --Automatic Offsets Value
3816  , p_source_3            IN VARCHAR2
3817  , p_source_3_meaning    IN VARCHAR2
3818 --System Discount Account
3819  , p_source_6            IN NUMBER
3820 --Discount Distribution Method
3821  , p_source_7            IN VARCHAR2
3822  , p_source_7_meaning    IN VARCHAR2
3823 --Invoice Distribution Account
3824  , p_source_18            IN NUMBER
3825 --Invoice Distribution Type
3826  , p_source_21            IN VARCHAR2
3827  , p_source_21_meaning    IN VARCHAR2
3828 --Discount Account
3829  , p_source_32            IN NUMBER
3830 --Purchase Order Charge Account
3831  , p_source_33            IN NUMBER
3832 --Purchase Order Variance Account
3833  , p_source_34            IN NUMBER
3834 , x_transaction_coa_id         OUT NOCOPY NUMBER
3835 , x_accounting_coa_id          OUT NOCOPY NUMBER
3836 , x_value_type_code            OUT NOCOPY VARCHAR2
3837 )
3838 RETURN NUMBER
3839 IS
3840 l_component_type       VARCHAR2(80)  ;
3841 l_component_code       VARCHAR2(30)  ;
3842 l_component_type_code  VARCHAR2(1)   ;
3843 l_component_appl_id    INTEGER       ;
3844 l_amb_context_code     VARCHAR2(30)  ;
3845 l_log_module           VARCHAR2(240) ;
3846 l_output_value         NUMBER        ;
3847 BEGIN
3848 IF g_log_enabled THEN
3849       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_28';
3850 END IF;
3851 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3852       trace
3853          (p_msg      => 'BEGIN of AcctDerRule_28'
3854          ,p_level    => C_LEVEL_PROCEDURE
3855          ,p_module   => l_log_module);
3856 END IF;
3857 --
3858 l_component_type         := 'AMB_ADR';
3859 l_component_code         := 'AP_DISCOUNT';
3860 l_component_type_code    := 'S';
3861 l_component_appl_id      :=  200;
3862 l_amb_context_code       := 'DEFAULT';
3863 x_transaction_coa_id     :=  null;
3864 x_accounting_coa_id      :=  null;
3865 --
3866 
3867  IF NVL(p_source_7,'
3868 ') =  'SYSTEM' AND 
3869 NVL(p_source_3,'
3870 ') <>  'ACCOUNT_SEGMENT_VALUE'
3871  THEN 
3872  --
3873   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3874       trace
3875          (p_msg      => 'END of AcctDerRule_28'
3876          ,p_level    => C_LEVEL_PROCEDURE
3877          ,p_module   => l_log_module);
3878   END IF;
3879   x_value_type_code := 'S';
3880   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_32));
3881   RETURN l_output_value;
3882 
3883  ELSIF NVL(p_source_7,'
3884 ') =  'SYSTEM' AND 
3885 NVL(p_source_3,'
3886 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
3887 NVL(p_source_21,'
3888 ') <>  'ACCRUAL'
3892       trace
3889  THEN 
3890  --
3891   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3893          (p_msg      => 'END of AcctDerRule_28'
3894          ,p_level    => C_LEVEL_PROCEDURE
3895          ,p_module   => l_log_module);
3896   END IF;
3897   x_value_type_code := 'S';
3898   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
3899   RETURN l_output_value;
3900 
3901  ELSIF NVL(p_source_7,'
3902 ') =  'SYSTEM' AND 
3903 NVL(p_source_3,'
3904 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
3905 NVL(p_source_21,'
3906 ') =  'ACCRUAL'
3907  THEN 
3908  --
3909   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3910       trace
3911          (p_msg      => 'END of AcctDerRule_28'
3912          ,p_level    => C_LEVEL_PROCEDURE
3913          ,p_module   => l_log_module);
3914   END IF;
3915   x_value_type_code := 'S';
3916   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_33));
3917   RETURN l_output_value;
3918 
3919  ELSIF NVL(p_source_7,'
3920 ') =  'EXPENSE' AND 
3921 NVL(p_source_21,'
3922 ') <>  'ACCRUAL'
3923  THEN 
3924  --
3925   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3926       trace
3927          (p_msg      => 'END of AcctDerRule_28'
3928          ,p_level    => C_LEVEL_PROCEDURE
3929          ,p_module   => l_log_module);
3930   END IF;
3931   x_value_type_code := 'S';
3932   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
3933   RETURN l_output_value;
3934 
3935  ELSIF NVL(p_source_7,'
3936 ') =  'EXPENSE' AND 
3937 NVL(p_source_21,'
3938 ') =  'ACCRUAL'
3939  THEN 
3940  --
3941   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3942       trace
3943          (p_msg      => 'END of AcctDerRule_28'
3944          ,p_level    => C_LEVEL_PROCEDURE
3945          ,p_module   => l_log_module);
3946   END IF;
3947   x_value_type_code := 'S';
3948   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_34));
3949   RETURN l_output_value;
3950 
3951  ELSIF NVL(p_source_7,'
3952 ') =  'TAX' AND 
3953 NVL(p_source_3,'
3954 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
3955 (NVL(p_source_21,'
3956 ') =  'REC_TAX' OR 
3957 NVL(p_source_21,'
3958 ') =  'NONREC_TAX' OR 
3959 NVL(p_source_21,'
3960 ') =  'TIPV' OR 
3961 NVL(p_source_21,'
3962 ') =  'TRV')
3963  THEN 
3964  --
3965   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3966       trace
3967          (p_msg      => 'END of AcctDerRule_28'
3968          ,p_level    => C_LEVEL_PROCEDURE
3969          ,p_module   => l_log_module);
3970   END IF;
3971   x_value_type_code := 'S';
3972   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
3973   RETURN l_output_value;
3974 
3975  ELSIF NVL(p_source_7,'
3976 ') =  'TAX' AND 
3977 NVL(p_source_3,'
3978 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
3979 (NVL(p_source_21,'
3980 ') <>  'REC_TAX' OR 
3981 NVL(p_source_21,'
3982 ') <>  'NONREC_TAX' OR 
3983 NVL(p_source_21,'
3984 ') <>  'TIPV' OR 
3985 NVL(p_source_21,'
3986 ') <>  'TRV')
3987  THEN 
3988  --
3989   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3990       trace
3991          (p_msg      => 'END of AcctDerRule_28'
3992          ,p_level    => C_LEVEL_PROCEDURE
3993          ,p_module   => l_log_module);
3994   END IF;
3995   x_value_type_code := 'S';
3996   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_6));
3997   RETURN l_output_value;
3998 
3999  ELSIF NVL(p_source_7,'
4000 ') =  'TAX' AND 
4001 NVL(p_source_3,'
4002 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
4003 NVL(p_source_21,'
4004 ') <>  'ACCRUAL'
4005  THEN 
4006  --
4007   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4008       trace
4009          (p_msg      => 'END of AcctDerRule_28'
4010          ,p_level    => C_LEVEL_PROCEDURE
4011          ,p_module   => l_log_module);
4012   END IF;
4013   x_value_type_code := 'S';
4014   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
4015   RETURN l_output_value;
4016 
4017  ELSIF NVL(p_source_7,'
4018 ') =  'TAX' AND 
4019 NVL(p_source_3,'
4020 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
4021 NVL(p_source_21,'
4022 ') =  'ACCRUAL'
4023  THEN 
4024  --
4025   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4026       trace
4027          (p_msg      => 'END of AcctDerRule_28'
4028          ,p_level    => C_LEVEL_PROCEDURE
4029          ,p_module   => l_log_module);
4030   END IF;
4031   x_value_type_code := 'S';
4032   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_33));
4033   RETURN l_output_value;
4034 
4035  END IF;
4036 --
4037 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4038       trace
4039          (p_msg      => 'END of AcctDerRule_28(invalid)'
4040          ,p_level    => C_LEVEL_PROCEDURE
4041          ,p_module   => l_log_module);
4042 END IF;
4043 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4044 x_value_type_code := null;
4045 l_output_value    := null;
4046 xla_accounting_err_pkg.build_message
4047                  (p_appli_s_name            => 'XLA'
4048                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4049                  ,p_token_1                 => 'COMPONENT_NAME'
4050                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4051                                                             l_component_type
4052                                                           , l_component_code
4053                                                           , l_component_type_code
4054                                                           , l_component_appl_id
4058                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4055                                                           , l_amb_context_code
4056                                                           )
4057                  ,p_token_2                 => 'OWNER'
4059                                                         'XLA_OWNER_TYPE'
4060                                                         ,l_component_type_code
4061                                                         )
4062                  ,p_token_3                 => 'PAD_NAME'
4063                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4064                  ,p_token_4                 => 'PAD_OWNER'
4065                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4066                                                         'XLA_OWNER_TYPE'
4067                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4068                                                         )
4069                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4070                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4071                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4072                  ,p_ae_header_id            => NULL
4073 );
4074 RETURN l_output_value;
4075 EXCEPTION
4076   WHEN xla_exceptions_pkg.application_exception THEN
4077       RAISE;
4078   WHEN OTHERS THEN
4079        xla_exceptions_pkg.raise_message
4080            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_28');
4081 END AcctDerRule_28;
4082 --
4083 
4084 ---------------------------------------
4085 --
4086 -- PRIVATE FUNCTION
4087 --         AcctDerRule_29
4088 --
4089 ---------------------------------------
4090 FUNCTION AcctDerRule_29 (
4091   p_application_id              IN NUMBER
4092 , p_ae_header_id                IN NUMBER
4093 , p_side                        IN VARCHAR2 
4094 --Automatic Offsets Value
4095  , p_source_3            IN VARCHAR2
4096  , p_source_3_meaning    IN VARCHAR2
4097 --Purchase Order Rate Variance Gain Account
4098  , p_source_8            IN NUMBER
4099 --Invoice Distribution Ledger Amount
4100  , p_source_9            IN NUMBER
4101 --Destination Type of the PO Distribution
4102  , p_source_10            IN VARCHAR2
4103  , p_source_10_meaning    IN VARCHAR2
4104 --Purchase Order Rate Variance Loss Account
4105  , p_source_11            IN NUMBER
4106 --Invoice Distribution Account
4107  , p_source_18            IN NUMBER
4108 --Automatic Offsets Flag
4109  , p_source_35            IN VARCHAR2
4110  , p_source_35_meaning    IN VARCHAR2
4111 , x_transaction_coa_id         OUT NOCOPY NUMBER
4112 , x_accounting_coa_id          OUT NOCOPY NUMBER
4113 , x_value_type_code            OUT NOCOPY VARCHAR2
4114 )
4115 RETURN NUMBER
4116 IS
4117 l_component_type       VARCHAR2(80)  ;
4118 l_component_code       VARCHAR2(30)  ;
4119 l_component_type_code  VARCHAR2(1)   ;
4120 l_component_appl_id    INTEGER       ;
4121 l_amb_context_code     VARCHAR2(30)  ;
4122 l_log_module           VARCHAR2(240) ;
4123 l_output_value         NUMBER        ;
4124 BEGIN
4125 IF g_log_enabled THEN
4126       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_29';
4127 END IF;
4128 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4129       trace
4130          (p_msg      => 'BEGIN of AcctDerRule_29'
4131          ,p_level    => C_LEVEL_PROCEDURE
4132          ,p_module   => l_log_module);
4133 END IF;
4134 --
4135 l_component_type         := 'AMB_ADR';
4136 l_component_code         := 'AP_EXCHG_TAXEXCHG_RATE_VAR';
4137 l_component_type_code    := 'S';
4138 l_component_appl_id      :=  200;
4139 l_amb_context_code       := 'DEFAULT';
4140 x_transaction_coa_id     :=  null;
4141 x_accounting_coa_id      :=  null;
4142 --
4143 
4144  IF NVL(p_source_10,'
4145 ') =  'EXPENSE' OR 
4146 (NVL(p_source_10,'
4147 ') =  'INVENTORY' AND 
4148 NVL(p_source_3,'
4149 ') =  'ACCOUNT_SEGMENT_VALUE')
4150  THEN 
4151  --
4152   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4153       trace
4154          (p_msg      => 'END of AcctDerRule_29'
4155          ,p_level    => C_LEVEL_PROCEDURE
4156          ,p_module   => l_log_module);
4157   END IF;
4158   x_value_type_code := 'S';
4159   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
4160   RETURN l_output_value;
4161 
4162  ELSIF NVL(p_source_10,'
4163 ') <>  'EXPENSE' AND 
4164 p_source_9 <=  0 AND 
4165 (NVL(p_source_35,'
4166 ') =  'N' OR 
4167 NVL(p_source_3,'
4168 ') =  'BALANCING_SEGMENT')
4169  THEN 
4170  --
4171   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4172       trace
4173          (p_msg      => 'END of AcctDerRule_29'
4174          ,p_level    => C_LEVEL_PROCEDURE
4175          ,p_module   => l_log_module);
4176   END IF;
4177   x_value_type_code := 'S';
4178   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_8));
4179   RETURN l_output_value;
4180 
4181  ELSIF NVL(p_source_10,'
4182 ') <>  'EXPENSE' AND 
4183 p_source_9 >  0 AND 
4184 (NVL(p_source_35,'
4185 ') =  'N' OR 
4186 NVL(p_source_3,'
4187 ') =  'BALANCING_SEGMENT')
4188  THEN 
4189  --
4190   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4191       trace
4192          (p_msg      => 'END of AcctDerRule_29'
4193          ,p_level    => C_LEVEL_PROCEDURE
4194          ,p_module   => l_log_module);
4195   END IF;
4196   x_value_type_code := 'S';
4197   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_11));
4198   RETURN l_output_value;
4199 
4200  END IF;
4201 --
4205          ,p_level    => C_LEVEL_PROCEDURE
4202 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4203       trace
4204          (p_msg      => 'END of AcctDerRule_29(invalid)'
4206          ,p_module   => l_log_module);
4207 END IF;
4208 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4209 x_value_type_code := null;
4210 l_output_value    := null;
4211 xla_accounting_err_pkg.build_message
4212                  (p_appli_s_name            => 'XLA'
4213                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4214                  ,p_token_1                 => 'COMPONENT_NAME'
4215                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4216                                                             l_component_type
4217                                                           , l_component_code
4218                                                           , l_component_type_code
4219                                                           , l_component_appl_id
4220                                                           , l_amb_context_code
4221                                                           )
4222                  ,p_token_2                 => 'OWNER'
4223                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4224                                                         'XLA_OWNER_TYPE'
4225                                                         ,l_component_type_code
4226                                                         )
4227                  ,p_token_3                 => 'PAD_NAME'
4228                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4229                  ,p_token_4                 => 'PAD_OWNER'
4230                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4231                                                         'XLA_OWNER_TYPE'
4232                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4233                                                         )
4234                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4235                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4236                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4237                  ,p_ae_header_id            => NULL
4238 );
4239 RETURN l_output_value;
4240 EXCEPTION
4241   WHEN xla_exceptions_pkg.application_exception THEN
4242       RAISE;
4243   WHEN OTHERS THEN
4244        xla_exceptions_pkg.raise_message
4245            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_29');
4246 END AcctDerRule_29;
4247 --
4248 
4249 ---------------------------------------
4250 --
4251 -- PRIVATE FUNCTION
4252 --         AcctDerRule_30
4253 --
4254 ---------------------------------------
4255 FUNCTION AcctDerRule_30 (
4256   p_application_id              IN NUMBER
4257 , p_ae_header_id                IN NUMBER
4258 , p_side                        IN VARCHAR2 
4259 --Automatic Offsets Value
4260  , p_source_3            IN VARCHAR2
4261  , p_source_3_meaning    IN VARCHAR2
4262 --Bank Future Dated Payment Account
4263  , p_source_12            IN NUMBER
4264 --Future Dated Payment Account Source Option
4265  , p_source_13            IN VARCHAR2
4266  , p_source_13_meaning    IN VARCHAR2
4267 --Financials Options Future Dated Payment Account
4268  , p_source_14            IN NUMBER
4269 --Supplier Site Future Dated Payment Account
4270  , p_source_15            IN NUMBER
4271 --Invoice Distribution Account
4272  , p_source_18            IN NUMBER
4273 , x_transaction_coa_id         OUT NOCOPY NUMBER
4274 , x_accounting_coa_id          OUT NOCOPY NUMBER
4275 , x_value_type_code            OUT NOCOPY VARCHAR2
4276 )
4277 RETURN NUMBER
4278 IS
4279 l_component_type       VARCHAR2(80)  ;
4280 l_component_code       VARCHAR2(30)  ;
4281 l_component_type_code  VARCHAR2(1)   ;
4282 l_component_appl_id    INTEGER       ;
4283 l_amb_context_code     VARCHAR2(30)  ;
4284 l_log_module           VARCHAR2(240) ;
4285 l_output_value         NUMBER        ;
4286 BEGIN
4287 IF g_log_enabled THEN
4288       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_30';
4289 END IF;
4290 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4291       trace
4292          (p_msg      => 'BEGIN of AcctDerRule_30'
4293          ,p_level    => C_LEVEL_PROCEDURE
4294          ,p_module   => l_log_module);
4295 END IF;
4296 --
4297 l_component_type         := 'AMB_ADR';
4298 l_component_code         := 'AP_FUTURE_DATED_PMT';
4299 l_component_type_code    := 'S';
4300 l_component_appl_id      :=  200;
4301 l_amb_context_code       := 'DEFAULT';
4302 x_transaction_coa_id     :=  null;
4303 x_accounting_coa_id      :=  null;
4304 --
4305 
4306  IF NVL(p_source_3,'
4307 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4308 NVL(p_source_13,'
4309 ') =  'BANK ACCOUNT' AND 
4310 TO_NUMBER(p_source_12) IS NOT NULL 
4311  THEN 
4312  --
4313   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4314       trace
4315          (p_msg      => 'END of AcctDerRule_30'
4316          ,p_level    => C_LEVEL_PROCEDURE
4317          ,p_module   => l_log_module);
4318   END IF;
4319   x_value_type_code := 'S';
4320   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_12));
4321   RETURN l_output_value;
4322 
4323  ELSIF NVL(p_source_3,'
4324 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4325 NVL(p_source_13,'
4326 ') =  'BANK ACCOUNT'
4327  THEN 
4328  --
4329   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4330       trace
4331          (p_msg      => 'END of AcctDerRule_30'
4332          ,p_level    => C_LEVEL_PROCEDURE
4333          ,p_module   => l_log_module);
4337   RETURN l_output_value;
4334   END IF;
4335   x_value_type_code := 'S';
4336   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_14));
4338 
4339  ELSIF NVL(p_source_3,'
4340 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4341 NVL(p_source_13,'
4342 ') =  'SUPPLIER SITE' AND 
4343 TO_NUMBER(p_source_15) IS NOT NULL 
4344  THEN 
4345  --
4346   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4347       trace
4348          (p_msg      => 'END of AcctDerRule_30'
4349          ,p_level    => C_LEVEL_PROCEDURE
4350          ,p_module   => l_log_module);
4351   END IF;
4352   x_value_type_code := 'S';
4353   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_15));
4354   RETURN l_output_value;
4355 
4356  ELSIF NVL(p_source_3,'
4357 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4358 NVL(p_source_13,'
4359 ') =  'SUPPLIER SITE'
4360  THEN 
4361  --
4362   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4363       trace
4364          (p_msg      => 'END of AcctDerRule_30'
4365          ,p_level    => C_LEVEL_PROCEDURE
4366          ,p_module   => l_log_module);
4367   END IF;
4368   x_value_type_code := 'S';
4369   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_14));
4370   RETURN l_output_value;
4371 
4372  ELSIF NVL(p_source_3,'
4373 ') =  'ACCOUNT_SEGMENT_VALUE'
4374  THEN 
4375  --
4376   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4377       trace
4378          (p_msg      => 'END of AcctDerRule_30'
4379          ,p_level    => C_LEVEL_PROCEDURE
4380          ,p_module   => l_log_module);
4381   END IF;
4382   x_value_type_code := 'S';
4383   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
4384   RETURN l_output_value;
4385 
4386  END IF;
4387 --
4388 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4389       trace
4390          (p_msg      => 'END of AcctDerRule_30(invalid)'
4391          ,p_level    => C_LEVEL_PROCEDURE
4392          ,p_module   => l_log_module);
4393 END IF;
4394 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4395 x_value_type_code := null;
4396 l_output_value    := null;
4397 xla_accounting_err_pkg.build_message
4398                  (p_appli_s_name            => 'XLA'
4399                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4400                  ,p_token_1                 => 'COMPONENT_NAME'
4401                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4402                                                             l_component_type
4403                                                           , l_component_code
4404                                                           , l_component_type_code
4405                                                           , l_component_appl_id
4406                                                           , l_amb_context_code
4407                                                           )
4408                  ,p_token_2                 => 'OWNER'
4409                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4410                                                         'XLA_OWNER_TYPE'
4411                                                         ,l_component_type_code
4412                                                         )
4413                  ,p_token_3                 => 'PAD_NAME'
4414                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4415                  ,p_token_4                 => 'PAD_OWNER'
4416                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4417                                                         'XLA_OWNER_TYPE'
4418                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4419                                                         )
4420                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4421                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4422                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4423                  ,p_ae_header_id            => NULL
4424 );
4425 RETURN l_output_value;
4426 EXCEPTION
4427   WHEN xla_exceptions_pkg.application_exception THEN
4428       RAISE;
4429   WHEN OTHERS THEN
4430        xla_exceptions_pkg.raise_message
4431            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_30');
4432 END AcctDerRule_30;
4433 --
4434 
4435 ---------------------------------------
4436 --
4437 -- PRIVATE FUNCTION
4438 --         AcctDerRule_31
4439 --
4440 ---------------------------------------
4441 FUNCTION AcctDerRule_31 (
4442   p_application_id              IN NUMBER
4443 , p_ae_header_id                IN NUMBER
4444 , p_side                        IN VARCHAR2 
4445 --Interest Account
4446  , p_source_16            IN NUMBER
4447 --Prorate Interest Invoice Across Distributions Option
4448  , p_source_17            IN VARCHAR2
4449 --Invoice Distribution Account
4450  , p_source_18            IN NUMBER
4451 , x_transaction_coa_id         OUT NOCOPY NUMBER
4452 , x_accounting_coa_id          OUT NOCOPY NUMBER
4453 , x_value_type_code            OUT NOCOPY VARCHAR2
4454 )
4455 RETURN NUMBER
4456 IS
4457 l_component_type       VARCHAR2(80)  ;
4458 l_component_code       VARCHAR2(30)  ;
4459 l_component_type_code  VARCHAR2(1)   ;
4460 l_component_appl_id    INTEGER       ;
4461 l_amb_context_code     VARCHAR2(30)  ;
4462 l_log_module           VARCHAR2(240) ;
4463 l_output_value         NUMBER        ;
4464 BEGIN
4465 IF g_log_enabled THEN
4469       trace
4466       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_31';
4467 END IF;
4468 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4470          (p_msg      => 'BEGIN of AcctDerRule_31'
4471          ,p_level    => C_LEVEL_PROCEDURE
4472          ,p_module   => l_log_module);
4473 END IF;
4474 --
4475 l_component_type         := 'AMB_ADR';
4476 l_component_code         := 'AP_INTEREST';
4477 l_component_type_code    := 'S';
4478 l_component_appl_id      :=  200;
4479 l_amb_context_code       := 'DEFAULT';
4480 x_transaction_coa_id     :=  null;
4481 x_accounting_coa_id      :=  null;
4482 --
4483 
4484  IF NVL(p_source_17,'
4485 ') =  'N'
4486  THEN 
4487  --
4488   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4489       trace
4490          (p_msg      => 'END of AcctDerRule_31'
4491          ,p_level    => C_LEVEL_PROCEDURE
4492          ,p_module   => l_log_module);
4493   END IF;
4494   x_value_type_code := 'S';
4495   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_16));
4496   RETURN l_output_value;
4497 
4498  ELSIF NVL(p_source_17,'
4499 ') =  'Y'
4500  THEN 
4501  --
4502   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4503       trace
4504          (p_msg      => 'END of AcctDerRule_31'
4505          ,p_level    => C_LEVEL_PROCEDURE
4506          ,p_module   => l_log_module);
4507   END IF;
4508   x_value_type_code := 'S';
4509   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
4510   RETURN l_output_value;
4511 
4512  END IF;
4513 --
4514 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4515       trace
4516          (p_msg      => 'END of AcctDerRule_31(invalid)'
4517          ,p_level    => C_LEVEL_PROCEDURE
4518          ,p_module   => l_log_module);
4519 END IF;
4520 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4521 x_value_type_code := null;
4522 l_output_value    := null;
4523 xla_accounting_err_pkg.build_message
4524                  (p_appli_s_name            => 'XLA'
4525                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4526                  ,p_token_1                 => 'COMPONENT_NAME'
4527                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4528                                                             l_component_type
4529                                                           , l_component_code
4530                                                           , l_component_type_code
4531                                                           , l_component_appl_id
4532                                                           , l_amb_context_code
4533                                                           )
4534                  ,p_token_2                 => 'OWNER'
4535                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4536                                                         'XLA_OWNER_TYPE'
4537                                                         ,l_component_type_code
4538                                                         )
4539                  ,p_token_3                 => 'PAD_NAME'
4540                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4541                  ,p_token_4                 => 'PAD_OWNER'
4542                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4543                                                         'XLA_OWNER_TYPE'
4544                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4545                                                         )
4546                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4547                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4548                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4549                  ,p_ae_header_id            => NULL
4550 );
4551 RETURN l_output_value;
4552 EXCEPTION
4553   WHEN xla_exceptions_pkg.application_exception THEN
4554       RAISE;
4555   WHEN OTHERS THEN
4556        xla_exceptions_pkg.raise_message
4557            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_31');
4558 END AcctDerRule_31;
4559 --
4560 
4561 ---------------------------------------
4562 --
4563 -- PRIVATE FUNCTION
4564 --         AcctDerRule_32
4565 --
4566 ---------------------------------------
4567 FUNCTION AcctDerRule_32 (
4568   p_application_id              IN NUMBER
4569 , p_ae_header_id                IN NUMBER
4570 , p_side                        IN VARCHAR2 
4571 --Invoice Distribution Account
4572  , p_source_18            IN NUMBER
4573 , x_transaction_coa_id         OUT NOCOPY NUMBER
4574 , x_accounting_coa_id          OUT NOCOPY NUMBER
4575 , x_value_type_code            OUT NOCOPY VARCHAR2
4576 )
4577 RETURN NUMBER
4578 IS
4579 l_component_type       VARCHAR2(80)  ;
4580 l_component_code       VARCHAR2(30)  ;
4581 l_component_type_code  VARCHAR2(1)   ;
4582 l_component_appl_id    INTEGER       ;
4583 l_amb_context_code     VARCHAR2(30)  ;
4584 l_log_module           VARCHAR2(240) ;
4585 l_output_value         NUMBER        ;
4586 BEGIN
4587 IF g_log_enabled THEN
4588       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_32';
4589 END IF;
4590 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4591       trace
4592          (p_msg      => 'BEGIN of AcctDerRule_32'
4593          ,p_level    => C_LEVEL_PROCEDURE
4594          ,p_module   => l_log_module);
4595 END IF;
4596 --
4597 l_component_type         := 'AMB_ADR';
4598 l_component_code         := 'AP_INVOICE_DIST';
4602 x_transaction_coa_id     :=  null;
4599 l_component_type_code    := 'S';
4600 l_component_appl_id      :=  200;
4601 l_amb_context_code       := 'DEFAULT';
4603 x_accounting_coa_id      :=  null;
4604 --
4605 
4606  --
4607   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4608       trace
4609          (p_msg      => 'END of AcctDerRule_32'
4610          ,p_level    => C_LEVEL_PROCEDURE
4611          ,p_module   => l_log_module);
4612   END IF;
4613   x_value_type_code := 'S';
4614   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
4615   RETURN l_output_value;
4616 
4617 --
4618 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4619       trace
4620          (p_msg      => 'END of AcctDerRule_32(invalid)'
4621          ,p_level    => C_LEVEL_PROCEDURE
4622          ,p_module   => l_log_module);
4623 END IF;
4624 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4625 x_value_type_code := null;
4626 l_output_value    := null;
4627 xla_accounting_err_pkg.build_message
4628                  (p_appli_s_name            => 'XLA'
4629                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4630                  ,p_token_1                 => 'COMPONENT_NAME'
4631                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4632                                                             l_component_type
4633                                                           , l_component_code
4634                                                           , l_component_type_code
4635                                                           , l_component_appl_id
4636                                                           , l_amb_context_code
4637                                                           )
4638                  ,p_token_2                 => 'OWNER'
4639                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4640                                                         'XLA_OWNER_TYPE'
4641                                                         ,l_component_type_code
4642                                                         )
4643                  ,p_token_3                 => 'PAD_NAME'
4644                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4645                  ,p_token_4                 => 'PAD_OWNER'
4646                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4647                                                         'XLA_OWNER_TYPE'
4648                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4649                                                         )
4650                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4651                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4652                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4653                  ,p_ae_header_id            => NULL
4654 );
4655 RETURN l_output_value;
4656 EXCEPTION
4657   WHEN xla_exceptions_pkg.application_exception THEN
4658       RAISE;
4659   WHEN OTHERS THEN
4660        xla_exceptions_pkg.raise_message
4661            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_32');
4662 END AcctDerRule_32;
4663 --
4664 
4665 ---------------------------------------
4666 --
4667 -- PRIVATE FUNCTION
4668 --         AcctDerRule_33
4669 --
4670 ---------------------------------------
4671 FUNCTION AcctDerRule_33 (
4672   p_application_id              IN NUMBER
4673 , p_ae_header_id                IN NUMBER
4674 , p_side                        IN VARCHAR2 
4675 --Invoice Liability Account
4676  , p_source_22            IN NUMBER
4677 , x_transaction_coa_id         OUT NOCOPY NUMBER
4678 , x_accounting_coa_id          OUT NOCOPY NUMBER
4679 , x_value_type_code            OUT NOCOPY VARCHAR2
4680 )
4681 RETURN NUMBER
4682 IS
4683 l_component_type       VARCHAR2(80)  ;
4684 l_component_code       VARCHAR2(30)  ;
4685 l_component_type_code  VARCHAR2(1)   ;
4686 l_component_appl_id    INTEGER       ;
4687 l_amb_context_code     VARCHAR2(30)  ;
4688 l_log_module           VARCHAR2(240) ;
4689 l_output_value         NUMBER        ;
4690 BEGIN
4691 IF g_log_enabled THEN
4692       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_33';
4693 END IF;
4694 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4695       trace
4696          (p_msg      => 'BEGIN of AcctDerRule_33'
4697          ,p_level    => C_LEVEL_PROCEDURE
4698          ,p_module   => l_log_module);
4699 END IF;
4700 --
4701 l_component_type         := 'AMB_ADR';
4702 l_component_code         := 'AP_LIAB';
4703 l_component_type_code    := 'S';
4704 l_component_appl_id      :=  200;
4705 l_amb_context_code       := 'DEFAULT';
4706 x_transaction_coa_id     :=  null;
4707 x_accounting_coa_id      :=  null;
4708 --
4709 
4710  --
4711   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4712       trace
4713          (p_msg      => 'END of AcctDerRule_33'
4714          ,p_level    => C_LEVEL_PROCEDURE
4715          ,p_module   => l_log_module);
4716   END IF;
4717   x_value_type_code := 'S';
4718   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_22));
4719   RETURN l_output_value;
4720 
4721 --
4722 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4723       trace
4724          (p_msg      => 'END of AcctDerRule_33(invalid)'
4725          ,p_level    => C_LEVEL_PROCEDURE
4726          ,p_module   => l_log_module);
4727 END IF;
4728 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4729 x_value_type_code := null;
4730 l_output_value    := null;
4731 xla_accounting_err_pkg.build_message
4732                  (p_appli_s_name            => 'XLA'
4733                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4734                  ,p_token_1                 => 'COMPONENT_NAME'
4735                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4736                                                             l_component_type
4737                                                           , l_component_code
4738                                                           , l_component_type_code
4739                                                           , l_component_appl_id
4740                                                           , l_amb_context_code
4741                                                           )
4742                  ,p_token_2                 => 'OWNER'
4743                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4744                                                         'XLA_OWNER_TYPE'
4745                                                         ,l_component_type_code
4746                                                         )
4747                  ,p_token_3                 => 'PAD_NAME'
4748                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4749                  ,p_token_4                 => 'PAD_OWNER'
4750                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4751                                                         'XLA_OWNER_TYPE'
4752                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4753                                                         )
4754                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4755                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4756                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4757                  ,p_ae_header_id            => NULL
4758 );
4759 RETURN l_output_value;
4760 EXCEPTION
4761   WHEN xla_exceptions_pkg.application_exception THEN
4762       RAISE;
4763   WHEN OTHERS THEN
4764        xla_exceptions_pkg.raise_message
4765            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_33');
4766 END AcctDerRule_33;
4767 --
4768 
4769 ---------------------------------------
4770 --
4771 -- PRIVATE FUNCTION
4772 --         AcctDerRule_34
4773 --
4774 ---------------------------------------
4775 FUNCTION AcctDerRule_34 (
4776   p_application_id              IN NUMBER
4777 , p_ae_header_id                IN NUMBER
4778 , p_side                        IN VARCHAR2 
4779 --Payment Card Accrued Account
4780  , p_source_36            IN NUMBER
4781 , x_transaction_coa_id         OUT NOCOPY NUMBER
4782 , x_accounting_coa_id          OUT NOCOPY NUMBER
4783 , x_value_type_code            OUT NOCOPY VARCHAR2
4784 )
4785 RETURN NUMBER
4786 IS
4787 l_component_type       VARCHAR2(80)  ;
4788 l_component_code       VARCHAR2(30)  ;
4789 l_component_type_code  VARCHAR2(1)   ;
4790 l_component_appl_id    INTEGER       ;
4791 l_amb_context_code     VARCHAR2(30)  ;
4792 l_log_module           VARCHAR2(240) ;
4793 l_output_value         NUMBER        ;
4794 BEGIN
4795 IF g_log_enabled THEN
4796       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_34';
4797 END IF;
4798 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4799       trace
4800          (p_msg      => 'BEGIN of AcctDerRule_34'
4801          ,p_level    => C_LEVEL_PROCEDURE
4802          ,p_module   => l_log_module);
4803 END IF;
4804 --
4805 l_component_type         := 'AMB_ADR';
4806 l_component_code         := 'AP_PAYCARD_ACCRUED_ADR';
4807 l_component_type_code    := 'S';
4808 l_component_appl_id      :=  200;
4809 l_amb_context_code       := 'DEFAULT';
4810 x_transaction_coa_id     :=  null;
4811 x_accounting_coa_id      :=  null;
4812 --
4813 
4814  --
4815   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4816       trace
4817          (p_msg      => 'END of AcctDerRule_34'
4818          ,p_level    => C_LEVEL_PROCEDURE
4819          ,p_module   => l_log_module);
4820   END IF;
4821   x_value_type_code := 'S';
4822   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_36));
4823   RETURN l_output_value;
4824 
4825 --
4826 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4827       trace
4828          (p_msg      => 'END of AcctDerRule_34(invalid)'
4829          ,p_level    => C_LEVEL_PROCEDURE
4830          ,p_module   => l_log_module);
4831 END IF;
4832 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4833 x_value_type_code := null;
4834 l_output_value    := null;
4835 xla_accounting_err_pkg.build_message
4836                  (p_appli_s_name            => 'XLA'
4837                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4838                  ,p_token_1                 => 'COMPONENT_NAME'
4839                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4840                                                             l_component_type
4841                                                           , l_component_code
4842                                                           , l_component_type_code
4846                  ,p_token_2                 => 'OWNER'
4843                                                           , l_component_appl_id
4844                                                           , l_amb_context_code
4845                                                           )
4847                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4848                                                         'XLA_OWNER_TYPE'
4849                                                         ,l_component_type_code
4850                                                         )
4851                  ,p_token_3                 => 'PAD_NAME'
4852                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4853                  ,p_token_4                 => 'PAD_OWNER'
4854                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4855                                                         'XLA_OWNER_TYPE'
4856                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4857                                                         )
4858                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4859                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4860                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4861                  ,p_ae_header_id            => NULL
4862 );
4863 RETURN l_output_value;
4864 EXCEPTION
4865   WHEN xla_exceptions_pkg.application_exception THEN
4866       RAISE;
4867   WHEN OTHERS THEN
4868        xla_exceptions_pkg.raise_message
4869            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_34');
4870 END AcctDerRule_34;
4871 --
4872 
4873 ---------------------------------------
4874 --
4875 -- PRIVATE FUNCTION
4876 --         AcctDerRule_35
4877 --
4878 ---------------------------------------
4879 FUNCTION AcctDerRule_35 (
4880   p_application_id              IN NUMBER
4881 , p_ae_header_id                IN NUMBER
4882 , p_side                        IN VARCHAR2 
4883 --Bank Cash Clearing Account
4884  , p_source_23            IN NUMBER
4885 , x_transaction_coa_id         OUT NOCOPY NUMBER
4886 , x_accounting_coa_id          OUT NOCOPY NUMBER
4887 , x_value_type_code            OUT NOCOPY VARCHAR2
4888 )
4889 RETURN NUMBER
4890 IS
4891 l_component_type       VARCHAR2(80)  ;
4892 l_component_code       VARCHAR2(30)  ;
4893 l_component_type_code  VARCHAR2(1)   ;
4894 l_component_appl_id    INTEGER       ;
4895 l_amb_context_code     VARCHAR2(30)  ;
4896 l_log_module           VARCHAR2(240) ;
4897 l_output_value         NUMBER        ;
4898 BEGIN
4899 IF g_log_enabled THEN
4900       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_35';
4901 END IF;
4902 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4903       trace
4904          (p_msg      => 'BEGIN of AcctDerRule_35'
4905          ,p_level    => C_LEVEL_PROCEDURE
4906          ,p_module   => l_log_module);
4907 END IF;
4908 --
4909 l_component_type         := 'AMB_ADR';
4910 l_component_code         := 'AP_PMT_CASH_CLEAR';
4911 l_component_type_code    := 'S';
4912 l_component_appl_id      :=  200;
4913 l_amb_context_code       := 'DEFAULT';
4914 x_transaction_coa_id     :=  null;
4915 x_accounting_coa_id      :=  null;
4916 --
4917 
4918  --
4919   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4920       trace
4921          (p_msg      => 'END of AcctDerRule_35'
4922          ,p_level    => C_LEVEL_PROCEDURE
4923          ,p_module   => l_log_module);
4924   END IF;
4925   x_value_type_code := 'S';
4926   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_23));
4927   RETURN l_output_value;
4928 
4929 --
4930 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4931       trace
4932          (p_msg      => 'END of AcctDerRule_35(invalid)'
4933          ,p_level    => C_LEVEL_PROCEDURE
4934          ,p_module   => l_log_module);
4935 END IF;
4936 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4937 x_value_type_code := null;
4938 l_output_value    := null;
4939 xla_accounting_err_pkg.build_message
4940                  (p_appli_s_name            => 'XLA'
4941                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4942                  ,p_token_1                 => 'COMPONENT_NAME'
4943                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4944                                                             l_component_type
4945                                                           , l_component_code
4946                                                           , l_component_type_code
4947                                                           , l_component_appl_id
4948                                                           , l_amb_context_code
4949                                                           )
4950                  ,p_token_2                 => 'OWNER'
4951                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4952                                                         'XLA_OWNER_TYPE'
4953                                                         ,l_component_type_code
4954                                                         )
4955                  ,p_token_3                 => 'PAD_NAME'
4956                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4957                  ,p_token_4                 => 'PAD_OWNER'
4958                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4959                                                         'XLA_OWNER_TYPE'
4960                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4961                                                         )
4965                  ,p_ae_header_id            => NULL
4962                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4963                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4964                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4966 );
4967 RETURN l_output_value;
4968 EXCEPTION
4969   WHEN xla_exceptions_pkg.application_exception THEN
4970       RAISE;
4971   WHEN OTHERS THEN
4972        xla_exceptions_pkg.raise_message
4973            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_35');
4974 END AcctDerRule_35;
4975 --
4976 
4977 ---------------------------------------
4978 --
4979 -- PRIVATE FUNCTION
4980 --         AcctDerRule_36
4981 --
4982 ---------------------------------------
4983 FUNCTION AcctDerRule_36 (
4984   p_application_id              IN NUMBER
4985 , p_ae_header_id                IN NUMBER
4986 , p_side                        IN VARCHAR2 
4987 --Invoice Distribution Account
4988  , p_source_18            IN NUMBER
4989 --Prepaid Expense Account Source Option
4990  , p_source_19            IN VARCHAR2
4991  , p_source_19_meaning    IN VARCHAR2
4992 --Purchase Order Number
4993  , p_source_20            IN VARCHAR2
4994 --Invoice Distribution Type
4995  , p_source_21            IN VARCHAR2
4996  , p_source_21_meaning    IN VARCHAR2
4997 --Purchase Order Charge Account
4998  , p_source_33            IN NUMBER
4999 , x_transaction_coa_id         OUT NOCOPY NUMBER
5000 , x_accounting_coa_id          OUT NOCOPY NUMBER
5001 , x_value_type_code            OUT NOCOPY VARCHAR2
5002 )
5003 RETURN NUMBER
5004 IS
5005 l_component_type       VARCHAR2(80)  ;
5006 l_component_code       VARCHAR2(30)  ;
5007 l_component_type_code  VARCHAR2(1)   ;
5008 l_component_appl_id    INTEGER       ;
5009 l_amb_context_code     VARCHAR2(30)  ;
5010 l_log_module           VARCHAR2(240) ;
5011 l_output_value         NUMBER        ;
5012 BEGIN
5013 IF g_log_enabled THEN
5014       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_36';
5015 END IF;
5016 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5017       trace
5018          (p_msg      => 'BEGIN of AcctDerRule_36'
5019          ,p_level    => C_LEVEL_PROCEDURE
5020          ,p_module   => l_log_module);
5021 END IF;
5022 --
5023 l_component_type         := 'AMB_ADR';
5024 l_component_code         := 'AP_PREPAY_INVOICE_DIST';
5025 l_component_type_code    := 'S';
5026 l_component_appl_id      :=  200;
5027 l_amb_context_code       := 'DEFAULT';
5028 x_transaction_coa_id     :=  null;
5029 x_accounting_coa_id      :=  null;
5030 --
5031 
5032  IF NVL(p_source_19,'
5033 ') <>  'Y' OR 
5034 (NVL(p_source_19,'
5035 ') =  'Y' AND 
5036 p_source_20 IS NULL )
5037  THEN 
5038  --
5039   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5040       trace
5041          (p_msg      => 'END of AcctDerRule_36'
5042          ,p_level    => C_LEVEL_PROCEDURE
5043          ,p_module   => l_log_module);
5044   END IF;
5045   x_value_type_code := 'S';
5046   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
5047   RETURN l_output_value;
5048 
5049  ELSIF NVL(p_source_19,'
5050 ') =  'Y' AND 
5051 p_source_20 IS NOT NULL AND 
5052 NVL(p_source_21,'
5053 ') =  'ITEM'
5054  THEN 
5055  --
5056   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5057       trace
5058          (p_msg      => 'END of AcctDerRule_36'
5059          ,p_level    => C_LEVEL_PROCEDURE
5060          ,p_module   => l_log_module);
5061   END IF;
5062   x_value_type_code := 'S';
5063   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_33));
5064   RETURN l_output_value;
5065 
5066  END IF;
5067 --
5068 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5069       trace
5070          (p_msg      => 'END of AcctDerRule_36(invalid)'
5071          ,p_level    => C_LEVEL_PROCEDURE
5072          ,p_module   => l_log_module);
5073 END IF;
5074 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5075 x_value_type_code := null;
5076 l_output_value    := null;
5077 xla_accounting_err_pkg.build_message
5078                  (p_appli_s_name            => 'XLA'
5079                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5080                  ,p_token_1                 => 'COMPONENT_NAME'
5081                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5082                                                             l_component_type
5086                                                           , l_amb_context_code
5083                                                           , l_component_code
5084                                                           , l_component_type_code
5085                                                           , l_component_appl_id
5087                                                           )
5088                  ,p_token_2                 => 'OWNER'
5089                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5090                                                         'XLA_OWNER_TYPE'
5091                                                         ,l_component_type_code
5092                                                         )
5093                  ,p_token_3                 => 'PAD_NAME'
5094                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5095                  ,p_token_4                 => 'PAD_OWNER'
5096                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5097                                                         'XLA_OWNER_TYPE'
5098                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5099                                                         )
5100                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5101                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5102                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5103                  ,p_ae_header_id            => NULL
5104 );
5105 RETURN l_output_value;
5106 EXCEPTION
5107   WHEN xla_exceptions_pkg.application_exception THEN
5108       RAISE;
5109   WHEN OTHERS THEN
5110        xla_exceptions_pkg.raise_message
5111            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_36');
5112 END AcctDerRule_36;
5113 --
5114 
5115 ---------------------------------------
5116 --
5117 -- PRIVATE FUNCTION
5118 --         AcctDerRule_37
5119 --
5120 ---------------------------------------
5121 FUNCTION AcctDerRule_37 (
5122   p_application_id              IN NUMBER
5123 , p_ae_header_id                IN NUMBER
5124 , p_side                        IN VARCHAR2 
5125 --Automatic Offsets Value
5126  , p_source_3            IN VARCHAR2
5127  , p_source_3_meaning    IN VARCHAR2
5128 --Invoice Distribution Account
5129  , p_source_18            IN NUMBER
5130 --Internal Realized Gain Account
5131  , p_source_24            IN NUMBER
5132 --Bank Gain Account
5133  , p_source_25            IN NUMBER
5134 , x_transaction_coa_id         OUT NOCOPY NUMBER
5135 , x_accounting_coa_id          OUT NOCOPY NUMBER
5136 , x_value_type_code            OUT NOCOPY VARCHAR2
5137 )
5138 RETURN NUMBER
5139 IS
5140 l_component_type       VARCHAR2(80)  ;
5141 l_component_code       VARCHAR2(30)  ;
5142 l_component_type_code  VARCHAR2(1)   ;
5143 l_component_appl_id    INTEGER       ;
5144 l_amb_context_code     VARCHAR2(30)  ;
5145 l_log_module           VARCHAR2(240) ;
5146 l_output_value         NUMBER        ;
5147 BEGIN
5148 IF g_log_enabled THEN
5149       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_37';
5150 END IF;
5151 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5152       trace
5153          (p_msg      => 'BEGIN of AcctDerRule_37'
5154          ,p_level    => C_LEVEL_PROCEDURE
5155          ,p_module   => l_log_module);
5156 END IF;
5157 --
5158 l_component_type         := 'AMB_ADR';
5159 l_component_code         := 'AP_REAL_GAIN';
5160 l_component_type_code    := 'S';
5161 l_component_appl_id      :=  200;
5162 l_amb_context_code       := 'DEFAULT';
5163 x_transaction_coa_id     :=  null;
5164 x_accounting_coa_id      :=  null;
5165 --
5166 
5167  IF NVL(p_source_3,'
5168 ') <>  'ACCOUNT_SEGMENT_VALUE'
5169  THEN 
5170  --
5171   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5172       trace
5173          (p_msg      => 'END of AcctDerRule_37'
5174          ,p_level    => C_LEVEL_PROCEDURE
5175          ,p_module   => l_log_module);
5176   END IF;
5177   x_value_type_code := 'S';
5178   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_24));
5179   RETURN l_output_value;
5180 
5181  ELSIF NVL(p_source_3,'
5182 ') <>  'ACCOUNT_SEGMENT_VALUE'
5183  THEN 
5184  --
5188          ,p_level    => C_LEVEL_PROCEDURE
5185   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5186       trace
5187          (p_msg      => 'END of AcctDerRule_37'
5189          ,p_module   => l_log_module);
5190   END IF;
5191   x_value_type_code := 'S';
5192   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
5193   RETURN l_output_value;
5194 
5195  ELSIF NVL(p_source_3,'
5196 ') =  'ACCOUNT_SEGMENT_VALUE'
5197  THEN 
5198  --
5199   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5200       trace
5201          (p_msg      => 'END of AcctDerRule_37'
5202          ,p_level    => C_LEVEL_PROCEDURE
5203          ,p_module   => l_log_module);
5204   END IF;
5205   x_value_type_code := 'S';
5206   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
5207   RETURN l_output_value;
5208 
5209  END IF;
5210 --
5211 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5212       trace
5213          (p_msg      => 'END of AcctDerRule_37(invalid)'
5214          ,p_level    => C_LEVEL_PROCEDURE
5215          ,p_module   => l_log_module);
5216 END IF;
5217 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5218 x_value_type_code := null;
5219 l_output_value    := null;
5220 xla_accounting_err_pkg.build_message
5221                  (p_appli_s_name            => 'XLA'
5222                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5223                  ,p_token_1                 => 'COMPONENT_NAME'
5224                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5225                                                             l_component_type
5226                                                           , l_component_code
5227                                                           , l_component_type_code
5228                                                           , l_component_appl_id
5229                                                           , l_amb_context_code
5230                                                           )
5231                  ,p_token_2                 => 'OWNER'
5232                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5233                                                         'XLA_OWNER_TYPE'
5234                                                         ,l_component_type_code
5235                                                         )
5236                  ,p_token_3                 => 'PAD_NAME'
5237                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5238                  ,p_token_4                 => 'PAD_OWNER'
5239                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5240                                                         'XLA_OWNER_TYPE'
5241                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5242                                                         )
5243                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5244                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5245                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5246                  ,p_ae_header_id            => NULL
5247 );
5248 RETURN l_output_value;
5249 EXCEPTION
5250   WHEN xla_exceptions_pkg.application_exception THEN
5251       RAISE;
5252   WHEN OTHERS THEN
5253        xla_exceptions_pkg.raise_message
5254            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_37');
5255 END AcctDerRule_37;
5256 --
5257 
5258 ---------------------------------------
5259 --
5260 -- PRIVATE FUNCTION
5261 --         AcctDerRule_38
5262 --
5263 ---------------------------------------
5264 FUNCTION AcctDerRule_38 (
5265   p_application_id              IN NUMBER
5266 , p_ae_header_id                IN NUMBER
5267 , p_side                        IN VARCHAR2 
5268 --Automatic Offsets Value
5269  , p_source_3            IN VARCHAR2
5270  , p_source_3_meaning    IN VARCHAR2
5271 --Invoice Distribution Account
5272  , p_source_18            IN NUMBER
5273 --Internal Realized Loss Account
5274  , p_source_26            IN NUMBER
5275 --Bank Loss Account
5276  , p_source_27            IN NUMBER
5277 , x_transaction_coa_id         OUT NOCOPY NUMBER
5278 , x_accounting_coa_id          OUT NOCOPY NUMBER
5279 , x_value_type_code            OUT NOCOPY VARCHAR2
5280 )
5281 RETURN NUMBER
5282 IS
5283 l_component_type       VARCHAR2(80)  ;
5284 l_component_code       VARCHAR2(30)  ;
5285 l_component_type_code  VARCHAR2(1)   ;
5286 l_component_appl_id    INTEGER       ;
5287 l_amb_context_code     VARCHAR2(30)  ;
5288 l_log_module           VARCHAR2(240) ;
5289 l_output_value         NUMBER        ;
5290 BEGIN
5291 IF g_log_enabled THEN
5292       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_38';
5293 END IF;
5294 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5295       trace
5296          (p_msg      => 'BEGIN of AcctDerRule_38'
5297          ,p_level    => C_LEVEL_PROCEDURE
5298          ,p_module   => l_log_module);
5299 END IF;
5300 --
5301 l_component_type         := 'AMB_ADR';
5302 l_component_code         := 'AP_REAL_LOSS';
5303 l_component_type_code    := 'S';
5304 l_component_appl_id      :=  200;
5305 l_amb_context_code       := 'DEFAULT';
5306 x_transaction_coa_id     :=  null;
5307 x_accounting_coa_id      :=  null;
5308 --
5309 
5310  IF NVL(p_source_3,'
5311 ') <>  'ACCOUNT_SEGMENT_VALUE'
5312  THEN 
5313  --
5314   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5315       trace
5316          (p_msg      => 'END of AcctDerRule_38'
5317          ,p_level    => C_LEVEL_PROCEDURE
5318          ,p_module   => l_log_module);
5319   END IF;
5323 
5320   x_value_type_code := 'S';
5321   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_26));
5322   RETURN l_output_value;
5324  ELSIF NVL(p_source_3,'
5325 ') <>  'ACCOUNT_SEGMENT_VALUE'
5326  THEN 
5327  --
5328   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5329       trace
5330          (p_msg      => 'END of AcctDerRule_38'
5331          ,p_level    => C_LEVEL_PROCEDURE
5332          ,p_module   => l_log_module);
5333   END IF;
5334   x_value_type_code := 'S';
5335   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_27));
5336   RETURN l_output_value;
5337 
5338  ELSIF NVL(p_source_3,'
5339 ') =  'ACCOUNT_SEGMENT_VALUE'
5340  THEN 
5341  --
5342   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5343       trace
5344          (p_msg      => 'END of AcctDerRule_38'
5345          ,p_level    => C_LEVEL_PROCEDURE
5346          ,p_module   => l_log_module);
5347   END IF;
5348   x_value_type_code := 'S';
5349   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
5350   RETURN l_output_value;
5351 
5352  END IF;
5353 --
5354 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5355       trace
5356          (p_msg      => 'END of AcctDerRule_38(invalid)'
5357          ,p_level    => C_LEVEL_PROCEDURE
5358          ,p_module   => l_log_module);
5359 END IF;
5360 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5361 x_value_type_code := null;
5362 l_output_value    := null;
5363 xla_accounting_err_pkg.build_message
5364                  (p_appli_s_name            => 'XLA'
5365                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5366                  ,p_token_1                 => 'COMPONENT_NAME'
5367                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5368                                                             l_component_type
5369                                                           , l_component_code
5370                                                           , l_component_type_code
5371                                                           , l_component_appl_id
5372                                                           , l_amb_context_code
5373                                                           )
5374                  ,p_token_2                 => 'OWNER'
5375                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5376                                                         'XLA_OWNER_TYPE'
5377                                                         ,l_component_type_code
5378                                                         )
5379                  ,p_token_3                 => 'PAD_NAME'
5380                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5381                  ,p_token_4                 => 'PAD_OWNER'
5382                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5383                                                         'XLA_OWNER_TYPE'
5384                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5385                                                         )
5386                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5387                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5388                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5389                  ,p_ae_header_id            => NULL
5390 );
5391 RETURN l_output_value;
5392 EXCEPTION
5393   WHEN xla_exceptions_pkg.application_exception THEN
5394       RAISE;
5395   WHEN OTHERS THEN
5396        xla_exceptions_pkg.raise_message
5397            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_38');
5398 END AcctDerRule_38;
5399 --
5400 
5401 ---------------------------------------
5402 --
5403 -- PRIVATE FUNCTION
5404 --         AcctDerRule_39
5405 --
5406 ---------------------------------------
5407 FUNCTION AcctDerRule_39 (
5408   p_application_id              IN NUMBER
5409 , p_ae_header_id                IN NUMBER
5410 , p_side                        IN VARCHAR2 
5411 --Automatic Offsets Value
5412  , p_source_3            IN VARCHAR2
5413  , p_source_3_meaning    IN VARCHAR2
5414 --Invoice Distribution Account
5415  , p_source_18            IN NUMBER
5416 --Retainage Related Item Distribution Account
5417  , p_source_30            IN NUMBER
5418 , x_transaction_coa_id         OUT NOCOPY NUMBER
5419 , x_accounting_coa_id          OUT NOCOPY NUMBER
5420 , x_value_type_code            OUT NOCOPY VARCHAR2
5421 )
5422 RETURN NUMBER
5423 IS
5424 l_component_type       VARCHAR2(80)  ;
5425 l_component_code       VARCHAR2(30)  ;
5426 l_component_type_code  VARCHAR2(1)   ;
5427 l_component_appl_id    INTEGER       ;
5428 l_amb_context_code     VARCHAR2(30)  ;
5429 l_log_module           VARCHAR2(240) ;
5430 l_output_value         NUMBER        ;
5431 BEGIN
5432 IF g_log_enabled THEN
5433       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_39';
5434 END IF;
5435 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5436       trace
5437          (p_msg      => 'BEGIN of AcctDerRule_39'
5438          ,p_level    => C_LEVEL_PROCEDURE
5439          ,p_module   => l_log_module);
5440 END IF;
5441 --
5442 l_component_type         := 'AMB_ADR';
5443 l_component_code         := 'AP_RETAINAGE';
5444 l_component_type_code    := 'S';
5445 l_component_appl_id      :=  200;
5446 l_amb_context_code       := 'DEFAULT';
5447 x_transaction_coa_id     :=  null;
5448 x_accounting_coa_id      :=  null;
5449 --
5450 
5451  IF NVL(p_source_3,'
5452 ') <>  'ACCOUNT_SEGMENT_VALUE'
5453  THEN 
5454  --
5455   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5459          ,p_module   => l_log_module);
5456       trace
5457          (p_msg      => 'END of AcctDerRule_39'
5458          ,p_level    => C_LEVEL_PROCEDURE
5460   END IF;
5461   x_value_type_code := 'S';
5462   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
5463   RETURN l_output_value;
5464 
5465  ELSIF NVL(p_source_3,'
5466 ') =  'ACCOUNT_SEGMENT_VALUE'
5467  THEN 
5468  --
5469   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5470       trace
5471          (p_msg      => 'END of AcctDerRule_39'
5472          ,p_level    => C_LEVEL_PROCEDURE
5473          ,p_module   => l_log_module);
5474   END IF;
5475   x_value_type_code := 'S';
5476   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
5477   RETURN l_output_value;
5478 
5479  END IF;
5480 --
5481 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5482       trace
5483          (p_msg      => 'END of AcctDerRule_39(invalid)'
5484          ,p_level    => C_LEVEL_PROCEDURE
5485          ,p_module   => l_log_module);
5486 END IF;
5487 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5488 x_value_type_code := null;
5489 l_output_value    := null;
5490 xla_accounting_err_pkg.build_message
5491                  (p_appli_s_name            => 'XLA'
5492                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5493                  ,p_token_1                 => 'COMPONENT_NAME'
5494                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5495                                                             l_component_type
5496                                                           , l_component_code
5497                                                           , l_component_type_code
5498                                                           , l_component_appl_id
5499                                                           , l_amb_context_code
5500                                                           )
5501                  ,p_token_2                 => 'OWNER'
5502                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5503                                                         'XLA_OWNER_TYPE'
5504                                                         ,l_component_type_code
5505                                                         )
5506                  ,p_token_3                 => 'PAD_NAME'
5507                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5508                  ,p_token_4                 => 'PAD_OWNER'
5509                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5510                                                         'XLA_OWNER_TYPE'
5511                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5512                                                         )
5513                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5514                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5515                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5516                  ,p_ae_header_id            => NULL
5517 );
5518 RETURN l_output_value;
5519 EXCEPTION
5520   WHEN xla_exceptions_pkg.application_exception THEN
5521       RAISE;
5522   WHEN OTHERS THEN
5523        xla_exceptions_pkg.raise_message
5524            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_39');
5525 END AcctDerRule_39;
5526 --
5527 
5528 ---------------------------------------
5529 --
5530 -- PRIVATE FUNCTION
5531 --         AcctDerRule_40
5532 --
5533 ---------------------------------------
5534 FUNCTION AcctDerRule_40 (
5535   p_application_id              IN NUMBER
5536 , p_ae_header_id                IN NUMBER
5537 , p_side                        IN VARCHAR2 
5538 --Automatic Offsets Value
5539  , p_source_3            IN VARCHAR2
5540  , p_source_3_meaning    IN VARCHAR2
5541 --Invoice Distribution Account
5542  , p_source_18            IN NUMBER
5543 --Payables Options Rounding Account
5544  , p_source_37            IN NUMBER
5545 , x_transaction_coa_id         OUT NOCOPY NUMBER
5546 , x_accounting_coa_id          OUT NOCOPY NUMBER
5547 , x_value_type_code            OUT NOCOPY VARCHAR2
5548 )
5549 RETURN NUMBER
5550 IS
5551 l_component_type       VARCHAR2(80)  ;
5552 l_component_code       VARCHAR2(30)  ;
5553 l_component_type_code  VARCHAR2(1)   ;
5554 l_component_appl_id    INTEGER       ;
5555 l_amb_context_code     VARCHAR2(30)  ;
5556 l_log_module           VARCHAR2(240) ;
5557 l_output_value         NUMBER        ;
5558 BEGIN
5559 IF g_log_enabled THEN
5560       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_40';
5561 END IF;
5562 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5563       trace
5564          (p_msg      => 'BEGIN of AcctDerRule_40'
5565          ,p_level    => C_LEVEL_PROCEDURE
5566          ,p_module   => l_log_module);
5567 END IF;
5568 --
5569 l_component_type         := 'AMB_ADR';
5570 l_component_code         := 'AP_ROUNDING';
5571 l_component_type_code    := 'S';
5572 l_component_appl_id      :=  200;
5573 l_amb_context_code       := 'DEFAULT';
5574 x_transaction_coa_id     :=  null;
5575 x_accounting_coa_id      :=  null;
5576 --
5577 
5578  IF NVL(p_source_3,'
5579 ') <>  'ACCOUNT_SEGMENT_VALUE'
5580  THEN 
5581  --
5582   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5583       trace
5584          (p_msg      => 'END of AcctDerRule_40'
5585          ,p_level    => C_LEVEL_PROCEDURE
5586          ,p_module   => l_log_module);
5587   END IF;
5588   x_value_type_code := 'S';
5589   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_37));
5590   RETURN l_output_value;
5594  THEN 
5591 
5592  ELSIF NVL(p_source_3,'
5593 ') =  'ACCOUNT_SEGMENT_VALUE'
5595  --
5596   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5597       trace
5598          (p_msg      => 'END of AcctDerRule_40'
5599          ,p_level    => C_LEVEL_PROCEDURE
5600          ,p_module   => l_log_module);
5601   END IF;
5602   x_value_type_code := 'S';
5603   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
5604   RETURN l_output_value;
5605 
5606  END IF;
5607 --
5608 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5609       trace
5610          (p_msg      => 'END of AcctDerRule_40(invalid)'
5611          ,p_level    => C_LEVEL_PROCEDURE
5612          ,p_module   => l_log_module);
5613 END IF;
5614 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5615 x_value_type_code := null;
5616 l_output_value    := null;
5617 xla_accounting_err_pkg.build_message
5618                  (p_appli_s_name            => 'XLA'
5619                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5620                  ,p_token_1                 => 'COMPONENT_NAME'
5621                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5622                                                             l_component_type
5623                                                           , l_component_code
5624                                                           , l_component_type_code
5625                                                           , l_component_appl_id
5626                                                           , l_amb_context_code
5627                                                           )
5628                  ,p_token_2                 => 'OWNER'
5629                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5630                                                         'XLA_OWNER_TYPE'
5631                                                         ,l_component_type_code
5632                                                         )
5633                  ,p_token_3                 => 'PAD_NAME'
5634                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5635                  ,p_token_4                 => 'PAD_OWNER'
5636                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5637                                                         'XLA_OWNER_TYPE'
5638                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5639                                                         )
5640                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5641                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5642                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5643                  ,p_ae_header_id            => NULL
5644 );
5645 RETURN l_output_value;
5646 EXCEPTION
5647   WHEN xla_exceptions_pkg.application_exception THEN
5648       RAISE;
5649   WHEN OTHERS THEN
5650        xla_exceptions_pkg.raise_message
5651            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_40');
5652 END AcctDerRule_40;
5653 --
5654 
5655 ---------------------------------------
5656 --
5657 -- PRIVATE FUNCTION
5658 --         AcctDerRule_41
5659 --
5660 ---------------------------------------
5661 FUNCTION AcctDerRule_41 (
5662   p_application_id              IN NUMBER
5663 , p_ae_header_id                IN NUMBER
5664 , p_side                        IN VARCHAR2 
5665 --Self-Assessed Tax Account
5666  , p_source_38            IN NUMBER
5667 , x_transaction_coa_id         OUT NOCOPY NUMBER
5668 , x_accounting_coa_id          OUT NOCOPY NUMBER
5669 , x_value_type_code            OUT NOCOPY VARCHAR2
5670 )
5671 RETURN NUMBER
5672 IS
5673 l_component_type       VARCHAR2(80)  ;
5674 l_component_code       VARCHAR2(30)  ;
5675 l_component_type_code  VARCHAR2(1)   ;
5676 l_component_appl_id    INTEGER       ;
5677 l_amb_context_code     VARCHAR2(30)  ;
5678 l_log_module           VARCHAR2(240) ;
5679 l_output_value         NUMBER        ;
5680 BEGIN
5681 IF g_log_enabled THEN
5682       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_41';
5683 END IF;
5684 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5685       trace
5686          (p_msg      => 'BEGIN of AcctDerRule_41'
5687          ,p_level    => C_LEVEL_PROCEDURE
5688          ,p_module   => l_log_module);
5689 END IF;
5690 --
5691 l_component_type         := 'AMB_ADR';
5692 l_component_code         := 'AP_SELF_ASSESSED_TAX';
5693 l_component_type_code    := 'S';
5694 l_component_appl_id      :=  200;
5695 l_amb_context_code       := 'DEFAULT';
5696 x_transaction_coa_id     :=  null;
5697 x_accounting_coa_id      :=  null;
5698 --
5699 
5700  --
5701   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5702       trace
5703          (p_msg      => 'END of AcctDerRule_41'
5704          ,p_level    => C_LEVEL_PROCEDURE
5705          ,p_module   => l_log_module);
5706   END IF;
5707   x_value_type_code := 'S';
5708   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_38));
5709   RETURN l_output_value;
5710 
5711 --
5712 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5713       trace
5714          (p_msg      => 'END of AcctDerRule_41(invalid)'
5715          ,p_level    => C_LEVEL_PROCEDURE
5716          ,p_module   => l_log_module);
5717 END IF;
5718 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5719 x_value_type_code := null;
5720 l_output_value    := null;
5724                  ,p_token_1                 => 'COMPONENT_NAME'
5721 xla_accounting_err_pkg.build_message
5722                  (p_appli_s_name            => 'XLA'
5723                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5725                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5726                                                             l_component_type
5727                                                           , l_component_code
5728                                                           , l_component_type_code
5729                                                           , l_component_appl_id
5730                                                           , l_amb_context_code
5731                                                           )
5732                  ,p_token_2                 => 'OWNER'
5733                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5734                                                         'XLA_OWNER_TYPE'
5735                                                         ,l_component_type_code
5736                                                         )
5737                  ,p_token_3                 => 'PAD_NAME'
5738                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5739                  ,p_token_4                 => 'PAD_OWNER'
5740                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5741                                                         'XLA_OWNER_TYPE'
5742                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5743                                                         )
5744                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5745                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5746                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5747                  ,p_ae_header_id            => NULL
5748 );
5749 RETURN l_output_value;
5750 EXCEPTION
5751   WHEN xla_exceptions_pkg.application_exception THEN
5752       RAISE;
5753   WHEN OTHERS THEN
5754        xla_exceptions_pkg.raise_message
5755            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_41');
5756 END AcctDerRule_41;
5757 --
5758 
5759 ---------------------------------------
5760 --
5761 -- PRIVATE FUNCTION
5762 --         AcctDerRule_42
5763 --
5764 ---------------------------------------
5765 FUNCTION AcctDerRule_42 (
5766   p_application_id              IN NUMBER
5767 , p_ae_header_id                IN NUMBER
5768 , p_side                        IN VARCHAR2 
5769 --Self-Assessed Tax Liability Account
5770  , p_source_39            IN NUMBER
5771 , x_transaction_coa_id         OUT NOCOPY NUMBER
5772 , x_accounting_coa_id          OUT NOCOPY NUMBER
5773 , x_value_type_code            OUT NOCOPY VARCHAR2
5774 )
5775 RETURN NUMBER
5776 IS
5777 l_component_type       VARCHAR2(80)  ;
5778 l_component_code       VARCHAR2(30)  ;
5779 l_component_type_code  VARCHAR2(1)   ;
5780 l_component_appl_id    INTEGER       ;
5781 l_amb_context_code     VARCHAR2(30)  ;
5782 l_log_module           VARCHAR2(240) ;
5783 l_output_value         NUMBER        ;
5784 BEGIN
5785 IF g_log_enabled THEN
5786       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_42';
5787 END IF;
5788 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5789       trace
5790          (p_msg      => 'BEGIN of AcctDerRule_42'
5791          ,p_level    => C_LEVEL_PROCEDURE
5792          ,p_module   => l_log_module);
5793 END IF;
5794 --
5795 l_component_type         := 'AMB_ADR';
5796 l_component_code         := 'AP_SELF_ASSESSED_TAX_LIAB';
5797 l_component_type_code    := 'S';
5798 l_component_appl_id      :=  200;
5799 l_amb_context_code       := 'DEFAULT';
5800 x_transaction_coa_id     :=  null;
5801 x_accounting_coa_id      :=  null;
5802 --
5803 
5804  --
5805   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5806       trace
5807          (p_msg      => 'END of AcctDerRule_42'
5808          ,p_level    => C_LEVEL_PROCEDURE
5809          ,p_module   => l_log_module);
5810   END IF;
5811   x_value_type_code := 'S';
5812   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_39));
5813   RETURN l_output_value;
5814 
5815 --
5816 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5817       trace
5818          (p_msg      => 'END of AcctDerRule_42(invalid)'
5819          ,p_level    => C_LEVEL_PROCEDURE
5820          ,p_module   => l_log_module);
5821 END IF;
5822 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5823 x_value_type_code := null;
5824 l_output_value    := null;
5825 xla_accounting_err_pkg.build_message
5826                  (p_appli_s_name            => 'XLA'
5827                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5828                  ,p_token_1                 => 'COMPONENT_NAME'
5829                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5830                                                             l_component_type
5831                                                           , l_component_code
5832                                                           , l_component_type_code
5833                                                           , l_component_appl_id
5834                                                           , l_amb_context_code
5835                                                           )
5836                  ,p_token_2                 => 'OWNER'
5837                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5838                                                         'XLA_OWNER_TYPE'
5842                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5839                                                         ,l_component_type_code
5840                                                         )
5841                  ,p_token_3                 => 'PAD_NAME'
5843                  ,p_token_4                 => 'PAD_OWNER'
5844                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5845                                                         'XLA_OWNER_TYPE'
5846                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5847                                                         )
5848                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5849                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5850                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5851                  ,p_ae_header_id            => NULL
5852 );
5853 RETURN l_output_value;
5854 EXCEPTION
5855   WHEN xla_exceptions_pkg.application_exception THEN
5856       RAISE;
5857   WHEN OTHERS THEN
5858        xla_exceptions_pkg.raise_message
5859            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_42');
5860 END AcctDerRule_42;
5861 --
5862 
5863 ---------------------------------------
5864 --
5865 -- PRIVATE FUNCTION
5866 --         AcctDerRule_43
5867 --
5868 ---------------------------------------
5869 FUNCTION AcctDerRule_43 (
5870   p_application_id              IN NUMBER
5871 , p_ae_header_id                IN NUMBER
5872 , p_side                        IN VARCHAR2 
5873 --Recoverable Tax Account
5874  , p_source_40            IN NUMBER
5875 , x_transaction_coa_id         OUT NOCOPY NUMBER
5876 , x_accounting_coa_id          OUT NOCOPY NUMBER
5877 , x_value_type_code            OUT NOCOPY VARCHAR2
5878 )
5879 RETURN NUMBER
5880 IS
5881 l_component_type       VARCHAR2(80)  ;
5882 l_component_code       VARCHAR2(30)  ;
5883 l_component_type_code  VARCHAR2(1)   ;
5884 l_component_appl_id    INTEGER       ;
5885 l_amb_context_code     VARCHAR2(30)  ;
5886 l_log_module           VARCHAR2(240) ;
5887 l_output_value         NUMBER        ;
5888 BEGIN
5889 IF g_log_enabled THEN
5890       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_43';
5891 END IF;
5892 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5893       trace
5894          (p_msg      => 'BEGIN of AcctDerRule_43'
5895          ,p_level    => C_LEVEL_PROCEDURE
5896          ,p_module   => l_log_module);
5897 END IF;
5898 --
5899 l_component_type         := 'AMB_ADR';
5900 l_component_code         := 'AP_TAX_ACCOUNT';
5901 l_component_type_code    := 'S';
5902 l_component_appl_id      :=  200;
5903 l_amb_context_code       := 'DEFAULT';
5904 x_transaction_coa_id     :=  null;
5905 x_accounting_coa_id      :=  null;
5906 --
5907 
5908  --
5909   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5910       trace
5911          (p_msg      => 'END of AcctDerRule_43'
5912          ,p_level    => C_LEVEL_PROCEDURE
5913          ,p_module   => l_log_module);
5914   END IF;
5915   x_value_type_code := 'S';
5916   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_40));
5917   RETURN l_output_value;
5918 
5919 --
5920 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5921       trace
5922          (p_msg      => 'END of AcctDerRule_43(invalid)'
5923          ,p_level    => C_LEVEL_PROCEDURE
5924          ,p_module   => l_log_module);
5925 END IF;
5926 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5927 x_value_type_code := null;
5928 l_output_value    := null;
5929 xla_accounting_err_pkg.build_message
5930                  (p_appli_s_name            => 'XLA'
5931                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5932                  ,p_token_1                 => 'COMPONENT_NAME'
5933                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5934                                                             l_component_type
5935                                                           , l_component_code
5936                                                           , l_component_type_code
5937                                                           , l_component_appl_id
5938                                                           , l_amb_context_code
5939                                                           )
5940                  ,p_token_2                 => 'OWNER'
5941                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5942                                                         'XLA_OWNER_TYPE'
5943                                                         ,l_component_type_code
5944                                                         )
5945                  ,p_token_3                 => 'PAD_NAME'
5946                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5947                  ,p_token_4                 => 'PAD_OWNER'
5948                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5949                                                         'XLA_OWNER_TYPE'
5950                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5951                                                         )
5952                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5953                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5954                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5955                  ,p_ae_header_id            => NULL
5956 );
5957 RETURN l_output_value;
5958 EXCEPTION
5962        xla_exceptions_pkg.raise_message
5959   WHEN xla_exceptions_pkg.application_exception THEN
5960       RAISE;
5961   WHEN OTHERS THEN
5963            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_43');
5964 END AcctDerRule_43;
5965 --
5966 
5967 ---------------------------------------
5968 --
5969 -- PRIVATE FUNCTION
5970 --         AcctDerRule_44
5971 --
5972 ---------------------------------------
5973 FUNCTION AcctDerRule_44 (
5974   p_application_id              IN NUMBER
5975 , p_ae_header_id                IN NUMBER
5976 , p_side                        IN VARCHAR2 
5977 --Automatic Offsets Value
5978  , p_source_3            IN VARCHAR2
5979  , p_source_3_meaning    IN VARCHAR2
5980 --Invoice Distribution Account
5981  , p_source_18            IN NUMBER
5982 --Payables Options Tax Difference Account
5983  , p_source_29            IN NUMBER
5984 , x_transaction_coa_id         OUT NOCOPY NUMBER
5985 , x_accounting_coa_id          OUT NOCOPY NUMBER
5986 , x_value_type_code            OUT NOCOPY VARCHAR2
5987 )
5988 RETURN NUMBER
5989 IS
5990 l_component_type       VARCHAR2(80)  ;
5991 l_component_code       VARCHAR2(30)  ;
5992 l_component_type_code  VARCHAR2(1)   ;
5993 l_component_appl_id    INTEGER       ;
5994 l_amb_context_code     VARCHAR2(30)  ;
5995 l_log_module           VARCHAR2(240) ;
5996 l_output_value         NUMBER        ;
5997 BEGIN
5998 IF g_log_enabled THEN
5999       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_44';
6000 END IF;
6001 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6002       trace
6003          (p_msg      => 'BEGIN of AcctDerRule_44'
6004          ,p_level    => C_LEVEL_PROCEDURE
6005          ,p_module   => l_log_module);
6006 END IF;
6007 --
6008 l_component_type         := 'AMB_ADR';
6009 l_component_code         := 'AP_TAX_DIFFERENCE';
6010 l_component_type_code    := 'S';
6011 l_component_appl_id      :=  200;
6012 l_amb_context_code       := 'DEFAULT';
6013 x_transaction_coa_id     :=  null;
6014 x_accounting_coa_id      :=  null;
6015 --
6016 
6017  IF NVL(p_source_3,'
6018 ') <>  'ACCOUNT_SEGMENT_VALUE'
6019  THEN 
6020  --
6021   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6022       trace
6023          (p_msg      => 'END of AcctDerRule_44'
6024          ,p_level    => C_LEVEL_PROCEDURE
6025          ,p_module   => l_log_module);
6026   END IF;
6027   x_value_type_code := 'S';
6028   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
6029   RETURN l_output_value;
6030 
6031  ELSIF NVL(p_source_3,'
6032 ') =  'ACCOUNT_SEGMENT_VALUE'
6033  THEN 
6034  --
6035   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6036       trace
6037          (p_msg      => 'END of AcctDerRule_44'
6038          ,p_level    => C_LEVEL_PROCEDURE
6039          ,p_module   => l_log_module);
6040   END IF;
6041   x_value_type_code := 'S';
6042   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
6043   RETURN l_output_value;
6044 
6045  END IF;
6046 --
6047 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6048       trace
6049          (p_msg      => 'END of AcctDerRule_44(invalid)'
6050          ,p_level    => C_LEVEL_PROCEDURE
6051          ,p_module   => l_log_module);
6052 END IF;
6053 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6054 x_value_type_code := null;
6055 l_output_value    := null;
6056 xla_accounting_err_pkg.build_message
6057                  (p_appli_s_name            => 'XLA'
6058                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6059                  ,p_token_1                 => 'COMPONENT_NAME'
6060                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6061                                                             l_component_type
6062                                                           , l_component_code
6063                                                           , l_component_type_code
6064                                                           , l_component_appl_id
6065                                                           , l_amb_context_code
6066                                                           )
6067                  ,p_token_2                 => 'OWNER'
6068                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6069                                                         'XLA_OWNER_TYPE'
6070                                                         ,l_component_type_code
6071                                                         )
6072                  ,p_token_3                 => 'PAD_NAME'
6073                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6074                  ,p_token_4                 => 'PAD_OWNER'
6075                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6076                                                         'XLA_OWNER_TYPE'
6077                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6078                                                         )
6079                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6080                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6081                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6082                  ,p_ae_header_id            => NULL
6083 );
6084 RETURN l_output_value;
6085 EXCEPTION
6086   WHEN xla_exceptions_pkg.application_exception THEN
6087       RAISE;
6088   WHEN OTHERS THEN
6089        xla_exceptions_pkg.raise_message
6090            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_44');
6091 END AcctDerRule_44;
6092 --
6093 
6097 --         AcctDerRule_45
6094 ---------------------------------------
6095 --
6096 -- PRIVATE FUNCTION
6098 --
6099 ---------------------------------------
6100 FUNCTION AcctDerRule_45 (
6101   p_application_id              IN NUMBER
6102 , p_ae_header_id                IN NUMBER
6103 , p_side                        IN VARCHAR2 
6104 --Automatic Offsets Value
6105  , p_source_3            IN VARCHAR2
6106  , p_source_3_meaning    IN VARCHAR2
6107 --Invoice Distribution Account
6108  , p_source_18            IN NUMBER
6109 --Withholding Related Distribution Account
6110  , p_source_31            IN NUMBER
6111 , x_transaction_coa_id         OUT NOCOPY NUMBER
6112 , x_accounting_coa_id          OUT NOCOPY NUMBER
6113 , x_value_type_code            OUT NOCOPY VARCHAR2
6114 )
6115 RETURN NUMBER
6116 IS
6117 l_component_type       VARCHAR2(80)  ;
6118 l_component_code       VARCHAR2(30)  ;
6119 l_component_type_code  VARCHAR2(1)   ;
6120 l_component_appl_id    INTEGER       ;
6121 l_amb_context_code     VARCHAR2(30)  ;
6122 l_log_module           VARCHAR2(240) ;
6123 l_output_value         NUMBER        ;
6124 BEGIN
6125 IF g_log_enabled THEN
6126       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_45';
6127 END IF;
6128 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6129       trace
6130          (p_msg      => 'BEGIN of AcctDerRule_45'
6131          ,p_level    => C_LEVEL_PROCEDURE
6132          ,p_module   => l_log_module);
6133 END IF;
6134 --
6135 l_component_type         := 'AMB_ADR';
6136 l_component_code         := 'AP_WH_DIST_ACCT';
6137 l_component_type_code    := 'S';
6138 l_component_appl_id      :=  200;
6139 l_amb_context_code       := 'DEFAULT';
6140 x_transaction_coa_id     :=  null;
6141 x_accounting_coa_id      :=  null;
6142 --
6143 
6144  IF NVL(p_source_3,'
6145 ') <>  'ACCOUNT_SEGMENT_VALUE'
6146  THEN 
6147  --
6148   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6149       trace
6150          (p_msg      => 'END of AcctDerRule_45'
6151          ,p_level    => C_LEVEL_PROCEDURE
6152          ,p_module   => l_log_module);
6153   END IF;
6154   x_value_type_code := 'S';
6155   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
6156   RETURN l_output_value;
6157 
6158  ELSIF NVL(p_source_3,'
6159 ') =  'ACCOUNT_SEGMENT_VALUE'
6160  THEN 
6161  --
6162   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6163       trace
6164          (p_msg      => 'END of AcctDerRule_45'
6165          ,p_level    => C_LEVEL_PROCEDURE
6166          ,p_module   => l_log_module);
6167   END IF;
6168   x_value_type_code := 'S';
6169   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_31));
6170   RETURN l_output_value;
6171 
6172  END IF;
6173 --
6174 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6175       trace
6176          (p_msg      => 'END of AcctDerRule_45(invalid)'
6177          ,p_level    => C_LEVEL_PROCEDURE
6178          ,p_module   => l_log_module);
6179 END IF;
6180 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6181 x_value_type_code := null;
6182 l_output_value    := null;
6183 xla_accounting_err_pkg.build_message
6184                  (p_appli_s_name            => 'XLA'
6185                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6186                  ,p_token_1                 => 'COMPONENT_NAME'
6187                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6188                                                             l_component_type
6189                                                           , l_component_code
6190                                                           , l_component_type_code
6191                                                           , l_component_appl_id
6192                                                           , l_amb_context_code
6193                                                           )
6194                  ,p_token_2                 => 'OWNER'
6195                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6196                                                         'XLA_OWNER_TYPE'
6197                                                         ,l_component_type_code
6198                                                         )
6199                  ,p_token_3                 => 'PAD_NAME'
6200                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6201                  ,p_token_4                 => 'PAD_OWNER'
6202                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6203                                                         'XLA_OWNER_TYPE'
6204                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6205                                                         )
6206                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6207                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6208                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6209                  ,p_ae_header_id            => NULL
6210 );
6211 RETURN l_output_value;
6212 EXCEPTION
6213   WHEN xla_exceptions_pkg.application_exception THEN
6214       RAISE;
6215   WHEN OTHERS THEN
6216        xla_exceptions_pkg.raise_message
6217            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_45');
6218 END AcctDerRule_45;
6219 --
6220 
6221 ---------------------------------------
6222 --
6223 -- PRIVATE FUNCTION
6224 --         AcctDerRule_46
6225 --
6226 ---------------------------------------
6227 FUNCTION AcctDerRule_46 (
6228   p_application_id              IN NUMBER
6232  , p_source_18            IN NUMBER
6229 , p_ae_header_id                IN NUMBER
6230 , p_side                        IN VARCHAR2 
6231 --Invoice Distribution Account
6233 , x_transaction_coa_id         OUT NOCOPY NUMBER
6234 , x_accounting_coa_id          OUT NOCOPY NUMBER
6235 , x_value_type_code            OUT NOCOPY VARCHAR2
6236 )
6237 RETURN NUMBER
6238 IS
6239 l_component_type       VARCHAR2(80)  ;
6240 l_component_code       VARCHAR2(30)  ;
6241 l_component_type_code  VARCHAR2(1)   ;
6242 l_component_appl_id    INTEGER       ;
6243 l_amb_context_code     VARCHAR2(30)  ;
6244 l_log_module           VARCHAR2(240) ;
6245 l_output_value         NUMBER        ;
6246 BEGIN
6247 IF g_log_enabled THEN
6248       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_46';
6249 END IF;
6250 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6251       trace
6252          (p_msg      => 'BEGIN of AcctDerRule_46'
6253          ,p_level    => C_LEVEL_PROCEDURE
6254          ,p_module   => l_log_module);
6255 END IF;
6256 --
6257 l_component_type         := 'AMB_ADR';
6258 l_component_code         := 'FV_AP_INV_DISTRBUTION_CCID';
6259 l_component_type_code    := 'S';
6260 l_component_appl_id      :=  200;
6261 l_amb_context_code       := 'DEFAULT';
6262 x_transaction_coa_id     :=  null;
6263 x_accounting_coa_id      :=  null;
6264 --
6265 
6266  --
6267   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6268       trace
6269          (p_msg      => 'END of AcctDerRule_46'
6270          ,p_level    => C_LEVEL_PROCEDURE
6271          ,p_module   => l_log_module);
6272   END IF;
6273   x_value_type_code := 'S';
6274   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
6275   RETURN l_output_value;
6276 
6277 --
6278 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6279       trace
6280          (p_msg      => 'END of AcctDerRule_46(invalid)'
6281          ,p_level    => C_LEVEL_PROCEDURE
6282          ,p_module   => l_log_module);
6283 END IF;
6284 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6285 x_value_type_code := null;
6286 l_output_value    := null;
6287 xla_accounting_err_pkg.build_message
6288                  (p_appli_s_name            => 'XLA'
6289                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6290                  ,p_token_1                 => 'COMPONENT_NAME'
6291                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6292                                                             l_component_type
6293                                                           , l_component_code
6294                                                           , l_component_type_code
6295                                                           , l_component_appl_id
6296                                                           , l_amb_context_code
6297                                                           )
6298                  ,p_token_2                 => 'OWNER'
6299                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6300                                                         'XLA_OWNER_TYPE'
6301                                                         ,l_component_type_code
6302                                                         )
6303                  ,p_token_3                 => 'PAD_NAME'
6304                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6305                  ,p_token_4                 => 'PAD_OWNER'
6306                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6307                                                         'XLA_OWNER_TYPE'
6308                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6309                                                         )
6310                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6311                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6312                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6313                  ,p_ae_header_id            => NULL
6314 );
6315 RETURN l_output_value;
6316 EXCEPTION
6317   WHEN xla_exceptions_pkg.application_exception THEN
6318       RAISE;
6319   WHEN OTHERS THEN
6320        xla_exceptions_pkg.raise_message
6321            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctDerRule_46');
6322 END AcctDerRule_46;
6323 --
6324 
6325 ---------------------------------------
6326 --
6327 -- PRIVATE FUNCTION
6328 --         AcctLineType_47
6329 --
6330 ---------------------------------------
6331 PROCEDURE AcctLineType_47 (
6332   p_application_id        IN NUMBER
6333  ,p_event_id              IN NUMBER
6334  ,p_calculate_acctd_flag  IN VARCHAR2
6335  ,p_calculate_g_l_flag    IN VARCHAR2
6336  ,p_actual_flag           IN OUT VARCHAR2
6337  ,p_balance_type_code     OUT VARCHAR2
6338  ,p_gain_or_loss_ref      OUT VARCHAR2
6339  
6340 --Invoice Distribution Description
6341  , p_source_1            IN VARCHAR2
6342 --Invoice Distribution Ledger Amount
6343  , p_source_9            IN NUMBER
6344 --Invoice Distribution Account
6345  , p_source_18            IN NUMBER
6346 --Invoice Distribution Type
6347  , p_source_21            IN VARCHAR2
6348  , p_source_21_meaning    IN VARCHAR2
6349 --Accounting Reversal Indicator
6350  , p_source_41            IN VARCHAR2
6351 --Distribution Link Type
6352  , p_source_43            IN VARCHAR2
6353 --Allocation to Main Distribution Identifier
6354  , p_source_45            IN NUMBER
6355 --Invoice Identifier
6356  , p_source_46            IN NUMBER
6357 --Business Flow Purchasing Application Identifier
6358  , p_source_47            IN NUMBER
6362  , p_source_49            IN VARCHAR2
6359 --Business Flow Purchase Order Distribution Type
6360  , p_source_48            IN VARCHAR2
6361 --Business Flow Purchase Order Entity Code
6363 --Business Flow Purchase Order Distribution Identifier
6364  , p_source_50            IN NUMBER
6365 --Business Flow Purchasing Document Identifier
6366  , p_source_51            IN NUMBER
6367 --Invoice Distribution Identifier
6368  , p_source_52            IN NUMBER
6369 --Payables Encumbrance Upgrade Credit Account
6370  , p_source_53            IN NUMBER
6371 --Payables Encumbrance Upgrade Credit Amount
6372  , p_source_54            IN NUMBER
6373 --Invoice Currency Code
6374  , p_source_55            IN VARCHAR2
6375 --Payables Encumbrance Upgrade Credit Base Amount
6376  , p_source_56            IN NUMBER
6377 --Payables Encumbrance Upgrade Debit Account
6378  , p_source_57            IN NUMBER
6379 --Payables Encumbrance Upgrade Debit Amount
6380  , p_source_58            IN NUMBER
6381 --Payables Encumbrance Upgrade Debit Base Amount
6382  , p_source_59            IN NUMBER
6383 --Payables Encumbrance Upgrade Option
6384  , p_source_60            IN VARCHAR2
6385 --Invoice Distribution Amount
6386  , p_source_61            IN NUMBER
6387 --Purchase Order Exchange Rate Date
6388  , p_source_62            IN DATE
6389 --Purchase Order Exchange Rate
6390  , p_source_63            IN NUMBER
6391 --Purchase Order Exchange Rate Type
6392  , p_source_64            IN VARCHAR2
6393 --Deferred Accounting End Date
6394  , p_source_65            IN DATE
6395 --Deferred Accounting Option
6396  , p_source_66            IN VARCHAR2
6397 --Deferred Accounting Start Date
6398  , p_source_67            IN DATE
6399 --Override Accounted Amount Indicator
6400  , p_source_68            IN VARCHAR2
6401  , p_source_68_meaning    IN VARCHAR2
6402 --Invoice Supplier Identifier
6403  , p_source_69            IN NUMBER
6404 --Invoice Supplier Site Identifier
6405  , p_source_70            IN NUMBER
6406 --Third Party Type
6407  , p_source_71            IN VARCHAR2
6408 --Parent Reversal Identifier
6409  , p_source_72            IN NUMBER
6410 --Invoice Distribution Statistical Amount
6411  , p_source_73            IN NUMBER
6412 --Invoice Distribution Tax Line Identifier
6413  , p_source_74            IN NUMBER
6414 --Invoice Distribution Tax Distribution Identifier from Tax
6415  , p_source_75            IN NUMBER
6416 --Invoice Distribution Summary Tax Line Identifier
6417  , p_source_76            IN NUMBER
6418 --Payables Upgrade Credit Encumbrance Type Identifier
6419  , p_source_77            IN NUMBER
6420 --Payables Upgrade Debit Encumbrance Type Identifier
6421  , p_source_78            IN NUMBER
6422 )
6423 IS
6424 
6425 l_component_type              VARCHAR2(80);
6426 l_component_code              VARCHAR2(30);
6427 l_component_type_code         VARCHAR2(1);
6428 l_component_appl_id           INTEGER;
6429 l_amb_context_code            VARCHAR2(30);
6430 l_entity_code                 VARCHAR2(30);
6431 l_event_class_code            VARCHAR2(30);
6432 l_ae_header_id                NUMBER;
6433 l_event_type_code             VARCHAR2(30);
6434 l_line_definition_code        VARCHAR2(30);
6435 l_line_definition_owner_code  VARCHAR2(1);
6436 --
6437 -- adr variables
6438 l_segment                     VARCHAR2(30);
6439 l_ccid                        NUMBER;
6440 l_adr_transaction_coa_id      NUMBER;
6441 l_adr_accounting_coa_id       NUMBER;
6442 l_adr_flexfield_segment_code  VARCHAR2(30);
6443 l_adr_flex_value_set_id       NUMBER;
6444 l_adr_value_type_code         VARCHAR2(30);
6445 l_adr_value_combination_id    NUMBER;
6446 l_adr_value_segment_code      VARCHAR2(30);
6447 
6448 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
6449 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
6450 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
6451 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
6452 
6453 -- 4262811 Variables ------------------------------------------------------------------------------------------
6454 l_entered_amt_idx             NUMBER;
6455 l_accted_amt_idx              NUMBER;
6456 l_acc_rev_flag                VARCHAR2(1);
6457 l_accrual_line_num            NUMBER;
6458 l_tmp_amt                     NUMBER;
6459 l_acc_rev_natural_side_code   VARCHAR2(1);
6460 
6461 l_num_entries                 NUMBER;
6462 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
6463 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
6464 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
6465 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
6466 l_recog_line_1                NUMBER;
6467 l_recog_line_2                NUMBER;
6468 
6469 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
6470 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
6471 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
6472 
6473 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6474 
6475 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
6476 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
6477 
6478 ---------------------------------------------------------------------------------------------------------------
6479 
6480 
6481 --
6482 -- bulk performance
6483 --
6484 l_balance_type_code           VARCHAR2(1);
6488 --
6485 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
6486 l_log_module                  VARCHAR2(240);
6487 
6489 -- Upgrade strategy
6490 --
6491 l_actual_upg_option           VARCHAR2(1);
6492 l_enc_upg_option           VARCHAR2(1);
6493 
6494 --
6495 BEGIN
6496 --
6497 IF g_log_enabled THEN
6498       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_47';
6499 END IF;
6500 --
6501 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6502 
6503       trace
6504          (p_msg      => 'BEGIN of AcctLineType_47'
6505          ,p_level    => C_LEVEL_PROCEDURE
6506          ,p_module   => l_log_module);
6507 
6508 END IF;
6509 --
6510 l_component_type             := 'AMB_JLT';
6511 l_component_code             := 'AP_ACCRUAL_CM';
6512 l_component_type_code        := 'S';
6513 l_component_appl_id          :=  200;
6514 l_amb_context_code           := 'DEFAULT';
6515 l_entity_code                := 'AP_INVOICES';
6516 l_event_class_code           := 'CREDIT MEMOS';
6517 l_event_type_code            := 'CREDIT MEMOS_ALL';
6518 l_line_definition_owner_code := 'S';
6519 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
6520 --
6521 l_balance_type_code          := 'A';
6522 l_segment                     := NULL;
6523 l_ccid                        := NULL;
6524 l_adr_transaction_coa_id      := NULL;
6525 l_adr_accounting_coa_id       := NULL;
6526 l_adr_flexfield_segment_code  := NULL;
6527 l_adr_flex_value_set_id       := NULL;
6528 l_adr_value_type_code         := NULL;
6529 l_adr_value_combination_id    := NULL;
6530 l_adr_value_segment_code      := NULL;
6531 
6532 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
6533 l_bflow_class_code           := '';    -- 4219869 Business Flow
6534 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
6535 l_budgetary_control_flag     := 'N';
6536 
6537 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
6538 l_bflow_applied_to_amt       := NULL; -- 5132302
6539 l_entered_amt_idx            := NULL;          -- 4262811
6540 l_accted_amt_idx             := NULL;          -- 4262811
6541 l_acc_rev_flag               := NULL;          -- 4262811
6542 l_accrual_line_num           := NULL;          -- 4262811
6543 l_tmp_amt                    := NULL;          -- 4262811
6544 --
6545  
6546 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6547     l_balance_type_code <> 'B' THEN
6548 IF NVL(p_source_21,'
6549 ') =  'RETROACCRUAL' OR 
6550 NVL(p_source_21,'
6551 ') =  'ACCRUAL'
6552  THEN 
6553 
6554    --
6555    XLA_AE_LINES_PKG.SetNewLine;
6556 
6557    p_balance_type_code          := l_balance_type_code;
6558    -- set the flag so later we will know whether the gain loss line needs to be created
6559    
6560    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6561      p_actual_flag :='A';
6562    END IF;
6563 
6564    --
6565    -- bulk performance
6566    --
6567    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6568                                       p_header_num   => 0); -- 4262811
6569    --
6570    -- set accounting line options
6571    --
6572    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6573            p_natural_side_code          => 'D'
6574          , p_gain_or_loss_flag          => 'N'
6575          , p_gl_transfer_mode_code      => 'S'
6576          , p_acct_entry_type_code       => 'A'
6577          , p_switch_side_flag           => 'Y'
6578          , p_merge_duplicate_code       => 'A'
6579          );
6580    --
6581    l_acc_rev_natural_side_code := 'C';  -- 4262811
6582    -- 
6583    --
6584    -- set accounting line type info
6585    --
6586    xla_ae_lines_pkg.SetAcctLineType
6587       (p_component_type             => l_component_type
6588       ,p_event_type_code            => l_event_type_code
6589       ,p_line_definition_owner_code => l_line_definition_owner_code
6590       ,p_line_definition_code       => l_line_definition_code
6591       ,p_accounting_line_code       => l_component_code
6592       ,p_accounting_line_type_code  => l_component_type_code
6593       ,p_accounting_line_appl_id    => l_component_appl_id
6594       ,p_amb_context_code           => l_amb_context_code
6595       ,p_entity_code                => l_entity_code
6596       ,p_event_class_code           => l_event_class_code);
6597    --
6598    -- set accounting class
6599    --
6600    xla_ae_lines_pkg.SetAcctClass(
6601            p_accounting_class_code  => 'ACCRUAL'
6602          , p_ae_header_id           => l_ae_header_id
6603          );
6604 
6605    --
6606    -- set rounding class
6607    --
6608    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6609                       'ACCRUAL';
6610 
6611    --
6612    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6613    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6614    --
6615    -- bulk performance
6616    --
6617    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6618 
6619    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6620       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6621 
6622    -- 4955764
6623    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6627    
6624       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6625 
6626    -- 4458381 Public Sector Enh
6628    --
6629    -- set accounting attributes for the line type
6630    --
6631    l_entered_amt_idx := 23;
6632    l_accted_amt_idx  := 28;
6633    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
6634    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6635    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
6636    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
6637    l_rec_acct_attrs.array_num_value(2)  := 
6638 xla_ae_sources_pkg.GetSystemSourceNum(
6639    p_source_code           => 'XLA_EVENT_APPL_ID'
6640  , p_source_type_code      => 'Y'
6641  , p_source_application_id =>  602
6642 );
6643    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
6644    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
6645    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
6646    l_rec_acct_attrs.array_char_value(4)  := 
6647 xla_ae_sources_pkg.GetSystemSourceChar(
6648    p_source_code           => 'XLA_ENTITY_CODE'
6649  , p_source_type_code      => 'Y'
6650  , p_source_application_id =>  602
6651 );
6652    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
6653    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
6654    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
6655    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
6656    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
6657    l_rec_acct_attrs.array_num_value(7)  := p_source_47;
6658    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6659    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
6660    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
6661    l_rec_acct_attrs.array_char_value(9)  := p_source_49;
6662    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
6663    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_50);
6664    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6665    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_51);
6666    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
6667    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
6668    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
6669    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
6670    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
6671    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
6672    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
6673    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
6674    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
6675    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
6676    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
6677    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
6678    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
6679    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
6680    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
6681    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
6682    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
6683    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
6684    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
6685    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
6686    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
6687    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
6688    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
6689    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
6690    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
6691    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
6692    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
6693    l_rec_acct_attrs.array_date_value(25)  := p_source_62;
6694    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
6695    l_rec_acct_attrs.array_num_value(26)  := p_source_63;
6696    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
6697    l_rec_acct_attrs.array_char_value(27)  := p_source_64;
6698    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
6699    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
6700    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
6701    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
6702    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
6703    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
6704    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
6705    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
6706    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
6707    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
6708    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
6709    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
6710    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
6711    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
6712    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
6713    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
6714    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
6715    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
6716    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
6717    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
6718    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
6719    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
6720    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
6721    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
6725    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
6722    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
6723    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
6724    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
6726    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
6727    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
6728    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
6729    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
6730 
6731    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6732    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6733 
6734    ---------------------------------------------------------------------------------------------------------------
6735    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6736    ---------------------------------------------------------------------------------------------------------------
6737    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6738 
6739    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6740    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6741 
6742    IF xla_accounting_cache_pkg.GetValueChar
6743          (p_source_code         => 'LEDGER_CATEGORY_CODE'
6744          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6745    AND l_bflow_method_code = 'PRIOR_ENTRY'
6746 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6747    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6748          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6749        )
6750    THEN
6751          xla_ae_lines_pkg.BflowUpgEntry
6752            (p_business_method_code    => l_bflow_method_code
6753            ,p_business_class_code     => l_bflow_class_code
6754            ,p_balance_type            => l_balance_type_code);
6755    ELSE
6756       NULL;
6757 -- No business flow processing for business flow method of NONE.
6758    END IF;
6759 
6760    --
6761    -- call analytical criteria
6762    --
6763    
6764    --
6765    -- call description
6766    --
6767    
6768 xla_ae_lines_pkg.SetLineDescription(
6769    p_ae_header_id => l_ae_header_id
6770   ,p_description  => Description_2 (
6771      p_application_id         => p_application_id
6772    , p_ae_header_id           => l_ae_header_id 
6773 , p_source_1 => p_source_1
6774    )
6775 );
6776 
6777 
6778    --
6779    -- call ADRs
6780    -- Bug 4922099
6781    --
6782    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6783         (NVL(l_actual_upg_option, 'N') = 'O') OR
6784         (NVL(l_enc_upg_option, 'N') = 'O')
6785       )
6786    THEN
6787    NULL;
6788    --
6789    --
6790    
6791   l_ccid := AcctDerRule_32(
6792            p_application_id           => p_application_id
6793          , p_ae_header_id             => l_ae_header_id 
6794 , p_source_18 => p_source_18
6795          , x_transaction_coa_id       => l_adr_transaction_coa_id
6796          , x_accounting_coa_id        => l_adr_accounting_coa_id
6797          , x_value_type_code          => l_adr_value_type_code
6798          , p_side                     => 'NA'
6799    );
6800 
6801    xla_ae_lines_pkg.set_ccid(
6802     p_code_combination_id          => l_ccid
6803   , p_value_type_code              => l_adr_value_type_code
6804   , p_transaction_coa_id           => l_adr_transaction_coa_id
6805   , p_accounting_coa_id            => l_adr_accounting_coa_id
6806   , p_adr_code                     => 'AP_INVOICE_DIST'
6807   , p_adr_type_code                => 'S'
6808   , p_component_type               => l_component_type
6809   , p_component_code               => l_component_code
6810   , p_component_type_code          => l_component_type_code
6811   , p_component_appl_id            => l_component_appl_id
6812   , p_amb_context_code             => l_amb_context_code
6813   , p_side                         => 'NA'
6814   );
6815 
6816 
6817    --
6818    --
6819    END IF;
6820    --
6821    -- Bug 4922099
6822    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6823           (NVL(l_enc_upg_option, 'N') = 'O')
6824         ) AND
6825         (l_bflow_method_code = 'PRIOR_ENTRY')
6826       )
6827    THEN
6828       IF
6829       --
6830       1 = 2
6831       --
6832       THEN
6833       xla_accounting_err_pkg.build_message
6834                                     (p_appli_s_name            => 'XLA'
6835                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6836                                     ,p_token_1                 => 'LINE_NUMBER'
6837                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
6838                                     ,p_token_2                 => 'LINE_TYPE_NAME'
6839                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
6840                                                                              l_component_type
6841                                                                             ,l_component_code
6842                                                                             ,l_component_type_code
6843                                                                             ,l_component_appl_id
6844                                                                             ,l_amb_context_code
6845                                                                             ,l_entity_code
6849                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
6846                                                                             ,l_event_class_code
6847                                                                            )
6848                                     ,p_token_3                 => 'OWNER'
6850                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
6851                                                                           ,p_lookup_code    => l_component_type_code
6852                                                                          )
6853                                     ,p_token_4                 => 'PRODUCT_NAME'
6854                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6855                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6856                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6857                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6858                                     ,p_ae_header_id            =>  NULL
6859                                        );
6860 
6861         IF (C_LEVEL_ERROR>= g_log_level) THEN
6862                  trace
6863                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6864                       ,p_level    => C_LEVEL_ERROR
6865                       ,p_module   => l_log_module);
6866         END IF;
6867       END IF;
6868    END IF;
6869    --
6870    --
6871    ------------------------------------------------------------------------------------------------
6872    -- 4219869 Business Flow
6873    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6874    -- Prior Entry.  Currently, the following code is always generated.
6875    ------------------------------------------------------------------------------------------------
6876    XLA_AE_LINES_PKG.ValidateCurrentLine;
6877 
6878    ------------------------------------------------------------------------------------
6879    -- 4219869 Business Flow
6880    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6881    ------------------------------------------------------------------------------------
6882    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6883 
6884    ----------------------------------------------------------------------------------
6885    -- 4219869 Business Flow
6886    -- Update journal entry status -- Need to generate this within IF <condition>
6887    ----------------------------------------------------------------------------------
6888    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6889          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6890          ,p_balance_type_code => l_balance_type_code
6891          );
6892 
6893    -------------------------------------------------------------------------------------------
6894    -- 4262811 - Generate the Accrual Reversal lines
6895    -------------------------------------------------------------------------------------------
6896    BEGIN
6897       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6898                               (g_array_event(p_event_id).array_value_num('header_index'));
6899       IF l_acc_rev_flag IS NULL THEN
6900          l_acc_rev_flag := 'N';
6901       END IF;
6902    EXCEPTION
6903       WHEN OTHERS THEN
6904          l_acc_rev_flag := 'N';
6905    END;
6906    --
6907    IF (l_acc_rev_flag = 'Y') THEN
6908 
6909        -- 4645092  ------------------------------------------------------------------------------
6910        -- To allow MPA report to determine if it should generate report process
6911        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6912        ------------------------------------------------------------------------------------------
6913 
6914        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6915        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6916    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
6917    -- call ADRs
6918    -- Bug 4922099
6919    --
6920    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6921         (NVL(l_actual_upg_option, 'N') = 'O') OR
6922         (NVL(l_enc_upg_option, 'N') = 'O')
6923       )
6924    THEN
6925    NULL;
6926    --
6927    --
6928    
6929   l_ccid := AcctDerRule_32(
6930            p_application_id           => p_application_id
6931          , p_ae_header_id             => l_ae_header_id 
6932 , p_source_18 => p_source_18
6933          , x_transaction_coa_id       => l_adr_transaction_coa_id
6934          , x_accounting_coa_id        => l_adr_accounting_coa_id
6935          , x_value_type_code          => l_adr_value_type_code
6936          , p_side                     => 'NA'
6937    );
6938 
6939    xla_ae_lines_pkg.set_ccid(
6940     p_code_combination_id          => l_ccid
6941   , p_value_type_code              => l_adr_value_type_code
6942   , p_transaction_coa_id           => l_adr_transaction_coa_id
6943   , p_accounting_coa_id            => l_adr_accounting_coa_id
6944   , p_adr_code                     => 'AP_INVOICE_DIST'
6945   , p_adr_type_code                => 'S'
6946   , p_component_type               => l_component_type
6947   , p_component_code               => l_component_code
6948   , p_component_type_code          => l_component_type_code
6949   , p_component_appl_id            => l_component_appl_id
6950   , p_amb_context_code             => l_amb_context_code
6951   , p_side                         => 'NA'
6952   );
6953 
6954 
6955    --
6956    --
6957    END IF;
6958 
6959        --
6963                                          p_header_num   => 1);
6960        -- Update the line information that should be overwritten
6961        --
6962        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6964        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
6965 
6966        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6967 
6968        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
6969           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6970        END IF;
6971 
6972       --
6973       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6974       --
6975       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6976           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
6977       ELSE
6978           ---------------------------------------------------------------------------------------------------
6979           -- 4262811a Switch Sign
6980           ---------------------------------------------------------------------------------------------------
6981           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
6982           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6983                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6984           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6985                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6986           -- 5132302
6987           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6988                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6989 
6990       END IF;
6991 
6992       -- 4955764
6993       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6994       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6995 
6996 
6997       XLA_AE_LINES_PKG.ValidateCurrentLine;
6998       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6999 
7000       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7001                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7002                ,p_balance_type_code => l_balance_type_code);
7003 
7004    END IF;
7005 
7006    -----------------------------------------------------------------------------------------
7007    -- 4262811 Multiperiod Accounting
7008    -----------------------------------------------------------------------------------------
7009      -- No MPA option is assigned.
7010 
7011 
7012 END IF;
7013 END IF;
7014 --
7015 
7016 --
7017 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7018    trace
7019       (p_msg      => 'END of AcctLineType_47'
7020       ,p_level    => C_LEVEL_PROCEDURE
7021       ,p_module   => l_log_module);
7022 END IF;
7023 --
7024 EXCEPTION
7025   WHEN xla_exceptions_pkg.application_exception THEN
7026       RAISE;
7027   WHEN OTHERS THEN
7028        xla_exceptions_pkg.raise_message
7029            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_47');
7030 END AcctLineType_47;
7031 --
7032 
7033 ---------------------------------------
7034 --
7035 -- PRIVATE FUNCTION
7036 --         AcctLineType_48
7037 --
7038 ---------------------------------------
7039 PROCEDURE AcctLineType_48 (
7040   p_application_id        IN NUMBER
7041  ,p_event_id              IN NUMBER
7042  ,p_calculate_acctd_flag  IN VARCHAR2
7043  ,p_calculate_g_l_flag    IN VARCHAR2
7044  ,p_actual_flag           IN OUT VARCHAR2
7045  ,p_balance_type_code     OUT VARCHAR2
7046  ,p_gain_or_loss_ref      OUT VARCHAR2
7047  
7048 --Invoice Distribution Description
7049  , p_source_1            IN VARCHAR2
7050 --Invoice Distribution Ledger Amount
7051  , p_source_9            IN NUMBER
7052 --Invoice Distribution Account
7053  , p_source_18            IN NUMBER
7054 --Invoice Distribution Type
7055  , p_source_21            IN VARCHAR2
7056  , p_source_21_meaning    IN VARCHAR2
7057 --Accounting Reversal Indicator
7058  , p_source_41            IN VARCHAR2
7059 --Distribution Link Type
7060  , p_source_43            IN VARCHAR2
7061 --Allocation to Main Distribution Identifier
7062  , p_source_45            IN NUMBER
7063 --Invoice Identifier
7064  , p_source_46            IN NUMBER
7065 --Business Flow Purchasing Application Identifier
7066  , p_source_47            IN NUMBER
7067 --Business Flow Purchase Order Distribution Type
7068  , p_source_48            IN VARCHAR2
7069 --Business Flow Purchase Order Entity Code
7070  , p_source_49            IN VARCHAR2
7071 --Business Flow Purchase Order Distribution Identifier
7072  , p_source_50            IN NUMBER
7073 --Business Flow Purchasing Document Identifier
7074  , p_source_51            IN NUMBER
7075 --Invoice Distribution Identifier
7076  , p_source_52            IN NUMBER
7077 --Payables Encumbrance Upgrade Credit Account
7078  , p_source_53            IN NUMBER
7079 --Payables Encumbrance Upgrade Credit Amount
7080  , p_source_54            IN NUMBER
7081 --Invoice Currency Code
7082  , p_source_55            IN VARCHAR2
7083 --Payables Encumbrance Upgrade Credit Base Amount
7084  , p_source_56            IN NUMBER
7085 --Payables Encumbrance Upgrade Debit Account
7086  , p_source_57            IN NUMBER
7087 --Payables Encumbrance Upgrade Debit Amount
7088  , p_source_58            IN NUMBER
7092  , p_source_60            IN VARCHAR2
7089 --Payables Encumbrance Upgrade Debit Base Amount
7090  , p_source_59            IN NUMBER
7091 --Payables Encumbrance Upgrade Option
7093 --Invoice Distribution Amount
7094  , p_source_61            IN NUMBER
7095 --Purchase Order Exchange Rate Date
7096  , p_source_62            IN DATE
7097 --Purchase Order Exchange Rate
7098  , p_source_63            IN NUMBER
7099 --Purchase Order Exchange Rate Type
7100  , p_source_64            IN VARCHAR2
7101 --Deferred Accounting End Date
7102  , p_source_65            IN DATE
7103 --Deferred Accounting Option
7104  , p_source_66            IN VARCHAR2
7105 --Deferred Accounting Start Date
7106  , p_source_67            IN DATE
7107 --Override Accounted Amount Indicator
7108  , p_source_68            IN VARCHAR2
7109  , p_source_68_meaning    IN VARCHAR2
7110 --Invoice Supplier Identifier
7111  , p_source_69            IN NUMBER
7112 --Invoice Supplier Site Identifier
7113  , p_source_70            IN NUMBER
7114 --Third Party Type
7115  , p_source_71            IN VARCHAR2
7116 --Parent Reversal Identifier
7117  , p_source_72            IN NUMBER
7118 --Invoice Distribution Tax Line Identifier
7119  , p_source_74            IN NUMBER
7120 --Invoice Distribution Tax Distribution Identifier from Tax
7121  , p_source_75            IN NUMBER
7122 --Invoice Distribution Summary Tax Line Identifier
7123  , p_source_76            IN NUMBER
7124 --Payables Upgrade Credit Encumbrance Type Identifier
7125  , p_source_77            IN NUMBER
7126 --Payables Upgrade Debit Encumbrance Type Identifier
7127  , p_source_78            IN NUMBER
7128 )
7129 IS
7130 
7131 l_component_type              VARCHAR2(80);
7132 l_component_code              VARCHAR2(30);
7133 l_component_type_code         VARCHAR2(1);
7134 l_component_appl_id           INTEGER;
7135 l_amb_context_code            VARCHAR2(30);
7136 l_entity_code                 VARCHAR2(30);
7137 l_event_class_code            VARCHAR2(30);
7138 l_ae_header_id                NUMBER;
7139 l_event_type_code             VARCHAR2(30);
7140 l_line_definition_code        VARCHAR2(30);
7141 l_line_definition_owner_code  VARCHAR2(1);
7142 --
7143 -- adr variables
7144 l_segment                     VARCHAR2(30);
7145 l_ccid                        NUMBER;
7146 l_adr_transaction_coa_id      NUMBER;
7147 l_adr_accounting_coa_id       NUMBER;
7148 l_adr_flexfield_segment_code  VARCHAR2(30);
7149 l_adr_flex_value_set_id       NUMBER;
7150 l_adr_value_type_code         VARCHAR2(30);
7151 l_adr_value_combination_id    NUMBER;
7152 l_adr_value_segment_code      VARCHAR2(30);
7153 
7154 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
7155 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
7156 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
7157 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
7158 
7159 -- 4262811 Variables ------------------------------------------------------------------------------------------
7160 l_entered_amt_idx             NUMBER;
7161 l_accted_amt_idx              NUMBER;
7162 l_acc_rev_flag                VARCHAR2(1);
7163 l_accrual_line_num            NUMBER;
7164 l_tmp_amt                     NUMBER;
7165 l_acc_rev_natural_side_code   VARCHAR2(1);
7166 
7167 l_num_entries                 NUMBER;
7168 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
7169 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
7170 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
7171 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
7172 l_recog_line_1                NUMBER;
7173 l_recog_line_2                NUMBER;
7174 
7175 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
7176 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
7177 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
7178 
7179 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7180 
7181 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
7182 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
7183 
7184 ---------------------------------------------------------------------------------------------------------------
7185 
7186 
7187 --
7188 -- bulk performance
7189 --
7190 l_balance_type_code           VARCHAR2(1);
7191 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
7192 l_log_module                  VARCHAR2(240);
7193 
7194 --
7195 -- Upgrade strategy
7196 --
7197 l_actual_upg_option           VARCHAR2(1);
7198 l_enc_upg_option           VARCHAR2(1);
7199 
7200 --
7201 BEGIN
7202 --
7203 IF g_log_enabled THEN
7204       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_48';
7205 END IF;
7206 --
7207 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7208 
7209       trace
7210          (p_msg      => 'BEGIN of AcctLineType_48'
7211          ,p_level    => C_LEVEL_PROCEDURE
7212          ,p_module   => l_log_module);
7213 
7214 END IF;
7215 --
7216 l_component_type             := 'AMB_JLT';
7217 l_component_code             := 'AP_ACCRUAL_DM';
7218 l_component_type_code        := 'S';
7219 l_component_appl_id          :=  200;
7220 l_amb_context_code           := 'DEFAULT';
7221 l_entity_code                := 'AP_INVOICES';
7222 l_event_class_code           := 'DEBIT MEMOS';
7223 l_event_type_code            := 'DEBIT MEMOS_ALL';
7224 l_line_definition_owner_code := 'S';
7225 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
7226 --
7230 l_adr_transaction_coa_id      := NULL;
7227 l_balance_type_code          := 'A';
7228 l_segment                     := NULL;
7229 l_ccid                        := NULL;
7231 l_adr_accounting_coa_id       := NULL;
7232 l_adr_flexfield_segment_code  := NULL;
7233 l_adr_flex_value_set_id       := NULL;
7234 l_adr_value_type_code         := NULL;
7235 l_adr_value_combination_id    := NULL;
7236 l_adr_value_segment_code      := NULL;
7237 
7238 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
7239 l_bflow_class_code           := '';    -- 4219869 Business Flow
7240 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
7241 l_budgetary_control_flag     := 'N';
7242 
7243 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
7244 l_bflow_applied_to_amt       := NULL; -- 5132302
7245 l_entered_amt_idx            := NULL;          -- 4262811
7246 l_accted_amt_idx             := NULL;          -- 4262811
7247 l_acc_rev_flag               := NULL;          -- 4262811
7248 l_accrual_line_num           := NULL;          -- 4262811
7249 l_tmp_amt                    := NULL;          -- 4262811
7250 --
7251  
7252 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7253     l_balance_type_code <> 'B' THEN
7254 IF NVL(p_source_21,'
7255 ') =  'RETROACCRUAL' OR 
7256 NVL(p_source_21,'
7257 ') =  'ACCRUAL'
7258  THEN 
7259 
7260    --
7261    XLA_AE_LINES_PKG.SetNewLine;
7262 
7263    p_balance_type_code          := l_balance_type_code;
7264    -- set the flag so later we will know whether the gain loss line needs to be created
7265    
7266    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7267      p_actual_flag :='A';
7268    END IF;
7269 
7270    --
7271    -- bulk performance
7272    --
7273    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7274                                       p_header_num   => 0); -- 4262811
7275    --
7276    -- set accounting line options
7277    --
7278    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7279            p_natural_side_code          => 'D'
7280          , p_gain_or_loss_flag          => 'N'
7281          , p_gl_transfer_mode_code      => 'S'
7282          , p_acct_entry_type_code       => 'A'
7283          , p_switch_side_flag           => 'Y'
7284          , p_merge_duplicate_code       => 'A'
7285          );
7286    --
7287    l_acc_rev_natural_side_code := 'C';  -- 4262811
7288    -- 
7289    --
7290    -- set accounting line type info
7291    --
7292    xla_ae_lines_pkg.SetAcctLineType
7293       (p_component_type             => l_component_type
7294       ,p_event_type_code            => l_event_type_code
7295       ,p_line_definition_owner_code => l_line_definition_owner_code
7296       ,p_line_definition_code       => l_line_definition_code
7297       ,p_accounting_line_code       => l_component_code
7298       ,p_accounting_line_type_code  => l_component_type_code
7299       ,p_accounting_line_appl_id    => l_component_appl_id
7300       ,p_amb_context_code           => l_amb_context_code
7301       ,p_entity_code                => l_entity_code
7302       ,p_event_class_code           => l_event_class_code);
7303    --
7304    -- set accounting class
7305    --
7306    xla_ae_lines_pkg.SetAcctClass(
7307            p_accounting_class_code  => 'ACCRUAL'
7308          , p_ae_header_id           => l_ae_header_id
7309          );
7310 
7311    --
7312    -- set rounding class
7313    --
7314    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7315                       'ACCRUAL';
7316 
7317    --
7318    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7319    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7320    --
7321    -- bulk performance
7322    --
7323    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7324 
7325    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7326       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7327 
7328    -- 4955764
7329    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7330       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7331 
7332    -- 4458381 Public Sector Enh
7333    
7334    --
7335    -- set accounting attributes for the line type
7336    --
7337    l_entered_amt_idx := 23;
7338    l_accted_amt_idx  := 28;
7339    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
7340    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
7341    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
7342    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
7343    l_rec_acct_attrs.array_num_value(2)  := 
7344 xla_ae_sources_pkg.GetSystemSourceNum(
7345    p_source_code           => 'XLA_EVENT_APPL_ID'
7346  , p_source_type_code      => 'Y'
7347  , p_source_application_id =>  602
7348 );
7349    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
7350    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
7351    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
7352    l_rec_acct_attrs.array_char_value(4)  := 
7353 xla_ae_sources_pkg.GetSystemSourceChar(
7354    p_source_code           => 'XLA_ENTITY_CODE'
7355  , p_source_type_code      => 'Y'
7356  , p_source_application_id =>  602
7357 );
7358    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
7362    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
7359    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
7360    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
7361    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
7363    l_rec_acct_attrs.array_num_value(7)  := p_source_47;
7364    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7365    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
7366    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
7367    l_rec_acct_attrs.array_char_value(9)  := p_source_49;
7368    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
7369    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_50);
7370    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7371    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_51);
7372    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
7373    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
7374    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
7375    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
7376    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
7377    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
7378    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
7379    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
7380    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
7381    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
7382    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
7383    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
7384    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
7385    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
7386    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
7387    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
7388    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
7389    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
7390    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
7391    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
7392    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
7393    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
7394    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
7395    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
7396    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
7397    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
7398    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
7399    l_rec_acct_attrs.array_date_value(25)  := p_source_62;
7400    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
7401    l_rec_acct_attrs.array_num_value(26)  := p_source_63;
7402    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
7403    l_rec_acct_attrs.array_char_value(27)  := p_source_64;
7404    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
7405    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
7406    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
7407    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
7408    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
7409    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
7410    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
7411    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
7412    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
7413    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
7414    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
7415    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
7416    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
7417    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
7418    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
7419    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
7420    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
7421    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
7422    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
7423    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
7424    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
7425    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
7426    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
7427    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
7428    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
7429    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
7430    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
7431    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
7432    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
7433    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
7434 
7435    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7436    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7437 
7438    ---------------------------------------------------------------------------------------------------------------
7439    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7440    ---------------------------------------------------------------------------------------------------------------
7441    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7442 
7443    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7447          (p_source_code         => 'LEDGER_CATEGORY_CODE'
7444    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7445 
7446    IF xla_accounting_cache_pkg.GetValueChar
7448          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7449    AND l_bflow_method_code = 'PRIOR_ENTRY'
7450 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7451    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7452          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7453        )
7454    THEN
7455          xla_ae_lines_pkg.BflowUpgEntry
7456            (p_business_method_code    => l_bflow_method_code
7457            ,p_business_class_code     => l_bflow_class_code
7458            ,p_balance_type            => l_balance_type_code);
7459    ELSE
7460       NULL;
7461 -- No business flow processing for business flow method of NONE.
7462    END IF;
7463 
7464    --
7465    -- call analytical criteria
7466    --
7467    
7468    --
7469    -- call description
7470    --
7471    
7472 xla_ae_lines_pkg.SetLineDescription(
7473    p_ae_header_id => l_ae_header_id
7474   ,p_description  => Description_2 (
7475      p_application_id         => p_application_id
7476    , p_ae_header_id           => l_ae_header_id 
7477 , p_source_1 => p_source_1
7478    )
7479 );
7480 
7481 
7482    --
7483    -- call ADRs
7484    -- Bug 4922099
7485    --
7486    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7487         (NVL(l_actual_upg_option, 'N') = 'O') OR
7488         (NVL(l_enc_upg_option, 'N') = 'O')
7489       )
7490    THEN
7491    NULL;
7492    --
7493    --
7494    
7495   l_ccid := AcctDerRule_32(
7496            p_application_id           => p_application_id
7497          , p_ae_header_id             => l_ae_header_id 
7498 , p_source_18 => p_source_18
7499          , x_transaction_coa_id       => l_adr_transaction_coa_id
7500          , x_accounting_coa_id        => l_adr_accounting_coa_id
7501          , x_value_type_code          => l_adr_value_type_code
7502          , p_side                     => 'NA'
7503    );
7504 
7505    xla_ae_lines_pkg.set_ccid(
7506     p_code_combination_id          => l_ccid
7507   , p_value_type_code              => l_adr_value_type_code
7508   , p_transaction_coa_id           => l_adr_transaction_coa_id
7509   , p_accounting_coa_id            => l_adr_accounting_coa_id
7510   , p_adr_code                     => 'AP_INVOICE_DIST'
7511   , p_adr_type_code                => 'S'
7512   , p_component_type               => l_component_type
7513   , p_component_code               => l_component_code
7514   , p_component_type_code          => l_component_type_code
7515   , p_component_appl_id            => l_component_appl_id
7516   , p_amb_context_code             => l_amb_context_code
7517   , p_side                         => 'NA'
7518   );
7519 
7520 
7521    --
7522    --
7523    END IF;
7524    --
7525    -- Bug 4922099
7526    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7527           (NVL(l_enc_upg_option, 'N') = 'O')
7528         ) AND
7529         (l_bflow_method_code = 'PRIOR_ENTRY')
7530       )
7531    THEN
7532       IF
7533       --
7534       1 = 2
7535       --
7536       THEN
7537       xla_accounting_err_pkg.build_message
7538                                     (p_appli_s_name            => 'XLA'
7539                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7540                                     ,p_token_1                 => 'LINE_NUMBER'
7541                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
7542                                     ,p_token_2                 => 'LINE_TYPE_NAME'
7543                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
7544                                                                              l_component_type
7545                                                                             ,l_component_code
7546                                                                             ,l_component_type_code
7547                                                                             ,l_component_appl_id
7548                                                                             ,l_amb_context_code
7549                                                                             ,l_entity_code
7550                                                                             ,l_event_class_code
7551                                                                            )
7552                                     ,p_token_3                 => 'OWNER'
7553                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
7554                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
7555                                                                           ,p_lookup_code    => l_component_type_code
7556                                                                          )
7557                                     ,p_token_4                 => 'PRODUCT_NAME'
7558                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7559                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7560                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7564 
7561                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7562                                     ,p_ae_header_id            =>  NULL
7563                                        );
7565         IF (C_LEVEL_ERROR>= g_log_level) THEN
7566                  trace
7567                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7568                       ,p_level    => C_LEVEL_ERROR
7569                       ,p_module   => l_log_module);
7570         END IF;
7571       END IF;
7572    END IF;
7573    --
7574    --
7575    ------------------------------------------------------------------------------------------------
7576    -- 4219869 Business Flow
7577    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7578    -- Prior Entry.  Currently, the following code is always generated.
7579    ------------------------------------------------------------------------------------------------
7580    XLA_AE_LINES_PKG.ValidateCurrentLine;
7581 
7585    ------------------------------------------------------------------------------------
7582    ------------------------------------------------------------------------------------
7583    -- 4219869 Business Flow
7584    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7586    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7587 
7588    ----------------------------------------------------------------------------------
7589    -- 4219869 Business Flow
7590    -- Update journal entry status -- Need to generate this within IF <condition>
7591    ----------------------------------------------------------------------------------
7592    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7593          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7594          ,p_balance_type_code => l_balance_type_code
7595          );
7596 
7597    -------------------------------------------------------------------------------------------
7598    -- 4262811 - Generate the Accrual Reversal lines
7599    -------------------------------------------------------------------------------------------
7600    BEGIN
7601       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7602                               (g_array_event(p_event_id).array_value_num('header_index'));
7603       IF l_acc_rev_flag IS NULL THEN
7604          l_acc_rev_flag := 'N';
7605       END IF;
7606    EXCEPTION
7607       WHEN OTHERS THEN
7608          l_acc_rev_flag := 'N';
7609    END;
7610    --
7611    IF (l_acc_rev_flag = 'Y') THEN
7612 
7613        -- 4645092  ------------------------------------------------------------------------------
7614        -- To allow MPA report to determine if it should generate report process
7615        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7616        ------------------------------------------------------------------------------------------
7617 
7618        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7619        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7620    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
7621    -- call ADRs
7622    -- Bug 4922099
7623    --
7624    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7625         (NVL(l_actual_upg_option, 'N') = 'O') OR
7626         (NVL(l_enc_upg_option, 'N') = 'O')
7627       )
7628    THEN
7629    NULL;
7630    --
7631    --
7632    
7633   l_ccid := AcctDerRule_32(
7634            p_application_id           => p_application_id
7635          , p_ae_header_id             => l_ae_header_id 
7636 , p_source_18 => p_source_18
7637          , x_transaction_coa_id       => l_adr_transaction_coa_id
7638          , x_accounting_coa_id        => l_adr_accounting_coa_id
7639          , x_value_type_code          => l_adr_value_type_code
7640          , p_side                     => 'NA'
7641    );
7642 
7643    xla_ae_lines_pkg.set_ccid(
7644     p_code_combination_id          => l_ccid
7645   , p_value_type_code              => l_adr_value_type_code
7646   , p_transaction_coa_id           => l_adr_transaction_coa_id
7647   , p_accounting_coa_id            => l_adr_accounting_coa_id
7648   , p_adr_code                     => 'AP_INVOICE_DIST'
7649   , p_adr_type_code                => 'S'
7650   , p_component_type               => l_component_type
7651   , p_component_code               => l_component_code
7652   , p_component_type_code          => l_component_type_code
7653   , p_component_appl_id            => l_component_appl_id
7654   , p_amb_context_code             => l_amb_context_code
7655   , p_side                         => 'NA'
7656   );
7657 
7658 
7659    --
7660    --
7661    END IF;
7662 
7663        --
7667                                          p_header_num   => 1);
7664        -- Update the line information that should be overwritten
7665        --
7666        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7668        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
7669 
7670        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7671 
7672        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
7673           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7674        END IF;
7675 
7676       --
7677       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7678       --
7679       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7680           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
7681       ELSE
7682           ---------------------------------------------------------------------------------------------------
7683           -- 4262811a Switch Sign
7684           ---------------------------------------------------------------------------------------------------
7685           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
7686           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7687                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7688           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7689                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7690           -- 5132302
7691           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7692                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7693 
7694       END IF;
7695 
7696       -- 4955764
7697       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7698       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7699 
7700 
7701       XLA_AE_LINES_PKG.ValidateCurrentLine;
7702       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7703 
7704       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7705                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7706                ,p_balance_type_code => l_balance_type_code);
7707 
7708    END IF;
7709 
7710    -----------------------------------------------------------------------------------------
7711    -- 4262811 Multiperiod Accounting
7712    -----------------------------------------------------------------------------------------
7713      -- No MPA option is assigned.
7714 
7715 
7716 END IF;
7717 END IF;
7718 --
7719 
7720 --
7721 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7722    trace
7723       (p_msg      => 'END of AcctLineType_48'
7724       ,p_level    => C_LEVEL_PROCEDURE
7725       ,p_module   => l_log_module);
7726 END IF;
7727 --
7728 EXCEPTION
7729   WHEN xla_exceptions_pkg.application_exception THEN
7730       RAISE;
7731   WHEN OTHERS THEN
7732        xla_exceptions_pkg.raise_message
7733            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_48');
7734 END AcctLineType_48;
7735 --
7736 
7737 ---------------------------------------
7738 --
7739 -- PRIVATE FUNCTION
7740 --         AcctLineType_49
7741 --
7742 ---------------------------------------
7743 PROCEDURE AcctLineType_49 (
7744   p_application_id        IN NUMBER
7745  ,p_event_id              IN NUMBER
7746  ,p_calculate_acctd_flag  IN VARCHAR2
7747  ,p_calculate_g_l_flag    IN VARCHAR2
7748  ,p_actual_flag           IN OUT VARCHAR2
7749  ,p_balance_type_code     OUT VARCHAR2
7750  ,p_gain_or_loss_ref      OUT VARCHAR2
7751  
7752 --Invoice Distribution Description
7753  , p_source_1            IN VARCHAR2
7754 --Invoice Distribution Ledger Amount
7755  , p_source_9            IN NUMBER
7756 --Invoice Distribution Account
7757  , p_source_18            IN NUMBER
7758 --Invoice Distribution Type
7759  , p_source_21            IN VARCHAR2
7760  , p_source_21_meaning    IN VARCHAR2
7761 --Accounting Reversal Indicator
7762  , p_source_41            IN VARCHAR2
7763 --Distribution Link Type
7764  , p_source_43            IN VARCHAR2
7765 --Allocation to Main Distribution Identifier
7766  , p_source_45            IN NUMBER
7767 --Invoice Identifier
7768  , p_source_46            IN NUMBER
7769 --Business Flow Purchasing Application Identifier
7770  , p_source_47            IN NUMBER
7771 --Business Flow Purchase Order Distribution Type
7772  , p_source_48            IN VARCHAR2
7773 --Business Flow Purchase Order Entity Code
7774  , p_source_49            IN VARCHAR2
7775 --Business Flow Purchase Order Distribution Identifier
7776  , p_source_50            IN NUMBER
7777 --Business Flow Purchasing Document Identifier
7778  , p_source_51            IN NUMBER
7779 --Invoice Distribution Identifier
7780  , p_source_52            IN NUMBER
7781 --Payables Encumbrance Upgrade Credit Account
7782  , p_source_53            IN NUMBER
7783 --Payables Encumbrance Upgrade Credit Amount
7784  , p_source_54            IN NUMBER
7785 --Invoice Currency Code
7786  , p_source_55            IN VARCHAR2
7787 --Payables Encumbrance Upgrade Credit Base Amount
7788  , p_source_56            IN NUMBER
7789 --Payables Encumbrance Upgrade Debit Account
7790  , p_source_57            IN NUMBER
7794  , p_source_59            IN NUMBER
7791 --Payables Encumbrance Upgrade Debit Amount
7792  , p_source_58            IN NUMBER
7793 --Payables Encumbrance Upgrade Debit Base Amount
7795 --Payables Encumbrance Upgrade Option
7796  , p_source_60            IN VARCHAR2
7797 --Invoice Distribution Amount
7798  , p_source_61            IN NUMBER
7799 --Purchase Order Exchange Rate Date
7800  , p_source_62            IN DATE
7801 --Purchase Order Exchange Rate
7802  , p_source_63            IN NUMBER
7803 --Purchase Order Exchange Rate Type
7804  , p_source_64            IN VARCHAR2
7805 --Deferred Accounting End Date
7806  , p_source_65            IN DATE
7807 --Deferred Accounting Option
7808  , p_source_66            IN VARCHAR2
7809 --Deferred Accounting Start Date
7810  , p_source_67            IN DATE
7811 --Override Accounted Amount Indicator
7812  , p_source_68            IN VARCHAR2
7813  , p_source_68_meaning    IN VARCHAR2
7814 --Invoice Supplier Identifier
7815  , p_source_69            IN NUMBER
7816 --Invoice Supplier Site Identifier
7817  , p_source_70            IN NUMBER
7818 --Third Party Type
7819  , p_source_71            IN VARCHAR2
7820 --Parent Reversal Identifier
7821  , p_source_72            IN NUMBER
7822 --Invoice Distribution Statistical Amount
7823  , p_source_73            IN NUMBER
7824 --Invoice Distribution Tax Line Identifier
7825  , p_source_74            IN NUMBER
7826 --Invoice Distribution Tax Distribution Identifier from Tax
7827  , p_source_75            IN NUMBER
7828 --Invoice Distribution Summary Tax Line Identifier
7829  , p_source_76            IN NUMBER
7830 --Payables Upgrade Credit Encumbrance Type Identifier
7831  , p_source_77            IN NUMBER
7832 --Payables Upgrade Debit Encumbrance Type Identifier
7833  , p_source_78            IN NUMBER
7834 )
7835 IS
7836 
7837 l_component_type              VARCHAR2(80);
7838 l_component_code              VARCHAR2(30);
7839 l_component_type_code         VARCHAR2(1);
7840 l_component_appl_id           INTEGER;
7841 l_amb_context_code            VARCHAR2(30);
7842 l_entity_code                 VARCHAR2(30);
7843 l_event_class_code            VARCHAR2(30);
7844 l_ae_header_id                NUMBER;
7845 l_event_type_code             VARCHAR2(30);
7846 l_line_definition_code        VARCHAR2(30);
7847 l_line_definition_owner_code  VARCHAR2(1);
7848 --
7849 -- adr variables
7850 l_segment                     VARCHAR2(30);
7851 l_ccid                        NUMBER;
7852 l_adr_transaction_coa_id      NUMBER;
7853 l_adr_accounting_coa_id       NUMBER;
7854 l_adr_flexfield_segment_code  VARCHAR2(30);
7855 l_adr_flex_value_set_id       NUMBER;
7856 l_adr_value_type_code         VARCHAR2(30);
7857 l_adr_value_combination_id    NUMBER;
7858 l_adr_value_segment_code      VARCHAR2(30);
7859 
7860 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
7861 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
7862 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
7863 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
7864 
7865 -- 4262811 Variables ------------------------------------------------------------------------------------------
7866 l_entered_amt_idx             NUMBER;
7867 l_accted_amt_idx              NUMBER;
7868 l_acc_rev_flag                VARCHAR2(1);
7869 l_accrual_line_num            NUMBER;
7870 l_tmp_amt                     NUMBER;
7871 l_acc_rev_natural_side_code   VARCHAR2(1);
7872 
7873 l_num_entries                 NUMBER;
7874 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
7875 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
7876 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
7877 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
7878 l_recog_line_1                NUMBER;
7879 l_recog_line_2                NUMBER;
7880 
7881 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
7882 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
7883 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
7884 
7885 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7886 
7887 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
7888 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
7889 
7890 ---------------------------------------------------------------------------------------------------------------
7891 
7892 
7893 --
7894 -- bulk performance
7895 --
7896 l_balance_type_code           VARCHAR2(1);
7897 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
7898 l_log_module                  VARCHAR2(240);
7899 
7900 --
7901 -- Upgrade strategy
7902 --
7903 l_actual_upg_option           VARCHAR2(1);
7904 l_enc_upg_option           VARCHAR2(1);
7905 
7906 --
7907 BEGIN
7908 --
7909 IF g_log_enabled THEN
7910       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_49';
7911 END IF;
7912 --
7913 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7914 
7915       trace
7916          (p_msg      => 'BEGIN of AcctLineType_49'
7917          ,p_level    => C_LEVEL_PROCEDURE
7918          ,p_module   => l_log_module);
7919 
7920 END IF;
7921 --
7922 l_component_type             := 'AMB_JLT';
7923 l_component_code             := 'AP_ACCRUAL_INV';
7924 l_component_type_code        := 'S';
7925 l_component_appl_id          :=  200;
7926 l_amb_context_code           := 'DEFAULT';
7927 l_entity_code                := 'AP_INVOICES';
7931 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
7928 l_event_class_code           := 'INVOICES';
7929 l_event_type_code            := 'INVOICES_ALL';
7930 l_line_definition_owner_code := 'S';
7932 --
7933 l_balance_type_code          := 'A';
7934 l_segment                     := NULL;
7935 l_ccid                        := NULL;
7936 l_adr_transaction_coa_id      := NULL;
7937 l_adr_accounting_coa_id       := NULL;
7938 l_adr_flexfield_segment_code  := NULL;
7939 l_adr_flex_value_set_id       := NULL;
7940 l_adr_value_type_code         := NULL;
7941 l_adr_value_combination_id    := NULL;
7942 l_adr_value_segment_code      := NULL;
7943 
7944 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
7945 l_bflow_class_code           := '';    -- 4219869 Business Flow
7946 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
7947 l_budgetary_control_flag     := 'N';
7948 
7949 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
7950 l_bflow_applied_to_amt       := NULL; -- 5132302
7951 l_entered_amt_idx            := NULL;          -- 4262811
7952 l_accted_amt_idx             := NULL;          -- 4262811
7953 l_acc_rev_flag               := NULL;          -- 4262811
7954 l_accrual_line_num           := NULL;          -- 4262811
7955 l_tmp_amt                    := NULL;          -- 4262811
7956 --
7957  
7958 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7959     l_balance_type_code <> 'B' THEN
7960 IF NVL(p_source_21,'
7961 ') =  'RETROACCRUAL' OR 
7962 NVL(p_source_21,'
7963 ') =  'ACCRUAL'
7964  THEN 
7965 
7966    --
7967    XLA_AE_LINES_PKG.SetNewLine;
7968 
7969    p_balance_type_code          := l_balance_type_code;
7970    -- set the flag so later we will know whether the gain loss line needs to be created
7971    
7972    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7973      p_actual_flag :='A';
7974    END IF;
7975 
7976    --
7977    -- bulk performance
7978    --
7979    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7980                                       p_header_num   => 0); -- 4262811
7981    --
7982    -- set accounting line options
7983    --
7984    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7985            p_natural_side_code          => 'D'
7986          , p_gain_or_loss_flag          => 'N'
7987          , p_gl_transfer_mode_code      => 'S'
7988          , p_acct_entry_type_code       => 'A'
7989          , p_switch_side_flag           => 'Y'
7990          , p_merge_duplicate_code       => 'A'
7991          );
7992    --
7993    l_acc_rev_natural_side_code := 'C';  -- 4262811
7994    -- 
7995    --
7996    -- set accounting line type info
7997    --
7998    xla_ae_lines_pkg.SetAcctLineType
7999       (p_component_type             => l_component_type
8000       ,p_event_type_code            => l_event_type_code
8001       ,p_line_definition_owner_code => l_line_definition_owner_code
8002       ,p_line_definition_code       => l_line_definition_code
8003       ,p_accounting_line_code       => l_component_code
8004       ,p_accounting_line_type_code  => l_component_type_code
8005       ,p_accounting_line_appl_id    => l_component_appl_id
8006       ,p_amb_context_code           => l_amb_context_code
8007       ,p_entity_code                => l_entity_code
8008       ,p_event_class_code           => l_event_class_code);
8009    --
8010    -- set accounting class
8011    --
8012    xla_ae_lines_pkg.SetAcctClass(
8013            p_accounting_class_code  => 'ACCRUAL'
8014          , p_ae_header_id           => l_ae_header_id
8015          );
8016 
8017    --
8018    -- set rounding class
8019    --
8020    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8021                       'ACCRUAL';
8022 
8023    --
8024    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8025    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8026    --
8027    -- bulk performance
8028    --
8029    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8030 
8031    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8032       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8033 
8034    -- 4955764
8035    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8036       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8037 
8038    -- 4458381 Public Sector Enh
8039    
8040    --
8041    -- set accounting attributes for the line type
8042    --
8043    l_entered_amt_idx := 24;
8044    l_accted_amt_idx  := 29;
8045    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
8046    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8047    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
8048    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8049    l_rec_acct_attrs.array_num_value(2)  := 
8050 xla_ae_sources_pkg.GetSystemSourceNum(
8051    p_source_code           => 'XLA_EVENT_APPL_ID'
8052  , p_source_type_code      => 'Y'
8053  , p_source_application_id =>  602
8054 );
8055    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8056    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
8057    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8058    l_rec_acct_attrs.array_char_value(4)  := 
8062  , p_source_application_id =>  602
8059 xla_ae_sources_pkg.GetSystemSourceChar(
8060    p_source_code           => 'XLA_ENTITY_CODE'
8061  , p_source_type_code      => 'Y'
8063 );
8064    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8065    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
8066    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8067    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
8068    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
8069    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
8070    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
8071    l_rec_acct_attrs.array_num_value(8)  := p_source_47;
8072    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8073    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
8074    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
8075    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
8076    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
8077    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_50);
8078    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8079    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_51);
8080    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
8081    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
8082    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
8083    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
8084    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
8085    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
8086    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
8087    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
8088    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
8089    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
8090    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
8091    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
8092    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
8093    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
8094    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
8095    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
8096    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
8097    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
8098    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
8099    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
8100    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
8101    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
8102    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
8103    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
8104    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
8105    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
8106    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
8107    l_rec_acct_attrs.array_date_value(26)  := p_source_62;
8108    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
8109    l_rec_acct_attrs.array_num_value(27)  := p_source_63;
8110    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
8111    l_rec_acct_attrs.array_char_value(28)  := p_source_64;
8112    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
8113    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
8114    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
8115    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
8116    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
8117    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
8118    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
8119    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
8120    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
8121    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
8122    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
8123    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
8124    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
8125    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
8126    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
8127    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
8128    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
8129    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
8130    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
8131    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
8132    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
8133    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
8134    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
8135    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
8136    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
8137    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
8138    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
8139    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
8140    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
8141    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
8142    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
8143    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
8144 
8145    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8146    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8147 
8148    ---------------------------------------------------------------------------------------------------------------
8152 
8149    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8150    ---------------------------------------------------------------------------------------------------------------
8151    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8156    IF xla_accounting_cache_pkg.GetValueChar
8153    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8154    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8155 
8157          (p_source_code         => 'LEDGER_CATEGORY_CODE'
8158          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8159    AND l_bflow_method_code = 'PRIOR_ENTRY'
8160 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8161    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8162          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8163        )
8164    THEN
8165          xla_ae_lines_pkg.BflowUpgEntry
8166            (p_business_method_code    => l_bflow_method_code
8167            ,p_business_class_code     => l_bflow_class_code
8168            ,p_balance_type            => l_balance_type_code);
8169    ELSE
8170       NULL;
8171 -- No business flow processing for business flow method of NONE.
8172    END IF;
8173 
8174    --
8175    -- call analytical criteria
8176    --
8177    
8178    --
8179    -- call description
8180    --
8181    
8182 xla_ae_lines_pkg.SetLineDescription(
8183    p_ae_header_id => l_ae_header_id
8184   ,p_description  => Description_2 (
8185      p_application_id         => p_application_id
8186    , p_ae_header_id           => l_ae_header_id 
8187 , p_source_1 => p_source_1
8188    )
8189 );
8190 
8191 
8192    --
8193    -- call ADRs
8194    -- Bug 4922099
8195    --
8196    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8197         (NVL(l_actual_upg_option, 'N') = 'O') OR
8198         (NVL(l_enc_upg_option, 'N') = 'O')
8199       )
8200    THEN
8201    NULL;
8202    --
8203    --
8204    
8205   l_ccid := AcctDerRule_32(
8206            p_application_id           => p_application_id
8207          , p_ae_header_id             => l_ae_header_id 
8208 , p_source_18 => p_source_18
8209          , x_transaction_coa_id       => l_adr_transaction_coa_id
8210          , x_accounting_coa_id        => l_adr_accounting_coa_id
8211          , x_value_type_code          => l_adr_value_type_code
8212          , p_side                     => 'NA'
8213    );
8214 
8215    xla_ae_lines_pkg.set_ccid(
8216     p_code_combination_id          => l_ccid
8217   , p_value_type_code              => l_adr_value_type_code
8218   , p_transaction_coa_id           => l_adr_transaction_coa_id
8219   , p_accounting_coa_id            => l_adr_accounting_coa_id
8220   , p_adr_code                     => 'AP_INVOICE_DIST'
8221   , p_adr_type_code                => 'S'
8222   , p_component_type               => l_component_type
8223   , p_component_code               => l_component_code
8224   , p_component_type_code          => l_component_type_code
8225   , p_component_appl_id            => l_component_appl_id
8226   , p_amb_context_code             => l_amb_context_code
8227   , p_side                         => 'NA'
8228   );
8229 
8230 
8231    --
8232    --
8233    END IF;
8234    --
8235    -- Bug 4922099
8236    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8237           (NVL(l_enc_upg_option, 'N') = 'O')
8238         ) AND
8239         (l_bflow_method_code = 'PRIOR_ENTRY')
8240       )
8241    THEN
8242       IF
8243       --
8244       1 = 2
8245       --
8246       THEN
8247       xla_accounting_err_pkg.build_message
8248                                     (p_appli_s_name            => 'XLA'
8249                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8250                                     ,p_token_1                 => 'LINE_NUMBER'
8251                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
8252                                     ,p_token_2                 => 'LINE_TYPE_NAME'
8253                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
8254                                                                              l_component_type
8255                                                                             ,l_component_code
8256                                                                             ,l_component_type_code
8257                                                                             ,l_component_appl_id
8261                                                                            )
8258                                                                             ,l_amb_context_code
8259                                                                             ,l_entity_code
8260                                                                             ,l_event_class_code
8262                                     ,p_token_3                 => 'OWNER'
8263                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
8264                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
8265                                                                           ,p_lookup_code    => l_component_type_code
8266                                                                          )
8267                                     ,p_token_4                 => 'PRODUCT_NAME'
8268                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8269                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8270                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8271                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8272                                     ,p_ae_header_id            =>  NULL
8273                                        );
8274 
8275         IF (C_LEVEL_ERROR>= g_log_level) THEN
8276                  trace
8277                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8278                       ,p_level    => C_LEVEL_ERROR
8279                       ,p_module   => l_log_module);
8280         END IF;
8281       END IF;
8282    END IF;
8283    --
8284    --
8285    ------------------------------------------------------------------------------------------------
8286    -- 4219869 Business Flow
8287    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8288    -- Prior Entry.  Currently, the following code is always generated.
8289    ------------------------------------------------------------------------------------------------
8290    XLA_AE_LINES_PKG.ValidateCurrentLine;
8291 
8295    ------------------------------------------------------------------------------------
8292    ------------------------------------------------------------------------------------
8293    -- 4219869 Business Flow
8294    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8296    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8297 
8298    ----------------------------------------------------------------------------------
8299    -- 4219869 Business Flow
8300    -- Update journal entry status -- Need to generate this within IF <condition>
8301    ----------------------------------------------------------------------------------
8302    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8303          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8304          ,p_balance_type_code => l_balance_type_code
8305          );
8306 
8307    -------------------------------------------------------------------------------------------
8308    -- 4262811 - Generate the Accrual Reversal lines
8309    -------------------------------------------------------------------------------------------
8310    BEGIN
8311       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8312                               (g_array_event(p_event_id).array_value_num('header_index'));
8313       IF l_acc_rev_flag IS NULL THEN
8314          l_acc_rev_flag := 'N';
8315       END IF;
8316    EXCEPTION
8317       WHEN OTHERS THEN
8318          l_acc_rev_flag := 'N';
8319    END;
8320    --
8321    IF (l_acc_rev_flag = 'Y') THEN
8322 
8323        -- 4645092  ------------------------------------------------------------------------------
8324        -- To allow MPA report to determine if it should generate report process
8325        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8326        ------------------------------------------------------------------------------------------
8327 
8328        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8329        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8330    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
8331    -- call ADRs
8332    -- Bug 4922099
8333    --
8334    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8335         (NVL(l_actual_upg_option, 'N') = 'O') OR
8336         (NVL(l_enc_upg_option, 'N') = 'O')
8337       )
8338    THEN
8339    NULL;
8340    --
8341    --
8345          , p_ae_header_id             => l_ae_header_id 
8342    
8343   l_ccid := AcctDerRule_32(
8344            p_application_id           => p_application_id
8346 , p_source_18 => p_source_18
8347          , x_transaction_coa_id       => l_adr_transaction_coa_id
8348          , x_accounting_coa_id        => l_adr_accounting_coa_id
8349          , x_value_type_code          => l_adr_value_type_code
8350          , p_side                     => 'NA'
8351    );
8352 
8353    xla_ae_lines_pkg.set_ccid(
8354     p_code_combination_id          => l_ccid
8355   , p_value_type_code              => l_adr_value_type_code
8356   , p_transaction_coa_id           => l_adr_transaction_coa_id
8357   , p_accounting_coa_id            => l_adr_accounting_coa_id
8358   , p_adr_code                     => 'AP_INVOICE_DIST'
8359   , p_adr_type_code                => 'S'
8360   , p_component_type               => l_component_type
8361   , p_component_code               => l_component_code
8362   , p_component_type_code          => l_component_type_code
8363   , p_component_appl_id            => l_component_appl_id
8364   , p_amb_context_code             => l_amb_context_code
8365   , p_side                         => 'NA'
8366   );
8367 
8368 
8369    --
8370    --
8371    END IF;
8372 
8373        --
8374        -- Update the line information that should be overwritten
8375        --
8376        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8377                                          p_header_num   => 1);
8378        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
8379 
8380        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8381 
8382        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
8383           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8384        END IF;
8385 
8386       --
8387       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8388       --
8389       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8390           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
8391       ELSE
8392           ---------------------------------------------------------------------------------------------------
8393           -- 4262811a Switch Sign
8394           ---------------------------------------------------------------------------------------------------
8395           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
8396           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8397                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8398           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8399                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8400           -- 5132302
8401           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8402                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8403 
8404       END IF;
8405 
8406       -- 4955764
8407       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8408       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8409 
8410 
8411       XLA_AE_LINES_PKG.ValidateCurrentLine;
8412       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8413 
8414       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8415                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8416                ,p_balance_type_code => l_balance_type_code);
8417 
8418    END IF;
8419 
8420    -----------------------------------------------------------------------------------------
8421    -- 4262811 Multiperiod Accounting
8422    -----------------------------------------------------------------------------------------
8423      -- No MPA option is assigned.
8424 
8425 
8426 END IF;
8427 END IF;
8428 --
8429 
8430 --
8431 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8437 --
8432    trace
8433       (p_msg      => 'END of AcctLineType_49'
8434       ,p_level    => C_LEVEL_PROCEDURE
8435       ,p_module   => l_log_module);
8436 END IF;
8438 EXCEPTION
8439   WHEN xla_exceptions_pkg.application_exception THEN
8440       RAISE;
8441   WHEN OTHERS THEN
8442        xla_exceptions_pkg.raise_message
8443            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_49');
8444 END AcctLineType_49;
8445 --
8446 
8447 ---------------------------------------
8448 --
8449 -- PRIVATE FUNCTION
8450 --         AcctLineType_50
8451 --
8452 ---------------------------------------
8453 PROCEDURE AcctLineType_50 (
8454   p_application_id        IN NUMBER
8455  ,p_event_id              IN NUMBER
8456  ,p_calculate_acctd_flag  IN VARCHAR2
8457  ,p_calculate_g_l_flag    IN VARCHAR2
8458  ,p_actual_flag           IN OUT VARCHAR2
8459  ,p_balance_type_code     OUT VARCHAR2
8460  ,p_gain_or_loss_ref      OUT VARCHAR2
8461  
8462 --Invoice Distribution Description
8463  , p_source_1            IN VARCHAR2
8464 --Invoice Distribution Ledger Amount
8465  , p_source_9            IN NUMBER
8466 --Invoice Distribution Account
8467  , p_source_18            IN NUMBER
8468 --Invoice Distribution Type
8469  , p_source_21            IN VARCHAR2
8470  , p_source_21_meaning    IN VARCHAR2
8471 --Accounting Reversal Indicator
8472  , p_source_41            IN VARCHAR2
8473 --Distribution Link Type
8474  , p_source_43            IN VARCHAR2
8475 --Allocation to Main Distribution Identifier
8476  , p_source_45            IN NUMBER
8477 --Invoice Identifier
8478  , p_source_46            IN NUMBER
8479 --Invoice Distribution Identifier
8480  , p_source_52            IN NUMBER
8481 --Payables Encumbrance Upgrade Credit Account
8482  , p_source_53            IN NUMBER
8483 --Payables Encumbrance Upgrade Credit Amount
8484  , p_source_54            IN NUMBER
8485 --Invoice Currency Code
8486  , p_source_55            IN VARCHAR2
8487 --Payables Encumbrance Upgrade Credit Base Amount
8488  , p_source_56            IN NUMBER
8489 --Payables Encumbrance Upgrade Debit Account
8490  , p_source_57            IN NUMBER
8491 --Payables Encumbrance Upgrade Debit Amount
8492  , p_source_58            IN NUMBER
8493 --Payables Encumbrance Upgrade Debit Base Amount
8494  , p_source_59            IN NUMBER
8495 --Payables Encumbrance Upgrade Option
8496  , p_source_60            IN VARCHAR2
8497 --Invoice Distribution Amount
8498  , p_source_61            IN NUMBER
8499 --Purchase Order Exchange Rate Date
8500  , p_source_62            IN DATE
8501 --Purchase Order Exchange Rate
8502  , p_source_63            IN NUMBER
8503 --Purchase Order Exchange Rate Type
8504  , p_source_64            IN VARCHAR2
8505 --Deferred Accounting End Date
8506  , p_source_65            IN DATE
8507 --Deferred Accounting Option
8508  , p_source_66            IN VARCHAR2
8509 --Deferred Accounting Start Date
8510  , p_source_67            IN DATE
8511 --Override Accounted Amount Indicator
8512  , p_source_68            IN VARCHAR2
8513  , p_source_68_meaning    IN VARCHAR2
8514 --Invoice Supplier Identifier
8515  , p_source_69            IN NUMBER
8516 --Invoice Supplier Site Identifier
8517  , p_source_70            IN NUMBER
8518 --Third Party Type
8519  , p_source_71            IN VARCHAR2
8520 --Parent Reversal Identifier
8521  , p_source_72            IN NUMBER
8522 --Invoice Distribution Statistical Amount
8523  , p_source_73            IN NUMBER
8524 --Invoice Distribution Tax Line Identifier
8525  , p_source_74            IN NUMBER
8526 --Invoice Distribution Tax Distribution Identifier from Tax
8527  , p_source_75            IN NUMBER
8528 --Invoice Distribution Summary Tax Line Identifier
8529  , p_source_76            IN NUMBER
8530 --Payables Upgrade Credit Encumbrance Type Identifier
8531  , p_source_77            IN NUMBER
8532 --Payables Upgrade Debit Encumbrance Type Identifier
8533  , p_source_78            IN NUMBER
8534 --Business Flow Accounts Payable Application Identifier
8535  , p_source_79            IN NUMBER
8536 --Business Flow Invoice Distribution Type
8537  , p_source_80            IN VARCHAR2
8538 --Business Flow Invoice Entity Code
8539  , p_source_81            IN VARCHAR2
8540 --Business Flow Invoice Distribution Identifier
8541  , p_source_82            IN NUMBER
8542 --Business Flow Invoice Identifier
8543  , p_source_83            IN NUMBER
8544 )
8545 IS
8546 
8547 l_component_type              VARCHAR2(80);
8548 l_component_code              VARCHAR2(30);
8549 l_component_type_code         VARCHAR2(1);
8550 l_component_appl_id           INTEGER;
8551 l_amb_context_code            VARCHAR2(30);
8552 l_entity_code                 VARCHAR2(30);
8553 l_event_class_code            VARCHAR2(30);
8554 l_ae_header_id                NUMBER;
8555 l_event_type_code             VARCHAR2(30);
8556 l_line_definition_code        VARCHAR2(30);
8557 l_line_definition_owner_code  VARCHAR2(1);
8558 --
8559 -- adr variables
8560 l_segment                     VARCHAR2(30);
8561 l_ccid                        NUMBER;
8562 l_adr_transaction_coa_id      NUMBER;
8563 l_adr_accounting_coa_id       NUMBER;
8564 l_adr_flexfield_segment_code  VARCHAR2(30);
8565 l_adr_flex_value_set_id       NUMBER;
8566 l_adr_value_type_code         VARCHAR2(30);
8567 l_adr_value_combination_id    NUMBER;
8568 l_adr_value_segment_code      VARCHAR2(30);
8569 
8570 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
8571 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
8575 -- 4262811 Variables ------------------------------------------------------------------------------------------
8572 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
8573 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
8574 
8576 l_entered_amt_idx             NUMBER;
8577 l_accted_amt_idx              NUMBER;
8578 l_acc_rev_flag                VARCHAR2(1);
8579 l_accrual_line_num            NUMBER;
8580 l_tmp_amt                     NUMBER;
8581 l_acc_rev_natural_side_code   VARCHAR2(1);
8582 
8583 l_num_entries                 NUMBER;
8584 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
8585 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
8586 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
8587 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
8588 l_recog_line_1                NUMBER;
8589 l_recog_line_2                NUMBER;
8590 
8591 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
8595 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8592 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
8593 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
8594 
8596 
8597 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
8598 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
8599 
8600 ---------------------------------------------------------------------------------------------------------------
8601 
8602 
8603 --
8604 -- bulk performance
8605 --
8606 l_balance_type_code           VARCHAR2(1);
8607 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
8608 l_log_module                  VARCHAR2(240);
8609 
8610 --
8611 -- Upgrade strategy
8612 --
8613 l_actual_upg_option           VARCHAR2(1);
8614 l_enc_upg_option           VARCHAR2(1);
8615 
8616 --
8617 BEGIN
8618 --
8619 IF g_log_enabled THEN
8620       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_50';
8621 END IF;
8622 --
8623 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8624 
8625       trace
8626          (p_msg      => 'BEGIN of AcctLineType_50'
8627          ,p_level    => C_LEVEL_PROCEDURE
8628          ,p_module   => l_log_module);
8629 
8630 END IF;
8631 --
8632 l_component_type             := 'AMB_JLT';
8633 l_component_code             := 'AP_ACCRUAL_PREPAY';
8634 l_component_type_code        := 'S';
8635 l_component_appl_id          :=  200;
8636 l_amb_context_code           := 'DEFAULT';
8637 l_entity_code                := 'AP_INVOICES';
8638 l_event_class_code           := 'PREPAYMENTS';
8639 l_event_type_code            := 'PREPAYMENTS_ALL';
8640 l_line_definition_owner_code := 'S';
8641 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
8642 --
8643 l_balance_type_code          := 'A';
8644 l_segment                     := NULL;
8645 l_ccid                        := NULL;
8646 l_adr_transaction_coa_id      := NULL;
8647 l_adr_accounting_coa_id       := NULL;
8648 l_adr_flexfield_segment_code  := NULL;
8649 l_adr_flex_value_set_id       := NULL;
8650 l_adr_value_type_code         := NULL;
8651 l_adr_value_combination_id    := NULL;
8652 l_adr_value_segment_code      := NULL;
8653 
8654 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
8655 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
8656 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
8657 l_budgetary_control_flag     := 'N';
8658 
8659 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
8660 l_bflow_applied_to_amt       := NULL; -- 5132302
8661 l_entered_amt_idx            := NULL;          -- 4262811
8662 l_accted_amt_idx             := NULL;          -- 4262811
8663 l_acc_rev_flag               := NULL;          -- 4262811
8664 l_accrual_line_num           := NULL;          -- 4262811
8665 l_tmp_amt                    := NULL;          -- 4262811
8666 --
8667  
8668 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8669     l_balance_type_code <> 'B' THEN
8670 IF NVL(p_source_21,'
8671 ') =  'RETROACCRUAL' OR 
8672 NVL(p_source_21,'
8673 ') =  'ACCRUAL'
8674  THEN 
8675 
8676    --
8677    XLA_AE_LINES_PKG.SetNewLine;
8678 
8679    p_balance_type_code          := l_balance_type_code;
8680    -- set the flag so later we will know whether the gain loss line needs to be created
8681    
8682    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8686    --
8683      p_actual_flag :='A';
8684    END IF;
8685 
8687    -- bulk performance
8688    --
8689    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8690                                       p_header_num   => 0); -- 4262811
8691    --
8692    -- set accounting line options
8693    --
8694    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8695            p_natural_side_code          => 'D'
8696          , p_gain_or_loss_flag          => 'N'
8697          , p_gl_transfer_mode_code      => 'S'
8698          , p_acct_entry_type_code       => 'A'
8699          , p_switch_side_flag           => 'Y'
8700          , p_merge_duplicate_code       => 'A'
8701          );
8702    --
8703    l_acc_rev_natural_side_code := 'C';  -- 4262811
8704    -- 
8705    --
8706    -- set accounting line type info
8707    --
8708    xla_ae_lines_pkg.SetAcctLineType
8709       (p_component_type             => l_component_type
8710       ,p_event_type_code            => l_event_type_code
8711       ,p_line_definition_owner_code => l_line_definition_owner_code
8712       ,p_line_definition_code       => l_line_definition_code
8713       ,p_accounting_line_code       => l_component_code
8714       ,p_accounting_line_type_code  => l_component_type_code
8715       ,p_accounting_line_appl_id    => l_component_appl_id
8716       ,p_amb_context_code           => l_amb_context_code
8717       ,p_entity_code                => l_entity_code
8718       ,p_event_class_code           => l_event_class_code);
8719    --
8720    -- set accounting class
8721    --
8722    xla_ae_lines_pkg.SetAcctClass(
8723            p_accounting_class_code  => 'ACCRUAL'
8724          , p_ae_header_id           => l_ae_header_id
8725          );
8726 
8727    --
8728    -- set rounding class
8729    --
8730    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8731                       'ACCRUAL';
8732 
8733    --
8734    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8735    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8736    --
8737    -- bulk performance
8738    --
8739    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8740 
8741    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8742       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8743 
8744    -- 4955764
8745    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8746       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8747 
8748    -- 4458381 Public Sector Enh
8749    
8750    --
8751    -- set accounting attributes for the line type
8752    --
8753    l_entered_amt_idx := 23;
8754    l_accted_amt_idx  := 28;
8755    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
8756    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8760 xla_ae_sources_pkg.GetSystemSourceNum(
8757    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
8758    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8759    l_rec_acct_attrs.array_num_value(2)  := 
8761    p_source_code           => 'XLA_EVENT_APPL_ID'
8762  , p_source_type_code      => 'Y'
8763  , p_source_application_id =>  602
8764 );
8765    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8766    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
8767    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8768    l_rec_acct_attrs.array_char_value(4)  := 
8769 xla_ae_sources_pkg.GetSystemSourceChar(
8770    p_source_code           => 'XLA_ENTITY_CODE'
8771  , p_source_type_code      => 'Y'
8772  , p_source_application_id =>  602
8773 );
8774    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8775    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
8776    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8777    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
8778    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
8779    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
8780    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8781    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
8782    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
8783    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
8784    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
8785    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
8786    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8787    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
8788    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
8789    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
8790    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
8791    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
8792    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
8793    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
8794    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
8795    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
8796    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
8797    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
8798    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
8799    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
8800    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
8801    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
8802    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
8803    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
8804    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
8805    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
8806    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
8807    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
8808    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
8809    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
8810    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
8811    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
8812    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
8813    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
8814    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
8815    l_rec_acct_attrs.array_date_value(25)  := p_source_62;
8816    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
8817    l_rec_acct_attrs.array_num_value(26)  := p_source_63;
8818    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
8819    l_rec_acct_attrs.array_char_value(27)  := p_source_64;
8820    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
8821    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
8822    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
8823    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
8824    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
8825    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
8826    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
8827    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
8828    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
8829    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
8830    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
8831    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
8832    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
8833    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
8834    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
8835    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
8836    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
8837    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
8838    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
8842    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
8839    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
8840    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
8841    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
8843    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
8844    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
8845    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
8846    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
8847    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
8848    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
8849    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
8850    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
8851    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
8852 
8853    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8854    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8855 
8856    ---------------------------------------------------------------------------------------------------------------
8857    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8858    ---------------------------------------------------------------------------------------------------------------
8859    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8860 
8861    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8862    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8863 
8867    AND l_bflow_method_code = 'PRIOR_ENTRY'
8864    IF xla_accounting_cache_pkg.GetValueChar
8865          (p_source_code         => 'LEDGER_CATEGORY_CODE'
8866          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8868 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8869    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8870          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8871        )
8872    THEN
8873          xla_ae_lines_pkg.BflowUpgEntry
8874            (p_business_method_code    => l_bflow_method_code
8875            ,p_business_class_code     => l_bflow_class_code
8876            ,p_balance_type            => l_balance_type_code);
8877    ELSE
8878       NULL;
8879 -- No business flow processing for business flow method of NONE.
8880    END IF;
8881 
8882    --
8883    -- call analytical criteria
8884    --
8885    
8886    --
8887    -- call description
8888    --
8889    
8890 xla_ae_lines_pkg.SetLineDescription(
8891    p_ae_header_id => l_ae_header_id
8892   ,p_description  => Description_2 (
8893      p_application_id         => p_application_id
8894    , p_ae_header_id           => l_ae_header_id 
8895 , p_source_1 => p_source_1
8896    )
8897 );
8898 
8899 
8900    --
8901    -- call ADRs
8902    -- Bug 4922099
8903    --
8904    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8905         (NVL(l_actual_upg_option, 'N') = 'O') OR
8906         (NVL(l_enc_upg_option, 'N') = 'O')
8907       )
8908    THEN
8909    NULL;
8910    --
8911    --
8912    
8913   l_ccid := AcctDerRule_32(
8914            p_application_id           => p_application_id
8915          , p_ae_header_id             => l_ae_header_id 
8916 , p_source_18 => p_source_18
8917          , x_transaction_coa_id       => l_adr_transaction_coa_id
8918          , x_accounting_coa_id        => l_adr_accounting_coa_id
8919          , x_value_type_code          => l_adr_value_type_code
8920          , p_side                     => 'NA'
8921    );
8922 
8923    xla_ae_lines_pkg.set_ccid(
8924     p_code_combination_id          => l_ccid
8925   , p_value_type_code              => l_adr_value_type_code
8926   , p_transaction_coa_id           => l_adr_transaction_coa_id
8927   , p_accounting_coa_id            => l_adr_accounting_coa_id
8928   , p_adr_code                     => 'AP_INVOICE_DIST'
8929   , p_adr_type_code                => 'S'
8930   , p_component_type               => l_component_type
8931   , p_component_code               => l_component_code
8932   , p_component_type_code          => l_component_type_code
8933   , p_component_appl_id            => l_component_appl_id
8934   , p_amb_context_code             => l_amb_context_code
8935   , p_side                         => 'NA'
8936   );
8937 
8938 
8939    --
8940    --
8941    END IF;
8942    --
8943    -- Bug 4922099
8944    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8945           (NVL(l_enc_upg_option, 'N') = 'O')
8946         ) AND
8950       IF
8947         (l_bflow_method_code = 'PRIOR_ENTRY')
8948       )
8949    THEN
8951       --
8952       1 = 2
8953       --
8954       THEN
8955       xla_accounting_err_pkg.build_message
8956                                     (p_appli_s_name            => 'XLA'
8957                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8958                                     ,p_token_1                 => 'LINE_NUMBER'
8959                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
8960                                     ,p_token_2                 => 'LINE_TYPE_NAME'
8961                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
8962                                                                              l_component_type
8963                                                                             ,l_component_code
8964                                                                             ,l_component_type_code
8965                                                                             ,l_component_appl_id
8966                                                                             ,l_amb_context_code
8967                                                                             ,l_entity_code
8968                                                                             ,l_event_class_code
8969                                                                            )
8970                                     ,p_token_3                 => 'OWNER'
8971                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
8972                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
8973                                                                           ,p_lookup_code    => l_component_type_code
8974                                                                          )
8975                                     ,p_token_4                 => 'PRODUCT_NAME'
8976                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8977                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8978                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8979                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8980                                     ,p_ae_header_id            =>  NULL
8981                                        );
8982 
8983         IF (C_LEVEL_ERROR>= g_log_level) THEN
8984                  trace
8985                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8986                       ,p_level    => C_LEVEL_ERROR
8987                       ,p_module   => l_log_module);
8988         END IF;
8989       END IF;
8990    END IF;
8991    --
8992    --
8993    ------------------------------------------------------------------------------------------------
8994    -- 4219869 Business Flow
8995    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8996    -- Prior Entry.  Currently, the following code is always generated.
8997    ------------------------------------------------------------------------------------------------
8998    XLA_AE_LINES_PKG.ValidateCurrentLine;
8999 
9000    ------------------------------------------------------------------------------------
9001    -- 4219869 Business Flow
9002    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9006    ----------------------------------------------------------------------------------
9003    ------------------------------------------------------------------------------------
9004    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9005 
9007    -- 4219869 Business Flow
9008    -- Update journal entry status -- Need to generate this within IF <condition>
9009    ----------------------------------------------------------------------------------
9010    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9011          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9012          ,p_balance_type_code => l_balance_type_code
9013          );
9014 
9015    -------------------------------------------------------------------------------------------
9016    -- 4262811 - Generate the Accrual Reversal lines
9017    -------------------------------------------------------------------------------------------
9018    BEGIN
9019       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9020                               (g_array_event(p_event_id).array_value_num('header_index'));
9021       IF l_acc_rev_flag IS NULL THEN
9022          l_acc_rev_flag := 'N';
9023       END IF;
9024    EXCEPTION
9025       WHEN OTHERS THEN
9029    IF (l_acc_rev_flag = 'Y') THEN
9026          l_acc_rev_flag := 'N';
9027    END;
9028    --
9030 
9031        -- 4645092  ------------------------------------------------------------------------------
9032        -- To allow MPA report to determine if it should generate report process
9033        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9034        ------------------------------------------------------------------------------------------
9035 
9036        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9037        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9038    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
9039    -- call ADRs
9040    -- Bug 4922099
9041    --
9042    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9043         (NVL(l_actual_upg_option, 'N') = 'O') OR
9044         (NVL(l_enc_upg_option, 'N') = 'O')
9045       )
9046    THEN
9047    NULL;
9048    --
9049    --
9050    
9051   l_ccid := AcctDerRule_32(
9052            p_application_id           => p_application_id
9053          , p_ae_header_id             => l_ae_header_id 
9054 , p_source_18 => p_source_18
9055          , x_transaction_coa_id       => l_adr_transaction_coa_id
9056          , x_accounting_coa_id        => l_adr_accounting_coa_id
9057          , x_value_type_code          => l_adr_value_type_code
9058          , p_side                     => 'NA'
9059    );
9060 
9061    xla_ae_lines_pkg.set_ccid(
9062     p_code_combination_id          => l_ccid
9063   , p_value_type_code              => l_adr_value_type_code
9064   , p_transaction_coa_id           => l_adr_transaction_coa_id
9065   , p_accounting_coa_id            => l_adr_accounting_coa_id
9066   , p_adr_code                     => 'AP_INVOICE_DIST'
9067   , p_adr_type_code                => 'S'
9068   , p_component_type               => l_component_type
9069   , p_component_code               => l_component_code
9070   , p_component_type_code          => l_component_type_code
9071   , p_component_appl_id            => l_component_appl_id
9072   , p_amb_context_code             => l_amb_context_code
9073   , p_side                         => 'NA'
9074   );
9075 
9076 
9077    --
9078    --
9079    END IF;
9080 
9081        --
9082        -- Update the line information that should be overwritten
9083        --
9084        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9085                                          p_header_num   => 1);
9086        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
9087 
9088        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9089 
9090        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
9091           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9092        END IF;
9093 
9094       --
9095       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9096       --
9097       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9098           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
9099       ELSE
9100           ---------------------------------------------------------------------------------------------------
9101           -- 4262811a Switch Sign
9102           ---------------------------------------------------------------------------------------------------
9103           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
9104           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9105                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9106           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9107                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9108           -- 5132302
9109           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9110                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9111 
9112       END IF;
9113 
9114       -- 4955764
9115       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9116       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9117 
9118 
9119       XLA_AE_LINES_PKG.ValidateCurrentLine;
9120       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9121 
9122       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9123                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9124                ,p_balance_type_code => l_balance_type_code);
9125 
9126    END IF;
9127 
9128    -----------------------------------------------------------------------------------------
9129    -- 4262811 Multiperiod Accounting
9130    -----------------------------------------------------------------------------------------
9131      -- No MPA option is assigned.
9132 
9133 
9134 END IF;
9135 END IF;
9136 --
9137 
9138 --
9139 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9140    trace
9141       (p_msg      => 'END of AcctLineType_50'
9142       ,p_level    => C_LEVEL_PROCEDURE
9143       ,p_module   => l_log_module);
9144 END IF;
9145 --
9149   WHEN OTHERS THEN
9146 EXCEPTION
9147   WHEN xla_exceptions_pkg.application_exception THEN
9148       RAISE;
9150        xla_exceptions_pkg.raise_message
9151            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_50');
9152 END AcctLineType_50;
9153 --
9154 
9155 ---------------------------------------
9156 --
9157 -- PRIVATE FUNCTION
9158 --         AcctLineType_51
9159 --
9160 ---------------------------------------
9161 PROCEDURE AcctLineType_51 (
9162   p_application_id        IN NUMBER
9163  ,p_event_id              IN NUMBER
9164  ,p_calculate_acctd_flag  IN VARCHAR2
9165  ,p_calculate_g_l_flag    IN VARCHAR2
9166  ,p_actual_flag           IN OUT VARCHAR2
9167  ,p_balance_type_code     OUT VARCHAR2
9168  ,p_gain_or_loss_ref      OUT VARCHAR2
9169  
9170 --Invoice Distribution Description
9171  , p_source_1            IN VARCHAR2
9172 --Automatic Offsets Value
9173  , p_source_3            IN VARCHAR2
9174  , p_source_3_meaning    IN VARCHAR2
9175 --Purchase Order Rate Variance Gain Account
9176  , p_source_8            IN NUMBER
9177 --Invoice Distribution Ledger Amount
9178  , p_source_9            IN NUMBER
9179 --Destination Type of the PO Distribution
9180  , p_source_10            IN VARCHAR2
9181  , p_source_10_meaning    IN VARCHAR2
9182 --Purchase Order Rate Variance Loss Account
9183  , p_source_11            IN NUMBER
9184 --Invoice Distribution Account
9185  , p_source_18            IN NUMBER
9186 --Invoice Distribution Type
9187  , p_source_21            IN VARCHAR2
9188  , p_source_21_meaning    IN VARCHAR2
9189 --Automatic Offsets Flag
9190  , p_source_35            IN VARCHAR2
9191  , p_source_35_meaning    IN VARCHAR2
9192 --Accounting Reversal Indicator
9193  , p_source_41            IN VARCHAR2
9194 --Distribution Link Type
9195  , p_source_43            IN VARCHAR2
9196 --Allocation to Main Distribution Identifier
9197  , p_source_45            IN NUMBER
9198 --Invoice Identifier
9199  , p_source_46            IN NUMBER
9200 --Invoice Distribution Identifier
9201  , p_source_52            IN NUMBER
9202 --Payables Encumbrance Upgrade Credit Account
9203  , p_source_53            IN NUMBER
9204 --Payables Encumbrance Upgrade Credit Amount
9205  , p_source_54            IN NUMBER
9206 --Invoice Currency Code
9207  , p_source_55            IN VARCHAR2
9208 --Payables Encumbrance Upgrade Credit Base Amount
9209  , p_source_56            IN NUMBER
9210 --Payables Encumbrance Upgrade Debit Account
9211  , p_source_57            IN NUMBER
9212 --Payables Encumbrance Upgrade Debit Amount
9213  , p_source_58            IN NUMBER
9214 --Payables Encumbrance Upgrade Debit Base Amount
9215  , p_source_59            IN NUMBER
9216 --Payables Encumbrance Upgrade Option
9217  , p_source_60            IN VARCHAR2
9218 --Deferred Accounting End Date
9219  , p_source_65            IN DATE
9220 --Deferred Accounting Option
9221  , p_source_66            IN VARCHAR2
9222 --Deferred Accounting Start Date
9223  , p_source_67            IN DATE
9224 --Override Accounted Amount Indicator
9225  , p_source_68            IN VARCHAR2
9226  , p_source_68_meaning    IN VARCHAR2
9227 --Invoice Supplier Identifier
9228  , p_source_69            IN NUMBER
9229 --Invoice Supplier Site Identifier
9230  , p_source_70            IN NUMBER
9231 --Third Party Type
9232  , p_source_71            IN VARCHAR2
9233 --Parent Reversal Identifier
9234  , p_source_72            IN NUMBER
9235 --Invoice Distribution Statistical Amount
9236  , p_source_73            IN NUMBER
9237 --Invoice Distribution Tax Line Identifier
9238  , p_source_74            IN NUMBER
9239 --Invoice Distribution Tax Distribution Identifier from Tax
9240  , p_source_75            IN NUMBER
9241 --Invoice Distribution Summary Tax Line Identifier
9242  , p_source_76            IN NUMBER
9243 --Payables Upgrade Credit Encumbrance Type Identifier
9244  , p_source_77            IN NUMBER
9245 --Payables Upgrade Debit Encumbrance Type Identifier
9246  , p_source_78            IN NUMBER
9247 --Business Flow Accounts Payable Application Identifier
9248  , p_source_79            IN NUMBER
9249 --Business Flow Invoice Distribution Type
9250  , p_source_80            IN VARCHAR2
9251 --Business Flow Invoice Entity Code
9252  , p_source_81            IN VARCHAR2
9253 --Business Flow Invoice Distribution Identifier
9254  , p_source_82            IN NUMBER
9255 --Business Flow Invoice Identifier
9256  , p_source_83            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);
9273 l_segment                     VARCHAR2(30);
9270 l_line_definition_owner_code  VARCHAR2(1);
9271 --
9272 -- adr variables
9274 l_ccid                        NUMBER;
9275 l_adr_transaction_coa_id      NUMBER;
9276 l_adr_accounting_coa_id       NUMBER;
9277 l_adr_flexfield_segment_code  VARCHAR2(30);
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_51';
9334 END IF;
9335 --
9336 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9337 
9338       trace
9339          (p_msg      => 'BEGIN of AcctLineType_51'
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_ALC_EX_RATE_VAR_CM';
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           := 'CREDIT MEMOS';
9352 l_event_type_code            := 'CREDIT MEMOS_ALL';
9353 l_line_definition_owner_code := 'S';
9354 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
9355 --
9356 l_balance_type_code          := 'A';
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           := '';    -- 4219869 Business Flow
9369 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
9370 l_budgetary_control_flag     := 'N';
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 NOT ((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_21,'
9388 ') =  'ACCRUAL'
9389  THEN 
9390 
9391    --
9392    XLA_AE_LINES_PKG.SetNewLine;
9393 
9394    p_balance_type_code          := l_balance_type_code;
9395    -- set the flag so later we will know whether the gain loss line needs to be created
9396    
9397    IF(l_balance_type_code = 'A' ) THEN
9398      p_actual_flag :='G';
9399    END IF;
9400 
9401    --
9402    -- bulk performance
9403    --
9404    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9408    --
9405                                       p_header_num   => 0); -- 4262811
9406    --
9407    -- set accounting line options
9409    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9410            p_natural_side_code          => 'G'
9411          , p_gain_or_loss_flag          => 'N'
9412          , p_gl_transfer_mode_code      => 'S'
9413          , p_acct_entry_type_code       => 'A'
9414          , p_switch_side_flag           => ''
9415          , p_merge_duplicate_code       => 'A'
9416          );
9417    --
9418    l_acc_rev_natural_side_code := 'C';  -- 4262811
9419    -- 
9420    --
9421    -- set accounting line type info
9422    --
9423    xla_ae_lines_pkg.SetAcctLineType
9424       (p_component_type             => l_component_type
9425       ,p_event_type_code            => l_event_type_code
9426       ,p_line_definition_owner_code => l_line_definition_owner_code
9427       ,p_line_definition_code       => l_line_definition_code
9428       ,p_accounting_line_code       => l_component_code
9429       ,p_accounting_line_type_code  => l_component_type_code
9430       ,p_accounting_line_appl_id    => l_component_appl_id
9431       ,p_amb_context_code           => l_amb_context_code
9432       ,p_entity_code                => l_entity_code
9433       ,p_event_class_code           => l_event_class_code);
9434    --
9435    -- set accounting class
9436    --
9437    xla_ae_lines_pkg.SetAcctClass(
9438            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
9439          , p_ae_header_id           => l_ae_header_id
9440          );
9441 
9442    --
9443    -- set rounding class
9444    --
9445    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9446                       'EXCHANGE_RATE_VARIANCE';
9447 
9448    --
9449    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9450    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9451    --
9452    -- bulk performance
9453    --
9454    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9455 
9456    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9457       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9458 
9459    -- 4955764
9460    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9461       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9462 
9463    -- 4458381 Public Sector Enh
9464    
9465    --
9466    -- set accounting attributes for the line type
9467    --
9468    l_entered_amt_idx := NULL;
9469    l_accted_amt_idx  := 23;
9470    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
9471    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9472    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
9473    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
9474    l_rec_acct_attrs.array_num_value(2)  := 
9475 xla_ae_sources_pkg.GetSystemSourceNum(
9476    p_source_code           => 'XLA_EVENT_APPL_ID'
9477  , p_source_type_code      => 'Y'
9478  , p_source_application_id =>  602
9479 );
9480    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
9481    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
9482    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
9483    l_rec_acct_attrs.array_char_value(4)  := 
9484 xla_ae_sources_pkg.GetSystemSourceChar(
9485    p_source_code           => 'XLA_ENTITY_CODE'
9486  , p_source_type_code      => 'Y'
9487  , p_source_application_id =>  602
9488 );
9489    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
9490    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
9491    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
9492    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
9493    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
9494    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
9495    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9496    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
9497    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
9498    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
9499    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
9500    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
9501    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9502    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
9503    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
9504    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
9505    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
9506    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
9507    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
9508    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
9509    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
9510    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
9511    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
9512    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
9513    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
9514    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
9515    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
9516    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
9517    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
9518    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
9522    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
9519    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
9520    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
9521    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
9523    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
9524    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
9525    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
9526    l_rec_acct_attrs.array_num_value(23)  := p_source_9;
9527    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
9528    l_rec_acct_attrs.array_date_value(24)  := p_source_65;
9529    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
9530    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
9531    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
9532    l_rec_acct_attrs.array_date_value(26)  := p_source_67;
9533    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
9534    l_rec_acct_attrs.array_char_value(27)  := p_source_68;
9535    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
9536    l_rec_acct_attrs.array_num_value(28)  := p_source_69;
9537    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
9538    l_rec_acct_attrs.array_num_value(29)  := p_source_70;
9539    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
9540    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
9541    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
9542    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
9543    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
9544    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
9545    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
9546    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
9547    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
9548    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
9549    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
9550    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
9551    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
9552    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
9553    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
9554    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
9555    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
9556    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
9557 
9558    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9559    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9560 
9561    ---------------------------------------------------------------------------------------------------------------
9562    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9563    ---------------------------------------------------------------------------------------------------------------
9564    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9565 
9566    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9567    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9568 
9569    IF xla_accounting_cache_pkg.GetValueChar
9570          (p_source_code         => 'LEDGER_CATEGORY_CODE'
9571          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9572    AND l_bflow_method_code = 'PRIOR_ENTRY'
9573 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9574    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9575          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9576        )
9577    THEN
9578          xla_ae_lines_pkg.BflowUpgEntry
9579            (p_business_method_code    => l_bflow_method_code
9580            ,p_business_class_code     => l_bflow_class_code
9581            ,p_balance_type            => l_balance_type_code);
9582    ELSE
9583       NULL;
9584 -- No business flow processing for business flow method of NONE.
9585    END IF;
9586 
9587    --
9588    -- call analytical criteria
9589    --
9590    
9591    --
9592    -- call description
9593    --
9594    
9595 xla_ae_lines_pkg.SetLineDescription(
9596    p_ae_header_id => l_ae_header_id
9597   ,p_description  => Description_2 (
9598      p_application_id         => p_application_id
9599    , p_ae_header_id           => l_ae_header_id 
9600 , p_source_1 => p_source_1
9601    )
9602 );
9603 
9604 
9605    --
9606    -- call ADRs
9607    -- Bug 4922099
9608    --
9609    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9610         (NVL(l_actual_upg_option, 'N') = 'O') OR
9611         (NVL(l_enc_upg_option, 'N') = 'O')
9612       )
9613    THEN
9614    NULL;
9615    --
9616    --
9617    
9618   l_ccid := AcctDerRule_29(
9619            p_application_id           => p_application_id
9620          , p_ae_header_id             => l_ae_header_id 
9621 , p_source_3 => p_source_3
9622 , p_source_3_meaning => p_source_3_meaning
9623 , p_source_8 => p_source_8
9624 , p_source_9 => p_source_9
9625 , p_source_10 => p_source_10
9626 , p_source_10_meaning => p_source_10_meaning
9627 , p_source_11 => p_source_11
9628 , p_source_18 => p_source_18
9629 , p_source_35 => p_source_35
9630 , p_source_35_meaning => p_source_35_meaning
9631          , x_transaction_coa_id       => l_adr_transaction_coa_id
9632          , x_accounting_coa_id        => l_adr_accounting_coa_id
9633          , x_value_type_code          => l_adr_value_type_code
9634          , p_side                     => 'ALL'
9635    );
9636 
9640   , p_transaction_coa_id           => l_adr_transaction_coa_id
9637    xla_ae_lines_pkg.set_ccid(
9638     p_code_combination_id          => l_ccid
9639   , p_value_type_code              => l_adr_value_type_code
9641   , p_accounting_coa_id            => l_adr_accounting_coa_id
9642   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
9643   , p_adr_type_code                => 'S'
9644   , p_component_type               => l_component_type
9645   , p_component_code               => l_component_code
9646   , p_component_type_code          => l_component_type_code
9647   , p_component_appl_id            => l_component_appl_id
9648   , p_amb_context_code             => l_amb_context_code
9649   , p_side                         => 'ALL'
9650   );
9651 
9652 
9653    l_segment := AcctDerRule_8(
9654            p_application_id           => p_application_id
9655          , p_ae_header_id             => l_ae_header_id 
9656 , p_source_3 => p_source_3
9657 , p_source_3_meaning => p_source_3_meaning
9658 , p_source_8 => p_source_8
9659 , p_source_10 => p_source_10
9660 , p_source_10_meaning => p_source_10_meaning
9661          , x_transaction_coa_id       => l_adr_transaction_coa_id
9662          , x_accounting_coa_id        => l_adr_accounting_coa_id
9663          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9664          , x_flex_value_set_id        => l_adr_flex_value_set_id
9665          , x_value_type_code          => l_adr_value_type_code
9666          , x_value_combination_id     => l_adr_value_combination_id
9667          , x_value_segment_code       => l_adr_value_segment_code
9668          , p_side                     => 'DEBIT'
9669          , p_override_seg_flag        => 'Y'
9670    );
9671 
9672    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9673 
9674       xla_ae_lines_pkg.set_segment(
9675           p_to_segment_code         => 'GL_ACCOUNT'
9676         , p_segment_value           => l_segment
9677         , p_from_segment_code       => l_adr_value_segment_code
9678         , p_from_combination_id     => l_adr_value_combination_id
9679         , p_value_type_code         => l_adr_value_type_code
9680         , p_transaction_coa_id      => l_adr_transaction_coa_id
9681         , p_accounting_coa_id       => l_adr_accounting_coa_id
9682         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9683         , p_flex_value_set_id       => l_adr_flex_value_set_id
9684         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
9685         , p_adr_type_code           => 'S'
9686         , p_component_type          => l_component_type
9687         , p_component_code          => l_component_code
9688         , p_component_type_code     => l_component_type_code
9689         , p_component_appl_id       => l_component_appl_id
9690         , p_amb_context_code        => l_amb_context_code
9691         , p_entity_code             => 'AP_INVOICES'
9692         , p_event_class_code        => 'CREDIT MEMOS'
9693         , p_side                    => 'DEBIT'
9694         );
9695 
9696   END IF;
9697 
9698    l_segment := AcctDerRule_9(
9699            p_application_id           => p_application_id
9700          , p_ae_header_id             => l_ae_header_id 
9701 , p_source_3 => p_source_3
9702 , p_source_3_meaning => p_source_3_meaning
9703 , p_source_10 => p_source_10
9704 , p_source_10_meaning => p_source_10_meaning
9705 , p_source_11 => p_source_11
9706          , x_transaction_coa_id       => l_adr_transaction_coa_id
9707          , x_accounting_coa_id        => l_adr_accounting_coa_id
9708          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9709          , x_flex_value_set_id        => l_adr_flex_value_set_id
9710          , x_value_type_code          => l_adr_value_type_code
9711          , x_value_combination_id     => l_adr_value_combination_id
9712          , x_value_segment_code       => l_adr_value_segment_code
9713          , p_side                     => 'CREDIT'
9714          , p_override_seg_flag        => 'Y'
9715    );
9716 
9717    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9718 
9719       xla_ae_lines_pkg.set_segment(
9720           p_to_segment_code         => 'GL_ACCOUNT'
9721         , p_segment_value           => l_segment
9722         , p_from_segment_code       => l_adr_value_segment_code
9723         , p_from_combination_id     => l_adr_value_combination_id
9724         , p_value_type_code         => l_adr_value_type_code
9725         , p_transaction_coa_id      => l_adr_transaction_coa_id
9726         , p_accounting_coa_id       => l_adr_accounting_coa_id
9727         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9728         , p_flex_value_set_id       => l_adr_flex_value_set_id
9729         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
9730         , p_adr_type_code           => 'S'
9731         , p_component_type          => l_component_type
9732         , p_component_code          => l_component_code
9733         , p_component_type_code     => l_component_type_code
9734         , p_component_appl_id       => l_component_appl_id
9735         , p_amb_context_code        => l_amb_context_code
9736         , p_entity_code             => 'AP_INVOICES'
9737         , p_event_class_code        => 'CREDIT MEMOS'
9738         , p_side                    => 'CREDIT'
9739         );
9740 
9741   END IF;
9742 
9743    l_segment := AcctDerRule_22(
9744            p_application_id           => p_application_id
9745          , p_ae_header_id             => l_ae_header_id 
9746 , p_source_3 => p_source_3
9747 , p_source_3_meaning => p_source_3_meaning
9748 , p_source_10 => p_source_10
9749 , p_source_10_meaning => p_source_10_meaning
9750 , p_source_18 => p_source_18
9751          , x_transaction_coa_id       => l_adr_transaction_coa_id
9752          , x_accounting_coa_id        => l_adr_accounting_coa_id
9756          , x_value_combination_id     => l_adr_value_combination_id
9753          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9754          , x_flex_value_set_id        => l_adr_flex_value_set_id
9755          , x_value_type_code          => l_adr_value_type_code
9757          , x_value_segment_code       => l_adr_value_segment_code
9758          , p_side                     => 'ALL'
9759          , p_override_seg_flag        => 'Y'
9760    );
9761 
9762    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9763 
9764       xla_ae_lines_pkg.set_segment(
9765           p_to_segment_code         => 'GL_BALANCING'
9766         , p_segment_value           => l_segment
9767         , p_from_segment_code       => l_adr_value_segment_code
9768         , p_from_combination_id     => l_adr_value_combination_id
9769         , p_value_type_code         => l_adr_value_type_code
9770         , p_transaction_coa_id      => l_adr_transaction_coa_id
9771         , p_accounting_coa_id       => l_adr_accounting_coa_id
9772         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9773         , p_flex_value_set_id       => l_adr_flex_value_set_id
9774         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
9775         , p_adr_type_code           => 'S'
9776         , p_component_type          => l_component_type
9777         , p_component_code          => l_component_code
9778         , p_component_type_code     => l_component_type_code
9779         , p_component_appl_id       => l_component_appl_id
9780         , p_amb_context_code        => l_amb_context_code
9781         , p_entity_code             => 'AP_INVOICES'
9782         , p_event_class_code        => 'CREDIT MEMOS'
9783         , p_side                    => 'ALL'
9784         );
9785 
9786   END IF;
9787 
9788    --
9789    --
9790    END IF;
9791    --
9792    -- Bug 4922099
9793    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9794           (NVL(l_enc_upg_option, 'N') = 'O')
9795         ) AND
9796         (l_bflow_method_code = 'PRIOR_ENTRY')
9797       )
9798    THEN
9799       IF
9800       --
9801       1 = 2
9802       --
9803       THEN
9804       xla_accounting_err_pkg.build_message
9805                                     (p_appli_s_name            => 'XLA'
9806                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9807                                     ,p_token_1                 => 'LINE_NUMBER'
9808                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
9809                                     ,p_token_2                 => 'LINE_TYPE_NAME'
9810                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
9811                                                                              l_component_type
9812                                                                             ,l_component_code
9813                                                                             ,l_component_type_code
9814                                                                             ,l_component_appl_id
9815                                                                             ,l_amb_context_code
9816                                                                             ,l_entity_code
9817                                                                             ,l_event_class_code
9818                                                                            )
9819                                     ,p_token_3                 => 'OWNER'
9820                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
9821                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
9822                                                                           ,p_lookup_code    => l_component_type_code
9823                                                                          )
9824                                     ,p_token_4                 => 'PRODUCT_NAME'
9825                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9826                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9827                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9828                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9829                                     ,p_ae_header_id            =>  NULL
9830                                        );
9831 
9832         IF (C_LEVEL_ERROR>= g_log_level) THEN
9833                  trace
9834                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9835                       ,p_level    => C_LEVEL_ERROR
9836                       ,p_module   => l_log_module);
9837         END IF;
9838       END IF;
9839    END IF;
9840    --
9841    --
9842    ------------------------------------------------------------------------------------------------
9843    -- 4219869 Business Flow
9844    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9845    -- Prior Entry.  Currently, the following code is always generated.
9846    ------------------------------------------------------------------------------------------------
9847    XLA_AE_LINES_PKG.ValidateCurrentLine;
9848 
9849    ------------------------------------------------------------------------------------
9850    -- 4219869 Business Flow
9854 
9851    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9852    ------------------------------------------------------------------------------------
9853    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9855    ----------------------------------------------------------------------------------
9856    -- 4219869 Business Flow
9857    -- Update journal entry status -- Need to generate this within IF <condition>
9858    ----------------------------------------------------------------------------------
9859    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9860          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9861          ,p_balance_type_code => l_balance_type_code
9862          );
9863 
9864    -------------------------------------------------------------------------------------------
9865    -- 4262811 - Generate the Accrual Reversal lines
9866    -------------------------------------------------------------------------------------------
9867    BEGIN
9868       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9869                               (g_array_event(p_event_id).array_value_num('header_index'));
9870       IF l_acc_rev_flag IS NULL THEN
9871          l_acc_rev_flag := 'N';
9872       END IF;
9873    EXCEPTION
9874       WHEN OTHERS THEN
9875          l_acc_rev_flag := 'N';
9876    END;
9877    --
9878    IF (l_acc_rev_flag = 'Y') THEN
9879 
9880        -- 4645092  ------------------------------------------------------------------------------
9881        -- To allow MPA report to determine if it should generate report process
9882        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9883        ------------------------------------------------------------------------------------------
9884 
9885        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9886        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9887    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
9888    -- call ADRs
9889    -- Bug 4922099
9890    --
9891    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9892         (NVL(l_actual_upg_option, 'N') = 'O') OR
9893         (NVL(l_enc_upg_option, 'N') = 'O')
9894       )
9895    THEN
9896    NULL;
9897    --
9898    --
9899    
9900   l_ccid := AcctDerRule_29(
9901            p_application_id           => p_application_id
9902          , p_ae_header_id             => l_ae_header_id 
9903 , p_source_3 => p_source_3
9904 , p_source_3_meaning => p_source_3_meaning
9905 , p_source_8 => p_source_8
9906 , p_source_9 => p_source_9
9907 , p_source_10 => p_source_10
9908 , p_source_10_meaning => p_source_10_meaning
9909 , p_source_11 => p_source_11
9910 , p_source_18 => p_source_18
9911 , p_source_35 => p_source_35
9912 , p_source_35_meaning => p_source_35_meaning
9913          , x_transaction_coa_id       => l_adr_transaction_coa_id
9914          , x_accounting_coa_id        => l_adr_accounting_coa_id
9915          , x_value_type_code          => l_adr_value_type_code
9916          , p_side                     => 'ALL'
9917    );
9918 
9919    xla_ae_lines_pkg.set_ccid(
9920     p_code_combination_id          => l_ccid
9921   , p_value_type_code              => l_adr_value_type_code
9922   , p_transaction_coa_id           => l_adr_transaction_coa_id
9923   , p_accounting_coa_id            => l_adr_accounting_coa_id
9924   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
9925   , p_adr_type_code                => 'S'
9926   , p_component_type               => l_component_type
9927   , p_component_code               => l_component_code
9928   , p_component_type_code          => l_component_type_code
9929   , p_component_appl_id            => l_component_appl_id
9930   , p_amb_context_code             => l_amb_context_code
9931   , p_side                         => 'ALL'
9932   );
9933 
9934 
9935    l_segment := AcctDerRule_8(
9936            p_application_id           => p_application_id
9937          , p_ae_header_id             => l_ae_header_id 
9938 , p_source_3 => p_source_3
9939 , p_source_3_meaning => p_source_3_meaning
9940 , p_source_8 => p_source_8
9941 , p_source_10 => p_source_10
9942 , p_source_10_meaning => p_source_10_meaning
9943          , x_transaction_coa_id       => l_adr_transaction_coa_id
9944          , x_accounting_coa_id        => l_adr_accounting_coa_id
9945          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9946          , x_flex_value_set_id        => l_adr_flex_value_set_id
9950          , p_side                     => 'DEBIT'
9947          , x_value_type_code          => l_adr_value_type_code
9948          , x_value_combination_id     => l_adr_value_combination_id
9949          , x_value_segment_code       => l_adr_value_segment_code
9951          , p_override_seg_flag        => 'Y'
9952    );
9953 
9954    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9955 
9956       xla_ae_lines_pkg.set_segment(
9957           p_to_segment_code         => 'GL_ACCOUNT'
9958         , p_segment_value           => l_segment
9959         , p_from_segment_code       => l_adr_value_segment_code
9960         , p_from_combination_id     => l_adr_value_combination_id
9961         , p_value_type_code         => l_adr_value_type_code
9962         , p_transaction_coa_id      => l_adr_transaction_coa_id
9963         , p_accounting_coa_id       => l_adr_accounting_coa_id
9964         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9965         , p_flex_value_set_id       => l_adr_flex_value_set_id
9966         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
9967         , p_adr_type_code           => 'S'
9968         , p_component_type          => l_component_type
9969         , p_component_code          => l_component_code
9970         , p_component_type_code     => l_component_type_code
9971         , p_component_appl_id       => l_component_appl_id
9972         , p_amb_context_code        => l_amb_context_code
9973         , p_entity_code             => 'AP_INVOICES'
9974         , p_event_class_code        => 'CREDIT MEMOS'
9975         , p_side                    => 'DEBIT'
9976         );
9977 
9978   END IF;
9979 
9980    l_segment := AcctDerRule_9(
9981            p_application_id           => p_application_id
9982          , p_ae_header_id             => l_ae_header_id 
9983 , p_source_3 => p_source_3
9984 , p_source_3_meaning => p_source_3_meaning
9985 , p_source_10 => p_source_10
9986 , p_source_10_meaning => p_source_10_meaning
9987 , p_source_11 => p_source_11
9988          , x_transaction_coa_id       => l_adr_transaction_coa_id
9989          , x_accounting_coa_id        => l_adr_accounting_coa_id
9990          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9994          , x_value_segment_code       => l_adr_value_segment_code
9991          , x_flex_value_set_id        => l_adr_flex_value_set_id
9992          , x_value_type_code          => l_adr_value_type_code
9993          , x_value_combination_id     => l_adr_value_combination_id
9995          , p_side                     => 'CREDIT'
9999    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9996          , p_override_seg_flag        => 'Y'
9997    );
9998 
10000 
10001       xla_ae_lines_pkg.set_segment(
10002           p_to_segment_code         => 'GL_ACCOUNT'
10003         , p_segment_value           => l_segment
10004         , p_from_segment_code       => l_adr_value_segment_code
10005         , p_from_combination_id     => l_adr_value_combination_id
10006         , p_value_type_code         => l_adr_value_type_code
10007         , p_transaction_coa_id      => l_adr_transaction_coa_id
10008         , p_accounting_coa_id       => l_adr_accounting_coa_id
10009         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10010         , p_flex_value_set_id       => l_adr_flex_value_set_id
10011         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
10012         , p_adr_type_code           => 'S'
10013         , p_component_type          => l_component_type
10014         , p_component_code          => l_component_code
10015         , p_component_type_code     => l_component_type_code
10016         , p_component_appl_id       => l_component_appl_id
10017         , p_amb_context_code        => l_amb_context_code
10018         , p_entity_code             => 'AP_INVOICES'
10019         , p_event_class_code        => 'CREDIT MEMOS'
10020         , p_side                    => 'CREDIT'
10021         );
10022 
10023   END IF;
10024 
10025    l_segment := AcctDerRule_22(
10026            p_application_id           => p_application_id
10027          , p_ae_header_id             => l_ae_header_id 
10028 , p_source_3 => p_source_3
10029 , p_source_3_meaning => p_source_3_meaning
10030 , p_source_10 => p_source_10
10031 , p_source_10_meaning => p_source_10_meaning
10032 , p_source_18 => p_source_18
10033          , x_transaction_coa_id       => l_adr_transaction_coa_id
10034          , x_accounting_coa_id        => l_adr_accounting_coa_id
10035          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10036          , x_flex_value_set_id        => l_adr_flex_value_set_id
10037          , x_value_type_code          => l_adr_value_type_code
10038          , x_value_combination_id     => l_adr_value_combination_id
10039          , x_value_segment_code       => l_adr_value_segment_code
10040          , p_side                     => 'ALL'
10041          , p_override_seg_flag        => 'Y'
10042    );
10043 
10044    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10045 
10046       xla_ae_lines_pkg.set_segment(
10047           p_to_segment_code         => 'GL_BALANCING'
10048         , p_segment_value           => l_segment
10049         , p_from_segment_code       => l_adr_value_segment_code
10050         , p_from_combination_id     => l_adr_value_combination_id
10051         , p_value_type_code         => l_adr_value_type_code
10052         , p_transaction_coa_id      => l_adr_transaction_coa_id
10053         , p_accounting_coa_id       => l_adr_accounting_coa_id
10054         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10055         , p_flex_value_set_id       => l_adr_flex_value_set_id
10056         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
10057         , p_adr_type_code           => 'S'
10058         , p_component_type          => l_component_type
10059         , p_component_code          => l_component_code
10060         , p_component_type_code     => l_component_type_code
10061         , p_component_appl_id       => l_component_appl_id
10062         , p_amb_context_code        => l_amb_context_code
10063         , p_entity_code             => 'AP_INVOICES'
10064         , p_event_class_code        => 'CREDIT MEMOS'
10065         , p_side                    => 'ALL'
10066         );
10067 
10068   END IF;
10069 
10070    --
10071    --
10072    END IF;
10073 
10074        --
10075        -- Update the line information that should be overwritten
10076        --
10077        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10078                                          p_header_num   => 1);
10079        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
10080 
10081        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10082 
10083        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
10084           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10085        END IF;
10086 
10087       --
10088       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10089       --
10090       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10091           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
10092       ELSE
10093           ---------------------------------------------------------------------------------------------------
10094           -- 4262811a Switch Sign
10095           ---------------------------------------------------------------------------------------------------
10096           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
10097           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10098                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10099           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10100                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10101           -- 5132302
10105       END IF;
10102           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10103                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10104 
10106 
10107       -- 4955764
10108       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10109       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10110 
10111 
10112       XLA_AE_LINES_PKG.ValidateCurrentLine;
10113       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10114 
10115       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10116                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10117                ,p_balance_type_code => l_balance_type_code);
10121    -----------------------------------------------------------------------------------------
10118 
10119    END IF;
10120 
10122    -- 4262811 Multiperiod Accounting
10123    -----------------------------------------------------------------------------------------
10124      -- No MPA option is assigned.
10125 
10126 
10127 END IF;
10128 END IF;
10129 --
10130 
10131 --
10132 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10133    trace
10134       (p_msg      => 'END of AcctLineType_51'
10135       ,p_level    => C_LEVEL_PROCEDURE
10136       ,p_module   => l_log_module);
10137 END IF;
10138 --
10139 EXCEPTION
10140   WHEN xla_exceptions_pkg.application_exception THEN
10141       RAISE;
10142   WHEN OTHERS THEN
10143        xla_exceptions_pkg.raise_message
10144            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_51');
10145 END AcctLineType_51;
10146 --
10147 
10148 ---------------------------------------
10149 --
10150 -- PRIVATE FUNCTION
10151 --         AcctLineType_52
10152 --
10153 ---------------------------------------
10154 PROCEDURE AcctLineType_52 (
10155   p_application_id        IN NUMBER
10156  ,p_event_id              IN NUMBER
10157  ,p_calculate_acctd_flag  IN VARCHAR2
10158  ,p_calculate_g_l_flag    IN VARCHAR2
10159  ,p_actual_flag           IN OUT VARCHAR2
10160  ,p_balance_type_code     OUT VARCHAR2
10161  ,p_gain_or_loss_ref      OUT VARCHAR2
10162  
10163 --Invoice Distribution Description
10164  , p_source_1            IN VARCHAR2
10165 --Automatic Offsets Value
10166  , p_source_3            IN VARCHAR2
10167  , p_source_3_meaning    IN VARCHAR2
10168 --Purchase Order Rate Variance Gain Account
10169  , p_source_8            IN NUMBER
10170 --Invoice Distribution Ledger Amount
10171  , p_source_9            IN NUMBER
10172 --Destination Type of the PO Distribution
10173  , p_source_10            IN VARCHAR2
10174  , p_source_10_meaning    IN VARCHAR2
10175 --Purchase Order Rate Variance Loss Account
10176  , p_source_11            IN NUMBER
10177 --Invoice Distribution Account
10178  , p_source_18            IN NUMBER
10179 --Invoice Distribution Type
10180  , p_source_21            IN VARCHAR2
10181  , p_source_21_meaning    IN VARCHAR2
10182 --Automatic Offsets Flag
10183  , p_source_35            IN VARCHAR2
10184  , p_source_35_meaning    IN VARCHAR2
10185 --Accounting Reversal Indicator
10186  , p_source_41            IN VARCHAR2
10187 --Distribution Link Type
10188  , p_source_43            IN VARCHAR2
10189 --Allocation to Main Distribution Identifier
10190  , p_source_45            IN NUMBER
10191 --Invoice Identifier
10192  , p_source_46            IN NUMBER
10193 --Invoice Distribution Identifier
10194  , p_source_52            IN NUMBER
10195 --Payables Encumbrance Upgrade Credit Account
10196  , p_source_53            IN NUMBER
10197 --Payables Encumbrance Upgrade Credit Amount
10198  , p_source_54            IN NUMBER
10199 --Invoice Currency Code
10200  , p_source_55            IN VARCHAR2
10201 --Payables Encumbrance Upgrade Credit Base Amount
10202  , p_source_56            IN NUMBER
10203 --Payables Encumbrance Upgrade Debit Account
10204  , p_source_57            IN NUMBER
10205 --Payables Encumbrance Upgrade Debit Amount
10206  , p_source_58            IN NUMBER
10207 --Payables Encumbrance Upgrade Debit Base Amount
10208  , p_source_59            IN NUMBER
10209 --Payables Encumbrance Upgrade Option
10210  , p_source_60            IN VARCHAR2
10211 --Deferred Accounting End Date
10212  , p_source_65            IN DATE
10213 --Deferred Accounting Option
10214  , p_source_66            IN VARCHAR2
10215 --Deferred Accounting Start Date
10216  , p_source_67            IN DATE
10217 --Override Accounted Amount Indicator
10218  , p_source_68            IN VARCHAR2
10222 --Invoice Supplier Site Identifier
10219  , p_source_68_meaning    IN VARCHAR2
10220 --Invoice Supplier Identifier
10221  , p_source_69            IN NUMBER
10223  , p_source_70            IN NUMBER
10224 --Third Party Type
10225  , p_source_71            IN VARCHAR2
10226 --Parent Reversal Identifier
10227  , p_source_72            IN NUMBER
10228 --Invoice Distribution Tax Line Identifier
10229  , p_source_74            IN NUMBER
10230 --Invoice Distribution Tax Distribution Identifier from Tax
10231  , p_source_75            IN NUMBER
10232 --Invoice Distribution Summary Tax Line Identifier
10233  , p_source_76            IN NUMBER
10234 --Payables Upgrade Credit Encumbrance Type Identifier
10235  , p_source_77            IN NUMBER
10236 --Payables Upgrade Debit Encumbrance Type Identifier
10237  , p_source_78            IN NUMBER
10238 --Business Flow Accounts Payable Application Identifier
10239  , p_source_79            IN NUMBER
10240 --Business Flow Invoice Distribution Type
10241  , p_source_80            IN VARCHAR2
10242 --Business Flow Invoice Entity Code
10243  , p_source_81            IN VARCHAR2
10244 --Business Flow Invoice Distribution Identifier
10245  , p_source_82            IN NUMBER
10246 --Business Flow Invoice Identifier
10247  , p_source_83            IN NUMBER
10248 )
10249 IS
10250 
10251 l_component_type              VARCHAR2(80);
10252 l_component_code              VARCHAR2(30);
10253 l_component_type_code         VARCHAR2(1);
10254 l_component_appl_id           INTEGER;
10255 l_amb_context_code            VARCHAR2(30);
10256 l_entity_code                 VARCHAR2(30);
10257 l_event_class_code            VARCHAR2(30);
10258 l_ae_header_id                NUMBER;
10259 l_event_type_code             VARCHAR2(30);
10260 l_line_definition_code        VARCHAR2(30);
10261 l_line_definition_owner_code  VARCHAR2(1);
10262 --
10263 -- adr variables
10264 l_segment                     VARCHAR2(30);
10265 l_ccid                        NUMBER;
10266 l_adr_transaction_coa_id      NUMBER;
10267 l_adr_accounting_coa_id       NUMBER;
10268 l_adr_flexfield_segment_code  VARCHAR2(30);
10269 l_adr_flex_value_set_id       NUMBER;
10270 l_adr_value_type_code         VARCHAR2(30);
10271 l_adr_value_combination_id    NUMBER;
10272 l_adr_value_segment_code      VARCHAR2(30);
10273 
10274 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
10275 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
10276 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
10277 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
10278 
10279 -- 4262811 Variables ------------------------------------------------------------------------------------------
10280 l_entered_amt_idx             NUMBER;
10281 l_accted_amt_idx              NUMBER;
10285 l_acc_rev_natural_side_code   VARCHAR2(1);
10282 l_acc_rev_flag                VARCHAR2(1);
10283 l_accrual_line_num            NUMBER;
10284 l_tmp_amt                     NUMBER;
10286 
10287 l_num_entries                 NUMBER;
10288 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
10289 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
10290 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
10291 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
10292 l_recog_line_1                NUMBER;
10293 l_recog_line_2                NUMBER;
10294 
10295 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
10296 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
10300 
10297 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
10298 
10299 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10301 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
10302 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
10303 
10304 ---------------------------------------------------------------------------------------------------------------
10305 
10306 
10307 --
10308 -- bulk performance
10309 --
10310 l_balance_type_code           VARCHAR2(1);
10311 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
10312 l_log_module                  VARCHAR2(240);
10313 
10314 --
10315 -- Upgrade strategy
10316 --
10317 l_actual_upg_option           VARCHAR2(1);
10318 l_enc_upg_option           VARCHAR2(1);
10319 
10320 --
10321 BEGIN
10322 --
10323 IF g_log_enabled THEN
10324       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_52';
10325 END IF;
10326 --
10327 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10328 
10329       trace
10330          (p_msg      => 'BEGIN of AcctLineType_52'
10331          ,p_level    => C_LEVEL_PROCEDURE
10332          ,p_module   => l_log_module);
10333 
10334 END IF;
10335 --
10336 l_component_type             := 'AMB_JLT';
10337 l_component_code             := 'AP_ALC_EX_RATE_VAR_DM';
10338 l_component_type_code        := 'S';
10339 l_component_appl_id          :=  200;
10340 l_amb_context_code           := 'DEFAULT';
10341 l_entity_code                := 'AP_INVOICES';
10342 l_event_class_code           := 'DEBIT MEMOS';
10343 l_event_type_code            := 'DEBIT MEMOS_ALL';
10344 l_line_definition_owner_code := 'S';
10345 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
10346 --
10347 l_balance_type_code          := 'A';
10348 l_segment                     := NULL;
10349 l_ccid                        := NULL;
10350 l_adr_transaction_coa_id      := NULL;
10351 l_adr_accounting_coa_id       := NULL;
10352 l_adr_flexfield_segment_code  := NULL;
10353 l_adr_flex_value_set_id       := NULL;
10354 l_adr_value_type_code         := NULL;
10355 l_adr_value_combination_id    := NULL;
10356 l_adr_value_segment_code      := NULL;
10357 
10358 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
10359 l_bflow_class_code           := '';    -- 4219869 Business Flow
10360 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
10361 l_budgetary_control_flag     := 'N';
10362 
10363 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
10364 l_bflow_applied_to_amt       := NULL; -- 5132302
10365 l_entered_amt_idx            := NULL;          -- 4262811
10366 l_accted_amt_idx             := NULL;          -- 4262811
10367 l_acc_rev_flag               := NULL;          -- 4262811
10368 l_accrual_line_num           := NULL;          -- 4262811
10369 l_tmp_amt                    := NULL;          -- 4262811
10370 --
10371 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
10372             (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
10373                return;
10374   END IF;
10375   
10376 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10377     l_balance_type_code <> 'B' THEN
10378 IF NVL(p_source_21,'
10379 ') =  'ACCRUAL'
10380  THEN 
10381 
10382    --
10383    XLA_AE_LINES_PKG.SetNewLine;
10384 
10385    p_balance_type_code          := l_balance_type_code;
10386    -- set the flag so later we will know whether the gain loss line needs to be created
10387    
10388    IF(l_balance_type_code = 'A' ) THEN
10389      p_actual_flag :='G';
10390    END IF;
10391 
10392    --
10393    -- bulk performance
10394    --
10395    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10396                                       p_header_num   => 0); -- 4262811
10397    --
10398    -- set accounting line options
10399    --
10400    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10401            p_natural_side_code          => 'G'
10402          , p_gain_or_loss_flag          => 'N'
10403          , p_gl_transfer_mode_code      => 'S'
10404          , p_acct_entry_type_code       => 'A'
10405          , p_switch_side_flag           => ''
10406          , p_merge_duplicate_code       => 'A'
10407          );
10408    --
10409    l_acc_rev_natural_side_code := 'C';  -- 4262811
10410    -- 
10411    --
10412    -- set accounting line type info
10413    --
10414    xla_ae_lines_pkg.SetAcctLineType
10415       (p_component_type             => l_component_type
10416       ,p_event_type_code            => l_event_type_code
10417       ,p_line_definition_owner_code => l_line_definition_owner_code
10418       ,p_line_definition_code       => l_line_definition_code
10419       ,p_accounting_line_code       => l_component_code
10420       ,p_accounting_line_type_code  => l_component_type_code
10421       ,p_accounting_line_appl_id    => l_component_appl_id
10422       ,p_amb_context_code           => l_amb_context_code
10423       ,p_entity_code                => l_entity_code
10424       ,p_event_class_code           => l_event_class_code);
10425    --
10426    -- set accounting class
10427    --
10428    xla_ae_lines_pkg.SetAcctClass(
10429            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
10430          , p_ae_header_id           => l_ae_header_id
10431          );
10432 
10433    --
10434    -- set rounding class
10435    --
10439    --
10436    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10437                       'EXCHANGE_RATE_VARIANCE';
10438 
10445    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10440    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10441    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10442    --
10443    -- bulk performance
10444    --
10446 
10447    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10448       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10449 
10450    -- 4955764
10451    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10452       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10453 
10454    -- 4458381 Public Sector Enh
10455    
10456    --
10457    -- set accounting attributes for the line type
10458    --
10459    l_entered_amt_idx := NULL;
10460    l_accted_amt_idx  := 23;
10461    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
10462    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
10463    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
10464    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
10465    l_rec_acct_attrs.array_num_value(2)  := 
10466 xla_ae_sources_pkg.GetSystemSourceNum(
10467    p_source_code           => 'XLA_EVENT_APPL_ID'
10468  , p_source_type_code      => 'Y'
10469  , p_source_application_id =>  602
10470 );
10471    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
10472    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
10473    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
10474    l_rec_acct_attrs.array_char_value(4)  := 
10475 xla_ae_sources_pkg.GetSystemSourceChar(
10476    p_source_code           => 'XLA_ENTITY_CODE'
10477  , p_source_type_code      => 'Y'
10478  , p_source_application_id =>  602
10479 );
10480    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
10481    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
10482    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
10483    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
10484    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
10485    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
10486    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10487    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
10488    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
10489    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
10490    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
10491    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
10492    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10493    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
10494    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
10495    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
10496    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
10497    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
10498    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
10499    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
10500    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
10501    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
10502    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
10503    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
10504    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
10505    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
10506    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
10507    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
10508    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
10509    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
10510    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
10511    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
10512    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
10513    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
10514    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
10515    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
10516    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
10517    l_rec_acct_attrs.array_num_value(23)  := p_source_9;
10518    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
10519    l_rec_acct_attrs.array_date_value(24)  := p_source_65;
10520    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
10521    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
10522    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
10523    l_rec_acct_attrs.array_date_value(26)  := p_source_67;
10524    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
10525    l_rec_acct_attrs.array_char_value(27)  := p_source_68;
10526    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
10527    l_rec_acct_attrs.array_num_value(28)  := p_source_69;
10528    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
10529    l_rec_acct_attrs.array_num_value(29)  := p_source_70;
10530    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
10531    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
10532    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
10533    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
10534    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
10535    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
10536    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
10537    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
10541    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
10538    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
10539    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
10540    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
10542    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
10543    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
10544    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
10545    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
10546 
10547    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10548    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10549 
10550    ---------------------------------------------------------------------------------------------------------------
10551    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10552    ---------------------------------------------------------------------------------------------------------------
10553    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10554 
10555    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10556    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10557 
10558    IF xla_accounting_cache_pkg.GetValueChar
10559          (p_source_code         => 'LEDGER_CATEGORY_CODE'
10560          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10561    AND l_bflow_method_code = 'PRIOR_ENTRY'
10562 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10563    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10564          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10565        )
10566    THEN
10567          xla_ae_lines_pkg.BflowUpgEntry
10568            (p_business_method_code    => l_bflow_method_code
10569            ,p_business_class_code     => l_bflow_class_code
10570            ,p_balance_type            => l_balance_type_code);
10571    ELSE
10572       NULL;
10573 -- No business flow processing for business flow method of NONE.
10574    END IF;
10575 
10576    --
10577    -- call analytical criteria
10578    --
10579    
10580    --
10581    -- call description
10582    --
10583    
10584 xla_ae_lines_pkg.SetLineDescription(
10585    p_ae_header_id => l_ae_header_id
10586   ,p_description  => Description_2 (
10587      p_application_id         => p_application_id
10588    , p_ae_header_id           => l_ae_header_id 
10589 , p_source_1 => p_source_1
10590    )
10591 );
10592 
10593 
10594    --
10595    -- call ADRs
10596    -- Bug 4922099
10597    --
10598    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10599         (NVL(l_actual_upg_option, 'N') = 'O') OR
10600         (NVL(l_enc_upg_option, 'N') = 'O')
10601       )
10602    THEN
10603    NULL;
10604    --
10605    --
10606    
10607   l_ccid := AcctDerRule_29(
10608            p_application_id           => p_application_id
10609          , p_ae_header_id             => l_ae_header_id 
10610 , p_source_3 => p_source_3
10611 , p_source_3_meaning => p_source_3_meaning
10612 , p_source_8 => p_source_8
10613 , p_source_9 => p_source_9
10614 , p_source_10 => p_source_10
10615 , p_source_10_meaning => p_source_10_meaning
10616 , p_source_11 => p_source_11
10617 , p_source_18 => p_source_18
10618 , p_source_35 => p_source_35
10619 , p_source_35_meaning => p_source_35_meaning
10620          , x_transaction_coa_id       => l_adr_transaction_coa_id
10621          , x_accounting_coa_id        => l_adr_accounting_coa_id
10622          , x_value_type_code          => l_adr_value_type_code
10623          , p_side                     => 'ALL'
10624    );
10625 
10626    xla_ae_lines_pkg.set_ccid(
10627     p_code_combination_id          => l_ccid
10628   , p_value_type_code              => l_adr_value_type_code
10629   , p_transaction_coa_id           => l_adr_transaction_coa_id
10630   , p_accounting_coa_id            => l_adr_accounting_coa_id
10631   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
10632   , p_adr_type_code                => 'S'
10633   , p_component_type               => l_component_type
10634   , p_component_code               => l_component_code
10635   , p_component_type_code          => l_component_type_code
10636   , p_component_appl_id            => l_component_appl_id
10637   , p_amb_context_code             => l_amb_context_code
10638   , p_side                         => 'ALL'
10639   );
10640 
10641 
10642    l_segment := AcctDerRule_8(
10643            p_application_id           => p_application_id
10644          , p_ae_header_id             => l_ae_header_id 
10645 , p_source_3 => p_source_3
10646 , p_source_3_meaning => p_source_3_meaning
10647 , p_source_8 => p_source_8
10648 , p_source_10 => p_source_10
10649 , p_source_10_meaning => p_source_10_meaning
10650          , x_transaction_coa_id       => l_adr_transaction_coa_id
10651          , x_accounting_coa_id        => l_adr_accounting_coa_id
10652          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10653          , x_flex_value_set_id        => l_adr_flex_value_set_id
10654          , x_value_type_code          => l_adr_value_type_code
10655          , x_value_combination_id     => l_adr_value_combination_id
10656          , x_value_segment_code       => l_adr_value_segment_code
10657          , p_side                     => 'DEBIT'
10658          , p_override_seg_flag        => 'Y'
10659    );
10660 
10661    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10662 
10663       xla_ae_lines_pkg.set_segment(
10667         , p_from_combination_id     => l_adr_value_combination_id
10664           p_to_segment_code         => 'GL_ACCOUNT'
10665         , p_segment_value           => l_segment
10666         , p_from_segment_code       => l_adr_value_segment_code
10668         , p_value_type_code         => l_adr_value_type_code
10669         , p_transaction_coa_id      => l_adr_transaction_coa_id
10670         , p_accounting_coa_id       => l_adr_accounting_coa_id
10671         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10672         , p_flex_value_set_id       => l_adr_flex_value_set_id
10673         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
10674         , p_adr_type_code           => 'S'
10675         , p_component_type          => l_component_type
10676         , p_component_code          => l_component_code
10677         , p_component_type_code     => l_component_type_code
10678         , p_component_appl_id       => l_component_appl_id
10679         , p_amb_context_code        => l_amb_context_code
10680         , p_entity_code             => 'AP_INVOICES'
10681         , p_event_class_code        => 'DEBIT MEMOS'
10682         , p_side                    => 'DEBIT'
10683         );
10684 
10685   END IF;
10686 
10687    l_segment := AcctDerRule_9(
10688            p_application_id           => p_application_id
10689          , p_ae_header_id             => l_ae_header_id 
10690 , p_source_3 => p_source_3
10691 , p_source_3_meaning => p_source_3_meaning
10692 , p_source_10 => p_source_10
10693 , p_source_10_meaning => p_source_10_meaning
10694 , p_source_11 => p_source_11
10695          , x_transaction_coa_id       => l_adr_transaction_coa_id
10696          , x_accounting_coa_id        => l_adr_accounting_coa_id
10697          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10698          , x_flex_value_set_id        => l_adr_flex_value_set_id
10699          , x_value_type_code          => l_adr_value_type_code
10700          , x_value_combination_id     => l_adr_value_combination_id
10701          , x_value_segment_code       => l_adr_value_segment_code
10702          , p_side                     => 'CREDIT'
10703          , p_override_seg_flag        => 'Y'
10704    );
10705 
10706    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10707 
10708       xla_ae_lines_pkg.set_segment(
10709           p_to_segment_code         => 'GL_ACCOUNT'
10710         , p_segment_value           => l_segment
10711         , p_from_segment_code       => l_adr_value_segment_code
10712         , p_from_combination_id     => l_adr_value_combination_id
10713         , p_value_type_code         => l_adr_value_type_code
10714         , p_transaction_coa_id      => l_adr_transaction_coa_id
10715         , p_accounting_coa_id       => l_adr_accounting_coa_id
10716         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10717         , p_flex_value_set_id       => l_adr_flex_value_set_id
10718         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
10719         , p_adr_type_code           => 'S'
10720         , p_component_type          => l_component_type
10721         , p_component_code          => l_component_code
10722         , p_component_type_code     => l_component_type_code
10723         , p_component_appl_id       => l_component_appl_id
10724         , p_amb_context_code        => l_amb_context_code
10725         , p_entity_code             => 'AP_INVOICES'
10726         , p_event_class_code        => 'DEBIT MEMOS'
10727         , p_side                    => 'CREDIT'
10728         );
10729 
10730   END IF;
10731 
10732    l_segment := AcctDerRule_22(
10733            p_application_id           => p_application_id
10734          , p_ae_header_id             => l_ae_header_id 
10735 , p_source_3 => p_source_3
10736 , p_source_3_meaning => p_source_3_meaning
10737 , p_source_10 => p_source_10
10738 , p_source_10_meaning => p_source_10_meaning
10739 , p_source_18 => p_source_18
10740          , x_transaction_coa_id       => l_adr_transaction_coa_id
10741          , x_accounting_coa_id        => l_adr_accounting_coa_id
10742          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10743          , x_flex_value_set_id        => l_adr_flex_value_set_id
10744          , x_value_type_code          => l_adr_value_type_code
10745          , x_value_combination_id     => l_adr_value_combination_id
10746          , x_value_segment_code       => l_adr_value_segment_code
10747          , p_side                     => 'ALL'
10748          , p_override_seg_flag        => 'Y'
10749    );
10750 
10751    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10752 
10753       xla_ae_lines_pkg.set_segment(
10754           p_to_segment_code         => 'GL_BALANCING'
10755         , p_segment_value           => l_segment
10756         , p_from_segment_code       => l_adr_value_segment_code
10757         , p_from_combination_id     => l_adr_value_combination_id
10758         , p_value_type_code         => l_adr_value_type_code
10759         , p_transaction_coa_id      => l_adr_transaction_coa_id
10760         , p_accounting_coa_id       => l_adr_accounting_coa_id
10761         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10762         , p_flex_value_set_id       => l_adr_flex_value_set_id
10763         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
10764         , p_adr_type_code           => 'S'
10765         , p_component_type          => l_component_type
10766         , p_component_code          => l_component_code
10767         , p_component_type_code     => l_component_type_code
10768         , p_component_appl_id       => l_component_appl_id
10769         , p_amb_context_code        => l_amb_context_code
10770         , p_entity_code             => 'AP_INVOICES'
10771         , p_event_class_code        => 'DEBIT MEMOS'
10772         , p_side                    => 'ALL'
10773         );
10774 
10775   END IF;
10776 
10780    --
10777    --
10778    --
10779    END IF;
10781    -- Bug 4922099
10782    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10783           (NVL(l_enc_upg_option, 'N') = 'O')
10784         ) AND
10785         (l_bflow_method_code = 'PRIOR_ENTRY')
10786       )
10787    THEN
10788       IF
10789       --
10790       1 = 2
10791       --
10792       THEN
10793       xla_accounting_err_pkg.build_message
10794                                     (p_appli_s_name            => 'XLA'
10795                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10796                                     ,p_token_1                 => 'LINE_NUMBER'
10797                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
10798                                     ,p_token_2                 => 'LINE_TYPE_NAME'
10799                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
10800                                                                              l_component_type
10801                                                                             ,l_component_code
10802                                                                             ,l_component_type_code
10803                                                                             ,l_component_appl_id
10804                                                                             ,l_amb_context_code
10805                                                                             ,l_entity_code
10806                                                                             ,l_event_class_code
10807                                                                            )
10808                                     ,p_token_3                 => 'OWNER'
10809                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
10810                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
10811                                                                           ,p_lookup_code    => l_component_type_code
10812                                                                          )
10813                                     ,p_token_4                 => 'PRODUCT_NAME'
10814                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10815                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10816                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10817                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10818                                     ,p_ae_header_id            =>  NULL
10819                                        );
10820 
10821         IF (C_LEVEL_ERROR>= g_log_level) THEN
10822                  trace
10823                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10824                       ,p_level    => C_LEVEL_ERROR
10825                       ,p_module   => l_log_module);
10826         END IF;
10827       END IF;
10828    END IF;
10829    --
10830    --
10831    ------------------------------------------------------------------------------------------------
10832    -- 4219869 Business Flow
10833    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10834    -- Prior Entry.  Currently, the following code is always generated.
10835    ------------------------------------------------------------------------------------------------
10836    XLA_AE_LINES_PKG.ValidateCurrentLine;
10837 
10838    ------------------------------------------------------------------------------------
10839    -- 4219869 Business Flow
10840    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10841    ------------------------------------------------------------------------------------
10842    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10843 
10844    ----------------------------------------------------------------------------------
10845    -- 4219869 Business Flow
10846    -- Update journal entry status -- Need to generate this within IF <condition>
10847    ----------------------------------------------------------------------------------
10848    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10849          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10850          ,p_balance_type_code => l_balance_type_code
10851          );
10852 
10853    -------------------------------------------------------------------------------------------
10854    -- 4262811 - Generate the Accrual Reversal lines
10855    -------------------------------------------------------------------------------------------
10856    BEGIN
10857       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10858                               (g_array_event(p_event_id).array_value_num('header_index'));
10859       IF l_acc_rev_flag IS NULL THEN
10860          l_acc_rev_flag := 'N';
10861       END IF;
10862    EXCEPTION
10863       WHEN OTHERS THEN
10864          l_acc_rev_flag := 'N';
10865    END;
10866    --
10867    IF (l_acc_rev_flag = 'Y') THEN
10868 
10869        -- 4645092  ------------------------------------------------------------------------------
10870        -- To allow MPA report to determine if it should generate report process
10871        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10872        ------------------------------------------------------------------------------------------
10873 
10874        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10875        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10876    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
10877    -- call ADRs
10878    -- Bug 4922099
10879    --
10883       )
10880    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10881         (NVL(l_actual_upg_option, 'N') = 'O') OR
10882         (NVL(l_enc_upg_option, 'N') = 'O')
10884    THEN
10885    NULL;
10886    --
10887    --
10888    
10889   l_ccid := AcctDerRule_29(
10890            p_application_id           => p_application_id
10891          , p_ae_header_id             => l_ae_header_id 
10892 , p_source_3 => p_source_3
10893 , p_source_3_meaning => p_source_3_meaning
10894 , p_source_8 => p_source_8
10895 , p_source_9 => p_source_9
10896 , p_source_10 => p_source_10
10897 , p_source_10_meaning => p_source_10_meaning
10898 , p_source_11 => p_source_11
10899 , p_source_18 => p_source_18
10900 , p_source_35 => p_source_35
10901 , p_source_35_meaning => p_source_35_meaning
10902          , x_transaction_coa_id       => l_adr_transaction_coa_id
10903          , x_accounting_coa_id        => l_adr_accounting_coa_id
10904          , x_value_type_code          => l_adr_value_type_code
10905          , p_side                     => 'ALL'
10906    );
10907 
10908    xla_ae_lines_pkg.set_ccid(
10909     p_code_combination_id          => l_ccid
10910   , p_value_type_code              => l_adr_value_type_code
10911   , p_transaction_coa_id           => l_adr_transaction_coa_id
10912   , p_accounting_coa_id            => l_adr_accounting_coa_id
10913   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
10914   , p_adr_type_code                => 'S'
10915   , p_component_type               => l_component_type
10916   , p_component_code               => l_component_code
10917   , p_component_type_code          => l_component_type_code
10918   , p_component_appl_id            => l_component_appl_id
10919   , p_amb_context_code             => l_amb_context_code
10920   , p_side                         => 'ALL'
10921   );
10922 
10923 
10924    l_segment := AcctDerRule_8(
10925            p_application_id           => p_application_id
10926          , p_ae_header_id             => l_ae_header_id 
10927 , p_source_3 => p_source_3
10928 , p_source_3_meaning => p_source_3_meaning
10929 , p_source_8 => p_source_8
10930 , p_source_10 => p_source_10
10931 , p_source_10_meaning => p_source_10_meaning
10932          , x_transaction_coa_id       => l_adr_transaction_coa_id
10933          , x_accounting_coa_id        => l_adr_accounting_coa_id
10934          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10935          , x_flex_value_set_id        => l_adr_flex_value_set_id
10936          , x_value_type_code          => l_adr_value_type_code
10937          , x_value_combination_id     => l_adr_value_combination_id
10938          , x_value_segment_code       => l_adr_value_segment_code
10939          , p_side                     => 'DEBIT'
10940          , p_override_seg_flag        => 'Y'
10941    );
10942 
10943    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10944 
10945       xla_ae_lines_pkg.set_segment(
10946           p_to_segment_code         => 'GL_ACCOUNT'
10947         , p_segment_value           => l_segment
10948         , p_from_segment_code       => l_adr_value_segment_code
10949         , p_from_combination_id     => l_adr_value_combination_id
10950         , p_value_type_code         => l_adr_value_type_code
10951         , p_transaction_coa_id      => l_adr_transaction_coa_id
10952         , p_accounting_coa_id       => l_adr_accounting_coa_id
10953         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10954         , p_flex_value_set_id       => l_adr_flex_value_set_id
10955         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
10956         , p_adr_type_code           => 'S'
10957         , p_component_type          => l_component_type
10958         , p_component_code          => l_component_code
10959         , p_component_type_code     => l_component_type_code
10960         , p_component_appl_id       => l_component_appl_id
10961         , p_amb_context_code        => l_amb_context_code
10962         , p_entity_code             => 'AP_INVOICES'
10963         , p_event_class_code        => 'DEBIT MEMOS'
10964         , p_side                    => 'DEBIT'
10965         );
10966 
10967   END IF;
10968 
10969    l_segment := AcctDerRule_9(
10970            p_application_id           => p_application_id
10971          , p_ae_header_id             => l_ae_header_id 
10972 , p_source_3 => p_source_3
10973 , p_source_3_meaning => p_source_3_meaning
10974 , p_source_10 => p_source_10
10975 , p_source_10_meaning => p_source_10_meaning
10976 , p_source_11 => p_source_11
10977          , x_transaction_coa_id       => l_adr_transaction_coa_id
10978          , x_accounting_coa_id        => l_adr_accounting_coa_id
10979          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10980          , x_flex_value_set_id        => l_adr_flex_value_set_id
10981          , x_value_type_code          => l_adr_value_type_code
10982          , x_value_combination_id     => l_adr_value_combination_id
10983          , x_value_segment_code       => l_adr_value_segment_code
10984          , p_side                     => 'CREDIT'
10985          , p_override_seg_flag        => 'Y'
10986    );
10987 
10988    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10989 
10990       xla_ae_lines_pkg.set_segment(
10991           p_to_segment_code         => 'GL_ACCOUNT'
10992         , p_segment_value           => l_segment
10993         , p_from_segment_code       => l_adr_value_segment_code
10994         , p_from_combination_id     => l_adr_value_combination_id
10995         , p_value_type_code         => l_adr_value_type_code
10999         , p_flex_value_set_id       => l_adr_flex_value_set_id
10996         , p_transaction_coa_id      => l_adr_transaction_coa_id
10997         , p_accounting_coa_id       => l_adr_accounting_coa_id
10998         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11000         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11001         , p_adr_type_code           => 'S'
11002         , p_component_type          => l_component_type
11003         , p_component_code          => l_component_code
11004         , p_component_type_code     => l_component_type_code
11005         , p_component_appl_id       => l_component_appl_id
11006         , p_amb_context_code        => l_amb_context_code
11007         , p_entity_code             => 'AP_INVOICES'
11008         , p_event_class_code        => 'DEBIT MEMOS'
11009         , p_side                    => 'CREDIT'
11010         );
11011 
11012   END IF;
11013 
11014    l_segment := AcctDerRule_22(
11015            p_application_id           => p_application_id
11016          , p_ae_header_id             => l_ae_header_id 
11017 , p_source_3 => p_source_3
11018 , p_source_3_meaning => p_source_3_meaning
11019 , p_source_10 => p_source_10
11020 , p_source_10_meaning => p_source_10_meaning
11021 , p_source_18 => p_source_18
11022          , x_transaction_coa_id       => l_adr_transaction_coa_id
11023          , x_accounting_coa_id        => l_adr_accounting_coa_id
11024          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11025          , x_flex_value_set_id        => l_adr_flex_value_set_id
11026          , x_value_type_code          => l_adr_value_type_code
11027          , x_value_combination_id     => l_adr_value_combination_id
11028          , x_value_segment_code       => l_adr_value_segment_code
11029          , p_side                     => 'ALL'
11030          , p_override_seg_flag        => 'Y'
11031    );
11032 
11033    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11034 
11035       xla_ae_lines_pkg.set_segment(
11036           p_to_segment_code         => 'GL_BALANCING'
11037         , p_segment_value           => l_segment
11038         , p_from_segment_code       => l_adr_value_segment_code
11039         , p_from_combination_id     => l_adr_value_combination_id
11040         , p_value_type_code         => l_adr_value_type_code
11041         , p_transaction_coa_id      => l_adr_transaction_coa_id
11042         , p_accounting_coa_id       => l_adr_accounting_coa_id
11043         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11044         , p_flex_value_set_id       => l_adr_flex_value_set_id
11045         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
11046         , p_adr_type_code           => 'S'
11047         , p_component_type          => l_component_type
11048         , p_component_code          => l_component_code
11049         , p_component_type_code     => l_component_type_code
11050         , p_component_appl_id       => l_component_appl_id
11051         , p_amb_context_code        => l_amb_context_code
11052         , p_entity_code             => 'AP_INVOICES'
11053         , p_event_class_code        => 'DEBIT MEMOS'
11054         , p_side                    => 'ALL'
11055         );
11056 
11057   END IF;
11058 
11059    --
11060    --
11061    END IF;
11062 
11063        --
11064        -- Update the line information that should be overwritten
11065        --
11066        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11067                                          p_header_num   => 1);
11068        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
11069 
11070        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11071 
11072        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
11073           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11074        END IF;
11075 
11076       --
11077       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11078       --
11079       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11080           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
11081       ELSE
11082           ---------------------------------------------------------------------------------------------------
11083           -- 4262811a Switch Sign
11084           ---------------------------------------------------------------------------------------------------
11085           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
11086           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11087                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11088           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11089                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11090           -- 5132302
11091           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11092                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11093 
11094       END IF;
11095 
11096       -- 4955764
11097       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11098       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11099 
11100 
11101       XLA_AE_LINES_PKG.ValidateCurrentLine;
11105                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11102       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11103 
11104       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11106                ,p_balance_type_code => l_balance_type_code);
11107 
11108    END IF;
11109 
11110    -----------------------------------------------------------------------------------------
11111    -- 4262811 Multiperiod Accounting
11112    -----------------------------------------------------------------------------------------
11113      -- No MPA option is assigned.
11114 
11115 
11116 END IF;
11117 END IF;
11118 --
11119 
11120 --
11121 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11122    trace
11123       (p_msg      => 'END of AcctLineType_52'
11124       ,p_level    => C_LEVEL_PROCEDURE
11125       ,p_module   => l_log_module);
11126 END IF;
11127 --
11128 EXCEPTION
11129   WHEN xla_exceptions_pkg.application_exception THEN
11130       RAISE;
11131   WHEN OTHERS THEN
11132        xla_exceptions_pkg.raise_message
11133            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_52');
11134 END AcctLineType_52;
11135 --
11136 
11137 ---------------------------------------
11138 --
11139 -- PRIVATE FUNCTION
11140 --         AcctLineType_53
11141 --
11142 ---------------------------------------
11143 PROCEDURE AcctLineType_53 (
11144   p_application_id        IN NUMBER
11145  ,p_event_id              IN NUMBER
11146  ,p_calculate_acctd_flag  IN VARCHAR2
11147  ,p_calculate_g_l_flag    IN VARCHAR2
11148  ,p_actual_flag           IN OUT VARCHAR2
11149  ,p_balance_type_code     OUT VARCHAR2
11150  ,p_gain_or_loss_ref      OUT VARCHAR2
11151  
11152 --Invoice Distribution Description
11153  , p_source_1            IN VARCHAR2
11154 --Automatic Offsets Value
11155  , p_source_3            IN VARCHAR2
11156  , p_source_3_meaning    IN VARCHAR2
11157 --Purchase Order Rate Variance Gain Account
11158  , p_source_8            IN NUMBER
11159 --Invoice Distribution Ledger Amount
11160  , p_source_9            IN NUMBER
11161 --Destination Type of the PO Distribution
11162  , p_source_10            IN VARCHAR2
11163  , p_source_10_meaning    IN VARCHAR2
11164 --Purchase Order Rate Variance Loss Account
11165  , p_source_11            IN NUMBER
11166 --Invoice Distribution Account
11167  , p_source_18            IN NUMBER
11168 --Invoice Distribution Type
11169  , p_source_21            IN VARCHAR2
11170  , p_source_21_meaning    IN VARCHAR2
11171 --Automatic Offsets Flag
11172  , p_source_35            IN VARCHAR2
11173  , p_source_35_meaning    IN VARCHAR2
11174 --Accounting Reversal Indicator
11175  , p_source_41            IN VARCHAR2
11176 --Distribution Link Type
11177  , p_source_43            IN VARCHAR2
11178 --Allocation to Main Distribution Identifier
11179  , p_source_45            IN NUMBER
11180 --Invoice Identifier
11181  , p_source_46            IN NUMBER
11182 --Invoice Distribution Identifier
11183  , p_source_52            IN NUMBER
11184 --Payables Encumbrance Upgrade Credit Account
11185  , p_source_53            IN NUMBER
11186 --Payables Encumbrance Upgrade Credit Amount
11187  , p_source_54            IN NUMBER
11188 --Invoice Currency Code
11189  , p_source_55            IN VARCHAR2
11190 --Payables Encumbrance Upgrade Credit Base Amount
11191  , p_source_56            IN NUMBER
11192 --Payables Encumbrance Upgrade Debit Account
11193  , p_source_57            IN NUMBER
11194 --Payables Encumbrance Upgrade Debit Amount
11195  , p_source_58            IN NUMBER
11196 --Payables Encumbrance Upgrade Debit Base Amount
11197  , p_source_59            IN NUMBER
11198 --Payables Encumbrance Upgrade Option
11199  , p_source_60            IN VARCHAR2
11200 --Invoice Distribution Amount
11201  , p_source_61            IN NUMBER
11202 --Deferred Accounting End Date
11203  , p_source_65            IN DATE
11204 --Deferred Accounting Option
11205  , p_source_66            IN VARCHAR2
11206 --Deferred Accounting Start Date
11207  , p_source_67            IN DATE
11208 --Override Accounted Amount Indicator
11209  , p_source_68            IN VARCHAR2
11210  , p_source_68_meaning    IN VARCHAR2
11211 --Invoice Supplier Identifier
11212  , p_source_69            IN NUMBER
11213 --Invoice Supplier Site Identifier
11214  , p_source_70            IN NUMBER
11215 --Third Party Type
11216  , p_source_71            IN VARCHAR2
11217 --Parent Reversal Identifier
11218  , p_source_72            IN NUMBER
11219 --Invoice Distribution Statistical Amount
11220  , p_source_73            IN NUMBER
11221 --Invoice Distribution Tax Line Identifier
11222  , p_source_74            IN NUMBER
11223 --Invoice Distribution Tax Distribution Identifier from Tax
11224  , p_source_75            IN NUMBER
11225 --Invoice Distribution Summary Tax Line Identifier
11226  , p_source_76            IN NUMBER
11227 --Payables Upgrade Credit Encumbrance Type Identifier
11228  , p_source_77            IN NUMBER
11229 --Payables Upgrade Debit Encumbrance Type Identifier
11230  , p_source_78            IN NUMBER
11231 --Business Flow Accounts Payable Application Identifier
11232  , p_source_79            IN NUMBER
11233 --Business Flow Invoice Distribution Type
11234  , p_source_80            IN VARCHAR2
11235 --Business Flow Invoice Entity Code
11236  , p_source_81            IN VARCHAR2
11237 --Business Flow Invoice Distribution Identifier
11238  , p_source_82            IN NUMBER
11239 --Business Flow Invoice Identifier
11243 
11240  , p_source_83            IN NUMBER
11241 )
11242 IS
11244 l_component_type              VARCHAR2(80);
11245 l_component_code              VARCHAR2(30);
11246 l_component_type_code         VARCHAR2(1);
11247 l_component_appl_id           INTEGER;
11248 l_amb_context_code            VARCHAR2(30);
11249 l_entity_code                 VARCHAR2(30);
11250 l_event_class_code            VARCHAR2(30);
11251 l_ae_header_id                NUMBER;
11252 l_event_type_code             VARCHAR2(30);
11253 l_line_definition_code        VARCHAR2(30);
11254 l_line_definition_owner_code  VARCHAR2(1);
11255 --
11256 -- adr variables
11257 l_segment                     VARCHAR2(30);
11258 l_ccid                        NUMBER;
11259 l_adr_transaction_coa_id      NUMBER;
11260 l_adr_accounting_coa_id       NUMBER;
11261 l_adr_flexfield_segment_code  VARCHAR2(30);
11262 l_adr_flex_value_set_id       NUMBER;
11263 l_adr_value_type_code         VARCHAR2(30);
11264 l_adr_value_combination_id    NUMBER;
11265 l_adr_value_segment_code      VARCHAR2(30);
11266 
11267 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
11268 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
11269 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
11270 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
11271 
11272 -- 4262811 Variables ------------------------------------------------------------------------------------------
11273 l_entered_amt_idx             NUMBER;
11274 l_accted_amt_idx              NUMBER;
11275 l_acc_rev_flag                VARCHAR2(1);
11276 l_accrual_line_num            NUMBER;
11277 l_tmp_amt                     NUMBER;
11278 l_acc_rev_natural_side_code   VARCHAR2(1);
11279 
11280 l_num_entries                 NUMBER;
11281 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
11282 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
11283 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
11284 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
11285 l_recog_line_1                NUMBER;
11286 l_recog_line_2                NUMBER;
11287 
11288 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
11289 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
11290 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
11291 
11292 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11293 
11294 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
11295 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
11296 
11297 ---------------------------------------------------------------------------------------------------------------
11298 
11299 
11300 --
11301 -- bulk performance
11302 --
11303 l_balance_type_code           VARCHAR2(1);
11304 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
11305 l_log_module                  VARCHAR2(240);
11306 
11307 --
11308 -- Upgrade strategy
11309 --
11310 l_actual_upg_option           VARCHAR2(1);
11311 l_enc_upg_option           VARCHAR2(1);
11312 
11313 --
11314 BEGIN
11315 --
11316 IF g_log_enabled THEN
11317       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_53';
11318 END IF;
11319 --
11320 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11321 
11322       trace
11323          (p_msg      => 'BEGIN of AcctLineType_53'
11324          ,p_level    => C_LEVEL_PROCEDURE
11325          ,p_module   => l_log_module);
11326 
11327 END IF;
11328 --
11329 l_component_type             := 'AMB_JLT';
11330 l_component_code             := 'AP_ALC_EX_RATE_VAR_INV';
11331 l_component_type_code        := 'S';
11332 l_component_appl_id          :=  200;
11333 l_amb_context_code           := 'DEFAULT';
11334 l_entity_code                := 'AP_INVOICES';
11335 l_event_class_code           := 'INVOICES';
11336 l_event_type_code            := 'INVOICES_ALL';
11337 l_line_definition_owner_code := 'S';
11338 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
11339 --
11340 l_balance_type_code          := 'A';
11341 l_segment                     := NULL;
11342 l_ccid                        := NULL;
11343 l_adr_transaction_coa_id      := NULL;
11344 l_adr_accounting_coa_id       := NULL;
11345 l_adr_flexfield_segment_code  := NULL;
11346 l_adr_flex_value_set_id       := NULL;
11347 l_adr_value_type_code         := NULL;
11348 l_adr_value_combination_id    := NULL;
11349 l_adr_value_segment_code      := NULL;
11350 
11351 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
11352 l_bflow_class_code           := '';    -- 4219869 Business Flow
11353 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
11354 l_budgetary_control_flag     := 'N';
11355 
11356 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
11357 l_bflow_applied_to_amt       := NULL; -- 5132302
11358 l_entered_amt_idx            := NULL;          -- 4262811
11359 l_accted_amt_idx             := NULL;          -- 4262811
11360 l_acc_rev_flag               := NULL;          -- 4262811
11361 l_accrual_line_num           := NULL;          -- 4262811
11362 l_tmp_amt                    := NULL;          -- 4262811
11363 --
11364 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
11365             (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
11366                return;
11367   END IF;
11368   
11369 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11373  THEN 
11370     l_balance_type_code <> 'B' THEN
11371 IF NVL(p_source_21,'
11372 ') =  'ACCRUAL'
11374 
11375    --
11376    XLA_AE_LINES_PKG.SetNewLine;
11377 
11378    p_balance_type_code          := l_balance_type_code;
11379    -- set the flag so later we will know whether the gain loss line needs to be created
11380    
11381    IF(l_balance_type_code = 'A' ) THEN
11382      p_actual_flag :='G';
11383    END IF;
11384 
11385    --
11386    -- bulk performance
11387    --
11388    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11389                                       p_header_num   => 0); -- 4262811
11390    --
11391    -- set accounting line options
11392    --
11393    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11394            p_natural_side_code          => 'G'
11395          , p_gain_or_loss_flag          => 'N'
11396          , p_gl_transfer_mode_code      => 'S'
11397          , p_acct_entry_type_code       => 'A'
11398          , p_switch_side_flag           => ''
11399          , p_merge_duplicate_code       => 'A'
11400          );
11401    --
11402    l_acc_rev_natural_side_code := 'C';  -- 4262811
11403    -- 
11404    --
11405    -- set accounting line type info
11406    --
11407    xla_ae_lines_pkg.SetAcctLineType
11408       (p_component_type             => l_component_type
11409       ,p_event_type_code            => l_event_type_code
11410       ,p_line_definition_owner_code => l_line_definition_owner_code
11411       ,p_line_definition_code       => l_line_definition_code
11412       ,p_accounting_line_code       => l_component_code
11413       ,p_accounting_line_type_code  => l_component_type_code
11414       ,p_accounting_line_appl_id    => l_component_appl_id
11415       ,p_amb_context_code           => l_amb_context_code
11416       ,p_entity_code                => l_entity_code
11417       ,p_event_class_code           => l_event_class_code);
11418    --
11419    -- set accounting class
11420    --
11421    xla_ae_lines_pkg.SetAcctClass(
11422            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
11423          , p_ae_header_id           => l_ae_header_id
11424          );
11425 
11426    --
11427    -- set rounding class
11428    --
11429    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11430                       'EXCHANGE_RATE_VARIANCE';
11431 
11432    --
11433    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11434    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11435    --
11436    -- bulk performance
11437    --
11438    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11439 
11440    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11441       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11442 
11443    -- 4955764
11444    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11445       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11446 
11447    -- 4458381 Public Sector Enh
11448    
11449    --
11450    -- set accounting attributes for the line type
11451    --
11452    l_entered_amt_idx := NULL;
11453    l_accted_amt_idx  := 24;
11454    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
11455    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
11456    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
11457    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
11458    l_rec_acct_attrs.array_num_value(2)  := 
11459 xla_ae_sources_pkg.GetSystemSourceNum(
11460    p_source_code           => 'XLA_EVENT_APPL_ID'
11461  , p_source_type_code      => 'Y'
11462  , p_source_application_id =>  602
11463 );
11464    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
11465    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
11466    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
11467    l_rec_acct_attrs.array_char_value(4)  := 
11468 xla_ae_sources_pkg.GetSystemSourceChar(
11469    p_source_code           => 'XLA_ENTITY_CODE'
11470  , p_source_type_code      => 'Y'
11471  , p_source_application_id =>  602
11472 );
11473    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
11474    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
11475    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
11476    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
11477    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
11478    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
11479    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
11480    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
11481    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11482    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
11483    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
11484    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
11485    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
11486    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
11487    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11488    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
11489    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
11490    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
11494    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
11491    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
11492    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
11493    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
11495    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
11496    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
11497    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
11498    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
11499    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
11500    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
11501    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
11502    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
11503    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
11504    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
11505    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
11506    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
11507    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
11508    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
11509    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
11510    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
11511    l_rec_acct_attrs.array_acct_attr_code(24) := 'LEDGER_AMOUNT';
11512    l_rec_acct_attrs.array_num_value(24)  := p_source_9;
11513    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_END_DATE';
11514    l_rec_acct_attrs.array_date_value(25)  := p_source_65;
11515    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_OPTION';
11516    l_rec_acct_attrs.array_char_value(26)  := p_source_66;
11517    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_START_DATE';
11518    l_rec_acct_attrs.array_date_value(27)  := p_source_67;
11519    l_rec_acct_attrs.array_acct_attr_code(28) := 'OVERRIDE_ACCTD_AMT_FLAG';
11520    l_rec_acct_attrs.array_char_value(28)  := p_source_68;
11521    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_ID';
11522    l_rec_acct_attrs.array_num_value(29)  := p_source_69;
11523    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_SITE_ID';
11524    l_rec_acct_attrs.array_num_value(30)  := p_source_70;
11525    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
11526    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
11527    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
11528    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
11529    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
11530    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
11531    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
11532    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
11533    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
11534    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
11535    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
11536    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
11537    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
11538    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
11539    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
11540    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
11541    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
11542    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
11543 
11544    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11545    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11546 
11547    ---------------------------------------------------------------------------------------------------------------
11548    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11549    ---------------------------------------------------------------------------------------------------------------
11550    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11551 
11552    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11553    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11554 
11555    IF xla_accounting_cache_pkg.GetValueChar
11556          (p_source_code         => 'LEDGER_CATEGORY_CODE'
11557          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11558    AND l_bflow_method_code = 'PRIOR_ENTRY'
11559 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11560    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11561          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11562        )
11563    THEN
11564          xla_ae_lines_pkg.BflowUpgEntry
11565            (p_business_method_code    => l_bflow_method_code
11566            ,p_business_class_code     => l_bflow_class_code
11567            ,p_balance_type            => l_balance_type_code);
11568    ELSE
11569       NULL;
11570 -- No business flow processing for business flow method of NONE.
11571    END IF;
11572 
11573    --
11574    -- call analytical criteria
11575    --
11576    
11577    --
11578    -- call description
11579    --
11580    
11581 xla_ae_lines_pkg.SetLineDescription(
11582    p_ae_header_id => l_ae_header_id
11583   ,p_description  => Description_2 (
11584      p_application_id         => p_application_id
11585    , p_ae_header_id           => l_ae_header_id 
11586 , p_source_1 => p_source_1
11587    )
11588 );
11589 
11590 
11591    --
11592    -- call ADRs
11593    -- Bug 4922099
11594    --
11595    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11596         (NVL(l_actual_upg_option, 'N') = 'O') OR
11600    NULL;
11597         (NVL(l_enc_upg_option, 'N') = 'O')
11598       )
11599    THEN
11601    --
11602    --
11603    
11604   l_ccid := AcctDerRule_29(
11605            p_application_id           => p_application_id
11606          , p_ae_header_id             => l_ae_header_id 
11607 , p_source_3 => p_source_3
11608 , p_source_3_meaning => p_source_3_meaning
11609 , p_source_8 => p_source_8
11610 , p_source_9 => p_source_9
11611 , p_source_10 => p_source_10
11612 , p_source_10_meaning => p_source_10_meaning
11613 , p_source_11 => p_source_11
11614 , p_source_18 => p_source_18
11615 , p_source_35 => p_source_35
11616 , p_source_35_meaning => p_source_35_meaning
11617          , x_transaction_coa_id       => l_adr_transaction_coa_id
11618          , x_accounting_coa_id        => l_adr_accounting_coa_id
11619          , x_value_type_code          => l_adr_value_type_code
11620          , p_side                     => 'ALL'
11621    );
11622 
11623    xla_ae_lines_pkg.set_ccid(
11624     p_code_combination_id          => l_ccid
11625   , p_value_type_code              => l_adr_value_type_code
11626   , p_transaction_coa_id           => l_adr_transaction_coa_id
11627   , p_accounting_coa_id            => l_adr_accounting_coa_id
11628   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
11629   , p_adr_type_code                => 'S'
11630   , p_component_type               => l_component_type
11631   , p_component_code               => l_component_code
11632   , p_component_type_code          => l_component_type_code
11633   , p_component_appl_id            => l_component_appl_id
11634   , p_amb_context_code             => l_amb_context_code
11635   , p_side                         => 'ALL'
11636   );
11637 
11638 
11639    l_segment := AcctDerRule_8(
11640            p_application_id           => p_application_id
11641          , p_ae_header_id             => l_ae_header_id 
11642 , p_source_3 => p_source_3
11643 , p_source_3_meaning => p_source_3_meaning
11644 , p_source_8 => p_source_8
11645 , p_source_10 => p_source_10
11646 , p_source_10_meaning => p_source_10_meaning
11647          , x_transaction_coa_id       => l_adr_transaction_coa_id
11648          , x_accounting_coa_id        => l_adr_accounting_coa_id
11649          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11650          , x_flex_value_set_id        => l_adr_flex_value_set_id
11651          , x_value_type_code          => l_adr_value_type_code
11652          , x_value_combination_id     => l_adr_value_combination_id
11653          , x_value_segment_code       => l_adr_value_segment_code
11654          , p_side                     => 'CREDIT'
11655          , p_override_seg_flag        => 'Y'
11656    );
11657 
11658    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11659 
11660       xla_ae_lines_pkg.set_segment(
11661           p_to_segment_code         => 'GL_ACCOUNT'
11662         , p_segment_value           => l_segment
11663         , p_from_segment_code       => l_adr_value_segment_code
11664         , p_from_combination_id     => l_adr_value_combination_id
11665         , p_value_type_code         => l_adr_value_type_code
11666         , p_transaction_coa_id      => l_adr_transaction_coa_id
11667         , p_accounting_coa_id       => l_adr_accounting_coa_id
11668         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11669         , p_flex_value_set_id       => l_adr_flex_value_set_id
11670         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11671         , p_adr_type_code           => 'S'
11672         , p_component_type          => l_component_type
11673         , p_component_code          => l_component_code
11674         , p_component_type_code     => l_component_type_code
11675         , p_component_appl_id       => l_component_appl_id
11676         , p_amb_context_code        => l_amb_context_code
11677         , p_entity_code             => 'AP_INVOICES'
11678         , p_event_class_code        => 'INVOICES'
11679         , p_side                    => 'CREDIT'
11680         );
11681 
11682   END IF;
11683 
11684    l_segment := AcctDerRule_9(
11685            p_application_id           => p_application_id
11686          , p_ae_header_id             => l_ae_header_id 
11687 , p_source_3 => p_source_3
11688 , p_source_3_meaning => p_source_3_meaning
11689 , p_source_10 => p_source_10
11690 , p_source_10_meaning => p_source_10_meaning
11691 , p_source_11 => p_source_11
11692          , x_transaction_coa_id       => l_adr_transaction_coa_id
11693          , x_accounting_coa_id        => l_adr_accounting_coa_id
11694          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11695          , x_flex_value_set_id        => l_adr_flex_value_set_id
11696          , x_value_type_code          => l_adr_value_type_code
11697          , x_value_combination_id     => l_adr_value_combination_id
11698          , x_value_segment_code       => l_adr_value_segment_code
11699          , p_side                     => 'DEBIT'
11700          , p_override_seg_flag        => 'Y'
11701    );
11702 
11703    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11704 
11705       xla_ae_lines_pkg.set_segment(
11706           p_to_segment_code         => 'GL_ACCOUNT'
11707         , p_segment_value           => l_segment
11708         , p_from_segment_code       => l_adr_value_segment_code
11709         , p_from_combination_id     => l_adr_value_combination_id
11710         , p_value_type_code         => l_adr_value_type_code
11711         , p_transaction_coa_id      => l_adr_transaction_coa_id
11712         , p_accounting_coa_id       => l_adr_accounting_coa_id
11713         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11717         , p_component_type          => l_component_type
11714         , p_flex_value_set_id       => l_adr_flex_value_set_id
11715         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11716         , p_adr_type_code           => 'S'
11718         , p_component_code          => l_component_code
11719         , p_component_type_code     => l_component_type_code
11720         , p_component_appl_id       => l_component_appl_id
11721         , p_amb_context_code        => l_amb_context_code
11722         , p_entity_code             => 'AP_INVOICES'
11723         , p_event_class_code        => 'INVOICES'
11724         , p_side                    => 'DEBIT'
11725         );
11726 
11727   END IF;
11728 
11729    l_segment := AcctDerRule_22(
11730            p_application_id           => p_application_id
11731          , p_ae_header_id             => l_ae_header_id 
11732 , p_source_3 => p_source_3
11733 , p_source_3_meaning => p_source_3_meaning
11734 , p_source_10 => p_source_10
11735 , p_source_10_meaning => p_source_10_meaning
11736 , p_source_18 => p_source_18
11737          , x_transaction_coa_id       => l_adr_transaction_coa_id
11738          , x_accounting_coa_id        => l_adr_accounting_coa_id
11739          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11740          , x_flex_value_set_id        => l_adr_flex_value_set_id
11741          , x_value_type_code          => l_adr_value_type_code
11742          , x_value_combination_id     => l_adr_value_combination_id
11743          , x_value_segment_code       => l_adr_value_segment_code
11744          , p_side                     => 'ALL'
11745          , p_override_seg_flag        => 'Y'
11746    );
11747 
11748    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11749 
11750       xla_ae_lines_pkg.set_segment(
11751           p_to_segment_code         => 'GL_BALANCING'
11752         , p_segment_value           => l_segment
11753         , p_from_segment_code       => l_adr_value_segment_code
11754         , p_from_combination_id     => l_adr_value_combination_id
11755         , p_value_type_code         => l_adr_value_type_code
11756         , p_transaction_coa_id      => l_adr_transaction_coa_id
11757         , p_accounting_coa_id       => l_adr_accounting_coa_id
11758         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11759         , p_flex_value_set_id       => l_adr_flex_value_set_id
11760         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
11761         , p_adr_type_code           => 'S'
11762         , p_component_type          => l_component_type
11763         , p_component_code          => l_component_code
11764         , p_component_type_code     => l_component_type_code
11765         , p_component_appl_id       => l_component_appl_id
11766         , p_amb_context_code        => l_amb_context_code
11767         , p_entity_code             => 'AP_INVOICES'
11768         , p_event_class_code        => 'INVOICES'
11769         , p_side                    => 'ALL'
11770         );
11771 
11772   END IF;
11773 
11774    --
11775    --
11776    END IF;
11777    --
11778    -- Bug 4922099
11779    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11780           (NVL(l_enc_upg_option, 'N') = 'O')
11781         ) AND
11782         (l_bflow_method_code = 'PRIOR_ENTRY')
11783       )
11784    THEN
11785       IF
11786       --
11787       1 = 2
11788       --
11789       THEN
11790       xla_accounting_err_pkg.build_message
11791                                     (p_appli_s_name            => 'XLA'
11792                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11793                                     ,p_token_1                 => 'LINE_NUMBER'
11794                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
11795                                     ,p_token_2                 => 'LINE_TYPE_NAME'
11796                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
11797                                                                              l_component_type
11798                                                                             ,l_component_code
11799                                                                             ,l_component_type_code
11800                                                                             ,l_component_appl_id
11801                                                                             ,l_amb_context_code
11802                                                                             ,l_entity_code
11803                                                                             ,l_event_class_code
11804                                                                            )
11805                                     ,p_token_3                 => 'OWNER'
11806                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
11807                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
11808                                                                           ,p_lookup_code    => l_component_type_code
11809                                                                          )
11810                                     ,p_token_4                 => 'PRODUCT_NAME'
11811                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11812                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11813                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11814                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11818         IF (C_LEVEL_ERROR>= g_log_level) THEN
11815                                     ,p_ae_header_id            =>  NULL
11816                                        );
11817 
11819                  trace
11820                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11821                       ,p_level    => C_LEVEL_ERROR
11822                       ,p_module   => l_log_module);
11823         END IF;
11824       END IF;
11825    END IF;
11826    --
11827    --
11828    ------------------------------------------------------------------------------------------------
11829    -- 4219869 Business Flow
11830    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11831    -- Prior Entry.  Currently, the following code is always generated.
11832    ------------------------------------------------------------------------------------------------
11833    XLA_AE_LINES_PKG.ValidateCurrentLine;
11834 
11835    ------------------------------------------------------------------------------------
11836    -- 4219869 Business Flow
11837    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11838    ------------------------------------------------------------------------------------
11839    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11840 
11841    ----------------------------------------------------------------------------------
11842    -- 4219869 Business Flow
11843    -- Update journal entry status -- Need to generate this within IF <condition>
11844    ----------------------------------------------------------------------------------
11845    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11846          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11847          ,p_balance_type_code => l_balance_type_code
11848          );
11849 
11850    -------------------------------------------------------------------------------------------
11851    -- 4262811 - Generate the Accrual Reversal lines
11852    -------------------------------------------------------------------------------------------
11853    BEGIN
11854       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11855                               (g_array_event(p_event_id).array_value_num('header_index'));
11856       IF l_acc_rev_flag IS NULL THEN
11857          l_acc_rev_flag := 'N';
11858       END IF;
11859    EXCEPTION
11860       WHEN OTHERS THEN
11861          l_acc_rev_flag := 'N';
11862    END;
11863    --
11864    IF (l_acc_rev_flag = 'Y') THEN
11865 
11866        -- 4645092  ------------------------------------------------------------------------------
11867        -- To allow MPA report to determine if it should generate report process
11868        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11869        ------------------------------------------------------------------------------------------
11870 
11871        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11872        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11873    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
11874    -- call ADRs
11875    -- Bug 4922099
11876    --
11877    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11878         (NVL(l_actual_upg_option, 'N') = 'O') OR
11879         (NVL(l_enc_upg_option, 'N') = 'O')
11880       )
11881    THEN
11882    NULL;
11883    --
11884    --
11885    
11886   l_ccid := AcctDerRule_29(
11887            p_application_id           => p_application_id
11888          , p_ae_header_id             => l_ae_header_id 
11889 , p_source_3 => p_source_3
11890 , p_source_3_meaning => p_source_3_meaning
11891 , p_source_8 => p_source_8
11892 , p_source_9 => p_source_9
11893 , p_source_10 => p_source_10
11894 , p_source_10_meaning => p_source_10_meaning
11895 , p_source_11 => p_source_11
11896 , p_source_18 => p_source_18
11897 , p_source_35 => p_source_35
11898 , p_source_35_meaning => p_source_35_meaning
11899          , x_transaction_coa_id       => l_adr_transaction_coa_id
11900          , x_accounting_coa_id        => l_adr_accounting_coa_id
11901          , x_value_type_code          => l_adr_value_type_code
11902          , p_side                     => 'ALL'
11903    );
11904 
11905    xla_ae_lines_pkg.set_ccid(
11906     p_code_combination_id          => l_ccid
11907   , p_value_type_code              => l_adr_value_type_code
11908   , p_transaction_coa_id           => l_adr_transaction_coa_id
11909   , p_accounting_coa_id            => l_adr_accounting_coa_id
11910   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
11911   , p_adr_type_code                => 'S'
11912   , p_component_type               => l_component_type
11913   , p_component_code               => l_component_code
11914   , p_component_type_code          => l_component_type_code
11915   , p_component_appl_id            => l_component_appl_id
11916   , p_amb_context_code             => l_amb_context_code
11917   , p_side                         => 'ALL'
11918   );
11919 
11920 
11921    l_segment := AcctDerRule_8(
11922            p_application_id           => p_application_id
11923          , p_ae_header_id             => l_ae_header_id 
11924 , p_source_3 => p_source_3
11925 , p_source_3_meaning => p_source_3_meaning
11926 , p_source_8 => p_source_8
11927 , p_source_10 => p_source_10
11928 , p_source_10_meaning => p_source_10_meaning
11929          , x_transaction_coa_id       => l_adr_transaction_coa_id
11930          , x_accounting_coa_id        => l_adr_accounting_coa_id
11931          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11932          , x_flex_value_set_id        => l_adr_flex_value_set_id
11933          , x_value_type_code          => l_adr_value_type_code
11934          , x_value_combination_id     => l_adr_value_combination_id
11935          , x_value_segment_code       => l_adr_value_segment_code
11936          , p_side                     => 'CREDIT'
11937          , p_override_seg_flag        => 'Y'
11938    );
11939 
11940    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11941 
11942       xla_ae_lines_pkg.set_segment(
11943           p_to_segment_code         => 'GL_ACCOUNT'
11944         , p_segment_value           => l_segment
11945         , p_from_segment_code       => l_adr_value_segment_code
11946         , p_from_combination_id     => l_adr_value_combination_id
11947         , p_value_type_code         => l_adr_value_type_code
11948         , p_transaction_coa_id      => l_adr_transaction_coa_id
11949         , p_accounting_coa_id       => l_adr_accounting_coa_id
11950         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11951         , p_flex_value_set_id       => l_adr_flex_value_set_id
11952         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11953         , p_adr_type_code           => 'S'
11954         , p_component_type          => l_component_type
11955         , p_component_code          => l_component_code
11956         , p_component_type_code     => l_component_type_code
11957         , p_component_appl_id       => l_component_appl_id
11958         , p_amb_context_code        => l_amb_context_code
11959         , p_entity_code             => 'AP_INVOICES'
11960         , p_event_class_code        => 'INVOICES'
11961         , p_side                    => 'CREDIT'
11962         );
11963 
11964   END IF;
11965 
11966    l_segment := AcctDerRule_9(
11967            p_application_id           => p_application_id
11968          , p_ae_header_id             => l_ae_header_id 
11969 , p_source_3 => p_source_3
11970 , p_source_3_meaning => p_source_3_meaning
11971 , p_source_10 => p_source_10
11972 , p_source_10_meaning => p_source_10_meaning
11973 , p_source_11 => p_source_11
11974          , x_transaction_coa_id       => l_adr_transaction_coa_id
11975          , x_accounting_coa_id        => l_adr_accounting_coa_id
11976          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11977          , x_flex_value_set_id        => l_adr_flex_value_set_id
11978          , x_value_type_code          => l_adr_value_type_code
11979          , x_value_combination_id     => l_adr_value_combination_id
11980          , x_value_segment_code       => l_adr_value_segment_code
11981          , p_side                     => 'DEBIT'
11982          , p_override_seg_flag        => 'Y'
11983    );
11984 
11985    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11986 
11987       xla_ae_lines_pkg.set_segment(
11988           p_to_segment_code         => 'GL_ACCOUNT'
11989         , p_segment_value           => l_segment
11990         , p_from_segment_code       => l_adr_value_segment_code
11991         , p_from_combination_id     => l_adr_value_combination_id
11992         , p_value_type_code         => l_adr_value_type_code
11996         , p_flex_value_set_id       => l_adr_flex_value_set_id
11993         , p_transaction_coa_id      => l_adr_transaction_coa_id
11994         , p_accounting_coa_id       => l_adr_accounting_coa_id
11995         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11997         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11998         , p_adr_type_code           => 'S'
11999         , p_component_type          => l_component_type
12000         , p_component_code          => l_component_code
12001         , p_component_type_code     => l_component_type_code
12002         , p_component_appl_id       => l_component_appl_id
12003         , p_amb_context_code        => l_amb_context_code
12004         , p_entity_code             => 'AP_INVOICES'
12005         , p_event_class_code        => 'INVOICES'
12006         , p_side                    => 'DEBIT'
12007         );
12008 
12009   END IF;
12010 
12011    l_segment := AcctDerRule_22(
12012            p_application_id           => p_application_id
12013          , p_ae_header_id             => l_ae_header_id 
12014 , p_source_3 => p_source_3
12015 , p_source_3_meaning => p_source_3_meaning
12016 , p_source_10 => p_source_10
12017 , p_source_10_meaning => p_source_10_meaning
12018 , p_source_18 => p_source_18
12019          , x_transaction_coa_id       => l_adr_transaction_coa_id
12020          , x_accounting_coa_id        => l_adr_accounting_coa_id
12021          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12022          , x_flex_value_set_id        => l_adr_flex_value_set_id
12023          , x_value_type_code          => l_adr_value_type_code
12024          , x_value_combination_id     => l_adr_value_combination_id
12025          , x_value_segment_code       => l_adr_value_segment_code
12026          , p_side                     => 'ALL'
12027          , p_override_seg_flag        => 'Y'
12028    );
12029 
12030    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12031 
12032       xla_ae_lines_pkg.set_segment(
12033           p_to_segment_code         => 'GL_BALANCING'
12034         , p_segment_value           => l_segment
12035         , p_from_segment_code       => l_adr_value_segment_code
12036         , p_from_combination_id     => l_adr_value_combination_id
12037         , p_value_type_code         => l_adr_value_type_code
12038         , p_transaction_coa_id      => l_adr_transaction_coa_id
12039         , p_accounting_coa_id       => l_adr_accounting_coa_id
12040         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12041         , p_flex_value_set_id       => l_adr_flex_value_set_id
12042         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
12043         , p_adr_type_code           => 'S'
12044         , p_component_type          => l_component_type
12045         , p_component_code          => l_component_code
12046         , p_component_type_code     => l_component_type_code
12047         , p_component_appl_id       => l_component_appl_id
12048         , p_amb_context_code        => l_amb_context_code
12049         , p_entity_code             => 'AP_INVOICES'
12050         , p_event_class_code        => 'INVOICES'
12051         , p_side                    => 'ALL'
12052         );
12053 
12054   END IF;
12055 
12056    --
12057    --
12058    END IF;
12059 
12060        --
12061        -- Update the line information that should be overwritten
12062        --
12063        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12064                                          p_header_num   => 1);
12065        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
12066 
12067        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12068 
12069        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
12070           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12071        END IF;
12072 
12073       --
12074       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12075       --
12076       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12077           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
12078       ELSE
12079           ---------------------------------------------------------------------------------------------------
12080           -- 4262811a Switch Sign
12081           ---------------------------------------------------------------------------------------------------
12082           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
12083           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12084                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12085           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12086                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12087           -- 5132302
12088           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12089                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12090 
12091       END IF;
12092 
12093       -- 4955764
12094       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12095       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12096 
12097 
12098       XLA_AE_LINES_PKG.ValidateCurrentLine;
12099       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12100 
12101       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12105    END IF;
12102                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12103                ,p_balance_type_code => l_balance_type_code);
12104 
12106 
12107    -----------------------------------------------------------------------------------------
12108    -- 4262811 Multiperiod Accounting
12109    -----------------------------------------------------------------------------------------
12110      -- No MPA option is assigned.
12111 
12112 
12113 END IF;
12114 END IF;
12115 --
12116 
12117 --
12118 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12119    trace
12120       (p_msg      => 'END of AcctLineType_53'
12121       ,p_level    => C_LEVEL_PROCEDURE
12122       ,p_module   => l_log_module);
12123 END IF;
12124 --
12125 EXCEPTION
12126   WHEN xla_exceptions_pkg.application_exception THEN
12127       RAISE;
12128   WHEN OTHERS THEN
12129        xla_exceptions_pkg.raise_message
12130            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_53');
12131 END AcctLineType_53;
12132 --
12133 
12134 ---------------------------------------
12135 --
12136 -- PRIVATE FUNCTION
12137 --         AcctLineType_54
12138 --
12139 ---------------------------------------
12140 PROCEDURE AcctLineType_54 (
12141   p_application_id        IN NUMBER
12142  ,p_event_id              IN NUMBER
12143  ,p_calculate_acctd_flag  IN VARCHAR2
12144  ,p_calculate_g_l_flag    IN VARCHAR2
12145  ,p_actual_flag           IN OUT VARCHAR2
12146  ,p_balance_type_code     OUT VARCHAR2
12147  ,p_gain_or_loss_ref      OUT VARCHAR2
12148  
12149 --Invoice Distribution Description
12150  , p_source_1            IN VARCHAR2
12151 --Automatic Offsets Value
12152  , p_source_3            IN VARCHAR2
12153  , p_source_3_meaning    IN VARCHAR2
12154 --Purchase Order Rate Variance Gain Account
12155  , p_source_8            IN NUMBER
12156 --Invoice Distribution Ledger Amount
12157  , p_source_9            IN NUMBER
12158 --Destination Type of the PO Distribution
12159  , p_source_10            IN VARCHAR2
12160  , p_source_10_meaning    IN VARCHAR2
12161 --Purchase Order Rate Variance Loss Account
12162  , p_source_11            IN NUMBER
12163 --Invoice Distribution Account
12164  , p_source_18            IN NUMBER
12165 --Invoice Distribution Type
12166  , p_source_21            IN VARCHAR2
12167  , p_source_21_meaning    IN VARCHAR2
12168 --Automatic Offsets Flag
12169  , p_source_35            IN VARCHAR2
12170  , p_source_35_meaning    IN VARCHAR2
12171 --Accounting Reversal Indicator
12172  , p_source_41            IN VARCHAR2
12173 --Distribution Link Type
12174  , p_source_43            IN VARCHAR2
12175 --Allocation to Main Distribution Identifier
12176  , p_source_45            IN NUMBER
12177 --Invoice Identifier
12178  , p_source_46            IN NUMBER
12179 --Invoice Distribution Identifier
12180  , p_source_52            IN NUMBER
12181 --Payables Encumbrance Upgrade Credit Account
12182  , p_source_53            IN NUMBER
12183 --Payables Encumbrance Upgrade Credit Amount
12184  , p_source_54            IN NUMBER
12185 --Invoice Currency Code
12186  , p_source_55            IN VARCHAR2
12187 --Payables Encumbrance Upgrade Credit Base Amount
12188  , p_source_56            IN NUMBER
12189 --Payables Encumbrance Upgrade Debit Account
12190  , p_source_57            IN NUMBER
12191 --Payables Encumbrance Upgrade Debit Amount
12192  , p_source_58            IN NUMBER
12193 --Payables Encumbrance Upgrade Debit Base Amount
12194  , p_source_59            IN NUMBER
12195 --Payables Encumbrance Upgrade Option
12196  , p_source_60            IN VARCHAR2
12197 --Deferred Accounting End Date
12198  , p_source_65            IN DATE
12199 --Deferred Accounting Option
12200  , p_source_66            IN VARCHAR2
12201 --Deferred Accounting Start Date
12202  , p_source_67            IN DATE
12203 --Override Accounted Amount Indicator
12204  , p_source_68            IN VARCHAR2
12205  , p_source_68_meaning    IN VARCHAR2
12206 --Invoice Supplier Identifier
12207  , p_source_69            IN NUMBER
12208 --Invoice Supplier Site Identifier
12209  , p_source_70            IN NUMBER
12210 --Third Party Type
12211  , p_source_71            IN VARCHAR2
12212 --Parent Reversal Identifier
12213  , p_source_72            IN NUMBER
12214 --Invoice Distribution Statistical Amount
12215  , p_source_73            IN NUMBER
12216 --Invoice Distribution Tax Line Identifier
12217  , p_source_74            IN NUMBER
12218 --Invoice Distribution Tax Distribution Identifier from Tax
12219  , p_source_75            IN NUMBER
12220 --Invoice Distribution Summary Tax Line Identifier
12221  , p_source_76            IN NUMBER
12222 --Payables Upgrade Credit Encumbrance Type Identifier
12223  , p_source_77            IN NUMBER
12224 --Payables Upgrade Debit Encumbrance Type Identifier
12225  , p_source_78            IN NUMBER
12226 --Business Flow Accounts Payable Application Identifier
12227  , p_source_79            IN NUMBER
12228 --Business Flow Invoice Distribution Type
12229  , p_source_80            IN VARCHAR2
12230 --Business Flow Invoice Entity Code
12231  , p_source_81            IN VARCHAR2
12232 --Business Flow Invoice Distribution Identifier
12233  , p_source_82            IN NUMBER
12234 --Business Flow Invoice Identifier
12235  , p_source_83            IN NUMBER
12236 )
12237 IS
12238 
12239 l_component_type              VARCHAR2(80);
12240 l_component_code              VARCHAR2(30);
12241 l_component_type_code         VARCHAR2(1);
12242 l_component_appl_id           INTEGER;
12243 l_amb_context_code            VARCHAR2(30);
12244 l_entity_code                 VARCHAR2(30);
12248 l_line_definition_code        VARCHAR2(30);
12245 l_event_class_code            VARCHAR2(30);
12246 l_ae_header_id                NUMBER;
12247 l_event_type_code             VARCHAR2(30);
12249 l_line_definition_owner_code  VARCHAR2(1);
12250 --
12251 -- adr variables
12252 l_segment                     VARCHAR2(30);
12253 l_ccid                        NUMBER;
12254 l_adr_transaction_coa_id      NUMBER;
12255 l_adr_accounting_coa_id       NUMBER;
12256 l_adr_flexfield_segment_code  VARCHAR2(30);
12257 l_adr_flex_value_set_id       NUMBER;
12258 l_adr_value_type_code         VARCHAR2(30);
12259 l_adr_value_combination_id    NUMBER;
12260 l_adr_value_segment_code      VARCHAR2(30);
12261 
12262 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
12263 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
12264 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
12265 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
12266 
12267 -- 4262811 Variables ------------------------------------------------------------------------------------------
12268 l_entered_amt_idx             NUMBER;
12269 l_accted_amt_idx              NUMBER;
12270 l_acc_rev_flag                VARCHAR2(1);
12271 l_accrual_line_num            NUMBER;
12272 l_tmp_amt                     NUMBER;
12273 l_acc_rev_natural_side_code   VARCHAR2(1);
12274 
12275 l_num_entries                 NUMBER;
12276 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
12277 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
12278 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
12279 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
12280 l_recog_line_1                NUMBER;
12281 l_recog_line_2                NUMBER;
12282 
12283 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
12284 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
12285 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
12286 
12287 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12288 
12289 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
12290 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
12291 
12292 ---------------------------------------------------------------------------------------------------------------
12293 
12294 
12295 --
12296 -- bulk performance
12297 --
12298 l_balance_type_code           VARCHAR2(1);
12299 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
12300 l_log_module                  VARCHAR2(240);
12301 
12302 --
12303 -- Upgrade strategy
12304 --
12305 l_actual_upg_option           VARCHAR2(1);
12306 l_enc_upg_option           VARCHAR2(1);
12307 
12308 --
12309 BEGIN
12310 --
12311 IF g_log_enabled THEN
12312       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_54';
12313 END IF;
12314 --
12315 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12316 
12317       trace
12318          (p_msg      => 'BEGIN of AcctLineType_54'
12319          ,p_level    => C_LEVEL_PROCEDURE
12320          ,p_module   => l_log_module);
12321 
12322 END IF;
12323 --
12324 l_component_type             := 'AMB_JLT';
12325 l_component_code             := 'AP_ALC_EX_RATE_VAR_PREPAY';
12326 l_component_type_code        := 'S';
12327 l_component_appl_id          :=  200;
12328 l_amb_context_code           := 'DEFAULT';
12329 l_entity_code                := 'AP_INVOICES';
12330 l_event_class_code           := 'PREPAYMENTS';
12331 l_event_type_code            := 'PREPAYMENTS_ALL';
12332 l_line_definition_owner_code := 'S';
12333 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
12334 --
12335 l_balance_type_code          := 'A';
12336 l_segment                     := NULL;
12337 l_ccid                        := NULL;
12338 l_adr_transaction_coa_id      := NULL;
12339 l_adr_accounting_coa_id       := NULL;
12340 l_adr_flexfield_segment_code  := NULL;
12341 l_adr_flex_value_set_id       := NULL;
12342 l_adr_value_type_code         := NULL;
12343 l_adr_value_combination_id    := NULL;
12344 l_adr_value_segment_code      := NULL;
12345 
12346 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
12347 l_bflow_class_code           := '';    -- 4219869 Business Flow
12348 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
12349 l_budgetary_control_flag     := 'N';
12350 
12351 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
12352 l_bflow_applied_to_amt       := NULL; -- 5132302
12353 l_entered_amt_idx            := NULL;          -- 4262811
12354 l_accted_amt_idx             := NULL;          -- 4262811
12355 l_acc_rev_flag               := NULL;          -- 4262811
12356 l_accrual_line_num           := NULL;          -- 4262811
12357 l_tmp_amt                    := NULL;          -- 4262811
12358 --
12359 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
12360             (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
12361                return;
12362   END IF;
12363   
12364 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12365     l_balance_type_code <> 'B' THEN
12366 IF NVL(p_source_21,'
12367 ') =  'ACCRUAL'
12368  THEN 
12369 
12370    --
12371    XLA_AE_LINES_PKG.SetNewLine;
12372 
12373    p_balance_type_code          := l_balance_type_code;
12374    -- set the flag so later we will know whether the gain loss line needs to be created
12378    END IF;
12375    
12376    IF(l_balance_type_code = 'A' ) THEN
12377      p_actual_flag :='G';
12379 
12380    --
12381    -- bulk performance
12382    --
12383    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12384                                       p_header_num   => 0); -- 4262811
12385    --
12386    -- set accounting line options
12387    --
12388    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12389            p_natural_side_code          => 'G'
12390          , p_gain_or_loss_flag          => 'N'
12391          , p_gl_transfer_mode_code      => 'S'
12392          , p_acct_entry_type_code       => 'A'
12393          , p_switch_side_flag           => ''
12394          , p_merge_duplicate_code       => 'A'
12395          );
12396    --
12397    l_acc_rev_natural_side_code := 'C';  -- 4262811
12398    -- 
12399    --
12400    -- set accounting line type info
12401    --
12402    xla_ae_lines_pkg.SetAcctLineType
12403       (p_component_type             => l_component_type
12404       ,p_event_type_code            => l_event_type_code
12405       ,p_line_definition_owner_code => l_line_definition_owner_code
12406       ,p_line_definition_code       => l_line_definition_code
12407       ,p_accounting_line_code       => l_component_code
12408       ,p_accounting_line_type_code  => l_component_type_code
12409       ,p_accounting_line_appl_id    => l_component_appl_id
12410       ,p_amb_context_code           => l_amb_context_code
12411       ,p_entity_code                => l_entity_code
12412       ,p_event_class_code           => l_event_class_code);
12413    --
12414    -- set accounting class
12415    --
12416    xla_ae_lines_pkg.SetAcctClass(
12417            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
12418          , p_ae_header_id           => l_ae_header_id
12419          );
12420 
12421    --
12422    -- set rounding class
12423    --
12424    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12425                       'EXCHANGE_RATE_VARIANCE';
12426 
12427    --
12428    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12429    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12430    --
12431    -- bulk performance
12432    --
12433    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12434 
12435    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12436       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12437 
12438    -- 4955764
12439    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12440       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12441 
12442    -- 4458381 Public Sector Enh
12443    
12444    --
12445    -- set accounting attributes for the line type
12446    --
12447    l_entered_amt_idx := NULL;
12448    l_accted_amt_idx  := 23;
12449    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
12450    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
12451    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
12452    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
12453    l_rec_acct_attrs.array_num_value(2)  := 
12454 xla_ae_sources_pkg.GetSystemSourceNum(
12455    p_source_code           => 'XLA_EVENT_APPL_ID'
12456  , p_source_type_code      => 'Y'
12457  , p_source_application_id =>  602
12458 );
12459    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
12460    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
12461    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
12462    l_rec_acct_attrs.array_char_value(4)  := 
12463 xla_ae_sources_pkg.GetSystemSourceChar(
12464    p_source_code           => 'XLA_ENTITY_CODE'
12465  , p_source_type_code      => 'Y'
12466  , p_source_application_id =>  602
12467 );
12468    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
12469    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
12470    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
12471    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
12472    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
12473    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
12474    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
12475    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
12476    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
12477    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
12478    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
12479    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
12480    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
12481    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
12482    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
12483    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
12484    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
12485    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
12486    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
12487    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
12488    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
12492    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
12489    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
12490    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
12491    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
12493    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
12494    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
12495    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
12496    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
12497    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
12498    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
12499    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
12500    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
12501    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
12502    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
12503    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
12504    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
12505    l_rec_acct_attrs.array_num_value(23)  := p_source_9;
12506    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
12507    l_rec_acct_attrs.array_date_value(24)  := p_source_65;
12508    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
12509    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
12510    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
12511    l_rec_acct_attrs.array_date_value(26)  := p_source_67;
12512    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
12513    l_rec_acct_attrs.array_char_value(27)  := p_source_68;
12514    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
12515    l_rec_acct_attrs.array_num_value(28)  := p_source_69;
12516    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
12517    l_rec_acct_attrs.array_num_value(29)  := p_source_70;
12518    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
12519    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
12520    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
12521    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
12522    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
12523    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
12524    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
12525    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
12526    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
12527    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
12528    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
12529    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
12530    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
12531    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
12532    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
12533    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
12534    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
12535    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
12536 
12537    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12538    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12539 
12540    ---------------------------------------------------------------------------------------------------------------
12541    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12542    ---------------------------------------------------------------------------------------------------------------
12543    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12544 
12545    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12546    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12547 
12548    IF xla_accounting_cache_pkg.GetValueChar
12549          (p_source_code         => 'LEDGER_CATEGORY_CODE'
12550          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12551    AND l_bflow_method_code = 'PRIOR_ENTRY'
12552 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12553    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12554          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12555        )
12556    THEN
12557          xla_ae_lines_pkg.BflowUpgEntry
12558            (p_business_method_code    => l_bflow_method_code
12559            ,p_business_class_code     => l_bflow_class_code
12560            ,p_balance_type            => l_balance_type_code);
12561    ELSE
12562       NULL;
12563 -- No business flow processing for business flow method of NONE.
12564    END IF;
12565 
12566    --
12567    -- call analytical criteria
12568    --
12569    
12570    --
12571    -- call description
12572    --
12573    
12574 xla_ae_lines_pkg.SetLineDescription(
12575    p_ae_header_id => l_ae_header_id
12576   ,p_description  => Description_2 (
12577      p_application_id         => p_application_id
12578    , p_ae_header_id           => l_ae_header_id 
12579 , p_source_1 => p_source_1
12580    )
12581 );
12582 
12583 
12584    --
12585    -- call ADRs
12586    -- Bug 4922099
12587    --
12588    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12589         (NVL(l_actual_upg_option, 'N') = 'O') OR
12590         (NVL(l_enc_upg_option, 'N') = 'O')
12591       )
12592    THEN
12593    NULL;
12594    --
12595    --
12596    
12597   l_ccid := AcctDerRule_29(
12598            p_application_id           => p_application_id
12599          , p_ae_header_id             => l_ae_header_id 
12603 , p_source_9 => p_source_9
12600 , p_source_3 => p_source_3
12601 , p_source_3_meaning => p_source_3_meaning
12602 , p_source_8 => p_source_8
12604 , p_source_10 => p_source_10
12605 , p_source_10_meaning => p_source_10_meaning
12606 , p_source_11 => p_source_11
12607 , p_source_18 => p_source_18
12608 , p_source_35 => p_source_35
12609 , p_source_35_meaning => p_source_35_meaning
12610          , x_transaction_coa_id       => l_adr_transaction_coa_id
12611          , x_accounting_coa_id        => l_adr_accounting_coa_id
12612          , x_value_type_code          => l_adr_value_type_code
12613          , p_side                     => 'ALL'
12614    );
12615 
12616    xla_ae_lines_pkg.set_ccid(
12617     p_code_combination_id          => l_ccid
12618   , p_value_type_code              => l_adr_value_type_code
12619   , p_transaction_coa_id           => l_adr_transaction_coa_id
12620   , p_accounting_coa_id            => l_adr_accounting_coa_id
12621   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
12622   , p_adr_type_code                => 'S'
12623   , p_component_type               => l_component_type
12624   , p_component_code               => l_component_code
12625   , p_component_type_code          => l_component_type_code
12626   , p_component_appl_id            => l_component_appl_id
12627   , p_amb_context_code             => l_amb_context_code
12628   , p_side                         => 'ALL'
12629   );
12630 
12631 
12632    l_segment := AcctDerRule_8(
12633            p_application_id           => p_application_id
12634          , p_ae_header_id             => l_ae_header_id 
12635 , p_source_3 => p_source_3
12636 , p_source_3_meaning => p_source_3_meaning
12637 , p_source_8 => p_source_8
12638 , p_source_10 => p_source_10
12639 , p_source_10_meaning => p_source_10_meaning
12640          , x_transaction_coa_id       => l_adr_transaction_coa_id
12641          , x_accounting_coa_id        => l_adr_accounting_coa_id
12642          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12643          , x_flex_value_set_id        => l_adr_flex_value_set_id
12644          , x_value_type_code          => l_adr_value_type_code
12645          , x_value_combination_id     => l_adr_value_combination_id
12646          , x_value_segment_code       => l_adr_value_segment_code
12647          , p_side                     => 'CREDIT'
12648          , p_override_seg_flag        => 'Y'
12649    );
12650 
12651    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12652 
12653       xla_ae_lines_pkg.set_segment(
12654           p_to_segment_code         => 'GL_ACCOUNT'
12655         , p_segment_value           => l_segment
12656         , p_from_segment_code       => l_adr_value_segment_code
12657         , p_from_combination_id     => l_adr_value_combination_id
12658         , p_value_type_code         => l_adr_value_type_code
12659         , p_transaction_coa_id      => l_adr_transaction_coa_id
12660         , p_accounting_coa_id       => l_adr_accounting_coa_id
12661         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12662         , p_flex_value_set_id       => l_adr_flex_value_set_id
12663         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
12664         , p_adr_type_code           => 'S'
12665         , p_component_type          => l_component_type
12666         , p_component_code          => l_component_code
12667         , p_component_type_code     => l_component_type_code
12668         , p_component_appl_id       => l_component_appl_id
12669         , p_amb_context_code        => l_amb_context_code
12670         , p_entity_code             => 'AP_INVOICES'
12671         , p_event_class_code        => 'PREPAYMENTS'
12672         , p_side                    => 'CREDIT'
12673         );
12674 
12675   END IF;
12676 
12677    l_segment := AcctDerRule_9(
12678            p_application_id           => p_application_id
12679          , p_ae_header_id             => l_ae_header_id 
12680 , p_source_3 => p_source_3
12681 , p_source_3_meaning => p_source_3_meaning
12682 , p_source_10 => p_source_10
12683 , p_source_10_meaning => p_source_10_meaning
12684 , p_source_11 => p_source_11
12685          , x_transaction_coa_id       => l_adr_transaction_coa_id
12686          , x_accounting_coa_id        => l_adr_accounting_coa_id
12687          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12688          , x_flex_value_set_id        => l_adr_flex_value_set_id
12689          , x_value_type_code          => l_adr_value_type_code
12690          , x_value_combination_id     => l_adr_value_combination_id
12691          , x_value_segment_code       => l_adr_value_segment_code
12692          , p_side                     => 'DEBIT'
12693          , p_override_seg_flag        => 'Y'
12694    );
12695 
12696    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12697 
12698       xla_ae_lines_pkg.set_segment(
12699           p_to_segment_code         => 'GL_ACCOUNT'
12700         , p_segment_value           => l_segment
12701         , p_from_segment_code       => l_adr_value_segment_code
12702         , p_from_combination_id     => l_adr_value_combination_id
12703         , p_value_type_code         => l_adr_value_type_code
12704         , p_transaction_coa_id      => l_adr_transaction_coa_id
12705         , p_accounting_coa_id       => l_adr_accounting_coa_id
12706         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12707         , p_flex_value_set_id       => l_adr_flex_value_set_id
12708         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
12709         , p_adr_type_code           => 'S'
12710         , p_component_type          => l_component_type
12711         , p_component_code          => l_component_code
12712         , p_component_type_code     => l_component_type_code
12713         , p_component_appl_id       => l_component_appl_id
12717         , p_side                    => 'DEBIT'
12714         , p_amb_context_code        => l_amb_context_code
12715         , p_entity_code             => 'AP_INVOICES'
12716         , p_event_class_code        => 'PREPAYMENTS'
12718         );
12719 
12720   END IF;
12721 
12722    l_segment := AcctDerRule_22(
12723            p_application_id           => p_application_id
12724          , p_ae_header_id             => l_ae_header_id 
12725 , p_source_3 => p_source_3
12726 , p_source_3_meaning => p_source_3_meaning
12727 , p_source_10 => p_source_10
12728 , p_source_10_meaning => p_source_10_meaning
12729 , p_source_18 => p_source_18
12730          , x_transaction_coa_id       => l_adr_transaction_coa_id
12731          , x_accounting_coa_id        => l_adr_accounting_coa_id
12732          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12733          , x_flex_value_set_id        => l_adr_flex_value_set_id
12734          , x_value_type_code          => l_adr_value_type_code
12735          , x_value_combination_id     => l_adr_value_combination_id
12736          , x_value_segment_code       => l_adr_value_segment_code
12737          , p_side                     => 'ALL'
12738          , p_override_seg_flag        => 'Y'
12739    );
12740 
12741    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12742 
12743       xla_ae_lines_pkg.set_segment(
12744           p_to_segment_code         => 'GL_BALANCING'
12745         , p_segment_value           => l_segment
12746         , p_from_segment_code       => l_adr_value_segment_code
12747         , p_from_combination_id     => l_adr_value_combination_id
12748         , p_value_type_code         => l_adr_value_type_code
12749         , p_transaction_coa_id      => l_adr_transaction_coa_id
12750         , p_accounting_coa_id       => l_adr_accounting_coa_id
12751         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12752         , p_flex_value_set_id       => l_adr_flex_value_set_id
12753         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
12754         , p_adr_type_code           => 'S'
12755         , p_component_type          => l_component_type
12756         , p_component_code          => l_component_code
12757         , p_component_type_code     => l_component_type_code
12758         , p_component_appl_id       => l_component_appl_id
12759         , p_amb_context_code        => l_amb_context_code
12760         , p_entity_code             => 'AP_INVOICES'
12761         , p_event_class_code        => 'PREPAYMENTS'
12762         , p_side                    => 'ALL'
12763         );
12764 
12765   END IF;
12766 
12767    --
12768    --
12769    END IF;
12770    --
12771    -- Bug 4922099
12772    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12773           (NVL(l_enc_upg_option, 'N') = 'O')
12774         ) AND
12775         (l_bflow_method_code = 'PRIOR_ENTRY')
12776       )
12777    THEN
12778       IF
12779       --
12780       1 = 2
12781       --
12782       THEN
12783       xla_accounting_err_pkg.build_message
12784                                     (p_appli_s_name            => 'XLA'
12785                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12786                                     ,p_token_1                 => 'LINE_NUMBER'
12787                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
12788                                     ,p_token_2                 => 'LINE_TYPE_NAME'
12789                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
12790                                                                              l_component_type
12791                                                                             ,l_component_code
12792                                                                             ,l_component_type_code
12793                                                                             ,l_component_appl_id
12794                                                                             ,l_amb_context_code
12795                                                                             ,l_entity_code
12796                                                                             ,l_event_class_code
12797                                                                            )
12798                                     ,p_token_3                 => 'OWNER'
12799                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
12800                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
12801                                                                           ,p_lookup_code    => l_component_type_code
12802                                                                          )
12803                                     ,p_token_4                 => 'PRODUCT_NAME'
12804                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12805                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12806                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12807                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12808                                     ,p_ae_header_id            =>  NULL
12809                                        );
12810 
12811         IF (C_LEVEL_ERROR>= g_log_level) THEN
12812                  trace
12813                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12814                       ,p_level    => C_LEVEL_ERROR
12815                       ,p_module   => l_log_module);
12816         END IF;
12817       END IF;
12818    END IF;
12819    --
12823    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12820    --
12821    ------------------------------------------------------------------------------------------------
12822    -- 4219869 Business Flow
12824    -- Prior Entry.  Currently, the following code is always generated.
12825    ------------------------------------------------------------------------------------------------
12826    XLA_AE_LINES_PKG.ValidateCurrentLine;
12827 
12828    ------------------------------------------------------------------------------------
12829    -- 4219869 Business Flow
12830    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12831    ------------------------------------------------------------------------------------
12832    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12833 
12834    ----------------------------------------------------------------------------------
12835    -- 4219869 Business Flow
12836    -- Update journal entry status -- Need to generate this within IF <condition>
12837    ----------------------------------------------------------------------------------
12838    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12839          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12840          ,p_balance_type_code => l_balance_type_code
12841          );
12842 
12843    -------------------------------------------------------------------------------------------
12844    -- 4262811 - Generate the Accrual Reversal lines
12845    -------------------------------------------------------------------------------------------
12846    BEGIN
12847       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12848                               (g_array_event(p_event_id).array_value_num('header_index'));
12849       IF l_acc_rev_flag IS NULL THEN
12850          l_acc_rev_flag := 'N';
12851       END IF;
12852    EXCEPTION
12853       WHEN OTHERS THEN
12854          l_acc_rev_flag := 'N';
12855    END;
12856    --
12857    IF (l_acc_rev_flag = 'Y') THEN
12858 
12859        -- 4645092  ------------------------------------------------------------------------------
12860        -- To allow MPA report to determine if it should generate report process
12861        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12862        ------------------------------------------------------------------------------------------
12863 
12864        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12865        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12866    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
12867    -- call ADRs
12868    -- Bug 4922099
12869    --
12870    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12871         (NVL(l_actual_upg_option, 'N') = 'O') OR
12872         (NVL(l_enc_upg_option, 'N') = 'O')
12873       )
12874    THEN
12875    NULL;
12876    --
12877    --
12878    
12879   l_ccid := AcctDerRule_29(
12880            p_application_id           => p_application_id
12881          , p_ae_header_id             => l_ae_header_id 
12882 , p_source_3 => p_source_3
12883 , p_source_3_meaning => p_source_3_meaning
12884 , p_source_8 => p_source_8
12885 , p_source_9 => p_source_9
12886 , p_source_10 => p_source_10
12887 , p_source_10_meaning => p_source_10_meaning
12888 , p_source_11 => p_source_11
12889 , p_source_18 => p_source_18
12890 , p_source_35 => p_source_35
12891 , p_source_35_meaning => p_source_35_meaning
12892          , x_transaction_coa_id       => l_adr_transaction_coa_id
12893          , x_accounting_coa_id        => l_adr_accounting_coa_id
12894          , x_value_type_code          => l_adr_value_type_code
12895          , p_side                     => 'ALL'
12896    );
12897 
12898    xla_ae_lines_pkg.set_ccid(
12899     p_code_combination_id          => l_ccid
12900   , p_value_type_code              => l_adr_value_type_code
12901   , p_transaction_coa_id           => l_adr_transaction_coa_id
12902   , p_accounting_coa_id            => l_adr_accounting_coa_id
12903   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
12904   , p_adr_type_code                => 'S'
12905   , p_component_type               => l_component_type
12906   , p_component_code               => l_component_code
12907   , p_component_type_code          => l_component_type_code
12908   , p_component_appl_id            => l_component_appl_id
12909   , p_amb_context_code             => l_amb_context_code
12910   , p_side                         => 'ALL'
12911   );
12912 
12913 
12914    l_segment := AcctDerRule_8(
12915            p_application_id           => p_application_id
12916          , p_ae_header_id             => l_ae_header_id 
12917 , p_source_3 => p_source_3
12918 , p_source_3_meaning => p_source_3_meaning
12919 , p_source_8 => p_source_8
12920 , p_source_10 => p_source_10
12921 , p_source_10_meaning => p_source_10_meaning
12922          , x_transaction_coa_id       => l_adr_transaction_coa_id
12923          , x_accounting_coa_id        => l_adr_accounting_coa_id
12924          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12925          , x_flex_value_set_id        => l_adr_flex_value_set_id
12926          , x_value_type_code          => l_adr_value_type_code
12927          , x_value_combination_id     => l_adr_value_combination_id
12928          , x_value_segment_code       => l_adr_value_segment_code
12929          , p_side                     => 'CREDIT'
12930          , p_override_seg_flag        => 'Y'
12931    );
12932 
12933    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12934 
12935       xla_ae_lines_pkg.set_segment(
12936           p_to_segment_code         => 'GL_ACCOUNT'
12940         , p_value_type_code         => l_adr_value_type_code
12937         , p_segment_value           => l_segment
12938         , p_from_segment_code       => l_adr_value_segment_code
12939         , p_from_combination_id     => l_adr_value_combination_id
12941         , p_transaction_coa_id      => l_adr_transaction_coa_id
12942         , p_accounting_coa_id       => l_adr_accounting_coa_id
12943         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12944         , p_flex_value_set_id       => l_adr_flex_value_set_id
12945         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
12946         , p_adr_type_code           => 'S'
12947         , p_component_type          => l_component_type
12948         , p_component_code          => l_component_code
12949         , p_component_type_code     => l_component_type_code
12950         , p_component_appl_id       => l_component_appl_id
12951         , p_amb_context_code        => l_amb_context_code
12952         , p_entity_code             => 'AP_INVOICES'
12953         , p_event_class_code        => 'PREPAYMENTS'
12954         , p_side                    => 'CREDIT'
12955         );
12956 
12957   END IF;
12958 
12959    l_segment := AcctDerRule_9(
12960            p_application_id           => p_application_id
12961          , p_ae_header_id             => l_ae_header_id 
12962 , p_source_3 => p_source_3
12963 , p_source_3_meaning => p_source_3_meaning
12964 , p_source_10 => p_source_10
12965 , p_source_10_meaning => p_source_10_meaning
12966 , p_source_11 => p_source_11
12967          , x_transaction_coa_id       => l_adr_transaction_coa_id
12968          , x_accounting_coa_id        => l_adr_accounting_coa_id
12969          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12970          , x_flex_value_set_id        => l_adr_flex_value_set_id
12971          , x_value_type_code          => l_adr_value_type_code
12972          , x_value_combination_id     => l_adr_value_combination_id
12973          , x_value_segment_code       => l_adr_value_segment_code
12974          , p_side                     => 'DEBIT'
12975          , p_override_seg_flag        => 'Y'
12976    );
12977 
12978    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12979 
12980       xla_ae_lines_pkg.set_segment(
12981           p_to_segment_code         => 'GL_ACCOUNT'
12982         , p_segment_value           => l_segment
12983         , p_from_segment_code       => l_adr_value_segment_code
12984         , p_from_combination_id     => l_adr_value_combination_id
12985         , p_value_type_code         => l_adr_value_type_code
12986         , p_transaction_coa_id      => l_adr_transaction_coa_id
12987         , p_accounting_coa_id       => l_adr_accounting_coa_id
12988         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12989         , p_flex_value_set_id       => l_adr_flex_value_set_id
12990         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
12991         , p_adr_type_code           => 'S'
12992         , p_component_type          => l_component_type
12993         , p_component_code          => l_component_code
12994         , p_component_type_code     => l_component_type_code
12995         , p_component_appl_id       => l_component_appl_id
12996         , p_amb_context_code        => l_amb_context_code
12997         , p_entity_code             => 'AP_INVOICES'
12998         , p_event_class_code        => 'PREPAYMENTS'
12999         , p_side                    => 'DEBIT'
13000         );
13001 
13002   END IF;
13003 
13004    l_segment := AcctDerRule_22(
13005            p_application_id           => p_application_id
13006          , p_ae_header_id             => l_ae_header_id 
13007 , p_source_3 => p_source_3
13008 , p_source_3_meaning => p_source_3_meaning
13009 , p_source_10 => p_source_10
13010 , p_source_10_meaning => p_source_10_meaning
13011 , p_source_18 => p_source_18
13012          , x_transaction_coa_id       => l_adr_transaction_coa_id
13013          , x_accounting_coa_id        => l_adr_accounting_coa_id
13014          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13015          , x_flex_value_set_id        => l_adr_flex_value_set_id
13016          , x_value_type_code          => l_adr_value_type_code
13017          , x_value_combination_id     => l_adr_value_combination_id
13018          , x_value_segment_code       => l_adr_value_segment_code
13019          , p_side                     => 'ALL'
13020          , p_override_seg_flag        => 'Y'
13021    );
13022 
13023    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13024 
13025       xla_ae_lines_pkg.set_segment(
13026           p_to_segment_code         => 'GL_BALANCING'
13027         , p_segment_value           => l_segment
13028         , p_from_segment_code       => l_adr_value_segment_code
13029         , p_from_combination_id     => l_adr_value_combination_id
13030         , p_value_type_code         => l_adr_value_type_code
13031         , p_transaction_coa_id      => l_adr_transaction_coa_id
13032         , p_accounting_coa_id       => l_adr_accounting_coa_id
13033         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13034         , p_flex_value_set_id       => l_adr_flex_value_set_id
13035         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
13036         , p_adr_type_code           => 'S'
13037         , p_component_type          => l_component_type
13038         , p_component_code          => l_component_code
13039         , p_component_type_code     => l_component_type_code
13040         , p_component_appl_id       => l_component_appl_id
13041         , p_amb_context_code        => l_amb_context_code
13042         , p_entity_code             => 'AP_INVOICES'
13043         , p_event_class_code        => 'PREPAYMENTS'
13044         , p_side                    => 'ALL'
13048 
13045         );
13046 
13047   END IF;
13049    --
13050    --
13051    END IF;
13052 
13053        --
13054        -- Update the line information that should be overwritten
13055        --
13056        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13057                                          p_header_num   => 1);
13058        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
13059 
13060        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13061 
13062        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
13063           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13064        END IF;
13065 
13066       --
13067       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13068       --
13069       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13070           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
13071       ELSE
13072           ---------------------------------------------------------------------------------------------------
13073           -- 4262811a Switch Sign
13074           ---------------------------------------------------------------------------------------------------
13075           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
13076           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13077                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13078           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13079                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13080           -- 5132302
13081           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13082                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13083 
13084       END IF;
13085 
13086       -- 4955764
13087       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13088       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13089 
13090 
13091       XLA_AE_LINES_PKG.ValidateCurrentLine;
13092       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13093 
13094       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13095                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13096                ,p_balance_type_code => l_balance_type_code);
13097 
13098    END IF;
13099 
13100    -----------------------------------------------------------------------------------------
13101    -- 4262811 Multiperiod Accounting
13102    -----------------------------------------------------------------------------------------
13103      -- No MPA option is assigned.
13104 
13105 
13106 END IF;
13107 END IF;
13108 --
13109 
13110 --
13111 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13112    trace
13113       (p_msg      => 'END of AcctLineType_54'
13114       ,p_level    => C_LEVEL_PROCEDURE
13115       ,p_module   => l_log_module);
13116 END IF;
13117 --
13118 EXCEPTION
13119   WHEN xla_exceptions_pkg.application_exception THEN
13120       RAISE;
13121   WHEN OTHERS THEN
13122        xla_exceptions_pkg.raise_message
13123            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_54');
13124 END AcctLineType_54;
13125 --
13126 
13127 ---------------------------------------
13128 --
13129 -- PRIVATE FUNCTION
13130 --         AcctLineType_55
13131 --
13132 ---------------------------------------
13133 PROCEDURE AcctLineType_55 (
13134   p_application_id        IN NUMBER
13135  ,p_event_id              IN NUMBER
13136  ,p_calculate_acctd_flag  IN VARCHAR2
13137  ,p_calculate_g_l_flag    IN VARCHAR2
13138  ,p_actual_flag           IN OUT VARCHAR2
13139  ,p_balance_type_code     OUT VARCHAR2
13140  ,p_gain_or_loss_ref      OUT VARCHAR2
13141  
13142 --Invoice Distribution Description
13143  , p_source_1            IN VARCHAR2
13144 --Automatic Offsets Value
13145  , p_source_3            IN VARCHAR2
13146  , p_source_3_meaning    IN VARCHAR2
13147 --Purchase Order Rate Variance Gain Account
13148  , p_source_8            IN NUMBER
13149 --Invoice Distribution Ledger Amount
13150  , p_source_9            IN NUMBER
13151 --Destination Type of the PO Distribution
13152  , p_source_10            IN VARCHAR2
13153  , p_source_10_meaning    IN VARCHAR2
13154 --Purchase Order Rate Variance Loss Account
13155  , p_source_11            IN NUMBER
13156 --Invoice Distribution Account
13157  , p_source_18            IN NUMBER
13158 --Invoice Distribution Type
13159  , p_source_21            IN VARCHAR2
13160  , p_source_21_meaning    IN VARCHAR2
13161 --Automatic Offsets Flag
13162  , p_source_35            IN VARCHAR2
13163  , p_source_35_meaning    IN VARCHAR2
13164 --Accounting Reversal Indicator
13165  , p_source_41            IN VARCHAR2
13166 --Distribution Link Type
13167  , p_source_43            IN VARCHAR2
13168 --Allocation to Main Distribution Identifier
13169  , p_source_45            IN NUMBER
13170 --Invoice Identifier
13171  , p_source_46            IN NUMBER
13172 --Invoice Distribution Identifier
13173  , p_source_52            IN NUMBER
13177  , p_source_54            IN NUMBER
13174 --Payables Encumbrance Upgrade Credit Account
13175  , p_source_53            IN NUMBER
13176 --Payables Encumbrance Upgrade Credit Amount
13178 --Invoice Currency Code
13179  , p_source_55            IN VARCHAR2
13180 --Payables Encumbrance Upgrade Credit Base Amount
13181  , p_source_56            IN NUMBER
13182 --Payables Encumbrance Upgrade Debit Account
13183  , p_source_57            IN NUMBER
13184 --Payables Encumbrance Upgrade Debit Amount
13185  , p_source_58            IN NUMBER
13186 --Payables Encumbrance Upgrade Debit Base Amount
13187  , p_source_59            IN NUMBER
13188 --Payables Encumbrance Upgrade Option
13189  , p_source_60            IN VARCHAR2
13190 --Deferred Accounting End Date
13191  , p_source_65            IN DATE
13192 --Deferred Accounting Option
13193  , p_source_66            IN VARCHAR2
13194 --Deferred Accounting Start Date
13195  , p_source_67            IN DATE
13196 --Override Accounted Amount Indicator
13197  , p_source_68            IN VARCHAR2
13198  , p_source_68_meaning    IN VARCHAR2
13199 --Invoice Supplier Identifier
13200  , p_source_69            IN NUMBER
13201 --Invoice Supplier Site Identifier
13202  , p_source_70            IN NUMBER
13203 --Third Party Type
13204  , p_source_71            IN VARCHAR2
13205 --Parent Reversal Identifier
13206  , p_source_72            IN NUMBER
13207 --Invoice Distribution Statistical Amount
13208  , p_source_73            IN NUMBER
13209 --Invoice Distribution Tax Line Identifier
13210  , p_source_74            IN NUMBER
13211 --Invoice Distribution Tax Distribution Identifier from Tax
13212  , p_source_75            IN NUMBER
13213 --Invoice Distribution Summary Tax Line Identifier
13214  , p_source_76            IN NUMBER
13215 --Payables Upgrade Credit Encumbrance Type Identifier
13216  , p_source_77            IN NUMBER
13217 --Payables Upgrade Debit Encumbrance Type Identifier
13218  , p_source_78            IN NUMBER
13219 --Business Flow Accounts Payable Application Identifier
13220  , p_source_79            IN NUMBER
13221 --Business Flow Invoice Distribution Type
13222  , p_source_80            IN VARCHAR2
13223 --Business Flow Invoice Entity Code
13224  , p_source_81            IN VARCHAR2
13225 --Business Flow Invoice Distribution Identifier
13226  , p_source_82            IN NUMBER
13227 --Business Flow Invoice Identifier
13228  , p_source_83            IN NUMBER
13229 --Accrue on Receipt Option
13230  , p_source_84            IN VARCHAR2
13231  , p_source_84_meaning    IN VARCHAR2
13232 )
13233 IS
13234 
13235 l_component_type              VARCHAR2(80);
13236 l_component_code              VARCHAR2(30);
13237 l_component_type_code         VARCHAR2(1);
13238 l_component_appl_id           INTEGER;
13239 l_amb_context_code            VARCHAR2(30);
13240 l_entity_code                 VARCHAR2(30);
13241 l_event_class_code            VARCHAR2(30);
13242 l_ae_header_id                NUMBER;
13243 l_event_type_code             VARCHAR2(30);
13244 l_line_definition_code        VARCHAR2(30);
13245 l_line_definition_owner_code  VARCHAR2(1);
13246 --
13247 -- adr variables
13248 l_segment                     VARCHAR2(30);
13249 l_ccid                        NUMBER;
13250 l_adr_transaction_coa_id      NUMBER;
13251 l_adr_accounting_coa_id       NUMBER;
13252 l_adr_flexfield_segment_code  VARCHAR2(30);
13253 l_adr_flex_value_set_id       NUMBER;
13254 l_adr_value_type_code         VARCHAR2(30);
13255 l_adr_value_combination_id    NUMBER;
13256 l_adr_value_segment_code      VARCHAR2(30);
13257 
13258 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
13259 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
13260 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
13261 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
13262 
13263 -- 4262811 Variables ------------------------------------------------------------------------------------------
13264 l_entered_amt_idx             NUMBER;
13265 l_accted_amt_idx              NUMBER;
13266 l_acc_rev_flag                VARCHAR2(1);
13267 l_accrual_line_num            NUMBER;
13268 l_tmp_amt                     NUMBER;
13269 l_acc_rev_natural_side_code   VARCHAR2(1);
13270 
13271 l_num_entries                 NUMBER;
13272 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
13273 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
13274 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
13275 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
13276 l_recog_line_1                NUMBER;
13277 l_recog_line_2                NUMBER;
13278 
13279 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
13280 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
13281 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
13282 
13283 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13284 
13285 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
13286 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
13287 
13288 ---------------------------------------------------------------------------------------------------------------
13289 
13290 
13291 --
13292 -- bulk performance
13293 --
13294 l_balance_type_code           VARCHAR2(1);
13295 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
13296 l_log_module                  VARCHAR2(240);
13297 
13301 l_actual_upg_option           VARCHAR2(1);
13298 --
13299 -- Upgrade strategy
13300 --
13302 l_enc_upg_option           VARCHAR2(1);
13303 
13304 --
13305 BEGIN
13306 --
13307 IF g_log_enabled THEN
13308       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_55';
13309 END IF;
13310 --
13311 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13312 
13313       trace
13314          (p_msg      => 'BEGIN of AcctLineType_55'
13315          ,p_level    => C_LEVEL_PROCEDURE
13316          ,p_module   => l_log_module);
13317 
13318 END IF;
13319 --
13320 l_component_type             := 'AMB_JLT';
13321 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_CM';
13322 l_component_type_code        := 'S';
13323 l_component_appl_id          :=  200;
13324 l_amb_context_code           := 'DEFAULT';
13325 l_entity_code                := 'AP_INVOICES';
13326 l_event_class_code           := 'CREDIT MEMOS';
13327 l_event_type_code            := 'CREDIT MEMOS_ALL';
13328 l_line_definition_owner_code := 'S';
13329 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
13330 --
13331 l_balance_type_code          := 'A';
13332 l_segment                     := NULL;
13333 l_ccid                        := NULL;
13334 l_adr_transaction_coa_id      := NULL;
13335 l_adr_accounting_coa_id       := NULL;
13336 l_adr_flexfield_segment_code  := NULL;
13337 l_adr_flex_value_set_id       := NULL;
13338 l_adr_value_type_code         := NULL;
13339 l_adr_value_combination_id    := NULL;
13340 l_adr_value_segment_code      := NULL;
13341 
13342 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
13343 l_bflow_class_code           := '';    -- 4219869 Business Flow
13344 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
13345 l_budgetary_control_flag     := 'N';
13346 
13347 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
13348 l_bflow_applied_to_amt       := NULL; -- 5132302
13349 l_entered_amt_idx            := NULL;          -- 4262811
13350 l_accted_amt_idx             := NULL;          -- 4262811
13351 l_acc_rev_flag               := NULL;          -- 4262811
13352 l_accrual_line_num           := NULL;          -- 4262811
13353 l_tmp_amt                    := NULL;          -- 4262811
13354 --
13355 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
13356             (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
13357                return;
13358   END IF;
13359   
13360 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13361     l_balance_type_code <> 'B' THEN
13362 IF NVL(p_source_21,'
13363 ') =  'NONREC_TAX' AND 
13364 NVL(p_source_84,'
13365 ') =  'Y'
13366  THEN 
13367 
13368    --
13369    XLA_AE_LINES_PKG.SetNewLine;
13370 
13371    p_balance_type_code          := l_balance_type_code;
13372    -- set the flag so later we will know whether the gain loss line needs to be created
13373    
13374    IF(l_balance_type_code = 'A' ) THEN
13375      p_actual_flag :='G';
13376    END IF;
13377 
13378    --
13379    -- bulk performance
13380    --
13381    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13382                                       p_header_num   => 0); -- 4262811
13383    --
13384    -- set accounting line options
13385    --
13386    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13387            p_natural_side_code          => 'G'
13388          , p_gain_or_loss_flag          => 'N'
13389          , p_gl_transfer_mode_code      => 'S'
13390          , p_acct_entry_type_code       => 'A'
13391          , p_switch_side_flag           => ''
13392          , p_merge_duplicate_code       => 'A'
13393          );
13394    --
13395    l_acc_rev_natural_side_code := 'C';  -- 4262811
13396    -- 
13397    --
13398    -- set accounting line type info
13399    --
13400    xla_ae_lines_pkg.SetAcctLineType
13401       (p_component_type             => l_component_type
13402       ,p_event_type_code            => l_event_type_code
13403       ,p_line_definition_owner_code => l_line_definition_owner_code
13404       ,p_line_definition_code       => l_line_definition_code
13405       ,p_accounting_line_code       => l_component_code
13406       ,p_accounting_line_type_code  => l_component_type_code
13407       ,p_accounting_line_appl_id    => l_component_appl_id
13408       ,p_amb_context_code           => l_amb_context_code
13409       ,p_entity_code                => l_entity_code
13410       ,p_event_class_code           => l_event_class_code);
13411    --
13412    -- set accounting class
13413    --
13414    xla_ae_lines_pkg.SetAcctClass(
13415            p_accounting_class_code  => 'TERV'
13416          , p_ae_header_id           => l_ae_header_id
13417          );
13418 
13419    --
13420    -- set rounding class
13421    --
13422    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13423                       'TERV';
13424 
13425    --
13426    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13427    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13428    --
13429    -- bulk performance
13430    --
13431    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13432 
13433    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13434       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13435 
13439 
13436    -- 4955764
13437    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13438       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13440    -- 4458381 Public Sector Enh
13441    
13442    --
13443    -- set accounting attributes for the line type
13444    --
13445    l_entered_amt_idx := NULL;
13446    l_accted_amt_idx  := 23;
13447    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
13448    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
13449    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
13450    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
13451    l_rec_acct_attrs.array_num_value(2)  := 
13452 xla_ae_sources_pkg.GetSystemSourceNum(
13453    p_source_code           => 'XLA_EVENT_APPL_ID'
13454  , p_source_type_code      => 'Y'
13455  , p_source_application_id =>  602
13456 );
13457    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
13458    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
13459    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
13460    l_rec_acct_attrs.array_char_value(4)  := 
13461 xla_ae_sources_pkg.GetSystemSourceChar(
13462    p_source_code           => 'XLA_ENTITY_CODE'
13463  , p_source_type_code      => 'Y'
13464  , p_source_application_id =>  602
13465 );
13466    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
13467    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
13468    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
13469    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
13470    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
13471    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
13472    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
13473    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
13474    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
13475    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
13476    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
13477    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
13478    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
13479    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
13480    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
13481    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
13482    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
13483    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
13484    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
13485    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
13486    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
13487    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
13488    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
13489    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
13490    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
13491    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
13492    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
13493    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
13494    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
13495    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
13496    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
13497    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
13498    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
13499    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
13500    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
13501    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
13502    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
13503    l_rec_acct_attrs.array_num_value(23)  := p_source_9;
13504    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
13505    l_rec_acct_attrs.array_date_value(24)  := p_source_65;
13506    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
13507    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
13508    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
13509    l_rec_acct_attrs.array_date_value(26)  := p_source_67;
13510    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
13511    l_rec_acct_attrs.array_char_value(27)  := p_source_68;
13512    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
13513    l_rec_acct_attrs.array_num_value(28)  := p_source_69;
13514    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
13515    l_rec_acct_attrs.array_num_value(29)  := p_source_70;
13516    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
13517    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
13518    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
13519    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
13520    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
13521    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
13522    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
13523    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
13524    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
13525    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
13526    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
13527    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
13528    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
13529    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
13530    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
13531    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
13535    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13532    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
13533    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
13534 
13536    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13537 
13538    ---------------------------------------------------------------------------------------------------------------
13539    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13540    ---------------------------------------------------------------------------------------------------------------
13541    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13542 
13543    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13544    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13545 
13546    IF xla_accounting_cache_pkg.GetValueChar
13547          (p_source_code         => 'LEDGER_CATEGORY_CODE'
13548          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13549    AND l_bflow_method_code = 'PRIOR_ENTRY'
13550 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13551    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13552          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13553        )
13554    THEN
13555          xla_ae_lines_pkg.BflowUpgEntry
13556            (p_business_method_code    => l_bflow_method_code
13557            ,p_business_class_code     => l_bflow_class_code
13558            ,p_balance_type            => l_balance_type_code);
13559    ELSE
13560       NULL;
13561 -- No business flow processing for business flow method of NONE.
13562    END IF;
13563 
13564    --
13565    -- call analytical criteria
13566    --
13567    
13568    --
13569    -- call description
13570    --
13571    
13572 xla_ae_lines_pkg.SetLineDescription(
13573    p_ae_header_id => l_ae_header_id
13574   ,p_description  => Description_2 (
13575      p_application_id         => p_application_id
13576    , p_ae_header_id           => l_ae_header_id 
13577 , p_source_1 => p_source_1
13578    )
13579 );
13580 
13581 
13582    --
13583    -- call ADRs
13584    -- Bug 4922099
13585    --
13586    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13587         (NVL(l_actual_upg_option, 'N') = 'O') OR
13588         (NVL(l_enc_upg_option, 'N') = 'O')
13589       )
13590    THEN
13591    NULL;
13592    --
13593    --
13594    
13595   l_ccid := AcctDerRule_29(
13596            p_application_id           => p_application_id
13597          , p_ae_header_id             => l_ae_header_id 
13598 , p_source_3 => p_source_3
13599 , p_source_3_meaning => p_source_3_meaning
13600 , p_source_8 => p_source_8
13601 , p_source_9 => p_source_9
13602 , p_source_10 => p_source_10
13603 , p_source_10_meaning => p_source_10_meaning
13604 , p_source_11 => p_source_11
13605 , p_source_18 => p_source_18
13606 , p_source_35 => p_source_35
13607 , p_source_35_meaning => p_source_35_meaning
13608          , x_transaction_coa_id       => l_adr_transaction_coa_id
13609          , x_accounting_coa_id        => l_adr_accounting_coa_id
13610          , x_value_type_code          => l_adr_value_type_code
13611          , p_side                     => 'ALL'
13612    );
13613 
13614    xla_ae_lines_pkg.set_ccid(
13615     p_code_combination_id          => l_ccid
13616   , p_value_type_code              => l_adr_value_type_code
13617   , p_transaction_coa_id           => l_adr_transaction_coa_id
13618   , p_accounting_coa_id            => l_adr_accounting_coa_id
13619   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
13620   , p_adr_type_code                => 'S'
13621   , p_component_type               => l_component_type
13622   , p_component_code               => l_component_code
13623   , p_component_type_code          => l_component_type_code
13624   , p_component_appl_id            => l_component_appl_id
13625   , p_amb_context_code             => l_amb_context_code
13626   , p_side                         => 'ALL'
13627   );
13628 
13629 
13630    l_segment := AcctDerRule_8(
13631            p_application_id           => p_application_id
13632          , p_ae_header_id             => l_ae_header_id 
13633 , p_source_3 => p_source_3
13634 , p_source_3_meaning => p_source_3_meaning
13635 , p_source_8 => p_source_8
13636 , p_source_10 => p_source_10
13637 , p_source_10_meaning => p_source_10_meaning
13638          , x_transaction_coa_id       => l_adr_transaction_coa_id
13639          , x_accounting_coa_id        => l_adr_accounting_coa_id
13640          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13641          , x_flex_value_set_id        => l_adr_flex_value_set_id
13642          , x_value_type_code          => l_adr_value_type_code
13643          , x_value_combination_id     => l_adr_value_combination_id
13644          , x_value_segment_code       => l_adr_value_segment_code
13645          , p_side                     => 'DEBIT'
13646          , p_override_seg_flag        => 'Y'
13647    );
13648 
13649    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13650 
13651       xla_ae_lines_pkg.set_segment(
13652           p_to_segment_code         => 'GL_ACCOUNT'
13653         , p_segment_value           => l_segment
13654         , p_from_segment_code       => l_adr_value_segment_code
13655         , p_from_combination_id     => l_adr_value_combination_id
13656         , p_value_type_code         => l_adr_value_type_code
13657         , p_transaction_coa_id      => l_adr_transaction_coa_id
13661         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
13658         , p_accounting_coa_id       => l_adr_accounting_coa_id
13659         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13660         , p_flex_value_set_id       => l_adr_flex_value_set_id
13662         , p_adr_type_code           => 'S'
13663         , p_component_type          => l_component_type
13664         , p_component_code          => l_component_code
13665         , p_component_type_code     => l_component_type_code
13666         , p_component_appl_id       => l_component_appl_id
13667         , p_amb_context_code        => l_amb_context_code
13668         , p_entity_code             => 'AP_INVOICES'
13669         , p_event_class_code        => 'CREDIT MEMOS'
13670         , p_side                    => 'DEBIT'
13671         );
13672 
13673   END IF;
13674 
13675    l_segment := AcctDerRule_9(
13676            p_application_id           => p_application_id
13677          , p_ae_header_id             => l_ae_header_id 
13678 , p_source_3 => p_source_3
13679 , p_source_3_meaning => p_source_3_meaning
13680 , p_source_10 => p_source_10
13681 , p_source_10_meaning => p_source_10_meaning
13682 , p_source_11 => p_source_11
13683          , x_transaction_coa_id       => l_adr_transaction_coa_id
13684          , x_accounting_coa_id        => l_adr_accounting_coa_id
13685          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13686          , x_flex_value_set_id        => l_adr_flex_value_set_id
13687          , x_value_type_code          => l_adr_value_type_code
13688          , x_value_combination_id     => l_adr_value_combination_id
13689          , x_value_segment_code       => l_adr_value_segment_code
13690          , p_side                     => 'CREDIT'
13691          , p_override_seg_flag        => 'Y'
13692    );
13693 
13694    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13695 
13696       xla_ae_lines_pkg.set_segment(
13697           p_to_segment_code         => 'GL_ACCOUNT'
13698         , p_segment_value           => l_segment
13699         , p_from_segment_code       => l_adr_value_segment_code
13700         , p_from_combination_id     => l_adr_value_combination_id
13701         , p_value_type_code         => l_adr_value_type_code
13702         , p_transaction_coa_id      => l_adr_transaction_coa_id
13703         , p_accounting_coa_id       => l_adr_accounting_coa_id
13704         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13705         , p_flex_value_set_id       => l_adr_flex_value_set_id
13706         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
13707         , p_adr_type_code           => 'S'
13708         , p_component_type          => l_component_type
13709         , p_component_code          => l_component_code
13710         , p_component_type_code     => l_component_type_code
13711         , p_component_appl_id       => l_component_appl_id
13712         , p_amb_context_code        => l_amb_context_code
13713         , p_entity_code             => 'AP_INVOICES'
13714         , p_event_class_code        => 'CREDIT MEMOS'
13715         , p_side                    => 'CREDIT'
13716         );
13717 
13718   END IF;
13719 
13720    l_segment := AcctDerRule_22(
13721            p_application_id           => p_application_id
13722          , p_ae_header_id             => l_ae_header_id 
13723 , p_source_3 => p_source_3
13724 , p_source_3_meaning => p_source_3_meaning
13725 , p_source_10 => p_source_10
13726 , p_source_10_meaning => p_source_10_meaning
13727 , p_source_18 => p_source_18
13728          , x_transaction_coa_id       => l_adr_transaction_coa_id
13729          , x_accounting_coa_id        => l_adr_accounting_coa_id
13730          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13731          , x_flex_value_set_id        => l_adr_flex_value_set_id
13732          , x_value_type_code          => l_adr_value_type_code
13733          , x_value_combination_id     => l_adr_value_combination_id
13734          , x_value_segment_code       => l_adr_value_segment_code
13735          , p_side                     => 'ALL'
13736          , p_override_seg_flag        => 'Y'
13737    );
13738 
13739    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13740 
13741       xla_ae_lines_pkg.set_segment(
13742           p_to_segment_code         => 'GL_BALANCING'
13743         , p_segment_value           => l_segment
13744         , p_from_segment_code       => l_adr_value_segment_code
13745         , p_from_combination_id     => l_adr_value_combination_id
13746         , p_value_type_code         => l_adr_value_type_code
13747         , p_transaction_coa_id      => l_adr_transaction_coa_id
13748         , p_accounting_coa_id       => l_adr_accounting_coa_id
13749         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13750         , p_flex_value_set_id       => l_adr_flex_value_set_id
13751         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
13752         , p_adr_type_code           => 'S'
13753         , p_component_type          => l_component_type
13754         , p_component_code          => l_component_code
13755         , p_component_type_code     => l_component_type_code
13756         , p_component_appl_id       => l_component_appl_id
13757         , p_amb_context_code        => l_amb_context_code
13758         , p_entity_code             => 'AP_INVOICES'
13759         , p_event_class_code        => 'CREDIT MEMOS'
13760         , p_side                    => 'ALL'
13761         );
13762 
13763   END IF;
13764 
13765    --
13766    --
13767    END IF;
13768    --
13769    -- Bug 4922099
13770    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13771           (NVL(l_enc_upg_option, 'N') = 'O')
13772         ) AND
13773         (l_bflow_method_code = 'PRIOR_ENTRY')
13774       )
13775    THEN
13776       IF
13780       THEN
13777       --
13778       1 = 2
13779       --
13781       xla_accounting_err_pkg.build_message
13782                                     (p_appli_s_name            => 'XLA'
13783                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13784                                     ,p_token_1                 => 'LINE_NUMBER'
13785                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
13786                                     ,p_token_2                 => 'LINE_TYPE_NAME'
13787                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
13788                                                                              l_component_type
13789                                                                             ,l_component_code
13790                                                                             ,l_component_type_code
13791                                                                             ,l_component_appl_id
13792                                                                             ,l_amb_context_code
13793                                                                             ,l_entity_code
13794                                                                             ,l_event_class_code
13795                                                                            )
13796                                     ,p_token_3                 => 'OWNER'
13797                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
13798                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
13799                                                                           ,p_lookup_code    => l_component_type_code
13800                                                                          )
13801                                     ,p_token_4                 => 'PRODUCT_NAME'
13802                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13803                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13804                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13805                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13806                                     ,p_ae_header_id            =>  NULL
13807                                        );
13808 
13809         IF (C_LEVEL_ERROR>= g_log_level) THEN
13810                  trace
13811                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13812                       ,p_level    => C_LEVEL_ERROR
13813                       ,p_module   => l_log_module);
13814         END IF;
13815       END IF;
13816    END IF;
13817    --
13818    --
13819    ------------------------------------------------------------------------------------------------
13820    -- 4219869 Business Flow
13821    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13822    -- Prior Entry.  Currently, the following code is always generated.
13823    ------------------------------------------------------------------------------------------------
13824    XLA_AE_LINES_PKG.ValidateCurrentLine;
13825 
13826    ------------------------------------------------------------------------------------
13827    -- 4219869 Business Flow
13828    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13829    ------------------------------------------------------------------------------------
13830    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13831 
13832    ----------------------------------------------------------------------------------
13833    -- 4219869 Business Flow
13834    -- Update journal entry status -- Need to generate this within IF <condition>
13835    ----------------------------------------------------------------------------------
13836    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13837          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13838          ,p_balance_type_code => l_balance_type_code
13839          );
13840 
13841    -------------------------------------------------------------------------------------------
13842    -- 4262811 - Generate the Accrual Reversal lines
13843    -------------------------------------------------------------------------------------------
13844    BEGIN
13845       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13846                               (g_array_event(p_event_id).array_value_num('header_index'));
13847       IF l_acc_rev_flag IS NULL THEN
13848          l_acc_rev_flag := 'N';
13849       END IF;
13850    EXCEPTION
13851       WHEN OTHERS THEN
13852          l_acc_rev_flag := 'N';
13853    END;
13854    --
13855    IF (l_acc_rev_flag = 'Y') THEN
13856 
13857        -- 4645092  ------------------------------------------------------------------------------
13858        -- To allow MPA report to determine if it should generate report process
13859        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13860        ------------------------------------------------------------------------------------------
13861 
13862        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13863        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13864    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
13865    -- call ADRs
13866    -- Bug 4922099
13867    --
13868    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13869         (NVL(l_actual_upg_option, 'N') = 'O') OR
13870         (NVL(l_enc_upg_option, 'N') = 'O')
13871       )
13872    THEN
13873    NULL;
13874    --
13875    --
13876    
13877   l_ccid := AcctDerRule_29(
13878            p_application_id           => p_application_id
13879          , p_ae_header_id             => l_ae_header_id 
13880 , p_source_3 => p_source_3
13881 , p_source_3_meaning => p_source_3_meaning
13882 , p_source_8 => p_source_8
13883 , p_source_9 => p_source_9
13884 , p_source_10 => p_source_10
13885 , p_source_10_meaning => p_source_10_meaning
13886 , p_source_11 => p_source_11
13887 , p_source_18 => p_source_18
13888 , p_source_35 => p_source_35
13889 , p_source_35_meaning => p_source_35_meaning
13890          , x_transaction_coa_id       => l_adr_transaction_coa_id
13891          , x_accounting_coa_id        => l_adr_accounting_coa_id
13892          , x_value_type_code          => l_adr_value_type_code
13893          , p_side                     => 'ALL'
13894    );
13895 
13896    xla_ae_lines_pkg.set_ccid(
13897     p_code_combination_id          => l_ccid
13898   , p_value_type_code              => l_adr_value_type_code
13899   , p_transaction_coa_id           => l_adr_transaction_coa_id
13900   , p_accounting_coa_id            => l_adr_accounting_coa_id
13901   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
13902   , p_adr_type_code                => 'S'
13903   , p_component_type               => l_component_type
13904   , p_component_code               => l_component_code
13905   , p_component_type_code          => l_component_type_code
13906   , p_component_appl_id            => l_component_appl_id
13907   , p_amb_context_code             => l_amb_context_code
13908   , p_side                         => 'ALL'
13909   );
13910 
13911 
13912    l_segment := AcctDerRule_8(
13913            p_application_id           => p_application_id
13914          , p_ae_header_id             => l_ae_header_id 
13915 , p_source_3 => p_source_3
13916 , p_source_3_meaning => p_source_3_meaning
13917 , p_source_8 => p_source_8
13918 , p_source_10 => p_source_10
13919 , p_source_10_meaning => p_source_10_meaning
13920          , x_transaction_coa_id       => l_adr_transaction_coa_id
13921          , x_accounting_coa_id        => l_adr_accounting_coa_id
13922          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13923          , x_flex_value_set_id        => l_adr_flex_value_set_id
13924          , x_value_type_code          => l_adr_value_type_code
13925          , x_value_combination_id     => l_adr_value_combination_id
13926          , x_value_segment_code       => l_adr_value_segment_code
13927          , p_side                     => 'DEBIT'
13928          , p_override_seg_flag        => 'Y'
13929    );
13930 
13931    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13932 
13933       xla_ae_lines_pkg.set_segment(
13934           p_to_segment_code         => 'GL_ACCOUNT'
13935         , p_segment_value           => l_segment
13936         , p_from_segment_code       => l_adr_value_segment_code
13937         , p_from_combination_id     => l_adr_value_combination_id
13938         , p_value_type_code         => l_adr_value_type_code
13939         , p_transaction_coa_id      => l_adr_transaction_coa_id
13940         , p_accounting_coa_id       => l_adr_accounting_coa_id
13941         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13942         , p_flex_value_set_id       => l_adr_flex_value_set_id
13943         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
13944         , p_adr_type_code           => 'S'
13945         , p_component_type          => l_component_type
13946         , p_component_code          => l_component_code
13947         , p_component_type_code     => l_component_type_code
13948         , p_component_appl_id       => l_component_appl_id
13949         , p_amb_context_code        => l_amb_context_code
13950         , p_entity_code             => 'AP_INVOICES'
13951         , p_event_class_code        => 'CREDIT MEMOS'
13952         , p_side                    => 'DEBIT'
13953         );
13954 
13955   END IF;
13956 
13957    l_segment := AcctDerRule_9(
13961 , p_source_3_meaning => p_source_3_meaning
13958            p_application_id           => p_application_id
13959          , p_ae_header_id             => l_ae_header_id 
13960 , p_source_3 => p_source_3
13962 , p_source_10 => p_source_10
13963 , p_source_10_meaning => p_source_10_meaning
13964 , p_source_11 => p_source_11
13965          , x_transaction_coa_id       => l_adr_transaction_coa_id
13966          , x_accounting_coa_id        => l_adr_accounting_coa_id
13967          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13968          , x_flex_value_set_id        => l_adr_flex_value_set_id
13969          , x_value_type_code          => l_adr_value_type_code
13970          , x_value_combination_id     => l_adr_value_combination_id
13971          , x_value_segment_code       => l_adr_value_segment_code
13972          , p_side                     => 'CREDIT'
13973          , p_override_seg_flag        => 'Y'
13974    );
13975 
13976    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13977 
13978       xla_ae_lines_pkg.set_segment(
13979           p_to_segment_code         => 'GL_ACCOUNT'
13980         , p_segment_value           => l_segment
13981         , p_from_segment_code       => l_adr_value_segment_code
13982         , p_from_combination_id     => l_adr_value_combination_id
13983         , p_value_type_code         => l_adr_value_type_code
13984         , p_transaction_coa_id      => l_adr_transaction_coa_id
13985         , p_accounting_coa_id       => l_adr_accounting_coa_id
13986         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13987         , p_flex_value_set_id       => l_adr_flex_value_set_id
13988         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
13989         , p_adr_type_code           => 'S'
13990         , p_component_type          => l_component_type
13991         , p_component_code          => l_component_code
13992         , p_component_type_code     => l_component_type_code
13993         , p_component_appl_id       => l_component_appl_id
13994         , p_amb_context_code        => l_amb_context_code
13995         , p_entity_code             => 'AP_INVOICES'
13996         , p_event_class_code        => 'CREDIT MEMOS'
13997         , p_side                    => 'CREDIT'
13998         );
13999 
14000   END IF;
14001 
14002    l_segment := AcctDerRule_22(
14003            p_application_id           => p_application_id
14004          , p_ae_header_id             => l_ae_header_id 
14005 , p_source_3 => p_source_3
14006 , p_source_3_meaning => p_source_3_meaning
14007 , p_source_10 => p_source_10
14008 , p_source_10_meaning => p_source_10_meaning
14009 , p_source_18 => p_source_18
14010          , x_transaction_coa_id       => l_adr_transaction_coa_id
14011          , x_accounting_coa_id        => l_adr_accounting_coa_id
14012          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14013          , x_flex_value_set_id        => l_adr_flex_value_set_id
14014          , x_value_type_code          => l_adr_value_type_code
14015          , x_value_combination_id     => l_adr_value_combination_id
14016          , x_value_segment_code       => l_adr_value_segment_code
14017          , p_side                     => 'ALL'
14018          , p_override_seg_flag        => 'Y'
14019    );
14020 
14021    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14022 
14023       xla_ae_lines_pkg.set_segment(
14024           p_to_segment_code         => 'GL_BALANCING'
14025         , p_segment_value           => l_segment
14026         , p_from_segment_code       => l_adr_value_segment_code
14027         , p_from_combination_id     => l_adr_value_combination_id
14028         , p_value_type_code         => l_adr_value_type_code
14029         , p_transaction_coa_id      => l_adr_transaction_coa_id
14030         , p_accounting_coa_id       => l_adr_accounting_coa_id
14031         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14032         , p_flex_value_set_id       => l_adr_flex_value_set_id
14033         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
14034         , p_adr_type_code           => 'S'
14035         , p_component_type          => l_component_type
14036         , p_component_code          => l_component_code
14037         , p_component_type_code     => l_component_type_code
14038         , p_component_appl_id       => l_component_appl_id
14039         , p_amb_context_code        => l_amb_context_code
14040         , p_entity_code             => 'AP_INVOICES'
14041         , p_event_class_code        => 'CREDIT MEMOS'
14042         , p_side                    => 'ALL'
14043         );
14044 
14045   END IF;
14046 
14047    --
14048    --
14049    END IF;
14050 
14051        --
14052        -- Update the line information that should be overwritten
14053        --
14054        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14055                                          p_header_num   => 1);
14056        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
14057 
14058        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14059 
14060        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
14061           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14062        END IF;
14063 
14064       --
14065       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14066       --
14067       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14068           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
14069       ELSE
14070           ---------------------------------------------------------------------------------------------------
14074           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14071           -- 4262811a Switch Sign
14072           ---------------------------------------------------------------------------------------------------
14073           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
14075                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14076           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14077                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14078           -- 5132302
14079           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14080                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14081 
14082       END IF;
14083 
14084       -- 4955764
14085       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14086       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14087 
14088 
14089       XLA_AE_LINES_PKG.ValidateCurrentLine;
14090       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14091 
14092       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14093                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14094                ,p_balance_type_code => l_balance_type_code);
14095 
14096    END IF;
14097 
14098    -----------------------------------------------------------------------------------------
14099    -- 4262811 Multiperiod Accounting
14100    -----------------------------------------------------------------------------------------
14101      -- No MPA option is assigned.
14102 
14103 
14104 END IF;
14105 END IF;
14106 --
14107 
14108 --
14109 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14110    trace
14111       (p_msg      => 'END of AcctLineType_55'
14112       ,p_level    => C_LEVEL_PROCEDURE
14113       ,p_module   => l_log_module);
14114 END IF;
14115 --
14116 EXCEPTION
14117   WHEN xla_exceptions_pkg.application_exception THEN
14118       RAISE;
14119   WHEN OTHERS THEN
14120        xla_exceptions_pkg.raise_message
14121            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_55');
14122 END AcctLineType_55;
14123 --
14124 
14125 ---------------------------------------
14126 --
14127 -- PRIVATE FUNCTION
14128 --         AcctLineType_56
14129 --
14130 ---------------------------------------
14131 PROCEDURE AcctLineType_56 (
14132   p_application_id        IN NUMBER
14133  ,p_event_id              IN NUMBER
14134  ,p_calculate_acctd_flag  IN VARCHAR2
14135  ,p_calculate_g_l_flag    IN VARCHAR2
14136  ,p_actual_flag           IN OUT VARCHAR2
14137  ,p_balance_type_code     OUT VARCHAR2
14138  ,p_gain_or_loss_ref      OUT VARCHAR2
14139  
14140 --Invoice Distribution Description
14141  , p_source_1            IN VARCHAR2
14142 --Automatic Offsets Value
14143  , p_source_3            IN VARCHAR2
14144  , p_source_3_meaning    IN VARCHAR2
14145 --Purchase Order Rate Variance Gain Account
14146  , p_source_8            IN NUMBER
14147 --Invoice Distribution Ledger Amount
14148  , p_source_9            IN NUMBER
14149 --Destination Type of the PO Distribution
14150  , p_source_10            IN VARCHAR2
14151  , p_source_10_meaning    IN VARCHAR2
14152 --Purchase Order Rate Variance Loss Account
14153  , p_source_11            IN NUMBER
14154 --Invoice Distribution Account
14155  , p_source_18            IN NUMBER
14156 --Invoice Distribution Type
14157  , p_source_21            IN VARCHAR2
14158  , p_source_21_meaning    IN VARCHAR2
14159 --Automatic Offsets Flag
14160  , p_source_35            IN VARCHAR2
14161  , p_source_35_meaning    IN VARCHAR2
14162 --Accounting Reversal Indicator
14163  , p_source_41            IN VARCHAR2
14164 --Distribution Link Type
14165  , p_source_43            IN VARCHAR2
14166 --Allocation to Main Distribution Identifier
14167  , p_source_45            IN NUMBER
14168 --Invoice Identifier
14169  , p_source_46            IN NUMBER
14170 --Invoice Distribution Identifier
14171  , p_source_52            IN NUMBER
14172 --Payables Encumbrance Upgrade Credit Account
14173  , p_source_53            IN NUMBER
14174 --Payables Encumbrance Upgrade Credit Amount
14175  , p_source_54            IN NUMBER
14176 --Invoice Currency Code
14177  , p_source_55            IN VARCHAR2
14178 --Payables Encumbrance Upgrade Credit Base Amount
14179  , p_source_56            IN NUMBER
14180 --Payables Encumbrance Upgrade Debit Account
14181  , p_source_57            IN NUMBER
14182 --Payables Encumbrance Upgrade Debit Amount
14183  , p_source_58            IN NUMBER
14184 --Payables Encumbrance Upgrade Debit Base Amount
14185  , p_source_59            IN NUMBER
14186 --Payables Encumbrance Upgrade Option
14187  , p_source_60            IN VARCHAR2
14188 --Deferred Accounting End Date
14189  , p_source_65            IN DATE
14190 --Deferred Accounting Option
14191  , p_source_66            IN VARCHAR2
14192 --Deferred Accounting Start Date
14193  , p_source_67            IN DATE
14194 --Override Accounted Amount Indicator
14195  , p_source_68            IN VARCHAR2
14196  , p_source_68_meaning    IN VARCHAR2
14197 --Invoice Supplier Identifier
14198  , p_source_69            IN NUMBER
14199 --Invoice Supplier Site Identifier
14200  , p_source_70            IN NUMBER
14201 --Third Party Type
14205 --Invoice Distribution Tax Line Identifier
14202  , p_source_71            IN VARCHAR2
14203 --Parent Reversal Identifier
14204  , p_source_72            IN NUMBER
14206  , p_source_74            IN NUMBER
14207 --Invoice Distribution Tax Distribution Identifier from Tax
14208  , p_source_75            IN NUMBER
14209 --Invoice Distribution Summary Tax Line Identifier
14210  , p_source_76            IN NUMBER
14211 --Payables Upgrade Credit Encumbrance Type Identifier
14212  , p_source_77            IN NUMBER
14213 --Payables Upgrade Debit Encumbrance Type Identifier
14214  , p_source_78            IN NUMBER
14215 --Business Flow Accounts Payable Application Identifier
14216  , p_source_79            IN NUMBER
14217 --Business Flow Invoice Distribution Type
14218  , p_source_80            IN VARCHAR2
14219 --Business Flow Invoice Entity Code
14220  , p_source_81            IN VARCHAR2
14221 --Business Flow Invoice Distribution Identifier
14222  , p_source_82            IN NUMBER
14223 --Business Flow Invoice Identifier
14224  , p_source_83            IN NUMBER
14225 --Accrue on Receipt Option
14226  , p_source_84            IN VARCHAR2
14227  , p_source_84_meaning    IN VARCHAR2
14228 )
14229 IS
14230 
14231 l_component_type              VARCHAR2(80);
14232 l_component_code              VARCHAR2(30);
14233 l_component_type_code         VARCHAR2(1);
14234 l_component_appl_id           INTEGER;
14235 l_amb_context_code            VARCHAR2(30);
14236 l_entity_code                 VARCHAR2(30);
14237 l_event_class_code            VARCHAR2(30);
14238 l_ae_header_id                NUMBER;
14239 l_event_type_code             VARCHAR2(30);
14240 l_line_definition_code        VARCHAR2(30);
14241 l_line_definition_owner_code  VARCHAR2(1);
14242 --
14243 -- adr variables
14244 l_segment                     VARCHAR2(30);
14245 l_ccid                        NUMBER;
14246 l_adr_transaction_coa_id      NUMBER;
14247 l_adr_accounting_coa_id       NUMBER;
14248 l_adr_flexfield_segment_code  VARCHAR2(30);
14249 l_adr_flex_value_set_id       NUMBER;
14250 l_adr_value_type_code         VARCHAR2(30);
14251 l_adr_value_combination_id    NUMBER;
14252 l_adr_value_segment_code      VARCHAR2(30);
14253 
14254 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
14255 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
14256 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
14257 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
14258 
14259 -- 4262811 Variables ------------------------------------------------------------------------------------------
14260 l_entered_amt_idx             NUMBER;
14261 l_accted_amt_idx              NUMBER;
14262 l_acc_rev_flag                VARCHAR2(1);
14263 l_accrual_line_num            NUMBER;
14264 l_tmp_amt                     NUMBER;
14265 l_acc_rev_natural_side_code   VARCHAR2(1);
14266 
14267 l_num_entries                 NUMBER;
14268 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
14269 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
14270 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
14271 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
14272 l_recog_line_1                NUMBER;
14273 l_recog_line_2                NUMBER;
14274 
14275 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
14276 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
14277 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
14278 
14279 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14280 
14281 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
14282 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
14283 
14284 ---------------------------------------------------------------------------------------------------------------
14285 
14286 
14287 --
14288 -- bulk performance
14289 --
14290 l_balance_type_code           VARCHAR2(1);
14291 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
14292 l_log_module                  VARCHAR2(240);
14293 
14294 --
14295 -- Upgrade strategy
14296 --
14297 l_actual_upg_option           VARCHAR2(1);
14298 l_enc_upg_option           VARCHAR2(1);
14299 
14300 --
14301 BEGIN
14302 --
14303 IF g_log_enabled THEN
14304       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
14305 END IF;
14306 --
14307 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14308 
14309       trace
14310          (p_msg      => 'BEGIN of AcctLineType_56'
14311          ,p_level    => C_LEVEL_PROCEDURE
14312          ,p_module   => l_log_module);
14313 
14314 END IF;
14315 --
14316 l_component_type             := 'AMB_JLT';
14317 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_DM';
14318 l_component_type_code        := 'S';
14319 l_component_appl_id          :=  200;
14320 l_amb_context_code           := 'DEFAULT';
14321 l_entity_code                := 'AP_INVOICES';
14322 l_event_class_code           := 'DEBIT MEMOS';
14323 l_event_type_code            := 'DEBIT MEMOS_ALL';
14324 l_line_definition_owner_code := 'S';
14325 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
14326 --
14327 l_balance_type_code          := 'A';
14328 l_segment                     := NULL;
14329 l_ccid                        := NULL;
14330 l_adr_transaction_coa_id      := NULL;
14331 l_adr_accounting_coa_id       := NULL;
14332 l_adr_flexfield_segment_code  := NULL;
14333 l_adr_flex_value_set_id       := NULL;
14334 l_adr_value_type_code         := NULL;
14338 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
14335 l_adr_value_combination_id    := NULL;
14336 l_adr_value_segment_code      := NULL;
14337 
14339 l_bflow_class_code           := '';    -- 4219869 Business Flow
14340 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
14341 l_budgetary_control_flag     := 'N';
14342 
14343 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
14344 l_bflow_applied_to_amt       := NULL; -- 5132302
14345 l_entered_amt_idx            := NULL;          -- 4262811
14346 l_accted_amt_idx             := NULL;          -- 4262811
14347 l_acc_rev_flag               := NULL;          -- 4262811
14348 l_accrual_line_num           := NULL;          -- 4262811
14349 l_tmp_amt                    := NULL;          -- 4262811
14350 --
14351 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
14352             (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
14353                return;
14354   END IF;
14355   
14356 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14357     l_balance_type_code <> 'B' THEN
14358 IF NVL(p_source_21,'
14359 ') =  'NONREC_TAX' AND 
14360 NVL(p_source_84,'
14361 ') =  'Y'
14362  THEN 
14363 
14364    --
14365    XLA_AE_LINES_PKG.SetNewLine;
14366 
14367    p_balance_type_code          := l_balance_type_code;
14368    -- set the flag so later we will know whether the gain loss line needs to be created
14369    
14370    IF(l_balance_type_code = 'A' ) THEN
14371      p_actual_flag :='G';
14372    END IF;
14373 
14374    --
14375    -- bulk performance
14376    --
14377    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14378                                       p_header_num   => 0); -- 4262811
14379    --
14380    -- set accounting line options
14381    --
14382    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14383            p_natural_side_code          => 'G'
14384          , p_gain_or_loss_flag          => 'N'
14385          , p_gl_transfer_mode_code      => 'S'
14386          , p_acct_entry_type_code       => 'A'
14387          , p_switch_side_flag           => ''
14388          , p_merge_duplicate_code       => 'A'
14389          );
14390    --
14391    l_acc_rev_natural_side_code := 'C';  -- 4262811
14392    -- 
14393    --
14394    -- set accounting line type info
14395    --
14396    xla_ae_lines_pkg.SetAcctLineType
14397       (p_component_type             => l_component_type
14398       ,p_event_type_code            => l_event_type_code
14399       ,p_line_definition_owner_code => l_line_definition_owner_code
14400       ,p_line_definition_code       => l_line_definition_code
14401       ,p_accounting_line_code       => l_component_code
14402       ,p_accounting_line_type_code  => l_component_type_code
14403       ,p_accounting_line_appl_id    => l_component_appl_id
14404       ,p_amb_context_code           => l_amb_context_code
14405       ,p_entity_code                => l_entity_code
14406       ,p_event_class_code           => l_event_class_code);
14407    --
14408    -- set accounting class
14409    --
14410    xla_ae_lines_pkg.SetAcctClass(
14411            p_accounting_class_code  => 'TERV'
14412          , p_ae_header_id           => l_ae_header_id
14413          );
14414 
14415    --
14416    -- set rounding class
14417    --
14418    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14419                       'TERV';
14420 
14421    --
14422    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14423    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14424    --
14425    -- bulk performance
14426    --
14427    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14428 
14429    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14430       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14431 
14432    -- 4955764
14433    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14434       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14435 
14436    -- 4458381 Public Sector Enh
14437    
14438    --
14439    -- set accounting attributes for the line type
14440    --
14441    l_entered_amt_idx := NULL;
14442    l_accted_amt_idx  := 23;
14443    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
14444    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
14445    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
14446    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
14447    l_rec_acct_attrs.array_num_value(2)  := 
14448 xla_ae_sources_pkg.GetSystemSourceNum(
14449    p_source_code           => 'XLA_EVENT_APPL_ID'
14450  , p_source_type_code      => 'Y'
14451  , p_source_application_id =>  602
14452 );
14453    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
14454    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
14455    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
14456    l_rec_acct_attrs.array_char_value(4)  := 
14457 xla_ae_sources_pkg.GetSystemSourceChar(
14458    p_source_code           => 'XLA_ENTITY_CODE'
14459  , p_source_type_code      => 'Y'
14460  , p_source_application_id =>  602
14461 );
14462    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
14463    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
14467    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
14464    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
14465    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
14466    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
14468    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
14469    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
14470    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
14471    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
14472    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
14473    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
14474    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
14475    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
14476    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
14477    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
14478    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
14479    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
14480    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
14481    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
14482    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
14483    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
14484    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
14485    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
14486    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
14487    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
14488    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
14489    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
14490    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
14491    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
14492    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
14493    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
14494    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
14495    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
14496    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
14497    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
14498    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
14499    l_rec_acct_attrs.array_num_value(23)  := p_source_9;
14500    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
14501    l_rec_acct_attrs.array_date_value(24)  := p_source_65;
14502    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
14503    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
14504    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
14505    l_rec_acct_attrs.array_date_value(26)  := p_source_67;
14506    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
14507    l_rec_acct_attrs.array_char_value(27)  := p_source_68;
14508    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
14509    l_rec_acct_attrs.array_num_value(28)  := p_source_69;
14510    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
14511    l_rec_acct_attrs.array_num_value(29)  := p_source_70;
14512    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
14513    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
14514    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
14515    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
14516    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
14517    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
14518    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
14519    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
14520    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
14521    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
14522    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
14523    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
14524    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
14525    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
14526    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
14527    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
14528 
14529    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14530    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14531 
14532    ---------------------------------------------------------------------------------------------------------------
14533    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14534    ---------------------------------------------------------------------------------------------------------------
14535    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14536 
14537    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14538    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14539 
14540    IF xla_accounting_cache_pkg.GetValueChar
14541          (p_source_code         => 'LEDGER_CATEGORY_CODE'
14542          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14543    AND l_bflow_method_code = 'PRIOR_ENTRY'
14544 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14545    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14546          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14547        )
14548    THEN
14549          xla_ae_lines_pkg.BflowUpgEntry
14550            (p_business_method_code    => l_bflow_method_code
14551            ,p_business_class_code     => l_bflow_class_code
14552            ,p_balance_type            => l_balance_type_code);
14553    ELSE
14554       NULL;
14558    --
14555 -- No business flow processing for business flow method of NONE.
14556    END IF;
14557 
14559    -- call analytical criteria
14560    --
14561    
14562    --
14563    -- call description
14564    --
14565    
14566 xla_ae_lines_pkg.SetLineDescription(
14567    p_ae_header_id => l_ae_header_id
14568   ,p_description  => Description_2 (
14569      p_application_id         => p_application_id
14570    , p_ae_header_id           => l_ae_header_id 
14571 , p_source_1 => p_source_1
14572    )
14573 );
14574 
14575 
14576    --
14577    -- call ADRs
14578    -- Bug 4922099
14579    --
14580    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14581         (NVL(l_actual_upg_option, 'N') = 'O') OR
14582         (NVL(l_enc_upg_option, 'N') = 'O')
14583       )
14584    THEN
14585    NULL;
14586    --
14587    --
14588    
14589   l_ccid := AcctDerRule_29(
14590            p_application_id           => p_application_id
14591          , p_ae_header_id             => l_ae_header_id 
14592 , p_source_3 => p_source_3
14593 , p_source_3_meaning => p_source_3_meaning
14594 , p_source_8 => p_source_8
14595 , p_source_9 => p_source_9
14596 , p_source_10 => p_source_10
14597 , p_source_10_meaning => p_source_10_meaning
14598 , p_source_11 => p_source_11
14599 , p_source_18 => p_source_18
14600 , p_source_35 => p_source_35
14601 , p_source_35_meaning => p_source_35_meaning
14602          , x_transaction_coa_id       => l_adr_transaction_coa_id
14603          , x_accounting_coa_id        => l_adr_accounting_coa_id
14604          , x_value_type_code          => l_adr_value_type_code
14605          , p_side                     => 'ALL'
14606    );
14607 
14608    xla_ae_lines_pkg.set_ccid(
14609     p_code_combination_id          => l_ccid
14610   , p_value_type_code              => l_adr_value_type_code
14611   , p_transaction_coa_id           => l_adr_transaction_coa_id
14612   , p_accounting_coa_id            => l_adr_accounting_coa_id
14613   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
14614   , p_adr_type_code                => 'S'
14615   , p_component_type               => l_component_type
14616   , p_component_code               => l_component_code
14617   , p_component_type_code          => l_component_type_code
14618   , p_component_appl_id            => l_component_appl_id
14619   , p_amb_context_code             => l_amb_context_code
14620   , p_side                         => 'ALL'
14621   );
14622 
14623 
14624    l_segment := AcctDerRule_8(
14625            p_application_id           => p_application_id
14626          , p_ae_header_id             => l_ae_header_id 
14627 , p_source_3 => p_source_3
14628 , p_source_3_meaning => p_source_3_meaning
14629 , p_source_8 => p_source_8
14630 , p_source_10 => p_source_10
14631 , p_source_10_meaning => p_source_10_meaning
14632          , x_transaction_coa_id       => l_adr_transaction_coa_id
14633          , x_accounting_coa_id        => l_adr_accounting_coa_id
14634          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14635          , x_flex_value_set_id        => l_adr_flex_value_set_id
14636          , x_value_type_code          => l_adr_value_type_code
14637          , x_value_combination_id     => l_adr_value_combination_id
14638          , x_value_segment_code       => l_adr_value_segment_code
14639          , p_side                     => 'DEBIT'
14640          , p_override_seg_flag        => 'Y'
14641    );
14642 
14643    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14644 
14645       xla_ae_lines_pkg.set_segment(
14646           p_to_segment_code         => 'GL_ACCOUNT'
14647         , p_segment_value           => l_segment
14648         , p_from_segment_code       => l_adr_value_segment_code
14649         , p_from_combination_id     => l_adr_value_combination_id
14650         , p_value_type_code         => l_adr_value_type_code
14651         , p_transaction_coa_id      => l_adr_transaction_coa_id
14652         , p_accounting_coa_id       => l_adr_accounting_coa_id
14653         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14654         , p_flex_value_set_id       => l_adr_flex_value_set_id
14655         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14656         , p_adr_type_code           => 'S'
14657         , p_component_type          => l_component_type
14658         , p_component_code          => l_component_code
14659         , p_component_type_code     => l_component_type_code
14660         , p_component_appl_id       => l_component_appl_id
14661         , p_amb_context_code        => l_amb_context_code
14662         , p_entity_code             => 'AP_INVOICES'
14663         , p_event_class_code        => 'DEBIT MEMOS'
14664         , p_side                    => 'DEBIT'
14665         );
14666 
14667   END IF;
14668 
14669    l_segment := AcctDerRule_9(
14670            p_application_id           => p_application_id
14671          , p_ae_header_id             => l_ae_header_id 
14672 , p_source_3 => p_source_3
14673 , p_source_3_meaning => p_source_3_meaning
14674 , p_source_10 => p_source_10
14675 , p_source_10_meaning => p_source_10_meaning
14676 , p_source_11 => p_source_11
14677          , x_transaction_coa_id       => l_adr_transaction_coa_id
14678          , x_accounting_coa_id        => l_adr_accounting_coa_id
14679          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14680          , x_flex_value_set_id        => l_adr_flex_value_set_id
14681          , x_value_type_code          => l_adr_value_type_code
14685          , p_override_seg_flag        => 'Y'
14682          , x_value_combination_id     => l_adr_value_combination_id
14683          , x_value_segment_code       => l_adr_value_segment_code
14684          , p_side                     => 'CREDIT'
14686    );
14687 
14688    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14689 
14690       xla_ae_lines_pkg.set_segment(
14691           p_to_segment_code         => 'GL_ACCOUNT'
14692         , p_segment_value           => l_segment
14693         , p_from_segment_code       => l_adr_value_segment_code
14694         , p_from_combination_id     => l_adr_value_combination_id
14695         , p_value_type_code         => l_adr_value_type_code
14696         , p_transaction_coa_id      => l_adr_transaction_coa_id
14697         , p_accounting_coa_id       => l_adr_accounting_coa_id
14698         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14699         , p_flex_value_set_id       => l_adr_flex_value_set_id
14700         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
14701         , p_adr_type_code           => 'S'
14702         , p_component_type          => l_component_type
14703         , p_component_code          => l_component_code
14704         , p_component_type_code     => l_component_type_code
14705         , p_component_appl_id       => l_component_appl_id
14706         , p_amb_context_code        => l_amb_context_code
14707         , p_entity_code             => 'AP_INVOICES'
14708         , p_event_class_code        => 'DEBIT MEMOS'
14709         , p_side                    => 'CREDIT'
14710         );
14711 
14712   END IF;
14713 
14714    l_segment := AcctDerRule_22(
14715            p_application_id           => p_application_id
14716          , p_ae_header_id             => l_ae_header_id 
14717 , p_source_3 => p_source_3
14718 , p_source_3_meaning => p_source_3_meaning
14719 , p_source_10 => p_source_10
14720 , p_source_10_meaning => p_source_10_meaning
14721 , p_source_18 => p_source_18
14722          , x_transaction_coa_id       => l_adr_transaction_coa_id
14723          , x_accounting_coa_id        => l_adr_accounting_coa_id
14724          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14725          , x_flex_value_set_id        => l_adr_flex_value_set_id
14726          , x_value_type_code          => l_adr_value_type_code
14727          , x_value_combination_id     => l_adr_value_combination_id
14728          , x_value_segment_code       => l_adr_value_segment_code
14729          , p_side                     => 'ALL'
14730          , p_override_seg_flag        => 'Y'
14731    );
14732 
14733    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14734 
14735       xla_ae_lines_pkg.set_segment(
14736           p_to_segment_code         => 'GL_BALANCING'
14737         , p_segment_value           => l_segment
14738         , p_from_segment_code       => l_adr_value_segment_code
14739         , p_from_combination_id     => l_adr_value_combination_id
14740         , p_value_type_code         => l_adr_value_type_code
14741         , p_transaction_coa_id      => l_adr_transaction_coa_id
14742         , p_accounting_coa_id       => l_adr_accounting_coa_id
14743         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14744         , p_flex_value_set_id       => l_adr_flex_value_set_id
14745         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
14746         , p_adr_type_code           => 'S'
14747         , p_component_type          => l_component_type
14748         , p_component_code          => l_component_code
14749         , p_component_type_code     => l_component_type_code
14750         , p_component_appl_id       => l_component_appl_id
14751         , p_amb_context_code        => l_amb_context_code
14752         , p_entity_code             => 'AP_INVOICES'
14753         , p_event_class_code        => 'DEBIT MEMOS'
14754         , p_side                    => 'ALL'
14755         );
14756 
14757   END IF;
14758 
14759    --
14760    --
14761    END IF;
14762    --
14763    -- Bug 4922099
14764    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14765           (NVL(l_enc_upg_option, 'N') = 'O')
14766         ) AND
14767         (l_bflow_method_code = 'PRIOR_ENTRY')
14768       )
14769    THEN
14770       IF
14771       --
14772       1 = 2
14773       --
14774       THEN
14775       xla_accounting_err_pkg.build_message
14776                                     (p_appli_s_name            => 'XLA'
14777                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14778                                     ,p_token_1                 => 'LINE_NUMBER'
14779                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
14780                                     ,p_token_2                 => 'LINE_TYPE_NAME'
14781                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
14782                                                                              l_component_type
14783                                                                             ,l_component_code
14784                                                                             ,l_component_type_code
14785                                                                             ,l_component_appl_id
14786                                                                             ,l_amb_context_code
14787                                                                             ,l_entity_code
14788                                                                             ,l_event_class_code
14789                                                                            )
14790                                     ,p_token_3                 => 'OWNER'
14791                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
14795                                     ,p_token_4                 => 'PRODUCT_NAME'
14792                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
14793                                                                           ,p_lookup_code    => l_component_type_code
14794                                                                          )
14796                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14797                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14798                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14799                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14800                                     ,p_ae_header_id            =>  NULL
14801                                        );
14802 
14803         IF (C_LEVEL_ERROR>= g_log_level) THEN
14804                  trace
14805                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14806                       ,p_level    => C_LEVEL_ERROR
14807                       ,p_module   => l_log_module);
14808         END IF;
14809       END IF;
14810    END IF;
14811    --
14812    --
14813    ------------------------------------------------------------------------------------------------
14814    -- 4219869 Business Flow
14815    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14816    -- Prior Entry.  Currently, the following code is always generated.
14817    ------------------------------------------------------------------------------------------------
14818    XLA_AE_LINES_PKG.ValidateCurrentLine;
14819 
14820    ------------------------------------------------------------------------------------
14821    -- 4219869 Business Flow
14822    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14823    ------------------------------------------------------------------------------------
14824    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14825 
14826    ----------------------------------------------------------------------------------
14827    -- 4219869 Business Flow
14828    -- Update journal entry status -- Need to generate this within IF <condition>
14829    ----------------------------------------------------------------------------------
14830    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14831          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14832          ,p_balance_type_code => l_balance_type_code
14833          );
14834 
14835    -------------------------------------------------------------------------------------------
14836    -- 4262811 - Generate the Accrual Reversal lines
14837    -------------------------------------------------------------------------------------------
14838    BEGIN
14839       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14840                               (g_array_event(p_event_id).array_value_num('header_index'));
14841       IF l_acc_rev_flag IS NULL THEN
14842          l_acc_rev_flag := 'N';
14843       END IF;
14844    EXCEPTION
14845       WHEN OTHERS THEN
14846          l_acc_rev_flag := 'N';
14847    END;
14848    --
14849    IF (l_acc_rev_flag = 'Y') THEN
14850 
14851        -- 4645092  ------------------------------------------------------------------------------
14852        -- To allow MPA report to determine if it should generate report process
14853        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14854        ------------------------------------------------------------------------------------------
14855 
14856        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14857        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14858    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
14859    -- call ADRs
14860    -- Bug 4922099
14861    --
14862    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14863         (NVL(l_actual_upg_option, 'N') = 'O') OR
14864         (NVL(l_enc_upg_option, 'N') = 'O')
14865       )
14866    THEN
14867    NULL;
14868    --
14869    --
14870    
14871   l_ccid := AcctDerRule_29(
14872            p_application_id           => p_application_id
14873          , p_ae_header_id             => l_ae_header_id 
14874 , p_source_3 => p_source_3
14875 , p_source_3_meaning => p_source_3_meaning
14876 , p_source_8 => p_source_8
14877 , p_source_9 => p_source_9
14878 , p_source_10 => p_source_10
14879 , p_source_10_meaning => p_source_10_meaning
14880 , p_source_11 => p_source_11
14881 , p_source_18 => p_source_18
14882 , p_source_35 => p_source_35
14883 , p_source_35_meaning => p_source_35_meaning
14884          , x_transaction_coa_id       => l_adr_transaction_coa_id
14885          , x_accounting_coa_id        => l_adr_accounting_coa_id
14886          , x_value_type_code          => l_adr_value_type_code
14887          , p_side                     => 'ALL'
14888    );
14889 
14890    xla_ae_lines_pkg.set_ccid(
14891     p_code_combination_id          => l_ccid
14892   , p_value_type_code              => l_adr_value_type_code
14893   , p_transaction_coa_id           => l_adr_transaction_coa_id
14894   , p_accounting_coa_id            => l_adr_accounting_coa_id
14895   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
14896   , p_adr_type_code                => 'S'
14897   , p_component_type               => l_component_type
14898   , p_component_code               => l_component_code
14899   , p_component_type_code          => l_component_type_code
14900   , p_component_appl_id            => l_component_appl_id
14901   , p_amb_context_code             => l_amb_context_code
14902   , p_side                         => 'ALL'
14903   );
14904 
14908          , p_ae_header_id             => l_ae_header_id 
14905 
14906    l_segment := AcctDerRule_8(
14907            p_application_id           => p_application_id
14909 , p_source_3 => p_source_3
14910 , p_source_3_meaning => p_source_3_meaning
14911 , p_source_8 => p_source_8
14912 , p_source_10 => p_source_10
14913 , p_source_10_meaning => p_source_10_meaning
14914          , x_transaction_coa_id       => l_adr_transaction_coa_id
14915          , x_accounting_coa_id        => l_adr_accounting_coa_id
14916          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14917          , x_flex_value_set_id        => l_adr_flex_value_set_id
14918          , x_value_type_code          => l_adr_value_type_code
14919          , x_value_combination_id     => l_adr_value_combination_id
14920          , x_value_segment_code       => l_adr_value_segment_code
14921          , p_side                     => 'DEBIT'
14922          , p_override_seg_flag        => 'Y'
14923    );
14924 
14925    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14926 
14927       xla_ae_lines_pkg.set_segment(
14928           p_to_segment_code         => 'GL_ACCOUNT'
14929         , p_segment_value           => l_segment
14930         , p_from_segment_code       => l_adr_value_segment_code
14931         , p_from_combination_id     => l_adr_value_combination_id
14932         , p_value_type_code         => l_adr_value_type_code
14933         , p_transaction_coa_id      => l_adr_transaction_coa_id
14934         , p_accounting_coa_id       => l_adr_accounting_coa_id
14935         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14936         , p_flex_value_set_id       => l_adr_flex_value_set_id
14937         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14938         , p_adr_type_code           => 'S'
14939         , p_component_type          => l_component_type
14940         , p_component_code          => l_component_code
14941         , p_component_type_code     => l_component_type_code
14942         , p_component_appl_id       => l_component_appl_id
14943         , p_amb_context_code        => l_amb_context_code
14944         , p_entity_code             => 'AP_INVOICES'
14945         , p_event_class_code        => 'DEBIT MEMOS'
14946         , p_side                    => 'DEBIT'
14947         );
14948 
14949   END IF;
14950 
14951    l_segment := AcctDerRule_9(
14952            p_application_id           => p_application_id
14953          , p_ae_header_id             => l_ae_header_id 
14954 , p_source_3 => p_source_3
14955 , p_source_3_meaning => p_source_3_meaning
14956 , p_source_10 => p_source_10
14957 , p_source_10_meaning => p_source_10_meaning
14958 , p_source_11 => p_source_11
14959          , x_transaction_coa_id       => l_adr_transaction_coa_id
14960          , x_accounting_coa_id        => l_adr_accounting_coa_id
14961          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14962          , x_flex_value_set_id        => l_adr_flex_value_set_id
14963          , x_value_type_code          => l_adr_value_type_code
14964          , x_value_combination_id     => l_adr_value_combination_id
14965          , x_value_segment_code       => l_adr_value_segment_code
14966          , p_side                     => 'CREDIT'
14967          , p_override_seg_flag        => 'Y'
14968    );
14969 
14970    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14971 
14972       xla_ae_lines_pkg.set_segment(
14973           p_to_segment_code         => 'GL_ACCOUNT'
14974         , p_segment_value           => l_segment
14975         , p_from_segment_code       => l_adr_value_segment_code
14976         , p_from_combination_id     => l_adr_value_combination_id
14977         , p_value_type_code         => l_adr_value_type_code
14978         , p_transaction_coa_id      => l_adr_transaction_coa_id
14979         , p_accounting_coa_id       => l_adr_accounting_coa_id
14980         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14981         , p_flex_value_set_id       => l_adr_flex_value_set_id
14982         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
14983         , p_adr_type_code           => 'S'
14984         , p_component_type          => l_component_type
14985         , p_component_code          => l_component_code
14986         , p_component_type_code     => l_component_type_code
14987         , p_component_appl_id       => l_component_appl_id
14988         , p_amb_context_code        => l_amb_context_code
14989         , p_entity_code             => 'AP_INVOICES'
14990         , p_event_class_code        => 'DEBIT MEMOS'
14991         , p_side                    => 'CREDIT'
14992         );
14993 
14994   END IF;
14995 
14996    l_segment := AcctDerRule_22(
14997            p_application_id           => p_application_id
14998          , p_ae_header_id             => l_ae_header_id 
14999 , p_source_3 => p_source_3
15000 , p_source_3_meaning => p_source_3_meaning
15001 , p_source_10 => p_source_10
15002 , p_source_10_meaning => p_source_10_meaning
15003 , p_source_18 => p_source_18
15004          , x_transaction_coa_id       => l_adr_transaction_coa_id
15005          , x_accounting_coa_id        => l_adr_accounting_coa_id
15006          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15007          , x_flex_value_set_id        => l_adr_flex_value_set_id
15008          , x_value_type_code          => l_adr_value_type_code
15009          , x_value_combination_id     => l_adr_value_combination_id
15010          , x_value_segment_code       => l_adr_value_segment_code
15011          , p_side                     => 'ALL'
15012          , p_override_seg_flag        => 'Y'
15013    );
15014 
15015    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15016 
15017       xla_ae_lines_pkg.set_segment(
15018           p_to_segment_code         => 'GL_BALANCING'
15019         , p_segment_value           => l_segment
15023         , p_transaction_coa_id      => l_adr_transaction_coa_id
15020         , p_from_segment_code       => l_adr_value_segment_code
15021         , p_from_combination_id     => l_adr_value_combination_id
15022         , p_value_type_code         => l_adr_value_type_code
15024         , p_accounting_coa_id       => l_adr_accounting_coa_id
15025         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15026         , p_flex_value_set_id       => l_adr_flex_value_set_id
15027         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
15028         , p_adr_type_code           => 'S'
15029         , p_component_type          => l_component_type
15030         , p_component_code          => l_component_code
15031         , p_component_type_code     => l_component_type_code
15032         , p_component_appl_id       => l_component_appl_id
15033         , p_amb_context_code        => l_amb_context_code
15034         , p_entity_code             => 'AP_INVOICES'
15035         , p_event_class_code        => 'DEBIT MEMOS'
15036         , p_side                    => 'ALL'
15037         );
15038 
15039   END IF;
15040 
15041    --
15042    --
15043    END IF;
15044 
15045        --
15046        -- Update the line information that should be overwritten
15047        --
15048        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15049                                          p_header_num   => 1);
15050        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
15051 
15052        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15053 
15054        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
15055           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15056        END IF;
15057 
15058       --
15059       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15060       --
15061       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15062           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
15063       ELSE
15064           ---------------------------------------------------------------------------------------------------
15065           -- 4262811a Switch Sign
15066           ---------------------------------------------------------------------------------------------------
15067           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
15068           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15069                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15070           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15071                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15072           -- 5132302
15073           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15074                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15075 
15076       END IF;
15077 
15078       -- 4955764
15079       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15080       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15081 
15082 
15083       XLA_AE_LINES_PKG.ValidateCurrentLine;
15084       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15085 
15086       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15087                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15088                ,p_balance_type_code => l_balance_type_code);
15089 
15090    END IF;
15091 
15092    -----------------------------------------------------------------------------------------
15093    -- 4262811 Multiperiod Accounting
15094    -----------------------------------------------------------------------------------------
15095      -- No MPA option is assigned.
15096 
15097 
15098 END IF;
15099 END IF;
15100 --
15101 
15102 --
15103 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15104    trace
15105       (p_msg      => 'END of AcctLineType_56'
15106       ,p_level    => C_LEVEL_PROCEDURE
15107       ,p_module   => l_log_module);
15108 END IF;
15109 --
15110 EXCEPTION
15111   WHEN xla_exceptions_pkg.application_exception THEN
15112       RAISE;
15113   WHEN OTHERS THEN
15114        xla_exceptions_pkg.raise_message
15115            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_56');
15116 END AcctLineType_56;
15117 --
15118 
15119 ---------------------------------------
15120 --
15121 -- PRIVATE FUNCTION
15122 --         AcctLineType_57
15123 --
15124 ---------------------------------------
15125 PROCEDURE AcctLineType_57 (
15126   p_application_id        IN NUMBER
15127  ,p_event_id              IN NUMBER
15128  ,p_calculate_acctd_flag  IN VARCHAR2
15129  ,p_calculate_g_l_flag    IN VARCHAR2
15130  ,p_actual_flag           IN OUT VARCHAR2
15131  ,p_balance_type_code     OUT VARCHAR2
15132  ,p_gain_or_loss_ref      OUT VARCHAR2
15133  
15134 --Invoice Distribution Description
15135  , p_source_1            IN VARCHAR2
15136 --Automatic Offsets Value
15137  , p_source_3            IN VARCHAR2
15138  , p_source_3_meaning    IN VARCHAR2
15139 --Purchase Order Rate Variance Gain Account
15140  , p_source_8            IN NUMBER
15141 --Invoice Distribution Ledger Amount
15142  , p_source_9            IN NUMBER
15143 --Destination Type of the PO Distribution
15144  , p_source_10            IN VARCHAR2
15148 --Invoice Distribution Account
15145  , p_source_10_meaning    IN VARCHAR2
15146 --Purchase Order Rate Variance Loss Account
15147  , p_source_11            IN NUMBER
15149  , p_source_18            IN NUMBER
15150 --Invoice Distribution Type
15151  , p_source_21            IN VARCHAR2
15152  , p_source_21_meaning    IN VARCHAR2
15153 --Automatic Offsets Flag
15154  , p_source_35            IN VARCHAR2
15155  , p_source_35_meaning    IN VARCHAR2
15156 --Accounting Reversal Indicator
15157  , p_source_41            IN VARCHAR2
15158 --Distribution Link Type
15159  , p_source_43            IN VARCHAR2
15160 --Allocation to Main Distribution Identifier
15161  , p_source_45            IN NUMBER
15162 --Invoice Identifier
15163  , p_source_46            IN NUMBER
15164 --Invoice Distribution Identifier
15165  , p_source_52            IN NUMBER
15166 --Payables Encumbrance Upgrade Credit Account
15167  , p_source_53            IN NUMBER
15168 --Payables Encumbrance Upgrade Credit Amount
15169  , p_source_54            IN NUMBER
15170 --Invoice Currency Code
15171  , p_source_55            IN VARCHAR2
15172 --Payables Encumbrance Upgrade Credit Base Amount
15173  , p_source_56            IN NUMBER
15174 --Payables Encumbrance Upgrade Debit Account
15175  , p_source_57            IN NUMBER
15176 --Payables Encumbrance Upgrade Debit Amount
15177  , p_source_58            IN NUMBER
15178 --Payables Encumbrance Upgrade Debit Base Amount
15179  , p_source_59            IN NUMBER
15180 --Payables Encumbrance Upgrade Option
15181  , p_source_60            IN VARCHAR2
15182 --Invoice Distribution Amount
15183  , p_source_61            IN NUMBER
15184 --Deferred Accounting End Date
15185  , p_source_65            IN DATE
15186 --Deferred Accounting Option
15187  , p_source_66            IN VARCHAR2
15188 --Deferred Accounting Start Date
15189  , p_source_67            IN DATE
15190 --Override Accounted Amount Indicator
15191  , p_source_68            IN VARCHAR2
15192  , p_source_68_meaning    IN VARCHAR2
15193 --Invoice Supplier Identifier
15194  , p_source_69            IN NUMBER
15195 --Invoice Supplier Site Identifier
15196  , p_source_70            IN NUMBER
15197 --Third Party Type
15198  , p_source_71            IN VARCHAR2
15199 --Parent Reversal Identifier
15200  , p_source_72            IN NUMBER
15201 --Invoice Distribution Statistical Amount
15202  , p_source_73            IN NUMBER
15203 --Invoice Distribution Tax Line Identifier
15204  , p_source_74            IN NUMBER
15205 --Invoice Distribution Tax Distribution Identifier from Tax
15206  , p_source_75            IN NUMBER
15207 --Invoice Distribution Summary Tax Line Identifier
15208  , p_source_76            IN NUMBER
15209 --Payables Upgrade Credit Encumbrance Type Identifier
15210  , p_source_77            IN NUMBER
15211 --Payables Upgrade Debit Encumbrance Type Identifier
15212  , p_source_78            IN NUMBER
15213 --Business Flow Accounts Payable Application Identifier
15214  , p_source_79            IN NUMBER
15215 --Business Flow Invoice Distribution Type
15216  , p_source_80            IN VARCHAR2
15217 --Business Flow Invoice Entity Code
15218  , p_source_81            IN VARCHAR2
15219 --Business Flow Invoice Distribution Identifier
15220  , p_source_82            IN NUMBER
15221 --Business Flow Invoice Identifier
15222  , p_source_83            IN NUMBER
15223 --Accrue on Receipt Option
15224  , p_source_84            IN VARCHAR2
15225  , p_source_84_meaning    IN VARCHAR2
15226 )
15227 IS
15228 
15229 l_component_type              VARCHAR2(80);
15230 l_component_code              VARCHAR2(30);
15231 l_component_type_code         VARCHAR2(1);
15232 l_component_appl_id           INTEGER;
15233 l_amb_context_code            VARCHAR2(30);
15234 l_entity_code                 VARCHAR2(30);
15235 l_event_class_code            VARCHAR2(30);
15236 l_ae_header_id                NUMBER;
15237 l_event_type_code             VARCHAR2(30);
15238 l_line_definition_code        VARCHAR2(30);
15239 l_line_definition_owner_code  VARCHAR2(1);
15240 --
15241 -- adr variables
15242 l_segment                     VARCHAR2(30);
15243 l_ccid                        NUMBER;
15244 l_adr_transaction_coa_id      NUMBER;
15245 l_adr_accounting_coa_id       NUMBER;
15246 l_adr_flexfield_segment_code  VARCHAR2(30);
15247 l_adr_flex_value_set_id       NUMBER;
15248 l_adr_value_type_code         VARCHAR2(30);
15249 l_adr_value_combination_id    NUMBER;
15250 l_adr_value_segment_code      VARCHAR2(30);
15251 
15252 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
15253 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
15254 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
15255 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
15256 
15257 -- 4262811 Variables ------------------------------------------------------------------------------------------
15258 l_entered_amt_idx             NUMBER;
15259 l_accted_amt_idx              NUMBER;
15260 l_acc_rev_flag                VARCHAR2(1);
15261 l_accrual_line_num            NUMBER;
15262 l_tmp_amt                     NUMBER;
15263 l_acc_rev_natural_side_code   VARCHAR2(1);
15264 
15265 l_num_entries                 NUMBER;
15266 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
15267 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
15268 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
15269 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
15270 l_recog_line_1                NUMBER;
15271 l_recog_line_2                NUMBER;
15272 
15276 
15273 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
15274 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
15275 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
15277 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15278 
15279 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
15280 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
15281 
15282 ---------------------------------------------------------------------------------------------------------------
15283 
15284 
15285 --
15286 -- bulk performance
15287 --
15288 l_balance_type_code           VARCHAR2(1);
15289 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
15290 l_log_module                  VARCHAR2(240);
15291 
15292 --
15293 -- Upgrade strategy
15294 --
15295 l_actual_upg_option           VARCHAR2(1);
15296 l_enc_upg_option           VARCHAR2(1);
15297 
15298 --
15299 BEGIN
15300 --
15301 IF g_log_enabled THEN
15302       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
15303 END IF;
15304 --
15305 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15306 
15307       trace
15308          (p_msg      => 'BEGIN of AcctLineType_57'
15309          ,p_level    => C_LEVEL_PROCEDURE
15310          ,p_module   => l_log_module);
15311 
15312 END IF;
15313 --
15314 l_component_type             := 'AMB_JLT';
15315 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_INV';
15316 l_component_type_code        := 'S';
15317 l_component_appl_id          :=  200;
15318 l_amb_context_code           := 'DEFAULT';
15319 l_entity_code                := 'AP_INVOICES';
15320 l_event_class_code           := 'INVOICES';
15321 l_event_type_code            := 'INVOICES_ALL';
15322 l_line_definition_owner_code := 'S';
15323 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
15324 --
15325 l_balance_type_code          := 'A';
15326 l_segment                     := NULL;
15327 l_ccid                        := NULL;
15328 l_adr_transaction_coa_id      := NULL;
15329 l_adr_accounting_coa_id       := NULL;
15330 l_adr_flexfield_segment_code  := NULL;
15331 l_adr_flex_value_set_id       := NULL;
15332 l_adr_value_type_code         := NULL;
15333 l_adr_value_combination_id    := NULL;
15334 l_adr_value_segment_code      := NULL;
15335 
15336 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
15337 l_bflow_class_code           := '';    -- 4219869 Business Flow
15338 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
15339 l_budgetary_control_flag     := 'N';
15340 
15341 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
15342 l_bflow_applied_to_amt       := NULL; -- 5132302
15343 l_entered_amt_idx            := NULL;          -- 4262811
15344 l_accted_amt_idx             := NULL;          -- 4262811
15345 l_acc_rev_flag               := NULL;          -- 4262811
15346 l_accrual_line_num           := NULL;          -- 4262811
15347 l_tmp_amt                    := NULL;          -- 4262811
15348 --
15349 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
15350             (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
15351                return;
15352   END IF;
15353   
15354 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15355     l_balance_type_code <> 'B' THEN
15356 IF NVL(p_source_21,'
15357 ') =  'NONREC_TAX' AND 
15358 NVL(p_source_84,'
15359 ') =  'Y'
15360  THEN 
15361 
15362    --
15363    XLA_AE_LINES_PKG.SetNewLine;
15364 
15365    p_balance_type_code          := l_balance_type_code;
15366    -- set the flag so later we will know whether the gain loss line needs to be created
15367    
15368    IF(l_balance_type_code = 'A' ) THEN
15369      p_actual_flag :='G';
15370    END IF;
15371 
15372    --
15373    -- bulk performance
15374    --
15375    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15376                                       p_header_num   => 0); -- 4262811
15377    --
15378    -- set accounting line options
15379    --
15380    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15381            p_natural_side_code          => 'G'
15382          , p_gain_or_loss_flag          => 'N'
15383          , p_gl_transfer_mode_code      => 'S'
15384          , p_acct_entry_type_code       => 'A'
15385          , p_switch_side_flag           => ''
15386          , p_merge_duplicate_code       => 'A'
15387          );
15388    --
15389    l_acc_rev_natural_side_code := 'C';  -- 4262811
15390    -- 
15391    --
15392    -- set accounting line type info
15393    --
15394    xla_ae_lines_pkg.SetAcctLineType
15395       (p_component_type             => l_component_type
15396       ,p_event_type_code            => l_event_type_code
15397       ,p_line_definition_owner_code => l_line_definition_owner_code
15398       ,p_line_definition_code       => l_line_definition_code
15399       ,p_accounting_line_code       => l_component_code
15400       ,p_accounting_line_type_code  => l_component_type_code
15401       ,p_accounting_line_appl_id    => l_component_appl_id
15402       ,p_amb_context_code           => l_amb_context_code
15403       ,p_entity_code                => l_entity_code
15404       ,p_event_class_code           => l_event_class_code);
15405    --
15406    -- set accounting class
15407    --
15408    xla_ae_lines_pkg.SetAcctClass(
15412 
15409            p_accounting_class_code  => 'TERV'
15410          , p_ae_header_id           => l_ae_header_id
15411          );
15413    --
15414    -- set rounding class
15415    --
15416    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15417                       'TERV';
15418 
15419    --
15420    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15421    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15422    --
15423    -- bulk performance
15424    --
15425    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15426 
15427    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15428       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15429 
15430    -- 4955764
15431    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15432       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15433 
15434    -- 4458381 Public Sector Enh
15435    
15436    --
15437    -- set accounting attributes for the line type
15438    --
15439    l_entered_amt_idx := NULL;
15440    l_accted_amt_idx  := 24;
15441    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
15442    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15443    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
15444    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
15445    l_rec_acct_attrs.array_num_value(2)  := 
15446 xla_ae_sources_pkg.GetSystemSourceNum(
15447    p_source_code           => 'XLA_EVENT_APPL_ID'
15448  , p_source_type_code      => 'Y'
15449  , p_source_application_id =>  602
15450 );
15451    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
15452    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
15453    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
15454    l_rec_acct_attrs.array_char_value(4)  := 
15455 xla_ae_sources_pkg.GetSystemSourceChar(
15456    p_source_code           => 'XLA_ENTITY_CODE'
15457  , p_source_type_code      => 'Y'
15458  , p_source_application_id =>  602
15459 );
15460    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
15461    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
15462    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
15463    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
15464    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
15465    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
15466    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
15467    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
15468    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15469    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
15470    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
15471    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
15472    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
15473    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
15474    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15475    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
15476    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
15477    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
15478    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
15479    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
15480    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
15481    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
15482    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
15483    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
15484    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
15485    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
15486    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
15487    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
15488    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
15489    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
15490    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
15491    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
15492    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
15493    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
15494    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
15495    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
15496    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
15497    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
15498    l_rec_acct_attrs.array_acct_attr_code(24) := 'LEDGER_AMOUNT';
15499    l_rec_acct_attrs.array_num_value(24)  := p_source_9;
15500    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_END_DATE';
15501    l_rec_acct_attrs.array_date_value(25)  := p_source_65;
15502    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_OPTION';
15503    l_rec_acct_attrs.array_char_value(26)  := p_source_66;
15504    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_START_DATE';
15505    l_rec_acct_attrs.array_date_value(27)  := p_source_67;
15506    l_rec_acct_attrs.array_acct_attr_code(28) := 'OVERRIDE_ACCTD_AMT_FLAG';
15507    l_rec_acct_attrs.array_char_value(28)  := p_source_68;
15508    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_ID';
15509    l_rec_acct_attrs.array_num_value(29)  := p_source_69;
15510    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_SITE_ID';
15511    l_rec_acct_attrs.array_num_value(30)  := p_source_70;
15515    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
15512    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
15513    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
15514    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
15516    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
15517    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
15518    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
15519    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
15520    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
15521    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
15522    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
15523    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
15524    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
15525    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
15526    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
15527    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
15528    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
15529    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
15530 
15531    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15532    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15533 
15534    ---------------------------------------------------------------------------------------------------------------
15535    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15536    ---------------------------------------------------------------------------------------------------------------
15537    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15538 
15539    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15540    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15541 
15542    IF xla_accounting_cache_pkg.GetValueChar
15543          (p_source_code         => 'LEDGER_CATEGORY_CODE'
15544          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15545    AND l_bflow_method_code = 'PRIOR_ENTRY'
15546 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15547    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15548          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15549        )
15550    THEN
15551          xla_ae_lines_pkg.BflowUpgEntry
15552            (p_business_method_code    => l_bflow_method_code
15553            ,p_business_class_code     => l_bflow_class_code
15554            ,p_balance_type            => l_balance_type_code);
15555    ELSE
15556       NULL;
15557 -- No business flow processing for business flow method of NONE.
15558    END IF;
15559 
15560    --
15561    -- call analytical criteria
15562    --
15563    
15564    --
15565    -- call description
15566    --
15567    
15568 xla_ae_lines_pkg.SetLineDescription(
15569    p_ae_header_id => l_ae_header_id
15570   ,p_description  => Description_2 (
15571      p_application_id         => p_application_id
15572    , p_ae_header_id           => l_ae_header_id 
15573 , p_source_1 => p_source_1
15574    )
15575 );
15576 
15577 
15578    --
15579    -- call ADRs
15580    -- Bug 4922099
15581    --
15582    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15583         (NVL(l_actual_upg_option, 'N') = 'O') OR
15584         (NVL(l_enc_upg_option, 'N') = 'O')
15585       )
15586    THEN
15587    NULL;
15588    --
15589    --
15590    
15591   l_ccid := AcctDerRule_29(
15592            p_application_id           => p_application_id
15593          , p_ae_header_id             => l_ae_header_id 
15594 , p_source_3 => p_source_3
15595 , p_source_3_meaning => p_source_3_meaning
15596 , p_source_8 => p_source_8
15597 , p_source_9 => p_source_9
15598 , p_source_10 => p_source_10
15599 , p_source_10_meaning => p_source_10_meaning
15600 , p_source_11 => p_source_11
15601 , p_source_18 => p_source_18
15602 , p_source_35 => p_source_35
15603 , p_source_35_meaning => p_source_35_meaning
15604          , x_transaction_coa_id       => l_adr_transaction_coa_id
15605          , x_accounting_coa_id        => l_adr_accounting_coa_id
15606          , x_value_type_code          => l_adr_value_type_code
15607          , p_side                     => 'ALL'
15608    );
15609 
15610    xla_ae_lines_pkg.set_ccid(
15611     p_code_combination_id          => l_ccid
15612   , p_value_type_code              => l_adr_value_type_code
15613   , p_transaction_coa_id           => l_adr_transaction_coa_id
15614   , p_accounting_coa_id            => l_adr_accounting_coa_id
15615   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
15616   , p_adr_type_code                => 'S'
15617   , p_component_type               => l_component_type
15618   , p_component_code               => l_component_code
15619   , p_component_type_code          => l_component_type_code
15620   , p_component_appl_id            => l_component_appl_id
15621   , p_amb_context_code             => l_amb_context_code
15622   , p_side                         => 'ALL'
15623   );
15624 
15625 
15626    l_segment := AcctDerRule_8(
15627            p_application_id           => p_application_id
15628          , p_ae_header_id             => l_ae_header_id 
15629 , p_source_3 => p_source_3
15630 , p_source_3_meaning => p_source_3_meaning
15631 , p_source_8 => p_source_8
15632 , p_source_10 => p_source_10
15633 , p_source_10_meaning => p_source_10_meaning
15637          , x_flex_value_set_id        => l_adr_flex_value_set_id
15634          , x_transaction_coa_id       => l_adr_transaction_coa_id
15635          , x_accounting_coa_id        => l_adr_accounting_coa_id
15636          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15638          , x_value_type_code          => l_adr_value_type_code
15639          , x_value_combination_id     => l_adr_value_combination_id
15640          , x_value_segment_code       => l_adr_value_segment_code
15641          , p_side                     => 'CREDIT'
15642          , p_override_seg_flag        => 'Y'
15643    );
15644 
15645    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15646 
15647       xla_ae_lines_pkg.set_segment(
15648           p_to_segment_code         => 'GL_ACCOUNT'
15649         , p_segment_value           => l_segment
15650         , p_from_segment_code       => l_adr_value_segment_code
15651         , p_from_combination_id     => l_adr_value_combination_id
15652         , p_value_type_code         => l_adr_value_type_code
15653         , p_transaction_coa_id      => l_adr_transaction_coa_id
15654         , p_accounting_coa_id       => l_adr_accounting_coa_id
15655         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15656         , p_flex_value_set_id       => l_adr_flex_value_set_id
15657         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
15658         , p_adr_type_code           => 'S'
15659         , p_component_type          => l_component_type
15660         , p_component_code          => l_component_code
15661         , p_component_type_code     => l_component_type_code
15662         , p_component_appl_id       => l_component_appl_id
15663         , p_amb_context_code        => l_amb_context_code
15664         , p_entity_code             => 'AP_INVOICES'
15665         , p_event_class_code        => 'INVOICES'
15666         , p_side                    => 'CREDIT'
15667         );
15668 
15669   END IF;
15670 
15671    l_segment := AcctDerRule_9(
15672            p_application_id           => p_application_id
15673          , p_ae_header_id             => l_ae_header_id 
15674 , p_source_3 => p_source_3
15675 , p_source_3_meaning => p_source_3_meaning
15676 , p_source_10 => p_source_10
15677 , p_source_10_meaning => p_source_10_meaning
15678 , p_source_11 => p_source_11
15679          , x_transaction_coa_id       => l_adr_transaction_coa_id
15680          , x_accounting_coa_id        => l_adr_accounting_coa_id
15681          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15682          , x_flex_value_set_id        => l_adr_flex_value_set_id
15683          , x_value_type_code          => l_adr_value_type_code
15684          , x_value_combination_id     => l_adr_value_combination_id
15685          , x_value_segment_code       => l_adr_value_segment_code
15686          , p_side                     => 'DEBIT'
15687          , p_override_seg_flag        => 'Y'
15688    );
15689 
15690    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15691 
15692       xla_ae_lines_pkg.set_segment(
15693           p_to_segment_code         => 'GL_ACCOUNT'
15694         , p_segment_value           => l_segment
15695         , p_from_segment_code       => l_adr_value_segment_code
15696         , p_from_combination_id     => l_adr_value_combination_id
15697         , p_value_type_code         => l_adr_value_type_code
15698         , p_transaction_coa_id      => l_adr_transaction_coa_id
15699         , p_accounting_coa_id       => l_adr_accounting_coa_id
15700         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15701         , p_flex_value_set_id       => l_adr_flex_value_set_id
15702         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
15703         , p_adr_type_code           => 'S'
15704         , p_component_type          => l_component_type
15705         , p_component_code          => l_component_code
15706         , p_component_type_code     => l_component_type_code
15707         , p_component_appl_id       => l_component_appl_id
15708         , p_amb_context_code        => l_amb_context_code
15709         , p_entity_code             => 'AP_INVOICES'
15710         , p_event_class_code        => 'INVOICES'
15711         , p_side                    => 'DEBIT'
15712         );
15713 
15714   END IF;
15715 
15716    l_segment := AcctDerRule_22(
15717            p_application_id           => p_application_id
15718          , p_ae_header_id             => l_ae_header_id 
15719 , p_source_3 => p_source_3
15720 , p_source_3_meaning => p_source_3_meaning
15721 , p_source_10 => p_source_10
15722 , p_source_10_meaning => p_source_10_meaning
15723 , p_source_18 => p_source_18
15724          , x_transaction_coa_id       => l_adr_transaction_coa_id
15725          , x_accounting_coa_id        => l_adr_accounting_coa_id
15726          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15727          , x_flex_value_set_id        => l_adr_flex_value_set_id
15728          , x_value_type_code          => l_adr_value_type_code
15729          , x_value_combination_id     => l_adr_value_combination_id
15730          , x_value_segment_code       => l_adr_value_segment_code
15731          , p_side                     => 'ALL'
15732          , p_override_seg_flag        => 'Y'
15733    );
15734 
15735    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15736 
15737       xla_ae_lines_pkg.set_segment(
15738           p_to_segment_code         => 'GL_BALANCING'
15739         , p_segment_value           => l_segment
15740         , p_from_segment_code       => l_adr_value_segment_code
15741         , p_from_combination_id     => l_adr_value_combination_id
15742         , p_value_type_code         => l_adr_value_type_code
15743         , p_transaction_coa_id      => l_adr_transaction_coa_id
15744         , p_accounting_coa_id       => l_adr_accounting_coa_id
15748         , p_adr_type_code           => 'S'
15745         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15746         , p_flex_value_set_id       => l_adr_flex_value_set_id
15747         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
15749         , p_component_type          => l_component_type
15750         , p_component_code          => l_component_code
15751         , p_component_type_code     => l_component_type_code
15752         , p_component_appl_id       => l_component_appl_id
15753         , p_amb_context_code        => l_amb_context_code
15754         , p_entity_code             => 'AP_INVOICES'
15755         , p_event_class_code        => 'INVOICES'
15756         , p_side                    => 'ALL'
15757         );
15758 
15759   END IF;
15760 
15761    --
15762    --
15763    END IF;
15764    --
15765    -- Bug 4922099
15766    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15767           (NVL(l_enc_upg_option, 'N') = 'O')
15768         ) AND
15769         (l_bflow_method_code = 'PRIOR_ENTRY')
15770       )
15771    THEN
15772       IF
15773       --
15774       1 = 2
15775       --
15776       THEN
15777       xla_accounting_err_pkg.build_message
15778                                     (p_appli_s_name            => 'XLA'
15779                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15780                                     ,p_token_1                 => 'LINE_NUMBER'
15781                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
15782                                     ,p_token_2                 => 'LINE_TYPE_NAME'
15783                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
15784                                                                              l_component_type
15785                                                                             ,l_component_code
15786                                                                             ,l_component_type_code
15787                                                                             ,l_component_appl_id
15788                                                                             ,l_amb_context_code
15789                                                                             ,l_entity_code
15790                                                                             ,l_event_class_code
15791                                                                            )
15792                                     ,p_token_3                 => 'OWNER'
15793                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
15794                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
15795                                                                           ,p_lookup_code    => l_component_type_code
15796                                                                          )
15797                                     ,p_token_4                 => 'PRODUCT_NAME'
15798                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15799                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15800                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15801                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15802                                     ,p_ae_header_id            =>  NULL
15803                                        );
15804 
15805         IF (C_LEVEL_ERROR>= g_log_level) THEN
15806                  trace
15807                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15808                       ,p_level    => C_LEVEL_ERROR
15809                       ,p_module   => l_log_module);
15810         END IF;
15811       END IF;
15812    END IF;
15813    --
15814    --
15815    ------------------------------------------------------------------------------------------------
15816    -- 4219869 Business Flow
15817    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15818    -- Prior Entry.  Currently, the following code is always generated.
15819    ------------------------------------------------------------------------------------------------
15820    XLA_AE_LINES_PKG.ValidateCurrentLine;
15821 
15822    ------------------------------------------------------------------------------------
15823    -- 4219869 Business Flow
15824    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15825    ------------------------------------------------------------------------------------
15826    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15827 
15828    ----------------------------------------------------------------------------------
15829    -- 4219869 Business Flow
15830    -- Update journal entry status -- Need to generate this within IF <condition>
15831    ----------------------------------------------------------------------------------
15832    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15833          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15834          ,p_balance_type_code => l_balance_type_code
15835          );
15836 
15837    -------------------------------------------------------------------------------------------
15838    -- 4262811 - Generate the Accrual Reversal lines
15839    -------------------------------------------------------------------------------------------
15840    BEGIN
15841       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15842                               (g_array_event(p_event_id).array_value_num('header_index'));
15846    EXCEPTION
15843       IF l_acc_rev_flag IS NULL THEN
15844          l_acc_rev_flag := 'N';
15845       END IF;
15847       WHEN OTHERS THEN
15848          l_acc_rev_flag := 'N';
15849    END;
15850    --
15851    IF (l_acc_rev_flag = 'Y') THEN
15852 
15853        -- 4645092  ------------------------------------------------------------------------------
15854        -- To allow MPA report to determine if it should generate report process
15855        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15856        ------------------------------------------------------------------------------------------
15857 
15858        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15859        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15860    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
15861    -- call ADRs
15862    -- Bug 4922099
15863    --
15864    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15865         (NVL(l_actual_upg_option, 'N') = 'O') OR
15866         (NVL(l_enc_upg_option, 'N') = 'O')
15867       )
15868    THEN
15869    NULL;
15870    --
15871    --
15872    
15873   l_ccid := AcctDerRule_29(
15874            p_application_id           => p_application_id
15875          , p_ae_header_id             => l_ae_header_id 
15876 , p_source_3 => p_source_3
15877 , p_source_3_meaning => p_source_3_meaning
15878 , p_source_8 => p_source_8
15879 , p_source_9 => p_source_9
15880 , p_source_10 => p_source_10
15881 , p_source_10_meaning => p_source_10_meaning
15882 , p_source_11 => p_source_11
15883 , p_source_18 => p_source_18
15884 , p_source_35 => p_source_35
15885 , p_source_35_meaning => p_source_35_meaning
15886          , x_transaction_coa_id       => l_adr_transaction_coa_id
15887          , x_accounting_coa_id        => l_adr_accounting_coa_id
15888          , x_value_type_code          => l_adr_value_type_code
15889          , p_side                     => 'ALL'
15890    );
15891 
15892    xla_ae_lines_pkg.set_ccid(
15893     p_code_combination_id          => l_ccid
15894   , p_value_type_code              => l_adr_value_type_code
15895   , p_transaction_coa_id           => l_adr_transaction_coa_id
15896   , p_accounting_coa_id            => l_adr_accounting_coa_id
15897   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
15898   , p_adr_type_code                => 'S'
15899   , p_component_type               => l_component_type
15900   , p_component_code               => l_component_code
15901   , p_component_type_code          => l_component_type_code
15902   , p_component_appl_id            => l_component_appl_id
15903   , p_amb_context_code             => l_amb_context_code
15904   , p_side                         => 'ALL'
15905   );
15906 
15907 
15908    l_segment := AcctDerRule_8(
15909            p_application_id           => p_application_id
15910          , p_ae_header_id             => l_ae_header_id 
15911 , p_source_3 => p_source_3
15912 , p_source_3_meaning => p_source_3_meaning
15913 , p_source_8 => p_source_8
15914 , p_source_10 => p_source_10
15915 , p_source_10_meaning => p_source_10_meaning
15916          , x_transaction_coa_id       => l_adr_transaction_coa_id
15917          , x_accounting_coa_id        => l_adr_accounting_coa_id
15918          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15919          , x_flex_value_set_id        => l_adr_flex_value_set_id
15920          , x_value_type_code          => l_adr_value_type_code
15921          , x_value_combination_id     => l_adr_value_combination_id
15922          , x_value_segment_code       => l_adr_value_segment_code
15923          , p_side                     => 'CREDIT'
15924          , p_override_seg_flag        => 'Y'
15925    );
15926 
15927    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15928 
15929       xla_ae_lines_pkg.set_segment(
15930           p_to_segment_code         => 'GL_ACCOUNT'
15931         , p_segment_value           => l_segment
15932         , p_from_segment_code       => l_adr_value_segment_code
15933         , p_from_combination_id     => l_adr_value_combination_id
15934         , p_value_type_code         => l_adr_value_type_code
15935         , p_transaction_coa_id      => l_adr_transaction_coa_id
15936         , p_accounting_coa_id       => l_adr_accounting_coa_id
15937         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15938         , p_flex_value_set_id       => l_adr_flex_value_set_id
15939         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
15940         , p_adr_type_code           => 'S'
15941         , p_component_type          => l_component_type
15942         , p_component_code          => l_component_code
15943         , p_component_type_code     => l_component_type_code
15944         , p_component_appl_id       => l_component_appl_id
15945         , p_amb_context_code        => l_amb_context_code
15946         , p_entity_code             => 'AP_INVOICES'
15947         , p_event_class_code        => 'INVOICES'
15948         , p_side                    => 'CREDIT'
15949         );
15950 
15951   END IF;
15952 
15953    l_segment := AcctDerRule_9(
15954            p_application_id           => p_application_id
15955          , p_ae_header_id             => l_ae_header_id 
15956 , p_source_3 => p_source_3
15957 , p_source_3_meaning => p_source_3_meaning
15958 , p_source_10 => p_source_10
15959 , p_source_10_meaning => p_source_10_meaning
15960 , p_source_11 => p_source_11
15961          , x_transaction_coa_id       => l_adr_transaction_coa_id
15962          , x_accounting_coa_id        => l_adr_accounting_coa_id
15963          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15964          , x_flex_value_set_id        => l_adr_flex_value_set_id
15968          , p_side                     => 'DEBIT'
15965          , x_value_type_code          => l_adr_value_type_code
15966          , x_value_combination_id     => l_adr_value_combination_id
15967          , x_value_segment_code       => l_adr_value_segment_code
15969          , p_override_seg_flag        => 'Y'
15970    );
15971 
15972    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15973 
15974       xla_ae_lines_pkg.set_segment(
15975           p_to_segment_code         => 'GL_ACCOUNT'
15976         , p_segment_value           => l_segment
15977         , p_from_segment_code       => l_adr_value_segment_code
15978         , p_from_combination_id     => l_adr_value_combination_id
15979         , p_value_type_code         => l_adr_value_type_code
15980         , p_transaction_coa_id      => l_adr_transaction_coa_id
15981         , p_accounting_coa_id       => l_adr_accounting_coa_id
15982         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15983         , p_flex_value_set_id       => l_adr_flex_value_set_id
15984         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
15985         , p_adr_type_code           => 'S'
15986         , p_component_type          => l_component_type
15987         , p_component_code          => l_component_code
15988         , p_component_type_code     => l_component_type_code
15989         , p_component_appl_id       => l_component_appl_id
15990         , p_amb_context_code        => l_amb_context_code
15991         , p_entity_code             => 'AP_INVOICES'
15992         , p_event_class_code        => 'INVOICES'
15993         , p_side                    => 'DEBIT'
15994         );
15995 
15996   END IF;
15997 
15998    l_segment := AcctDerRule_22(
15999            p_application_id           => p_application_id
16000          , p_ae_header_id             => l_ae_header_id 
16001 , p_source_3 => p_source_3
16002 , p_source_3_meaning => p_source_3_meaning
16003 , p_source_10 => p_source_10
16004 , p_source_10_meaning => p_source_10_meaning
16005 , p_source_18 => p_source_18
16006          , x_transaction_coa_id       => l_adr_transaction_coa_id
16007          , x_accounting_coa_id        => l_adr_accounting_coa_id
16008          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16009          , x_flex_value_set_id        => l_adr_flex_value_set_id
16010          , x_value_type_code          => l_adr_value_type_code
16011          , x_value_combination_id     => l_adr_value_combination_id
16012          , x_value_segment_code       => l_adr_value_segment_code
16013          , p_side                     => 'ALL'
16014          , p_override_seg_flag        => 'Y'
16015    );
16016 
16017    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16018 
16019       xla_ae_lines_pkg.set_segment(
16020           p_to_segment_code         => 'GL_BALANCING'
16021         , p_segment_value           => l_segment
16022         , p_from_segment_code       => l_adr_value_segment_code
16023         , p_from_combination_id     => l_adr_value_combination_id
16024         , p_value_type_code         => l_adr_value_type_code
16025         , p_transaction_coa_id      => l_adr_transaction_coa_id
16026         , p_accounting_coa_id       => l_adr_accounting_coa_id
16027         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16028         , p_flex_value_set_id       => l_adr_flex_value_set_id
16029         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
16030         , p_adr_type_code           => 'S'
16031         , p_component_type          => l_component_type
16032         , p_component_code          => l_component_code
16033         , p_component_type_code     => l_component_type_code
16034         , p_component_appl_id       => l_component_appl_id
16035         , p_amb_context_code        => l_amb_context_code
16036         , p_entity_code             => 'AP_INVOICES'
16037         , p_event_class_code        => 'INVOICES'
16038         , p_side                    => 'ALL'
16039         );
16040 
16041   END IF;
16042 
16043    --
16044    --
16045    END IF;
16046 
16047        --
16048        -- Update the line information that should be overwritten
16049        --
16050        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16051                                          p_header_num   => 1);
16052        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
16053 
16054        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16055 
16056        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
16057           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16058        END IF;
16059 
16060       --
16061       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16062       --
16063       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16064           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
16065       ELSE
16066           ---------------------------------------------------------------------------------------------------
16067           -- 4262811a Switch Sign
16068           ---------------------------------------------------------------------------------------------------
16069           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
16070           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16071                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16075           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16072           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16073                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16074           -- 5132302
16076                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16077 
16078       END IF;
16079 
16080       -- 4955764
16081       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16082       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16083 
16084 
16085       XLA_AE_LINES_PKG.ValidateCurrentLine;
16086       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16087 
16088       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16089                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16090                ,p_balance_type_code => l_balance_type_code);
16091 
16092    END IF;
16093 
16094    -----------------------------------------------------------------------------------------
16095    -- 4262811 Multiperiod Accounting
16096    -----------------------------------------------------------------------------------------
16097      -- No MPA option is assigned.
16098 
16099 
16100 END IF;
16101 END IF;
16102 --
16103 
16104 --
16105 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16106    trace
16107       (p_msg      => 'END of AcctLineType_57'
16108       ,p_level    => C_LEVEL_PROCEDURE
16109       ,p_module   => l_log_module);
16110 END IF;
16111 --
16112 EXCEPTION
16113   WHEN xla_exceptions_pkg.application_exception THEN
16114       RAISE;
16115   WHEN OTHERS THEN
16116        xla_exceptions_pkg.raise_message
16117            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_57');
16118 END AcctLineType_57;
16119 --
16120 
16121 ---------------------------------------
16122 --
16123 -- PRIVATE FUNCTION
16124 --         AcctLineType_58
16125 --
16126 ---------------------------------------
16127 PROCEDURE AcctLineType_58 (
16128   p_application_id        IN NUMBER
16129  ,p_event_id              IN NUMBER
16130  ,p_calculate_acctd_flag  IN VARCHAR2
16131  ,p_calculate_g_l_flag    IN VARCHAR2
16132  ,p_actual_flag           IN OUT VARCHAR2
16133  ,p_balance_type_code     OUT VARCHAR2
16134  ,p_gain_or_loss_ref      OUT VARCHAR2
16135  
16136 --Invoice Distribution Description
16137  , p_source_1            IN VARCHAR2
16138 --Automatic Offsets Value
16139  , p_source_3            IN VARCHAR2
16140  , p_source_3_meaning    IN VARCHAR2
16141 --Purchase Order Rate Variance Gain Account
16142  , p_source_8            IN NUMBER
16143 --Invoice Distribution Ledger Amount
16144  , p_source_9            IN NUMBER
16145 --Destination Type of the PO Distribution
16146  , p_source_10            IN VARCHAR2
16147  , p_source_10_meaning    IN VARCHAR2
16148 --Purchase Order Rate Variance Loss Account
16149  , p_source_11            IN NUMBER
16150 --Invoice Distribution Account
16151  , p_source_18            IN NUMBER
16152 --Invoice Distribution Type
16153  , p_source_21            IN VARCHAR2
16154  , p_source_21_meaning    IN VARCHAR2
16155 --Automatic Offsets Flag
16156  , p_source_35            IN VARCHAR2
16157  , p_source_35_meaning    IN VARCHAR2
16158 --Accounting Reversal Indicator
16159  , p_source_41            IN VARCHAR2
16160 --Distribution Link Type
16161  , p_source_43            IN VARCHAR2
16162 --Allocation to Main Distribution Identifier
16163  , p_source_45            IN NUMBER
16164 --Invoice Identifier
16165  , p_source_46            IN NUMBER
16166 --Invoice Distribution Identifier
16167  , p_source_52            IN NUMBER
16168 --Payables Encumbrance Upgrade Credit Account
16169  , p_source_53            IN NUMBER
16170 --Payables Encumbrance Upgrade Credit Amount
16171  , p_source_54            IN NUMBER
16172 --Invoice Currency Code
16173  , p_source_55            IN VARCHAR2
16174 --Payables Encumbrance Upgrade Credit Base Amount
16175  , p_source_56            IN NUMBER
16176 --Payables Encumbrance Upgrade Debit Account
16177  , p_source_57            IN NUMBER
16178 --Payables Encumbrance Upgrade Debit Amount
16179  , p_source_58            IN NUMBER
16180 --Payables Encumbrance Upgrade Debit Base Amount
16181  , p_source_59            IN NUMBER
16182 --Payables Encumbrance Upgrade Option
16183  , p_source_60            IN VARCHAR2
16184 --Deferred Accounting End Date
16185  , p_source_65            IN DATE
16186 --Deferred Accounting Option
16187  , p_source_66            IN VARCHAR2
16188 --Deferred Accounting Start Date
16189  , p_source_67            IN DATE
16190 --Override Accounted Amount Indicator
16191  , p_source_68            IN VARCHAR2
16192  , p_source_68_meaning    IN VARCHAR2
16193 --Invoice Supplier Identifier
16194  , p_source_69            IN NUMBER
16195 --Invoice Supplier Site Identifier
16196  , p_source_70            IN NUMBER
16197 --Third Party Type
16198  , p_source_71            IN VARCHAR2
16199 --Parent Reversal Identifier
16200  , p_source_72            IN NUMBER
16201 --Invoice Distribution Statistical Amount
16202  , p_source_73            IN NUMBER
16203 --Invoice Distribution Tax Line Identifier
16204  , p_source_74            IN NUMBER
16205 --Invoice Distribution Tax Distribution Identifier from Tax
16206  , p_source_75            IN NUMBER
16207 --Invoice Distribution Summary Tax Line Identifier
16208  , p_source_76            IN NUMBER
16209 --Payables Upgrade Credit Encumbrance Type Identifier
16213 --Business Flow Accounts Payable Application Identifier
16210  , p_source_77            IN NUMBER
16211 --Payables Upgrade Debit Encumbrance Type Identifier
16212  , p_source_78            IN NUMBER
16214  , p_source_79            IN NUMBER
16215 --Business Flow Invoice Distribution Type
16216  , p_source_80            IN VARCHAR2
16217 --Business Flow Invoice Entity Code
16218  , p_source_81            IN VARCHAR2
16219 --Business Flow Invoice Distribution Identifier
16220  , p_source_82            IN NUMBER
16221 --Business Flow Invoice Identifier
16222  , p_source_83            IN NUMBER
16223 --Accrue on Receipt Option
16224  , p_source_84            IN VARCHAR2
16225  , p_source_84_meaning    IN VARCHAR2
16226 )
16227 IS
16228 
16229 l_component_type              VARCHAR2(80);
16230 l_component_code              VARCHAR2(30);
16231 l_component_type_code         VARCHAR2(1);
16232 l_component_appl_id           INTEGER;
16233 l_amb_context_code            VARCHAR2(30);
16234 l_entity_code                 VARCHAR2(30);
16235 l_event_class_code            VARCHAR2(30);
16236 l_ae_header_id                NUMBER;
16237 l_event_type_code             VARCHAR2(30);
16238 l_line_definition_code        VARCHAR2(30);
16239 l_line_definition_owner_code  VARCHAR2(1);
16240 --
16241 -- adr variables
16242 l_segment                     VARCHAR2(30);
16243 l_ccid                        NUMBER;
16244 l_adr_transaction_coa_id      NUMBER;
16245 l_adr_accounting_coa_id       NUMBER;
16246 l_adr_flexfield_segment_code  VARCHAR2(30);
16247 l_adr_flex_value_set_id       NUMBER;
16248 l_adr_value_type_code         VARCHAR2(30);
16249 l_adr_value_combination_id    NUMBER;
16250 l_adr_value_segment_code      VARCHAR2(30);
16251 
16252 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
16253 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
16254 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
16255 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
16256 
16257 -- 4262811 Variables ------------------------------------------------------------------------------------------
16258 l_entered_amt_idx             NUMBER;
16259 l_accted_amt_idx              NUMBER;
16260 l_acc_rev_flag                VARCHAR2(1);
16261 l_accrual_line_num            NUMBER;
16262 l_tmp_amt                     NUMBER;
16263 l_acc_rev_natural_side_code   VARCHAR2(1);
16264 
16265 l_num_entries                 NUMBER;
16266 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
16267 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
16268 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
16269 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
16270 l_recog_line_1                NUMBER;
16271 l_recog_line_2                NUMBER;
16272 
16273 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
16274 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
16275 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
16276 
16277 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16278 
16279 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
16280 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
16281 
16282 ---------------------------------------------------------------------------------------------------------------
16283 
16284 
16285 --
16286 -- bulk performance
16287 --
16288 l_balance_type_code           VARCHAR2(1);
16289 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
16290 l_log_module                  VARCHAR2(240);
16291 
16292 --
16293 -- Upgrade strategy
16294 --
16295 l_actual_upg_option           VARCHAR2(1);
16296 l_enc_upg_option           VARCHAR2(1);
16297 
16298 --
16299 BEGIN
16300 --
16301 IF g_log_enabled THEN
16302       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
16303 END IF;
16304 --
16305 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16306 
16307       trace
16308          (p_msg      => 'BEGIN of AcctLineType_58'
16309          ,p_level    => C_LEVEL_PROCEDURE
16310          ,p_module   => l_log_module);
16311 
16312 END IF;
16313 --
16314 l_component_type             := 'AMB_JLT';
16315 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_PREPAY';
16316 l_component_type_code        := 'S';
16317 l_component_appl_id          :=  200;
16318 l_amb_context_code           := 'DEFAULT';
16319 l_entity_code                := 'AP_INVOICES';
16320 l_event_class_code           := 'PREPAYMENTS';
16321 l_event_type_code            := 'PREPAYMENTS_ALL';
16322 l_line_definition_owner_code := 'S';
16323 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
16324 --
16325 l_balance_type_code          := 'A';
16326 l_segment                     := NULL;
16327 l_ccid                        := NULL;
16328 l_adr_transaction_coa_id      := NULL;
16329 l_adr_accounting_coa_id       := NULL;
16330 l_adr_flexfield_segment_code  := NULL;
16331 l_adr_flex_value_set_id       := NULL;
16332 l_adr_value_type_code         := NULL;
16333 l_adr_value_combination_id    := NULL;
16334 l_adr_value_segment_code      := NULL;
16335 
16336 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
16337 l_bflow_class_code           := '';    -- 4219869 Business Flow
16338 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
16339 l_budgetary_control_flag     := 'N';
16340 
16341 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
16342 l_bflow_applied_to_amt       := NULL; -- 5132302
16346 l_accrual_line_num           := NULL;          -- 4262811
16343 l_entered_amt_idx            := NULL;          -- 4262811
16344 l_accted_amt_idx             := NULL;          -- 4262811
16345 l_acc_rev_flag               := NULL;          -- 4262811
16347 l_tmp_amt                    := NULL;          -- 4262811
16348 --
16349 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
16350             (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
16351                return;
16352   END IF;
16353   
16354 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16355     l_balance_type_code <> 'B' THEN
16356 IF NVL(p_source_21,'
16357 ') =  'NONREC_TAX' AND 
16358 NVL(p_source_84,'
16359 ') =  'Y'
16360  THEN 
16361 
16362    --
16363    XLA_AE_LINES_PKG.SetNewLine;
16364 
16365    p_balance_type_code          := l_balance_type_code;
16366    -- set the flag so later we will know whether the gain loss line needs to be created
16367    
16368    IF(l_balance_type_code = 'A' ) THEN
16369      p_actual_flag :='G';
16370    END IF;
16371 
16372    --
16373    -- bulk performance
16374    --
16375    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16376                                       p_header_num   => 0); -- 4262811
16377    --
16378    -- set accounting line options
16379    --
16380    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16381            p_natural_side_code          => 'G'
16382          , p_gain_or_loss_flag          => 'N'
16383          , p_gl_transfer_mode_code      => 'S'
16384          , p_acct_entry_type_code       => 'A'
16385          , p_switch_side_flag           => ''
16386          , p_merge_duplicate_code       => 'A'
16387          );
16388    --
16389    l_acc_rev_natural_side_code := 'C';  -- 4262811
16390    -- 
16391    --
16392    -- set accounting line type info
16393    --
16394    xla_ae_lines_pkg.SetAcctLineType
16395       (p_component_type             => l_component_type
16396       ,p_event_type_code            => l_event_type_code
16397       ,p_line_definition_owner_code => l_line_definition_owner_code
16398       ,p_line_definition_code       => l_line_definition_code
16399       ,p_accounting_line_code       => l_component_code
16400       ,p_accounting_line_type_code  => l_component_type_code
16401       ,p_accounting_line_appl_id    => l_component_appl_id
16402       ,p_amb_context_code           => l_amb_context_code
16403       ,p_entity_code                => l_entity_code
16404       ,p_event_class_code           => l_event_class_code);
16405    --
16406    -- set accounting class
16407    --
16408    xla_ae_lines_pkg.SetAcctClass(
16409            p_accounting_class_code  => 'TERV'
16410          , p_ae_header_id           => l_ae_header_id
16411          );
16412 
16413    --
16414    -- set rounding class
16415    --
16416    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16417                       'TERV';
16418 
16419    --
16420    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16421    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16422    --
16423    -- bulk performance
16424    --
16425    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16426 
16427    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16428       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16429 
16430    -- 4955764
16431    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16432       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16433 
16434    -- 4458381 Public Sector Enh
16435    
16436    --
16437    -- set accounting attributes for the line type
16438    --
16439    l_entered_amt_idx := NULL;
16440    l_accted_amt_idx  := 23;
16441    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
16442    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16443    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
16444    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
16445    l_rec_acct_attrs.array_num_value(2)  := 
16446 xla_ae_sources_pkg.GetSystemSourceNum(
16447    p_source_code           => 'XLA_EVENT_APPL_ID'
16448  , p_source_type_code      => 'Y'
16449  , p_source_application_id =>  602
16450 );
16451    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
16452    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
16453    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
16454    l_rec_acct_attrs.array_char_value(4)  := 
16455 xla_ae_sources_pkg.GetSystemSourceChar(
16456    p_source_code           => 'XLA_ENTITY_CODE'
16457  , p_source_type_code      => 'Y'
16458  , p_source_application_id =>  602
16459 );
16460    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
16461    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
16462    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
16463    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
16464    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
16465    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
16466    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16470    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
16467    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
16468    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
16469    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
16471    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
16472    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16473    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
16474    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
16475    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
16476    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
16477    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
16478    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
16479    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
16480    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
16481    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
16482    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
16483    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
16484    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
16485    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
16486    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
16487    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
16488    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
16489    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
16490    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
16491    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
16492    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
16493    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
16494    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
16495    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
16496    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
16497    l_rec_acct_attrs.array_num_value(23)  := p_source_9;
16498    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
16499    l_rec_acct_attrs.array_date_value(24)  := p_source_65;
16500    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
16501    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
16502    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
16503    l_rec_acct_attrs.array_date_value(26)  := p_source_67;
16504    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
16505    l_rec_acct_attrs.array_char_value(27)  := p_source_68;
16506    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
16507    l_rec_acct_attrs.array_num_value(28)  := p_source_69;
16508    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
16509    l_rec_acct_attrs.array_num_value(29)  := p_source_70;
16510    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
16511    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
16512    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
16513    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
16514    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
16515    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
16516    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
16517    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
16518    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
16519    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
16520    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
16521    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
16522    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
16523    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
16524    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
16525    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
16526    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
16527    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
16528 
16529    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16530    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16531 
16532    ---------------------------------------------------------------------------------------------------------------
16533    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16534    ---------------------------------------------------------------------------------------------------------------
16535    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16536 
16537    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16538    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16539 
16540    IF xla_accounting_cache_pkg.GetValueChar
16541          (p_source_code         => 'LEDGER_CATEGORY_CODE'
16542          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16543    AND l_bflow_method_code = 'PRIOR_ENTRY'
16544 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16545    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16546          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16547        )
16548    THEN
16549          xla_ae_lines_pkg.BflowUpgEntry
16550            (p_business_method_code    => l_bflow_method_code
16551            ,p_business_class_code     => l_bflow_class_code
16555 -- No business flow processing for business flow method of NONE.
16552            ,p_balance_type            => l_balance_type_code);
16553    ELSE
16554       NULL;
16556    END IF;
16557 
16558    --
16559    -- call analytical criteria
16560    --
16561    
16562    --
16563    -- call description
16564    --
16565    
16566 xla_ae_lines_pkg.SetLineDescription(
16567    p_ae_header_id => l_ae_header_id
16568   ,p_description  => Description_2 (
16569      p_application_id         => p_application_id
16570    , p_ae_header_id           => l_ae_header_id 
16571 , p_source_1 => p_source_1
16572    )
16573 );
16574 
16575 
16576    --
16577    -- call ADRs
16578    -- Bug 4922099
16579    --
16580    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16581         (NVL(l_actual_upg_option, 'N') = 'O') OR
16582         (NVL(l_enc_upg_option, 'N') = 'O')
16583       )
16584    THEN
16585    NULL;
16586    --
16587    --
16588    
16589   l_ccid := AcctDerRule_29(
16590            p_application_id           => p_application_id
16591          , p_ae_header_id             => l_ae_header_id 
16592 , p_source_3 => p_source_3
16593 , p_source_3_meaning => p_source_3_meaning
16594 , p_source_8 => p_source_8
16595 , p_source_9 => p_source_9
16596 , p_source_10 => p_source_10
16597 , p_source_10_meaning => p_source_10_meaning
16598 , p_source_11 => p_source_11
16599 , p_source_18 => p_source_18
16600 , p_source_35 => p_source_35
16601 , p_source_35_meaning => p_source_35_meaning
16602          , x_transaction_coa_id       => l_adr_transaction_coa_id
16603          , x_accounting_coa_id        => l_adr_accounting_coa_id
16604          , x_value_type_code          => l_adr_value_type_code
16605          , p_side                     => 'ALL'
16606    );
16607 
16608    xla_ae_lines_pkg.set_ccid(
16609     p_code_combination_id          => l_ccid
16610   , p_value_type_code              => l_adr_value_type_code
16611   , p_transaction_coa_id           => l_adr_transaction_coa_id
16612   , p_accounting_coa_id            => l_adr_accounting_coa_id
16613   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
16614   , p_adr_type_code                => 'S'
16615   , p_component_type               => l_component_type
16616   , p_component_code               => l_component_code
16617   , p_component_type_code          => l_component_type_code
16618   , p_component_appl_id            => l_component_appl_id
16619   , p_amb_context_code             => l_amb_context_code
16620   , p_side                         => 'ALL'
16621   );
16622 
16623 
16624    l_segment := AcctDerRule_8(
16625            p_application_id           => p_application_id
16626          , p_ae_header_id             => l_ae_header_id 
16627 , p_source_3 => p_source_3
16628 , p_source_3_meaning => p_source_3_meaning
16629 , p_source_8 => p_source_8
16630 , p_source_10 => p_source_10
16631 , p_source_10_meaning => p_source_10_meaning
16632          , x_transaction_coa_id       => l_adr_transaction_coa_id
16633          , x_accounting_coa_id        => l_adr_accounting_coa_id
16634          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16635          , x_flex_value_set_id        => l_adr_flex_value_set_id
16636          , x_value_type_code          => l_adr_value_type_code
16637          , x_value_combination_id     => l_adr_value_combination_id
16638          , x_value_segment_code       => l_adr_value_segment_code
16639          , p_side                     => 'CREDIT'
16640          , p_override_seg_flag        => 'Y'
16641    );
16642 
16643    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16644 
16645       xla_ae_lines_pkg.set_segment(
16646           p_to_segment_code         => 'GL_ACCOUNT'
16647         , p_segment_value           => l_segment
16648         , p_from_segment_code       => l_adr_value_segment_code
16649         , p_from_combination_id     => l_adr_value_combination_id
16650         , p_value_type_code         => l_adr_value_type_code
16651         , p_transaction_coa_id      => l_adr_transaction_coa_id
16652         , p_accounting_coa_id       => l_adr_accounting_coa_id
16653         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16654         , p_flex_value_set_id       => l_adr_flex_value_set_id
16655         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
16656         , p_adr_type_code           => 'S'
16657         , p_component_type          => l_component_type
16658         , p_component_code          => l_component_code
16659         , p_component_type_code     => l_component_type_code
16660         , p_component_appl_id       => l_component_appl_id
16661         , p_amb_context_code        => l_amb_context_code
16662         , p_entity_code             => 'AP_INVOICES'
16663         , p_event_class_code        => 'PREPAYMENTS'
16664         , p_side                    => 'CREDIT'
16665         );
16666 
16667   END IF;
16668 
16669    l_segment := AcctDerRule_9(
16670            p_application_id           => p_application_id
16671          , p_ae_header_id             => l_ae_header_id 
16672 , p_source_3 => p_source_3
16673 , p_source_3_meaning => p_source_3_meaning
16674 , p_source_10 => p_source_10
16675 , p_source_10_meaning => p_source_10_meaning
16676 , p_source_11 => p_source_11
16677          , x_transaction_coa_id       => l_adr_transaction_coa_id
16678          , x_accounting_coa_id        => l_adr_accounting_coa_id
16679          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16683          , x_value_segment_code       => l_adr_value_segment_code
16680          , x_flex_value_set_id        => l_adr_flex_value_set_id
16681          , x_value_type_code          => l_adr_value_type_code
16682          , x_value_combination_id     => l_adr_value_combination_id
16684          , p_side                     => 'DEBIT'
16685          , p_override_seg_flag        => 'Y'
16686    );
16687 
16688    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16689 
16690       xla_ae_lines_pkg.set_segment(
16691           p_to_segment_code         => 'GL_ACCOUNT'
16692         , p_segment_value           => l_segment
16693         , p_from_segment_code       => l_adr_value_segment_code
16694         , p_from_combination_id     => l_adr_value_combination_id
16695         , p_value_type_code         => l_adr_value_type_code
16696         , p_transaction_coa_id      => l_adr_transaction_coa_id
16697         , p_accounting_coa_id       => l_adr_accounting_coa_id
16698         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16699         , p_flex_value_set_id       => l_adr_flex_value_set_id
16700         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
16701         , p_adr_type_code           => 'S'
16702         , p_component_type          => l_component_type
16703         , p_component_code          => l_component_code
16704         , p_component_type_code     => l_component_type_code
16705         , p_component_appl_id       => l_component_appl_id
16706         , p_amb_context_code        => l_amb_context_code
16707         , p_entity_code             => 'AP_INVOICES'
16708         , p_event_class_code        => 'PREPAYMENTS'
16709         , p_side                    => 'DEBIT'
16710         );
16711 
16712   END IF;
16713 
16714    l_segment := AcctDerRule_22(
16715            p_application_id           => p_application_id
16716          , p_ae_header_id             => l_ae_header_id 
16717 , p_source_3 => p_source_3
16718 , p_source_3_meaning => p_source_3_meaning
16719 , p_source_10 => p_source_10
16720 , p_source_10_meaning => p_source_10_meaning
16721 , p_source_18 => p_source_18
16722          , x_transaction_coa_id       => l_adr_transaction_coa_id
16723          , x_accounting_coa_id        => l_adr_accounting_coa_id
16724          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16725          , x_flex_value_set_id        => l_adr_flex_value_set_id
16726          , x_value_type_code          => l_adr_value_type_code
16727          , x_value_combination_id     => l_adr_value_combination_id
16728          , x_value_segment_code       => l_adr_value_segment_code
16729          , p_side                     => 'ALL'
16730          , p_override_seg_flag        => 'Y'
16731    );
16732 
16733    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16734 
16735       xla_ae_lines_pkg.set_segment(
16736           p_to_segment_code         => 'GL_BALANCING'
16737         , p_segment_value           => l_segment
16738         , p_from_segment_code       => l_adr_value_segment_code
16739         , p_from_combination_id     => l_adr_value_combination_id
16740         , p_value_type_code         => l_adr_value_type_code
16741         , p_transaction_coa_id      => l_adr_transaction_coa_id
16742         , p_accounting_coa_id       => l_adr_accounting_coa_id
16743         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16744         , p_flex_value_set_id       => l_adr_flex_value_set_id
16745         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
16746         , p_adr_type_code           => 'S'
16747         , p_component_type          => l_component_type
16748         , p_component_code          => l_component_code
16749         , p_component_type_code     => l_component_type_code
16750         , p_component_appl_id       => l_component_appl_id
16751         , p_amb_context_code        => l_amb_context_code
16752         , p_entity_code             => 'AP_INVOICES'
16753         , p_event_class_code        => 'PREPAYMENTS'
16754         , p_side                    => 'ALL'
16755         );
16756 
16757   END IF;
16758 
16759    --
16760    --
16761    END IF;
16762    --
16763    -- Bug 4922099
16764    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16765           (NVL(l_enc_upg_option, 'N') = 'O')
16766         ) AND
16767         (l_bflow_method_code = 'PRIOR_ENTRY')
16768       )
16769    THEN
16770       IF
16771       --
16772       1 = 2
16773       --
16774       THEN
16775       xla_accounting_err_pkg.build_message
16776                                     (p_appli_s_name            => 'XLA'
16777                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16778                                     ,p_token_1                 => 'LINE_NUMBER'
16779                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
16780                                     ,p_token_2                 => 'LINE_TYPE_NAME'
16781                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
16782                                                                              l_component_type
16783                                                                             ,l_component_code
16784                                                                             ,l_component_type_code
16785                                                                             ,l_component_appl_id
16786                                                                             ,l_amb_context_code
16787                                                                             ,l_entity_code
16788                                                                             ,l_event_class_code
16789                                                                            )
16790                                     ,p_token_3                 => 'OWNER'
16794                                                                          )
16791                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
16792                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
16793                                                                           ,p_lookup_code    => l_component_type_code
16795                                     ,p_token_4                 => 'PRODUCT_NAME'
16796                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16797                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16798                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16799                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16800                                     ,p_ae_header_id            =>  NULL
16801                                        );
16802 
16803         IF (C_LEVEL_ERROR>= g_log_level) THEN
16804                  trace
16805                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16806                       ,p_level    => C_LEVEL_ERROR
16807                       ,p_module   => l_log_module);
16808         END IF;
16809       END IF;
16810    END IF;
16811    --
16812    --
16813    ------------------------------------------------------------------------------------------------
16814    -- 4219869 Business Flow
16815    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16816    -- Prior Entry.  Currently, the following code is always generated.
16817    ------------------------------------------------------------------------------------------------
16818    XLA_AE_LINES_PKG.ValidateCurrentLine;
16819 
16820    ------------------------------------------------------------------------------------
16821    -- 4219869 Business Flow
16822    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16823    ------------------------------------------------------------------------------------
16824    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16825 
16826    ----------------------------------------------------------------------------------
16827    -- 4219869 Business Flow
16828    -- Update journal entry status -- Need to generate this within IF <condition>
16829    ----------------------------------------------------------------------------------
16830    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16831          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16832          ,p_balance_type_code => l_balance_type_code
16833          );
16834 
16835    -------------------------------------------------------------------------------------------
16836    -- 4262811 - Generate the Accrual Reversal lines
16837    -------------------------------------------------------------------------------------------
16838    BEGIN
16839       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16840                               (g_array_event(p_event_id).array_value_num('header_index'));
16841       IF l_acc_rev_flag IS NULL THEN
16842          l_acc_rev_flag := 'N';
16843       END IF;
16844    EXCEPTION
16845       WHEN OTHERS THEN
16846          l_acc_rev_flag := 'N';
16847    END;
16848    --
16849    IF (l_acc_rev_flag = 'Y') THEN
16850 
16851        -- 4645092  ------------------------------------------------------------------------------
16852        -- To allow MPA report to determine if it should generate report process
16853        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16854        ------------------------------------------------------------------------------------------
16855 
16856        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16857        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16858    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
16859    -- call ADRs
16860    -- Bug 4922099
16861    --
16862    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16863         (NVL(l_actual_upg_option, 'N') = 'O') OR
16864         (NVL(l_enc_upg_option, 'N') = 'O')
16865       )
16866    THEN
16867    NULL;
16868    --
16869    --
16870    
16871   l_ccid := AcctDerRule_29(
16872            p_application_id           => p_application_id
16873          , p_ae_header_id             => l_ae_header_id 
16874 , p_source_3 => p_source_3
16875 , p_source_3_meaning => p_source_3_meaning
16876 , p_source_8 => p_source_8
16877 , p_source_9 => p_source_9
16878 , p_source_10 => p_source_10
16879 , p_source_10_meaning => p_source_10_meaning
16880 , p_source_11 => p_source_11
16881 , p_source_18 => p_source_18
16882 , p_source_35 => p_source_35
16883 , p_source_35_meaning => p_source_35_meaning
16884          , x_transaction_coa_id       => l_adr_transaction_coa_id
16885          , x_accounting_coa_id        => l_adr_accounting_coa_id
16886          , x_value_type_code          => l_adr_value_type_code
16887          , p_side                     => 'ALL'
16888    );
16889 
16890    xla_ae_lines_pkg.set_ccid(
16891     p_code_combination_id          => l_ccid
16892   , p_value_type_code              => l_adr_value_type_code
16893   , p_transaction_coa_id           => l_adr_transaction_coa_id
16894   , p_accounting_coa_id            => l_adr_accounting_coa_id
16895   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
16896   , p_adr_type_code                => 'S'
16897   , p_component_type               => l_component_type
16898   , p_component_code               => l_component_code
16899   , p_component_type_code          => l_component_type_code
16900   , p_component_appl_id            => l_component_appl_id
16904 
16901   , p_amb_context_code             => l_amb_context_code
16902   , p_side                         => 'ALL'
16903   );
16905 
16906    l_segment := AcctDerRule_8(
16907            p_application_id           => p_application_id
16908          , p_ae_header_id             => l_ae_header_id 
16909 , p_source_3 => p_source_3
16910 , p_source_3_meaning => p_source_3_meaning
16911 , p_source_8 => p_source_8
16912 , p_source_10 => p_source_10
16913 , p_source_10_meaning => p_source_10_meaning
16914          , x_transaction_coa_id       => l_adr_transaction_coa_id
16915          , x_accounting_coa_id        => l_adr_accounting_coa_id
16916          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16917          , x_flex_value_set_id        => l_adr_flex_value_set_id
16918          , x_value_type_code          => l_adr_value_type_code
16919          , x_value_combination_id     => l_adr_value_combination_id
16920          , x_value_segment_code       => l_adr_value_segment_code
16921          , p_side                     => 'CREDIT'
16922          , p_override_seg_flag        => 'Y'
16923    );
16924 
16925    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16926 
16927       xla_ae_lines_pkg.set_segment(
16928           p_to_segment_code         => 'GL_ACCOUNT'
16929         , p_segment_value           => l_segment
16930         , p_from_segment_code       => l_adr_value_segment_code
16931         , p_from_combination_id     => l_adr_value_combination_id
16932         , p_value_type_code         => l_adr_value_type_code
16933         , p_transaction_coa_id      => l_adr_transaction_coa_id
16934         , p_accounting_coa_id       => l_adr_accounting_coa_id
16935         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16936         , p_flex_value_set_id       => l_adr_flex_value_set_id
16937         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
16938         , p_adr_type_code           => 'S'
16939         , p_component_type          => l_component_type
16940         , p_component_code          => l_component_code
16941         , p_component_type_code     => l_component_type_code
16942         , p_component_appl_id       => l_component_appl_id
16943         , p_amb_context_code        => l_amb_context_code
16944         , p_entity_code             => 'AP_INVOICES'
16945         , p_event_class_code        => 'PREPAYMENTS'
16946         , p_side                    => 'CREDIT'
16947         );
16948 
16949   END IF;
16950 
16951    l_segment := AcctDerRule_9(
16952            p_application_id           => p_application_id
16953          , p_ae_header_id             => l_ae_header_id 
16954 , p_source_3 => p_source_3
16955 , p_source_3_meaning => p_source_3_meaning
16956 , p_source_10 => p_source_10
16957 , p_source_10_meaning => p_source_10_meaning
16958 , p_source_11 => p_source_11
16959          , x_transaction_coa_id       => l_adr_transaction_coa_id
16960          , x_accounting_coa_id        => l_adr_accounting_coa_id
16961          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16962          , x_flex_value_set_id        => l_adr_flex_value_set_id
16963          , x_value_type_code          => l_adr_value_type_code
16964          , x_value_combination_id     => l_adr_value_combination_id
16965          , x_value_segment_code       => l_adr_value_segment_code
16966          , p_side                     => 'DEBIT'
16967          , p_override_seg_flag        => 'Y'
16968    );
16969 
16970    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16971 
16972       xla_ae_lines_pkg.set_segment(
16973           p_to_segment_code         => 'GL_ACCOUNT'
16974         , p_segment_value           => l_segment
16975         , p_from_segment_code       => l_adr_value_segment_code
16976         , p_from_combination_id     => l_adr_value_combination_id
16977         , p_value_type_code         => l_adr_value_type_code
16978         , p_transaction_coa_id      => l_adr_transaction_coa_id
16979         , p_accounting_coa_id       => l_adr_accounting_coa_id
16980         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16981         , p_flex_value_set_id       => l_adr_flex_value_set_id
16982         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
16983         , p_adr_type_code           => 'S'
16984         , p_component_type          => l_component_type
16985         , p_component_code          => l_component_code
16986         , p_component_type_code     => l_component_type_code
16987         , p_component_appl_id       => l_component_appl_id
16988         , p_amb_context_code        => l_amb_context_code
16989         , p_entity_code             => 'AP_INVOICES'
16990         , p_event_class_code        => 'PREPAYMENTS'
16991         , p_side                    => 'DEBIT'
16992         );
16993 
16994   END IF;
16995 
16996    l_segment := AcctDerRule_22(
16997            p_application_id           => p_application_id
16998          , p_ae_header_id             => l_ae_header_id 
16999 , p_source_3 => p_source_3
17000 , p_source_3_meaning => p_source_3_meaning
17001 , p_source_10 => p_source_10
17002 , p_source_10_meaning => p_source_10_meaning
17003 , p_source_18 => p_source_18
17004          , x_transaction_coa_id       => l_adr_transaction_coa_id
17005          , x_accounting_coa_id        => l_adr_accounting_coa_id
17006          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17007          , x_flex_value_set_id        => l_adr_flex_value_set_id
17008          , x_value_type_code          => l_adr_value_type_code
17009          , x_value_combination_id     => l_adr_value_combination_id
17010          , x_value_segment_code       => l_adr_value_segment_code
17011          , p_side                     => 'ALL'
17012          , p_override_seg_flag        => 'Y'
17013    );
17014 
17015    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17016 
17017       xla_ae_lines_pkg.set_segment(
17018           p_to_segment_code         => 'GL_BALANCING'
17019         , p_segment_value           => l_segment
17020         , p_from_segment_code       => l_adr_value_segment_code
17021         , p_from_combination_id     => l_adr_value_combination_id
17022         , p_value_type_code         => l_adr_value_type_code
17023         , p_transaction_coa_id      => l_adr_transaction_coa_id
17024         , p_accounting_coa_id       => l_adr_accounting_coa_id
17025         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17026         , p_flex_value_set_id       => l_adr_flex_value_set_id
17027         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
17028         , p_adr_type_code           => 'S'
17029         , p_component_type          => l_component_type
17030         , p_component_code          => l_component_code
17031         , p_component_type_code     => l_component_type_code
17032         , p_component_appl_id       => l_component_appl_id
17033         , p_amb_context_code        => l_amb_context_code
17034         , p_entity_code             => 'AP_INVOICES'
17035         , p_event_class_code        => 'PREPAYMENTS'
17036         , p_side                    => 'ALL'
17037         );
17038 
17039   END IF;
17040 
17041    --
17042    --
17043    END IF;
17044 
17045        --
17046        -- Update the line information that should be overwritten
17047        --
17048        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17049                                          p_header_num   => 1);
17050        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
17051 
17052        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17053 
17054        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
17055           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17056        END IF;
17057 
17058       --
17059       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17060       --
17061       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17062           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
17063       ELSE
17064           ---------------------------------------------------------------------------------------------------
17065           -- 4262811a Switch Sign
17066           ---------------------------------------------------------------------------------------------------
17067           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
17068           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17069                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17070           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17071                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17072           -- 5132302
17073           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17074                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17075 
17076       END IF;
17077 
17078       -- 4955764
17079       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17080       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17081 
17082 
17083       XLA_AE_LINES_PKG.ValidateCurrentLine;
17084       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17085 
17086       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17087                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17088                ,p_balance_type_code => l_balance_type_code);
17089 
17090    END IF;
17091 
17092    -----------------------------------------------------------------------------------------
17093    -- 4262811 Multiperiod Accounting
17094    -----------------------------------------------------------------------------------------
17095      -- No MPA option is assigned.
17096 
17097 
17098 END IF;
17099 END IF;
17100 --
17101 
17102 --
17103 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17104    trace
17105       (p_msg      => 'END of AcctLineType_58'
17106       ,p_level    => C_LEVEL_PROCEDURE
17107       ,p_module   => l_log_module);
17108 END IF;
17109 --
17110 EXCEPTION
17111   WHEN xla_exceptions_pkg.application_exception THEN
17112       RAISE;
17113   WHEN OTHERS THEN
17114        xla_exceptions_pkg.raise_message
17115            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_58');
17116 END AcctLineType_58;
17117 --
17118 
17119 ---------------------------------------
17120 --
17121 -- PRIVATE FUNCTION
17122 --         AcctLineType_59
17123 --
17124 ---------------------------------------
17125 PROCEDURE AcctLineType_59 (
17126   p_application_id        IN NUMBER
17127  ,p_event_id              IN NUMBER
17128  ,p_calculate_acctd_flag  IN VARCHAR2
17129  ,p_calculate_g_l_flag    IN VARCHAR2
17130  ,p_actual_flag           IN OUT VARCHAR2
17131  ,p_balance_type_code     OUT VARCHAR2
17132  ,p_gain_or_loss_ref      OUT VARCHAR2
17133  
17134 --Invoice Distribution Type
17135  , p_source_21            IN VARCHAR2
17136  , p_source_21_meaning    IN VARCHAR2
17137 --Accounting Reversal Indicator
17138  , p_source_41            IN VARCHAR2
17139 --Distribution Link Type
17140  , p_source_43            IN VARCHAR2
17141 --Allocation to Main Distribution Identifier
17142  , p_source_45            IN NUMBER
17143 --Invoice Identifier
17144  , p_source_46            IN NUMBER
17145 --Invoice Distribution Identifier
17146  , p_source_52            IN NUMBER
17147 --Payables Encumbrance Upgrade Credit Account
17148  , p_source_53            IN NUMBER
17149 --Payables Encumbrance Upgrade Credit Amount
17150  , p_source_54            IN NUMBER
17151 --Invoice Currency Code
17152  , p_source_55            IN VARCHAR2
17153 --Payables Encumbrance Upgrade Credit Base Amount
17154  , p_source_56            IN NUMBER
17155 --Payables Encumbrance Upgrade Debit Account
17156  , p_source_57            IN NUMBER
17157 --Payables Encumbrance Upgrade Debit Amount
17158  , p_source_58            IN NUMBER
17159 --Payables Encumbrance Upgrade Debit Base Amount
17160  , p_source_59            IN NUMBER
17161 --Payables Encumbrance Upgrade Option
17162  , p_source_60            IN VARCHAR2
17163 --Deferred Accounting End Date
17164  , p_source_65            IN DATE
17165 --Deferred Accounting Option
17166  , p_source_66            IN VARCHAR2
17167 --Deferred Accounting Start Date
17168  , p_source_67            IN DATE
17169 --Override Accounted Amount Indicator
17170  , p_source_68            IN VARCHAR2
17171  , p_source_68_meaning    IN VARCHAR2
17172 --Third Party Type
17173  , p_source_71            IN VARCHAR2
17174 --Parent Reversal Identifier
17175  , p_source_72            IN NUMBER
17176 --Invoice Distribution Statistical Amount
17177  , p_source_73            IN NUMBER
17178 --Invoice Distribution Tax Line Identifier
17179  , p_source_74            IN NUMBER
17180 --Invoice Distribution Tax Distribution Identifier from Tax
17181  , p_source_75            IN NUMBER
17182 --Invoice Distribution Summary Tax Line Identifier
17183  , p_source_76            IN NUMBER
17184 --Payables Upgrade Credit Encumbrance Type Identifier
17185  , p_source_77            IN NUMBER
17186 --Payables Upgrade Debit Encumbrance Type Identifier
17187  , p_source_78            IN NUMBER
17188 --Business Flow Accounts Payable Application Identifier
17189  , p_source_79            IN NUMBER
17190 --Business Flow Invoice Distribution Type
17191  , p_source_80            IN VARCHAR2
17192 --Business Flow Invoice Entity Code
17193  , p_source_81            IN VARCHAR2
17194 --Business Flow Invoice Distribution Identifier
17195  , p_source_82            IN NUMBER
17196 --Business Flow Invoice Identifier
17197  , p_source_83            IN NUMBER
17198 --Accrue on Receipt Option
17199  , p_source_84            IN VARCHAR2
17200  , p_source_84_meaning    IN VARCHAR2
17204  , p_source_86            IN VARCHAR2
17201 --Amount for Variance Amount
17202  , p_source_85            IN NUMBER
17203 --Purchasing Encumbrance Option
17205  , p_source_86_meaning    IN VARCHAR2
17206 --Invoice Encumbered Option
17207  , p_source_87            IN VARCHAR2
17208  , p_source_87_meaning    IN VARCHAR2
17209 --Variance Amount in Ledger Currency
17210  , p_source_88            IN NUMBER
17211 )
17212 IS
17213 
17214 l_component_type              VARCHAR2(80);
17215 l_component_code              VARCHAR2(30);
17216 l_component_type_code         VARCHAR2(1);
17217 l_component_appl_id           INTEGER;
17218 l_amb_context_code            VARCHAR2(30);
17219 l_entity_code                 VARCHAR2(30);
17220 l_event_class_code            VARCHAR2(30);
17221 l_ae_header_id                NUMBER;
17222 l_event_type_code             VARCHAR2(30);
17223 l_line_definition_code        VARCHAR2(30);
17224 l_line_definition_owner_code  VARCHAR2(1);
17225 --
17226 -- adr variables
17227 l_segment                     VARCHAR2(30);
17228 l_ccid                        NUMBER;
17229 l_adr_transaction_coa_id      NUMBER;
17230 l_adr_accounting_coa_id       NUMBER;
17231 l_adr_flexfield_segment_code  VARCHAR2(30);
17232 l_adr_flex_value_set_id       NUMBER;
17233 l_adr_value_type_code         VARCHAR2(30);
17234 l_adr_value_combination_id    NUMBER;
17235 l_adr_value_segment_code      VARCHAR2(30);
17236 
17237 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
17238 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
17239 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
17240 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
17241 
17242 -- 4262811 Variables ------------------------------------------------------------------------------------------
17243 l_entered_amt_idx             NUMBER;
17244 l_accted_amt_idx              NUMBER;
17245 l_acc_rev_flag                VARCHAR2(1);
17246 l_accrual_line_num            NUMBER;
17247 l_tmp_amt                     NUMBER;
17248 l_acc_rev_natural_side_code   VARCHAR2(1);
17249 
17250 l_num_entries                 NUMBER;
17251 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
17252 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
17253 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
17254 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
17255 l_recog_line_1                NUMBER;
17256 l_recog_line_2                NUMBER;
17257 
17258 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
17259 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
17260 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
17261 
17262 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17263 
17264 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
17265 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
17266 
17267 ---------------------------------------------------------------------------------------------------------------
17268 
17269 
17270 --
17271 -- bulk performance
17272 --
17273 l_balance_type_code           VARCHAR2(1);
17274 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
17275 l_log_module                  VARCHAR2(240);
17276 
17277 --
17278 -- Upgrade strategy
17279 --
17280 l_actual_upg_option           VARCHAR2(1);
17281 l_enc_upg_option           VARCHAR2(1);
17282 
17283 --
17284 BEGIN
17285 --
17286 IF g_log_enabled THEN
17287       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
17288 END IF;
17289 --
17290 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17291 
17292       trace
17293          (p_msg      => 'BEGIN of AcctLineType_59'
17294          ,p_level    => C_LEVEL_PROCEDURE
17295          ,p_module   => l_log_module);
17296 
17297 END IF;
17298 --
17299 l_component_type             := 'AMB_JLT';
17300 l_component_code             := 'AP_AMOUNT_VARIANCE_CM_ENC';
17301 l_component_type_code        := 'S';
17302 l_component_appl_id          :=  200;
17303 l_amb_context_code           := 'DEFAULT';
17304 l_entity_code                := 'AP_INVOICES';
17305 l_event_class_code           := 'CREDIT MEMOS';
17306 l_event_type_code            := 'CREDIT MEMOS_ALL';
17307 l_line_definition_owner_code := 'S';
17308 l_line_definition_code       := 'ENC_REV_CM_ALL';
17309 --
17310 l_balance_type_code          := 'E';
17311 l_segment                     := NULL;
17312 l_ccid                        := NULL;
17313 l_adr_transaction_coa_id      := NULL;
17314 l_adr_accounting_coa_id       := NULL;
17315 l_adr_flexfield_segment_code  := NULL;
17316 l_adr_flex_value_set_id       := NULL;
17317 l_adr_value_type_code         := NULL;
17318 l_adr_value_combination_id    := NULL;
17319 l_adr_value_segment_code      := NULL;
17320 
17321 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
17322 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
17323 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
17324 l_budgetary_control_flag     := 'N';
17325 
17326 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
17327 l_bflow_applied_to_amt       := NULL; -- 5132302
17328 l_entered_amt_idx            := NULL;          -- 4262811
17329 l_accted_amt_idx             := NULL;          -- 4262811
17330 l_acc_rev_flag               := NULL;          -- 4262811
17331 l_accrual_line_num           := NULL;          -- 4262811
17332 l_tmp_amt                    := NULL;          -- 4262811
17333 --
17334  
17335 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17336     l_balance_type_code <> 'B' THEN
17337 IF NVL(p_source_21,'
17338 ') =  'ITEM' AND 
17342 NVL(p_source_86,'
17339 NVL(p_source_84,'
17340 ') <>  'Y' AND 
17341 p_source_85 IS NOT NULL AND 
17343 ') =  'Y' AND 
17344 NVL(p_source_87,'
17345 ') =  'Y'
17346  THEN 
17347 
17348    --
17349    XLA_AE_LINES_PKG.SetNewLine;
17350 
17351    p_balance_type_code          := l_balance_type_code;
17352    -- set the flag so later we will know whether the gain loss line needs to be created
17353    
17354    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17355      p_actual_flag :='A';
17356    END IF;
17357 
17358    --
17359    -- bulk performance
17360    --
17361    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17362                                       p_header_num   => 0); -- 4262811
17363    --
17364    -- set accounting line options
17365    --
17366    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17367            p_natural_side_code          => 'C'
17368          , p_gain_or_loss_flag          => 'N'
17369          , p_gl_transfer_mode_code      => 'S'
17370          , p_acct_entry_type_code       => 'E'
17371          , p_switch_side_flag           => 'Y'
17372          , p_merge_duplicate_code       => 'A'
17373          );
17374    --
17375    l_acc_rev_natural_side_code := 'D';  -- 4262811
17376    -- 
17377    --
17378    -- set accounting line type info
17379    --
17380    xla_ae_lines_pkg.SetAcctLineType
17381       (p_component_type             => l_component_type
17382       ,p_event_type_code            => l_event_type_code
17383       ,p_line_definition_owner_code => l_line_definition_owner_code
17384       ,p_line_definition_code       => l_line_definition_code
17385       ,p_accounting_line_code       => l_component_code
17386       ,p_accounting_line_type_code  => l_component_type_code
17387       ,p_accounting_line_appl_id    => l_component_appl_id
17388       ,p_amb_context_code           => l_amb_context_code
17389       ,p_entity_code                => l_entity_code
17390       ,p_event_class_code           => l_event_class_code);
17391    --
17392    -- set accounting class
17393    --
17394    xla_ae_lines_pkg.SetAcctClass(
17395            p_accounting_class_code  => 'AMT_VARIANCE'
17396          , p_ae_header_id           => l_ae_header_id
17397          );
17398 
17399    --
17400    -- set rounding class
17401    --
17402    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17403                       'AMT_VARIANCE';
17404 
17405    --
17406    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17407    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17408    --
17409    -- bulk performance
17410    --
17411    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17412 
17413    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17414       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17415 
17416    -- 4955764
17417    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17418       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17419 
17420    -- 4458381 Public Sector Enh
17421    
17422    --
17423    -- set accounting attributes for the line type
17424    --
17425    l_entered_amt_idx := 23;
17426    l_accted_amt_idx  := 25;
17427    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
17428    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17429    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
17430    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
17431    l_rec_acct_attrs.array_num_value(2)  := 
17432 xla_ae_sources_pkg.GetSystemSourceNum(
17433    p_source_code           => 'XLA_EVENT_APPL_ID'
17434  , p_source_type_code      => 'Y'
17435  , p_source_application_id =>  602
17436 );
17437    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
17438    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
17439    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
17440    l_rec_acct_attrs.array_char_value(4)  := 
17441 xla_ae_sources_pkg.GetSystemSourceChar(
17442    p_source_code           => 'XLA_ENTITY_CODE'
17443  , p_source_type_code      => 'Y'
17444  , p_source_application_id =>  602
17445 );
17446    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
17447    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
17448    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
17449    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
17450    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
17451    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
17452    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
17453    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
17454    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
17455    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
17456    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
17457    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
17458    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
17459    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
17460    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
17461    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
17462    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
17463    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
17464    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
17465    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
17466    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
17467    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
17468    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
17469    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
17470    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
17471    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
17472    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
17473    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
17474    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
17475    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
17476    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
17477    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
17478    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
17479    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
17480    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
17481    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
17482    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
17483    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
17484    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
17485    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
17486    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
17487    l_rec_acct_attrs.array_num_value(25)  := p_source_88;
17488    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
17489    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
17490    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
17491    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
17492    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
17493    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
17494    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
17495    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
17496    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
17497    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
17498    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
17499    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
17500    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
17501    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
17502    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
17503    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
17504    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
17505    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
17506    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
17507    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
17508    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
17509    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
17510    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
17511    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
17512    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
17513    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
17514 
17515    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17516    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17517 
17518    ---------------------------------------------------------------------------------------------------------------
17519    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17520    ---------------------------------------------------------------------------------------------------------------
17521    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17522 
17523    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17524    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17525 
17526    IF xla_accounting_cache_pkg.GetValueChar
17527          (p_source_code         => 'LEDGER_CATEGORY_CODE'
17528          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17529    AND l_bflow_method_code = 'PRIOR_ENTRY'
17530 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17531    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17532          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17533        )
17534    THEN
17535          xla_ae_lines_pkg.BflowUpgEntry
17536            (p_business_method_code    => l_bflow_method_code
17537            ,p_business_class_code     => l_bflow_class_code
17538            ,p_balance_type            => l_balance_type_code);
17539    ELSE
17540       NULL;
17541 XLA_AE_LINES_PKG.business_flow_validation(
17542                                 p_business_method_code     => l_bflow_method_code
17543                                ,p_business_class_code      => l_bflow_class_code
17544                                ,p_inherit_description_flag => l_inherit_desc_flag);
17545    END IF;
17546 
17547    --
17548    -- call analytical criteria
17549    --
17550    -- Inherited Analytical Criteria for business flow method of Prior Entry.
17551    --
17552    -- call description
17553    --
17554    -- No description or it is inherited.
17555    --
17556    -- call ADRs
17557    -- Bug 4922099
17558    --
17559    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17560         (NVL(l_actual_upg_option, 'N') = 'O') OR
17561         (NVL(l_enc_upg_option, 'N') = 'O')
17562       )
17563    THEN
17564    NULL;
17565    --
17566    --
17567    
17568    --
17569    --
17570    END IF;
17571    --
17572    -- Bug 4922099
17573    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17574           (NVL(l_enc_upg_option, 'N') = 'O')
17575         ) AND
17576         (l_bflow_method_code = 'PRIOR_ENTRY')
17577       )
17578    THEN
17579       IF
17580       --
17581       1 = 1
17582       --
17583       THEN
17584       xla_accounting_err_pkg.build_message
17585                                     (p_appli_s_name            => 'XLA'
17586                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17587                                     ,p_token_1                 => 'LINE_NUMBER'
17588                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
17589                                     ,p_token_2                 => 'LINE_TYPE_NAME'
17590                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
17591                                                                              l_component_type
17592                                                                             ,l_component_code
17593                                                                             ,l_component_type_code
17594                                                                             ,l_component_appl_id
17595                                                                             ,l_amb_context_code
17596                                                                             ,l_entity_code
17597                                                                             ,l_event_class_code
17598                                                                            )
17599                                     ,p_token_3                 => 'OWNER'
17600                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
17601                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
17602                                                                           ,p_lookup_code    => l_component_type_code
17603                                                                          )
17604                                     ,p_token_4                 => 'PRODUCT_NAME'
17605                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17609                                     ,p_ae_header_id            =>  NULL
17606                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17607                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17608                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17610                                        );
17611 
17612         IF (C_LEVEL_ERROR>= g_log_level) THEN
17613                  trace
17614                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17615                       ,p_level    => C_LEVEL_ERROR
17616                       ,p_module   => l_log_module);
17617         END IF;
17618       END IF;
17619    END IF;
17620    --
17621    --
17622    ------------------------------------------------------------------------------------------------
17623    -- 4219869 Business Flow
17624    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17625    -- Prior Entry.  Currently, the following code is always generated.
17626    ------------------------------------------------------------------------------------------------
17627    -- No ValidateCurrentLine for business flow method of Prior Entry
17628 
17629    ------------------------------------------------------------------------------------
17630    -- 4219869 Business Flow
17631    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17632    ------------------------------------------------------------------------------------
17633    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17634 
17635    ----------------------------------------------------------------------------------
17636    -- 4219869 Business Flow
17637    -- Update journal entry status -- Need to generate this within IF <condition>
17638    ----------------------------------------------------------------------------------
17639    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17640          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17641          ,p_balance_type_code => l_balance_type_code
17642          );
17643 
17644    -------------------------------------------------------------------------------------------
17645    -- 4262811 - Generate the Accrual Reversal lines
17646    -------------------------------------------------------------------------------------------
17647    BEGIN
17648       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17649                               (g_array_event(p_event_id).array_value_num('header_index'));
17650       IF l_acc_rev_flag IS NULL THEN
17651          l_acc_rev_flag := 'N';
17652       END IF;
17653    EXCEPTION
17654       WHEN OTHERS THEN
17655          l_acc_rev_flag := 'N';
17656    END;
17657    --
17658    IF (l_acc_rev_flag = 'Y') THEN
17659 
17660        -- 4645092  ------------------------------------------------------------------------------
17661        -- To allow MPA report to determine if it should generate report process
17662        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17663        ------------------------------------------------------------------------------------------
17664 
17665        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17666        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17667    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
17668    -- call ADRs
17669    -- Bug 4922099
17670    --
17671    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17672         (NVL(l_actual_upg_option, 'N') = 'O') OR
17673         (NVL(l_enc_upg_option, 'N') = 'O')
17674       )
17675    THEN
17676    NULL;
17677    --
17678    --
17679    
17680    --
17681    --
17682    END IF;
17683 
17684        --
17685        -- Update the line information that should be overwritten
17686        --
17687        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17688                                          p_header_num   => 1);
17689        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
17690 
17691        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17692 
17693        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
17694           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17695        END IF;
17696 
17697       --
17698       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17699       --
17700       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17701           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
17702       ELSE
17703           ---------------------------------------------------------------------------------------------------
17704           -- 4262811a Switch Sign
17705           ---------------------------------------------------------------------------------------------------
17706           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
17707           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17708                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17709           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17710                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17711           -- 5132302
17712           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17713                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17714 
17715       END IF;
17716 
17717       -- 4955764
17718       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17719       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17720 
17721 
17722       XLA_AE_LINES_PKG.ValidateCurrentLine;
17726                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17723       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17724 
17725       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17727                ,p_balance_type_code => l_balance_type_code);
17728 
17729    END IF;
17730 
17731    -----------------------------------------------------------------------------------------
17732    -- 4262811 Multiperiod Accounting
17733    -----------------------------------------------------------------------------------------
17734      -- No MPA option is assigned.
17735 
17736 
17737 END IF;
17738 END IF;
17739 --
17740 
17741 --
17742 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17743    trace
17744       (p_msg      => 'END of AcctLineType_59'
17745       ,p_level    => C_LEVEL_PROCEDURE
17746       ,p_module   => l_log_module);
17747 END IF;
17748 --
17749 EXCEPTION
17750   WHEN xla_exceptions_pkg.application_exception THEN
17751       RAISE;
17752   WHEN OTHERS THEN
17753        xla_exceptions_pkg.raise_message
17754            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_59');
17755 END AcctLineType_59;
17756 --
17757 
17758 ---------------------------------------
17759 --
17760 -- PRIVATE FUNCTION
17761 --         AcctLineType_60
17762 --
17763 ---------------------------------------
17764 PROCEDURE AcctLineType_60 (
17765   p_application_id        IN NUMBER
17766  ,p_event_id              IN NUMBER
17767  ,p_calculate_acctd_flag  IN VARCHAR2
17768  ,p_calculate_g_l_flag    IN VARCHAR2
17769  ,p_actual_flag           IN OUT VARCHAR2
17770  ,p_balance_type_code     OUT VARCHAR2
17771  ,p_gain_or_loss_ref      OUT VARCHAR2
17772  
17773 --Invoice Distribution Type
17774  , p_source_21            IN VARCHAR2
17775  , p_source_21_meaning    IN VARCHAR2
17776 --Accounting Reversal Indicator
17777  , p_source_41            IN VARCHAR2
17778 --Distribution Link Type
17779  , p_source_43            IN VARCHAR2
17780 --Allocation to Main Distribution Identifier
17781  , p_source_45            IN NUMBER
17782 --Invoice Identifier
17783  , p_source_46            IN NUMBER
17784 --Invoice Distribution Identifier
17785  , p_source_52            IN NUMBER
17786 --Payables Encumbrance Upgrade Credit Account
17787  , p_source_53            IN NUMBER
17788 --Payables Encumbrance Upgrade Credit Amount
17789  , p_source_54            IN NUMBER
17790 --Invoice Currency Code
17791  , p_source_55            IN VARCHAR2
17792 --Payables Encumbrance Upgrade Credit Base Amount
17793  , p_source_56            IN NUMBER
17794 --Payables Encumbrance Upgrade Debit Account
17795  , p_source_57            IN NUMBER
17796 --Payables Encumbrance Upgrade Debit Amount
17797  , p_source_58            IN NUMBER
17798 --Payables Encumbrance Upgrade Debit Base Amount
17799  , p_source_59            IN NUMBER
17800 --Payables Encumbrance Upgrade Option
17801  , p_source_60            IN VARCHAR2
17802 --Deferred Accounting End Date
17803  , p_source_65            IN DATE
17804 --Deferred Accounting Option
17805  , p_source_66            IN VARCHAR2
17806 --Deferred Accounting Start Date
17807  , p_source_67            IN DATE
17808 --Override Accounted Amount Indicator
17809  , p_source_68            IN VARCHAR2
17810  , p_source_68_meaning    IN VARCHAR2
17811 --Third Party Type
17812  , p_source_71            IN VARCHAR2
17813 --Parent Reversal Identifier
17814  , p_source_72            IN NUMBER
17815 --Invoice Distribution Tax Line Identifier
17816  , p_source_74            IN NUMBER
17817 --Invoice Distribution Tax Distribution Identifier from Tax
17818  , p_source_75            IN NUMBER
17819 --Invoice Distribution Summary Tax Line Identifier
17820  , p_source_76            IN NUMBER
17821 --Payables Upgrade Credit Encumbrance Type Identifier
17822  , p_source_77            IN NUMBER
17823 --Payables Upgrade Debit Encumbrance Type Identifier
17824  , p_source_78            IN NUMBER
17825 --Business Flow Accounts Payable Application Identifier
17826  , p_source_79            IN NUMBER
17827 --Business Flow Invoice Distribution Type
17828  , p_source_80            IN VARCHAR2
17829 --Business Flow Invoice Entity Code
17830  , p_source_81            IN VARCHAR2
17831 --Business Flow Invoice Distribution Identifier
17832  , p_source_82            IN NUMBER
17833 --Business Flow Invoice Identifier
17834  , p_source_83            IN NUMBER
17835 --Accrue on Receipt Option
17839  , p_source_85            IN NUMBER
17836  , p_source_84            IN VARCHAR2
17837  , p_source_84_meaning    IN VARCHAR2
17838 --Amount for Variance Amount
17840 --Purchasing Encumbrance Option
17841  , p_source_86            IN VARCHAR2
17842  , p_source_86_meaning    IN VARCHAR2
17843 --Invoice Encumbered Option
17844  , p_source_87            IN VARCHAR2
17845  , p_source_87_meaning    IN VARCHAR2
17846 --Variance Amount in Ledger Currency
17847  , p_source_88            IN NUMBER
17848 )
17849 IS
17850 
17851 l_component_type              VARCHAR2(80);
17852 l_component_code              VARCHAR2(30);
17853 l_component_type_code         VARCHAR2(1);
17854 l_component_appl_id           INTEGER;
17855 l_amb_context_code            VARCHAR2(30);
17856 l_entity_code                 VARCHAR2(30);
17857 l_event_class_code            VARCHAR2(30);
17858 l_ae_header_id                NUMBER;
17859 l_event_type_code             VARCHAR2(30);
17860 l_line_definition_code        VARCHAR2(30);
17861 l_line_definition_owner_code  VARCHAR2(1);
17862 --
17863 -- adr variables
17864 l_segment                     VARCHAR2(30);
17865 l_ccid                        NUMBER;
17866 l_adr_transaction_coa_id      NUMBER;
17867 l_adr_accounting_coa_id       NUMBER;
17868 l_adr_flexfield_segment_code  VARCHAR2(30);
17869 l_adr_flex_value_set_id       NUMBER;
17870 l_adr_value_type_code         VARCHAR2(30);
17871 l_adr_value_combination_id    NUMBER;
17872 l_adr_value_segment_code      VARCHAR2(30);
17873 
17874 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
17875 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
17876 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
17877 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
17878 
17879 -- 4262811 Variables ------------------------------------------------------------------------------------------
17880 l_entered_amt_idx             NUMBER;
17881 l_accted_amt_idx              NUMBER;
17882 l_acc_rev_flag                VARCHAR2(1);
17883 l_accrual_line_num            NUMBER;
17884 l_tmp_amt                     NUMBER;
17885 l_acc_rev_natural_side_code   VARCHAR2(1);
17886 
17887 l_num_entries                 NUMBER;
17888 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
17889 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
17890 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
17891 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
17892 l_recog_line_1                NUMBER;
17893 l_recog_line_2                NUMBER;
17894 
17895 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
17896 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
17897 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
17898 
17899 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17900 
17901 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
17902 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
17903 
17904 ---------------------------------------------------------------------------------------------------------------
17905 
17906 
17907 --
17908 -- bulk performance
17909 --
17910 l_balance_type_code           VARCHAR2(1);
17911 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
17912 l_log_module                  VARCHAR2(240);
17913 
17914 --
17915 -- Upgrade strategy
17916 --
17917 l_actual_upg_option           VARCHAR2(1);
17918 l_enc_upg_option           VARCHAR2(1);
17919 
17920 --
17921 BEGIN
17922 --
17923 IF g_log_enabled THEN
17924       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_60';
17925 END IF;
17926 --
17927 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17928 
17929       trace
17930          (p_msg      => 'BEGIN of AcctLineType_60'
17931          ,p_level    => C_LEVEL_PROCEDURE
17932          ,p_module   => l_log_module);
17933 
17934 END IF;
17935 --
17936 l_component_type             := 'AMB_JLT';
17937 l_component_code             := 'AP_AMOUNT_VARIANCE_DM_ENC';
17938 l_component_type_code        := 'S';
17939 l_component_appl_id          :=  200;
17940 l_amb_context_code           := 'DEFAULT';
17941 l_entity_code                := 'AP_INVOICES';
17942 l_event_class_code           := 'DEBIT MEMOS';
17943 l_event_type_code            := 'DEBIT MEMOS_ALL';
17944 l_line_definition_owner_code := 'S';
17945 l_line_definition_code       := 'ENC_REV_DM_ALL';
17946 --
17947 l_balance_type_code          := 'E';
17948 l_segment                     := NULL;
17949 l_ccid                        := NULL;
17950 l_adr_transaction_coa_id      := NULL;
17951 l_adr_accounting_coa_id       := NULL;
17952 l_adr_flexfield_segment_code  := NULL;
17953 l_adr_flex_value_set_id       := NULL;
17954 l_adr_value_type_code         := NULL;
17955 l_adr_value_combination_id    := NULL;
17956 l_adr_value_segment_code      := NULL;
17957 
17958 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
17959 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
17960 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
17961 l_budgetary_control_flag     := 'N';
17962 
17963 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
17964 l_bflow_applied_to_amt       := NULL; -- 5132302
17965 l_entered_amt_idx            := NULL;          -- 4262811
17966 l_accted_amt_idx             := NULL;          -- 4262811
17967 l_acc_rev_flag               := NULL;          -- 4262811
17968 l_accrual_line_num           := NULL;          -- 4262811
17969 l_tmp_amt                    := NULL;          -- 4262811
17970 --
17971  
17972 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17973     l_balance_type_code <> 'B' THEN
17974 IF NVL(p_source_21,'
17975 ') =  'ITEM' AND 
17976 p_source_85 IS NOT NULL AND 
17977 NVL(p_source_84,'
17978 ') <>  'Y' AND 
17979 NVL(p_source_86,'
17980 ') =  'Y' AND 
17981 NVL(p_source_87,'
17982 ') =  'Y'
17983  THEN 
17984 
17985    --
17986    XLA_AE_LINES_PKG.SetNewLine;
17987 
17988    p_balance_type_code          := l_balance_type_code;
17989    -- set the flag so later we will know whether the gain loss line needs to be created
17990    
17991    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17992      p_actual_flag :='A';
17993    END IF;
17994 
17995    --
17996    -- bulk performance
17997    --
17998    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17999                                       p_header_num   => 0); -- 4262811
18000    --
18001    -- set accounting line options
18002    --
18003    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18004            p_natural_side_code          => 'C'
18005          , p_gain_or_loss_flag          => 'N'
18006          , p_gl_transfer_mode_code      => 'S'
18007          , p_acct_entry_type_code       => 'E'
18008          , p_switch_side_flag           => 'Y'
18009          , p_merge_duplicate_code       => 'A'
18010          );
18011    --
18012    l_acc_rev_natural_side_code := 'D';  -- 4262811
18013    -- 
18014    --
18015    -- set accounting line type info
18016    --
18017    xla_ae_lines_pkg.SetAcctLineType
18018       (p_component_type             => l_component_type
18019       ,p_event_type_code            => l_event_type_code
18020       ,p_line_definition_owner_code => l_line_definition_owner_code
18021       ,p_line_definition_code       => l_line_definition_code
18022       ,p_accounting_line_code       => l_component_code
18023       ,p_accounting_line_type_code  => l_component_type_code
18024       ,p_accounting_line_appl_id    => l_component_appl_id
18025       ,p_amb_context_code           => l_amb_context_code
18026       ,p_entity_code                => l_entity_code
18027       ,p_event_class_code           => l_event_class_code);
18028    --
18029    -- set accounting class
18030    --
18031    xla_ae_lines_pkg.SetAcctClass(
18032            p_accounting_class_code  => 'AMT_VARIANCE'
18033          , p_ae_header_id           => l_ae_header_id
18034          );
18035 
18036    --
18037    -- set rounding class
18038    --
18039    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18040                       'AMT_VARIANCE';
18041 
18042    --
18043    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18044    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18045    --
18046    -- bulk performance
18047    --
18048    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18049 
18050    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18051       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18052 
18053    -- 4955764
18054    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18055       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18056 
18057    -- 4458381 Public Sector Enh
18058    
18059    --
18060    -- set accounting attributes for the line type
18061    --
18062    l_entered_amt_idx := 23;
18063    l_accted_amt_idx  := 25;
18064    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
18065    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18066    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
18067    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
18068    l_rec_acct_attrs.array_num_value(2)  := 
18069 xla_ae_sources_pkg.GetSystemSourceNum(
18070    p_source_code           => 'XLA_EVENT_APPL_ID'
18071  , p_source_type_code      => 'Y'
18072  , p_source_application_id =>  602
18073 );
18074    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
18075    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
18076    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
18077    l_rec_acct_attrs.array_char_value(4)  := 
18078 xla_ae_sources_pkg.GetSystemSourceChar(
18079    p_source_code           => 'XLA_ENTITY_CODE'
18080  , p_source_type_code      => 'Y'
18081  , p_source_application_id =>  602
18082 );
18083    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
18084    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
18085    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
18086    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
18087    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
18088    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
18089    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18090    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
18091    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
18092    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
18093    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
18094    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
18095    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18096    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
18097    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
18098    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
18099    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
18100    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
18101    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
18102    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
18103    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
18104    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
18105    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
18106    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
18107    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
18108    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
18109    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
18110    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
18111    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
18112    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
18113    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
18114    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
18115    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
18116    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
18117    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
18118    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
18119    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
18120    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
18121    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
18122    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
18123    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
18124    l_rec_acct_attrs.array_num_value(25)  := p_source_88;
18128    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
18125    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
18126    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
18127    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
18129    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
18130    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
18131    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
18132    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
18133    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
18134    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
18135    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
18136    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
18137    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
18138    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
18139    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
18140    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
18141    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
18142    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
18143    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
18144    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
18145    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
18146    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
18147    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
18148    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
18149 
18150    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18151    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18152 
18153    ---------------------------------------------------------------------------------------------------------------
18154    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18155    ---------------------------------------------------------------------------------------------------------------
18156    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18157 
18158    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18159    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18160 
18161    IF xla_accounting_cache_pkg.GetValueChar
18162          (p_source_code         => 'LEDGER_CATEGORY_CODE'
18163          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18164    AND l_bflow_method_code = 'PRIOR_ENTRY'
18165 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18166    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18167          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18168        )
18169    THEN
18170          xla_ae_lines_pkg.BflowUpgEntry
18171            (p_business_method_code    => l_bflow_method_code
18172            ,p_business_class_code     => l_bflow_class_code
18173            ,p_balance_type            => l_balance_type_code);
18174    ELSE
18175       NULL;
18176 XLA_AE_LINES_PKG.business_flow_validation(
18177                                 p_business_method_code     => l_bflow_method_code
18178                                ,p_business_class_code      => l_bflow_class_code
18179                                ,p_inherit_description_flag => l_inherit_desc_flag);
18180    END IF;
18181 
18182    --
18183    -- call analytical criteria
18184    --
18185    -- Inherited Analytical Criteria for business flow method of Prior Entry.
18186    --
18187    -- call description
18188    --
18189    -- No description or it is inherited.
18190    --
18191    -- call ADRs
18192    -- Bug 4922099
18193    --
18197       )
18194    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18195         (NVL(l_actual_upg_option, 'N') = 'O') OR
18196         (NVL(l_enc_upg_option, 'N') = 'O')
18198    THEN
18199    NULL;
18200    --
18201    --
18202    
18203    --
18204    --
18205    END IF;
18206    --
18207    -- Bug 4922099
18208    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18209           (NVL(l_enc_upg_option, 'N') = 'O')
18210         ) AND
18211         (l_bflow_method_code = 'PRIOR_ENTRY')
18212       )
18213    THEN
18214       IF
18215       --
18216       1 = 1
18217       --
18218       THEN
18219       xla_accounting_err_pkg.build_message
18220                                     (p_appli_s_name            => 'XLA'
18221                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18222                                     ,p_token_1                 => 'LINE_NUMBER'
18223                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
18224                                     ,p_token_2                 => 'LINE_TYPE_NAME'
18225                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
18226                                                                              l_component_type
18227                                                                             ,l_component_code
18228                                                                             ,l_component_type_code
18229                                                                             ,l_component_appl_id
18230                                                                             ,l_amb_context_code
18231                                                                             ,l_entity_code
18232                                                                             ,l_event_class_code
18233                                                                            )
18234                                     ,p_token_3                 => 'OWNER'
18235                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
18236                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
18237                                                                           ,p_lookup_code    => l_component_type_code
18238                                                                          )
18239                                     ,p_token_4                 => 'PRODUCT_NAME'
18240                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18241                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18242                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18243                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18244                                     ,p_ae_header_id            =>  NULL
18245                                        );
18246 
18247         IF (C_LEVEL_ERROR>= g_log_level) THEN
18248                  trace
18249                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18250                       ,p_level    => C_LEVEL_ERROR
18251                       ,p_module   => l_log_module);
18252         END IF;
18253       END IF;
18254    END IF;
18255    --
18256    --
18257    ------------------------------------------------------------------------------------------------
18258    -- 4219869 Business Flow
18259    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18260    -- Prior Entry.  Currently, the following code is always generated.
18261    ------------------------------------------------------------------------------------------------
18262    -- No ValidateCurrentLine for business flow method of Prior Entry
18263 
18264    ------------------------------------------------------------------------------------
18265    -- 4219869 Business Flow
18266    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18267    ------------------------------------------------------------------------------------
18268    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18269 
18270    ----------------------------------------------------------------------------------
18271    -- 4219869 Business Flow
18272    -- Update journal entry status -- Need to generate this within IF <condition>
18273    ----------------------------------------------------------------------------------
18274    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18275          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18276          ,p_balance_type_code => l_balance_type_code
18277          );
18278 
18279    -------------------------------------------------------------------------------------------
18280    -- 4262811 - Generate the Accrual Reversal lines
18281    -------------------------------------------------------------------------------------------
18282    BEGIN
18283       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18284                               (g_array_event(p_event_id).array_value_num('header_index'));
18285       IF l_acc_rev_flag IS NULL THEN
18286          l_acc_rev_flag := 'N';
18287       END IF;
18288    EXCEPTION
18289       WHEN OTHERS THEN
18290          l_acc_rev_flag := 'N';
18291    END;
18292    --
18293    IF (l_acc_rev_flag = 'Y') THEN
18294 
18295        -- 4645092  ------------------------------------------------------------------------------
18296        -- To allow MPA report to determine if it should generate report process
18297        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18298        ------------------------------------------------------------------------------------------
18299 
18303    -- call ADRs
18300        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18301        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18302    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
18304    -- Bug 4922099
18305    --
18306    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18307         (NVL(l_actual_upg_option, 'N') = 'O') OR
18308         (NVL(l_enc_upg_option, 'N') = 'O')
18309       )
18310    THEN
18311    NULL;
18312    --
18313    --
18314    
18315    --
18316    --
18317    END IF;
18318 
18319        --
18320        -- Update the line information that should be overwritten
18321        --
18322        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18323                                          p_header_num   => 1);
18324        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
18325 
18326        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18327 
18328        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
18329           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18330        END IF;
18331 
18332       --
18333       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18334       --
18335       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18336           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
18337       ELSE
18338           ---------------------------------------------------------------------------------------------------
18339           -- 4262811a Switch Sign
18340           ---------------------------------------------------------------------------------------------------
18341           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
18342           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18343                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18344           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18345                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18346           -- 5132302
18347           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18348                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18349 
18350       END IF;
18351 
18352       -- 4955764
18353       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18354       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18355 
18356 
18357       XLA_AE_LINES_PKG.ValidateCurrentLine;
18358       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18359 
18360       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18361                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18362                ,p_balance_type_code => l_balance_type_code);
18363 
18364    END IF;
18365 
18366    -----------------------------------------------------------------------------------------
18367    -- 4262811 Multiperiod Accounting
18368    -----------------------------------------------------------------------------------------
18369      -- No MPA option is assigned.
18370 
18371 
18372 END IF;
18373 END IF;
18374 --
18375 
18376 --
18377 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18378    trace
18379       (p_msg      => 'END of AcctLineType_60'
18380       ,p_level    => C_LEVEL_PROCEDURE
18381       ,p_module   => l_log_module);
18382 END IF;
18383 --
18384 EXCEPTION
18385   WHEN xla_exceptions_pkg.application_exception THEN
18386       RAISE;
18387   WHEN OTHERS THEN
18388        xla_exceptions_pkg.raise_message
18389            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_60');
18390 END AcctLineType_60;
18391 --
18392 
18393 ---------------------------------------
18394 --
18395 -- PRIVATE FUNCTION
18396 --         AcctLineType_61
18397 --
18398 ---------------------------------------
18399 PROCEDURE AcctLineType_61 (
18400   p_application_id        IN NUMBER
18401  ,p_event_id              IN NUMBER
18402  ,p_calculate_acctd_flag  IN VARCHAR2
18403  ,p_calculate_g_l_flag    IN VARCHAR2
18404  ,p_actual_flag           IN OUT VARCHAR2
18405  ,p_balance_type_code     OUT VARCHAR2
18406  ,p_gain_or_loss_ref      OUT VARCHAR2
18407  
18408 --Invoice Distribution Type
18409  , p_source_21            IN VARCHAR2
18410  , p_source_21_meaning    IN VARCHAR2
18411 --Accounting Reversal Indicator
18412  , p_source_41            IN VARCHAR2
18413 --Distribution Link Type
18414  , p_source_43            IN VARCHAR2
18415 --Allocation to Main Distribution Identifier
18416  , p_source_45            IN NUMBER
18417 --Invoice Identifier
18418  , p_source_46            IN NUMBER
18419 --Invoice Distribution Identifier
18420  , p_source_52            IN NUMBER
18421 --Payables Encumbrance Upgrade Credit Account
18422  , p_source_53            IN NUMBER
18423 --Payables Encumbrance Upgrade Credit Amount
18424  , p_source_54            IN NUMBER
18425 --Invoice Currency Code
18426  , p_source_55            IN VARCHAR2
18427 --Payables Encumbrance Upgrade Credit Base Amount
18428  , p_source_56            IN NUMBER
18429 --Payables Encumbrance Upgrade Debit Account
18430  , p_source_57            IN NUMBER
18431 --Payables Encumbrance Upgrade Debit Amount
18432  , p_source_58            IN NUMBER
18433 --Payables Encumbrance Upgrade Debit Base Amount
18434  , p_source_59            IN NUMBER
18435 --Payables Encumbrance Upgrade Option
18436  , p_source_60            IN VARCHAR2
18437 --Invoice Distribution Amount
18438  , p_source_61            IN NUMBER
18439 --Deferred Accounting End Date
18440  , p_source_65            IN DATE
18441 --Deferred Accounting Option
18442  , p_source_66            IN VARCHAR2
18443 --Deferred Accounting Start Date
18444  , p_source_67            IN DATE
18445 --Override Accounted Amount Indicator
18446  , p_source_68            IN VARCHAR2
18447  , p_source_68_meaning    IN VARCHAR2
18448 --Third Party Type
18449  , p_source_71            IN VARCHAR2
18450 --Parent Reversal Identifier
18451  , p_source_72            IN NUMBER
18452 --Invoice Distribution Statistical Amount
18453  , p_source_73            IN NUMBER
18454 --Invoice Distribution Tax Line Identifier
18455  , p_source_74            IN NUMBER
18456 --Invoice Distribution Tax Distribution Identifier from Tax
18457  , p_source_75            IN NUMBER
18458 --Invoice Distribution Summary Tax Line Identifier
18459  , p_source_76            IN NUMBER
18460 --Payables Upgrade Credit Encumbrance Type Identifier
18461  , p_source_77            IN NUMBER
18462 --Payables Upgrade Debit Encumbrance Type Identifier
18463  , p_source_78            IN NUMBER
18464 --Business Flow Accounts Payable Application Identifier
18465  , p_source_79            IN NUMBER
18466 --Business Flow Invoice Distribution Type
18467  , p_source_80            IN VARCHAR2
18468 --Business Flow Invoice Entity Code
18469  , p_source_81            IN VARCHAR2
18470 --Business Flow Invoice Distribution Identifier
18471  , p_source_82            IN NUMBER
18472 --Business Flow Invoice Identifier
18473  , p_source_83            IN NUMBER
18474 --Accrue on Receipt Option
18475  , p_source_84            IN VARCHAR2
18476  , p_source_84_meaning    IN VARCHAR2
18477 --Amount for Variance Amount
18478  , p_source_85            IN NUMBER
18479 --Purchasing Encumbrance Option
18480  , p_source_86            IN VARCHAR2
18481  , p_source_86_meaning    IN VARCHAR2
18482 --Invoice Encumbered Option
18483  , p_source_87            IN VARCHAR2
18484  , p_source_87_meaning    IN VARCHAR2
18485 --Variance Amount in Ledger Currency
18486  , p_source_88            IN NUMBER
18487 )
18488 IS
18489 
18490 l_component_type              VARCHAR2(80);
18491 l_component_code              VARCHAR2(30);
18492 l_component_type_code         VARCHAR2(1);
18493 l_component_appl_id           INTEGER;
18494 l_amb_context_code            VARCHAR2(30);
18495 l_entity_code                 VARCHAR2(30);
18496 l_event_class_code            VARCHAR2(30);
18497 l_ae_header_id                NUMBER;
18498 l_event_type_code             VARCHAR2(30);
18499 l_line_definition_code        VARCHAR2(30);
18500 l_line_definition_owner_code  VARCHAR2(1);
18501 --
18502 -- adr variables
18503 l_segment                     VARCHAR2(30);
18504 l_ccid                        NUMBER;
18505 l_adr_transaction_coa_id      NUMBER;
18506 l_adr_accounting_coa_id       NUMBER;
18507 l_adr_flexfield_segment_code  VARCHAR2(30);
18508 l_adr_flex_value_set_id       NUMBER;
18509 l_adr_value_type_code         VARCHAR2(30);
18510 l_adr_value_combination_id    NUMBER;
18511 l_adr_value_segment_code      VARCHAR2(30);
18512 
18513 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
18514 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
18515 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
18516 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
18517 
18518 -- 4262811 Variables ------------------------------------------------------------------------------------------
18519 l_entered_amt_idx             NUMBER;
18520 l_accted_amt_idx              NUMBER;
18521 l_acc_rev_flag                VARCHAR2(1);
18522 l_accrual_line_num            NUMBER;
18523 l_tmp_amt                     NUMBER;
18524 l_acc_rev_natural_side_code   VARCHAR2(1);
18525 
18526 l_num_entries                 NUMBER;
18527 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
18528 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
18529 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
18530 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
18531 l_recog_line_1                NUMBER;
18532 l_recog_line_2                NUMBER;
18533 
18534 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
18535 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
18536 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
18537 
18538 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18539 
18540 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
18541 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
18542 
18543 ---------------------------------------------------------------------------------------------------------------
18544 
18545 
18546 --
18547 -- bulk performance
18548 --
18549 l_balance_type_code           VARCHAR2(1);
18550 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
18551 l_log_module                  VARCHAR2(240);
18552 
18553 --
18554 -- Upgrade strategy
18555 --
18556 l_actual_upg_option           VARCHAR2(1);
18557 l_enc_upg_option           VARCHAR2(1);
18558 
18559 --
18560 BEGIN
18561 --
18562 IF g_log_enabled THEN
18563       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_61';
18564 END IF;
18565 --
18566 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18567 
18568       trace
18569          (p_msg      => 'BEGIN of AcctLineType_61'
18570          ,p_level    => C_LEVEL_PROCEDURE
18571          ,p_module   => l_log_module);
18572 
18573 END IF;
18574 --
18575 l_component_type             := 'AMB_JLT';
18576 l_component_code             := 'AP_AMOUNT_VARIANCE_INV_ENC';
18577 l_component_type_code        := 'S';
18578 l_component_appl_id          :=  200;
18579 l_amb_context_code           := 'DEFAULT';
18580 l_entity_code                := 'AP_INVOICES';
18581 l_event_class_code           := 'INVOICES';
18582 l_event_type_code            := 'INVOICES_ALL';
18583 l_line_definition_owner_code := 'S';
18584 l_line_definition_code       := 'ENC_REV_INVOICES_ALL';
18585 --
18586 l_balance_type_code          := 'E';
18587 l_segment                     := NULL;
18588 l_ccid                        := NULL;
18589 l_adr_transaction_coa_id      := NULL;
18590 l_adr_accounting_coa_id       := NULL;
18591 l_adr_flexfield_segment_code  := NULL;
18592 l_adr_flex_value_set_id       := NULL;
18593 l_adr_value_type_code         := NULL;
18594 l_adr_value_combination_id    := NULL;
18595 l_adr_value_segment_code      := NULL;
18596 
18597 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
18598 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
18599 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
18600 l_budgetary_control_flag     := 'N';
18601 
18602 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
18603 l_bflow_applied_to_amt       := NULL; -- 5132302
18604 l_entered_amt_idx            := NULL;          -- 4262811
18605 l_accted_amt_idx             := NULL;          -- 4262811
18606 l_acc_rev_flag               := NULL;          -- 4262811
18607 l_accrual_line_num           := NULL;          -- 4262811
18608 l_tmp_amt                    := NULL;          -- 4262811
18609 --
18610  
18611 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18612     l_balance_type_code <> 'B' THEN
18613 IF NVL(p_source_21,'
18614 ') =  'ITEM' AND 
18615 p_source_85 IS NOT NULL AND 
18616 NVL(p_source_86,'
18617 ') =  'Y' AND 
18618 NVL(p_source_84,'
18619 ') <>  'Y' AND 
18620 NVL(p_source_87,'
18621 ') =  'Y'
18622  THEN 
18623 
18624    --
18625    XLA_AE_LINES_PKG.SetNewLine;
18626 
18627    p_balance_type_code          := l_balance_type_code;
18628    -- set the flag so later we will know whether the gain loss line needs to be created
18629    
18630    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18631      p_actual_flag :='A';
18632    END IF;
18633 
18634    --
18635    -- bulk performance
18636    --
18637    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18638                                       p_header_num   => 0); -- 4262811
18639    --
18640    -- set accounting line options
18641    --
18642    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18643            p_natural_side_code          => 'C'
18644          , p_gain_or_loss_flag          => 'N'
18645          , p_gl_transfer_mode_code      => 'S'
18646          , p_acct_entry_type_code       => 'E'
18647          , p_switch_side_flag           => 'Y'
18648          , p_merge_duplicate_code       => 'A'
18649          );
18650    --
18651    l_acc_rev_natural_side_code := 'D';  -- 4262811
18652    -- 
18653    --
18654    -- set accounting line type info
18655    --
18656    xla_ae_lines_pkg.SetAcctLineType
18660       ,p_line_definition_code       => l_line_definition_code
18657       (p_component_type             => l_component_type
18658       ,p_event_type_code            => l_event_type_code
18659       ,p_line_definition_owner_code => l_line_definition_owner_code
18661       ,p_accounting_line_code       => l_component_code
18662       ,p_accounting_line_type_code  => l_component_type_code
18663       ,p_accounting_line_appl_id    => l_component_appl_id
18664       ,p_amb_context_code           => l_amb_context_code
18665       ,p_entity_code                => l_entity_code
18666       ,p_event_class_code           => l_event_class_code);
18667    --
18668    -- set accounting class
18669    --
18670    xla_ae_lines_pkg.SetAcctClass(
18671            p_accounting_class_code  => 'AMT_VARIANCE'
18672          , p_ae_header_id           => l_ae_header_id
18673          );
18674 
18675    --
18676    -- set rounding class
18677    --
18678    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18679                       'AMT_VARIANCE';
18680 
18681    --
18682    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18683    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18684    --
18685    -- bulk performance
18686    --
18687    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18688 
18689    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18690       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18691 
18692    -- 4955764
18693    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18694       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18695 
18696    -- 4458381 Public Sector Enh
18697    
18698    --
18699    -- set accounting attributes for the line type
18700    --
18701    l_entered_amt_idx := 24;
18702    l_accted_amt_idx  := 26;
18703    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
18704    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18705    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
18706    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
18707    l_rec_acct_attrs.array_num_value(2)  := 
18708 xla_ae_sources_pkg.GetSystemSourceNum(
18709    p_source_code           => 'XLA_EVENT_APPL_ID'
18710  , p_source_type_code      => 'Y'
18711  , p_source_application_id =>  602
18712 );
18713    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
18714    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
18715    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
18716    l_rec_acct_attrs.array_char_value(4)  := 
18717 xla_ae_sources_pkg.GetSystemSourceChar(
18718    p_source_code           => 'XLA_ENTITY_CODE'
18719  , p_source_type_code      => 'Y'
18720  , p_source_application_id =>  602
18721 );
18722    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
18723    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
18724    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
18725    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
18726    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
18727    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
18728    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
18729    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
18730    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18731    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
18732    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
18733    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
18734    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
18735    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
18736    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18737    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
18738    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
18739    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
18740    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
18741    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
18742    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
18746    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
18743    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
18744    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
18745    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
18747    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
18748    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
18749    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
18750    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
18751    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
18752    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
18753    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
18754    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
18755    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
18756    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
18757    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
18758    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
18759    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
18760    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
18761    l_rec_acct_attrs.array_num_value(24)  := p_source_85;
18762    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
18763    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
18764    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
18765    l_rec_acct_attrs.array_num_value(26)  := p_source_88;
18766    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
18767    l_rec_acct_attrs.array_date_value(27)  := p_source_65;
18768    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
18769    l_rec_acct_attrs.array_char_value(28)  := p_source_66;
18770    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
18771    l_rec_acct_attrs.array_date_value(29)  := p_source_67;
18772    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
18773    l_rec_acct_attrs.array_char_value(30)  := p_source_68;
18774    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
18775    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
18776    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
18777    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
18778    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
18779    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
18780    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
18781    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
18782    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
18783    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
18784    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
18785    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
18786    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
18787    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
18788    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
18789    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
18790    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
18791    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
18792 
18793    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18794    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18795 
18796    ---------------------------------------------------------------------------------------------------------------
18797    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18798    ---------------------------------------------------------------------------------------------------------------
18799    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18800 
18801    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18802    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18803 
18804    IF xla_accounting_cache_pkg.GetValueChar
18805          (p_source_code         => 'LEDGER_CATEGORY_CODE'
18806          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18807    AND l_bflow_method_code = 'PRIOR_ENTRY'
18808 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18809    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18810          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18811        )
18812    THEN
18813          xla_ae_lines_pkg.BflowUpgEntry
18814            (p_business_method_code    => l_bflow_method_code
18815            ,p_business_class_code     => l_bflow_class_code
18816            ,p_balance_type            => l_balance_type_code);
18817    ELSE
18818       NULL;
18819 XLA_AE_LINES_PKG.business_flow_validation(
18820                                 p_business_method_code     => l_bflow_method_code
18821                                ,p_business_class_code      => l_bflow_class_code
18822                                ,p_inherit_description_flag => l_inherit_desc_flag);
18823    END IF;
18824 
18825    --
18826    -- call analytical criteria
18827    --
18828    -- Inherited Analytical Criteria for business flow method of Prior Entry.
18829    --
18830    -- call description
18831    --
18832    -- No description or it is inherited.
18833    --
18834    -- call ADRs
18835    -- Bug 4922099
18836    --
18837    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18838         (NVL(l_actual_upg_option, 'N') = 'O') OR
18839         (NVL(l_enc_upg_option, 'N') = 'O')
18840       )
18841    THEN
18842    NULL;
18843    --
18844    --
18845    
18846    --
18847    --
18848    END IF;
18849    --
18850    -- Bug 4922099
18851    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18852           (NVL(l_enc_upg_option, 'N') = 'O')
18853         ) AND
18854         (l_bflow_method_code = 'PRIOR_ENTRY')
18855       )
18856    THEN
18857       IF
18858       --
18859       1 = 1
18860       --
18861       THEN
18862       xla_accounting_err_pkg.build_message
18863                                     (p_appli_s_name            => 'XLA'
18864                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18865                                     ,p_token_1                 => 'LINE_NUMBER'
18869                                                                              l_component_type
18866                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
18867                                     ,p_token_2                 => 'LINE_TYPE_NAME'
18868                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
18870                                                                             ,l_component_code
18871                                                                             ,l_component_type_code
18872                                                                             ,l_component_appl_id
18873                                                                             ,l_amb_context_code
18874                                                                             ,l_entity_code
18875                                                                             ,l_event_class_code
18876                                                                            )
18877                                     ,p_token_3                 => 'OWNER'
18878                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
18879                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
18880                                                                           ,p_lookup_code    => l_component_type_code
18881                                                                          )
18882                                     ,p_token_4                 => 'PRODUCT_NAME'
18883                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18884                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18885                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18886                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18887                                     ,p_ae_header_id            =>  NULL
18888                                        );
18889 
18890         IF (C_LEVEL_ERROR>= g_log_level) THEN
18891                  trace
18892                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18893                       ,p_level    => C_LEVEL_ERROR
18894                       ,p_module   => l_log_module);
18895         END IF;
18896       END IF;
18897    END IF;
18898    --
18899    --
18900    ------------------------------------------------------------------------------------------------
18901    -- 4219869 Business Flow
18902    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18903    -- Prior Entry.  Currently, the following code is always generated.
18904    ------------------------------------------------------------------------------------------------
18905    -- No ValidateCurrentLine for business flow method of Prior Entry
18906 
18907    ------------------------------------------------------------------------------------
18908    -- 4219869 Business Flow
18909    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18910    ------------------------------------------------------------------------------------
18911    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18912 
18913    ----------------------------------------------------------------------------------
18914    -- 4219869 Business Flow
18915    -- Update journal entry status -- Need to generate this within IF <condition>
18916    ----------------------------------------------------------------------------------
18917    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18918          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18919          ,p_balance_type_code => l_balance_type_code
18920          );
18921 
18922    -------------------------------------------------------------------------------------------
18923    -- 4262811 - Generate the Accrual Reversal lines
18924    -------------------------------------------------------------------------------------------
18925    BEGIN
18926       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18927                               (g_array_event(p_event_id).array_value_num('header_index'));
18928       IF l_acc_rev_flag IS NULL THEN
18929          l_acc_rev_flag := 'N';
18930       END IF;
18931    EXCEPTION
18932       WHEN OTHERS THEN
18933          l_acc_rev_flag := 'N';
18934    END;
18935    --
18936    IF (l_acc_rev_flag = 'Y') THEN
18937 
18938        -- 4645092  ------------------------------------------------------------------------------
18939        -- To allow MPA report to determine if it should generate report process
18940        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18941        ------------------------------------------------------------------------------------------
18942 
18943        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18944        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18945    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
18946    -- call ADRs
18947    -- Bug 4922099
18948    --
18949    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18950         (NVL(l_actual_upg_option, 'N') = 'O') OR
18951         (NVL(l_enc_upg_option, 'N') = 'O')
18952       )
18953    THEN
18954    NULL;
18955    --
18956    --
18957    
18958    --
18959    --
18960    END IF;
18961 
18962        --
18963        -- Update the line information that should be overwritten
18964        --
18965        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18966                                          p_header_num   => 1);
18967        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
18968 
18969        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18970 
18971        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
18972           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18973        END IF;
18974 
18975       --
18976       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18977       --
18978       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18979           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
18980       ELSE
18981           ---------------------------------------------------------------------------------------------------
18982           -- 4262811a Switch Sign
18986                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18983           ---------------------------------------------------------------------------------------------------
18984           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
18985           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18987           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18988                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18989           -- 5132302
18990           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18991                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18992 
18993       END IF;
18994 
18995       -- 4955764
18996       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18997       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18998 
18999 
19000       XLA_AE_LINES_PKG.ValidateCurrentLine;
19001       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19002 
19003       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19004                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19005                ,p_balance_type_code => l_balance_type_code);
19006 
19007    END IF;
19008 
19009    -----------------------------------------------------------------------------------------
19010    -- 4262811 Multiperiod Accounting
19011    -----------------------------------------------------------------------------------------
19012      -- No MPA option is assigned.
19013 
19014 
19015 END IF;
19016 END IF;
19017 --
19018 
19019 --
19020 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19021    trace
19022       (p_msg      => 'END of AcctLineType_61'
19023       ,p_level    => C_LEVEL_PROCEDURE
19024       ,p_module   => l_log_module);
19025 END IF;
19026 --
19027 EXCEPTION
19028   WHEN xla_exceptions_pkg.application_exception THEN
19029       RAISE;
19030   WHEN OTHERS THEN
19031        xla_exceptions_pkg.raise_message
19035 
19032            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_61');
19033 END AcctLineType_61;
19034 --
19036 ---------------------------------------
19037 --
19038 -- PRIVATE FUNCTION
19039 --         AcctLineType_62
19040 --
19041 ---------------------------------------
19042 PROCEDURE AcctLineType_62 (
19043   p_application_id        IN NUMBER
19044  ,p_event_id              IN NUMBER
19045  ,p_calculate_acctd_flag  IN VARCHAR2
19046  ,p_calculate_g_l_flag    IN VARCHAR2
19047  ,p_actual_flag           IN OUT VARCHAR2
19048  ,p_balance_type_code     OUT VARCHAR2
19049  ,p_gain_or_loss_ref      OUT VARCHAR2
19050  
19051 --Invoice Distribution Type
19052  , p_source_21            IN VARCHAR2
19053  , p_source_21_meaning    IN VARCHAR2
19054 --Accounting Reversal Indicator
19055  , p_source_41            IN VARCHAR2
19056 --Distribution Link Type
19057  , p_source_43            IN VARCHAR2
19058 --Allocation to Main Distribution Identifier
19059  , p_source_45            IN NUMBER
19060 --Invoice Identifier
19061  , p_source_46            IN NUMBER
19062 --Invoice Distribution Identifier
19063  , p_source_52            IN NUMBER
19064 --Payables Encumbrance Upgrade Credit Account
19065  , p_source_53            IN NUMBER
19066 --Payables Encumbrance Upgrade Credit Amount
19067  , p_source_54            IN NUMBER
19068 --Invoice Currency Code
19069  , p_source_55            IN VARCHAR2
19070 --Payables Encumbrance Upgrade Credit Base Amount
19071  , p_source_56            IN NUMBER
19072 --Payables Encumbrance Upgrade Debit Account
19073  , p_source_57            IN NUMBER
19074 --Payables Encumbrance Upgrade Debit Amount
19075  , p_source_58            IN NUMBER
19076 --Payables Encumbrance Upgrade Debit Base Amount
19077  , p_source_59            IN NUMBER
19078 --Payables Encumbrance Upgrade Option
19079  , p_source_60            IN VARCHAR2
19080 --Deferred Accounting End Date
19081  , p_source_65            IN DATE
19082 --Deferred Accounting Option
19083  , p_source_66            IN VARCHAR2
19084 --Deferred Accounting Start Date
19085  , p_source_67            IN DATE
19086 --Override Accounted Amount Indicator
19087  , p_source_68            IN VARCHAR2
19088  , p_source_68_meaning    IN VARCHAR2
19089 --Third Party Type
19090  , p_source_71            IN VARCHAR2
19091 --Parent Reversal Identifier
19092  , p_source_72            IN NUMBER
19093 --Invoice Distribution Statistical Amount
19094  , p_source_73            IN NUMBER
19095 --Invoice Distribution Tax Line Identifier
19096  , p_source_74            IN NUMBER
19097 --Invoice Distribution Tax Distribution Identifier from Tax
19098  , p_source_75            IN NUMBER
19099 --Invoice Distribution Summary Tax Line Identifier
19100  , p_source_76            IN NUMBER
19101 --Payables Upgrade Credit Encumbrance Type Identifier
19102  , p_source_77            IN NUMBER
19103 --Payables Upgrade Debit Encumbrance Type Identifier
19104  , p_source_78            IN NUMBER
19105 --Business Flow Accounts Payable Application Identifier
19106  , p_source_79            IN NUMBER
19107 --Business Flow Invoice Distribution Type
19108  , p_source_80            IN VARCHAR2
19109 --Business Flow Invoice Entity Code
19110  , p_source_81            IN VARCHAR2
19111 --Business Flow Invoice Distribution Identifier
19112  , p_source_82            IN NUMBER
19113 --Business Flow Invoice Identifier
19114  , p_source_83            IN NUMBER
19115 --Accrue on Receipt Option
19116  , p_source_84            IN VARCHAR2
19117  , p_source_84_meaning    IN VARCHAR2
19118 --Amount for Variance Amount
19119  , p_source_85            IN NUMBER
19120 --Purchasing Encumbrance Option
19121  , p_source_86            IN VARCHAR2
19122  , p_source_86_meaning    IN VARCHAR2
19123 --Invoice Encumbered Option
19124  , p_source_87            IN VARCHAR2
19125  , p_source_87_meaning    IN VARCHAR2
19126 --Variance Amount in Ledger Currency
19127  , p_source_88            IN NUMBER
19128 )
19129 IS
19130 
19131 l_component_type              VARCHAR2(80);
19132 l_component_code              VARCHAR2(30);
19133 l_component_type_code         VARCHAR2(1);
19134 l_component_appl_id           INTEGER;
19135 l_amb_context_code            VARCHAR2(30);
19136 l_entity_code                 VARCHAR2(30);
19137 l_event_class_code            VARCHAR2(30);
19138 l_ae_header_id                NUMBER;
19139 l_event_type_code             VARCHAR2(30);
19140 l_line_definition_code        VARCHAR2(30);
19141 l_line_definition_owner_code  VARCHAR2(1);
19142 --
19143 -- adr variables
19144 l_segment                     VARCHAR2(30);
19145 l_ccid                        NUMBER;
19146 l_adr_transaction_coa_id      NUMBER;
19150 l_adr_value_type_code         VARCHAR2(30);
19147 l_adr_accounting_coa_id       NUMBER;
19148 l_adr_flexfield_segment_code  VARCHAR2(30);
19149 l_adr_flex_value_set_id       NUMBER;
19151 l_adr_value_combination_id    NUMBER;
19152 l_adr_value_segment_code      VARCHAR2(30);
19153 
19154 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
19155 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
19156 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
19157 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
19158 
19159 -- 4262811 Variables ------------------------------------------------------------------------------------------
19160 l_entered_amt_idx             NUMBER;
19161 l_accted_amt_idx              NUMBER;
19162 l_acc_rev_flag                VARCHAR2(1);
19163 l_accrual_line_num            NUMBER;
19164 l_tmp_amt                     NUMBER;
19165 l_acc_rev_natural_side_code   VARCHAR2(1);
19166 
19167 l_num_entries                 NUMBER;
19168 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
19169 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
19170 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
19171 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
19172 l_recog_line_1                NUMBER;
19173 l_recog_line_2                NUMBER;
19174 
19175 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
19176 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
19177 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
19178 
19179 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19180 
19181 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
19182 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
19183 
19184 ---------------------------------------------------------------------------------------------------------------
19185 
19186 
19187 --
19188 -- bulk performance
19189 --
19190 l_balance_type_code           VARCHAR2(1);
19191 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
19192 l_log_module                  VARCHAR2(240);
19193 
19194 --
19195 -- Upgrade strategy
19196 --
19197 l_actual_upg_option           VARCHAR2(1);
19198 l_enc_upg_option           VARCHAR2(1);
19199 
19200 --
19201 BEGIN
19202 --
19203 IF g_log_enabled THEN
19204       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_62';
19205 END IF;
19206 --
19207 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19208 
19209       trace
19210          (p_msg      => 'BEGIN of AcctLineType_62'
19211          ,p_level    => C_LEVEL_PROCEDURE
19212          ,p_module   => l_log_module);
19213 
19214 END IF;
19215 --
19216 l_component_type             := 'AMB_JLT';
19217 l_component_code             := 'AP_AMOUNT_VARIANCE_PP_ENC';
19218 l_component_type_code        := 'S';
19219 l_component_appl_id          :=  200;
19220 l_amb_context_code           := 'DEFAULT';
19221 l_entity_code                := 'AP_INVOICES';
19222 l_event_class_code           := 'PREPAYMENTS';
19223 l_event_type_code            := 'PREPAYMENTS_ALL';
19224 l_line_definition_owner_code := 'S';
19225 l_line_definition_code       := 'ENC_REV_PREPAY_ALL';
19226 --
19227 l_balance_type_code          := 'E';
19228 l_segment                     := NULL;
19229 l_ccid                        := NULL;
19230 l_adr_transaction_coa_id      := NULL;
19231 l_adr_accounting_coa_id       := NULL;
19232 l_adr_flexfield_segment_code  := NULL;
19233 l_adr_flex_value_set_id       := NULL;
19234 l_adr_value_type_code         := NULL;
19235 l_adr_value_combination_id    := NULL;
19236 l_adr_value_segment_code      := NULL;
19237 
19238 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
19239 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
19240 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
19241 l_budgetary_control_flag     := 'N';
19242 
19243 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
19244 l_bflow_applied_to_amt       := NULL; -- 5132302
19245 l_entered_amt_idx            := NULL;          -- 4262811
19246 l_accted_amt_idx             := NULL;          -- 4262811
19247 l_acc_rev_flag               := NULL;          -- 4262811
19248 l_accrual_line_num           := NULL;          -- 4262811
19249 l_tmp_amt                    := NULL;          -- 4262811
19250 --
19251  
19252 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19253     l_balance_type_code <> 'B' THEN
19254 IF NVL(p_source_21,'
19255 ') =  'ITEM' AND 
19256 p_source_85 IS NOT NULL AND 
19257 NVL(p_source_84,'
19258 ') <>  'Y' AND 
19259 NVL(p_source_86,'
19260 ') =  'Y' AND 
19261 NVL(p_source_87,'
19262 ') =  'Y'
19263  THEN 
19264 
19265    --
19266    XLA_AE_LINES_PKG.SetNewLine;
19267 
19268    p_balance_type_code          := l_balance_type_code;
19269    -- set the flag so later we will know whether the gain loss line needs to be created
19270    
19271    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19272      p_actual_flag :='A';
19273    END IF;
19274 
19275    --
19276    -- bulk performance
19277    --
19278    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19279                                       p_header_num   => 0); -- 4262811
19280    --
19281    -- set accounting line options
19282    --
19283    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19284            p_natural_side_code          => 'C'
19285          , p_gain_or_loss_flag          => 'N'
19286          , p_gl_transfer_mode_code      => 'S'
19287          , p_acct_entry_type_code       => 'E'
19288          , p_switch_side_flag           => 'Y'
19289          , p_merge_duplicate_code       => 'A'
19290          );
19291    --
19292    l_acc_rev_natural_side_code := 'D';  -- 4262811
19293    -- 
19294    --
19295    -- set accounting line type info
19296    --
19297    xla_ae_lines_pkg.SetAcctLineType
19298       (p_component_type             => l_component_type
19299       ,p_event_type_code            => l_event_type_code
19300       ,p_line_definition_owner_code => l_line_definition_owner_code
19301       ,p_line_definition_code       => l_line_definition_code
19302       ,p_accounting_line_code       => l_component_code
19303       ,p_accounting_line_type_code  => l_component_type_code
19304       ,p_accounting_line_appl_id    => l_component_appl_id
19305       ,p_amb_context_code           => l_amb_context_code
19306       ,p_entity_code                => l_entity_code
19307       ,p_event_class_code           => l_event_class_code);
19308    --
19309    -- set accounting class
19310    --
19311    xla_ae_lines_pkg.SetAcctClass(
19312            p_accounting_class_code  => 'AMT_VARIANCE'
19313          , p_ae_header_id           => l_ae_header_id
19314          );
19315 
19316    --
19317    -- set rounding class
19318    --
19319    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19320                       'AMT_VARIANCE';
19321 
19322    --
19323    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19324    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19325    --
19326    -- bulk performance
19327    --
19328    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19329 
19330    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19331       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19332 
19333    -- 4955764
19334    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19335       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19336 
19337    -- 4458381 Public Sector Enh
19338    
19339    --
19340    -- set accounting attributes for the line type
19341    --
19342    l_entered_amt_idx := 23;
19343    l_accted_amt_idx  := 25;
19344    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
19345    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19346    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
19347    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
19348    l_rec_acct_attrs.array_num_value(2)  := 
19349 xla_ae_sources_pkg.GetSystemSourceNum(
19350    p_source_code           => 'XLA_EVENT_APPL_ID'
19351  , p_source_type_code      => 'Y'
19352  , p_source_application_id =>  602
19353 );
19354    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
19355    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
19356    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
19357    l_rec_acct_attrs.array_char_value(4)  := 
19358 xla_ae_sources_pkg.GetSystemSourceChar(
19359    p_source_code           => 'XLA_ENTITY_CODE'
19360  , p_source_type_code      => 'Y'
19361  , p_source_application_id =>  602
19362 );
19363    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
19364    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
19365    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
19366    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
19367    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
19368    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
19369    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
19370    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
19371    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
19372    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
19373    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
19374    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
19375    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
19376    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
19377    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
19381    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
19378    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
19379    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
19380    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
19382    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
19383    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
19384    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
19385    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
19386    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
19387    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
19388    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
19389    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
19390    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
19391    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
19392    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
19393    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
19394    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
19395    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
19396    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
19397    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
19398    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
19399    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
19400    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
19401    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
19402    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
19403    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
19404    l_rec_acct_attrs.array_num_value(25)  := p_source_88;
19405    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
19406    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
19407    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
19408    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
19409    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
19410    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
19411    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
19412    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
19413    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
19414    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
19415    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
19416    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
19417    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
19418    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
19419    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
19420    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
19421    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
19422    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
19423    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
19424    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
19425    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
19426    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
19427    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
19428    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
19429    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
19430    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
19431 
19432    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19433    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19434 
19435    ---------------------------------------------------------------------------------------------------------------
19436    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19437    ---------------------------------------------------------------------------------------------------------------
19438    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19439 
19440    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19441    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19442 
19443    IF xla_accounting_cache_pkg.GetValueChar
19444          (p_source_code         => 'LEDGER_CATEGORY_CODE'
19445          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19446    AND l_bflow_method_code = 'PRIOR_ENTRY'
19447 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19448    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19449          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19450        )
19451    THEN
19452          xla_ae_lines_pkg.BflowUpgEntry
19453            (p_business_method_code    => l_bflow_method_code
19454            ,p_business_class_code     => l_bflow_class_code
19455            ,p_balance_type            => l_balance_type_code);
19456    ELSE
19457       NULL;
19458 XLA_AE_LINES_PKG.business_flow_validation(
19459                                 p_business_method_code     => l_bflow_method_code
19460                                ,p_business_class_code      => l_bflow_class_code
19461                                ,p_inherit_description_flag => l_inherit_desc_flag);
19462    END IF;
19463 
19464    --
19465    -- call analytical criteria
19466    --
19467    -- Inherited Analytical Criteria for business flow method of Prior Entry.
19468    --
19469    -- call description
19470    --
19471    -- No description or it is inherited.
19472    --
19473    -- call ADRs
19474    -- Bug 4922099
19475    --
19476    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19480    THEN
19477         (NVL(l_actual_upg_option, 'N') = 'O') OR
19478         (NVL(l_enc_upg_option, 'N') = 'O')
19479       )
19481    NULL;
19482    --
19483    --
19484    
19485    --
19486    --
19487    END IF;
19488    --
19489    -- Bug 4922099
19490    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19491           (NVL(l_enc_upg_option, 'N') = 'O')
19492         ) AND
19493         (l_bflow_method_code = 'PRIOR_ENTRY')
19494       )
19495    THEN
19496       IF
19497       --
19498       1 = 1
19499       --
19500       THEN
19501       xla_accounting_err_pkg.build_message
19502                                     (p_appli_s_name            => 'XLA'
19503                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19504                                     ,p_token_1                 => 'LINE_NUMBER'
19505                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
19506                                     ,p_token_2                 => 'LINE_TYPE_NAME'
19507                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
19508                                                                              l_component_type
19509                                                                             ,l_component_code
19510                                                                             ,l_component_type_code
19511                                                                             ,l_component_appl_id
19512                                                                             ,l_amb_context_code
19513                                                                             ,l_entity_code
19514                                                                             ,l_event_class_code
19515                                                                            )
19516                                     ,p_token_3                 => 'OWNER'
19517                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
19518                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
19519                                                                           ,p_lookup_code    => l_component_type_code
19520                                                                          )
19521                                     ,p_token_4                 => 'PRODUCT_NAME'
19522                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19523                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19524                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19525                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19526                                     ,p_ae_header_id            =>  NULL
19527                                        );
19528 
19529         IF (C_LEVEL_ERROR>= g_log_level) THEN
19530                  trace
19531                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19532                       ,p_level    => C_LEVEL_ERROR
19533                       ,p_module   => l_log_module);
19534         END IF;
19535       END IF;
19536    END IF;
19537    --
19538    --
19539    ------------------------------------------------------------------------------------------------
19540    -- 4219869 Business Flow
19541    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19542    -- Prior Entry.  Currently, the following code is always generated.
19543    ------------------------------------------------------------------------------------------------
19544    -- No ValidateCurrentLine for business flow method of Prior Entry
19545 
19546    ------------------------------------------------------------------------------------
19547    -- 4219869 Business Flow
19548    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19549    ------------------------------------------------------------------------------------
19550    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19551 
19552    ----------------------------------------------------------------------------------
19553    -- 4219869 Business Flow
19554    -- Update journal entry status -- Need to generate this within IF <condition>
19555    ----------------------------------------------------------------------------------
19556    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19557          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19558          ,p_balance_type_code => l_balance_type_code
19559          );
19560 
19561    -------------------------------------------------------------------------------------------
19562    -- 4262811 - Generate the Accrual Reversal lines
19563    -------------------------------------------------------------------------------------------
19564    BEGIN
19565       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19566                               (g_array_event(p_event_id).array_value_num('header_index'));
19567       IF l_acc_rev_flag IS NULL THEN
19568          l_acc_rev_flag := 'N';
19569       END IF;
19570    EXCEPTION
19571       WHEN OTHERS THEN
19572          l_acc_rev_flag := 'N';
19573    END;
19574    --
19575    IF (l_acc_rev_flag = 'Y') THEN
19576 
19577        -- 4645092  ------------------------------------------------------------------------------
19578        -- To allow MPA report to determine if it should generate report process
19579        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19580        ------------------------------------------------------------------------------------------
19581 
19582        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19586    -- Bug 4922099
19583        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19584    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
19585    -- call ADRs
19587    --
19588    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19589         (NVL(l_actual_upg_option, 'N') = 'O') OR
19590         (NVL(l_enc_upg_option, 'N') = 'O')
19591       )
19592    THEN
19593    NULL;
19594    --
19595    --
19596    
19597    --
19598    --
19599    END IF;
19600 
19601        --
19602        -- Update the line information that should be overwritten
19603        --
19604        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19605                                          p_header_num   => 1);
19606        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
19607 
19608        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19609 
19610        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
19611           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19612        END IF;
19613 
19614       --
19615       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19616       --
19617       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19618           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
19619       ELSE
19620           ---------------------------------------------------------------------------------------------------
19621           -- 4262811a Switch Sign
19622           ---------------------------------------------------------------------------------------------------
19623           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
19624           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19625                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19626           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19627                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19628           -- 5132302
19629           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19630                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19631 
19632       END IF;
19633 
19634       -- 4955764
19635       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19636       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19637 
19638 
19639       XLA_AE_LINES_PKG.ValidateCurrentLine;
19640       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19641 
19642       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19643                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19644                ,p_balance_type_code => l_balance_type_code);
19645 
19646    END IF;
19647 
19648    -----------------------------------------------------------------------------------------
19649    -- 4262811 Multiperiod Accounting
19650    -----------------------------------------------------------------------------------------
19651      -- No MPA option is assigned.
19652 
19653 
19654 END IF;
19655 END IF;
19656 --
19657 
19658 --
19659 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19660    trace
19661       (p_msg      => 'END of AcctLineType_62'
19662       ,p_level    => C_LEVEL_PROCEDURE
19663       ,p_module   => l_log_module);
19664 END IF;
19665 --
19666 EXCEPTION
19667   WHEN xla_exceptions_pkg.application_exception THEN
19668       RAISE;
19669   WHEN OTHERS THEN
19670        xla_exceptions_pkg.raise_message
19671            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_62');
19672 END AcctLineType_62;
19673 --
19674 
19675 ---------------------------------------
19676 --
19677 -- PRIVATE FUNCTION
19678 --         AcctLineType_63
19679 --
19680 ---------------------------------------
19681 PROCEDURE AcctLineType_63 (
19682   p_application_id        IN NUMBER
19683  ,p_event_id              IN NUMBER
19684  ,p_calculate_acctd_flag  IN VARCHAR2
19688  ,p_gain_or_loss_ref      OUT VARCHAR2
19685  ,p_calculate_g_l_flag    IN VARCHAR2
19686  ,p_actual_flag           IN OUT VARCHAR2
19687  ,p_balance_type_code     OUT VARCHAR2
19689  
19690 --Bank Charges Account
19691  , p_source_2            IN NUMBER
19692 --Automatic Offsets Value
19693  , p_source_3            IN VARCHAR2
19694  , p_source_3_meaning    IN VARCHAR2
19695 --Invoice Distribution Account
19696  , p_source_18            IN NUMBER
19697 --Accounting Reversal Indicator
19698  , p_source_41            IN VARCHAR2
19699 --Distribution Link Type
19700  , p_source_43            IN VARCHAR2
19701 --Override Accounted Amount Indicator
19702  , p_source_68            IN VARCHAR2
19703  , p_source_68_meaning    IN VARCHAR2
19704 --Third Party Type
19705  , p_source_71            IN VARCHAR2
19706 --Invoice Distribution Tax Line Identifier
19707  , p_source_74            IN NUMBER
19708 --Invoice Distribution Summary Tax Line Identifier
19709  , p_source_76            IN NUMBER
19710 --Business Flow Accounts Payable Application Identifier
19711  , p_source_79            IN NUMBER
19712 --When to Account for Payment Option
19713  , p_source_89            IN VARCHAR2
19714 --Payment Distribution Type
19715  , p_source_90            IN VARCHAR2
19716  , p_source_90_meaning    IN VARCHAR2
19717 --Payment Distribution Amount
19718  , p_source_91            IN NUMBER
19719 --Business Flow Payment Distribution Type
19720  , p_source_92            IN VARCHAR2
19721 --Business Flow Payment Entity Code
19722  , p_source_93            IN VARCHAR2
19723 --Business Flow Payment Distribution Identifier
19724  , p_source_94            IN NUMBER
19725 --Business Flow Payment Identifier
19726  , p_source_95            IN NUMBER
19727 --Payment Distribution Identifier
19728  , p_source_96            IN NUMBER
19729 --Cleared Currency Code
19730  , p_source_97            IN VARCHAR2
19731 --Cleared Exchange Date
19732  , p_source_98            IN DATE
19733 --Cleared Exchange Rate
19734  , p_source_99            IN NUMBER
19735 --Cleared Exchange Rate Type
19736  , p_source_100            IN VARCHAR2
19737 --Payment Distribution (Cleared Rate) Ledger Amount
19738  , p_source_101            IN NUMBER
19739 --Payment Supplier Identifier
19740  , p_source_102            IN NUMBER
19741 --Payment Supplier Site Identifier
19742  , p_source_103            IN NUMBER
19743 --Payment Distribution Reversed Identifier
19744  , p_source_104            IN NUMBER
19745 )
19746 IS
19747 
19748 l_component_type              VARCHAR2(80);
19749 l_component_code              VARCHAR2(30);
19750 l_component_type_code         VARCHAR2(1);
19751 l_component_appl_id           INTEGER;
19752 l_amb_context_code            VARCHAR2(30);
19753 l_entity_code                 VARCHAR2(30);
19754 l_event_class_code            VARCHAR2(30);
19755 l_ae_header_id                NUMBER;
19756 l_event_type_code             VARCHAR2(30);
19757 l_line_definition_code        VARCHAR2(30);
19758 l_line_definition_owner_code  VARCHAR2(1);
19759 --
19760 -- adr variables
19761 l_segment                     VARCHAR2(30);
19762 l_ccid                        NUMBER;
19763 l_adr_transaction_coa_id      NUMBER;
19764 l_adr_accounting_coa_id       NUMBER;
19765 l_adr_flexfield_segment_code  VARCHAR2(30);
19766 l_adr_flex_value_set_id       NUMBER;
19767 l_adr_value_type_code         VARCHAR2(30);
19768 l_adr_value_combination_id    NUMBER;
19769 l_adr_value_segment_code      VARCHAR2(30);
19770 
19771 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
19772 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
19773 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
19774 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
19775 
19776 -- 4262811 Variables ------------------------------------------------------------------------------------------
19777 l_entered_amt_idx             NUMBER;
19778 l_accted_amt_idx              NUMBER;
19779 l_acc_rev_flag                VARCHAR2(1);
19780 l_accrual_line_num            NUMBER;
19781 l_tmp_amt                     NUMBER;
19782 l_acc_rev_natural_side_code   VARCHAR2(1);
19783 
19784 l_num_entries                 NUMBER;
19785 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
19786 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
19787 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
19788 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
19789 l_recog_line_1                NUMBER;
19790 l_recog_line_2                NUMBER;
19791 
19792 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
19793 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
19794 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
19795 
19796 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19797 
19798 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
19799 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
19800 
19801 ---------------------------------------------------------------------------------------------------------------
19802 
19803 
19804 --
19805 -- bulk performance
19809 l_log_module                  VARCHAR2(240);
19806 --
19807 l_balance_type_code           VARCHAR2(1);
19808 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
19810 
19811 --
19812 -- Upgrade strategy
19813 --
19814 l_actual_upg_option           VARCHAR2(1);
19815 l_enc_upg_option           VARCHAR2(1);
19816 
19817 --
19818 BEGIN
19819 --
19820 IF g_log_enabled THEN
19821       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_63';
19822 END IF;
19823 --
19824 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19825 
19826       trace
19827          (p_msg      => 'BEGIN of AcctLineType_63'
19828          ,p_level    => C_LEVEL_PROCEDURE
19829          ,p_module   => l_log_module);
19830 
19831 END IF;
19832 --
19833 l_component_type             := 'AMB_JLT';
19834 l_component_code             := 'AP_BANK_CHARGES_CLEAR';
19835 l_component_type_code        := 'S';
19836 l_component_appl_id          :=  200;
19837 l_amb_context_code           := 'DEFAULT';
19838 l_entity_code                := 'AP_PAYMENTS';
19839 l_event_class_code           := 'RECONCILED PAYMENTS';
19840 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
19841 l_line_definition_owner_code := 'S';
19842 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
19843 --
19844 l_balance_type_code          := 'A';
19845 l_segment                     := NULL;
19846 l_ccid                        := NULL;
19847 l_adr_transaction_coa_id      := NULL;
19848 l_adr_accounting_coa_id       := NULL;
19849 l_adr_flexfield_segment_code  := NULL;
19850 l_adr_flex_value_set_id       := NULL;
19851 l_adr_value_type_code         := NULL;
19852 l_adr_value_combination_id    := NULL;
19853 l_adr_value_segment_code      := NULL;
19854 
19855 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
19856 l_bflow_class_code           := '';    -- 4219869 Business Flow
19857 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
19858 l_budgetary_control_flag     := 'N';
19859 
19860 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
19861 l_bflow_applied_to_amt       := NULL; -- 5132302
19862 l_entered_amt_idx            := NULL;          -- 4262811
19863 l_accted_amt_idx             := NULL;          -- 4262811
19864 l_acc_rev_flag               := NULL;          -- 4262811
19865 l_accrual_line_num           := NULL;          -- 4262811
19866 l_tmp_amt                    := NULL;          -- 4262811
19867 --
19868  
19869 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19870     l_balance_type_code <> 'B' THEN
19871 IF NVL(p_source_89,'
19872 ') <>  'ISSUE_ISSUE' AND 
19873 NVL(p_source_90,'
19874 ') =  'BANK CHARGE'
19875  THEN 
19876 
19877    --
19878    XLA_AE_LINES_PKG.SetNewLine;
19879 
19880    p_balance_type_code          := l_balance_type_code;
19881    -- set the flag so later we will know whether the gain loss line needs to be created
19882    
19883    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19884      p_actual_flag :='A';
19885    END IF;
19886 
19887    --
19888    -- bulk performance
19889    --
19890    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19891                                       p_header_num   => 0); -- 4262811
19892    --
19893    -- set accounting line options
19894    --
19895    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19896            p_natural_side_code          => 'D'
19897          , p_gain_or_loss_flag          => 'N'
19898          , p_gl_transfer_mode_code      => 'S'
19899          , p_acct_entry_type_code       => 'A'
19900          , p_switch_side_flag           => 'Y'
19901          , p_merge_duplicate_code       => 'A'
19902          );
19903    --
19904    l_acc_rev_natural_side_code := 'C';  -- 4262811
19905    -- 
19906    --
19907    -- set accounting line type info
19908    --
19909    xla_ae_lines_pkg.SetAcctLineType
19910       (p_component_type             => l_component_type
19911       ,p_event_type_code            => l_event_type_code
19912       ,p_line_definition_owner_code => l_line_definition_owner_code
19913       ,p_line_definition_code       => l_line_definition_code
19914       ,p_accounting_line_code       => l_component_code
19915       ,p_accounting_line_type_code  => l_component_type_code
19916       ,p_accounting_line_appl_id    => l_component_appl_id
19917       ,p_amb_context_code           => l_amb_context_code
19918       ,p_entity_code                => l_entity_code
19919       ,p_event_class_code           => l_event_class_code);
19920    --
19921    -- set accounting class
19922    --
19923    xla_ae_lines_pkg.SetAcctClass(
19924            p_accounting_class_code  => 'BANK_CHG'
19925          , p_ae_header_id           => l_ae_header_id
19926          );
19927 
19928    --
19929    -- set rounding class
19930    --
19931    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19932                       'BANK_CHG';
19933 
19934    --
19935    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19936    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19937    --
19938    -- bulk performance
19939    --
19940    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19941 
19942    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19943       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19944 
19945    -- 4955764
19949    -- 4458381 Public Sector Enh
19946    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19947       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19948 
19950    
19951    --
19952    -- set accounting attributes for the line type
19953    --
19954    l_entered_amt_idx := 10;
19955    l_accted_amt_idx  := 15;
19956    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
19957    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19958    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
19959    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
19960    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
19961    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
19962    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
19963    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
19964    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
19965    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
19966    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
19967    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
19968    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
19969    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
19970    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
19971    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
19972    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
19973    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
19974    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
19975    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
19976    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
19977    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
19978    l_rec_acct_attrs.array_char_value(11)  := p_source_97;
19979    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
19980    l_rec_acct_attrs.array_date_value(12)  := p_source_98;
19981    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
19982    l_rec_acct_attrs.array_num_value(13)  := p_source_99;
19983    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
19984    l_rec_acct_attrs.array_char_value(14)  := p_source_100;
19985    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
19986    l_rec_acct_attrs.array_num_value(15)  := p_source_101;
19987    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
19988    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
19989    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
19990    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
19991    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
19992    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
19993    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
19994    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
19995    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
19996    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
19997    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
19998    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
19999    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
20000    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
20001    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
20002    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
20003    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
20004    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
20005 
20006    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20007    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20008 
20009    ---------------------------------------------------------------------------------------------------------------
20010    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20011    ---------------------------------------------------------------------------------------------------------------
20012    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20013 
20014    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20015    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20016 
20017    IF xla_accounting_cache_pkg.GetValueChar
20018          (p_source_code         => 'LEDGER_CATEGORY_CODE'
20019          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20020    AND l_bflow_method_code = 'PRIOR_ENTRY'
20021 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20022    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20023          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20024        )
20025    THEN
20026          xla_ae_lines_pkg.BflowUpgEntry
20027            (p_business_method_code    => l_bflow_method_code
20028            ,p_business_class_code     => l_bflow_class_code
20029            ,p_balance_type            => l_balance_type_code);
20030    ELSE
20031       NULL;
20032 -- No business flow processing for business flow method of NONE.
20033    END IF;
20034 
20035    --
20036    -- call analytical criteria
20037    --
20038    
20039    --
20040    -- call description
20041    --
20042    -- No description or it is inherited.
20043    --
20044    -- call ADRs
20048         (NVL(l_actual_upg_option, 'N') = 'O') OR
20045    -- Bug 4922099
20046    --
20047    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20049         (NVL(l_enc_upg_option, 'N') = 'O')
20050       )
20051    THEN
20052    NULL;
20053    --
20054    --
20055    
20056   l_ccid := AcctDerRule_25(
20057            p_application_id           => p_application_id
20058          , p_ae_header_id             => l_ae_header_id 
20059 , p_source_2 => p_source_2
20060 , p_source_3 => p_source_3
20061 , p_source_3_meaning => p_source_3_meaning
20062 , p_source_18 => p_source_18
20063          , x_transaction_coa_id       => l_adr_transaction_coa_id
20064          , x_accounting_coa_id        => l_adr_accounting_coa_id
20065          , x_value_type_code          => l_adr_value_type_code
20066          , p_side                     => 'NA'
20067    );
20068 
20069    xla_ae_lines_pkg.set_ccid(
20070     p_code_combination_id          => l_ccid
20071   , p_value_type_code              => l_adr_value_type_code
20072   , p_transaction_coa_id           => l_adr_transaction_coa_id
20073   , p_accounting_coa_id            => l_adr_accounting_coa_id
20074   , p_adr_code                     => 'AP_BANK_CHARGES'
20075   , p_adr_type_code                => 'S'
20076   , p_component_type               => l_component_type
20077   , p_component_code               => l_component_code
20078   , p_component_type_code          => l_component_type_code
20079   , p_component_appl_id            => l_component_appl_id
20080   , p_amb_context_code             => l_amb_context_code
20081   , p_side                         => 'NA'
20082   );
20083 
20084 
20085    l_segment := AcctDerRule_3(
20086            p_application_id           => p_application_id
20087          , p_ae_header_id             => l_ae_header_id 
20088 , p_source_2 => p_source_2
20089 , p_source_3 => p_source_3
20090 , p_source_3_meaning => p_source_3_meaning
20091          , x_transaction_coa_id       => l_adr_transaction_coa_id
20092          , x_accounting_coa_id        => l_adr_accounting_coa_id
20093          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
20094          , x_flex_value_set_id        => l_adr_flex_value_set_id
20095          , x_value_type_code          => l_adr_value_type_code
20096          , x_value_combination_id     => l_adr_value_combination_id
20097          , x_value_segment_code       => l_adr_value_segment_code
20098          , p_side                     => 'NA'
20099          , p_override_seg_flag        => 'Y'
20100    );
20101 
20102    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
20103 
20104       xla_ae_lines_pkg.set_segment(
20105           p_to_segment_code         => 'GL_ACCOUNT'
20106         , p_segment_value           => l_segment
20107         , p_from_segment_code       => l_adr_value_segment_code
20108         , p_from_combination_id     => l_adr_value_combination_id
20109         , p_value_type_code         => l_adr_value_type_code
20110         , p_transaction_coa_id      => l_adr_transaction_coa_id
20111         , p_accounting_coa_id       => l_adr_accounting_coa_id
20112         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
20113         , p_flex_value_set_id       => l_adr_flex_value_set_id
20114         , p_adr_code                => 'AP_BANK_CHARGES_NAT_ACCT_SEG'
20115         , p_adr_type_code           => 'S'
20116         , p_component_type          => l_component_type
20117         , p_component_code          => l_component_code
20118         , p_component_type_code     => l_component_type_code
20119         , p_component_appl_id       => l_component_appl_id
20120         , p_amb_context_code        => l_amb_context_code
20121         , p_entity_code             => 'AP_PAYMENTS'
20122         , p_event_class_code        => 'RECONCILED PAYMENTS'
20123         , p_side                    => 'NA'
20124         );
20125 
20126   END IF;
20127 
20128    l_segment := AcctDerRule_21(
20129            p_application_id           => p_application_id
20130          , p_ae_header_id             => l_ae_header_id 
20131 , p_source_3 => p_source_3
20132 , p_source_3_meaning => p_source_3_meaning
20133 , p_source_18 => p_source_18
20134          , x_transaction_coa_id       => l_adr_transaction_coa_id
20135          , x_accounting_coa_id        => l_adr_accounting_coa_id
20136          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
20137          , x_flex_value_set_id        => l_adr_flex_value_set_id
20138          , x_value_type_code          => l_adr_value_type_code
20139          , x_value_combination_id     => l_adr_value_combination_id
20140          , x_value_segment_code       => l_adr_value_segment_code
20141          , p_side                     => 'NA'
20142          , p_override_seg_flag        => 'Y'
20143    );
20144 
20145    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
20146 
20147       xla_ae_lines_pkg.set_segment(
20148           p_to_segment_code         => 'GL_BALANCING'
20149         , p_segment_value           => l_segment
20150         , p_from_segment_code       => l_adr_value_segment_code
20151         , p_from_combination_id     => l_adr_value_combination_id
20152         , p_value_type_code         => l_adr_value_type_code
20153         , p_transaction_coa_id      => l_adr_transaction_coa_id
20154         , p_accounting_coa_id       => l_adr_accounting_coa_id
20155         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
20156         , p_flex_value_set_id       => l_adr_flex_value_set_id
20157         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
20158         , p_adr_type_code           => 'S'
20159         , p_component_type          => l_component_type
20160         , p_component_code          => l_component_code
20161         , p_component_type_code     => l_component_type_code
20162         , p_component_appl_id       => l_component_appl_id
20166         , p_side                    => 'NA'
20163         , p_amb_context_code        => l_amb_context_code
20164         , p_entity_code             => 'AP_PAYMENTS'
20165         , p_event_class_code        => 'RECONCILED PAYMENTS'
20167         );
20168 
20169   END IF;
20170 
20171    --
20172    --
20173    END IF;
20174    --
20175    -- Bug 4922099
20176    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20177           (NVL(l_enc_upg_option, 'N') = 'O')
20178         ) AND
20179         (l_bflow_method_code = 'PRIOR_ENTRY')
20180       )
20181    THEN
20182       IF
20183       --
20184       1 = 2
20185       --
20186       THEN
20187       xla_accounting_err_pkg.build_message
20188                                     (p_appli_s_name            => 'XLA'
20189                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20190                                     ,p_token_1                 => 'LINE_NUMBER'
20191                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
20192                                     ,p_token_2                 => 'LINE_TYPE_NAME'
20193                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
20194                                                                              l_component_type
20195                                                                             ,l_component_code
20196                                                                             ,l_component_type_code
20197                                                                             ,l_component_appl_id
20198                                                                             ,l_amb_context_code
20199                                                                             ,l_entity_code
20200                                                                             ,l_event_class_code
20201                                                                            )
20202                                     ,p_token_3                 => 'OWNER'
20203                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
20204                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
20205                                                                           ,p_lookup_code    => l_component_type_code
20206                                                                          )
20207                                     ,p_token_4                 => 'PRODUCT_NAME'
20208                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20209                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20210                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20211                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20212                                     ,p_ae_header_id            =>  NULL
20213                                        );
20214 
20215         IF (C_LEVEL_ERROR>= g_log_level) THEN
20216                  trace
20217                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20218                       ,p_level    => C_LEVEL_ERROR
20219                       ,p_module   => l_log_module);
20220         END IF;
20221       END IF;
20222    END IF;
20223    --
20224    --
20225    ------------------------------------------------------------------------------------------------
20226    -- 4219869 Business Flow
20227    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20228    -- Prior Entry.  Currently, the following code is always generated.
20229    ------------------------------------------------------------------------------------------------
20230    XLA_AE_LINES_PKG.ValidateCurrentLine;
20231 
20232    ------------------------------------------------------------------------------------
20233    -- 4219869 Business Flow
20234    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20235    ------------------------------------------------------------------------------------
20236    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20237 
20238    ----------------------------------------------------------------------------------
20239    -- 4219869 Business Flow
20240    -- Update journal entry status -- Need to generate this within IF <condition>
20241    ----------------------------------------------------------------------------------
20242    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20243          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20244          ,p_balance_type_code => l_balance_type_code
20245          );
20246 
20247    -------------------------------------------------------------------------------------------
20248    -- 4262811 - Generate the Accrual Reversal lines
20249    -------------------------------------------------------------------------------------------
20250    BEGIN
20251       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20252                               (g_array_event(p_event_id).array_value_num('header_index'));
20253       IF l_acc_rev_flag IS NULL THEN
20254          l_acc_rev_flag := 'N';
20255       END IF;
20256    EXCEPTION
20257       WHEN OTHERS THEN
20258          l_acc_rev_flag := 'N';
20259    END;
20260    --
20261    IF (l_acc_rev_flag = 'Y') THEN
20262 
20263        -- 4645092  ------------------------------------------------------------------------------
20264        -- To allow MPA report to determine if it should generate report process
20265        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20266        ------------------------------------------------------------------------------------------
20270    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
20267 
20268        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20269        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20271    -- call ADRs
20272    -- Bug 4922099
20273    --
20274    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20275         (NVL(l_actual_upg_option, 'N') = 'O') OR
20276         (NVL(l_enc_upg_option, 'N') = 'O')
20277       )
20278    THEN
20279    NULL;
20280    --
20281    --
20282    
20283   l_ccid := AcctDerRule_25(
20284            p_application_id           => p_application_id
20285          , p_ae_header_id             => l_ae_header_id 
20286 , p_source_2 => p_source_2
20287 , p_source_3 => p_source_3
20288 , p_source_3_meaning => p_source_3_meaning
20289 , p_source_18 => p_source_18
20290          , x_transaction_coa_id       => l_adr_transaction_coa_id
20291          , x_accounting_coa_id        => l_adr_accounting_coa_id
20292          , x_value_type_code          => l_adr_value_type_code
20293          , p_side                     => 'NA'
20294    );
20295 
20296    xla_ae_lines_pkg.set_ccid(
20297     p_code_combination_id          => l_ccid
20298   , p_value_type_code              => l_adr_value_type_code
20299   , p_transaction_coa_id           => l_adr_transaction_coa_id
20300   , p_accounting_coa_id            => l_adr_accounting_coa_id
20301   , p_adr_code                     => 'AP_BANK_CHARGES'
20302   , p_adr_type_code                => 'S'
20303   , p_component_type               => l_component_type
20304   , p_component_code               => l_component_code
20305   , p_component_type_code          => l_component_type_code
20306   , p_component_appl_id            => l_component_appl_id
20307   , p_amb_context_code             => l_amb_context_code
20308   , p_side                         => 'NA'
20309   );
20310 
20311 
20312    l_segment := AcctDerRule_3(
20313            p_application_id           => p_application_id
20314          , p_ae_header_id             => l_ae_header_id 
20315 , p_source_2 => p_source_2
20316 , p_source_3 => p_source_3
20317 , p_source_3_meaning => p_source_3_meaning
20318          , x_transaction_coa_id       => l_adr_transaction_coa_id
20319          , x_accounting_coa_id        => l_adr_accounting_coa_id
20320          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
20321          , x_flex_value_set_id        => l_adr_flex_value_set_id
20322          , x_value_type_code          => l_adr_value_type_code
20323          , x_value_combination_id     => l_adr_value_combination_id
20324          , x_value_segment_code       => l_adr_value_segment_code
20325          , p_side                     => 'NA'
20326          , p_override_seg_flag        => 'Y'
20327    );
20328 
20329    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
20330 
20331       xla_ae_lines_pkg.set_segment(
20332           p_to_segment_code         => 'GL_ACCOUNT'
20333         , p_segment_value           => l_segment
20334         , p_from_segment_code       => l_adr_value_segment_code
20335         , p_from_combination_id     => l_adr_value_combination_id
20336         , p_value_type_code         => l_adr_value_type_code
20337         , p_transaction_coa_id      => l_adr_transaction_coa_id
20338         , p_accounting_coa_id       => l_adr_accounting_coa_id
20339         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
20340         , p_flex_value_set_id       => l_adr_flex_value_set_id
20341         , p_adr_code                => 'AP_BANK_CHARGES_NAT_ACCT_SEG'
20342         , p_adr_type_code           => 'S'
20343         , p_component_type          => l_component_type
20344         , p_component_code          => l_component_code
20345         , p_component_type_code     => l_component_type_code
20346         , p_component_appl_id       => l_component_appl_id
20347         , p_amb_context_code        => l_amb_context_code
20348         , p_entity_code             => 'AP_PAYMENTS'
20349         , p_event_class_code        => 'RECONCILED PAYMENTS'
20350         , p_side                    => 'NA'
20351         );
20352 
20353   END IF;
20354 
20355    l_segment := AcctDerRule_21(
20356            p_application_id           => p_application_id
20357          , p_ae_header_id             => l_ae_header_id 
20358 , p_source_3 => p_source_3
20359 , p_source_3_meaning => p_source_3_meaning
20360 , p_source_18 => p_source_18
20361          , x_transaction_coa_id       => l_adr_transaction_coa_id
20362          , x_accounting_coa_id        => l_adr_accounting_coa_id
20363          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
20364          , x_flex_value_set_id        => l_adr_flex_value_set_id
20365          , x_value_type_code          => l_adr_value_type_code
20366          , x_value_combination_id     => l_adr_value_combination_id
20367          , x_value_segment_code       => l_adr_value_segment_code
20368          , p_side                     => 'NA'
20369          , p_override_seg_flag        => 'Y'
20370    );
20371 
20372    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
20373 
20374       xla_ae_lines_pkg.set_segment(
20375           p_to_segment_code         => 'GL_BALANCING'
20376         , p_segment_value           => l_segment
20377         , p_from_segment_code       => l_adr_value_segment_code
20378         , p_from_combination_id     => l_adr_value_combination_id
20379         , p_value_type_code         => l_adr_value_type_code
20380         , p_transaction_coa_id      => l_adr_transaction_coa_id
20381         , p_accounting_coa_id       => l_adr_accounting_coa_id
20382         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
20383         , p_flex_value_set_id       => l_adr_flex_value_set_id
20384         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
20388         , p_component_type_code     => l_component_type_code
20385         , p_adr_type_code           => 'S'
20386         , p_component_type          => l_component_type
20387         , p_component_code          => l_component_code
20389         , p_component_appl_id       => l_component_appl_id
20390         , p_amb_context_code        => l_amb_context_code
20391         , p_entity_code             => 'AP_PAYMENTS'
20392         , p_event_class_code        => 'RECONCILED PAYMENTS'
20393         , p_side                    => 'NA'
20394         );
20395 
20396   END IF;
20397 
20398    --
20399    --
20400    END IF;
20401 
20402        --
20403        -- Update the line information that should be overwritten
20404        --
20405        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20406                                          p_header_num   => 1);
20407        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
20408 
20409        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20410 
20411        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
20412           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20413        END IF;
20414 
20415       --
20416       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20417       --
20418       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20419           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
20420       ELSE
20421           ---------------------------------------------------------------------------------------------------
20422           -- 4262811a Switch Sign
20423           ---------------------------------------------------------------------------------------------------
20424           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
20425           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20426                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20427           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20428                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20429           -- 5132302
20430           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20431                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20432 
20433       END IF;
20434 
20435       -- 4955764
20436       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20437       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20438 
20439 
20440       XLA_AE_LINES_PKG.ValidateCurrentLine;
20441       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20442 
20443       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20444                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20445                ,p_balance_type_code => l_balance_type_code);
20446 
20447    END IF;
20448 
20449    -----------------------------------------------------------------------------------------
20450    -- 4262811 Multiperiod Accounting
20451    -----------------------------------------------------------------------------------------
20452      -- No MPA option is assigned.
20453 
20454 
20455 END IF;
20456 END IF;
20457 --
20458 
20459 --
20460 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20461    trace
20462       (p_msg      => 'END of AcctLineType_63'
20463       ,p_level    => C_LEVEL_PROCEDURE
20464       ,p_module   => l_log_module);
20465 END IF;
20466 --
20467 EXCEPTION
20468   WHEN xla_exceptions_pkg.application_exception THEN
20469       RAISE;
20470   WHEN OTHERS THEN
20471        xla_exceptions_pkg.raise_message
20472            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_63');
20473 END AcctLineType_63;
20474 --
20475 
20476 ---------------------------------------
20477 --
20478 -- PRIVATE FUNCTION
20479 --         AcctLineType_64
20480 --
20481 ---------------------------------------
20482 PROCEDURE AcctLineType_64 (
20483   p_application_id        IN NUMBER
20484  ,p_event_id              IN NUMBER
20485  ,p_calculate_acctd_flag  IN VARCHAR2
20486  ,p_calculate_g_l_flag    IN VARCHAR2
20487  ,p_actual_flag           IN OUT VARCHAR2
20488  ,p_balance_type_code     OUT VARCHAR2
20489  ,p_gain_or_loss_ref      OUT VARCHAR2
20490  
20491 --Automatic Offsets Value
20492  , p_source_3            IN VARCHAR2
20493  , p_source_3_meaning    IN VARCHAR2
20494 --Bank Errors Account
20495  , p_source_4            IN NUMBER
20496 --Invoice Distribution Account
20497  , p_source_18            IN NUMBER
20498 --Accounting Reversal Indicator
20499  , p_source_41            IN VARCHAR2
20500 --Distribution Link Type
20501  , p_source_43            IN VARCHAR2
20502 --Override Accounted Amount Indicator
20503  , p_source_68            IN VARCHAR2
20504  , p_source_68_meaning    IN VARCHAR2
20505 --Third Party Type
20506  , p_source_71            IN VARCHAR2
20507 --Invoice Distribution Tax Line Identifier
20508  , p_source_74            IN NUMBER
20509 --Invoice Distribution Summary Tax Line Identifier
20510  , p_source_76            IN NUMBER
20511 --Business Flow Accounts Payable Application Identifier
20512  , p_source_79            IN NUMBER
20513 --When to Account for Payment Option
20514  , p_source_89            IN VARCHAR2
20518 --Payment Distribution Amount
20515 --Payment Distribution Type
20516  , p_source_90            IN VARCHAR2
20517  , p_source_90_meaning    IN VARCHAR2
20519  , p_source_91            IN NUMBER
20520 --Business Flow Payment Distribution Type
20521  , p_source_92            IN VARCHAR2
20522 --Business Flow Payment Entity Code
20523  , p_source_93            IN VARCHAR2
20524 --Business Flow Payment Distribution Identifier
20525  , p_source_94            IN NUMBER
20526 --Business Flow Payment Identifier
20527  , p_source_95            IN NUMBER
20528 --Payment Distribution Identifier
20529  , p_source_96            IN NUMBER
20530 --Cleared Currency Code
20531  , p_source_97            IN VARCHAR2
20532 --Cleared Exchange Date
20533  , p_source_98            IN DATE
20534 --Cleared Exchange Rate
20535  , p_source_99            IN NUMBER
20536 --Cleared Exchange Rate Type
20537  , p_source_100            IN VARCHAR2
20538 --Payment Distribution (Cleared Rate) Ledger Amount
20539  , p_source_101            IN NUMBER
20540 --Payment Supplier Identifier
20541  , p_source_102            IN NUMBER
20542 --Payment Supplier Site Identifier
20543  , p_source_103            IN NUMBER
20544 --Payment Distribution Reversed Identifier
20545  , p_source_104            IN NUMBER
20546 )
20547 IS
20548 
20549 l_component_type              VARCHAR2(80);
20550 l_component_code              VARCHAR2(30);
20551 l_component_type_code         VARCHAR2(1);
20552 l_component_appl_id           INTEGER;
20553 l_amb_context_code            VARCHAR2(30);
20554 l_entity_code                 VARCHAR2(30);
20555 l_event_class_code            VARCHAR2(30);
20556 l_ae_header_id                NUMBER;
20557 l_event_type_code             VARCHAR2(30);
20558 l_line_definition_code        VARCHAR2(30);
20559 l_line_definition_owner_code  VARCHAR2(1);
20560 --
20561 -- adr variables
20562 l_segment                     VARCHAR2(30);
20563 l_ccid                        NUMBER;
20564 l_adr_transaction_coa_id      NUMBER;
20565 l_adr_accounting_coa_id       NUMBER;
20566 l_adr_flexfield_segment_code  VARCHAR2(30);
20567 l_adr_flex_value_set_id       NUMBER;
20568 l_adr_value_type_code         VARCHAR2(30);
20569 l_adr_value_combination_id    NUMBER;
20570 l_adr_value_segment_code      VARCHAR2(30);
20571 
20572 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
20573 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
20574 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
20575 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
20576 
20577 -- 4262811 Variables ------------------------------------------------------------------------------------------
20578 l_entered_amt_idx             NUMBER;
20579 l_accted_amt_idx              NUMBER;
20580 l_acc_rev_flag                VARCHAR2(1);
20581 l_accrual_line_num            NUMBER;
20582 l_tmp_amt                     NUMBER;
20583 l_acc_rev_natural_side_code   VARCHAR2(1);
20584 
20585 l_num_entries                 NUMBER;
20586 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
20587 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
20588 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
20589 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
20590 l_recog_line_1                NUMBER;
20591 l_recog_line_2                NUMBER;
20592 
20593 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
20594 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
20595 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
20596 
20597 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20598 
20599 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
20600 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
20601 
20602 ---------------------------------------------------------------------------------------------------------------
20603 
20604 
20605 --
20606 -- bulk performance
20607 --
20608 l_balance_type_code           VARCHAR2(1);
20609 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
20610 l_log_module                  VARCHAR2(240);
20611 
20612 --
20613 -- Upgrade strategy
20614 --
20615 l_actual_upg_option           VARCHAR2(1);
20616 l_enc_upg_option           VARCHAR2(1);
20617 
20618 --
20619 BEGIN
20620 --
20621 IF g_log_enabled THEN
20622       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_64';
20623 END IF;
20624 --
20625 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20626 
20627       trace
20628          (p_msg      => 'BEGIN of AcctLineType_64'
20629          ,p_level    => C_LEVEL_PROCEDURE
20630          ,p_module   => l_log_module);
20631 
20632 END IF;
20633 --
20634 l_component_type             := 'AMB_JLT';
20635 l_component_code             := 'AP_BANK_ERROR_CLEAR';
20636 l_component_type_code        := 'S';
20637 l_component_appl_id          :=  200;
20638 l_amb_context_code           := 'DEFAULT';
20639 l_entity_code                := 'AP_PAYMENTS';
20640 l_event_class_code           := 'RECONCILED PAYMENTS';
20641 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
20642 l_line_definition_owner_code := 'S';
20643 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
20644 --
20645 l_balance_type_code          := 'A';
20646 l_segment                     := NULL;
20647 l_ccid                        := NULL;
20648 l_adr_transaction_coa_id      := NULL;
20649 l_adr_accounting_coa_id       := NULL;
20650 l_adr_flexfield_segment_code  := NULL;
20654 l_adr_value_segment_code      := NULL;
20651 l_adr_flex_value_set_id       := NULL;
20652 l_adr_value_type_code         := NULL;
20653 l_adr_value_combination_id    := NULL;
20655 
20656 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
20657 l_bflow_class_code           := '';    -- 4219869 Business Flow
20658 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
20659 l_budgetary_control_flag     := 'N';
20660 
20661 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
20662 l_bflow_applied_to_amt       := NULL; -- 5132302
20663 l_entered_amt_idx            := NULL;          -- 4262811
20664 l_accted_amt_idx             := NULL;          -- 4262811
20665 l_acc_rev_flag               := NULL;          -- 4262811
20666 l_accrual_line_num           := NULL;          -- 4262811
20667 l_tmp_amt                    := NULL;          -- 4262811
20668 --
20669  
20670 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20671     l_balance_type_code <> 'B' THEN
20672 IF NVL(p_source_89,'
20673 ') <>  'ISSUE_ISSUE' AND 
20674 NVL(p_source_90,'
20675 ') =  'BANK ERROR'
20676  THEN 
20677 
20678    --
20679    XLA_AE_LINES_PKG.SetNewLine;
20680 
20681    p_balance_type_code          := l_balance_type_code;
20682    -- set the flag so later we will know whether the gain loss line needs to be created
20683    
20684    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20685      p_actual_flag :='A';
20686    END IF;
20687 
20688    --
20689    -- bulk performance
20690    --
20691    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20692                                       p_header_num   => 0); -- 4262811
20693    --
20694    -- set accounting line options
20695    --
20696    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20697            p_natural_side_code          => 'D'
20698          , p_gain_or_loss_flag          => 'N'
20699          , p_gl_transfer_mode_code      => 'S'
20700          , p_acct_entry_type_code       => 'A'
20701          , p_switch_side_flag           => 'Y'
20702          , p_merge_duplicate_code       => 'A'
20703          );
20704    --
20705    l_acc_rev_natural_side_code := 'C';  -- 4262811
20706    -- 
20707    --
20708    -- set accounting line type info
20709    --
20710    xla_ae_lines_pkg.SetAcctLineType
20711       (p_component_type             => l_component_type
20712       ,p_event_type_code            => l_event_type_code
20713       ,p_line_definition_owner_code => l_line_definition_owner_code
20714       ,p_line_definition_code       => l_line_definition_code
20715       ,p_accounting_line_code       => l_component_code
20716       ,p_accounting_line_type_code  => l_component_type_code
20717       ,p_accounting_line_appl_id    => l_component_appl_id
20718       ,p_amb_context_code           => l_amb_context_code
20719       ,p_entity_code                => l_entity_code
20720       ,p_event_class_code           => l_event_class_code);
20721    --
20722    -- set accounting class
20723    --
20724    xla_ae_lines_pkg.SetAcctClass(
20725            p_accounting_class_code  => 'BANK_ERROR'
20726          , p_ae_header_id           => l_ae_header_id
20727          );
20728 
20729    --
20730    -- set rounding class
20731    --
20732    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20733                       'BANK_ERROR';
20734 
20735    --
20736    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20737    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20738    --
20739    -- bulk performance
20740    --
20741    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20742 
20743    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20744       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20745 
20746    -- 4955764
20747    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20748       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20749 
20750    -- 4458381 Public Sector Enh
20751    
20752    --
20753    -- set accounting attributes for the line type
20754    --
20755    l_entered_amt_idx := 10;
20756    l_accted_amt_idx  := 15;
20757    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
20758    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20759    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
20760    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
20761    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
20762    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
20763    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
20764    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20765    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
20766    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
20767    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
20768    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
20769    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
20770    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20771    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
20772    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
20773    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
20774    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
20775    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
20779    l_rec_acct_attrs.array_char_value(11)  := p_source_97;
20776    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
20777    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
20778    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
20780    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
20781    l_rec_acct_attrs.array_date_value(12)  := p_source_98;
20782    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
20783    l_rec_acct_attrs.array_num_value(13)  := p_source_99;
20784    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
20785    l_rec_acct_attrs.array_char_value(14)  := p_source_100;
20786    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
20787    l_rec_acct_attrs.array_num_value(15)  := p_source_101;
20788    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
20789    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
20790    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
20791    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
20792    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
20793    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
20794    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
20795    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
20796    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
20797    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
20798    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
20799    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
20800    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
20801    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
20802    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
20803    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
20804    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
20805    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
20806 
20807    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20808    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20809 
20810    ---------------------------------------------------------------------------------------------------------------
20811    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20812    ---------------------------------------------------------------------------------------------------------------
20813    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20814 
20815    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20816    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20817 
20818    IF xla_accounting_cache_pkg.GetValueChar
20819          (p_source_code         => 'LEDGER_CATEGORY_CODE'
20820          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20821    AND l_bflow_method_code = 'PRIOR_ENTRY'
20822 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20823    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20824          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20825        )
20826    THEN
20827          xla_ae_lines_pkg.BflowUpgEntry
20828            (p_business_method_code    => l_bflow_method_code
20829            ,p_business_class_code     => l_bflow_class_code
20830            ,p_balance_type            => l_balance_type_code);
20831    ELSE
20832       NULL;
20833 -- No business flow processing for business flow method of NONE.
20834    END IF;
20835 
20836    --
20837    -- call analytical criteria
20838    --
20839    
20840    --
20841    -- call description
20842    --
20843    -- No description or it is inherited.
20844    --
20845    -- call ADRs
20846    -- Bug 4922099
20847    --
20848    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20849         (NVL(l_actual_upg_option, 'N') = 'O') OR
20850         (NVL(l_enc_upg_option, 'N') = 'O')
20851       )
20852    THEN
20853    NULL;
20854    --
20855    --
20856    
20857   l_ccid := AcctDerRule_26(
20858            p_application_id           => p_application_id
20859          , p_ae_header_id             => l_ae_header_id 
20860 , p_source_3 => p_source_3
20861 , p_source_3_meaning => p_source_3_meaning
20862 , p_source_4 => p_source_4
20863 , p_source_18 => p_source_18
20864          , x_transaction_coa_id       => l_adr_transaction_coa_id
20865          , x_accounting_coa_id        => l_adr_accounting_coa_id
20866          , x_value_type_code          => l_adr_value_type_code
20867          , p_side                     => 'NA'
20868    );
20869 
20870    xla_ae_lines_pkg.set_ccid(
20871     p_code_combination_id          => l_ccid
20872   , p_value_type_code              => l_adr_value_type_code
20873   , p_transaction_coa_id           => l_adr_transaction_coa_id
20874   , p_accounting_coa_id            => l_adr_accounting_coa_id
20875   , p_adr_code                     => 'AP_BANK_ERRORS'
20876   , p_adr_type_code                => 'S'
20877   , p_component_type               => l_component_type
20878   , p_component_code               => l_component_code
20879   , p_component_type_code          => l_component_type_code
20880   , p_component_appl_id            => l_component_appl_id
20881   , p_amb_context_code             => l_amb_context_code
20882   , p_side                         => 'NA'
20883   );
20884 
20885 
20886    l_segment := AcctDerRule_4(
20887            p_application_id           => p_application_id
20888          , p_ae_header_id             => l_ae_header_id 
20892          , x_transaction_coa_id       => l_adr_transaction_coa_id
20889 , p_source_3 => p_source_3
20890 , p_source_3_meaning => p_source_3_meaning
20891 , p_source_4 => p_source_4
20893          , x_accounting_coa_id        => l_adr_accounting_coa_id
20894          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
20895          , x_flex_value_set_id        => l_adr_flex_value_set_id
20896          , x_value_type_code          => l_adr_value_type_code
20897          , x_value_combination_id     => l_adr_value_combination_id
20898          , x_value_segment_code       => l_adr_value_segment_code
20899          , p_side                     => 'NA'
20900          , p_override_seg_flag        => 'Y'
20901    );
20902 
20903    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
20904 
20905       xla_ae_lines_pkg.set_segment(
20906           p_to_segment_code         => 'GL_ACCOUNT'
20907         , p_segment_value           => l_segment
20908         , p_from_segment_code       => l_adr_value_segment_code
20909         , p_from_combination_id     => l_adr_value_combination_id
20910         , p_value_type_code         => l_adr_value_type_code
20911         , p_transaction_coa_id      => l_adr_transaction_coa_id
20912         , p_accounting_coa_id       => l_adr_accounting_coa_id
20913         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
20914         , p_flex_value_set_id       => l_adr_flex_value_set_id
20915         , p_adr_code                => 'AP_BANK_ERRORS_NAT_ACCT_SEG'
20916         , p_adr_type_code           => 'S'
20917         , p_component_type          => l_component_type
20918         , p_component_code          => l_component_code
20919         , p_component_type_code     => l_component_type_code
20920         , p_component_appl_id       => l_component_appl_id
20921         , p_amb_context_code        => l_amb_context_code
20922         , p_entity_code             => 'AP_PAYMENTS'
20923         , p_event_class_code        => 'RECONCILED PAYMENTS'
20924         , p_side                    => 'NA'
20925         );
20926 
20927   END IF;
20928 
20929    l_segment := AcctDerRule_21(
20930            p_application_id           => p_application_id
20931          , p_ae_header_id             => l_ae_header_id 
20932 , p_source_3 => p_source_3
20933 , p_source_3_meaning => p_source_3_meaning
20934 , p_source_18 => p_source_18
20935          , x_transaction_coa_id       => l_adr_transaction_coa_id
20936          , x_accounting_coa_id        => l_adr_accounting_coa_id
20937          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
20938          , x_flex_value_set_id        => l_adr_flex_value_set_id
20939          , x_value_type_code          => l_adr_value_type_code
20940          , x_value_combination_id     => l_adr_value_combination_id
20941          , x_value_segment_code       => l_adr_value_segment_code
20942          , p_side                     => 'NA'
20943          , p_override_seg_flag        => 'Y'
20944    );
20945 
20946    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
20947 
20948       xla_ae_lines_pkg.set_segment(
20949           p_to_segment_code         => 'GL_BALANCING'
20950         , p_segment_value           => l_segment
20951         , p_from_segment_code       => l_adr_value_segment_code
20952         , p_from_combination_id     => l_adr_value_combination_id
20953         , p_value_type_code         => l_adr_value_type_code
20954         , p_transaction_coa_id      => l_adr_transaction_coa_id
20955         , p_accounting_coa_id       => l_adr_accounting_coa_id
20956         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
20957         , p_flex_value_set_id       => l_adr_flex_value_set_id
20958         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
20959         , p_adr_type_code           => 'S'
20960         , p_component_type          => l_component_type
20961         , p_component_code          => l_component_code
20962         , p_component_type_code     => l_component_type_code
20963         , p_component_appl_id       => l_component_appl_id
20964         , p_amb_context_code        => l_amb_context_code
20965         , p_entity_code             => 'AP_PAYMENTS'
20966         , p_event_class_code        => 'RECONCILED PAYMENTS'
20967         , p_side                    => 'NA'
20968         );
20969 
20970   END IF;
20971 
20972    --
20973    --
20974    END IF;
20975    --
20976    -- Bug 4922099
20977    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20978           (NVL(l_enc_upg_option, 'N') = 'O')
20979         ) AND
20980         (l_bflow_method_code = 'PRIOR_ENTRY')
20981       )
20982    THEN
20983       IF
20984       --
20985       1 = 2
20986       --
20987       THEN
20988       xla_accounting_err_pkg.build_message
20989                                     (p_appli_s_name            => 'XLA'
20990                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20991                                     ,p_token_1                 => 'LINE_NUMBER'
20992                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
20993                                     ,p_token_2                 => 'LINE_TYPE_NAME'
20994                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
20995                                                                              l_component_type
20996                                                                             ,l_component_code
20997                                                                             ,l_component_type_code
20998                                                                             ,l_component_appl_id
20999                                                                             ,l_amb_context_code
21003                                     ,p_token_3                 => 'OWNER'
21000                                                                             ,l_entity_code
21001                                                                             ,l_event_class_code
21002                                                                            )
21004                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
21005                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
21006                                                                           ,p_lookup_code    => l_component_type_code
21007                                                                          )
21008                                     ,p_token_4                 => 'PRODUCT_NAME'
21009                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21010                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21011                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21012                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21013                                     ,p_ae_header_id            =>  NULL
21014                                        );
21015 
21016         IF (C_LEVEL_ERROR>= g_log_level) THEN
21017                  trace
21018                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21019                       ,p_level    => C_LEVEL_ERROR
21020                       ,p_module   => l_log_module);
21021         END IF;
21022       END IF;
21023    END IF;
21024    --
21025    --
21026    ------------------------------------------------------------------------------------------------
21027    -- 4219869 Business Flow
21028    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21029    -- Prior Entry.  Currently, the following code is always generated.
21030    ------------------------------------------------------------------------------------------------
21031    XLA_AE_LINES_PKG.ValidateCurrentLine;
21032 
21033    ------------------------------------------------------------------------------------
21034    -- 4219869 Business Flow
21035    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21036    ------------------------------------------------------------------------------------
21037    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21038 
21039    ----------------------------------------------------------------------------------
21040    -- 4219869 Business Flow
21041    -- Update journal entry status -- Need to generate this within IF <condition>
21042    ----------------------------------------------------------------------------------
21043    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21044          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21045          ,p_balance_type_code => l_balance_type_code
21046          );
21047 
21048    -------------------------------------------------------------------------------------------
21049    -- 4262811 - Generate the Accrual Reversal lines
21050    -------------------------------------------------------------------------------------------
21051    BEGIN
21052       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21053                               (g_array_event(p_event_id).array_value_num('header_index'));
21054       IF l_acc_rev_flag IS NULL THEN
21055          l_acc_rev_flag := 'N';
21056       END IF;
21057    EXCEPTION
21058       WHEN OTHERS THEN
21059          l_acc_rev_flag := 'N';
21060    END;
21061    --
21062    IF (l_acc_rev_flag = 'Y') THEN
21063 
21064        -- 4645092  ------------------------------------------------------------------------------
21065        -- To allow MPA report to determine if it should generate report process
21066        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21067        ------------------------------------------------------------------------------------------
21068 
21069        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21070        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21071    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
21072    -- call ADRs
21073    -- Bug 4922099
21074    --
21075    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21076         (NVL(l_actual_upg_option, 'N') = 'O') OR
21077         (NVL(l_enc_upg_option, 'N') = 'O')
21078       )
21079    THEN
21080    NULL;
21081    --
21082    --
21083    
21084   l_ccid := AcctDerRule_26(
21085            p_application_id           => p_application_id
21086          , p_ae_header_id             => l_ae_header_id 
21087 , p_source_3 => p_source_3
21088 , p_source_3_meaning => p_source_3_meaning
21089 , p_source_4 => p_source_4
21090 , p_source_18 => p_source_18
21091          , x_transaction_coa_id       => l_adr_transaction_coa_id
21092          , x_accounting_coa_id        => l_adr_accounting_coa_id
21093          , x_value_type_code          => l_adr_value_type_code
21094          , p_side                     => 'NA'
21095    );
21096 
21097    xla_ae_lines_pkg.set_ccid(
21098     p_code_combination_id          => l_ccid
21099   , p_value_type_code              => l_adr_value_type_code
21100   , p_transaction_coa_id           => l_adr_transaction_coa_id
21101   , p_accounting_coa_id            => l_adr_accounting_coa_id
21102   , p_adr_code                     => 'AP_BANK_ERRORS'
21103   , p_adr_type_code                => 'S'
21104   , p_component_type               => l_component_type
21108   , p_amb_context_code             => l_amb_context_code
21105   , p_component_code               => l_component_code
21106   , p_component_type_code          => l_component_type_code
21107   , p_component_appl_id            => l_component_appl_id
21109   , p_side                         => 'NA'
21110   );
21111 
21112 
21113    l_segment := AcctDerRule_4(
21114            p_application_id           => p_application_id
21115          , p_ae_header_id             => l_ae_header_id 
21116 , p_source_3 => p_source_3
21117 , p_source_3_meaning => p_source_3_meaning
21118 , p_source_4 => p_source_4
21119          , x_transaction_coa_id       => l_adr_transaction_coa_id
21120          , x_accounting_coa_id        => l_adr_accounting_coa_id
21121          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
21122          , x_flex_value_set_id        => l_adr_flex_value_set_id
21123          , x_value_type_code          => l_adr_value_type_code
21124          , x_value_combination_id     => l_adr_value_combination_id
21125          , x_value_segment_code       => l_adr_value_segment_code
21126          , p_side                     => 'NA'
21127          , p_override_seg_flag        => 'Y'
21128    );
21129 
21130    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
21131 
21132       xla_ae_lines_pkg.set_segment(
21133           p_to_segment_code         => 'GL_ACCOUNT'
21134         , p_segment_value           => l_segment
21135         , p_from_segment_code       => l_adr_value_segment_code
21136         , p_from_combination_id     => l_adr_value_combination_id
21137         , p_value_type_code         => l_adr_value_type_code
21138         , p_transaction_coa_id      => l_adr_transaction_coa_id
21139         , p_accounting_coa_id       => l_adr_accounting_coa_id
21140         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
21141         , p_flex_value_set_id       => l_adr_flex_value_set_id
21142         , p_adr_code                => 'AP_BANK_ERRORS_NAT_ACCT_SEG'
21143         , p_adr_type_code           => 'S'
21144         , p_component_type          => l_component_type
21145         , p_component_code          => l_component_code
21146         , p_component_type_code     => l_component_type_code
21147         , p_component_appl_id       => l_component_appl_id
21148         , p_amb_context_code        => l_amb_context_code
21149         , p_entity_code             => 'AP_PAYMENTS'
21150         , p_event_class_code        => 'RECONCILED PAYMENTS'
21151         , p_side                    => 'NA'
21152         );
21153 
21154   END IF;
21155 
21156    l_segment := AcctDerRule_21(
21157            p_application_id           => p_application_id
21158          , p_ae_header_id             => l_ae_header_id 
21159 , p_source_3 => p_source_3
21160 , p_source_3_meaning => p_source_3_meaning
21161 , p_source_18 => p_source_18
21162          , x_transaction_coa_id       => l_adr_transaction_coa_id
21163          , x_accounting_coa_id        => l_adr_accounting_coa_id
21164          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
21165          , x_flex_value_set_id        => l_adr_flex_value_set_id
21166          , x_value_type_code          => l_adr_value_type_code
21167          , x_value_combination_id     => l_adr_value_combination_id
21168          , x_value_segment_code       => l_adr_value_segment_code
21169          , p_side                     => 'NA'
21170          , p_override_seg_flag        => 'Y'
21171    );
21172 
21173    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
21174 
21175       xla_ae_lines_pkg.set_segment(
21176           p_to_segment_code         => 'GL_BALANCING'
21177         , p_segment_value           => l_segment
21178         , p_from_segment_code       => l_adr_value_segment_code
21179         , p_from_combination_id     => l_adr_value_combination_id
21180         , p_value_type_code         => l_adr_value_type_code
21181         , p_transaction_coa_id      => l_adr_transaction_coa_id
21182         , p_accounting_coa_id       => l_adr_accounting_coa_id
21183         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
21184         , p_flex_value_set_id       => l_adr_flex_value_set_id
21185         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
21186         , p_adr_type_code           => 'S'
21187         , p_component_type          => l_component_type
21188         , p_component_code          => l_component_code
21189         , p_component_type_code     => l_component_type_code
21190         , p_component_appl_id       => l_component_appl_id
21191         , p_amb_context_code        => l_amb_context_code
21192         , p_entity_code             => 'AP_PAYMENTS'
21193         , p_event_class_code        => 'RECONCILED PAYMENTS'
21194         , p_side                    => 'NA'
21195         );
21196 
21197   END IF;
21198 
21199    --
21200    --
21201    END IF;
21202 
21203        --
21204        -- Update the line information that should be overwritten
21205        --
21206        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21207                                          p_header_num   => 1);
21208        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
21209 
21210        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21211 
21212        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
21213           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21214        END IF;
21215 
21216       --
21217       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21218       --
21222           ---------------------------------------------------------------------------------------------------
21219       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21220           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
21221       ELSE
21223           -- 4262811a Switch Sign
21224           ---------------------------------------------------------------------------------------------------
21225           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
21226           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21227                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21228           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21229                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21230           -- 5132302
21231           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21232                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21233 
21234       END IF;
21235 
21236       -- 4955764
21237       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21238       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21239 
21240 
21241       XLA_AE_LINES_PKG.ValidateCurrentLine;
21242       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21243 
21244       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21245                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21246                ,p_balance_type_code => l_balance_type_code);
21247 
21248    END IF;
21249 
21250    -----------------------------------------------------------------------------------------
21251    -- 4262811 Multiperiod Accounting
21252    -----------------------------------------------------------------------------------------
21253      -- No MPA option is assigned.
21254 
21255 
21256 END IF;
21257 END IF;
21258 --
21259 
21260 --
21261 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21262    trace
21263       (p_msg      => 'END of AcctLineType_64'
21264       ,p_level    => C_LEVEL_PROCEDURE
21265       ,p_module   => l_log_module);
21266 END IF;
21267 --
21268 EXCEPTION
21269   WHEN xla_exceptions_pkg.application_exception THEN
21270       RAISE;
21271   WHEN OTHERS THEN
21272        xla_exceptions_pkg.raise_message
21273            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_64');
21274 END AcctLineType_64;
21275 --
21276 
21277 ---------------------------------------
21278 --
21279 -- PRIVATE FUNCTION
21280 --         AcctLineType_65
21281 --
21282 ---------------------------------------
21283 PROCEDURE AcctLineType_65 (
21284   p_application_id        IN NUMBER
21285  ,p_event_id              IN NUMBER
21286  ,p_calculate_acctd_flag  IN VARCHAR2
21287  ,p_calculate_g_l_flag    IN VARCHAR2
21288  ,p_actual_flag           IN OUT VARCHAR2
21289  ,p_balance_type_code     OUT VARCHAR2
21290  ,p_gain_or_loss_ref      OUT VARCHAR2
21291  
21292 --Automatic Offsets Value
21293  , p_source_3            IN VARCHAR2
21294  , p_source_3_meaning    IN VARCHAR2
21295 --Bank Cash Account
21296  , p_source_5            IN NUMBER
21297 --Accounting Reversal Indicator
21298  , p_source_41            IN VARCHAR2
21299 --Distribution Link Type
21300  , p_source_43            IN VARCHAR2
21301 --Override Accounted Amount Indicator
21302  , p_source_68            IN VARCHAR2
21303  , p_source_68_meaning    IN VARCHAR2
21304 --Third Party Type
21305  , p_source_71            IN VARCHAR2
21306 --Invoice Distribution Tax Line Identifier
21307  , p_source_74            IN NUMBER
21308 --Invoice Distribution Summary Tax Line Identifier
21309  , p_source_76            IN NUMBER
21310 --Business Flow Accounts Payable Application Identifier
21311  , p_source_79            IN NUMBER
21312 --When to Account for Payment Option
21313  , p_source_89            IN VARCHAR2
21314 --Payment Distribution Type
21315  , p_source_90            IN VARCHAR2
21316  , p_source_90_meaning    IN VARCHAR2
21317 --Payment Distribution Amount
21318  , p_source_91            IN NUMBER
21319 --Business Flow Payment Distribution Type
21320  , p_source_92            IN VARCHAR2
21321 --Business Flow Payment Entity Code
21322  , p_source_93            IN VARCHAR2
21323 --Business Flow Payment Distribution Identifier
21324  , p_source_94            IN NUMBER
21325 --Business Flow Payment Identifier
21326  , p_source_95            IN NUMBER
21327 --Payment Distribution Identifier
21328  , p_source_96            IN NUMBER
21329 --Cleared Exchange Date
21330  , p_source_98            IN DATE
21331 --Cleared Exchange Rate
21332  , p_source_99            IN NUMBER
21333 --Cleared Exchange Rate Type
21334  , p_source_100            IN VARCHAR2
21335 --Payment Distribution (Cleared Rate) Ledger Amount
21336  , p_source_101            IN NUMBER
21337 --Payment Supplier Identifier
21338  , p_source_102            IN NUMBER
21339 --Payment Supplier Site Identifier
21340  , p_source_103            IN NUMBER
21341 --Payment Distribution Reversed Identifier
21342  , p_source_104            IN NUMBER
21343 --Pooled Bank Account Option
21344  , p_source_105            IN VARCHAR2
21348 )
21345  , p_source_105_meaning    IN VARCHAR2
21346 --Payment Currency Code
21347  , p_source_106            IN VARCHAR2
21349 IS
21350 
21351 l_component_type              VARCHAR2(80);
21352 l_component_code              VARCHAR2(30);
21353 l_component_type_code         VARCHAR2(1);
21354 l_component_appl_id           INTEGER;
21355 l_amb_context_code            VARCHAR2(30);
21356 l_entity_code                 VARCHAR2(30);
21357 l_event_class_code            VARCHAR2(30);
21358 l_ae_header_id                NUMBER;
21359 l_event_type_code             VARCHAR2(30);
21360 l_line_definition_code        VARCHAR2(30);
21361 l_line_definition_owner_code  VARCHAR2(1);
21362 --
21363 -- adr variables
21364 l_segment                     VARCHAR2(30);
21365 l_ccid                        NUMBER;
21366 l_adr_transaction_coa_id      NUMBER;
21367 l_adr_accounting_coa_id       NUMBER;
21368 l_adr_flexfield_segment_code  VARCHAR2(30);
21369 l_adr_flex_value_set_id       NUMBER;
21370 l_adr_value_type_code         VARCHAR2(30);
21371 l_adr_value_combination_id    NUMBER;
21372 l_adr_value_segment_code      VARCHAR2(30);
21373 
21374 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
21375 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
21376 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
21377 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
21378 
21379 -- 4262811 Variables ------------------------------------------------------------------------------------------
21380 l_entered_amt_idx             NUMBER;
21381 l_accted_amt_idx              NUMBER;
21382 l_acc_rev_flag                VARCHAR2(1);
21383 l_accrual_line_num            NUMBER;
21384 l_tmp_amt                     NUMBER;
21385 l_acc_rev_natural_side_code   VARCHAR2(1);
21386 
21387 l_num_entries                 NUMBER;
21388 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
21389 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
21390 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
21391 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
21392 l_recog_line_1                NUMBER;
21393 l_recog_line_2                NUMBER;
21394 
21395 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
21396 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
21397 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
21398 
21399 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21400 
21401 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
21402 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
21403 
21404 ---------------------------------------------------------------------------------------------------------------
21405 
21406 
21407 --
21408 -- bulk performance
21409 --
21410 l_balance_type_code           VARCHAR2(1);
21411 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
21412 l_log_module                  VARCHAR2(240);
21413 
21414 --
21415 -- Upgrade strategy
21416 --
21417 l_actual_upg_option           VARCHAR2(1);
21418 l_enc_upg_option           VARCHAR2(1);
21419 
21420 --
21421 BEGIN
21422 --
21423 IF g_log_enabled THEN
21424       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_65';
21425 END IF;
21426 --
21427 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21428 
21429       trace
21430          (p_msg      => 'BEGIN of AcctLineType_65'
21431          ,p_level    => C_LEVEL_PROCEDURE
21432          ,p_module   => l_log_module);
21433 
21434 END IF;
21435 --
21436 l_component_type             := 'AMB_JLT';
21437 l_component_code             := 'AP_CASH_CLEARONLY_AOS_AS';
21438 l_component_type_code        := 'S';
21439 l_component_appl_id          :=  200;
21440 l_amb_context_code           := 'DEFAULT';
21441 l_entity_code                := 'AP_PAYMENTS';
21442 l_event_class_code           := 'RECONCILED PAYMENTS';
21443 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
21444 l_line_definition_owner_code := 'S';
21445 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
21446 --
21447 l_balance_type_code          := 'A';
21448 l_segment                     := NULL;
21449 l_ccid                        := NULL;
21450 l_adr_transaction_coa_id      := NULL;
21451 l_adr_accounting_coa_id       := NULL;
21452 l_adr_flexfield_segment_code  := NULL;
21453 l_adr_flex_value_set_id       := NULL;
21454 l_adr_value_type_code         := NULL;
21455 l_adr_value_combination_id    := NULL;
21456 l_adr_value_segment_code      := NULL;
21457 
21458 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
21459 l_bflow_class_code           := '';    -- 4219869 Business Flow
21460 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
21461 l_budgetary_control_flag     := 'N';
21462 
21463 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
21464 l_bflow_applied_to_amt       := NULL; -- 5132302
21465 l_entered_amt_idx            := NULL;          -- 4262811
21466 l_accted_amt_idx             := NULL;          -- 4262811
21467 l_acc_rev_flag               := NULL;          -- 4262811
21468 l_accrual_line_num           := NULL;          -- 4262811
21469 l_tmp_amt                    := NULL;          -- 4262811
21470 --
21471  
21472 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21473     l_balance_type_code <> 'B' THEN
21474 IF NVL(p_source_89,'
21475 ') <>  'ISSUE_ISSUE' AND 
21476 (NVL(p_source_105,'
21477 ') =  'Y' AND 
21478 NVL(p_source_3,'
21482 NVL(p_source_90,'
21479 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
21480 (NVL(p_source_90,'
21481 ') =  'CASH' OR 
21483 ') =  'BANK CHARGE' OR 
21484 NVL(p_source_90,'
21485 ') =  'BANK ERROR')
21486  THEN 
21487 
21488    --
21489    XLA_AE_LINES_PKG.SetNewLine;
21490 
21491    p_balance_type_code          := l_balance_type_code;
21492    -- set the flag so later we will know whether the gain loss line needs to be created
21493    
21494    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21495      p_actual_flag :='A';
21496    END IF;
21497 
21498    --
21499    -- bulk performance
21500    --
21501    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21502                                       p_header_num   => 0); -- 4262811
21503    --
21504    -- set accounting line options
21505    --
21506    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21507            p_natural_side_code          => 'C'
21508          , p_gain_or_loss_flag          => 'N'
21509          , p_gl_transfer_mode_code      => 'S'
21510          , p_acct_entry_type_code       => 'A'
21511          , p_switch_side_flag           => 'Y'
21512          , p_merge_duplicate_code       => 'A'
21513          );
21514    --
21515    l_acc_rev_natural_side_code := 'D';  -- 4262811
21516    -- 
21517    --
21518    -- set accounting line type info
21519    --
21520    xla_ae_lines_pkg.SetAcctLineType
21521       (p_component_type             => l_component_type
21522       ,p_event_type_code            => l_event_type_code
21523       ,p_line_definition_owner_code => l_line_definition_owner_code
21524       ,p_line_definition_code       => l_line_definition_code
21525       ,p_accounting_line_code       => l_component_code
21526       ,p_accounting_line_type_code  => l_component_type_code
21527       ,p_accounting_line_appl_id    => l_component_appl_id
21528       ,p_amb_context_code           => l_amb_context_code
21529       ,p_entity_code                => l_entity_code
21530       ,p_event_class_code           => l_event_class_code);
21531    --
21532    -- set accounting class
21533    --
21534    xla_ae_lines_pkg.SetAcctClass(
21535            p_accounting_class_code  => 'CASH'
21536          , p_ae_header_id           => l_ae_header_id
21537          );
21538 
21539    --
21540    -- set rounding class
21541    --
21542    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21543                       'CASH';
21544 
21545    --
21546    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21547    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21548    --
21549    -- bulk performance
21550    --
21551    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21552 
21553    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21554       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21555 
21556    -- 4955764
21557    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21558       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21559 
21560    -- 4458381 Public Sector Enh
21561    
21562    --
21563    -- set accounting attributes for the line type
21564    --
21565    l_entered_amt_idx := 10;
21566    l_accted_amt_idx  := 15;
21567    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
21568    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21569    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
21570    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
21571    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
21572    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
21573    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
21574    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21575    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
21576    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
21577    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
21578    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
21579    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
21580    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21581    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
21582    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
21583    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
21584    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
21585    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
21586    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
21587    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
21588    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
21589    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
21590    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
21591    l_rec_acct_attrs.array_date_value(12)  := p_source_98;
21592    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
21593    l_rec_acct_attrs.array_num_value(13)  := p_source_99;
21594    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
21595    l_rec_acct_attrs.array_char_value(14)  := p_source_100;
21596    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
21597    l_rec_acct_attrs.array_num_value(15)  := p_source_101;
21598    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
21602    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
21599    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
21600    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
21601    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
21603    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
21604    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
21605    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
21606    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
21607    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
21608    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
21609    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
21610    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
21611    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
21612    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
21613    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
21614    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
21615    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
21616 
21617    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21618    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21619 
21620    ---------------------------------------------------------------------------------------------------------------
21621    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21622    ---------------------------------------------------------------------------------------------------------------
21623    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21624 
21625    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21626    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21627 
21628    IF xla_accounting_cache_pkg.GetValueChar
21629          (p_source_code         => 'LEDGER_CATEGORY_CODE'
21630          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21631    AND l_bflow_method_code = 'PRIOR_ENTRY'
21632 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21633    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21634          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21635        )
21636    THEN
21637          xla_ae_lines_pkg.BflowUpgEntry
21638            (p_business_method_code    => l_bflow_method_code
21639            ,p_business_class_code     => l_bflow_class_code
21640            ,p_balance_type            => l_balance_type_code);
21641    ELSE
21642       NULL;
21643 XLA_AE_LINES_PKG.business_flow_validation(
21644                                 p_business_method_code     => l_bflow_method_code
21645                                ,p_business_class_code      => l_bflow_class_code
21646                                ,p_inherit_description_flag => l_inherit_desc_flag);
21647    END IF;
21648 
21649    --
21650    -- call analytical criteria
21651    --
21652    
21653    --
21654    -- call description
21655    --
21656    -- No description or it is inherited.
21657    --
21658    -- call ADRs
21659    -- Bug 4922099
21660    --
21661    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21662         (NVL(l_actual_upg_option, 'N') = 'O') OR
21663         (NVL(l_enc_upg_option, 'N') = 'O')
21664       )
21665    THEN
21666    NULL;
21667    --
21668    --
21669    
21670    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
21671      p_code_combination_id      => TO_NUMBER(C_NUM)
21672    , p_value_type_code          => NULL
21673    , p_transaction_coa_id       => null
21674    , p_accounting_coa_id        => null
21675    , p_adr_code                 => NULL
21676    , p_adr_type_code            => NULL
21677    , p_component_type           => l_component_type
21678    , p_component_code           => l_component_code
21679    , p_component_type_code      => l_component_type_code
21680    , p_component_appl_id        => l_component_appl_id
21681    , p_amb_context_code         => l_amb_context_code
21682    , p_side                     => NULL
21683    );
21684 
21685    
21686   -- initialise segments
21687   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21688   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21689   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21690   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21691   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21692   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21693   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21694   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21695   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21696   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21697   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21698   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21699   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21700   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21701   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21702   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21706   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21703   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21704   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21705   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21707   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21708   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21709   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21710   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21711   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21712   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21713   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21714   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21715   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21716   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21717   --
21718 
21719    --
21720 
21721 
21722    l_segment := AcctDerRule_5(
21723            p_application_id           => p_application_id
21724          , p_ae_header_id             => l_ae_header_id 
21725 , p_source_5 => p_source_5
21726          , x_transaction_coa_id       => l_adr_transaction_coa_id
21727          , x_accounting_coa_id        => l_adr_accounting_coa_id
21728          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
21729          , x_flex_value_set_id        => l_adr_flex_value_set_id
21730          , x_value_type_code          => l_adr_value_type_code
21731          , x_value_combination_id     => l_adr_value_combination_id
21732          , x_value_segment_code       => l_adr_value_segment_code
21733          , p_side                     => 'NA'
21734          , p_override_seg_flag        => 'Y'
21735    );
21736 
21737    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
21738 
21739       xla_ae_lines_pkg.set_segment(
21740           p_to_segment_code         => 'GL_ACCOUNT'
21741         , p_segment_value           => l_segment
21742         , p_from_segment_code       => l_adr_value_segment_code
21743         , p_from_combination_id     => l_adr_value_combination_id
21744         , p_value_type_code         => l_adr_value_type_code
21745         , p_transaction_coa_id      => l_adr_transaction_coa_id
21746         , p_accounting_coa_id       => l_adr_accounting_coa_id
21747         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
21748         , p_flex_value_set_id       => l_adr_flex_value_set_id
21749         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
21750         , p_adr_type_code           => 'S'
21751         , p_component_type          => l_component_type
21752         , p_component_code          => l_component_code
21753         , p_component_type_code     => l_component_type_code
21754         , p_component_appl_id       => l_component_appl_id
21755         , p_amb_context_code        => l_amb_context_code
21756         , p_entity_code             => 'AP_PAYMENTS'
21757         , p_event_class_code        => 'RECONCILED PAYMENTS'
21758         , p_side                    => 'NA'
21759         );
21760 
21761   END IF;
21762 
21763    --
21764    --
21765    END IF;
21766    --
21767    -- Bug 4922099
21768    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21769           (NVL(l_enc_upg_option, 'N') = 'O')
21770         ) AND
21771         (l_bflow_method_code = 'PRIOR_ENTRY')
21772       )
21773    THEN
21774       IF
21775       --
21776       1 = 2
21777       --
21778       THEN
21779       xla_accounting_err_pkg.build_message
21780                                     (p_appli_s_name            => 'XLA'
21781                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21782                                     ,p_token_1                 => 'LINE_NUMBER'
21783                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
21784                                     ,p_token_2                 => 'LINE_TYPE_NAME'
21785                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
21786                                                                              l_component_type
21787                                                                             ,l_component_code
21788                                                                             ,l_component_type_code
21789                                                                             ,l_component_appl_id
21790                                                                             ,l_amb_context_code
21791                                                                             ,l_entity_code
21792                                                                             ,l_event_class_code
21793                                                                            )
21794                                     ,p_token_3                 => 'OWNER'
21795                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
21796                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
21797                                                                           ,p_lookup_code    => l_component_type_code
21798                                                                          )
21799                                     ,p_token_4                 => 'PRODUCT_NAME'
21803                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21800                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21801                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21802                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21804                                     ,p_ae_header_id            =>  NULL
21805                                        );
21806 
21807         IF (C_LEVEL_ERROR>= g_log_level) THEN
21808                  trace
21809                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21810                       ,p_level    => C_LEVEL_ERROR
21811                       ,p_module   => l_log_module);
21812         END IF;
21813       END IF;
21814    END IF;
21815    --
21816    --
21817    ------------------------------------------------------------------------------------------------
21818    -- 4219869 Business Flow
21819    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21820    -- Prior Entry.  Currently, the following code is always generated.
21821    ------------------------------------------------------------------------------------------------
21822    XLA_AE_LINES_PKG.ValidateCurrentLine;
21823 
21824    ------------------------------------------------------------------------------------
21825    -- 4219869 Business Flow
21826    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21827    ------------------------------------------------------------------------------------
21828    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21829 
21830    ----------------------------------------------------------------------------------
21831    -- 4219869 Business Flow
21832    -- Update journal entry status -- Need to generate this within IF <condition>
21833    ----------------------------------------------------------------------------------
21834    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21835          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21836          ,p_balance_type_code => l_balance_type_code
21837          );
21838 
21839    -------------------------------------------------------------------------------------------
21840    -- 4262811 - Generate the Accrual Reversal lines
21841    -------------------------------------------------------------------------------------------
21842    BEGIN
21843       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21844                               (g_array_event(p_event_id).array_value_num('header_index'));
21845       IF l_acc_rev_flag IS NULL THEN
21846          l_acc_rev_flag := 'N';
21847       END IF;
21848    EXCEPTION
21849       WHEN OTHERS THEN
21850          l_acc_rev_flag := 'N';
21851    END;
21852    --
21853    IF (l_acc_rev_flag = 'Y') THEN
21854 
21855        -- 4645092  ------------------------------------------------------------------------------
21856        -- To allow MPA report to determine if it should generate report process
21857        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21858        ------------------------------------------------------------------------------------------
21859 
21860        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21861        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21862    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
21863    -- call ADRs
21864    -- Bug 4922099
21865    --
21866    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21867         (NVL(l_actual_upg_option, 'N') = 'O') OR
21868         (NVL(l_enc_upg_option, 'N') = 'O')
21869       )
21870    THEN
21871    NULL;
21872    --
21873    --
21874    
21875    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
21876      p_code_combination_id      => TO_NUMBER(C_NUM)
21877    , p_value_type_code          => NULL
21878    , p_transaction_coa_id       => null
21879    , p_accounting_coa_id        => null
21880    , p_adr_code                 => NULL
21881    , p_adr_type_code            => NULL
21882    , p_component_type           => l_component_type
21883    , p_component_code           => l_component_code
21884    , p_component_type_code      => l_component_type_code
21885    , p_component_appl_id        => l_component_appl_id
21886    , p_amb_context_code         => l_amb_context_code
21887    , p_side                     => NULL
21888    );
21889 
21890    
21891   -- initialise segments
21892   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21893   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21894   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21895   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21896   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21897   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21898   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21899   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21900   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
21901   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21902   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21903   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21904   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21905   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21909   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21906   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21907   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21908   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21910   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21911   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21912   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21913   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21914   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21915   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21916   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21917   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21918   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21919   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21920   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21921   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
21922   --
21923 
21924    --
21925 
21926 
21927    l_segment := AcctDerRule_5(
21928            p_application_id           => p_application_id
21929          , p_ae_header_id             => l_ae_header_id 
21930 , p_source_5 => p_source_5
21931          , x_transaction_coa_id       => l_adr_transaction_coa_id
21932          , x_accounting_coa_id        => l_adr_accounting_coa_id
21933          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
21934          , x_flex_value_set_id        => l_adr_flex_value_set_id
21935          , x_value_type_code          => l_adr_value_type_code
21936          , x_value_combination_id     => l_adr_value_combination_id
21937          , x_value_segment_code       => l_adr_value_segment_code
21938          , p_side                     => 'NA'
21939          , p_override_seg_flag        => 'Y'
21940    );
21941 
21942    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
21943 
21944       xla_ae_lines_pkg.set_segment(
21945           p_to_segment_code         => 'GL_ACCOUNT'
21946         , p_segment_value           => l_segment
21947         , p_from_segment_code       => l_adr_value_segment_code
21948         , p_from_combination_id     => l_adr_value_combination_id
21949         , p_value_type_code         => l_adr_value_type_code
21950         , p_transaction_coa_id      => l_adr_transaction_coa_id
21951         , p_accounting_coa_id       => l_adr_accounting_coa_id
21952         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
21953         , p_flex_value_set_id       => l_adr_flex_value_set_id
21954         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
21955         , p_adr_type_code           => 'S'
21956         , p_component_type          => l_component_type
21957         , p_component_code          => l_component_code
21958         , p_component_type_code     => l_component_type_code
21959         , p_component_appl_id       => l_component_appl_id
21960         , p_amb_context_code        => l_amb_context_code
21961         , p_entity_code             => 'AP_PAYMENTS'
21962         , p_event_class_code        => 'RECONCILED PAYMENTS'
21963         , p_side                    => 'NA'
21964         );
21965 
21966   END IF;
21967 
21968    --
21969    --
21970    END IF;
21971 
21972        --
21973        -- Update the line information that should be overwritten
21974        --
21975        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21976                                          p_header_num   => 1);
21977        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
21978 
21979        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21980 
21981        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
21982           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21983        END IF;
21984 
21985       --
21986       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21987       --
21988       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21989           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
21990       ELSE
21991           ---------------------------------------------------------------------------------------------------
21992           -- 4262811a Switch Sign
21993           ---------------------------------------------------------------------------------------------------
21994           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
21995           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21996                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21997           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21998                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21999           -- 5132302
22000           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22001                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22002 
22003       END IF;
22004 
22005       -- 4955764
22006       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22010       XLA_AE_LINES_PKG.ValidateCurrentLine;
22007       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22008 
22009 
22011       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22012 
22013       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22014                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22015                ,p_balance_type_code => l_balance_type_code);
22016 
22017    END IF;
22018 
22019    -----------------------------------------------------------------------------------------
22020    -- 4262811 Multiperiod Accounting
22021    -----------------------------------------------------------------------------------------
22022      -- No MPA option is assigned.
22023 
22024 
22025 END IF;
22026 END IF;
22027 --
22028 
22029 --
22030 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22031    trace
22032       (p_msg      => 'END of AcctLineType_65'
22033       ,p_level    => C_LEVEL_PROCEDURE
22034       ,p_module   => l_log_module);
22035 END IF;
22036 --
22037 EXCEPTION
22038   WHEN xla_exceptions_pkg.application_exception THEN
22039       RAISE;
22040   WHEN OTHERS THEN
22041        xla_exceptions_pkg.raise_message
22042            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_65');
22043 END AcctLineType_65;
22044 --
22045 
22046 ---------------------------------------
22047 --
22048 -- PRIVATE FUNCTION
22049 --         AcctLineType_66
22050 --
22051 ---------------------------------------
22052 PROCEDURE AcctLineType_66 (
22053   p_application_id        IN NUMBER
22054  ,p_event_id              IN NUMBER
22055  ,p_calculate_acctd_flag  IN VARCHAR2
22056  ,p_calculate_g_l_flag    IN VARCHAR2
22057  ,p_actual_flag           IN OUT VARCHAR2
22058  ,p_balance_type_code     OUT VARCHAR2
22059  ,p_gain_or_loss_ref      OUT VARCHAR2
22060  
22061 --Automatic Offsets Value
22062  , p_source_3            IN VARCHAR2
22063  , p_source_3_meaning    IN VARCHAR2
22064 --Bank Cash Account
22065  , p_source_5            IN NUMBER
22066 --Accounting Reversal Indicator
22067  , p_source_41            IN VARCHAR2
22068 --Distribution Link Type
22069  , p_source_43            IN VARCHAR2
22070 --Override Accounted Amount Indicator
22071  , p_source_68            IN VARCHAR2
22072  , p_source_68_meaning    IN VARCHAR2
22073 --Third Party Type
22074  , p_source_71            IN VARCHAR2
22075 --Invoice Distribution Tax Line Identifier
22076  , p_source_74            IN NUMBER
22077 --Invoice Distribution Summary Tax Line Identifier
22078  , p_source_76            IN NUMBER
22079 --Business Flow Accounts Payable Application Identifier
22080  , p_source_79            IN NUMBER
22081 --When to Account for Payment Option
22082  , p_source_89            IN VARCHAR2
22083 --Payment Distribution Type
22084  , p_source_90            IN VARCHAR2
22085  , p_source_90_meaning    IN VARCHAR2
22086 --Payment Distribution Amount
22087  , p_source_91            IN NUMBER
22088 --Business Flow Payment Distribution Type
22089  , p_source_92            IN VARCHAR2
22090 --Business Flow Payment Entity Code
22091  , p_source_93            IN VARCHAR2
22092 --Business Flow Payment Distribution Identifier
22093  , p_source_94            IN NUMBER
22094 --Business Flow Payment Identifier
22095  , p_source_95            IN NUMBER
22096 --Payment Distribution Identifier
22097  , p_source_96            IN NUMBER
22098 --Cleared Exchange Date
22099  , p_source_98            IN DATE
22100 --Cleared Exchange Rate
22101  , p_source_99            IN NUMBER
22102 --Cleared Exchange Rate Type
22103  , p_source_100            IN VARCHAR2
22104 --Payment Distribution (Cleared Rate) Ledger Amount
22105  , p_source_101            IN NUMBER
22106 --Payment Supplier Identifier
22107  , p_source_102            IN NUMBER
22108 --Payment Supplier Site Identifier
22109  , p_source_103            IN NUMBER
22110 --Payment Distribution Reversed Identifier
22111  , p_source_104            IN NUMBER
22112 --Pooled Bank Account Option
22113  , p_source_105            IN VARCHAR2
22114  , p_source_105_meaning    IN VARCHAR2
22115 --Payment Currency Code
22116  , p_source_106            IN VARCHAR2
22117 )
22118 IS
22119 
22120 l_component_type              VARCHAR2(80);
22121 l_component_code              VARCHAR2(30);
22122 l_component_type_code         VARCHAR2(1);
22123 l_component_appl_id           INTEGER;
22124 l_amb_context_code            VARCHAR2(30);
22125 l_entity_code                 VARCHAR2(30);
22126 l_event_class_code            VARCHAR2(30);
22127 l_ae_header_id                NUMBER;
22128 l_event_type_code             VARCHAR2(30);
22129 l_line_definition_code        VARCHAR2(30);
22130 l_line_definition_owner_code  VARCHAR2(1);
22131 --
22132 -- adr variables
22133 l_segment                     VARCHAR2(30);
22134 l_ccid                        NUMBER;
22135 l_adr_transaction_coa_id      NUMBER;
22136 l_adr_accounting_coa_id       NUMBER;
22137 l_adr_flexfield_segment_code  VARCHAR2(30);
22138 l_adr_flex_value_set_id       NUMBER;
22139 l_adr_value_type_code         VARCHAR2(30);
22140 l_adr_value_combination_id    NUMBER;
22141 l_adr_value_segment_code      VARCHAR2(30);
22142 
22143 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
22144 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
22145 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
22149 l_entered_amt_idx             NUMBER;
22146 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
22147 
22148 -- 4262811 Variables ------------------------------------------------------------------------------------------
22150 l_accted_amt_idx              NUMBER;
22151 l_acc_rev_flag                VARCHAR2(1);
22152 l_accrual_line_num            NUMBER;
22153 l_tmp_amt                     NUMBER;
22154 l_acc_rev_natural_side_code   VARCHAR2(1);
22155 
22156 l_num_entries                 NUMBER;
22157 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
22158 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
22159 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
22160 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
22161 l_recog_line_1                NUMBER;
22162 l_recog_line_2                NUMBER;
22163 
22164 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
22165 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
22166 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
22167 
22168 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22169 
22170 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
22171 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
22172 
22173 ---------------------------------------------------------------------------------------------------------------
22174 
22175 
22176 --
22177 -- bulk performance
22178 --
22179 l_balance_type_code           VARCHAR2(1);
22180 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
22181 l_log_module                  VARCHAR2(240);
22182 
22183 --
22184 -- Upgrade strategy
22185 --
22186 l_actual_upg_option           VARCHAR2(1);
22187 l_enc_upg_option           VARCHAR2(1);
22188 
22189 --
22190 BEGIN
22191 --
22192 IF g_log_enabled THEN
22193       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_66';
22194 END IF;
22195 --
22196 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22197 
22198       trace
22199          (p_msg      => 'BEGIN of AcctLineType_66'
22200          ,p_level    => C_LEVEL_PROCEDURE
22201          ,p_module   => l_log_module);
22202 
22203 END IF;
22204 --
22205 l_component_type             := 'AMB_JLT';
22206 l_component_code             := 'AP_CASH_CLEARONLY_AOS_BS';
22207 l_component_type_code        := 'S';
22208 l_component_appl_id          :=  200;
22209 l_amb_context_code           := 'DEFAULT';
22210 l_entity_code                := 'AP_PAYMENTS';
22211 l_event_class_code           := 'RECONCILED PAYMENTS';
22212 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
22213 l_line_definition_owner_code := 'S';
22214 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
22215 --
22216 l_balance_type_code          := 'A';
22217 l_segment                     := NULL;
22218 l_ccid                        := NULL;
22219 l_adr_transaction_coa_id      := NULL;
22220 l_adr_accounting_coa_id       := NULL;
22221 l_adr_flexfield_segment_code  := NULL;
22222 l_adr_flex_value_set_id       := NULL;
22223 l_adr_value_type_code         := NULL;
22224 l_adr_value_combination_id    := NULL;
22225 l_adr_value_segment_code      := NULL;
22226 
22227 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
22228 l_bflow_class_code           := '';    -- 4219869 Business Flow
22229 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
22230 l_budgetary_control_flag     := 'N';
22231 
22232 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
22233 l_bflow_applied_to_amt       := NULL; -- 5132302
22234 l_entered_amt_idx            := NULL;          -- 4262811
22235 l_accted_amt_idx             := NULL;          -- 4262811
22236 l_acc_rev_flag               := NULL;          -- 4262811
22237 l_accrual_line_num           := NULL;          -- 4262811
22238 l_tmp_amt                    := NULL;          -- 4262811
22239 --
22240  
22241 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22242     l_balance_type_code <> 'B' THEN
22243 IF NVL(p_source_89,'
22244 ') <>  'ISSUE_ISSUE' AND 
22245 (NVL(p_source_105,'
22246 ') =  'Y' AND 
22247 NVL(p_source_3,'
22248 ') =  'BALANCING_SEGMENT') AND 
22249 (NVL(p_source_90,'
22250 ') =  'CASH' OR 
22251 NVL(p_source_90,'
22252 ') =  'BANK CHARGE' OR 
22253 NVL(p_source_90,'
22254 ') =  'BANK ERROR')
22255  THEN 
22256 
22257    --
22258    XLA_AE_LINES_PKG.SetNewLine;
22259 
22260    p_balance_type_code          := l_balance_type_code;
22261    -- set the flag so later we will know whether the gain loss line needs to be created
22262    
22263    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22264      p_actual_flag :='A';
22265    END IF;
22266 
22267    --
22268    -- bulk performance
22269    --
22270    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22271                                       p_header_num   => 0); -- 4262811
22272    --
22273    -- set accounting line options
22274    --
22275    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22276            p_natural_side_code          => 'C'
22277          , p_gain_or_loss_flag          => 'N'
22278          , p_gl_transfer_mode_code      => 'S'
22279          , p_acct_entry_type_code       => 'A'
22280          , p_switch_side_flag           => 'Y'
22281          , p_merge_duplicate_code       => 'A'
22282          );
22283    --
22284    l_acc_rev_natural_side_code := 'D';  -- 4262811
22285    -- 
22286    --
22290       (p_component_type             => l_component_type
22287    -- set accounting line type info
22288    --
22289    xla_ae_lines_pkg.SetAcctLineType
22291       ,p_event_type_code            => l_event_type_code
22292       ,p_line_definition_owner_code => l_line_definition_owner_code
22293       ,p_line_definition_code       => l_line_definition_code
22294       ,p_accounting_line_code       => l_component_code
22295       ,p_accounting_line_type_code  => l_component_type_code
22296       ,p_accounting_line_appl_id    => l_component_appl_id
22297       ,p_amb_context_code           => l_amb_context_code
22298       ,p_entity_code                => l_entity_code
22299       ,p_event_class_code           => l_event_class_code);
22300    --
22301    -- set accounting class
22302    --
22303    xla_ae_lines_pkg.SetAcctClass(
22304            p_accounting_class_code  => 'CASH'
22305          , p_ae_header_id           => l_ae_header_id
22306          );
22307 
22308    --
22309    -- set rounding class
22310    --
22311    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22312                       'CASH';
22313 
22314    --
22315    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22316    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22317    --
22318    -- bulk performance
22319    --
22320    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22321 
22322    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22323       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22324 
22325    -- 4955764
22326    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22327       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22328 
22329    -- 4458381 Public Sector Enh
22330    
22331    --
22332    -- set accounting attributes for the line type
22333    --
22334    l_entered_amt_idx := 10;
22335    l_accted_amt_idx  := 15;
22336    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
22337    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22338    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
22339    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
22340    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
22341    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
22342    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
22343    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22344    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
22345    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
22346    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
22347    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
22348    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
22349    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22350    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
22351    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
22352    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
22353    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
22354    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
22355    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
22356    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
22357    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
22358    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
22359    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
22360    l_rec_acct_attrs.array_date_value(12)  := p_source_98;
22361    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
22362    l_rec_acct_attrs.array_num_value(13)  := p_source_99;
22363    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
22364    l_rec_acct_attrs.array_char_value(14)  := p_source_100;
22365    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
22366    l_rec_acct_attrs.array_num_value(15)  := p_source_101;
22367    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
22368    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
22369    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
22370    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
22371    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
22372    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
22373    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
22374    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
22375    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
22376    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
22377    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
22378    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
22379    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
22380    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
22381    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
22382    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
22383    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
22384    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
22385 
22386    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22387    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22388 
22389    ---------------------------------------------------------------------------------------------------------------
22390    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22394    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22391    ---------------------------------------------------------------------------------------------------------------
22392    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22393 
22395    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22396 
22397    IF xla_accounting_cache_pkg.GetValueChar
22398          (p_source_code         => 'LEDGER_CATEGORY_CODE'
22399          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22400    AND l_bflow_method_code = 'PRIOR_ENTRY'
22401 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22402    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22403          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22404        )
22405    THEN
22406          xla_ae_lines_pkg.BflowUpgEntry
22407            (p_business_method_code    => l_bflow_method_code
22408            ,p_business_class_code     => l_bflow_class_code
22409            ,p_balance_type            => l_balance_type_code);
22410    ELSE
22411       NULL;
22412 XLA_AE_LINES_PKG.business_flow_validation(
22413                                 p_business_method_code     => l_bflow_method_code
22414                                ,p_business_class_code      => l_bflow_class_code
22415                                ,p_inherit_description_flag => l_inherit_desc_flag);
22416    END IF;
22417 
22418    --
22419    -- call analytical criteria
22420    --
22421    
22422    --
22423    -- call description
22424    --
22425    -- No description or it is inherited.
22426    --
22427    -- call ADRs
22428    -- Bug 4922099
22429    --
22430    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22431         (NVL(l_actual_upg_option, 'N') = 'O') OR
22432         (NVL(l_enc_upg_option, 'N') = 'O')
22433       )
22434    THEN
22435    NULL;
22436    --
22437    --
22438    
22439   l_ccid := AcctDerRule_27(
22440            p_application_id           => p_application_id
22441          , p_ae_header_id             => l_ae_header_id 
22442 , p_source_5 => p_source_5
22443          , x_transaction_coa_id       => l_adr_transaction_coa_id
22444          , x_accounting_coa_id        => l_adr_accounting_coa_id
22445          , x_value_type_code          => l_adr_value_type_code
22446          , p_side                     => 'NA'
22447    );
22448 
22449    xla_ae_lines_pkg.set_ccid(
22450     p_code_combination_id          => l_ccid
22451   , p_value_type_code              => l_adr_value_type_code
22452   , p_transaction_coa_id           => l_adr_transaction_coa_id
22453   , p_accounting_coa_id            => l_adr_accounting_coa_id
22454   , p_adr_code                     => 'AP_CASH'
22455   , p_adr_type_code                => 'S'
22456   , p_component_type               => l_component_type
22457   , p_component_code               => l_component_code
22458   , p_component_type_code          => l_component_type_code
22459   , p_component_appl_id            => l_component_appl_id
22460   , p_amb_context_code             => l_amb_context_code
22461   , p_side                         => 'NA'
22462   );
22463 
22464 
22465    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
22466      p_to_segment_code         => 'GL_BALANCING'
22467    , p_segment_value           => C_CHAR
22468    , p_from_segment_code       => NULL
22469    , p_from_combination_id     => NULL
22470    , p_value_type_code         => NULL
22471    , p_transaction_coa_id      => null
22472    , p_accounting_coa_id       => null
22473    , p_flexfield_segment_code  => NULL
22474    , p_flex_value_set_id       => NULL
22475    , p_adr_code                => NULL
22476    , p_adr_type_code           => NULL
22477    , p_component_type          => l_component_type
22478    , p_component_code          => l_component_code
22479    , p_component_type_code     => l_component_type_code
22480    , p_component_appl_id       => l_component_appl_id
22481    , p_amb_context_code        => l_amb_context_code
22482    , p_entity_code             => 'AP_PAYMENTS'
22483    , p_event_class_code        => 'RECONCILED PAYMENTS'
22484    , p_side                    => 'NA'
22485    );
22486    --
22487 
22488 
22489    --
22490    --
22491    END IF;
22492    --
22493    -- Bug 4922099
22494    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22495           (NVL(l_enc_upg_option, 'N') = 'O')
22496         ) AND
22497         (l_bflow_method_code = 'PRIOR_ENTRY')
22498       )
22499    THEN
22500       IF
22501       --
22502       1 = 2
22503       --
22504       THEN
22505       xla_accounting_err_pkg.build_message
22506                                     (p_appli_s_name            => 'XLA'
22507                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22508                                     ,p_token_1                 => 'LINE_NUMBER'
22509                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
22510                                     ,p_token_2                 => 'LINE_TYPE_NAME'
22511                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
22512                                                                              l_component_type
22513                                                                             ,l_component_code
22514                                                                             ,l_component_type_code
22515                                                                             ,l_component_appl_id
22519                                                                            )
22516                                                                             ,l_amb_context_code
22517                                                                             ,l_entity_code
22518                                                                             ,l_event_class_code
22520                                     ,p_token_3                 => 'OWNER'
22521                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
22522                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
22523                                                                           ,p_lookup_code    => l_component_type_code
22524                                                                          )
22525                                     ,p_token_4                 => 'PRODUCT_NAME'
22526                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22527                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22528                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22529                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22530                                     ,p_ae_header_id            =>  NULL
22531                                        );
22532 
22533         IF (C_LEVEL_ERROR>= g_log_level) THEN
22534                  trace
22535                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22536                       ,p_level    => C_LEVEL_ERROR
22537                       ,p_module   => l_log_module);
22538         END IF;
22539       END IF;
22540    END IF;
22541    --
22542    --
22543    ------------------------------------------------------------------------------------------------
22544    -- 4219869 Business Flow
22545    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22546    -- Prior Entry.  Currently, the following code is always generated.
22547    ------------------------------------------------------------------------------------------------
22548    XLA_AE_LINES_PKG.ValidateCurrentLine;
22549 
22550    ------------------------------------------------------------------------------------
22551    -- 4219869 Business Flow
22552    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22553    ------------------------------------------------------------------------------------
22554    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22555 
22556    ----------------------------------------------------------------------------------
22557    -- 4219869 Business Flow
22558    -- Update journal entry status -- Need to generate this within IF <condition>
22559    ----------------------------------------------------------------------------------
22560    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22561          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22562          ,p_balance_type_code => l_balance_type_code
22563          );
22564 
22565    -------------------------------------------------------------------------------------------
22566    -- 4262811 - Generate the Accrual Reversal lines
22567    -------------------------------------------------------------------------------------------
22568    BEGIN
22569       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22570                               (g_array_event(p_event_id).array_value_num('header_index'));
22571       IF l_acc_rev_flag IS NULL THEN
22572          l_acc_rev_flag := 'N';
22573       END IF;
22574    EXCEPTION
22575       WHEN OTHERS THEN
22576          l_acc_rev_flag := 'N';
22577    END;
22578    --
22579    IF (l_acc_rev_flag = 'Y') THEN
22580 
22581        -- 4645092  ------------------------------------------------------------------------------
22582        -- To allow MPA report to determine if it should generate report process
22583        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22584        ------------------------------------------------------------------------------------------
22585 
22586        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22587        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22588    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
22589    -- call ADRs
22590    -- Bug 4922099
22591    --
22592    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22593         (NVL(l_actual_upg_option, 'N') = 'O') OR
22594         (NVL(l_enc_upg_option, 'N') = 'O')
22595       )
22596    THEN
22597    NULL;
22598    --
22599    --
22600    
22601   l_ccid := AcctDerRule_27(
22602            p_application_id           => p_application_id
22603          , p_ae_header_id             => l_ae_header_id 
22604 , p_source_5 => p_source_5
22605          , x_transaction_coa_id       => l_adr_transaction_coa_id
22606          , x_accounting_coa_id        => l_adr_accounting_coa_id
22607          , x_value_type_code          => l_adr_value_type_code
22608          , p_side                     => 'NA'
22609    );
22610 
22611    xla_ae_lines_pkg.set_ccid(
22612     p_code_combination_id          => l_ccid
22613   , p_value_type_code              => l_adr_value_type_code
22614   , p_transaction_coa_id           => l_adr_transaction_coa_id
22615   , p_accounting_coa_id            => l_adr_accounting_coa_id
22616   , p_adr_code                     => 'AP_CASH'
22617   , p_adr_type_code                => 'S'
22618   , p_component_type               => l_component_type
22619   , p_component_code               => l_component_code
22620   , p_component_type_code          => l_component_type_code
22621   , p_component_appl_id            => l_component_appl_id
22625 
22622   , p_amb_context_code             => l_amb_context_code
22623   , p_side                         => 'NA'
22624   );
22626 
22627    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
22628      p_to_segment_code         => 'GL_BALANCING'
22629    , p_segment_value           => C_CHAR
22630    , p_from_segment_code       => NULL
22631    , p_from_combination_id     => NULL
22632    , p_value_type_code         => NULL
22633    , p_transaction_coa_id      => null
22634    , p_accounting_coa_id       => null
22635    , p_flexfield_segment_code  => NULL
22636    , p_flex_value_set_id       => NULL
22637    , p_adr_code                => NULL
22638    , p_adr_type_code           => NULL
22639    , p_component_type          => l_component_type
22640    , p_component_code          => l_component_code
22641    , p_component_type_code     => l_component_type_code
22642    , p_component_appl_id       => l_component_appl_id
22643    , p_amb_context_code        => l_amb_context_code
22644    , p_entity_code             => 'AP_PAYMENTS'
22645    , p_event_class_code        => 'RECONCILED PAYMENTS'
22646    , p_side                    => 'NA'
22647    );
22648    --
22649 
22650 
22651    --
22652    --
22653    END IF;
22654 
22655        --
22656        -- Update the line information that should be overwritten
22657        --
22658        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22659                                          p_header_num   => 1);
22660        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
22661 
22662        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22663 
22664        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
22665           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22666        END IF;
22667 
22668       --
22669       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22670       --
22671       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22672           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
22673       ELSE
22674           ---------------------------------------------------------------------------------------------------
22675           -- 4262811a Switch Sign
22676           ---------------------------------------------------------------------------------------------------
22677           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
22678           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22679                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22680           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22681                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22682           -- 5132302
22683           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22684                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22685 
22686       END IF;
22687 
22688       -- 4955764
22689       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22690       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22691 
22692 
22693       XLA_AE_LINES_PKG.ValidateCurrentLine;
22694       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22695 
22696       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22697                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22698                ,p_balance_type_code => l_balance_type_code);
22699 
22700    END IF;
22701 
22702    -----------------------------------------------------------------------------------------
22703    -- 4262811 Multiperiod Accounting
22704    -----------------------------------------------------------------------------------------
22705      -- No MPA option is assigned.
22706 
22707 
22708 END IF;
22709 END IF;
22710 --
22711 
22712 --
22713 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22714    trace
22715       (p_msg      => 'END of AcctLineType_66'
22716       ,p_level    => C_LEVEL_PROCEDURE
22717       ,p_module   => l_log_module);
22718 END IF;
22719 --
22720 EXCEPTION
22721   WHEN xla_exceptions_pkg.application_exception THEN
22722       RAISE;
22723   WHEN OTHERS THEN
22724        xla_exceptions_pkg.raise_message
22725            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_66');
22726 END AcctLineType_66;
22727 --
22728 
22729 ---------------------------------------
22730 --
22731 -- PRIVATE FUNCTION
22732 --         AcctLineType_67
22733 --
22734 ---------------------------------------
22735 PROCEDURE AcctLineType_67 (
22736   p_application_id        IN NUMBER
22737  ,p_event_id              IN NUMBER
22738  ,p_calculate_acctd_flag  IN VARCHAR2
22739  ,p_calculate_g_l_flag    IN VARCHAR2
22740  ,p_actual_flag           IN OUT VARCHAR2
22741  ,p_balance_type_code     OUT VARCHAR2
22742  ,p_gain_or_loss_ref      OUT VARCHAR2
22743  
22744 --Bank Cash Account
22745  , p_source_5            IN NUMBER
22746 --Automatic Offsets Flag
22747  , p_source_35            IN VARCHAR2
22748  , p_source_35_meaning    IN VARCHAR2
22749 --Accounting Reversal Indicator
22753 --Override Accounted Amount Indicator
22750  , p_source_41            IN VARCHAR2
22751 --Distribution Link Type
22752  , p_source_43            IN VARCHAR2
22754  , p_source_68            IN VARCHAR2
22755  , p_source_68_meaning    IN VARCHAR2
22756 --Third Party Type
22757  , p_source_71            IN VARCHAR2
22758 --Invoice Distribution Tax Line Identifier
22759  , p_source_74            IN NUMBER
22760 --Invoice Distribution Summary Tax Line Identifier
22761  , p_source_76            IN NUMBER
22762 --Business Flow Accounts Payable Application Identifier
22763  , p_source_79            IN NUMBER
22764 --When to Account for Payment Option
22765  , p_source_89            IN VARCHAR2
22766 --Payment Distribution Type
22767  , p_source_90            IN VARCHAR2
22768  , p_source_90_meaning    IN VARCHAR2
22769 --Payment Distribution Amount
22770  , p_source_91            IN NUMBER
22771 --Business Flow Payment Distribution Type
22772  , p_source_92            IN VARCHAR2
22773 --Business Flow Payment Entity Code
22774  , p_source_93            IN VARCHAR2
22775 --Business Flow Payment Distribution Identifier
22776  , p_source_94            IN NUMBER
22777 --Business Flow Payment Identifier
22778  , p_source_95            IN NUMBER
22779 --Payment Distribution Identifier
22780  , p_source_96            IN NUMBER
22781 --Cleared Exchange Date
22782  , p_source_98            IN DATE
22783 --Cleared Exchange Rate
22784  , p_source_99            IN NUMBER
22785 --Cleared Exchange Rate Type
22786  , p_source_100            IN VARCHAR2
22787 --Payment Distribution (Cleared Rate) Ledger Amount
22788  , p_source_101            IN NUMBER
22789 --Payment Supplier Identifier
22790  , p_source_102            IN NUMBER
22791 --Payment Supplier Site Identifier
22792  , p_source_103            IN NUMBER
22793 --Payment Distribution Reversed Identifier
22794  , p_source_104            IN NUMBER
22795 --Pooled Bank Account Option
22796  , p_source_105            IN VARCHAR2
22797  , p_source_105_meaning    IN VARCHAR2
22798 --Payment Currency Code
22799  , p_source_106            IN VARCHAR2
22800 )
22801 IS
22802 
22803 l_component_type              VARCHAR2(80);
22804 l_component_code              VARCHAR2(30);
22805 l_component_type_code         VARCHAR2(1);
22806 l_component_appl_id           INTEGER;
22807 l_amb_context_code            VARCHAR2(30);
22808 l_entity_code                 VARCHAR2(30);
22809 l_event_class_code            VARCHAR2(30);
22810 l_ae_header_id                NUMBER;
22811 l_event_type_code             VARCHAR2(30);
22812 l_line_definition_code        VARCHAR2(30);
22813 l_line_definition_owner_code  VARCHAR2(1);
22814 --
22815 -- adr variables
22816 l_segment                     VARCHAR2(30);
22817 l_ccid                        NUMBER;
22818 l_adr_transaction_coa_id      NUMBER;
22819 l_adr_accounting_coa_id       NUMBER;
22820 l_adr_flexfield_segment_code  VARCHAR2(30);
22821 l_adr_flex_value_set_id       NUMBER;
22822 l_adr_value_type_code         VARCHAR2(30);
22823 l_adr_value_combination_id    NUMBER;
22824 l_adr_value_segment_code      VARCHAR2(30);
22825 
22826 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
22827 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
22828 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
22829 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
22830 
22831 -- 4262811 Variables ------------------------------------------------------------------------------------------
22832 l_entered_amt_idx             NUMBER;
22833 l_accted_amt_idx              NUMBER;
22834 l_acc_rev_flag                VARCHAR2(1);
22835 l_accrual_line_num            NUMBER;
22836 l_tmp_amt                     NUMBER;
22837 l_acc_rev_natural_side_code   VARCHAR2(1);
22838 
22839 l_num_entries                 NUMBER;
22840 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
22841 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
22842 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
22843 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
22844 l_recog_line_1                NUMBER;
22845 l_recog_line_2                NUMBER;
22846 
22847 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
22848 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
22849 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
22850 
22851 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22852 
22853 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
22854 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
22855 
22856 ---------------------------------------------------------------------------------------------------------------
22857 
22858 
22859 --
22860 -- bulk performance
22861 --
22862 l_balance_type_code           VARCHAR2(1);
22863 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
22864 l_log_module                  VARCHAR2(240);
22865 
22866 --
22867 -- Upgrade strategy
22868 --
22869 l_actual_upg_option           VARCHAR2(1);
22870 l_enc_upg_option           VARCHAR2(1);
22871 
22872 --
22873 BEGIN
22874 --
22875 IF g_log_enabled THEN
22876       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_67';
22877 END IF;
22878 --
22879 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22880 
22881       trace
22885 
22882          (p_msg      => 'BEGIN of AcctLineType_67'
22883          ,p_level    => C_LEVEL_PROCEDURE
22884          ,p_module   => l_log_module);
22886 END IF;
22887 --
22888 l_component_type             := 'AMB_JLT';
22889 l_component_code             := 'AP_CASH_CLEARONLY_NP';
22890 l_component_type_code        := 'S';
22891 l_component_appl_id          :=  200;
22892 l_amb_context_code           := 'DEFAULT';
22893 l_entity_code                := 'AP_PAYMENTS';
22894 l_event_class_code           := 'RECONCILED PAYMENTS';
22895 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
22896 l_line_definition_owner_code := 'S';
22897 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
22898 --
22899 l_balance_type_code          := 'A';
22900 l_segment                     := NULL;
22901 l_ccid                        := NULL;
22902 l_adr_transaction_coa_id      := NULL;
22903 l_adr_accounting_coa_id       := NULL;
22904 l_adr_flexfield_segment_code  := NULL;
22905 l_adr_flex_value_set_id       := NULL;
22906 l_adr_value_type_code         := NULL;
22907 l_adr_value_combination_id    := NULL;
22908 l_adr_value_segment_code      := NULL;
22909 
22910 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
22911 l_bflow_class_code           := '';    -- 4219869 Business Flow
22912 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
22913 l_budgetary_control_flag     := 'N';
22914 
22915 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
22916 l_bflow_applied_to_amt       := NULL; -- 5132302
22917 l_entered_amt_idx            := NULL;          -- 4262811
22918 l_accted_amt_idx             := NULL;          -- 4262811
22919 l_acc_rev_flag               := NULL;          -- 4262811
22920 l_accrual_line_num           := NULL;          -- 4262811
22921 l_tmp_amt                    := NULL;          -- 4262811
22922 --
22923  
22924 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22925     l_balance_type_code <> 'B' THEN
22926 IF NVL(p_source_89,'
22927 ') <>  'ISSUE_ISSUE' AND 
22928 (NVL(p_source_35,'
22929 ') <>  'Y' OR 
22930 NVL(p_source_35,'
22931 ') =  'Y' AND 
22932 NVL(p_source_105,'
22933 ') <>  'Y') AND 
22934 (NVL(p_source_90,'
22935 ') =  'CASH' OR 
22936 NVL(p_source_90,'
22937 ') =  'BANK CHARGE' OR 
22938 NVL(p_source_90,'
22939 ') =  'BANK ERROR')
22940  THEN 
22941 
22942    --
22943    XLA_AE_LINES_PKG.SetNewLine;
22944 
22945    p_balance_type_code          := l_balance_type_code;
22946    -- set the flag so later we will know whether the gain loss line needs to be created
22947    
22948    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22949      p_actual_flag :='A';
22950    END IF;
22951 
22952    --
22953    -- bulk performance
22954    --
22955    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22956                                       p_header_num   => 0); -- 4262811
22957    --
22958    -- set accounting line options
22959    --
22960    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22961            p_natural_side_code          => 'C'
22962          , p_gain_or_loss_flag          => 'N'
22963          , p_gl_transfer_mode_code      => 'S'
22964          , p_acct_entry_type_code       => 'A'
22965          , p_switch_side_flag           => 'Y'
22966          , p_merge_duplicate_code       => 'A'
22967          );
22968    --
22969    l_acc_rev_natural_side_code := 'D';  -- 4262811
22970    -- 
22971    --
22972    -- set accounting line type info
22973    --
22974    xla_ae_lines_pkg.SetAcctLineType
22975       (p_component_type             => l_component_type
22976       ,p_event_type_code            => l_event_type_code
22977       ,p_line_definition_owner_code => l_line_definition_owner_code
22978       ,p_line_definition_code       => l_line_definition_code
22979       ,p_accounting_line_code       => l_component_code
22980       ,p_accounting_line_type_code  => l_component_type_code
22981       ,p_accounting_line_appl_id    => l_component_appl_id
22982       ,p_amb_context_code           => l_amb_context_code
22983       ,p_entity_code                => l_entity_code
22984       ,p_event_class_code           => l_event_class_code);
22985    --
22986    -- set accounting class
22987    --
22988    xla_ae_lines_pkg.SetAcctClass(
22989            p_accounting_class_code  => 'CASH'
22990          , p_ae_header_id           => l_ae_header_id
22991          );
22992 
22993    --
22994    -- set rounding class
22995    --
22996    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22997                       'CASH';
22998 
22999    --
23000    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23001    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23002    --
23003    -- bulk performance
23004    --
23005    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23006 
23007    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23008       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23009 
23010    -- 4955764
23011    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23012       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23013 
23014    -- 4458381 Public Sector Enh
23015    
23016    --
23017    -- set accounting attributes for the line type
23018    --
23019    l_entered_amt_idx := 10;
23020    l_accted_amt_idx  := 15;
23024    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
23021    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
23022    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23023    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
23025    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
23026    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
23027    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
23028    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23029    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
23030    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
23031    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
23032    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
23033    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
23034    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23035    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
23036    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
23037    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
23038    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
23039    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
23040    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
23041    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
23042    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
23043    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
23044    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
23045    l_rec_acct_attrs.array_date_value(12)  := p_source_98;
23046    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
23047    l_rec_acct_attrs.array_num_value(13)  := p_source_99;
23048    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
23049    l_rec_acct_attrs.array_char_value(14)  := p_source_100;
23050    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
23051    l_rec_acct_attrs.array_num_value(15)  := p_source_101;
23052    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
23053    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
23054    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
23055    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
23056    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
23057    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
23058    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
23059    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
23060    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
23061    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
23062    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
23063    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
23064    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
23065    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
23066    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
23067    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
23068    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
23069    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
23070 
23071    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23072    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23073 
23074    ---------------------------------------------------------------------------------------------------------------
23075    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23076    ---------------------------------------------------------------------------------------------------------------
23077    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23078 
23079    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23080    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23081 
23082    IF xla_accounting_cache_pkg.GetValueChar
23083          (p_source_code         => 'LEDGER_CATEGORY_CODE'
23084          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23085    AND l_bflow_method_code = 'PRIOR_ENTRY'
23086 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23087    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23088          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23089        )
23090    THEN
23091          xla_ae_lines_pkg.BflowUpgEntry
23092            (p_business_method_code    => l_bflow_method_code
23093            ,p_business_class_code     => l_bflow_class_code
23094            ,p_balance_type            => l_balance_type_code);
23095    ELSE
23096       NULL;
23097 -- No business flow processing for business flow method of NONE.
23098    END IF;
23099 
23100    --
23101    -- call analytical criteria
23102    --
23103    
23104    --
23105    -- call description
23106    --
23107    -- No description or it is inherited.
23108    --
23109    -- call ADRs
23110    -- Bug 4922099
23111    --
23112    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23113         (NVL(l_actual_upg_option, 'N') = 'O') OR
23114         (NVL(l_enc_upg_option, 'N') = 'O')
23115       )
23116    THEN
23117    NULL;
23118    --
23119    --
23120    
23121   l_ccid := AcctDerRule_27(
23122            p_application_id           => p_application_id
23123          , p_ae_header_id             => l_ae_header_id 
23124 , p_source_5 => p_source_5
23125          , x_transaction_coa_id       => l_adr_transaction_coa_id
23129    );
23126          , x_accounting_coa_id        => l_adr_accounting_coa_id
23127          , x_value_type_code          => l_adr_value_type_code
23128          , p_side                     => 'NA'
23130 
23131    xla_ae_lines_pkg.set_ccid(
23132     p_code_combination_id          => l_ccid
23133   , p_value_type_code              => l_adr_value_type_code
23134   , p_transaction_coa_id           => l_adr_transaction_coa_id
23135   , p_accounting_coa_id            => l_adr_accounting_coa_id
23136   , p_adr_code                     => 'AP_CASH'
23137   , p_adr_type_code                => 'S'
23138   , p_component_type               => l_component_type
23139   , p_component_code               => l_component_code
23140   , p_component_type_code          => l_component_type_code
23141   , p_component_appl_id            => l_component_appl_id
23142   , p_amb_context_code             => l_amb_context_code
23143   , p_side                         => 'NA'
23144   );
23145 
23146 
23147    --
23148    --
23149    END IF;
23150    --
23151    -- Bug 4922099
23152    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23153           (NVL(l_enc_upg_option, 'N') = 'O')
23154         ) AND
23155         (l_bflow_method_code = 'PRIOR_ENTRY')
23156       )
23157    THEN
23158       IF
23159       --
23160       1 = 2
23161       --
23162       THEN
23163       xla_accounting_err_pkg.build_message
23164                                     (p_appli_s_name            => 'XLA'
23165                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23166                                     ,p_token_1                 => 'LINE_NUMBER'
23167                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
23168                                     ,p_token_2                 => 'LINE_TYPE_NAME'
23169                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
23170                                                                              l_component_type
23171                                                                             ,l_component_code
23172                                                                             ,l_component_type_code
23173                                                                             ,l_component_appl_id
23174                                                                             ,l_amb_context_code
23175                                                                             ,l_entity_code
23176                                                                             ,l_event_class_code
23177                                                                            )
23178                                     ,p_token_3                 => 'OWNER'
23179                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
23180                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
23181                                                                           ,p_lookup_code    => l_component_type_code
23182                                                                          )
23183                                     ,p_token_4                 => 'PRODUCT_NAME'
23184                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23185                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23186                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23187                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23188                                     ,p_ae_header_id            =>  NULL
23189                                        );
23190 
23191         IF (C_LEVEL_ERROR>= g_log_level) THEN
23192                  trace
23193                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23194                       ,p_level    => C_LEVEL_ERROR
23195                       ,p_module   => l_log_module);
23196         END IF;
23197       END IF;
23198    END IF;
23199    --
23200    --
23201    ------------------------------------------------------------------------------------------------
23202    -- 4219869 Business Flow
23203    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23204    -- Prior Entry.  Currently, the following code is always generated.
23205    ------------------------------------------------------------------------------------------------
23206    XLA_AE_LINES_PKG.ValidateCurrentLine;
23207 
23208    ------------------------------------------------------------------------------------
23209    -- 4219869 Business Flow
23210    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23211    ------------------------------------------------------------------------------------
23212    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23213 
23214    ----------------------------------------------------------------------------------
23215    -- 4219869 Business Flow
23216    -- Update journal entry status -- Need to generate this within IF <condition>
23217    ----------------------------------------------------------------------------------
23218    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23219          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23220          ,p_balance_type_code => l_balance_type_code
23221          );
23222 
23223    -------------------------------------------------------------------------------------------
23224    -- 4262811 - Generate the Accrual Reversal lines
23225    -------------------------------------------------------------------------------------------
23226    BEGIN
23227       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23231       END IF;
23228                               (g_array_event(p_event_id).array_value_num('header_index'));
23229       IF l_acc_rev_flag IS NULL THEN
23230          l_acc_rev_flag := 'N';
23232    EXCEPTION
23233       WHEN OTHERS THEN
23234          l_acc_rev_flag := 'N';
23235    END;
23236    --
23237    IF (l_acc_rev_flag = 'Y') THEN
23238 
23239        -- 4645092  ------------------------------------------------------------------------------
23240        -- To allow MPA report to determine if it should generate report process
23241        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23242        ------------------------------------------------------------------------------------------
23243 
23244        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23245        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23246    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
23247    -- call ADRs
23248    -- Bug 4922099
23249    --
23250    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23251         (NVL(l_actual_upg_option, 'N') = 'O') OR
23252         (NVL(l_enc_upg_option, 'N') = 'O')
23253       )
23254    THEN
23255    NULL;
23256    --
23257    --
23258    
23259   l_ccid := AcctDerRule_27(
23260            p_application_id           => p_application_id
23261          , p_ae_header_id             => l_ae_header_id 
23262 , p_source_5 => p_source_5
23263          , x_transaction_coa_id       => l_adr_transaction_coa_id
23264          , x_accounting_coa_id        => l_adr_accounting_coa_id
23265          , x_value_type_code          => l_adr_value_type_code
23266          , p_side                     => 'NA'
23267    );
23268 
23269    xla_ae_lines_pkg.set_ccid(
23270     p_code_combination_id          => l_ccid
23271   , p_value_type_code              => l_adr_value_type_code
23272   , p_transaction_coa_id           => l_adr_transaction_coa_id
23273   , p_accounting_coa_id            => l_adr_accounting_coa_id
23274   , p_adr_code                     => 'AP_CASH'
23275   , p_adr_type_code                => 'S'
23276   , p_component_type               => l_component_type
23277   , p_component_code               => l_component_code
23278   , p_component_type_code          => l_component_type_code
23279   , p_component_appl_id            => l_component_appl_id
23280   , p_amb_context_code             => l_amb_context_code
23281   , p_side                         => 'NA'
23282   );
23283 
23284 
23285    --
23286    --
23287    END IF;
23288 
23289        --
23290        -- Update the line information that should be overwritten
23291        --
23292        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23293                                          p_header_num   => 1);
23294        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
23295 
23296        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23297 
23298        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
23299           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23300        END IF;
23301 
23302       --
23303       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23304       --
23305       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23306           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
23307       ELSE
23308           ---------------------------------------------------------------------------------------------------
23309           -- 4262811a Switch Sign
23310           ---------------------------------------------------------------------------------------------------
23311           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
23312           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23313                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23314           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23315                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23316           -- 5132302
23317           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23318                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23319 
23320       END IF;
23321 
23322       -- 4955764
23323       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23324       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23325 
23326 
23327       XLA_AE_LINES_PKG.ValidateCurrentLine;
23328       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23329 
23330       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23331                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23332                ,p_balance_type_code => l_balance_type_code);
23333 
23334    END IF;
23335 
23336    -----------------------------------------------------------------------------------------
23337    -- 4262811 Multiperiod Accounting
23338    -----------------------------------------------------------------------------------------
23339      -- No MPA option is assigned.
23340 
23341 
23342 END IF;
23343 END IF;
23344 --
23345 
23346 --
23347 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23348    trace
23349       (p_msg      => 'END of AcctLineType_67'
23350       ,p_level    => C_LEVEL_PROCEDURE
23354 EXCEPTION
23351       ,p_module   => l_log_module);
23352 END IF;
23353 --
23355   WHEN xla_exceptions_pkg.application_exception THEN
23356       RAISE;
23357   WHEN OTHERS THEN
23358        xla_exceptions_pkg.raise_message
23359            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_67');
23360 END AcctLineType_67;
23361 --
23362 
23363 ---------------------------------------
23364 --
23365 -- PRIVATE FUNCTION
23366 --         AcctLineType_68
23367 --
23368 ---------------------------------------
23369 PROCEDURE AcctLineType_68 (
23370   p_application_id        IN NUMBER
23371  ,p_event_id              IN NUMBER
23372  ,p_calculate_acctd_flag  IN VARCHAR2
23373  ,p_calculate_g_l_flag    IN VARCHAR2
23374  ,p_actual_flag           IN OUT VARCHAR2
23375  ,p_balance_type_code     OUT VARCHAR2
23376  ,p_gain_or_loss_ref      OUT VARCHAR2
23377  
23378 --Accounting Reversal Indicator
23379  , p_source_41            IN VARCHAR2
23380 --Distribution Link Type
23381  , p_source_43            IN VARCHAR2
23382 --Override Accounted Amount Indicator
23383  , p_source_68            IN VARCHAR2
23384  , p_source_68_meaning    IN VARCHAR2
23385 --Third Party Type
23386  , p_source_71            IN VARCHAR2
23387 --Invoice Distribution Tax Line Identifier
23388  , p_source_74            IN NUMBER
23389 --Invoice Distribution Summary Tax Line Identifier
23390  , p_source_76            IN NUMBER
23391 --Business Flow Accounts Payable Application Identifier
23392  , p_source_79            IN NUMBER
23393 --When to Account for Payment Option
23394  , p_source_89            IN VARCHAR2
23395 --Payment Distribution Type
23396  , p_source_90            IN VARCHAR2
23397  , p_source_90_meaning    IN VARCHAR2
23398 --Payment Distribution Amount
23399  , p_source_91            IN NUMBER
23400 --Business Flow Payment Distribution Type
23401  , p_source_92            IN VARCHAR2
23402 --Business Flow Payment Entity Code
23403  , p_source_93            IN VARCHAR2
23404 --Business Flow Payment Distribution Identifier
23405  , p_source_94            IN NUMBER
23406 --Business Flow Payment Identifier
23407  , p_source_95            IN NUMBER
23408 --Payment Distribution Identifier
23409  , p_source_96            IN NUMBER
23410 --Payment Distribution Reversed Identifier
23411  , p_source_104            IN NUMBER
23412 --Payment Currency Code
23413  , p_source_106            IN VARCHAR2
23414 --Payment Maturity Date
23415  , p_source_107            IN DATE
23416 --Payment Distribution (Payment Rate) Ledger Amount
23417  , p_source_108            IN NUMBER
23418 )
23419 IS
23420 
23421 l_component_type              VARCHAR2(80);
23422 l_component_code              VARCHAR2(30);
23423 l_component_type_code         VARCHAR2(1);
23424 l_component_appl_id           INTEGER;
23425 l_amb_context_code            VARCHAR2(30);
23426 l_entity_code                 VARCHAR2(30);
23427 l_event_class_code            VARCHAR2(30);
23428 l_ae_header_id                NUMBER;
23429 l_event_type_code             VARCHAR2(30);
23430 l_line_definition_code        VARCHAR2(30);
23431 l_line_definition_owner_code  VARCHAR2(1);
23432 --
23433 -- adr variables
23434 l_segment                     VARCHAR2(30);
23435 l_ccid                        NUMBER;
23436 l_adr_transaction_coa_id      NUMBER;
23437 l_adr_accounting_coa_id       NUMBER;
23438 l_adr_flexfield_segment_code  VARCHAR2(30);
23439 l_adr_flex_value_set_id       NUMBER;
23440 l_adr_value_type_code         VARCHAR2(30);
23441 l_adr_value_combination_id    NUMBER;
23442 l_adr_value_segment_code      VARCHAR2(30);
23443 
23444 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
23445 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
23446 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
23447 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
23448 
23449 -- 4262811 Variables ------------------------------------------------------------------------------------------
23450 l_entered_amt_idx             NUMBER;
23451 l_accted_amt_idx              NUMBER;
23452 l_acc_rev_flag                VARCHAR2(1);
23453 l_accrual_line_num            NUMBER;
23454 l_tmp_amt                     NUMBER;
23455 l_acc_rev_natural_side_code   VARCHAR2(1);
23456 
23457 l_num_entries                 NUMBER;
23458 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
23459 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
23460 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
23461 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
23462 l_recog_line_1                NUMBER;
23463 l_recog_line_2                NUMBER;
23464 
23465 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
23466 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
23467 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
23468 
23469 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23470 
23471 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
23472 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
23473 
23474 ---------------------------------------------------------------------------------------------------------------
23475 
23476 
23477 --
23478 -- bulk performance
23479 --
23480 l_balance_type_code           VARCHAR2(1);
23484 --
23481 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
23482 l_log_module                  VARCHAR2(240);
23483 
23485 -- Upgrade strategy
23486 --
23487 l_actual_upg_option           VARCHAR2(1);
23488 l_enc_upg_option           VARCHAR2(1);
23489 
23490 --
23491 BEGIN
23492 --
23493 IF g_log_enabled THEN
23494       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_68';
23495 END IF;
23496 --
23497 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23498 
23499       trace
23500          (p_msg      => 'BEGIN of AcctLineType_68'
23501          ,p_level    => C_LEVEL_PROCEDURE
23502          ,p_module   => l_log_module);
23503 
23504 END IF;
23505 --
23506 l_component_type             := 'AMB_JLT';
23507 l_component_code             := 'AP_CASH_CLEAR_CLEAR';
23508 l_component_type_code        := 'S';
23509 l_component_appl_id          :=  200;
23510 l_amb_context_code           := 'DEFAULT';
23511 l_entity_code                := 'AP_PAYMENTS';
23512 l_event_class_code           := 'RECONCILED PAYMENTS';
23513 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
23514 l_line_definition_owner_code := 'S';
23515 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
23516 --
23517 l_balance_type_code          := 'A';
23518 l_segment                     := NULL;
23519 l_ccid                        := NULL;
23520 l_adr_transaction_coa_id      := NULL;
23521 l_adr_accounting_coa_id       := NULL;
23522 l_adr_flexfield_segment_code  := NULL;
23523 l_adr_flex_value_set_id       := NULL;
23524 l_adr_value_type_code         := NULL;
23525 l_adr_value_combination_id    := NULL;
23526 l_adr_value_segment_code      := NULL;
23527 
23528 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
23529 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
23530 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
23531 l_budgetary_control_flag     := 'N';
23532 
23533 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
23534 l_bflow_applied_to_amt       := NULL; -- 5132302
23535 l_entered_amt_idx            := NULL;          -- 4262811
23536 l_accted_amt_idx             := NULL;          -- 4262811
23537 l_acc_rev_flag               := NULL;          -- 4262811
23538 l_accrual_line_num           := NULL;          -- 4262811
23539 l_tmp_amt                    := NULL;          -- 4262811
23540 --
23541  
23542 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23543     l_balance_type_code <> 'B' THEN
23544 IF (NVL(p_source_89,'
23545 ') =  'ALWAYS_ALWAYS' OR 
23546 NVL(p_source_89,'
23547 ') =  'ALWAYS_ISSUE') AND 
23548 NVL(p_source_90,'
23549 ') =  'CASH' AND 
23550 p_source_107 IS NULL 
23551  THEN 
23552 
23553    --
23554    XLA_AE_LINES_PKG.SetNewLine;
23555 
23556    p_balance_type_code          := l_balance_type_code;
23557    -- set the flag so later we will know whether the gain loss line needs to be created
23558    
23559    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23560      p_actual_flag :='A';
23561    END IF;
23562 
23563    --
23564    -- bulk performance
23565    --
23566    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23567                                       p_header_num   => 0); -- 4262811
23568    --
23569    -- set accounting line options
23570    --
23571    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23572            p_natural_side_code          => 'D'
23573          , p_gain_or_loss_flag          => 'N'
23574          , p_gl_transfer_mode_code      => 'S'
23575          , p_acct_entry_type_code       => 'A'
23576          , p_switch_side_flag           => 'Y'
23577          , p_merge_duplicate_code       => 'A'
23578          );
23579    --
23580    l_acc_rev_natural_side_code := 'C';  -- 4262811
23581    -- 
23582    --
23583    -- set accounting line type info
23584    --
23585    xla_ae_lines_pkg.SetAcctLineType
23586       (p_component_type             => l_component_type
23587       ,p_event_type_code            => l_event_type_code
23588       ,p_line_definition_owner_code => l_line_definition_owner_code
23589       ,p_line_definition_code       => l_line_definition_code
23590       ,p_accounting_line_code       => l_component_code
23591       ,p_accounting_line_type_code  => l_component_type_code
23592       ,p_accounting_line_appl_id    => l_component_appl_id
23593       ,p_amb_context_code           => l_amb_context_code
23594       ,p_entity_code                => l_entity_code
23595       ,p_event_class_code           => l_event_class_code);
23596    --
23597    -- set accounting class
23598    --
23599    xla_ae_lines_pkg.SetAcctClass(
23600            p_accounting_class_code  => 'CASH_CLEARING'
23601          , p_ae_header_id           => l_ae_header_id
23602          );
23603 
23604    --
23605    -- set rounding class
23606    --
23607    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23608                       'CASH_CLEARING';
23609 
23610    --
23611    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23612    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23613    --
23614    -- bulk performance
23615    --
23616    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23617 
23621    -- 4955764
23618    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23619       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23620 
23622    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23623       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23624 
23625    -- 4458381 Public Sector Enh
23626    
23627    --
23628    -- set accounting attributes for the line type
23629    --
23630    l_entered_amt_idx := 10;
23631    l_accted_amt_idx  := 12;
23632    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
23633    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23634    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
23635    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
23636    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
23637    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
23638    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
23639    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23640    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
23641    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
23642    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
23643    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
23644    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
23645    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23646    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
23647    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
23648    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
23649    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
23650    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
23651    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
23652    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
23653    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
23654    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
23655    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
23656    l_rec_acct_attrs.array_num_value(12)  := p_source_108;
23657    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
23658    l_rec_acct_attrs.array_char_value(13)  := p_source_68;
23659    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
23660    l_rec_acct_attrs.array_char_value(14)  := p_source_71;
23661    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
23662    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_104);
23663    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
23664    l_rec_acct_attrs.array_char_value(16)  := p_source_43;
23665    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
23666    l_rec_acct_attrs.array_num_value(17)  := p_source_74;
23667    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
23668    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
23669    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
23670    l_rec_acct_attrs.array_num_value(19)  := p_source_76;
23671 
23672    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23673    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23674 
23675    ---------------------------------------------------------------------------------------------------------------
23676    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23677    ---------------------------------------------------------------------------------------------------------------
23678    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23679 
23680    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23681    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23682 
23683    IF xla_accounting_cache_pkg.GetValueChar
23684          (p_source_code         => 'LEDGER_CATEGORY_CODE'
23685          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23686    AND l_bflow_method_code = 'PRIOR_ENTRY'
23687 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23688    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23689          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23690        )
23691    THEN
23692          xla_ae_lines_pkg.BflowUpgEntry
23693            (p_business_method_code    => l_bflow_method_code
23694            ,p_business_class_code     => l_bflow_class_code
23695            ,p_balance_type            => l_balance_type_code);
23696    ELSE
23697       NULL;
23698 XLA_AE_LINES_PKG.business_flow_validation(
23699                                 p_business_method_code     => l_bflow_method_code
23700                                ,p_business_class_code      => l_bflow_class_code
23701                                ,p_inherit_description_flag => l_inherit_desc_flag);
23702    END IF;
23703 
23704    --
23705    -- call analytical criteria
23706    --
23707    -- Inherited Analytical Criteria for business flow method of Prior Entry.
23708    --
23709    -- call description
23710    --
23711    -- No description or it is inherited.
23712    --
23713    -- call ADRs
23714    -- Bug 4922099
23715    --
23716    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23717         (NVL(l_actual_upg_option, 'N') = 'O') OR
23718         (NVL(l_enc_upg_option, 'N') = 'O')
23719       )
23720    THEN
23721    NULL;
23722    --
23723    --
23724    
23725    --
23726    --
23727    END IF;
23728    --
23732         ) AND
23729    -- Bug 4922099
23730    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23731           (NVL(l_enc_upg_option, 'N') = 'O')
23733         (l_bflow_method_code = 'PRIOR_ENTRY')
23734       )
23735    THEN
23736       IF
23737       --
23738       1 = 1
23739       --
23740       THEN
23741       xla_accounting_err_pkg.build_message
23742                                     (p_appli_s_name            => 'XLA'
23743                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23744                                     ,p_token_1                 => 'LINE_NUMBER'
23745                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
23746                                     ,p_token_2                 => 'LINE_TYPE_NAME'
23747                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
23748                                                                              l_component_type
23749                                                                             ,l_component_code
23750                                                                             ,l_component_type_code
23751                                                                             ,l_component_appl_id
23752                                                                             ,l_amb_context_code
23753                                                                             ,l_entity_code
23754                                                                             ,l_event_class_code
23755                                                                            )
23756                                     ,p_token_3                 => 'OWNER'
23757                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
23758                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
23759                                                                           ,p_lookup_code    => l_component_type_code
23760                                                                          )
23761                                     ,p_token_4                 => 'PRODUCT_NAME'
23762                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23763                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23764                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23765                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23766                                     ,p_ae_header_id            =>  NULL
23767                                        );
23768 
23769         IF (C_LEVEL_ERROR>= g_log_level) THEN
23770                  trace
23771                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23772                       ,p_level    => C_LEVEL_ERROR
23773                       ,p_module   => l_log_module);
23774         END IF;
23775       END IF;
23776    END IF;
23777    --
23778    --
23779    ------------------------------------------------------------------------------------------------
23780    -- 4219869 Business Flow
23781    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23782    -- Prior Entry.  Currently, the following code is always generated.
23783    ------------------------------------------------------------------------------------------------
23784    -- No ValidateCurrentLine for business flow method of Prior Entry
23785 
23786    ------------------------------------------------------------------------------------
23787    -- 4219869 Business Flow
23788    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23789    ------------------------------------------------------------------------------------
23790    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23791 
23792    ----------------------------------------------------------------------------------
23793    -- 4219869 Business Flow
23794    -- Update journal entry status -- Need to generate this within IF <condition>
23795    ----------------------------------------------------------------------------------
23796    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23797          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23798          ,p_balance_type_code => l_balance_type_code
23799          );
23800 
23801    -------------------------------------------------------------------------------------------
23802    -- 4262811 - Generate the Accrual Reversal lines
23803    -------------------------------------------------------------------------------------------
23804    BEGIN
23805       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23806                               (g_array_event(p_event_id).array_value_num('header_index'));
23807       IF l_acc_rev_flag IS NULL THEN
23808          l_acc_rev_flag := 'N';
23809       END IF;
23810    EXCEPTION
23811       WHEN OTHERS THEN
23812          l_acc_rev_flag := 'N';
23813    END;
23814    --
23815    IF (l_acc_rev_flag = 'Y') THEN
23816 
23817        -- 4645092  ------------------------------------------------------------------------------
23818        -- To allow MPA report to determine if it should generate report process
23819        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23820        ------------------------------------------------------------------------------------------
23821 
23822        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23823        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23824    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
23825    -- call ADRs
23826    -- Bug 4922099
23827    --
23828    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23832    THEN
23829         (NVL(l_actual_upg_option, 'N') = 'O') OR
23830         (NVL(l_enc_upg_option, 'N') = 'O')
23831       )
23833    NULL;
23834    --
23835    --
23836    
23837    --
23838    --
23839    END IF;
23840 
23841        --
23842        -- Update the line information that should be overwritten
23843        --
23844        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23845                                          p_header_num   => 1);
23846        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
23847 
23848        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23849 
23850        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
23851           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23852        END IF;
23853 
23854       --
23855       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23856       --
23857       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23858           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
23859       ELSE
23860           ---------------------------------------------------------------------------------------------------
23861           -- 4262811a Switch Sign
23862           ---------------------------------------------------------------------------------------------------
23863           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
23864           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23865                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23866           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23867                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23868           -- 5132302
23869           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23870                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23871 
23872       END IF;
23873 
23874       -- 4955764
23875       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23876       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23877 
23878 
23879       XLA_AE_LINES_PKG.ValidateCurrentLine;
23880       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23881 
23882       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23883                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23884                ,p_balance_type_code => l_balance_type_code);
23885 
23886    END IF;
23887 
23888    -----------------------------------------------------------------------------------------
23889    -- 4262811 Multiperiod Accounting
23890    -----------------------------------------------------------------------------------------
23891      -- No MPA option is assigned.
23892 
23893 
23894 END IF;
23895 END IF;
23896 --
23897 
23898 --
23899 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23900    trace
23901       (p_msg      => 'END of AcctLineType_68'
23902       ,p_level    => C_LEVEL_PROCEDURE
23903       ,p_module   => l_log_module);
23904 END IF;
23905 --
23906 EXCEPTION
23907   WHEN xla_exceptions_pkg.application_exception THEN
23908       RAISE;
23909   WHEN OTHERS THEN
23910        xla_exceptions_pkg.raise_message
23911            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_68');
23912 END AcctLineType_68;
23913 --
23914 
23915 ---------------------------------------
23916 --
23917 -- PRIVATE FUNCTION
23918 --         AcctLineType_69
23919 --
23920 ---------------------------------------
23921 PROCEDURE AcctLineType_69 (
23922   p_application_id        IN NUMBER
23923  ,p_event_id              IN NUMBER
23924  ,p_calculate_acctd_flag  IN VARCHAR2
23925  ,p_calculate_g_l_flag    IN VARCHAR2
23926  ,p_actual_flag           IN OUT VARCHAR2
23927  ,p_balance_type_code     OUT VARCHAR2
23928  ,p_gain_or_loss_ref      OUT VARCHAR2
23929  
23930 --Accounting Reversal Indicator
23931  , p_source_41            IN VARCHAR2
23932 --Distribution Link Type
23933  , p_source_43            IN VARCHAR2
23934 --Override Accounted Amount Indicator
23935  , p_source_68            IN VARCHAR2
23936  , p_source_68_meaning    IN VARCHAR2
23937 --Third Party Type
23938  , p_source_71            IN VARCHAR2
23939 --Invoice Distribution Tax Line Identifier
23940  , p_source_74            IN NUMBER
23941 --Invoice Distribution Summary Tax Line Identifier
23942  , p_source_76            IN NUMBER
23943 --Business Flow Accounts Payable Application Identifier
23944  , p_source_79            IN NUMBER
23945 --When to Account for Payment Option
23946  , p_source_89            IN VARCHAR2
23947 --Payment Distribution Type
23948  , p_source_90            IN VARCHAR2
23949  , p_source_90_meaning    IN VARCHAR2
23950 --Payment Distribution Amount
23951  , p_source_91            IN NUMBER
23952 --Business Flow Payment Distribution Type
23953  , p_source_92            IN VARCHAR2
23954 --Business Flow Payment Entity Code
23955  , p_source_93            IN VARCHAR2
23956 --Business Flow Payment Distribution Identifier
23957  , p_source_94            IN NUMBER
23958 --Business Flow Payment Identifier
23959  , p_source_95            IN NUMBER
23960 --Payment Distribution Identifier
23961  , p_source_96            IN NUMBER
23965  , p_source_106            IN VARCHAR2
23962 --Payment Distribution Reversed Identifier
23963  , p_source_104            IN NUMBER
23964 --Payment Currency Code
23966 --Payment Maturity Date
23967  , p_source_107            IN DATE
23968 --Payment Distribution (Invoice Rate) Ledger Amount
23969  , p_source_109            IN NUMBER
23970 )
23971 IS
23972 
23973 l_component_type              VARCHAR2(80);
23974 l_component_code              VARCHAR2(30);
23975 l_component_type_code         VARCHAR2(1);
23976 l_component_appl_id           INTEGER;
23977 l_amb_context_code            VARCHAR2(30);
23978 l_entity_code                 VARCHAR2(30);
23979 l_event_class_code            VARCHAR2(30);
23980 l_ae_header_id                NUMBER;
23981 l_event_type_code             VARCHAR2(30);
23982 l_line_definition_code        VARCHAR2(30);
23983 l_line_definition_owner_code  VARCHAR2(1);
23984 --
23985 -- adr variables
23986 l_segment                     VARCHAR2(30);
23987 l_ccid                        NUMBER;
23988 l_adr_transaction_coa_id      NUMBER;
23989 l_adr_accounting_coa_id       NUMBER;
23990 l_adr_flexfield_segment_code  VARCHAR2(30);
23991 l_adr_flex_value_set_id       NUMBER;
23992 l_adr_value_type_code         VARCHAR2(30);
23993 l_adr_value_combination_id    NUMBER;
23994 l_adr_value_segment_code      VARCHAR2(30);
23995 
23996 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
23997 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
23998 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
23999 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
24000 
24001 -- 4262811 Variables ------------------------------------------------------------------------------------------
24002 l_entered_amt_idx             NUMBER;
24003 l_accted_amt_idx              NUMBER;
24004 l_acc_rev_flag                VARCHAR2(1);
24005 l_accrual_line_num            NUMBER;
24006 l_tmp_amt                     NUMBER;
24007 l_acc_rev_natural_side_code   VARCHAR2(1);
24008 
24009 l_num_entries                 NUMBER;
24010 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
24011 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
24012 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
24013 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
24014 l_recog_line_1                NUMBER;
24015 l_recog_line_2                NUMBER;
24016 
24017 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
24018 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
24019 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
24020 
24021 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24022 
24023 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
24024 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
24025 
24026 ---------------------------------------------------------------------------------------------------------------
24027 
24028 
24029 --
24030 -- bulk performance
24031 --
24032 l_balance_type_code           VARCHAR2(1);
24033 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
24034 l_log_module                  VARCHAR2(240);
24035 
24036 --
24037 -- Upgrade strategy
24038 --
24039 l_actual_upg_option           VARCHAR2(1);
24040 l_enc_upg_option           VARCHAR2(1);
24041 
24042 --
24043 BEGIN
24044 --
24045 IF g_log_enabled THEN
24046       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_69';
24047 END IF;
24048 --
24049 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24050 
24051       trace
24052          (p_msg      => 'BEGIN of AcctLineType_69'
24053          ,p_level    => C_LEVEL_PROCEDURE
24054          ,p_module   => l_log_module);
24055 
24056 END IF;
24057 --
24058 l_component_type             := 'AMB_JLT';
24059 l_component_code             := 'AP_CASH_CLEAR_CLEAR_INVXRATE';
24060 l_component_type_code        := 'S';
24061 l_component_appl_id          :=  200;
24062 l_amb_context_code           := 'DEFAULT';
24063 l_entity_code                := 'AP_PAYMENTS';
24064 l_event_class_code           := 'RECONCILED PAYMENTS';
24065 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
24066 l_line_definition_owner_code := 'S';
24067 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
24068 --
24069 l_balance_type_code          := 'A';
24070 l_segment                     := NULL;
24071 l_ccid                        := NULL;
24072 l_adr_transaction_coa_id      := NULL;
24073 l_adr_accounting_coa_id       := NULL;
24074 l_adr_flexfield_segment_code  := NULL;
24075 l_adr_flex_value_set_id       := NULL;
24076 l_adr_value_type_code         := NULL;
24077 l_adr_value_combination_id    := NULL;
24078 l_adr_value_segment_code      := NULL;
24079 
24080 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
24081 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
24082 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
24083 l_budgetary_control_flag     := 'N';
24084 
24085 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
24086 l_bflow_applied_to_amt       := NULL; -- 5132302
24087 l_entered_amt_idx            := NULL;          -- 4262811
24088 l_accted_amt_idx             := NULL;          -- 4262811
24089 l_acc_rev_flag               := NULL;          -- 4262811
24090 l_accrual_line_num           := NULL;          -- 4262811
24091 l_tmp_amt                    := NULL;          -- 4262811
24092 --
24093  
24097 ') =  'ALWAYS_CLEAR' AND 
24094 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24095     l_balance_type_code <> 'B' THEN
24096 IF NVL(p_source_89,'
24098 NVL(p_source_90,'
24099 ') =  'CASH' AND 
24100 p_source_107 IS NULL 
24101  THEN 
24102 
24103    --
24104    XLA_AE_LINES_PKG.SetNewLine;
24105 
24106    p_balance_type_code          := l_balance_type_code;
24107    -- set the flag so later we will know whether the gain loss line needs to be created
24108    
24109    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24110      p_actual_flag :='A';
24111    END IF;
24112 
24113    --
24114    -- bulk performance
24115    --
24116    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24117                                       p_header_num   => 0); -- 4262811
24118    --
24119    -- set accounting line options
24120    --
24121    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24122            p_natural_side_code          => 'D'
24123          , p_gain_or_loss_flag          => 'N'
24124          , p_gl_transfer_mode_code      => 'S'
24125          , p_acct_entry_type_code       => 'A'
24126          , p_switch_side_flag           => 'Y'
24127          , p_merge_duplicate_code       => 'A'
24128          );
24129    --
24130    l_acc_rev_natural_side_code := 'C';  -- 4262811
24131    -- 
24132    --
24133    -- set accounting line type info
24134    --
24135    xla_ae_lines_pkg.SetAcctLineType
24136       (p_component_type             => l_component_type
24137       ,p_event_type_code            => l_event_type_code
24138       ,p_line_definition_owner_code => l_line_definition_owner_code
24139       ,p_line_definition_code       => l_line_definition_code
24140       ,p_accounting_line_code       => l_component_code
24141       ,p_accounting_line_type_code  => l_component_type_code
24142       ,p_accounting_line_appl_id    => l_component_appl_id
24143       ,p_amb_context_code           => l_amb_context_code
24144       ,p_entity_code                => l_entity_code
24145       ,p_event_class_code           => l_event_class_code);
24146    --
24147    -- set accounting class
24148    --
24149    xla_ae_lines_pkg.SetAcctClass(
24150            p_accounting_class_code  => 'CASH_CLEARING'
24151          , p_ae_header_id           => l_ae_header_id
24152          );
24153 
24154    --
24155    -- set rounding class
24156    --
24157    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24158                       'CASH_CLEARING';
24159 
24160    --
24161    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24162    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24163    --
24164    -- bulk performance
24165    --
24166    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24167 
24168    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24169       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24170 
24171    -- 4955764
24172    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24173       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24174 
24175    -- 4458381 Public Sector Enh
24176    
24177    --
24178    -- set accounting attributes for the line type
24179    --
24180    l_entered_amt_idx := 10;
24181    l_accted_amt_idx  := 12;
24182    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
24183    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24184    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
24185    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
24186    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
24187    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
24188    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
24189    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24190    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
24191    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
24192    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
24193    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
24194    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
24195    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24196    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
24197    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
24198    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
24199    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
24200    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
24201    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
24202    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
24203    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
24204    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
24205    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
24206    l_rec_acct_attrs.array_num_value(12)  := p_source_109;
24207    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
24208    l_rec_acct_attrs.array_char_value(13)  := p_source_68;
24209    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
24210    l_rec_acct_attrs.array_char_value(14)  := p_source_71;
24211    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
24212    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_104);
24216    l_rec_acct_attrs.array_num_value(17)  := p_source_74;
24213    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
24214    l_rec_acct_attrs.array_char_value(16)  := p_source_43;
24215    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
24217    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
24218    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
24219    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
24220    l_rec_acct_attrs.array_num_value(19)  := p_source_76;
24221 
24222    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24223    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24224 
24225    ---------------------------------------------------------------------------------------------------------------
24226    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24227    ---------------------------------------------------------------------------------------------------------------
24228    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24229 
24230    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24231    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24232 
24233    IF xla_accounting_cache_pkg.GetValueChar
24234          (p_source_code         => 'LEDGER_CATEGORY_CODE'
24235          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24236    AND l_bflow_method_code = 'PRIOR_ENTRY'
24237 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24238    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24239          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24240        )
24241    THEN
24242          xla_ae_lines_pkg.BflowUpgEntry
24243            (p_business_method_code    => l_bflow_method_code
24244            ,p_business_class_code     => l_bflow_class_code
24245            ,p_balance_type            => l_balance_type_code);
24246    ELSE
24247       NULL;
24248 XLA_AE_LINES_PKG.business_flow_validation(
24249                                 p_business_method_code     => l_bflow_method_code
24250                                ,p_business_class_code      => l_bflow_class_code
24251                                ,p_inherit_description_flag => l_inherit_desc_flag);
24252    END IF;
24253 
24254    --
24255    -- call analytical criteria
24256    --
24257    -- Inherited Analytical Criteria for business flow method of Prior Entry.
24258    --
24259    -- call description
24260    --
24261    -- No description or it is inherited.
24262    --
24263    -- call ADRs
24264    -- Bug 4922099
24265    --
24266    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24267         (NVL(l_actual_upg_option, 'N') = 'O') OR
24268         (NVL(l_enc_upg_option, 'N') = 'O')
24269       )
24270    THEN
24271    NULL;
24272    --
24273    --
24274    
24275    --
24276    --
24277    END IF;
24278    --
24279    -- Bug 4922099
24280    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24281           (NVL(l_enc_upg_option, 'N') = 'O')
24282         ) AND
24283         (l_bflow_method_code = 'PRIOR_ENTRY')
24284       )
24285    THEN
24286       IF
24287       --
24288       1 = 1
24289       --
24290       THEN
24291       xla_accounting_err_pkg.build_message
24292                                     (p_appli_s_name            => 'XLA'
24293                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24294                                     ,p_token_1                 => 'LINE_NUMBER'
24295                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
24296                                     ,p_token_2                 => 'LINE_TYPE_NAME'
24297                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
24298                                                                              l_component_type
24299                                                                             ,l_component_code
24300                                                                             ,l_component_type_code
24301                                                                             ,l_component_appl_id
24302                                                                             ,l_amb_context_code
24303                                                                             ,l_entity_code
24304                                                                             ,l_event_class_code
24305                                                                            )
24306                                     ,p_token_3                 => 'OWNER'
24307                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
24308                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
24309                                                                           ,p_lookup_code    => l_component_type_code
24310                                                                          )
24311                                     ,p_token_4                 => 'PRODUCT_NAME'
24312                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24313                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24314                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24315                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24319         IF (C_LEVEL_ERROR>= g_log_level) THEN
24316                                     ,p_ae_header_id            =>  NULL
24317                                        );
24318 
24320                  trace
24321                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24322                       ,p_level    => C_LEVEL_ERROR
24323                       ,p_module   => l_log_module);
24324         END IF;
24325       END IF;
24326    END IF;
24327    --
24328    --
24329    ------------------------------------------------------------------------------------------------
24330    -- 4219869 Business Flow
24331    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24332    -- Prior Entry.  Currently, the following code is always generated.
24333    ------------------------------------------------------------------------------------------------
24334    -- No ValidateCurrentLine for business flow method of Prior Entry
24335 
24336    ------------------------------------------------------------------------------------
24337    -- 4219869 Business Flow
24338    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24339    ------------------------------------------------------------------------------------
24340    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24341 
24342    ----------------------------------------------------------------------------------
24343    -- 4219869 Business Flow
24344    -- Update journal entry status -- Need to generate this within IF <condition>
24345    ----------------------------------------------------------------------------------
24346    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24347          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24348          ,p_balance_type_code => l_balance_type_code
24349          );
24350 
24351    -------------------------------------------------------------------------------------------
24352    -- 4262811 - Generate the Accrual Reversal lines
24353    -------------------------------------------------------------------------------------------
24354    BEGIN
24355       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24356                               (g_array_event(p_event_id).array_value_num('header_index'));
24357       IF l_acc_rev_flag IS NULL THEN
24358          l_acc_rev_flag := 'N';
24359       END IF;
24360    EXCEPTION
24361       WHEN OTHERS THEN
24362          l_acc_rev_flag := 'N';
24363    END;
24364    --
24365    IF (l_acc_rev_flag = 'Y') THEN
24366 
24367        -- 4645092  ------------------------------------------------------------------------------
24368        -- To allow MPA report to determine if it should generate report process
24369        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24370        ------------------------------------------------------------------------------------------
24371 
24372        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24373        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24374    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
24375    -- call ADRs
24376    -- Bug 4922099
24377    --
24378    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24379         (NVL(l_actual_upg_option, 'N') = 'O') OR
24380         (NVL(l_enc_upg_option, 'N') = 'O')
24381       )
24382    THEN
24383    NULL;
24384    --
24385    --
24386    
24387    --
24388    --
24389    END IF;
24390 
24391        --
24392        -- Update the line information that should be overwritten
24393        --
24394        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24395                                          p_header_num   => 1);
24396        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
24397 
24398        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24399 
24400        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
24401           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24402        END IF;
24403 
24404       --
24405       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24406       --
24407       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24408           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
24409       ELSE
24410           ---------------------------------------------------------------------------------------------------
24411           -- 4262811a Switch Sign
24412           ---------------------------------------------------------------------------------------------------
24413           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
24414           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24415                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24416           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24417                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24418           -- 5132302
24419           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24420                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24421 
24422       END IF;
24423 
24424       -- 4955764
24428 
24425       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24426       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24427 
24429       XLA_AE_LINES_PKG.ValidateCurrentLine;
24430       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24431 
24432       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24433                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24434                ,p_balance_type_code => l_balance_type_code);
24435 
24436    END IF;
24437 
24438    -----------------------------------------------------------------------------------------
24439    -- 4262811 Multiperiod Accounting
24440    -----------------------------------------------------------------------------------------
24441      -- No MPA option is assigned.
24442 
24443 
24444 END IF;
24445 END IF;
24446 --
24447 
24448 --
24449 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24450    trace
24451       (p_msg      => 'END of AcctLineType_69'
24452       ,p_level    => C_LEVEL_PROCEDURE
24453       ,p_module   => l_log_module);
24454 END IF;
24455 --
24456 EXCEPTION
24457   WHEN xla_exceptions_pkg.application_exception THEN
24458       RAISE;
24459   WHEN OTHERS THEN
24460        xla_exceptions_pkg.raise_message
24461            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_69');
24462 END AcctLineType_69;
24463 --
24464 
24465 ---------------------------------------
24466 --
24467 -- PRIVATE FUNCTION
24468 --         AcctLineType_70
24469 --
24470 ---------------------------------------
24471 PROCEDURE AcctLineType_70 (
24472   p_application_id        IN NUMBER
24473  ,p_event_id              IN NUMBER
24474  ,p_calculate_acctd_flag  IN VARCHAR2
24475  ,p_calculate_g_l_flag    IN VARCHAR2
24476  ,p_actual_flag           IN OUT VARCHAR2
24477  ,p_balance_type_code     OUT VARCHAR2
24478  ,p_gain_or_loss_ref      OUT VARCHAR2
24479  
24480 --Automatic Offsets Value
24481  , p_source_3            IN VARCHAR2
24482  , p_source_3_meaning    IN VARCHAR2
24483 --Bank Cash Clearing Account
24484  , p_source_23            IN NUMBER
24485 --Accounting Reversal Indicator
24486  , p_source_41            IN VARCHAR2
24487 --Distribution Link Type
24488  , p_source_43            IN VARCHAR2
24489 --Override Accounted Amount Indicator
24490  , p_source_68            IN VARCHAR2
24491  , p_source_68_meaning    IN VARCHAR2
24492 --Third Party Type
24493  , p_source_71            IN VARCHAR2
24494 --Business Flow Accounts Payable Application Identifier
24495  , p_source_79            IN NUMBER
24496 --When to Account for Payment Option
24497  , p_source_89            IN VARCHAR2
24498 --Payment Distribution Type
24499  , p_source_90            IN VARCHAR2
24500  , p_source_90_meaning    IN VARCHAR2
24501 --Payment Distribution Amount
24502  , p_source_91            IN NUMBER
24503 --Business Flow Payment Distribution Type
24504  , p_source_92            IN VARCHAR2
24505 --Business Flow Payment Entity Code
24506  , p_source_93            IN VARCHAR2
24507 --Business Flow Payment Distribution Identifier
24508  , p_source_94            IN NUMBER
24509 --Business Flow Payment Identifier
24510  , p_source_95            IN NUMBER
24511 --Payment Distribution Identifier
24512  , p_source_96            IN NUMBER
24513 --Payment Supplier Identifier
24514  , p_source_102            IN NUMBER
24515 --Payment Supplier Site Identifier
24516  , p_source_103            IN NUMBER
24517 --Payment Distribution Reversed Identifier
24518  , p_source_104            IN NUMBER
24519 --Pooled Bank Account Option
24520  , p_source_105            IN VARCHAR2
24521  , p_source_105_meaning    IN VARCHAR2
24522 --Payment Currency Code
24523  , p_source_106            IN VARCHAR2
24524 --Payment Maturity Date
24525  , p_source_107            IN DATE
24526 --Payment Distribution (Invoice Rate) Ledger Amount
24527  , p_source_109            IN NUMBER
24528 --Payment Exchange Date
24529  , p_source_110            IN DATE
24530 --Payment Exchange Rate
24531  , p_source_111            IN NUMBER
24532 --Payment Exchange Rate Type
24533  , p_source_112            IN VARCHAR2
24534 )
24535 IS
24536 
24537 l_component_type              VARCHAR2(80);
24538 l_component_code              VARCHAR2(30);
24539 l_component_type_code         VARCHAR2(1);
24540 l_component_appl_id           INTEGER;
24541 l_amb_context_code            VARCHAR2(30);
24542 l_entity_code                 VARCHAR2(30);
24543 l_event_class_code            VARCHAR2(30);
24544 l_ae_header_id                NUMBER;
24545 l_event_type_code             VARCHAR2(30);
24546 l_line_definition_code        VARCHAR2(30);
24547 l_line_definition_owner_code  VARCHAR2(1);
24548 --
24549 -- adr variables
24550 l_segment                     VARCHAR2(30);
24551 l_ccid                        NUMBER;
24552 l_adr_transaction_coa_id      NUMBER;
24553 l_adr_accounting_coa_id       NUMBER;
24554 l_adr_flexfield_segment_code  VARCHAR2(30);
24555 l_adr_flex_value_set_id       NUMBER;
24556 l_adr_value_type_code         VARCHAR2(30);
24557 l_adr_value_combination_id    NUMBER;
24558 l_adr_value_segment_code      VARCHAR2(30);
24559 
24560 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
24561 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
24562 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
24563 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
24564 
24565 -- 4262811 Variables ------------------------------------------------------------------------------------------
24569 l_accrual_line_num            NUMBER;
24566 l_entered_amt_idx             NUMBER;
24567 l_accted_amt_idx              NUMBER;
24568 l_acc_rev_flag                VARCHAR2(1);
24570 l_tmp_amt                     NUMBER;
24571 l_acc_rev_natural_side_code   VARCHAR2(1);
24572 
24573 l_num_entries                 NUMBER;
24574 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
24575 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
24576 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
24577 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
24578 l_recog_line_1                NUMBER;
24579 l_recog_line_2                NUMBER;
24580 
24581 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
24582 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
24583 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
24584 
24585 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24586 
24587 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
24588 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
24589 
24590 ---------------------------------------------------------------------------------------------------------------
24591 
24592 
24593 --
24594 -- bulk performance
24595 --
24596 l_balance_type_code           VARCHAR2(1);
24597 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
24598 l_log_module                  VARCHAR2(240);
24599 
24600 --
24601 -- Upgrade strategy
24602 --
24603 l_actual_upg_option           VARCHAR2(1);
24604 l_enc_upg_option           VARCHAR2(1);
24605 
24606 --
24607 BEGIN
24608 --
24609 IF g_log_enabled THEN
24610       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_70';
24611 END IF;
24612 --
24613 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24614 
24615       trace
24616          (p_msg      => 'BEGIN of AcctLineType_70'
24617          ,p_level    => C_LEVEL_PROCEDURE
24618          ,p_module   => l_log_module);
24619 
24620 END IF;
24621 --
24622 l_component_type             := 'AMB_JLT';
24623 l_component_code             := 'AP_CASH_CLEAR_MAT_AS_INVXRATE';
24624 l_component_type_code        := 'S';
24625 l_component_appl_id          :=  200;
24626 l_amb_context_code           := 'DEFAULT';
24627 l_entity_code                := 'AP_PAYMENTS';
24628 l_event_class_code           := 'FUTURE DATED PAYMENTS';
24629 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
24630 l_line_definition_owner_code := 'S';
24631 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
24632 --
24633 l_balance_type_code          := 'A';
24634 l_segment                     := NULL;
24635 l_ccid                        := NULL;
24636 l_adr_transaction_coa_id      := NULL;
24637 l_adr_accounting_coa_id       := NULL;
24638 l_adr_flexfield_segment_code  := NULL;
24639 l_adr_flex_value_set_id       := NULL;
24640 l_adr_value_type_code         := NULL;
24641 l_adr_value_combination_id    := NULL;
24642 l_adr_value_segment_code      := NULL;
24643 
24644 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
24645 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
24646 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
24647 l_budgetary_control_flag     := 'N';
24648 
24649 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
24650 l_bflow_applied_to_amt       := NULL; -- 5132302
24651 l_entered_amt_idx            := NULL;          -- 4262811
24652 l_accted_amt_idx             := NULL;          -- 4262811
24653 l_acc_rev_flag               := NULL;          -- 4262811
24654 l_accrual_line_num           := NULL;          -- 4262811
24655 l_tmp_amt                    := NULL;          -- 4262811
24656 --
24657  
24658 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24659     l_balance_type_code <> 'B' THEN
24660 IF NVL(p_source_89,'
24661 ') =  'ALWAYS_CLEAR' AND 
24662 (NVL(p_source_105,'
24663 ') =  'Y' AND 
24664 NVL(p_source_3,'
24665 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
24666 p_source_107 IS NOT NULL AND 
24667 NVL(p_source_90,'
24668 ') =  'CASH'
24669  THEN 
24670 
24671    --
24672    XLA_AE_LINES_PKG.SetNewLine;
24673 
24674    p_balance_type_code          := l_balance_type_code;
24675    -- set the flag so later we will know whether the gain loss line needs to be created
24676    
24677    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24678      p_actual_flag :='A';
24679    END IF;
24680 
24681    --
24682    -- bulk performance
24683    --
24684    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24685                                       p_header_num   => 0); -- 4262811
24686    --
24687    -- set accounting line options
24688    --
24689    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24690            p_natural_side_code          => 'C'
24691          , p_gain_or_loss_flag          => 'N'
24692          , p_gl_transfer_mode_code      => 'S'
24693          , p_acct_entry_type_code       => 'A'
24694          , p_switch_side_flag           => 'Y'
24695          , p_merge_duplicate_code       => 'A'
24696          );
24697    --
24698    l_acc_rev_natural_side_code := 'D';  -- 4262811
24699    -- 
24700    --
24701    -- set accounting line type info
24702    --
24703    xla_ae_lines_pkg.SetAcctLineType
24704       (p_component_type             => l_component_type
24705       ,p_event_type_code            => l_event_type_code
24709       ,p_accounting_line_type_code  => l_component_type_code
24706       ,p_line_definition_owner_code => l_line_definition_owner_code
24707       ,p_line_definition_code       => l_line_definition_code
24708       ,p_accounting_line_code       => l_component_code
24710       ,p_accounting_line_appl_id    => l_component_appl_id
24711       ,p_amb_context_code           => l_amb_context_code
24712       ,p_entity_code                => l_entity_code
24713       ,p_event_class_code           => l_event_class_code);
24714    --
24715    -- set accounting class
24716    --
24717    xla_ae_lines_pkg.SetAcctClass(
24718            p_accounting_class_code  => 'CASH_CLEARING'
24719          , p_ae_header_id           => l_ae_header_id
24720          );
24721 
24722    --
24723    -- set rounding class
24724    --
24725    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24726                       'CASH_CLEARING';
24727 
24728    --
24729    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24730    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24731    --
24732    -- bulk performance
24733    --
24734    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24735 
24736    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24737       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24738 
24739    -- 4955764
24740    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24741       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24742 
24743    -- 4458381 Public Sector Enh
24744    
24745    --
24746    -- set accounting attributes for the line type
24747    --
24748    l_entered_amt_idx := 9;
24749    l_accted_amt_idx  := 14;
24750    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
24751    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24752    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
24753    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
24754    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
24755    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24756    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
24757    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
24758    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
24759    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
24760    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
24761    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24762    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
24763    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
24764    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
24765    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
24766    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
24767    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
24768    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
24769    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
24770    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
24771    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
24772    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
24773    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
24774    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
24775    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
24776    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
24777    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
24778    l_rec_acct_attrs.array_num_value(14)  := p_source_109;
24779    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
24780    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
24781    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
24782    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
24783    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
24784    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
24785    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
24786    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
24787    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
24788    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
24789    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
24790    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
24791 
24792    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24793    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24794 
24795    ---------------------------------------------------------------------------------------------------------------
24796    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24797    ---------------------------------------------------------------------------------------------------------------
24798    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24799 
24800    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24801    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24802 
24803    IF xla_accounting_cache_pkg.GetValueChar
24804          (p_source_code         => 'LEDGER_CATEGORY_CODE'
24805          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24806    AND l_bflow_method_code = 'PRIOR_ENTRY'
24810        )
24807 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24808    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24809          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24811    THEN
24812          xla_ae_lines_pkg.BflowUpgEntry
24813            (p_business_method_code    => l_bflow_method_code
24814            ,p_business_class_code     => l_bflow_class_code
24815            ,p_balance_type            => l_balance_type_code);
24816    ELSE
24817       NULL;
24818 XLA_AE_LINES_PKG.business_flow_validation(
24819                                 p_business_method_code     => l_bflow_method_code
24820                                ,p_business_class_code      => l_bflow_class_code
24821                                ,p_inherit_description_flag => l_inherit_desc_flag);
24822    END IF;
24823 
24824    --
24825    -- call analytical criteria
24826    --
24827    
24828    --
24829    -- call description
24830    --
24831    -- No description or it is inherited.
24832    --
24833    -- call ADRs
24834    -- Bug 4922099
24835    --
24836    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24837         (NVL(l_actual_upg_option, 'N') = 'O') OR
24838         (NVL(l_enc_upg_option, 'N') = 'O')
24839       )
24840    THEN
24841    NULL;
24842    --
24843    --
24844    
24845    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
24846      p_code_combination_id      => TO_NUMBER(C_NUM)
24847    , p_value_type_code          => NULL
24848    , p_transaction_coa_id       => null
24849    , p_accounting_coa_id        => null
24850    , p_adr_code                 => NULL
24851    , p_adr_type_code            => NULL
24852    , p_component_type           => l_component_type
24853    , p_component_code           => l_component_code
24854    , p_component_type_code      => l_component_type_code
24855    , p_component_appl_id        => l_component_appl_id
24856    , p_amb_context_code         => l_amb_context_code
24857    , p_side                     => NULL
24858    );
24859 
24860    
24861   -- initialise segments
24862   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24863   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24864   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24865   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24866   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24867   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24868   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24869   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24870   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24871   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24872   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24873   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24874   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24875   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24876   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24877   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24878   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24879   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24880   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24881   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24882   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24883   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24884   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24885   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24886   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24887   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24888   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24889   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24890   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24891   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24892   --
24893 
24894    --
24895 
24896 
24897    l_segment := AcctDerRule_15(
24898            p_application_id           => p_application_id
24899          , p_ae_header_id             => l_ae_header_id 
24900 , p_source_23 => p_source_23
24901          , x_transaction_coa_id       => l_adr_transaction_coa_id
24902          , x_accounting_coa_id        => l_adr_accounting_coa_id
24903          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
24904          , x_flex_value_set_id        => l_adr_flex_value_set_id
24905          , x_value_type_code          => l_adr_value_type_code
24906          , x_value_combination_id     => l_adr_value_combination_id
24907          , x_value_segment_code       => l_adr_value_segment_code
24908          , p_side                     => 'NA'
24909          , p_override_seg_flag        => 'Y'
24910    );
24911 
24912    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
24913 
24914       xla_ae_lines_pkg.set_segment(
24915           p_to_segment_code         => 'GL_ACCOUNT'
24916         , p_segment_value           => l_segment
24920         , p_transaction_coa_id      => l_adr_transaction_coa_id
24917         , p_from_segment_code       => l_adr_value_segment_code
24918         , p_from_combination_id     => l_adr_value_combination_id
24919         , p_value_type_code         => l_adr_value_type_code
24921         , p_accounting_coa_id       => l_adr_accounting_coa_id
24922         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
24923         , p_flex_value_set_id       => l_adr_flex_value_set_id
24924         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
24925         , p_adr_type_code           => 'S'
24926         , p_component_type          => l_component_type
24927         , p_component_code          => l_component_code
24928         , p_component_type_code     => l_component_type_code
24929         , p_component_appl_id       => l_component_appl_id
24930         , p_amb_context_code        => l_amb_context_code
24931         , p_entity_code             => 'AP_PAYMENTS'
24932         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
24933         , p_side                    => 'NA'
24934         );
24935 
24936   END IF;
24937 
24938    --
24939    --
24940    END IF;
24941    --
24942    -- Bug 4922099
24943    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24944           (NVL(l_enc_upg_option, 'N') = 'O')
24945         ) AND
24946         (l_bflow_method_code = 'PRIOR_ENTRY')
24947       )
24948    THEN
24949       IF
24950       --
24951       1 = 2
24952       --
24953       THEN
24954       xla_accounting_err_pkg.build_message
24955                                     (p_appli_s_name            => 'XLA'
24956                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24957                                     ,p_token_1                 => 'LINE_NUMBER'
24958                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
24959                                     ,p_token_2                 => 'LINE_TYPE_NAME'
24960                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
24961                                                                              l_component_type
24962                                                                             ,l_component_code
24963                                                                             ,l_component_type_code
24964                                                                             ,l_component_appl_id
24965                                                                             ,l_amb_context_code
24966                                                                             ,l_entity_code
24967                                                                             ,l_event_class_code
24968                                                                            )
24969                                     ,p_token_3                 => 'OWNER'
24970                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
24971                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
24972                                                                           ,p_lookup_code    => l_component_type_code
24973                                                                          )
24974                                     ,p_token_4                 => 'PRODUCT_NAME'
24975                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24976                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24977                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24978                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24979                                     ,p_ae_header_id            =>  NULL
24980                                        );
24981 
24982         IF (C_LEVEL_ERROR>= g_log_level) THEN
24983                  trace
24984                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24985                       ,p_level    => C_LEVEL_ERROR
24986                       ,p_module   => l_log_module);
24987         END IF;
24988       END IF;
24989    END IF;
24990    --
24991    --
24992    ------------------------------------------------------------------------------------------------
24993    -- 4219869 Business Flow
24994    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24995    -- Prior Entry.  Currently, the following code is always generated.
24996    ------------------------------------------------------------------------------------------------
24997    XLA_AE_LINES_PKG.ValidateCurrentLine;
24998 
24999    ------------------------------------------------------------------------------------
25000    -- 4219869 Business Flow
25001    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25002    ------------------------------------------------------------------------------------
25003    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25004 
25005    ----------------------------------------------------------------------------------
25006    -- 4219869 Business Flow
25007    -- Update journal entry status -- Need to generate this within IF <condition>
25008    ----------------------------------------------------------------------------------
25009    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25010          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25011          ,p_balance_type_code => l_balance_type_code
25012          );
25013 
25014    -------------------------------------------------------------------------------------------
25015    -- 4262811 - Generate the Accrual Reversal lines
25019                               (g_array_event(p_event_id).array_value_num('header_index'));
25016    -------------------------------------------------------------------------------------------
25017    BEGIN
25018       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25020       IF l_acc_rev_flag IS NULL THEN
25021          l_acc_rev_flag := 'N';
25022       END IF;
25023    EXCEPTION
25024       WHEN OTHERS THEN
25025          l_acc_rev_flag := 'N';
25026    END;
25027    --
25028    IF (l_acc_rev_flag = 'Y') THEN
25029 
25030        -- 4645092  ------------------------------------------------------------------------------
25031        -- To allow MPA report to determine if it should generate report process
25032        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25033        ------------------------------------------------------------------------------------------
25034 
25035        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25036        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25037    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
25038    -- call ADRs
25039    -- Bug 4922099
25040    --
25041    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25042         (NVL(l_actual_upg_option, 'N') = 'O') OR
25043         (NVL(l_enc_upg_option, 'N') = 'O')
25044       )
25045    THEN
25046    NULL;
25047    --
25048    --
25049    
25050    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
25051      p_code_combination_id      => TO_NUMBER(C_NUM)
25052    , p_value_type_code          => NULL
25053    , p_transaction_coa_id       => null
25054    , p_accounting_coa_id        => null
25055    , p_adr_code                 => NULL
25056    , p_adr_type_code            => NULL
25057    , p_component_type           => l_component_type
25058    , p_component_code           => l_component_code
25059    , p_component_type_code      => l_component_type_code
25060    , p_component_appl_id        => l_component_appl_id
25061    , p_amb_context_code         => l_amb_context_code
25062    , p_side                     => NULL
25063    );
25064 
25065    
25066   -- initialise segments
25067   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25068   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25069   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25070   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25071   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25072   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25073   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25074   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25075   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25076   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25077   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25078   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25079   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25080   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25081   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25082   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25083   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25084   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25085   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25086   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25087   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25088   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25089   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25090   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25091   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25092   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25093   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25094   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25095   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25096   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25097   --
25098 
25099    --
25100 
25101 
25102    l_segment := AcctDerRule_15(
25103            p_application_id           => p_application_id
25104          , p_ae_header_id             => l_ae_header_id 
25105 , p_source_23 => p_source_23
25106          , x_transaction_coa_id       => l_adr_transaction_coa_id
25107          , x_accounting_coa_id        => l_adr_accounting_coa_id
25108          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
25109          , x_flex_value_set_id        => l_adr_flex_value_set_id
25110          , x_value_type_code          => l_adr_value_type_code
25111          , x_value_combination_id     => l_adr_value_combination_id
25112          , x_value_segment_code       => l_adr_value_segment_code
25113          , p_side                     => 'NA'
25114          , p_override_seg_flag        => 'Y'
25115    );
25116 
25117    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
25118 
25119       xla_ae_lines_pkg.set_segment(
25123         , p_from_combination_id     => l_adr_value_combination_id
25120           p_to_segment_code         => 'GL_ACCOUNT'
25121         , p_segment_value           => l_segment
25122         , p_from_segment_code       => l_adr_value_segment_code
25124         , p_value_type_code         => l_adr_value_type_code
25125         , p_transaction_coa_id      => l_adr_transaction_coa_id
25126         , p_accounting_coa_id       => l_adr_accounting_coa_id
25127         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
25128         , p_flex_value_set_id       => l_adr_flex_value_set_id
25129         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
25130         , p_adr_type_code           => 'S'
25131         , p_component_type          => l_component_type
25132         , p_component_code          => l_component_code
25133         , p_component_type_code     => l_component_type_code
25134         , p_component_appl_id       => l_component_appl_id
25135         , p_amb_context_code        => l_amb_context_code
25136         , p_entity_code             => 'AP_PAYMENTS'
25137         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
25138         , p_side                    => 'NA'
25139         );
25140 
25141   END IF;
25142 
25143    --
25144    --
25145    END IF;
25146 
25147        --
25148        -- Update the line information that should be overwritten
25149        --
25150        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25151                                          p_header_num   => 1);
25152        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
25153 
25154        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25155 
25156        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
25157           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25158        END IF;
25159 
25160       --
25161       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25162       --
25163       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25164           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
25165       ELSE
25166           ---------------------------------------------------------------------------------------------------
25167           -- 4262811a Switch Sign
25168           ---------------------------------------------------------------------------------------------------
25169           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
25170           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25171                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25172           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25173                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25174           -- 5132302
25175           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25176                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25177 
25178       END IF;
25179 
25180       -- 4955764
25181       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25182       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25183 
25184 
25185       XLA_AE_LINES_PKG.ValidateCurrentLine;
25186       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25187 
25188       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25189                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25190                ,p_balance_type_code => l_balance_type_code);
25191 
25192    END IF;
25193 
25194    -----------------------------------------------------------------------------------------
25195    -- 4262811 Multiperiod Accounting
25196    -----------------------------------------------------------------------------------------
25197      -- No MPA option is assigned.
25198 
25199 
25200 END IF;
25201 END IF;
25202 --
25203 
25204 --
25205 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25206    trace
25207       (p_msg      => 'END of AcctLineType_70'
25208       ,p_level    => C_LEVEL_PROCEDURE
25209       ,p_module   => l_log_module);
25210 END IF;
25211 --
25212 EXCEPTION
25213   WHEN xla_exceptions_pkg.application_exception THEN
25214       RAISE;
25215   WHEN OTHERS THEN
25216        xla_exceptions_pkg.raise_message
25217            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_70');
25218 END AcctLineType_70;
25219 --
25220 
25221 ---------------------------------------
25222 --
25223 -- PRIVATE FUNCTION
25224 --         AcctLineType_71
25225 --
25226 ---------------------------------------
25227 PROCEDURE AcctLineType_71 (
25228   p_application_id        IN NUMBER
25229  ,p_event_id              IN NUMBER
25230  ,p_calculate_acctd_flag  IN VARCHAR2
25231  ,p_calculate_g_l_flag    IN VARCHAR2
25232  ,p_actual_flag           IN OUT VARCHAR2
25233  ,p_balance_type_code     OUT VARCHAR2
25234  ,p_gain_or_loss_ref      OUT VARCHAR2
25235  
25236 --Automatic Offsets Value
25237  , p_source_3            IN VARCHAR2
25238  , p_source_3_meaning    IN VARCHAR2
25239 --Bank Cash Clearing Account
25240  , p_source_23            IN NUMBER
25241 --Accounting Reversal Indicator
25242  , p_source_41            IN VARCHAR2
25243 --Distribution Link Type
25244  , p_source_43            IN VARCHAR2
25248 --Third Party Type
25245 --Override Accounted Amount Indicator
25246  , p_source_68            IN VARCHAR2
25247  , p_source_68_meaning    IN VARCHAR2
25249  , p_source_71            IN VARCHAR2
25250 --Business Flow Accounts Payable Application Identifier
25251  , p_source_79            IN NUMBER
25252 --When to Account for Payment Option
25253  , p_source_89            IN VARCHAR2
25254 --Payment Distribution Type
25255  , p_source_90            IN VARCHAR2
25256  , p_source_90_meaning    IN VARCHAR2
25257 --Payment Distribution Amount
25258  , p_source_91            IN NUMBER
25259 --Business Flow Payment Distribution Type
25260  , p_source_92            IN VARCHAR2
25261 --Business Flow Payment Entity Code
25262  , p_source_93            IN VARCHAR2
25263 --Business Flow Payment Distribution Identifier
25264  , p_source_94            IN NUMBER
25265 --Business Flow Payment Identifier
25266  , p_source_95            IN NUMBER
25267 --Payment Distribution Identifier
25268  , p_source_96            IN NUMBER
25269 --Payment Supplier Identifier
25270  , p_source_102            IN NUMBER
25271 --Payment Supplier Site Identifier
25272  , p_source_103            IN NUMBER
25273 --Payment Distribution Reversed Identifier
25274  , p_source_104            IN NUMBER
25275 --Pooled Bank Account Option
25276  , p_source_105            IN VARCHAR2
25277  , p_source_105_meaning    IN VARCHAR2
25278 --Payment Currency Code
25279  , p_source_106            IN VARCHAR2
25280 --Payment Maturity Date
25281  , p_source_107            IN DATE
25282 --Payment Distribution (Invoice Rate) Ledger Amount
25283  , p_source_109            IN NUMBER
25284 --Payment Exchange Date
25285  , p_source_110            IN DATE
25286 --Payment Exchange Rate
25287  , p_source_111            IN NUMBER
25288 --Payment Exchange Rate Type
25289  , p_source_112            IN VARCHAR2
25290 )
25291 IS
25292 
25293 l_component_type              VARCHAR2(80);
25294 l_component_code              VARCHAR2(30);
25295 l_component_type_code         VARCHAR2(1);
25296 l_component_appl_id           INTEGER;
25297 l_amb_context_code            VARCHAR2(30);
25298 l_entity_code                 VARCHAR2(30);
25299 l_event_class_code            VARCHAR2(30);
25300 l_ae_header_id                NUMBER;
25301 l_event_type_code             VARCHAR2(30);
25302 l_line_definition_code        VARCHAR2(30);
25303 l_line_definition_owner_code  VARCHAR2(1);
25304 --
25305 -- adr variables
25306 l_segment                     VARCHAR2(30);
25307 l_ccid                        NUMBER;
25308 l_adr_transaction_coa_id      NUMBER;
25309 l_adr_accounting_coa_id       NUMBER;
25310 l_adr_flexfield_segment_code  VARCHAR2(30);
25311 l_adr_flex_value_set_id       NUMBER;
25312 l_adr_value_type_code         VARCHAR2(30);
25313 l_adr_value_combination_id    NUMBER;
25314 l_adr_value_segment_code      VARCHAR2(30);
25315 
25316 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
25317 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
25318 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
25319 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
25320 
25321 -- 4262811 Variables ------------------------------------------------------------------------------------------
25322 l_entered_amt_idx             NUMBER;
25323 l_accted_amt_idx              NUMBER;
25324 l_acc_rev_flag                VARCHAR2(1);
25325 l_accrual_line_num            NUMBER;
25326 l_tmp_amt                     NUMBER;
25327 l_acc_rev_natural_side_code   VARCHAR2(1);
25328 
25329 l_num_entries                 NUMBER;
25330 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
25331 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
25332 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
25333 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
25334 l_recog_line_1                NUMBER;
25335 l_recog_line_2                NUMBER;
25336 
25337 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
25338 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
25339 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
25340 
25341 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25342 
25343 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
25344 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
25345 
25346 ---------------------------------------------------------------------------------------------------------------
25347 
25348 
25349 --
25350 -- bulk performance
25351 --
25352 l_balance_type_code           VARCHAR2(1);
25353 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
25354 l_log_module                  VARCHAR2(240);
25355 
25356 --
25357 -- Upgrade strategy
25358 --
25359 l_actual_upg_option           VARCHAR2(1);
25360 l_enc_upg_option           VARCHAR2(1);
25361 
25362 --
25363 BEGIN
25364 --
25365 IF g_log_enabled THEN
25366       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_71';
25367 END IF;
25368 --
25369 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25370 
25371       trace
25372          (p_msg      => 'BEGIN of AcctLineType_71'
25373          ,p_level    => C_LEVEL_PROCEDURE
25374          ,p_module   => l_log_module);
25375 
25376 END IF;
25377 --
25378 l_component_type             := 'AMB_JLT';
25379 l_component_code             := 'AP_CASH_CLEAR_MAT_BS_INVXRATE';
25380 l_component_type_code        := 'S';
25381 l_component_appl_id          :=  200;
25385 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
25382 l_amb_context_code           := 'DEFAULT';
25383 l_entity_code                := 'AP_PAYMENTS';
25384 l_event_class_code           := 'FUTURE DATED PAYMENTS';
25386 l_line_definition_owner_code := 'S';
25387 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
25388 --
25389 l_balance_type_code          := 'A';
25390 l_segment                     := NULL;
25391 l_ccid                        := NULL;
25392 l_adr_transaction_coa_id      := NULL;
25393 l_adr_accounting_coa_id       := NULL;
25394 l_adr_flexfield_segment_code  := NULL;
25395 l_adr_flex_value_set_id       := NULL;
25396 l_adr_value_type_code         := NULL;
25397 l_adr_value_combination_id    := NULL;
25398 l_adr_value_segment_code      := NULL;
25399 
25400 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
25401 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
25402 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
25403 l_budgetary_control_flag     := 'N';
25404 
25405 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
25406 l_bflow_applied_to_amt       := NULL; -- 5132302
25407 l_entered_amt_idx            := NULL;          -- 4262811
25408 l_accted_amt_idx             := NULL;          -- 4262811
25409 l_acc_rev_flag               := NULL;          -- 4262811
25410 l_accrual_line_num           := NULL;          -- 4262811
25411 l_tmp_amt                    := NULL;          -- 4262811
25412 --
25413  
25414 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25415     l_balance_type_code <> 'B' THEN
25416 IF NVL(p_source_89,'
25417 ') =  'ALWAYS_CLEAR' AND 
25418 (NVL(p_source_105,'
25419 ') =  'Y' AND 
25420 NVL(p_source_3,'
25421 ') =  'BALANCING_SEGMENT') AND 
25422 p_source_107 IS NOT NULL AND 
25423 NVL(p_source_90,'
25424 ') =  'CASH'
25425  THEN 
25426 
25427    --
25428    XLA_AE_LINES_PKG.SetNewLine;
25429 
25430    p_balance_type_code          := l_balance_type_code;
25431    -- set the flag so later we will know whether the gain loss line needs to be created
25432    
25433    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25434      p_actual_flag :='A';
25435    END IF;
25436 
25437    --
25438    -- bulk performance
25439    --
25440    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25441                                       p_header_num   => 0); -- 4262811
25442    --
25443    -- set accounting line options
25444    --
25445    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25446            p_natural_side_code          => 'C'
25447          , p_gain_or_loss_flag          => 'N'
25448          , p_gl_transfer_mode_code      => 'S'
25449          , p_acct_entry_type_code       => 'A'
25450          , p_switch_side_flag           => 'Y'
25451          , p_merge_duplicate_code       => 'A'
25452          );
25453    --
25454    l_acc_rev_natural_side_code := 'D';  -- 4262811
25455    -- 
25456    --
25457    -- set accounting line type info
25458    --
25459    xla_ae_lines_pkg.SetAcctLineType
25460       (p_component_type             => l_component_type
25461       ,p_event_type_code            => l_event_type_code
25462       ,p_line_definition_owner_code => l_line_definition_owner_code
25463       ,p_line_definition_code       => l_line_definition_code
25464       ,p_accounting_line_code       => l_component_code
25465       ,p_accounting_line_type_code  => l_component_type_code
25466       ,p_accounting_line_appl_id    => l_component_appl_id
25467       ,p_amb_context_code           => l_amb_context_code
25468       ,p_entity_code                => l_entity_code
25469       ,p_event_class_code           => l_event_class_code);
25470    --
25471    -- set accounting class
25472    --
25473    xla_ae_lines_pkg.SetAcctClass(
25474            p_accounting_class_code  => 'CASH_CLEARING'
25475          , p_ae_header_id           => l_ae_header_id
25476          );
25477 
25478    --
25479    -- set rounding class
25480    --
25481    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25482                       'CASH_CLEARING';
25483 
25484    --
25485    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25486    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25487    --
25488    -- bulk performance
25489    --
25490    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25491 
25492    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25493       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25494 
25495    -- 4955764
25496    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25497       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25498 
25499    -- 4458381 Public Sector Enh
25500    
25501    --
25502    -- set accounting attributes for the line type
25503    --
25504    l_entered_amt_idx := 9;
25505    l_accted_amt_idx  := 14;
25506    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
25507    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25508    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
25509    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
25510    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
25511    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
25512    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
25516    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
25513    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
25514    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
25515    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
25517    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
25518    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
25519    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
25520    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
25521    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
25522    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
25523    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
25524    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
25525    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
25526    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
25527    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
25528    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
25529    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
25530    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
25531    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
25532    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
25533    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
25534    l_rec_acct_attrs.array_num_value(14)  := p_source_109;
25535    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
25536    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
25537    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
25538    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
25539    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
25540    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
25541    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
25542    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
25543    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
25544    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
25545    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
25546    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
25547 
25548    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25549    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25550 
25551    ---------------------------------------------------------------------------------------------------------------
25552    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25553    ---------------------------------------------------------------------------------------------------------------
25554    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25555 
25556    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25557    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25558 
25559    IF xla_accounting_cache_pkg.GetValueChar
25560          (p_source_code         => 'LEDGER_CATEGORY_CODE'
25561          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25562    AND l_bflow_method_code = 'PRIOR_ENTRY'
25563 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25564    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25565          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25566        )
25567    THEN
25568          xla_ae_lines_pkg.BflowUpgEntry
25569            (p_business_method_code    => l_bflow_method_code
25570            ,p_business_class_code     => l_bflow_class_code
25571            ,p_balance_type            => l_balance_type_code);
25572    ELSE
25573       NULL;
25574 XLA_AE_LINES_PKG.business_flow_validation(
25575                                 p_business_method_code     => l_bflow_method_code
25576                                ,p_business_class_code      => l_bflow_class_code
25577                                ,p_inherit_description_flag => l_inherit_desc_flag);
25578    END IF;
25579 
25580    --
25581    -- call analytical criteria
25582    --
25583    
25584    --
25585    -- call description
25586    --
25587    -- No description or it is inherited.
25588    --
25589    -- call ADRs
25590    -- Bug 4922099
25591    --
25592    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25593         (NVL(l_actual_upg_option, 'N') = 'O') OR
25594         (NVL(l_enc_upg_option, 'N') = 'O')
25595       )
25596    THEN
25597    NULL;
25598    --
25599    --
25600    
25601   l_ccid := AcctDerRule_35(
25602            p_application_id           => p_application_id
25603          , p_ae_header_id             => l_ae_header_id 
25604 , p_source_23 => p_source_23
25605          , x_transaction_coa_id       => l_adr_transaction_coa_id
25606          , x_accounting_coa_id        => l_adr_accounting_coa_id
25607          , x_value_type_code          => l_adr_value_type_code
25608          , p_side                     => 'NA'
25609    );
25610 
25611    xla_ae_lines_pkg.set_ccid(
25612     p_code_combination_id          => l_ccid
25613   , p_value_type_code              => l_adr_value_type_code
25614   , p_transaction_coa_id           => l_adr_transaction_coa_id
25615   , p_accounting_coa_id            => l_adr_accounting_coa_id
25616   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
25617   , p_adr_type_code                => 'S'
25618   , p_component_type               => l_component_type
25619   , p_component_code               => l_component_code
25620   , p_component_type_code          => l_component_type_code
25621   , p_component_appl_id            => l_component_appl_id
25625 
25622   , p_amb_context_code             => l_amb_context_code
25623   , p_side                         => 'NA'
25624   );
25626 
25627    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
25628      p_to_segment_code         => 'GL_BALANCING'
25629    , p_segment_value           => C_CHAR
25630    , p_from_segment_code       => NULL
25631    , p_from_combination_id     => NULL
25632    , p_value_type_code         => NULL
25633    , p_transaction_coa_id      => null
25634    , p_accounting_coa_id       => null
25635    , p_flexfield_segment_code  => NULL
25636    , p_flex_value_set_id       => NULL
25637    , p_adr_code                => NULL
25638    , p_adr_type_code           => NULL
25639    , p_component_type          => l_component_type
25640    , p_component_code          => l_component_code
25641    , p_component_type_code     => l_component_type_code
25642    , p_component_appl_id       => l_component_appl_id
25643    , p_amb_context_code        => l_amb_context_code
25644    , p_entity_code             => 'AP_PAYMENTS'
25645    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
25646    , p_side                    => 'NA'
25647    );
25648    --
25649 
25650 
25651    --
25652    --
25653    END IF;
25654    --
25655    -- Bug 4922099
25656    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25657           (NVL(l_enc_upg_option, 'N') = 'O')
25658         ) AND
25659         (l_bflow_method_code = 'PRIOR_ENTRY')
25660       )
25661    THEN
25662       IF
25663       --
25664       1 = 2
25665       --
25666       THEN
25667       xla_accounting_err_pkg.build_message
25668                                     (p_appli_s_name            => 'XLA'
25669                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25670                                     ,p_token_1                 => 'LINE_NUMBER'
25671                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
25672                                     ,p_token_2                 => 'LINE_TYPE_NAME'
25673                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
25674                                                                              l_component_type
25675                                                                             ,l_component_code
25676                                                                             ,l_component_type_code
25677                                                                             ,l_component_appl_id
25678                                                                             ,l_amb_context_code
25679                                                                             ,l_entity_code
25680                                                                             ,l_event_class_code
25681                                                                            )
25682                                     ,p_token_3                 => 'OWNER'
25683                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
25684                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
25685                                                                           ,p_lookup_code    => l_component_type_code
25686                                                                          )
25687                                     ,p_token_4                 => 'PRODUCT_NAME'
25688                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25689                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25690                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25691                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25692                                     ,p_ae_header_id            =>  NULL
25693                                        );
25694 
25695         IF (C_LEVEL_ERROR>= g_log_level) THEN
25696                  trace
25697                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25698                       ,p_level    => C_LEVEL_ERROR
25699                       ,p_module   => l_log_module);
25700         END IF;
25701       END IF;
25702    END IF;
25703    --
25704    --
25705    ------------------------------------------------------------------------------------------------
25706    -- 4219869 Business Flow
25707    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25708    -- Prior Entry.  Currently, the following code is always generated.
25709    ------------------------------------------------------------------------------------------------
25710    XLA_AE_LINES_PKG.ValidateCurrentLine;
25711 
25712    ------------------------------------------------------------------------------------
25713    -- 4219869 Business Flow
25714    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25715    ------------------------------------------------------------------------------------
25716    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25717 
25718    ----------------------------------------------------------------------------------
25719    -- 4219869 Business Flow
25720    -- Update journal entry status -- Need to generate this within IF <condition>
25721    ----------------------------------------------------------------------------------
25722    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25723          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25724          ,p_balance_type_code => l_balance_type_code
25725          );
25726 
25727    -------------------------------------------------------------------------------------------
25731       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25728    -- 4262811 - Generate the Accrual Reversal lines
25729    -------------------------------------------------------------------------------------------
25730    BEGIN
25732                               (g_array_event(p_event_id).array_value_num('header_index'));
25733       IF l_acc_rev_flag IS NULL THEN
25734          l_acc_rev_flag := 'N';
25735       END IF;
25736    EXCEPTION
25737       WHEN OTHERS THEN
25738          l_acc_rev_flag := 'N';
25739    END;
25740    --
25741    IF (l_acc_rev_flag = 'Y') THEN
25742 
25743        -- 4645092  ------------------------------------------------------------------------------
25744        -- To allow MPA report to determine if it should generate report process
25745        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25746        ------------------------------------------------------------------------------------------
25747 
25748        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25749        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25750    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
25751    -- call ADRs
25752    -- Bug 4922099
25753    --
25754    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25755         (NVL(l_actual_upg_option, 'N') = 'O') OR
25756         (NVL(l_enc_upg_option, 'N') = 'O')
25757       )
25758    THEN
25759    NULL;
25760    --
25761    --
25762    
25763   l_ccid := AcctDerRule_35(
25764            p_application_id           => p_application_id
25765          , p_ae_header_id             => l_ae_header_id 
25766 , p_source_23 => p_source_23
25767          , x_transaction_coa_id       => l_adr_transaction_coa_id
25768          , x_accounting_coa_id        => l_adr_accounting_coa_id
25769          , x_value_type_code          => l_adr_value_type_code
25770          , p_side                     => 'NA'
25771    );
25772 
25773    xla_ae_lines_pkg.set_ccid(
25774     p_code_combination_id          => l_ccid
25775   , p_value_type_code              => l_adr_value_type_code
25776   , p_transaction_coa_id           => l_adr_transaction_coa_id
25777   , p_accounting_coa_id            => l_adr_accounting_coa_id
25778   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
25779   , p_adr_type_code                => 'S'
25780   , p_component_type               => l_component_type
25781   , p_component_code               => l_component_code
25782   , p_component_type_code          => l_component_type_code
25783   , p_component_appl_id            => l_component_appl_id
25784   , p_amb_context_code             => l_amb_context_code
25785   , p_side                         => 'NA'
25786   );
25787 
25788 
25789    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
25790      p_to_segment_code         => 'GL_BALANCING'
25791    , p_segment_value           => C_CHAR
25792    , p_from_segment_code       => NULL
25793    , p_from_combination_id     => NULL
25794    , p_value_type_code         => NULL
25795    , p_transaction_coa_id      => null
25796    , p_accounting_coa_id       => null
25797    , p_flexfield_segment_code  => NULL
25798    , p_flex_value_set_id       => NULL
25799    , p_adr_code                => NULL
25800    , p_adr_type_code           => NULL
25801    , p_component_type          => l_component_type
25802    , p_component_code          => l_component_code
25803    , p_component_type_code     => l_component_type_code
25804    , p_component_appl_id       => l_component_appl_id
25805    , p_amb_context_code        => l_amb_context_code
25806    , p_entity_code             => 'AP_PAYMENTS'
25807    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
25808    , p_side                    => 'NA'
25809    );
25810    --
25811 
25812 
25813    --
25814    --
25815    END IF;
25816 
25817        --
25818        -- Update the line information that should be overwritten
25819        --
25820        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25821                                          p_header_num   => 1);
25822        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
25823 
25824        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25825 
25826        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
25827           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25828        END IF;
25829 
25830       --
25831       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25832       --
25833       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25834           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
25835       ELSE
25836           ---------------------------------------------------------------------------------------------------
25837           -- 4262811a Switch Sign
25838           ---------------------------------------------------------------------------------------------------
25839           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
25840           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25841                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25842           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25843                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25844           -- 5132302
25845           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25849 
25846                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25847 
25848       END IF;
25850       -- 4955764
25851       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25852       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25853 
25854 
25855       XLA_AE_LINES_PKG.ValidateCurrentLine;
25856       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25857 
25858       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25859                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25860                ,p_balance_type_code => l_balance_type_code);
25861 
25862    END IF;
25863 
25864    -----------------------------------------------------------------------------------------
25865    -- 4262811 Multiperiod Accounting
25866    -----------------------------------------------------------------------------------------
25867      -- No MPA option is assigned.
25868 
25869 
25870 END IF;
25871 END IF;
25872 --
25873 
25874 --
25875 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25876    trace
25877       (p_msg      => 'END of AcctLineType_71'
25878       ,p_level    => C_LEVEL_PROCEDURE
25879       ,p_module   => l_log_module);
25880 END IF;
25881 --
25882 EXCEPTION
25883   WHEN xla_exceptions_pkg.application_exception THEN
25884       RAISE;
25885   WHEN OTHERS THEN
25886        xla_exceptions_pkg.raise_message
25887            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_71');
25888 END AcctLineType_71;
25889 --
25890 
25891 ---------------------------------------
25892 --
25893 -- PRIVATE FUNCTION
25894 --         AcctLineType_72
25895 --
25896 ---------------------------------------
25897 PROCEDURE AcctLineType_72 (
25898   p_application_id        IN NUMBER
25899  ,p_event_id              IN NUMBER
25900  ,p_calculate_acctd_flag  IN VARCHAR2
25901  ,p_calculate_g_l_flag    IN VARCHAR2
25902  ,p_actual_flag           IN OUT VARCHAR2
25903  ,p_balance_type_code     OUT VARCHAR2
25904  ,p_gain_or_loss_ref      OUT VARCHAR2
25905  
25906 --Accounting Reversal Indicator
25907  , p_source_41            IN VARCHAR2
25908 --Distribution Link Type
25909  , p_source_43            IN VARCHAR2
25910 --Override Accounted Amount Indicator
25911  , p_source_68            IN VARCHAR2
25912  , p_source_68_meaning    IN VARCHAR2
25913 --Third Party Type
25914  , p_source_71            IN VARCHAR2
25915 --Invoice Distribution Tax Line Identifier
25916  , p_source_74            IN NUMBER
25917 --Invoice Distribution Summary Tax Line Identifier
25918  , p_source_76            IN NUMBER
25919 --Business Flow Accounts Payable Application Identifier
25920  , p_source_79            IN NUMBER
25921 --When to Account for Payment Option
25922  , p_source_89            IN VARCHAR2
25923 --Payment Distribution Type
25924  , p_source_90            IN VARCHAR2
25925  , p_source_90_meaning    IN VARCHAR2
25926 --Payment Distribution Amount
25927  , p_source_91            IN NUMBER
25928 --Business Flow Payment Distribution Type
25929  , p_source_92            IN VARCHAR2
25930 --Business Flow Payment Entity Code
25931  , p_source_93            IN VARCHAR2
25932 --Business Flow Payment Identifier
25933  , p_source_95            IN NUMBER
25934 --Payment Distribution Identifier
25935  , p_source_96            IN NUMBER
25936 --Payment Distribution Reversed Identifier
25937  , p_source_104            IN NUMBER
25938 --Payment Currency Code
25939  , p_source_106            IN VARCHAR2
25940 --Payment Maturity Date
25941  , p_source_107            IN DATE
25942 --Business Flow Payment Maturity Identifier
25943  , p_source_113            IN NUMBER
25944 --Payment Distribution (Matured Rate) Ledger Amount
25945  , p_source_114            IN NUMBER
25946 )
25947 IS
25948 
25949 l_component_type              VARCHAR2(80);
25950 l_component_code              VARCHAR2(30);
25951 l_component_type_code         VARCHAR2(1);
25952 l_component_appl_id           INTEGER;
25953 l_amb_context_code            VARCHAR2(30);
25954 l_entity_code                 VARCHAR2(30);
25955 l_event_class_code            VARCHAR2(30);
25956 l_ae_header_id                NUMBER;
25957 l_event_type_code             VARCHAR2(30);
25958 l_line_definition_code        VARCHAR2(30);
25959 l_line_definition_owner_code  VARCHAR2(1);
25960 --
25961 -- adr variables
25962 l_segment                     VARCHAR2(30);
25963 l_ccid                        NUMBER;
25964 l_adr_transaction_coa_id      NUMBER;
25965 l_adr_accounting_coa_id       NUMBER;
25966 l_adr_flexfield_segment_code  VARCHAR2(30);
25967 l_adr_flex_value_set_id       NUMBER;
25968 l_adr_value_type_code         VARCHAR2(30);
25969 l_adr_value_combination_id    NUMBER;
25970 l_adr_value_segment_code      VARCHAR2(30);
25971 
25972 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
25973 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
25974 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
25975 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
25976 
25977 -- 4262811 Variables ------------------------------------------------------------------------------------------
25978 l_entered_amt_idx             NUMBER;
25979 l_accted_amt_idx              NUMBER;
25980 l_acc_rev_flag                VARCHAR2(1);
25981 l_accrual_line_num            NUMBER;
25982 l_tmp_amt                     NUMBER;
25983 l_acc_rev_natural_side_code   VARCHAR2(1);
25984 
25985 l_num_entries                 NUMBER;
25986 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
25990 l_recog_line_1                NUMBER;
25987 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
25988 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
25989 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
25991 l_recog_line_2                NUMBER;
25992 
25993 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
25994 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
25995 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
25996 
25997 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25998 
25999 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
26000 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
26001 
26002 ---------------------------------------------------------------------------------------------------------------
26003 
26004 
26005 --
26006 -- bulk performance
26007 --
26008 l_balance_type_code           VARCHAR2(1);
26009 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
26010 l_log_module                  VARCHAR2(240);
26011 
26012 --
26013 -- Upgrade strategy
26014 --
26015 l_actual_upg_option           VARCHAR2(1);
26016 l_enc_upg_option           VARCHAR2(1);
26017 
26018 --
26019 BEGIN
26020 --
26021 IF g_log_enabled THEN
26022       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_72';
26023 END IF;
26024 --
26025 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26026 
26027       trace
26028          (p_msg      => 'BEGIN of AcctLineType_72'
26029          ,p_level    => C_LEVEL_PROCEDURE
26030          ,p_module   => l_log_module);
26031 
26032 END IF;
26033 --
26034 l_component_type             := 'AMB_JLT';
26035 l_component_code             := 'AP_CASH_CLEAR_MAT_CLEAR';
26036 l_component_type_code        := 'S';
26037 l_component_appl_id          :=  200;
26038 l_amb_context_code           := 'DEFAULT';
26039 l_entity_code                := 'AP_PAYMENTS';
26040 l_event_class_code           := 'RECONCILED PAYMENTS';
26041 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
26042 l_line_definition_owner_code := 'S';
26043 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
26044 --
26045 l_balance_type_code          := 'A';
26046 l_segment                     := NULL;
26047 l_ccid                        := NULL;
26048 l_adr_transaction_coa_id      := NULL;
26049 l_adr_accounting_coa_id       := NULL;
26050 l_adr_flexfield_segment_code  := NULL;
26051 l_adr_flex_value_set_id       := NULL;
26052 l_adr_value_type_code         := NULL;
26053 l_adr_value_combination_id    := NULL;
26054 l_adr_value_segment_code      := NULL;
26055 
26056 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
26057 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
26058 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
26059 l_budgetary_control_flag     := 'N';
26060 
26061 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
26062 l_bflow_applied_to_amt       := NULL; -- 5132302
26063 l_entered_amt_idx            := NULL;          -- 4262811
26064 l_accted_amt_idx             := NULL;          -- 4262811
26065 l_acc_rev_flag               := NULL;          -- 4262811
26066 l_accrual_line_num           := NULL;          -- 4262811
26067 l_tmp_amt                    := NULL;          -- 4262811
26068 --
26069  
26070 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26071     l_balance_type_code <> 'B' THEN
26072 IF (NVL(p_source_89,'
26073 ') =  'ALWAYS_ALWAYS' OR 
26074 NVL(p_source_89,'
26075 ') =  'ALWAYS_CLEAR' OR 
26076 NVL(p_source_89,'
26077 ') =  'ALWAYS_ISSUE') AND 
26078 NVL(p_source_90,'
26079 ') =  'CASH' AND 
26080 p_source_107 IS NOT NULL 
26081  THEN 
26082 
26083    --
26084    XLA_AE_LINES_PKG.SetNewLine;
26085 
26086    p_balance_type_code          := l_balance_type_code;
26087    -- set the flag so later we will know whether the gain loss line needs to be created
26088    
26089    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26090      p_actual_flag :='A';
26091    END IF;
26092 
26093    --
26094    -- bulk performance
26095    --
26096    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26097                                       p_header_num   => 0); -- 4262811
26098    --
26099    -- set accounting line options
26100    --
26101    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26102            p_natural_side_code          => 'D'
26103          , p_gain_or_loss_flag          => 'N'
26104          , p_gl_transfer_mode_code      => 'S'
26105          , p_acct_entry_type_code       => 'A'
26106          , p_switch_side_flag           => 'Y'
26107          , p_merge_duplicate_code       => 'A'
26108          );
26109    --
26110    l_acc_rev_natural_side_code := 'C';  -- 4262811
26111    -- 
26112    --
26113    -- set accounting line type info
26114    --
26115    xla_ae_lines_pkg.SetAcctLineType
26116       (p_component_type             => l_component_type
26117       ,p_event_type_code            => l_event_type_code
26118       ,p_line_definition_owner_code => l_line_definition_owner_code
26119       ,p_line_definition_code       => l_line_definition_code
26120       ,p_accounting_line_code       => l_component_code
26121       ,p_accounting_line_type_code  => l_component_type_code
26125       ,p_event_class_code           => l_event_class_code);
26122       ,p_accounting_line_appl_id    => l_component_appl_id
26123       ,p_amb_context_code           => l_amb_context_code
26124       ,p_entity_code                => l_entity_code
26126    --
26127    -- set accounting class
26128    --
26129    xla_ae_lines_pkg.SetAcctClass(
26130            p_accounting_class_code  => 'CASH_CLEARING'
26131          , p_ae_header_id           => l_ae_header_id
26132          );
26133 
26134    --
26135    -- set rounding class
26136    --
26137    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26138                       'CASH_CLEARING';
26139 
26140    --
26141    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26142    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26143    --
26144    -- bulk performance
26145    --
26146    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26147 
26148    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26149       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26150 
26151    -- 4955764
26152    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26153       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26154 
26155    -- 4458381 Public Sector Enh
26156    
26157    --
26158    -- set accounting attributes for the line type
26159    --
26160    l_entered_amt_idx := 10;
26161    l_accted_amt_idx  := 12;
26162    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
26163    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26164    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
26165    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
26166    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
26167    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
26168    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
26169    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26170    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
26171    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
26172    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
26173    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
26174    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_113);
26175    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26176    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
26177    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
26178    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
26179    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
26180    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
26181    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
26182    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
26183    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
26184    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
26185    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
26186    l_rec_acct_attrs.array_num_value(12)  := p_source_114;
26187    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
26188    l_rec_acct_attrs.array_char_value(13)  := p_source_68;
26189    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
26190    l_rec_acct_attrs.array_char_value(14)  := p_source_71;
26191    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
26192    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_104);
26193    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
26194    l_rec_acct_attrs.array_char_value(16)  := p_source_43;
26195    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
26196    l_rec_acct_attrs.array_num_value(17)  := p_source_74;
26197    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
26198    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
26199    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
26200    l_rec_acct_attrs.array_num_value(19)  := p_source_76;
26201 
26202    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26203    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26204 
26205    ---------------------------------------------------------------------------------------------------------------
26206    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26207    ---------------------------------------------------------------------------------------------------------------
26208    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26209 
26210    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26211    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26212 
26213    IF xla_accounting_cache_pkg.GetValueChar
26214          (p_source_code         => 'LEDGER_CATEGORY_CODE'
26215          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26216    AND l_bflow_method_code = 'PRIOR_ENTRY'
26217 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26218    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26219          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26220        )
26221    THEN
26222          xla_ae_lines_pkg.BflowUpgEntry
26223            (p_business_method_code    => l_bflow_method_code
26224            ,p_business_class_code     => l_bflow_class_code
26228 XLA_AE_LINES_PKG.business_flow_validation(
26225            ,p_balance_type            => l_balance_type_code);
26226    ELSE
26227       NULL;
26229                                 p_business_method_code     => l_bflow_method_code
26230                                ,p_business_class_code      => l_bflow_class_code
26231                                ,p_inherit_description_flag => l_inherit_desc_flag);
26232    END IF;
26233 
26234    --
26235    -- call analytical criteria
26236    --
26237    -- Inherited Analytical Criteria for business flow method of Prior Entry.
26238    --
26239    -- call description
26240    --
26241    -- No description or it is inherited.
26242    --
26243    -- call ADRs
26244    -- Bug 4922099
26245    --
26246    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26247         (NVL(l_actual_upg_option, 'N') = 'O') OR
26248         (NVL(l_enc_upg_option, 'N') = 'O')
26249       )
26250    THEN
26251    NULL;
26252    --
26253    --
26254    
26255    --
26256    --
26257    END IF;
26258    --
26259    -- Bug 4922099
26260    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26261           (NVL(l_enc_upg_option, 'N') = 'O')
26262         ) AND
26263         (l_bflow_method_code = 'PRIOR_ENTRY')
26264       )
26265    THEN
26266       IF
26267       --
26268       1 = 1
26269       --
26270       THEN
26271       xla_accounting_err_pkg.build_message
26272                                     (p_appli_s_name            => 'XLA'
26273                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26274                                     ,p_token_1                 => 'LINE_NUMBER'
26275                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
26276                                     ,p_token_2                 => 'LINE_TYPE_NAME'
26277                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
26278                                                                              l_component_type
26279                                                                             ,l_component_code
26280                                                                             ,l_component_type_code
26281                                                                             ,l_component_appl_id
26282                                                                             ,l_amb_context_code
26283                                                                             ,l_entity_code
26284                                                                             ,l_event_class_code
26285                                                                            )
26286                                     ,p_token_3                 => 'OWNER'
26287                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
26288                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
26289                                                                           ,p_lookup_code    => l_component_type_code
26290                                                                          )
26291                                     ,p_token_4                 => 'PRODUCT_NAME'
26292                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26293                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26294                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26295                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26296                                     ,p_ae_header_id            =>  NULL
26297                                        );
26298 
26299         IF (C_LEVEL_ERROR>= g_log_level) THEN
26300                  trace
26301                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26302                       ,p_level    => C_LEVEL_ERROR
26303                       ,p_module   => l_log_module);
26304         END IF;
26305       END IF;
26306    END IF;
26307    --
26308    --
26309    ------------------------------------------------------------------------------------------------
26310    -- 4219869 Business Flow
26311    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26312    -- Prior Entry.  Currently, the following code is always generated.
26313    ------------------------------------------------------------------------------------------------
26314    -- No ValidateCurrentLine for business flow method of Prior Entry
26315 
26316    ------------------------------------------------------------------------------------
26317    -- 4219869 Business Flow
26318    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26319    ------------------------------------------------------------------------------------
26320    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26321 
26322    ----------------------------------------------------------------------------------
26323    -- 4219869 Business Flow
26324    -- Update journal entry status -- Need to generate this within IF <condition>
26325    ----------------------------------------------------------------------------------
26326    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26327          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26328          ,p_balance_type_code => l_balance_type_code
26329          );
26330 
26331    -------------------------------------------------------------------------------------------
26332    -- 4262811 - Generate the Accrual Reversal lines
26333    -------------------------------------------------------------------------------------------
26334    BEGIN
26338          l_acc_rev_flag := 'N';
26335       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26336                               (g_array_event(p_event_id).array_value_num('header_index'));
26337       IF l_acc_rev_flag IS NULL THEN
26339       END IF;
26340    EXCEPTION
26341       WHEN OTHERS THEN
26342          l_acc_rev_flag := 'N';
26343    END;
26344    --
26345    IF (l_acc_rev_flag = 'Y') THEN
26346 
26347        -- 4645092  ------------------------------------------------------------------------------
26348        -- To allow MPA report to determine if it should generate report process
26349        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26350        ------------------------------------------------------------------------------------------
26351 
26352        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26353        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26354    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
26355    -- call ADRs
26356    -- Bug 4922099
26357    --
26358    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26359         (NVL(l_actual_upg_option, 'N') = 'O') OR
26360         (NVL(l_enc_upg_option, 'N') = 'O')
26361       )
26362    THEN
26363    NULL;
26364    --
26365    --
26366    
26367    --
26368    --
26369    END IF;
26370 
26371        --
26372        -- Update the line information that should be overwritten
26373        --
26374        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26375                                          p_header_num   => 1);
26376        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
26377 
26378        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26379 
26380        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
26381           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26382        END IF;
26383 
26384       --
26385       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26386       --
26387       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26388           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
26389       ELSE
26390           ---------------------------------------------------------------------------------------------------
26391           -- 4262811a Switch Sign
26392           ---------------------------------------------------------------------------------------------------
26393           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
26394           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26395                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26396           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26397                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26398           -- 5132302
26399           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26400                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26401 
26402       END IF;
26403 
26404       -- 4955764
26405       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26406       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26407 
26408 
26409       XLA_AE_LINES_PKG.ValidateCurrentLine;
26410       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26411 
26412       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26413                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26414                ,p_balance_type_code => l_balance_type_code);
26415 
26416    END IF;
26417 
26418    -----------------------------------------------------------------------------------------
26419    -- 4262811 Multiperiod Accounting
26420    -----------------------------------------------------------------------------------------
26421      -- No MPA option is assigned.
26422 
26423 
26424 END IF;
26425 END IF;
26426 --
26427 
26428 --
26429 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26430    trace
26431       (p_msg      => 'END of AcctLineType_72'
26432       ,p_level    => C_LEVEL_PROCEDURE
26433       ,p_module   => l_log_module);
26434 END IF;
26435 --
26436 EXCEPTION
26437   WHEN xla_exceptions_pkg.application_exception THEN
26438       RAISE;
26439   WHEN OTHERS THEN
26440        xla_exceptions_pkg.raise_message
26441            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_72');
26442 END AcctLineType_72;
26443 --
26444 
26445 ---------------------------------------
26446 --
26447 -- PRIVATE FUNCTION
26448 --         AcctLineType_73
26449 --
26450 ---------------------------------------
26451 PROCEDURE AcctLineType_73 (
26452   p_application_id        IN NUMBER
26453  ,p_event_id              IN NUMBER
26454  ,p_calculate_acctd_flag  IN VARCHAR2
26455  ,p_calculate_g_l_flag    IN VARCHAR2
26456  ,p_actual_flag           IN OUT VARCHAR2
26457  ,p_balance_type_code     OUT VARCHAR2
26458  ,p_gain_or_loss_ref      OUT VARCHAR2
26459  
26460 --Bank Cash Clearing Account
26461  , p_source_23            IN NUMBER
26462 --Automatic Offsets Flag
26463  , p_source_35            IN VARCHAR2
26464  , p_source_35_meaning    IN VARCHAR2
26468  , p_source_43            IN VARCHAR2
26465 --Accounting Reversal Indicator
26466  , p_source_41            IN VARCHAR2
26467 --Distribution Link Type
26469 --Override Accounted Amount Indicator
26470  , p_source_68            IN VARCHAR2
26471  , p_source_68_meaning    IN VARCHAR2
26472 --Third Party Type
26473  , p_source_71            IN VARCHAR2
26474 --Invoice Distribution Tax Line Identifier
26475  , p_source_74            IN NUMBER
26476 --Invoice Distribution Tax Distribution Identifier from Tax
26477  , p_source_75            IN NUMBER
26478 --Invoice Distribution Summary Tax Line Identifier
26479  , p_source_76            IN NUMBER
26480 --Business Flow Accounts Payable Application Identifier
26481  , p_source_79            IN NUMBER
26482 --Business Flow Invoice Distribution Type
26483  , p_source_80            IN VARCHAR2
26484 --Business Flow Invoice Entity Code
26485  , p_source_81            IN VARCHAR2
26486 --Business Flow Invoice Distribution Identifier
26487  , p_source_82            IN NUMBER
26488 --Business Flow Invoice Identifier
26489  , p_source_83            IN NUMBER
26490 --When to Account for Payment Option
26491  , p_source_89            IN VARCHAR2
26492 --Payment Distribution Type
26493  , p_source_90            IN VARCHAR2
26494  , p_source_90_meaning    IN VARCHAR2
26495 --Payment Distribution Amount
26496  , p_source_91            IN NUMBER
26497 --Payment Distribution Identifier
26498  , p_source_96            IN NUMBER
26499 --Payment Supplier Identifier
26500  , p_source_102            IN NUMBER
26501 --Payment Supplier Site Identifier
26502  , p_source_103            IN NUMBER
26503 --Payment Distribution Reversed Identifier
26504  , p_source_104            IN NUMBER
26505 --Pooled Bank Account Option
26506  , p_source_105            IN VARCHAR2
26507  , p_source_105_meaning    IN VARCHAR2
26508 --Payment Currency Code
26509  , p_source_106            IN VARCHAR2
26510 --Payment Maturity Date
26511  , p_source_107            IN DATE
26512 --Payment Distribution (Payment Rate) Ledger Amount
26513  , p_source_108            IN NUMBER
26514 --Payment Exchange Date
26515  , p_source_110            IN DATE
26516 --Payment Exchange Rate
26517  , p_source_111            IN NUMBER
26518 --Payment Exchange Rate Type
26519  , p_source_112            IN VARCHAR2
26520 --Payment Type
26521  , p_source_115            IN VARCHAR2
26522  , p_source_115_meaning    IN VARCHAR2
26523 --Payment Processing Type
26524  , p_source_116            IN VARCHAR2
26525 --Invoice Distribution Amount of the Payment Distribution
26526  , p_source_117            IN NUMBER
26527 )
26528 IS
26529 
26530 l_component_type              VARCHAR2(80);
26531 l_component_code              VARCHAR2(30);
26532 l_component_type_code         VARCHAR2(1);
26533 l_component_appl_id           INTEGER;
26534 l_amb_context_code            VARCHAR2(30);
26535 l_entity_code                 VARCHAR2(30);
26536 l_event_class_code            VARCHAR2(30);
26537 l_ae_header_id                NUMBER;
26538 l_event_type_code             VARCHAR2(30);
26539 l_line_definition_code        VARCHAR2(30);
26540 l_line_definition_owner_code  VARCHAR2(1);
26541 --
26542 -- adr variables
26543 l_segment                     VARCHAR2(30);
26544 l_ccid                        NUMBER;
26545 l_adr_transaction_coa_id      NUMBER;
26546 l_adr_accounting_coa_id       NUMBER;
26547 l_adr_flexfield_segment_code  VARCHAR2(30);
26548 l_adr_flex_value_set_id       NUMBER;
26549 l_adr_value_type_code         VARCHAR2(30);
26550 l_adr_value_combination_id    NUMBER;
26551 l_adr_value_segment_code      VARCHAR2(30);
26552 
26553 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
26554 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
26555 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
26556 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
26557 
26558 -- 4262811 Variables ------------------------------------------------------------------------------------------
26559 l_entered_amt_idx             NUMBER;
26560 l_accted_amt_idx              NUMBER;
26561 l_acc_rev_flag                VARCHAR2(1);
26562 l_accrual_line_num            NUMBER;
26563 l_tmp_amt                     NUMBER;
26564 l_acc_rev_natural_side_code   VARCHAR2(1);
26565 
26566 l_num_entries                 NUMBER;
26567 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
26568 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
26569 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
26570 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
26571 l_recog_line_1                NUMBER;
26572 l_recog_line_2                NUMBER;
26573 
26574 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
26575 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
26576 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
26577 
26578 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26579 
26580 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
26581 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
26582 
26583 ---------------------------------------------------------------------------------------------------------------
26584 
26585 
26586 --
26587 -- bulk performance
26588 --
26589 l_balance_type_code           VARCHAR2(1);
26590 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
26591 l_log_module                  VARCHAR2(240);
26592 
26593 --
26594 -- Upgrade strategy
26595 --
26596 l_actual_upg_option           VARCHAR2(1);
26600 BEGIN
26597 l_enc_upg_option           VARCHAR2(1);
26598 
26599 --
26601 --
26602 IF g_log_enabled THEN
26603       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_73';
26604 END IF;
26605 --
26606 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26607 
26608       trace
26609          (p_msg      => 'BEGIN of AcctLineType_73'
26610          ,p_level    => C_LEVEL_PROCEDURE
26611          ,p_module   => l_log_module);
26612 
26613 END IF;
26614 --
26615 l_component_type             := 'AMB_JLT';
26616 l_component_code             := 'AP_CASH_CLEAR_PMT';
26617 l_component_type_code        := 'S';
26618 l_component_appl_id          :=  200;
26619 l_amb_context_code           := 'DEFAULT';
26620 l_entity_code                := 'AP_PAYMENTS';
26621 l_event_class_code           := 'PAYMENTS';
26622 l_event_type_code            := 'PAYMENTS_ALL';
26623 l_line_definition_owner_code := 'S';
26624 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
26625 --
26626 l_balance_type_code          := 'A';
26627 l_segment                     := NULL;
26628 l_ccid                        := NULL;
26629 l_adr_transaction_coa_id      := NULL;
26630 l_adr_accounting_coa_id       := NULL;
26631 l_adr_flexfield_segment_code  := NULL;
26632 l_adr_flex_value_set_id       := NULL;
26633 l_adr_value_type_code         := NULL;
26634 l_adr_value_combination_id    := NULL;
26635 l_adr_value_segment_code      := NULL;
26636 
26637 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
26638 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
26639 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
26640 l_budgetary_control_flag     := 'N';
26641 
26642 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
26643 l_bflow_applied_to_amt       := NULL; -- 5132302
26644 l_entered_amt_idx            := NULL;          -- 4262811
26645 l_accted_amt_idx             := NULL;          -- 4262811
26646 l_acc_rev_flag               := NULL;          -- 4262811
26647 l_accrual_line_num           := NULL;          -- 4262811
26648 l_tmp_amt                    := NULL;          -- 4262811
26649 --
26650  
26651 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26652     l_balance_type_code <> 'B' THEN
26653 IF NVL(p_source_89,'
26654 ') =  'ALWAYS_ALWAYS' AND 
26655 (NVL(p_source_35,'
26656 ') <>  'Y' OR 
26657 NVL(p_source_35,'
26658 ') =  'Y' AND 
26659 NVL(p_source_105,'
26660 ') <>  'Y') AND 
26661 p_source_107 IS NULL AND 
26662 NVL(p_source_90,'
26663 ') =  'CASH' AND 
26664 NVL(p_source_115,'
26665 ') <>  'R' AND 
26666 NVL(p_source_116,'
26667 ') <>  'PAYMENTCARD'
26668  THEN 
26669 
26670    --
26671    XLA_AE_LINES_PKG.SetNewLine;
26672 
26673    p_balance_type_code          := l_balance_type_code;
26674    -- set the flag so later we will know whether the gain loss line needs to be created
26675    
26676    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26677      p_actual_flag :='A';
26678    END IF;
26679 
26680    --
26681    -- bulk performance
26682    --
26683    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26684                                       p_header_num   => 0); -- 4262811
26685    --
26686    -- set accounting line options
26687    --
26688    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26689            p_natural_side_code          => 'C'
26690          , p_gain_or_loss_flag          => 'N'
26691          , p_gl_transfer_mode_code      => 'S'
26692          , p_acct_entry_type_code       => 'A'
26693          , p_switch_side_flag           => 'Y'
26694          , p_merge_duplicate_code       => 'A'
26695          );
26696    --
26697    l_acc_rev_natural_side_code := 'D';  -- 4262811
26698    -- 
26699    --
26700    -- set accounting line type info
26701    --
26702    xla_ae_lines_pkg.SetAcctLineType
26703       (p_component_type             => l_component_type
26704       ,p_event_type_code            => l_event_type_code
26705       ,p_line_definition_owner_code => l_line_definition_owner_code
26706       ,p_line_definition_code       => l_line_definition_code
26707       ,p_accounting_line_code       => l_component_code
26708       ,p_accounting_line_type_code  => l_component_type_code
26709       ,p_accounting_line_appl_id    => l_component_appl_id
26710       ,p_amb_context_code           => l_amb_context_code
26711       ,p_entity_code                => l_entity_code
26712       ,p_event_class_code           => l_event_class_code);
26713    --
26714    -- set accounting class
26715    --
26716    xla_ae_lines_pkg.SetAcctClass(
26717            p_accounting_class_code  => 'CASH_CLEARING'
26718          , p_ae_header_id           => l_ae_header_id
26719          );
26720 
26721    --
26722    -- set rounding class
26723    --
26724    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26725                       'CASH_CLEARING';
26726 
26727    --
26728    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26729    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26730    --
26731    -- bulk performance
26732    --
26733    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26734 
26735    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26736       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26737 
26738    -- 4955764
26739    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26743    
26740       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26741 
26742    -- 4458381 Public Sector Enh
26744    --
26745    -- set accounting attributes for the line type
26746    --
26747    l_entered_amt_idx := 10;
26748    l_accted_amt_idx  := 15;
26749    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
26750    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26751    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
26752    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
26753    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
26754    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
26755    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
26756    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26757    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
26758    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
26759    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
26760    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
26761    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
26762    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26763    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
26764    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
26765    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
26766    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
26767    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
26768    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
26769    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
26770    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
26771    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
26772    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
26773    l_rec_acct_attrs.array_date_value(12)  := p_source_110;
26774    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
26775    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
26776    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
26777    l_rec_acct_attrs.array_char_value(14)  := p_source_112;
26778    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
26779    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
26780    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
26781    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
26782    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
26783    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
26784    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
26785    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
26786    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
26787    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
26788    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
26789    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
26790    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
26791    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
26792    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
26793    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
26794    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
26795    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
26796    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
26797    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
26798 
26799    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26800    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26801 
26802    ---------------------------------------------------------------------------------------------------------------
26803    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26804    ---------------------------------------------------------------------------------------------------------------
26805    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26806 
26807    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26808    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26809 
26810    IF xla_accounting_cache_pkg.GetValueChar
26811          (p_source_code         => 'LEDGER_CATEGORY_CODE'
26812          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26813    AND l_bflow_method_code = 'PRIOR_ENTRY'
26814 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26815    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26816          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26817        )
26818    THEN
26819          xla_ae_lines_pkg.BflowUpgEntry
26820            (p_business_method_code    => l_bflow_method_code
26821            ,p_business_class_code     => l_bflow_class_code
26822            ,p_balance_type            => l_balance_type_code);
26823    ELSE
26824       NULL;
26825 -- No business flow processing for business flow method of NONE.
26826    END IF;
26827 
26828    --
26829    -- call analytical criteria
26830    --
26831    
26832    --
26833    -- call description
26834    --
26835    -- No description or it is inherited.
26836    --
26837    -- call ADRs
26838    -- Bug 4922099
26839    --
26840    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26841         (NVL(l_actual_upg_option, 'N') = 'O') OR
26842         (NVL(l_enc_upg_option, 'N') = 'O')
26843       )
26844    THEN
26845    NULL;
26846    --
26847    --
26848    
26852 , p_source_23 => p_source_23
26849   l_ccid := AcctDerRule_35(
26850            p_application_id           => p_application_id
26851          , p_ae_header_id             => l_ae_header_id 
26853          , x_transaction_coa_id       => l_adr_transaction_coa_id
26854          , x_accounting_coa_id        => l_adr_accounting_coa_id
26855          , x_value_type_code          => l_adr_value_type_code
26856          , p_side                     => 'NA'
26857    );
26858 
26859    xla_ae_lines_pkg.set_ccid(
26860     p_code_combination_id          => l_ccid
26861   , p_value_type_code              => l_adr_value_type_code
26862   , p_transaction_coa_id           => l_adr_transaction_coa_id
26863   , p_accounting_coa_id            => l_adr_accounting_coa_id
26864   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
26865   , p_adr_type_code                => 'S'
26866   , p_component_type               => l_component_type
26867   , p_component_code               => l_component_code
26868   , p_component_type_code          => l_component_type_code
26869   , p_component_appl_id            => l_component_appl_id
26870   , p_amb_context_code             => l_amb_context_code
26871   , p_side                         => 'NA'
26872   );
26873 
26874 
26875    --
26876    --
26877    END IF;
26878    --
26879    -- Bug 4922099
26880    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26881           (NVL(l_enc_upg_option, 'N') = 'O')
26882         ) AND
26883         (l_bflow_method_code = 'PRIOR_ENTRY')
26884       )
26885    THEN
26886       IF
26887       --
26888       1 = 2
26889       --
26890       THEN
26891       xla_accounting_err_pkg.build_message
26892                                     (p_appli_s_name            => 'XLA'
26893                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26894                                     ,p_token_1                 => 'LINE_NUMBER'
26895                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
26896                                     ,p_token_2                 => 'LINE_TYPE_NAME'
26897                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
26898                                                                              l_component_type
26899                                                                             ,l_component_code
26900                                                                             ,l_component_type_code
26901                                                                             ,l_component_appl_id
26902                                                                             ,l_amb_context_code
26903                                                                             ,l_entity_code
26904                                                                             ,l_event_class_code
26905                                                                            )
26906                                     ,p_token_3                 => 'OWNER'
26907                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
26908                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
26909                                                                           ,p_lookup_code    => l_component_type_code
26910                                                                          )
26911                                     ,p_token_4                 => 'PRODUCT_NAME'
26912                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26913                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26914                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26915                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26916                                     ,p_ae_header_id            =>  NULL
26917                                        );
26918 
26919         IF (C_LEVEL_ERROR>= g_log_level) THEN
26920                  trace
26921                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26922                       ,p_level    => C_LEVEL_ERROR
26923                       ,p_module   => l_log_module);
26924         END IF;
26925       END IF;
26926    END IF;
26927    --
26928    --
26929    ------------------------------------------------------------------------------------------------
26930    -- 4219869 Business Flow
26931    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26932    -- Prior Entry.  Currently, the following code is always generated.
26933    ------------------------------------------------------------------------------------------------
26934    XLA_AE_LINES_PKG.ValidateCurrentLine;
26935 
26936    ------------------------------------------------------------------------------------
26937    -- 4219869 Business Flow
26938    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26939    ------------------------------------------------------------------------------------
26940    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26941 
26942    ----------------------------------------------------------------------------------
26943    -- 4219869 Business Flow
26944    -- Update journal entry status -- Need to generate this within IF <condition>
26945    ----------------------------------------------------------------------------------
26946    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26947          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26948          ,p_balance_type_code => l_balance_type_code
26949          );
26950 
26951    -------------------------------------------------------------------------------------------
26955       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26952    -- 4262811 - Generate the Accrual Reversal lines
26953    -------------------------------------------------------------------------------------------
26954    BEGIN
26956                               (g_array_event(p_event_id).array_value_num('header_index'));
26957       IF l_acc_rev_flag IS NULL THEN
26958          l_acc_rev_flag := 'N';
26959       END IF;
26960    EXCEPTION
26961       WHEN OTHERS THEN
26962          l_acc_rev_flag := 'N';
26963    END;
26964    --
26965    IF (l_acc_rev_flag = 'Y') THEN
26966 
26967        -- 4645092  ------------------------------------------------------------------------------
26968        -- To allow MPA report to determine if it should generate report process
26969        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26970        ------------------------------------------------------------------------------------------
26971 
26972        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26973        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26974    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
26975    -- call ADRs
26976    -- Bug 4922099
26977    --
26978    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26979         (NVL(l_actual_upg_option, 'N') = 'O') OR
26980         (NVL(l_enc_upg_option, 'N') = 'O')
26981       )
26982    THEN
26983    NULL;
26984    --
26985    --
26986    
26987   l_ccid := AcctDerRule_35(
26988            p_application_id           => p_application_id
26989          , p_ae_header_id             => l_ae_header_id 
26990 , p_source_23 => p_source_23
26991          , x_transaction_coa_id       => l_adr_transaction_coa_id
26992          , x_accounting_coa_id        => l_adr_accounting_coa_id
26993          , x_value_type_code          => l_adr_value_type_code
26994          , p_side                     => 'NA'
26995    );
26996 
26997    xla_ae_lines_pkg.set_ccid(
26998     p_code_combination_id          => l_ccid
26999   , p_value_type_code              => l_adr_value_type_code
27000   , p_transaction_coa_id           => l_adr_transaction_coa_id
27001   , p_accounting_coa_id            => l_adr_accounting_coa_id
27002   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
27003   , p_adr_type_code                => 'S'
27004   , p_component_type               => l_component_type
27005   , p_component_code               => l_component_code
27006   , p_component_type_code          => l_component_type_code
27007   , p_component_appl_id            => l_component_appl_id
27008   , p_amb_context_code             => l_amb_context_code
27009   , p_side                         => 'NA'
27010   );
27011 
27012 
27013    --
27014    --
27015    END IF;
27016 
27017        --
27018        -- Update the line information that should be overwritten
27019        --
27020        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27021                                          p_header_num   => 1);
27022        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
27023 
27024        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27025 
27026        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
27027           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27028        END IF;
27029 
27030       --
27031       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27032       --
27033       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27034           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
27035       ELSE
27036           ---------------------------------------------------------------------------------------------------
27037           -- 4262811a Switch Sign
27038           ---------------------------------------------------------------------------------------------------
27039           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
27040           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27041                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27042           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27043                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27044           -- 5132302
27045           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27046                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27047 
27048       END IF;
27049 
27050       -- 4955764
27051       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27052       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27053 
27054 
27055       XLA_AE_LINES_PKG.ValidateCurrentLine;
27056       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27057 
27058       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27059                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27060                ,p_balance_type_code => l_balance_type_code);
27061 
27062    END IF;
27063 
27064    -----------------------------------------------------------------------------------------
27065    -- 4262811 Multiperiod Accounting
27066    -----------------------------------------------------------------------------------------
27067      -- No MPA option is assigned.
27068 
27069 
27070 END IF;
27074 --
27071 END IF;
27072 --
27073 
27075 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27076    trace
27077       (p_msg      => 'END of AcctLineType_73'
27078       ,p_level    => C_LEVEL_PROCEDURE
27079       ,p_module   => l_log_module);
27080 END IF;
27081 --
27082 EXCEPTION
27083   WHEN xla_exceptions_pkg.application_exception THEN
27084       RAISE;
27085   WHEN OTHERS THEN
27086        xla_exceptions_pkg.raise_message
27087            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_73');
27088 END AcctLineType_73;
27089 --
27090 
27091 ---------------------------------------
27092 --
27093 -- PRIVATE FUNCTION
27094 --         AcctLineType_74
27095 --
27096 ---------------------------------------
27097 PROCEDURE AcctLineType_74 (
27098   p_application_id        IN NUMBER
27099  ,p_event_id              IN NUMBER
27100  ,p_calculate_acctd_flag  IN VARCHAR2
27101  ,p_calculate_g_l_flag    IN VARCHAR2
27102  ,p_actual_flag           IN OUT VARCHAR2
27103  ,p_balance_type_code     OUT VARCHAR2
27104  ,p_gain_or_loss_ref      OUT VARCHAR2
27105  
27106 --Automatic Offsets Value
27107  , p_source_3            IN VARCHAR2
27108  , p_source_3_meaning    IN VARCHAR2
27109 --Bank Cash Clearing Account
27110  , p_source_23            IN NUMBER
27111 --Accounting Reversal Indicator
27112  , p_source_41            IN VARCHAR2
27113 --Distribution Link Type
27114  , p_source_43            IN VARCHAR2
27115 --Override Accounted Amount Indicator
27116  , p_source_68            IN VARCHAR2
27117  , p_source_68_meaning    IN VARCHAR2
27118 --Third Party Type
27119  , p_source_71            IN VARCHAR2
27120 --Invoice Distribution Tax Line Identifier
27121  , p_source_74            IN NUMBER
27122 --Invoice Distribution Tax Distribution Identifier from Tax
27123  , p_source_75            IN NUMBER
27124 --Invoice Distribution Summary Tax Line Identifier
27125  , p_source_76            IN NUMBER
27126 --Business Flow Accounts Payable Application Identifier
27127  , p_source_79            IN NUMBER
27128 --Business Flow Invoice Distribution Type
27129  , p_source_80            IN VARCHAR2
27130 --Business Flow Invoice Entity Code
27131  , p_source_81            IN VARCHAR2
27132 --Business Flow Invoice Distribution Identifier
27133  , p_source_82            IN NUMBER
27134 --Business Flow Invoice Identifier
27135  , p_source_83            IN NUMBER
27136 --When to Account for Payment Option
27137  , p_source_89            IN VARCHAR2
27138 --Payment Distribution Type
27139  , p_source_90            IN VARCHAR2
27140  , p_source_90_meaning    IN VARCHAR2
27141 --Payment Distribution Amount
27142  , p_source_91            IN NUMBER
27143 --Payment Distribution Identifier
27144  , p_source_96            IN NUMBER
27145 --Payment Supplier Identifier
27146  , p_source_102            IN NUMBER
27147 --Payment Supplier Site Identifier
27148  , p_source_103            IN NUMBER
27149 --Payment Distribution Reversed Identifier
27150  , p_source_104            IN NUMBER
27151 --Pooled Bank Account Option
27152  , p_source_105            IN VARCHAR2
27153  , p_source_105_meaning    IN VARCHAR2
27154 --Payment Currency Code
27155  , p_source_106            IN VARCHAR2
27156 --Payment Maturity Date
27157  , p_source_107            IN DATE
27158 --Payment Distribution (Payment Rate) Ledger Amount
27159  , p_source_108            IN NUMBER
27160 --Payment Exchange Date
27161  , p_source_110            IN DATE
27162 --Payment Exchange Rate
27163  , p_source_111            IN NUMBER
27164 --Payment Exchange Rate Type
27165  , p_source_112            IN VARCHAR2
27166 --Payment Type
27167  , p_source_115            IN VARCHAR2
27168  , p_source_115_meaning    IN VARCHAR2
27169 --Payment Processing Type
27170  , p_source_116            IN VARCHAR2
27171 --Invoice Distribution Amount of the Payment Distribution
27172  , p_source_117            IN NUMBER
27173 )
27174 IS
27175 
27176 l_component_type              VARCHAR2(80);
27177 l_component_code              VARCHAR2(30);
27178 l_component_type_code         VARCHAR2(1);
27179 l_component_appl_id           INTEGER;
27180 l_amb_context_code            VARCHAR2(30);
27181 l_entity_code                 VARCHAR2(30);
27182 l_event_class_code            VARCHAR2(30);
27183 l_ae_header_id                NUMBER;
27184 l_event_type_code             VARCHAR2(30);
27185 l_line_definition_code        VARCHAR2(30);
27186 l_line_definition_owner_code  VARCHAR2(1);
27187 --
27188 -- adr variables
27189 l_segment                     VARCHAR2(30);
27190 l_ccid                        NUMBER;
27191 l_adr_transaction_coa_id      NUMBER;
27192 l_adr_accounting_coa_id       NUMBER;
27193 l_adr_flexfield_segment_code  VARCHAR2(30);
27194 l_adr_flex_value_set_id       NUMBER;
27195 l_adr_value_type_code         VARCHAR2(30);
27196 l_adr_value_combination_id    NUMBER;
27197 l_adr_value_segment_code      VARCHAR2(30);
27198 
27199 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
27200 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
27201 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
27202 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
27203 
27204 -- 4262811 Variables ------------------------------------------------------------------------------------------
27205 l_entered_amt_idx             NUMBER;
27206 l_accted_amt_idx              NUMBER;
27207 l_acc_rev_flag                VARCHAR2(1);
27208 l_accrual_line_num            NUMBER;
27212 l_num_entries                 NUMBER;
27209 l_tmp_amt                     NUMBER;
27210 l_acc_rev_natural_side_code   VARCHAR2(1);
27211 
27213 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
27214 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
27215 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
27216 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
27217 l_recog_line_1                NUMBER;
27218 l_recog_line_2                NUMBER;
27219 
27220 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
27221 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
27222 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
27223 
27224 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27225 
27226 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
27227 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
27228 
27229 ---------------------------------------------------------------------------------------------------------------
27230 
27231 
27232 --
27233 -- bulk performance
27234 --
27235 l_balance_type_code           VARCHAR2(1);
27236 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
27237 l_log_module                  VARCHAR2(240);
27238 
27239 --
27240 -- Upgrade strategy
27241 --
27242 l_actual_upg_option           VARCHAR2(1);
27243 l_enc_upg_option           VARCHAR2(1);
27244 
27245 --
27246 BEGIN
27247 --
27248 IF g_log_enabled THEN
27249       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_74';
27250 END IF;
27251 --
27252 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27253 
27254       trace
27255          (p_msg      => 'BEGIN of AcctLineType_74'
27256          ,p_level    => C_LEVEL_PROCEDURE
27257          ,p_module   => l_log_module);
27258 
27259 END IF;
27260 --
27261 l_component_type             := 'AMB_JLT';
27262 l_component_code             := 'AP_CASH_CLEAR_PMT_AOS_AS';
27263 l_component_type_code        := 'S';
27264 l_component_appl_id          :=  200;
27265 l_amb_context_code           := 'DEFAULT';
27266 l_entity_code                := 'AP_PAYMENTS';
27267 l_event_class_code           := 'PAYMENTS';
27268 l_event_type_code            := 'PAYMENTS_ALL';
27269 l_line_definition_owner_code := 'S';
27270 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
27271 --
27272 l_balance_type_code          := 'A';
27273 l_segment                     := NULL;
27274 l_ccid                        := NULL;
27275 l_adr_transaction_coa_id      := NULL;
27276 l_adr_accounting_coa_id       := NULL;
27277 l_adr_flexfield_segment_code  := NULL;
27278 l_adr_flex_value_set_id       := NULL;
27279 l_adr_value_type_code         := NULL;
27280 l_adr_value_combination_id    := NULL;
27281 l_adr_value_segment_code      := NULL;
27282 
27283 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
27284 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
27285 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
27286 l_budgetary_control_flag     := 'N';
27287 
27288 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
27289 l_bflow_applied_to_amt       := NULL; -- 5132302
27290 l_entered_amt_idx            := NULL;          -- 4262811
27291 l_accted_amt_idx             := NULL;          -- 4262811
27292 l_acc_rev_flag               := NULL;          -- 4262811
27293 l_accrual_line_num           := NULL;          -- 4262811
27294 l_tmp_amt                    := NULL;          -- 4262811
27295 --
27296  
27297 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27298     l_balance_type_code <> 'B' THEN
27299 IF NVL(p_source_89,'
27300 ') =  'ALWAYS_ALWAYS' AND 
27301 (NVL(p_source_105,'
27302 ') =  'Y' AND 
27303 NVL(p_source_3,'
27304 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
27305 p_source_107 IS NULL AND 
27306 NVL(p_source_90,'
27307 ') =  'CASH' AND 
27308 NVL(p_source_115,'
27309 ') <>  'R' AND 
27310 NVL(p_source_116,'
27311 ') <>  'PAYMENTCARD'
27312  THEN 
27313 
27314    --
27315    XLA_AE_LINES_PKG.SetNewLine;
27316 
27317    p_balance_type_code          := l_balance_type_code;
27318    -- set the flag so later we will know whether the gain loss line needs to be created
27319    
27320    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27321      p_actual_flag :='A';
27322    END IF;
27323 
27324    --
27325    -- bulk performance
27326    --
27327    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27328                                       p_header_num   => 0); -- 4262811
27329    --
27330    -- set accounting line options
27331    --
27332    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27333            p_natural_side_code          => 'C'
27334          , p_gain_or_loss_flag          => 'N'
27335          , p_gl_transfer_mode_code      => 'S'
27336          , p_acct_entry_type_code       => 'A'
27337          , p_switch_side_flag           => 'Y'
27338          , p_merge_duplicate_code       => 'A'
27339          );
27340    --
27341    l_acc_rev_natural_side_code := 'D';  -- 4262811
27342    -- 
27343    --
27344    -- set accounting line type info
27345    --
27346    xla_ae_lines_pkg.SetAcctLineType
27347       (p_component_type             => l_component_type
27348       ,p_event_type_code            => l_event_type_code
27349       ,p_line_definition_owner_code => l_line_definition_owner_code
27350       ,p_line_definition_code       => l_line_definition_code
27354       ,p_amb_context_code           => l_amb_context_code
27351       ,p_accounting_line_code       => l_component_code
27352       ,p_accounting_line_type_code  => l_component_type_code
27353       ,p_accounting_line_appl_id    => l_component_appl_id
27355       ,p_entity_code                => l_entity_code
27356       ,p_event_class_code           => l_event_class_code);
27357    --
27358    -- set accounting class
27359    --
27360    xla_ae_lines_pkg.SetAcctClass(
27361            p_accounting_class_code  => 'CASH_CLEARING'
27362          , p_ae_header_id           => l_ae_header_id
27363          );
27364 
27365    --
27366    -- set rounding class
27367    --
27368    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27369                       'CASH_CLEARING';
27370 
27371    --
27372    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27373    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27374    --
27375    -- bulk performance
27376    --
27377    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27378 
27379    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27380       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27381 
27382    -- 4955764
27383    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27384       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27385 
27386    -- 4458381 Public Sector Enh
27387    
27388    --
27389    -- set accounting attributes for the line type
27390    --
27391    l_entered_amt_idx := 10;
27392    l_accted_amt_idx  := 15;
27393    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
27394    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27395    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
27396    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
27397    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
27398    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
27399    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
27400    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
27401    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
27402    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
27403    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
27404    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
27405    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
27406    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
27407    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
27408    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
27409    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
27410    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
27411    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
27412    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
27413    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
27414    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
27415    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
27416    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
27417    l_rec_acct_attrs.array_date_value(12)  := p_source_110;
27418    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
27419    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
27420    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
27421    l_rec_acct_attrs.array_char_value(14)  := p_source_112;
27422    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
27423    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
27424    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
27425    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
27426    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
27427    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
27428    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
27429    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
27430    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
27431    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
27432    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
27433    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
27434    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
27435    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
27436    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
27437    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
27438    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
27439    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
27440    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
27441    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
27442 
27443    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27444    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27445 
27446    ---------------------------------------------------------------------------------------------------------------
27447    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27448    ---------------------------------------------------------------------------------------------------------------
27449    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27450 
27451    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27455          (p_source_code         => 'LEDGER_CATEGORY_CODE'
27452    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27453 
27454    IF xla_accounting_cache_pkg.GetValueChar
27456          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27457    AND l_bflow_method_code = 'PRIOR_ENTRY'
27458 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27459    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27460          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27461        )
27462    THEN
27463          xla_ae_lines_pkg.BflowUpgEntry
27464            (p_business_method_code    => l_bflow_method_code
27465            ,p_business_class_code     => l_bflow_class_code
27466            ,p_balance_type            => l_balance_type_code);
27467    ELSE
27468       NULL;
27469 XLA_AE_LINES_PKG.business_flow_validation(
27470                                 p_business_method_code     => l_bflow_method_code
27471                                ,p_business_class_code      => l_bflow_class_code
27472                                ,p_inherit_description_flag => l_inherit_desc_flag);
27473    END IF;
27474 
27475    --
27476    -- call analytical criteria
27477    --
27478    
27479    --
27480    -- call description
27481    --
27482    -- No description or it is inherited.
27483    --
27484    -- call ADRs
27485    -- Bug 4922099
27486    --
27487    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27488         (NVL(l_actual_upg_option, 'N') = 'O') OR
27489         (NVL(l_enc_upg_option, 'N') = 'O')
27490       )
27491    THEN
27492    NULL;
27493    --
27494    --
27495    
27496    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
27497      p_code_combination_id      => TO_NUMBER(C_NUM)
27498    , p_value_type_code          => NULL
27499    , p_transaction_coa_id       => null
27500    , p_accounting_coa_id        => null
27501    , p_adr_code                 => NULL
27502    , p_adr_type_code            => NULL
27503    , p_component_type           => l_component_type
27504    , p_component_code           => l_component_code
27505    , p_component_type_code      => l_component_type_code
27506    , p_component_appl_id        => l_component_appl_id
27507    , p_amb_context_code         => l_amb_context_code
27508    , p_side                     => NULL
27509    );
27510 
27511    
27512   -- initialise segments
27513   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27514   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27515   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27516   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27517   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27518   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27519   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27520   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27521   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27522   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27523   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27524   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27525   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27526   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27527   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27528   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27529   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27530   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27531   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27532   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27533   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27534   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27535   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27536   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27537   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27538   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27539   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27540   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27541   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27542   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27543   --
27544 
27545    --
27546 
27547 
27548    l_segment := AcctDerRule_15(
27549            p_application_id           => p_application_id
27550          , p_ae_header_id             => l_ae_header_id 
27551 , p_source_23 => p_source_23
27552          , x_transaction_coa_id       => l_adr_transaction_coa_id
27553          , x_accounting_coa_id        => l_adr_accounting_coa_id
27554          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
27555          , x_flex_value_set_id        => l_adr_flex_value_set_id
27556          , x_value_type_code          => l_adr_value_type_code
27557          , x_value_combination_id     => l_adr_value_combination_id
27558          , x_value_segment_code       => l_adr_value_segment_code
27562 
27559          , p_side                     => 'NA'
27560          , p_override_seg_flag        => 'Y'
27561    );
27563    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
27564 
27565       xla_ae_lines_pkg.set_segment(
27566           p_to_segment_code         => 'GL_ACCOUNT'
27567         , p_segment_value           => l_segment
27568         , p_from_segment_code       => l_adr_value_segment_code
27569         , p_from_combination_id     => l_adr_value_combination_id
27570         , p_value_type_code         => l_adr_value_type_code
27571         , p_transaction_coa_id      => l_adr_transaction_coa_id
27572         , p_accounting_coa_id       => l_adr_accounting_coa_id
27573         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
27574         , p_flex_value_set_id       => l_adr_flex_value_set_id
27575         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
27576         , p_adr_type_code           => 'S'
27577         , p_component_type          => l_component_type
27578         , p_component_code          => l_component_code
27579         , p_component_type_code     => l_component_type_code
27580         , p_component_appl_id       => l_component_appl_id
27581         , p_amb_context_code        => l_amb_context_code
27582         , p_entity_code             => 'AP_PAYMENTS'
27583         , p_event_class_code        => 'PAYMENTS'
27584         , p_side                    => 'NA'
27585         );
27586 
27587   END IF;
27588 
27589    --
27590    --
27591    END IF;
27592    --
27593    -- Bug 4922099
27594    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27595           (NVL(l_enc_upg_option, 'N') = 'O')
27596         ) AND
27597         (l_bflow_method_code = 'PRIOR_ENTRY')
27598       )
27599    THEN
27600       IF
27601       --
27602       1 = 2
27603       --
27604       THEN
27605       xla_accounting_err_pkg.build_message
27606                                     (p_appli_s_name            => 'XLA'
27607                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27608                                     ,p_token_1                 => 'LINE_NUMBER'
27609                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
27610                                     ,p_token_2                 => 'LINE_TYPE_NAME'
27611                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
27612                                                                              l_component_type
27613                                                                             ,l_component_code
27614                                                                             ,l_component_type_code
27615                                                                             ,l_component_appl_id
27616                                                                             ,l_amb_context_code
27617                                                                             ,l_entity_code
27618                                                                             ,l_event_class_code
27619                                                                            )
27620                                     ,p_token_3                 => 'OWNER'
27621                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
27622                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
27623                                                                           ,p_lookup_code    => l_component_type_code
27624                                                                          )
27625                                     ,p_token_4                 => 'PRODUCT_NAME'
27626                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27627                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27628                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27629                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27630                                     ,p_ae_header_id            =>  NULL
27631                                        );
27632 
27633         IF (C_LEVEL_ERROR>= g_log_level) THEN
27634                  trace
27635                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27636                       ,p_level    => C_LEVEL_ERROR
27637                       ,p_module   => l_log_module);
27638         END IF;
27639       END IF;
27640    END IF;
27641    --
27642    --
27643    ------------------------------------------------------------------------------------------------
27644    -- 4219869 Business Flow
27645    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27646    -- Prior Entry.  Currently, the following code is always generated.
27647    ------------------------------------------------------------------------------------------------
27648    XLA_AE_LINES_PKG.ValidateCurrentLine;
27649 
27650    ------------------------------------------------------------------------------------
27651    -- 4219869 Business Flow
27652    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27653    ------------------------------------------------------------------------------------
27654    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27655 
27656    ----------------------------------------------------------------------------------
27657    -- 4219869 Business Flow
27658    -- Update journal entry status -- Need to generate this within IF <condition>
27659    ----------------------------------------------------------------------------------
27660    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27664 
27661          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27662          ,p_balance_type_code => l_balance_type_code
27663          );
27665    -------------------------------------------------------------------------------------------
27666    -- 4262811 - Generate the Accrual Reversal lines
27667    -------------------------------------------------------------------------------------------
27668    BEGIN
27669       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27670                               (g_array_event(p_event_id).array_value_num('header_index'));
27671       IF l_acc_rev_flag IS NULL THEN
27672          l_acc_rev_flag := 'N';
27673       END IF;
27674    EXCEPTION
27675       WHEN OTHERS THEN
27676          l_acc_rev_flag := 'N';
27677    END;
27678    --
27679    IF (l_acc_rev_flag = 'Y') THEN
27680 
27681        -- 4645092  ------------------------------------------------------------------------------
27682        -- To allow MPA report to determine if it should generate report process
27683        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27684        ------------------------------------------------------------------------------------------
27685 
27686        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27687        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27688    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
27689    -- call ADRs
27690    -- Bug 4922099
27691    --
27692    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27693         (NVL(l_actual_upg_option, 'N') = 'O') OR
27694         (NVL(l_enc_upg_option, 'N') = 'O')
27695       )
27696    THEN
27697    NULL;
27698    --
27699    --
27700    
27701    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
27702      p_code_combination_id      => TO_NUMBER(C_NUM)
27703    , p_value_type_code          => NULL
27704    , p_transaction_coa_id       => null
27705    , p_accounting_coa_id        => null
27706    , p_adr_code                 => NULL
27707    , p_adr_type_code            => NULL
27708    , p_component_type           => l_component_type
27709    , p_component_code           => l_component_code
27710    , p_component_type_code      => l_component_type_code
27711    , p_component_appl_id        => l_component_appl_id
27712    , p_amb_context_code         => l_amb_context_code
27713    , p_side                     => NULL
27714    );
27715 
27716    
27717   -- initialise segments
27718   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27719   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27720   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27721   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27722   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27723   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27724   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27725   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27726   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27727   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27728   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27729   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27730   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27731   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27732   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27733   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27734   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27735   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27736   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27737   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27738   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27739   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27740   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27741   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27742   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27743   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27744   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27745   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27746   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27747   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27748   --
27749 
27750    --
27751 
27752 
27753    l_segment := AcctDerRule_15(
27754            p_application_id           => p_application_id
27755          , p_ae_header_id             => l_ae_header_id 
27756 , p_source_23 => p_source_23
27757          , x_transaction_coa_id       => l_adr_transaction_coa_id
27758          , x_accounting_coa_id        => l_adr_accounting_coa_id
27759          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
27760          , x_flex_value_set_id        => l_adr_flex_value_set_id
27761          , x_value_type_code          => l_adr_value_type_code
27762          , x_value_combination_id     => l_adr_value_combination_id
27766    );
27763          , x_value_segment_code       => l_adr_value_segment_code
27764          , p_side                     => 'NA'
27765          , p_override_seg_flag        => 'Y'
27767 
27768    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
27769 
27770       xla_ae_lines_pkg.set_segment(
27771           p_to_segment_code         => 'GL_ACCOUNT'
27772         , p_segment_value           => l_segment
27773         , p_from_segment_code       => l_adr_value_segment_code
27774         , p_from_combination_id     => l_adr_value_combination_id
27775         , p_value_type_code         => l_adr_value_type_code
27776         , p_transaction_coa_id      => l_adr_transaction_coa_id
27777         , p_accounting_coa_id       => l_adr_accounting_coa_id
27778         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
27779         , p_flex_value_set_id       => l_adr_flex_value_set_id
27780         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
27781         , p_adr_type_code           => 'S'
27782         , p_component_type          => l_component_type
27783         , p_component_code          => l_component_code
27784         , p_component_type_code     => l_component_type_code
27785         , p_component_appl_id       => l_component_appl_id
27786         , p_amb_context_code        => l_amb_context_code
27787         , p_entity_code             => 'AP_PAYMENTS'
27788         , p_event_class_code        => 'PAYMENTS'
27789         , p_side                    => 'NA'
27790         );
27791 
27792   END IF;
27793 
27794    --
27795    --
27796    END IF;
27797 
27798        --
27799        -- Update the line information that should be overwritten
27800        --
27801        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27802                                          p_header_num   => 1);
27803        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
27804 
27805        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27806 
27807        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
27808           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27809        END IF;
27810 
27811       --
27812       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27813       --
27814       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27815           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
27816       ELSE
27817           ---------------------------------------------------------------------------------------------------
27818           -- 4262811a Switch Sign
27819           ---------------------------------------------------------------------------------------------------
27820           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
27821           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27822                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27823           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27824                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27825           -- 5132302
27826           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27827                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27828 
27829       END IF;
27830 
27831       -- 4955764
27832       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27833       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27834 
27835 
27836       XLA_AE_LINES_PKG.ValidateCurrentLine;
27837       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27838 
27839       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27840                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27841                ,p_balance_type_code => l_balance_type_code);
27842 
27843    END IF;
27844 
27845    -----------------------------------------------------------------------------------------
27846    -- 4262811 Multiperiod Accounting
27847    -----------------------------------------------------------------------------------------
27848      -- No MPA option is assigned.
27849 
27850 
27851 END IF;
27852 END IF;
27853 --
27854 
27855 --
27856 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27857    trace
27858       (p_msg      => 'END of AcctLineType_74'
27859       ,p_level    => C_LEVEL_PROCEDURE
27860       ,p_module   => l_log_module);
27861 END IF;
27862 --
27863 EXCEPTION
27864   WHEN xla_exceptions_pkg.application_exception THEN
27865       RAISE;
27866   WHEN OTHERS THEN
27867        xla_exceptions_pkg.raise_message
27868            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_74');
27869 END AcctLineType_74;
27870 --
27871 
27872 ---------------------------------------
27873 --
27874 -- PRIVATE FUNCTION
27875 --         AcctLineType_75
27876 --
27877 ---------------------------------------
27878 PROCEDURE AcctLineType_75 (
27879   p_application_id        IN NUMBER
27880  ,p_event_id              IN NUMBER
27881  ,p_calculate_acctd_flag  IN VARCHAR2
27882  ,p_calculate_g_l_flag    IN VARCHAR2
27883  ,p_actual_flag           IN OUT VARCHAR2
27884  ,p_balance_type_code     OUT VARCHAR2
27885  ,p_gain_or_loss_ref      OUT VARCHAR2
27886  
27887 --Automatic Offsets Value
27891  , p_source_23            IN NUMBER
27888  , p_source_3            IN VARCHAR2
27889  , p_source_3_meaning    IN VARCHAR2
27890 --Bank Cash Clearing Account
27892 --Accounting Reversal Indicator
27893  , p_source_41            IN VARCHAR2
27894 --Distribution Link Type
27895  , p_source_43            IN VARCHAR2
27896 --Override Accounted Amount Indicator
27897  , p_source_68            IN VARCHAR2
27898  , p_source_68_meaning    IN VARCHAR2
27899 --Third Party Type
27900  , p_source_71            IN VARCHAR2
27901 --Invoice Distribution Tax Line Identifier
27902  , p_source_74            IN NUMBER
27903 --Invoice Distribution Tax Distribution Identifier from Tax
27904  , p_source_75            IN NUMBER
27905 --Invoice Distribution Summary Tax Line Identifier
27906  , p_source_76            IN NUMBER
27907 --Business Flow Accounts Payable Application Identifier
27908  , p_source_79            IN NUMBER
27909 --Business Flow Invoice Distribution Type
27910  , p_source_80            IN VARCHAR2
27911 --Business Flow Invoice Entity Code
27912  , p_source_81            IN VARCHAR2
27913 --Business Flow Invoice Distribution Identifier
27914  , p_source_82            IN NUMBER
27915 --Business Flow Invoice Identifier
27916  , p_source_83            IN NUMBER
27917 --When to Account for Payment Option
27918  , p_source_89            IN VARCHAR2
27919 --Payment Distribution Type
27920  , p_source_90            IN VARCHAR2
27921  , p_source_90_meaning    IN VARCHAR2
27922 --Payment Distribution Amount
27923  , p_source_91            IN NUMBER
27924 --Payment Distribution Identifier
27925  , p_source_96            IN NUMBER
27926 --Payment Supplier Identifier
27927  , p_source_102            IN NUMBER
27928 --Payment Supplier Site Identifier
27929  , p_source_103            IN NUMBER
27930 --Payment Distribution Reversed Identifier
27931  , p_source_104            IN NUMBER
27932 --Pooled Bank Account Option
27933  , p_source_105            IN VARCHAR2
27934  , p_source_105_meaning    IN VARCHAR2
27935 --Payment Currency Code
27936  , p_source_106            IN VARCHAR2
27937 --Payment Maturity Date
27938  , p_source_107            IN DATE
27939 --Payment Distribution (Payment Rate) Ledger Amount
27940  , p_source_108            IN NUMBER
27941 --Payment Exchange Date
27942  , p_source_110            IN DATE
27943 --Payment Exchange Rate
27944  , p_source_111            IN NUMBER
27945 --Payment Exchange Rate Type
27946  , p_source_112            IN VARCHAR2
27947 --Payment Type
27948  , p_source_115            IN VARCHAR2
27949  , p_source_115_meaning    IN VARCHAR2
27950 --Payment Processing Type
27951  , p_source_116            IN VARCHAR2
27952 --Invoice Distribution Amount of the Payment Distribution
27953  , p_source_117            IN NUMBER
27954 )
27955 IS
27956 
27957 l_component_type              VARCHAR2(80);
27958 l_component_code              VARCHAR2(30);
27959 l_component_type_code         VARCHAR2(1);
27960 l_component_appl_id           INTEGER;
27961 l_amb_context_code            VARCHAR2(30);
27962 l_entity_code                 VARCHAR2(30);
27963 l_event_class_code            VARCHAR2(30);
27964 l_ae_header_id                NUMBER;
27965 l_event_type_code             VARCHAR2(30);
27966 l_line_definition_code        VARCHAR2(30);
27967 l_line_definition_owner_code  VARCHAR2(1);
27968 --
27969 -- adr variables
27970 l_segment                     VARCHAR2(30);
27971 l_ccid                        NUMBER;
27972 l_adr_transaction_coa_id      NUMBER;
27973 l_adr_accounting_coa_id       NUMBER;
27974 l_adr_flexfield_segment_code  VARCHAR2(30);
27975 l_adr_flex_value_set_id       NUMBER;
27976 l_adr_value_type_code         VARCHAR2(30);
27977 l_adr_value_combination_id    NUMBER;
27978 l_adr_value_segment_code      VARCHAR2(30);
27979 
27980 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
27981 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
27982 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
27983 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
27984 
27985 -- 4262811 Variables ------------------------------------------------------------------------------------------
27986 l_entered_amt_idx             NUMBER;
27987 l_accted_amt_idx              NUMBER;
27988 l_acc_rev_flag                VARCHAR2(1);
27989 l_accrual_line_num            NUMBER;
27990 l_tmp_amt                     NUMBER;
27991 l_acc_rev_natural_side_code   VARCHAR2(1);
27992 
27993 l_num_entries                 NUMBER;
27994 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
27995 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
27996 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
27997 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
27998 l_recog_line_1                NUMBER;
27999 l_recog_line_2                NUMBER;
28000 
28001 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
28002 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
28003 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
28004 
28005 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28006 
28007 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
28008 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
28009 
28013 --
28010 ---------------------------------------------------------------------------------------------------------------
28011 
28012 
28014 -- bulk performance
28015 --
28016 l_balance_type_code           VARCHAR2(1);
28017 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
28018 l_log_module                  VARCHAR2(240);
28019 
28020 --
28021 -- Upgrade strategy
28022 --
28023 l_actual_upg_option           VARCHAR2(1);
28024 l_enc_upg_option           VARCHAR2(1);
28025 
28026 --
28027 BEGIN
28028 --
28029 IF g_log_enabled THEN
28030       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_75';
28031 END IF;
28032 --
28033 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28034 
28035       trace
28036          (p_msg      => 'BEGIN of AcctLineType_75'
28037          ,p_level    => C_LEVEL_PROCEDURE
28038          ,p_module   => l_log_module);
28039 
28040 END IF;
28041 --
28042 l_component_type             := 'AMB_JLT';
28046 l_amb_context_code           := 'DEFAULT';
28043 l_component_code             := 'AP_CASH_CLEAR_PMT_AOS_BS';
28044 l_component_type_code        := 'S';
28045 l_component_appl_id          :=  200;
28047 l_entity_code                := 'AP_PAYMENTS';
28048 l_event_class_code           := 'PAYMENTS';
28049 l_event_type_code            := 'PAYMENTS_ALL';
28050 l_line_definition_owner_code := 'S';
28051 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
28052 --
28053 l_balance_type_code          := 'A';
28054 l_segment                     := NULL;
28055 l_ccid                        := NULL;
28056 l_adr_transaction_coa_id      := NULL;
28057 l_adr_accounting_coa_id       := NULL;
28058 l_adr_flexfield_segment_code  := NULL;
28059 l_adr_flex_value_set_id       := NULL;
28060 l_adr_value_type_code         := NULL;
28061 l_adr_value_combination_id    := NULL;
28062 l_adr_value_segment_code      := NULL;
28063 
28064 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
28065 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
28066 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
28067 l_budgetary_control_flag     := 'N';
28068 
28069 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
28070 l_bflow_applied_to_amt       := NULL; -- 5132302
28071 l_entered_amt_idx            := NULL;          -- 4262811
28072 l_accted_amt_idx             := NULL;          -- 4262811
28073 l_acc_rev_flag               := NULL;          -- 4262811
28074 l_accrual_line_num           := NULL;          -- 4262811
28075 l_tmp_amt                    := NULL;          -- 4262811
28076 --
28077  
28078 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28079     l_balance_type_code <> 'B' THEN
28080 IF NVL(p_source_89,'
28081 ') =  'ALWAYS_ALWAYS' AND 
28082 (NVL(p_source_105,'
28083 ') =  'Y' AND 
28084 NVL(p_source_3,'
28085 ') =  'BALANCING_SEGMENT') AND 
28086 p_source_107 IS NULL AND 
28087 NVL(p_source_90,'
28088 ') =  'CASH' AND 
28089 NVL(p_source_115,'
28090 ') <>  'R' AND 
28091 NVL(p_source_116,'
28092 ') <>  'PAYMENTCARD'
28093  THEN 
28094 
28095    --
28096    XLA_AE_LINES_PKG.SetNewLine;
28097 
28098    p_balance_type_code          := l_balance_type_code;
28099    -- set the flag so later we will know whether the gain loss line needs to be created
28100    
28101    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28102      p_actual_flag :='A';
28103    END IF;
28104 
28105    --
28106    -- bulk performance
28107    --
28108    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28109                                       p_header_num   => 0); -- 4262811
28110    --
28111    -- set accounting line options
28112    --
28113    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28114            p_natural_side_code          => 'C'
28115          , p_gain_or_loss_flag          => 'N'
28116          , p_gl_transfer_mode_code      => 'S'
28117          , p_acct_entry_type_code       => 'A'
28118          , p_switch_side_flag           => 'Y'
28119          , p_merge_duplicate_code       => 'A'
28120          );
28121    --
28122    l_acc_rev_natural_side_code := 'D';  -- 4262811
28123    -- 
28124    --
28125    -- set accounting line type info
28126    --
28127    xla_ae_lines_pkg.SetAcctLineType
28128       (p_component_type             => l_component_type
28129       ,p_event_type_code            => l_event_type_code
28130       ,p_line_definition_owner_code => l_line_definition_owner_code
28131       ,p_line_definition_code       => l_line_definition_code
28132       ,p_accounting_line_code       => l_component_code
28136       ,p_entity_code                => l_entity_code
28133       ,p_accounting_line_type_code  => l_component_type_code
28134       ,p_accounting_line_appl_id    => l_component_appl_id
28135       ,p_amb_context_code           => l_amb_context_code
28137       ,p_event_class_code           => l_event_class_code);
28138    --
28139    -- set accounting class
28140    --
28141    xla_ae_lines_pkg.SetAcctClass(
28142            p_accounting_class_code  => 'CASH_CLEARING'
28143          , p_ae_header_id           => l_ae_header_id
28144          );
28145 
28146    --
28147    -- set rounding class
28148    --
28149    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28150                       'CASH_CLEARING';
28151 
28152    --
28153    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28154    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28155    --
28156    -- bulk performance
28157    --
28158    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28159 
28160    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28161       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28162 
28163    -- 4955764
28164    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28165       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28166 
28167    -- 4458381 Public Sector Enh
28168    
28169    --
28170    -- set accounting attributes for the line type
28171    --
28172    l_entered_amt_idx := 10;
28173    l_accted_amt_idx  := 15;
28174    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
28175    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28176    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
28177    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
28178    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
28179    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
28180    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
28181    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28182    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
28183    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
28184    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
28185    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
28186    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
28187    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28188    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
28189    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
28190    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
28191    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
28192    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
28193    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
28194    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
28195    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
28196    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
28197    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
28198    l_rec_acct_attrs.array_date_value(12)  := p_source_110;
28199    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
28200    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
28201    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
28202    l_rec_acct_attrs.array_char_value(14)  := p_source_112;
28203    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
28204    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
28205    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
28206    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
28207    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
28208    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
28209    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
28210    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
28211    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
28212    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
28213    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
28214    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
28215    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
28216    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
28217    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
28218    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
28219    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
28220    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
28221    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
28222    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
28223 
28224    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28225    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28226 
28227    ---------------------------------------------------------------------------------------------------------------
28228    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28229    ---------------------------------------------------------------------------------------------------------------
28230    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28231 
28232    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28233    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28237          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28234 
28235    IF xla_accounting_cache_pkg.GetValueChar
28236          (p_source_code         => 'LEDGER_CATEGORY_CODE'
28238    AND l_bflow_method_code = 'PRIOR_ENTRY'
28239 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28240    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28241          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28242        )
28243    THEN
28244          xla_ae_lines_pkg.BflowUpgEntry
28245            (p_business_method_code    => l_bflow_method_code
28246            ,p_business_class_code     => l_bflow_class_code
28247            ,p_balance_type            => l_balance_type_code);
28248    ELSE
28249       NULL;
28250 XLA_AE_LINES_PKG.business_flow_validation(
28251                                 p_business_method_code     => l_bflow_method_code
28252                                ,p_business_class_code      => l_bflow_class_code
28253                                ,p_inherit_description_flag => l_inherit_desc_flag);
28254    END IF;
28255 
28256    --
28257    -- call analytical criteria
28258    --
28259    
28260    --
28261    -- call description
28262    --
28263    -- No description or it is inherited.
28264    --
28265    -- call ADRs
28266    -- Bug 4922099
28267    --
28268    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28269         (NVL(l_actual_upg_option, 'N') = 'O') OR
28270         (NVL(l_enc_upg_option, 'N') = 'O')
28271       )
28272    THEN
28273    NULL;
28274    --
28275    --
28276    
28277   l_ccid := AcctDerRule_35(
28278            p_application_id           => p_application_id
28279          , p_ae_header_id             => l_ae_header_id 
28280 , p_source_23 => p_source_23
28281          , x_transaction_coa_id       => l_adr_transaction_coa_id
28282          , x_accounting_coa_id        => l_adr_accounting_coa_id
28283          , x_value_type_code          => l_adr_value_type_code
28284          , p_side                     => 'NA'
28285    );
28286 
28287    xla_ae_lines_pkg.set_ccid(
28288     p_code_combination_id          => l_ccid
28289   , p_value_type_code              => l_adr_value_type_code
28290   , p_transaction_coa_id           => l_adr_transaction_coa_id
28291   , p_accounting_coa_id            => l_adr_accounting_coa_id
28292   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
28293   , p_adr_type_code                => 'S'
28294   , p_component_type               => l_component_type
28295   , p_component_code               => l_component_code
28296   , p_component_type_code          => l_component_type_code
28297   , p_component_appl_id            => l_component_appl_id
28298   , p_amb_context_code             => l_amb_context_code
28299   , p_side                         => 'NA'
28300   );
28301 
28302 
28303    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
28304      p_to_segment_code         => 'GL_BALANCING'
28305    , p_segment_value           => C_CHAR
28306    , p_from_segment_code       => NULL
28307    , p_from_combination_id     => NULL
28308    , p_value_type_code         => NULL
28309    , p_transaction_coa_id      => null
28310    , p_accounting_coa_id       => null
28311    , p_flexfield_segment_code  => NULL
28312    , p_flex_value_set_id       => NULL
28313    , p_adr_code                => NULL
28314    , p_adr_type_code           => NULL
28315    , p_component_type          => l_component_type
28316    , p_component_code          => l_component_code
28317    , p_component_type_code     => l_component_type_code
28318    , p_component_appl_id       => l_component_appl_id
28319    , p_amb_context_code        => l_amb_context_code
28320    , p_entity_code             => 'AP_PAYMENTS'
28321    , p_event_class_code        => 'PAYMENTS'
28325 
28322    , p_side                    => 'NA'
28323    );
28324    --
28326 
28327    --
28328    --
28329    END IF;
28330    --
28331    -- Bug 4922099
28332    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28333           (NVL(l_enc_upg_option, 'N') = 'O')
28334         ) AND
28335         (l_bflow_method_code = 'PRIOR_ENTRY')
28336       )
28337    THEN
28338       IF
28339       --
28340       1 = 2
28341       --
28342       THEN
28343       xla_accounting_err_pkg.build_message
28344                                     (p_appli_s_name            => 'XLA'
28348                                     ,p_token_2                 => 'LINE_TYPE_NAME'
28345                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28346                                     ,p_token_1                 => 'LINE_NUMBER'
28347                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
28349                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
28350                                                                              l_component_type
28351                                                                             ,l_component_code
28352                                                                             ,l_component_type_code
28353                                                                             ,l_component_appl_id
28354                                                                             ,l_amb_context_code
28355                                                                             ,l_entity_code
28356                                                                             ,l_event_class_code
28357                                                                            )
28358                                     ,p_token_3                 => 'OWNER'
28359                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
28360                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
28361                                                                           ,p_lookup_code    => l_component_type_code
28362                                                                          )
28363                                     ,p_token_4                 => 'PRODUCT_NAME'
28364                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28365                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28366                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28367                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28368                                     ,p_ae_header_id            =>  NULL
28369                                        );
28370 
28371         IF (C_LEVEL_ERROR>= g_log_level) THEN
28372                  trace
28373                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28374                       ,p_level    => C_LEVEL_ERROR
28375                       ,p_module   => l_log_module);
28376         END IF;
28377       END IF;
28378    END IF;
28379    --
28380    --
28381    ------------------------------------------------------------------------------------------------
28382    -- 4219869 Business Flow
28383    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28384    -- Prior Entry.  Currently, the following code is always generated.
28385    ------------------------------------------------------------------------------------------------
28386    XLA_AE_LINES_PKG.ValidateCurrentLine;
28387 
28388    ------------------------------------------------------------------------------------
28389    -- 4219869 Business Flow
28390    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28391    ------------------------------------------------------------------------------------
28392    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28393 
28394    ----------------------------------------------------------------------------------
28395    -- 4219869 Business Flow
28396    -- Update journal entry status -- Need to generate this within IF <condition>
28397    ----------------------------------------------------------------------------------
28398    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28399          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28400          ,p_balance_type_code => l_balance_type_code
28401          );
28402 
28403    -------------------------------------------------------------------------------------------
28404    -- 4262811 - Generate the Accrual Reversal lines
28405    -------------------------------------------------------------------------------------------
28406    BEGIN
28407       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28408                               (g_array_event(p_event_id).array_value_num('header_index'));
28409       IF l_acc_rev_flag IS NULL THEN
28410          l_acc_rev_flag := 'N';
28411       END IF;
28412    EXCEPTION
28413       WHEN OTHERS THEN
28414          l_acc_rev_flag := 'N';
28415    END;
28416    --
28417    IF (l_acc_rev_flag = 'Y') THEN
28418 
28419        -- 4645092  ------------------------------------------------------------------------------
28420        -- To allow MPA report to determine if it should generate report process
28421        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28422        ------------------------------------------------------------------------------------------
28423 
28424        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28425        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28426    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
28427    -- call ADRs
28428    -- Bug 4922099
28429    --
28430    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28431         (NVL(l_actual_upg_option, 'N') = 'O') OR
28432         (NVL(l_enc_upg_option, 'N') = 'O')
28433       )
28434    THEN
28435    NULL;
28436    --
28437    --
28438    
28439   l_ccid := AcctDerRule_35(
28440            p_application_id           => p_application_id
28441          , p_ae_header_id             => l_ae_header_id 
28442 , p_source_23 => p_source_23
28443          , x_transaction_coa_id       => l_adr_transaction_coa_id
28447    );
28444          , x_accounting_coa_id        => l_adr_accounting_coa_id
28445          , x_value_type_code          => l_adr_value_type_code
28446          , p_side                     => 'NA'
28448 
28449    xla_ae_lines_pkg.set_ccid(
28450     p_code_combination_id          => l_ccid
28451   , p_value_type_code              => l_adr_value_type_code
28452   , p_transaction_coa_id           => l_adr_transaction_coa_id
28453   , p_accounting_coa_id            => l_adr_accounting_coa_id
28454   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
28455   , p_adr_type_code                => 'S'
28456   , p_component_type               => l_component_type
28457   , p_component_code               => l_component_code
28458   , p_component_type_code          => l_component_type_code
28459   , p_component_appl_id            => l_component_appl_id
28460   , p_amb_context_code             => l_amb_context_code
28461   , p_side                         => 'NA'
28462   );
28463 
28464 
28465    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
28466      p_to_segment_code         => 'GL_BALANCING'
28467    , p_segment_value           => C_CHAR
28468    , p_from_segment_code       => NULL
28469    , p_from_combination_id     => NULL
28470    , p_value_type_code         => NULL
28471    , p_transaction_coa_id      => null
28472    , p_accounting_coa_id       => null
28473    , p_flexfield_segment_code  => NULL
28474    , p_flex_value_set_id       => NULL
28475    , p_adr_code                => NULL
28476    , p_adr_type_code           => NULL
28477    , p_component_type          => l_component_type
28478    , p_component_code          => l_component_code
28479    , p_component_type_code     => l_component_type_code
28480    , p_component_appl_id       => l_component_appl_id
28481    , p_amb_context_code        => l_amb_context_code
28482    , p_entity_code             => 'AP_PAYMENTS'
28483    , p_event_class_code        => 'PAYMENTS'
28484    , p_side                    => 'NA'
28485    );
28486    --
28487 
28488 
28489    --
28490    --
28491    END IF;
28492 
28493        --
28494        -- Update the line information that should be overwritten
28495        --
28496        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28497                                          p_header_num   => 1);
28498        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
28499 
28500        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28501 
28502        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
28503           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28504        END IF;
28505 
28506       --
28507       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28508       --
28509       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28510           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
28511       ELSE
28512           ---------------------------------------------------------------------------------------------------
28513           -- 4262811a Switch Sign
28514           ---------------------------------------------------------------------------------------------------
28515           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
28516           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28517                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28518           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28519                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28520           -- 5132302
28521           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28522                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28523 
28524       END IF;
28525 
28526       -- 4955764
28527       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28528       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28529 
28530 
28531       XLA_AE_LINES_PKG.ValidateCurrentLine;
28532       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28533 
28534       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28535                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28536                ,p_balance_type_code => l_balance_type_code);
28537 
28538    END IF;
28539 
28540    -----------------------------------------------------------------------------------------
28541    -- 4262811 Multiperiod Accounting
28542    -----------------------------------------------------------------------------------------
28543      -- No MPA option is assigned.
28544 
28545 
28546 END IF;
28547 END IF;
28548 --
28549 
28550 --
28551 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28552    trace
28553       (p_msg      => 'END of AcctLineType_75'
28554       ,p_level    => C_LEVEL_PROCEDURE
28555       ,p_module   => l_log_module);
28556 END IF;
28557 --
28558 EXCEPTION
28559   WHEN xla_exceptions_pkg.application_exception THEN
28560       RAISE;
28561   WHEN OTHERS THEN
28562        xla_exceptions_pkg.raise_message
28563            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_75');
28564 END AcctLineType_75;
28565 --
28566 
28567 ---------------------------------------
28568 --
28569 -- PRIVATE FUNCTION
28573 PROCEDURE AcctLineType_76 (
28570 --         AcctLineType_76
28571 --
28572 ---------------------------------------
28574   p_application_id        IN NUMBER
28575  ,p_event_id              IN NUMBER
28576  ,p_calculate_acctd_flag  IN VARCHAR2
28577  ,p_calculate_g_l_flag    IN VARCHAR2
28578  ,p_actual_flag           IN OUT VARCHAR2
28579  ,p_balance_type_code     OUT VARCHAR2
28580  ,p_gain_or_loss_ref      OUT VARCHAR2
28581  
28582 --Automatic Offsets Value
28583  , p_source_3            IN VARCHAR2
28584  , p_source_3_meaning    IN VARCHAR2
28585 --Bank Cash Clearing Account
28586  , p_source_23            IN NUMBER
28587 --Accounting Reversal Indicator
28588  , p_source_41            IN VARCHAR2
28589 --Distribution Link Type
28590  , p_source_43            IN VARCHAR2
28591 --Override Accounted Amount Indicator
28592  , p_source_68            IN VARCHAR2
28593  , p_source_68_meaning    IN VARCHAR2
28594 --Third Party Type
28595  , p_source_71            IN VARCHAR2
28596 --Invoice Distribution Tax Line Identifier
28597  , p_source_74            IN NUMBER
28598 --Invoice Distribution Tax Distribution Identifier from Tax
28602 --Business Flow Accounts Payable Application Identifier
28599  , p_source_75            IN NUMBER
28600 --Invoice Distribution Summary Tax Line Identifier
28601  , p_source_76            IN NUMBER
28603  , p_source_79            IN NUMBER
28604 --Business Flow Invoice Distribution Type
28605  , p_source_80            IN VARCHAR2
28606 --Business Flow Invoice Entity Code
28607  , p_source_81            IN VARCHAR2
28608 --Business Flow Invoice Distribution Identifier
28609  , p_source_82            IN NUMBER
28610 --Business Flow Invoice Identifier
28611  , p_source_83            IN NUMBER
28612 --When to Account for Payment Option
28613  , p_source_89            IN VARCHAR2
28614 --Payment Distribution Type
28615  , p_source_90            IN VARCHAR2
28616  , p_source_90_meaning    IN VARCHAR2
28617 --Payment Distribution Amount
28618  , p_source_91            IN NUMBER
28619 --Payment Distribution Identifier
28620  , p_source_96            IN NUMBER
28621 --Payment Supplier Identifier
28622  , p_source_102            IN NUMBER
28623 --Payment Supplier Site Identifier
28624  , p_source_103            IN NUMBER
28625 --Payment Distribution Reversed Identifier
28626  , p_source_104            IN NUMBER
28627 --Pooled Bank Account Option
28628  , p_source_105            IN VARCHAR2
28629  , p_source_105_meaning    IN VARCHAR2
28630 --Payment Currency Code
28631  , p_source_106            IN VARCHAR2
28632 --Payment Maturity Date
28633  , p_source_107            IN DATE
28634 --Payment Distribution (Invoice Rate) Ledger Amount
28635  , p_source_109            IN NUMBER
28636 --Payment Exchange Date
28637  , p_source_110            IN DATE
28638 --Payment Exchange Rate
28639  , p_source_111            IN NUMBER
28640 --Payment Exchange Rate Type
28641  , p_source_112            IN VARCHAR2
28642 --Payment Type
28643  , p_source_115            IN VARCHAR2
28644  , p_source_115_meaning    IN VARCHAR2
28645 --Payment Processing Type
28646  , p_source_116            IN VARCHAR2
28647 --Invoice Distribution Amount of the Payment Distribution
28648  , p_source_117            IN NUMBER
28649 )
28650 IS
28651 
28652 l_component_type              VARCHAR2(80);
28653 l_component_code              VARCHAR2(30);
28654 l_component_type_code         VARCHAR2(1);
28655 l_component_appl_id           INTEGER;
28656 l_amb_context_code            VARCHAR2(30);
28657 l_entity_code                 VARCHAR2(30);
28658 l_event_class_code            VARCHAR2(30);
28659 l_ae_header_id                NUMBER;
28660 l_event_type_code             VARCHAR2(30);
28661 l_line_definition_code        VARCHAR2(30);
28662 l_line_definition_owner_code  VARCHAR2(1);
28663 --
28664 -- adr variables
28665 l_segment                     VARCHAR2(30);
28666 l_ccid                        NUMBER;
28667 l_adr_transaction_coa_id      NUMBER;
28668 l_adr_accounting_coa_id       NUMBER;
28669 l_adr_flexfield_segment_code  VARCHAR2(30);
28670 l_adr_flex_value_set_id       NUMBER;
28671 l_adr_value_type_code         VARCHAR2(30);
28672 l_adr_value_combination_id    NUMBER;
28673 l_adr_value_segment_code      VARCHAR2(30);
28674 
28675 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
28676 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
28677 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
28678 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
28679 
28680 -- 4262811 Variables ------------------------------------------------------------------------------------------
28681 l_entered_amt_idx             NUMBER;
28685 l_tmp_amt                     NUMBER;
28682 l_accted_amt_idx              NUMBER;
28683 l_acc_rev_flag                VARCHAR2(1);
28684 l_accrual_line_num            NUMBER;
28686 l_acc_rev_natural_side_code   VARCHAR2(1);
28687 
28688 l_num_entries                 NUMBER;
28689 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
28690 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
28691 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
28692 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
28693 l_recog_line_1                NUMBER;
28694 l_recog_line_2                NUMBER;
28695 
28696 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
28697 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
28698 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
28699 
28700 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28701 
28702 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
28703 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
28704 
28705 ---------------------------------------------------------------------------------------------------------------
28706 
28707 
28708 --
28709 -- bulk performance
28710 --
28711 l_balance_type_code           VARCHAR2(1);
28712 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
28713 l_log_module                  VARCHAR2(240);
28714 
28715 --
28716 -- Upgrade strategy
28717 --
28718 l_actual_upg_option           VARCHAR2(1);
28719 l_enc_upg_option           VARCHAR2(1);
28720 
28721 --
28722 BEGIN
28723 --
28724 IF g_log_enabled THEN
28725       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_76';
28726 END IF;
28727 --
28728 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28729 
28730       trace
28731          (p_msg      => 'BEGIN of AcctLineType_76'
28732          ,p_level    => C_LEVEL_PROCEDURE
28733          ,p_module   => l_log_module);
28734 
28735 END IF;
28736 --
28737 l_component_type             := 'AMB_JLT';
28738 l_component_code             := 'AP_CASH_CLEAR_PMT_AS_INVXRATE';
28739 l_component_type_code        := 'S';
28740 l_component_appl_id          :=  200;
28741 l_amb_context_code           := 'DEFAULT';
28742 l_entity_code                := 'AP_PAYMENTS';
28743 l_event_class_code           := 'PAYMENTS';
28744 l_event_type_code            := 'PAYMENTS_ALL';
28745 l_line_definition_owner_code := 'S';
28746 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
28747 --
28748 l_balance_type_code          := 'A';
28749 l_segment                     := NULL;
28750 l_ccid                        := NULL;
28751 l_adr_transaction_coa_id      := NULL;
28752 l_adr_accounting_coa_id       := NULL;
28753 l_adr_flexfield_segment_code  := NULL;
28754 l_adr_flex_value_set_id       := NULL;
28755 l_adr_value_type_code         := NULL;
28756 l_adr_value_combination_id    := NULL;
28757 l_adr_value_segment_code      := NULL;
28761 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
28758 
28759 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
28760 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
28762 l_budgetary_control_flag     := 'N';
28763 
28764 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
28765 l_bflow_applied_to_amt       := NULL; -- 5132302
28766 l_entered_amt_idx            := NULL;          -- 4262811
28767 l_accted_amt_idx             := NULL;          -- 4262811
28768 l_acc_rev_flag               := NULL;          -- 4262811
28769 l_accrual_line_num           := NULL;          -- 4262811
28770 l_tmp_amt                    := NULL;          -- 4262811
28771 --
28772  
28773 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28774     l_balance_type_code <> 'B' THEN
28775 IF NVL(p_source_89,'
28776 ') =  'ALWAYS_CLEAR' AND 
28777 (NVL(p_source_105,'
28778 ') =  'Y' AND 
28779 NVL(p_source_3,'
28780 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
28781 p_source_107 IS NULL AND 
28782 NVL(p_source_90,'
28783 ') =  'CASH' AND 
28784 NVL(p_source_115,'
28785 ') <>  'R' AND 
28786 NVL(p_source_116,'
28787 ') <>  'PAYMENTCARD'
28788  THEN 
28789 
28790    --
28791    XLA_AE_LINES_PKG.SetNewLine;
28792 
28793    p_balance_type_code          := l_balance_type_code;
28794    -- set the flag so later we will know whether the gain loss line needs to be created
28795    
28796    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28797      p_actual_flag :='A';
28798    END IF;
28799 
28800    --
28801    -- bulk performance
28805    --
28802    --
28803    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28804                                       p_header_num   => 0); -- 4262811
28806    -- set accounting line options
28807    --
28808    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28809            p_natural_side_code          => 'C'
28810          , p_gain_or_loss_flag          => 'N'
28811          , p_gl_transfer_mode_code      => 'S'
28812          , p_acct_entry_type_code       => 'A'
28813          , p_switch_side_flag           => 'Y'
28814          , p_merge_duplicate_code       => 'A'
28815          );
28816    --
28817    l_acc_rev_natural_side_code := 'D';  -- 4262811
28818    -- 
28819    --
28820    -- set accounting line type info
28821    --
28822    xla_ae_lines_pkg.SetAcctLineType
28823       (p_component_type             => l_component_type
28824       ,p_event_type_code            => l_event_type_code
28825       ,p_line_definition_owner_code => l_line_definition_owner_code
28826       ,p_line_definition_code       => l_line_definition_code
28827       ,p_accounting_line_code       => l_component_code
28828       ,p_accounting_line_type_code  => l_component_type_code
28829       ,p_accounting_line_appl_id    => l_component_appl_id
28830       ,p_amb_context_code           => l_amb_context_code
28831       ,p_entity_code                => l_entity_code
28832       ,p_event_class_code           => l_event_class_code);
28833    --
28834    -- set accounting class
28835    --
28836    xla_ae_lines_pkg.SetAcctClass(
28837            p_accounting_class_code  => 'CASH_CLEARING'
28838          , p_ae_header_id           => l_ae_header_id
28839          );
28840 
28841    --
28842    -- set rounding class
28843    --
28844    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28845                       'CASH_CLEARING';
28846 
28847    --
28848    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28849    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28850    --
28851    -- bulk performance
28852    --
28853    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28854 
28855    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28856       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28857 
28858    -- 4955764
28859    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28860       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28861 
28862    -- 4458381 Public Sector Enh
28863    
28864    --
28865    -- set accounting attributes for the line type
28866    --
28867    l_entered_amt_idx := 10;
28868    l_accted_amt_idx  := 15;
28869    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
28870    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28871    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
28872    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
28873    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
28874    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
28875    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
28876    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28877    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
28878    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
28879    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
28880    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
28881    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
28882    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28883    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
28884    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
28885    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
28886    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
28887    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
28888    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
28889    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
28890    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
28891    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
28892    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
28893    l_rec_acct_attrs.array_date_value(12)  := p_source_110;
28894    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
28895    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
28896    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
28897    l_rec_acct_attrs.array_char_value(14)  := p_source_112;
28898    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
28899    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
28900    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
28904    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
28901    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
28902    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
28903    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
28905    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
28906    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
28907    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
28908    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
28909    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
28910    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
28911    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
28912    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
28913    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
28914    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
28915    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
28916    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
28917    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
28918 
28919    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28920    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28921 
28922    ---------------------------------------------------------------------------------------------------------------
28923    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28924    ---------------------------------------------------------------------------------------------------------------
28925    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28926 
28927    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28928    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28929 
28930    IF xla_accounting_cache_pkg.GetValueChar
28931          (p_source_code         => 'LEDGER_CATEGORY_CODE'
28932          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28933    AND l_bflow_method_code = 'PRIOR_ENTRY'
28934 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28935    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28936          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28937        )
28938    THEN
28939          xla_ae_lines_pkg.BflowUpgEntry
28940            (p_business_method_code    => l_bflow_method_code
28941            ,p_business_class_code     => l_bflow_class_code
28942            ,p_balance_type            => l_balance_type_code);
28943    ELSE
28944       NULL;
28945 XLA_AE_LINES_PKG.business_flow_validation(
28946                                 p_business_method_code     => l_bflow_method_code
28947                                ,p_business_class_code      => l_bflow_class_code
28948                                ,p_inherit_description_flag => l_inherit_desc_flag);
28949    END IF;
28950 
28951    --
28952    -- call analytical criteria
28953    --
28954    
28955    --
28956    -- call description
28957    --
28958    -- No description or it is inherited.
28959    --
28960    -- call ADRs
28961    -- Bug 4922099
28962    --
28963    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28964         (NVL(l_actual_upg_option, 'N') = 'O') OR
28965         (NVL(l_enc_upg_option, 'N') = 'O')
28966       )
28967    THEN
28968    NULL;
28969    --
28970    --
28971    
28972    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
28973      p_code_combination_id      => TO_NUMBER(C_NUM)
28974    , p_value_type_code          => NULL
28975    , p_transaction_coa_id       => null
28976    , p_accounting_coa_id        => null
28977    , p_adr_code                 => NULL
28978    , p_adr_type_code            => NULL
28979    , p_component_type           => l_component_type
28980    , p_component_code           => l_component_code
28981    , p_component_type_code      => l_component_type_code
28982    , p_component_appl_id        => l_component_appl_id
28983    , p_amb_context_code         => l_amb_context_code
28984    , p_side                     => NULL
28985    );
28986 
28987    
28988   -- initialise segments
28989   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28990   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28991   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28992   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28993   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28994   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28995   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28996   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28997   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28998   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29002   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28999   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29000   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29001   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29003   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29004   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29005   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29006   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29007   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29008   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29009   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29010   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29011   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29012   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29013   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29014   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29015   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29019   --
29016   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29017   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29018   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29020 
29021    --
29022 
29023 
29024    l_segment := AcctDerRule_15(
29025            p_application_id           => p_application_id
29026          , p_ae_header_id             => l_ae_header_id 
29027 , p_source_23 => p_source_23
29028          , x_transaction_coa_id       => l_adr_transaction_coa_id
29029          , x_accounting_coa_id        => l_adr_accounting_coa_id
29030          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
29031          , x_flex_value_set_id        => l_adr_flex_value_set_id
29032          , x_value_type_code          => l_adr_value_type_code
29033          , x_value_combination_id     => l_adr_value_combination_id
29034          , x_value_segment_code       => l_adr_value_segment_code
29035          , p_side                     => 'NA'
29036          , p_override_seg_flag        => 'Y'
29037    );
29038 
29039    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
29040 
29041       xla_ae_lines_pkg.set_segment(
29042           p_to_segment_code         => 'GL_ACCOUNT'
29043         , p_segment_value           => l_segment
29044         , p_from_segment_code       => l_adr_value_segment_code
29045         , p_from_combination_id     => l_adr_value_combination_id
29046         , p_value_type_code         => l_adr_value_type_code
29047         , p_transaction_coa_id      => l_adr_transaction_coa_id
29048         , p_accounting_coa_id       => l_adr_accounting_coa_id
29049         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
29050         , p_flex_value_set_id       => l_adr_flex_value_set_id
29051         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
29052         , p_adr_type_code           => 'S'
29053         , p_component_type          => l_component_type
29054         , p_component_code          => l_component_code
29055         , p_component_type_code     => l_component_type_code
29056         , p_component_appl_id       => l_component_appl_id
29057         , p_amb_context_code        => l_amb_context_code
29058         , p_entity_code             => 'AP_PAYMENTS'
29059         , p_event_class_code        => 'PAYMENTS'
29060         , p_side                    => 'NA'
29061         );
29062 
29063   END IF;
29064 
29065    --
29066    --
29067    END IF;
29068    --
29069    -- Bug 4922099
29070    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29071           (NVL(l_enc_upg_option, 'N') = 'O')
29072         ) AND
29073         (l_bflow_method_code = 'PRIOR_ENTRY')
29074       )
29075    THEN
29076       IF
29077       --
29078       1 = 2
29079       --
29080       THEN
29081       xla_accounting_err_pkg.build_message
29082                                     (p_appli_s_name            => 'XLA'
29083                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29084                                     ,p_token_1                 => 'LINE_NUMBER'
29085                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
29089                                                                             ,l_component_code
29086                                     ,p_token_2                 => 'LINE_TYPE_NAME'
29087                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
29088                                                                              l_component_type
29090                                                                             ,l_component_type_code
29091                                                                             ,l_component_appl_id
29092                                                                             ,l_amb_context_code
29093                                                                             ,l_entity_code
29094                                                                             ,l_event_class_code
29095                                                                            )
29096                                     ,p_token_3                 => 'OWNER'
29097                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
29098                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
29099                                                                           ,p_lookup_code    => l_component_type_code
29100                                                                          )
29101                                     ,p_token_4                 => 'PRODUCT_NAME'
29102                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29103                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29104                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29105                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29106                                     ,p_ae_header_id            =>  NULL
29107                                        );
29108 
29109         IF (C_LEVEL_ERROR>= g_log_level) THEN
29110                  trace
29111                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29112                       ,p_level    => C_LEVEL_ERROR
29113                       ,p_module   => l_log_module);
29114         END IF;
29115       END IF;
29116    END IF;
29117    --
29118    --
29119    ------------------------------------------------------------------------------------------------
29120    -- 4219869 Business Flow
29121    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29122    -- Prior Entry.  Currently, the following code is always generated.
29123    ------------------------------------------------------------------------------------------------
29124    XLA_AE_LINES_PKG.ValidateCurrentLine;
29125 
29126    ------------------------------------------------------------------------------------
29127    -- 4219869 Business Flow
29128    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29129    ------------------------------------------------------------------------------------
29130    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29131 
29132    ----------------------------------------------------------------------------------
29133    -- 4219869 Business Flow
29134    -- Update journal entry status -- Need to generate this within IF <condition>
29135    ----------------------------------------------------------------------------------
29139          );
29136    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29137          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29138          ,p_balance_type_code => l_balance_type_code
29140 
29141    -------------------------------------------------------------------------------------------
29142    -- 4262811 - Generate the Accrual Reversal lines
29143    -------------------------------------------------------------------------------------------
29144    BEGIN
29145       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29146                               (g_array_event(p_event_id).array_value_num('header_index'));
29147       IF l_acc_rev_flag IS NULL THEN
29148          l_acc_rev_flag := 'N';
29149       END IF;
29150    EXCEPTION
29151       WHEN OTHERS THEN
29152          l_acc_rev_flag := 'N';
29153    END;
29154    --
29155    IF (l_acc_rev_flag = 'Y') THEN
29156 
29157        -- 4645092  ------------------------------------------------------------------------------
29158        -- To allow MPA report to determine if it should generate report process
29162        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29159        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29160        ------------------------------------------------------------------------------------------
29161 
29163        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29164    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
29165    -- call ADRs
29166    -- Bug 4922099
29167    --
29168    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29169         (NVL(l_actual_upg_option, 'N') = 'O') OR
29170         (NVL(l_enc_upg_option, 'N') = 'O')
29171       )
29172    THEN
29173    NULL;
29174    --
29175    --
29176    
29177    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
29178      p_code_combination_id      => TO_NUMBER(C_NUM)
29179    , p_value_type_code          => NULL
29180    , p_transaction_coa_id       => null
29181    , p_accounting_coa_id        => null
29182    , p_adr_code                 => NULL
29183    , p_adr_type_code            => NULL
29184    , p_component_type           => l_component_type
29185    , p_component_code           => l_component_code
29186    , p_component_type_code      => l_component_type_code
29187    , p_component_appl_id        => l_component_appl_id
29188    , p_amb_context_code         => l_amb_context_code
29189    , p_side                     => NULL
29190    );
29191 
29192    
29193   -- initialise segments
29194   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29195   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29196   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29197   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29198   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29199   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29200   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29201   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29202   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29203   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29204   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29205   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29206   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29207   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29208   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29209   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29210   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29211   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29212   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29213   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29214   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29215   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29216   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29217   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29218   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29219   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29220   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29221   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29222   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29223   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29224   --
29225 
29226    --
29227 
29228 
29229    l_segment := AcctDerRule_15(
29230            p_application_id           => p_application_id
29231          , p_ae_header_id             => l_ae_header_id 
29232 , p_source_23 => p_source_23
29233          , x_transaction_coa_id       => l_adr_transaction_coa_id
29234          , x_accounting_coa_id        => l_adr_accounting_coa_id
29235          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
29236          , x_flex_value_set_id        => l_adr_flex_value_set_id
29237          , x_value_type_code          => l_adr_value_type_code
29238          , x_value_combination_id     => l_adr_value_combination_id
29239          , x_value_segment_code       => l_adr_value_segment_code
29240          , p_side                     => 'NA'
29241          , p_override_seg_flag        => 'Y'
29242    );
29243 
29244    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
29245 
29246       xla_ae_lines_pkg.set_segment(
29247           p_to_segment_code         => 'GL_ACCOUNT'
29248         , p_segment_value           => l_segment
29249         , p_from_segment_code       => l_adr_value_segment_code
29250         , p_from_combination_id     => l_adr_value_combination_id
29251         , p_value_type_code         => l_adr_value_type_code
29252         , p_transaction_coa_id      => l_adr_transaction_coa_id
29253         , p_accounting_coa_id       => l_adr_accounting_coa_id
29254         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
29255         , p_flex_value_set_id       => l_adr_flex_value_set_id
29259         , p_component_code          => l_component_code
29256         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
29257         , p_adr_type_code           => 'S'
29258         , p_component_type          => l_component_type
29260         , p_component_type_code     => l_component_type_code
29261         , p_component_appl_id       => l_component_appl_id
29262         , p_amb_context_code        => l_amb_context_code
29263         , p_entity_code             => 'AP_PAYMENTS'
29264         , p_event_class_code        => 'PAYMENTS'
29265         , p_side                    => 'NA'
29266         );
29267 
29268   END IF;
29269 
29270    --
29271    --
29272    END IF;
29273 
29274        --
29275        -- Update the line information that should be overwritten
29276        --
29277        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29278                                          p_header_num   => 1);
29279        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
29280 
29281        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29282 
29283        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
29284           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29285        END IF;
29286 
29287       --
29288       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29289       --
29290       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29291           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
29292       ELSE
29293           ---------------------------------------------------------------------------------------------------
29294           -- 4262811a Switch Sign
29295           ---------------------------------------------------------------------------------------------------
29296           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
29297           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29298                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29299           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29300                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29301           -- 5132302
29302           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29303                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29304 
29305       END IF;
29306 
29307       -- 4955764
29308       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29309       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29310 
29311 
29312       XLA_AE_LINES_PKG.ValidateCurrentLine;
29313       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29314 
29315       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29316                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29317                ,p_balance_type_code => l_balance_type_code);
29318 
29319    END IF;
29320 
29321    -----------------------------------------------------------------------------------------
29322    -- 4262811 Multiperiod Accounting
29323    -----------------------------------------------------------------------------------------
29324      -- No MPA option is assigned.
29325 
29326 
29327 END IF;
29328 END IF;
29329 --
29330 
29331 --
29332 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29333    trace
29334       (p_msg      => 'END of AcctLineType_76'
29335       ,p_level    => C_LEVEL_PROCEDURE
29336       ,p_module   => l_log_module);
29337 END IF;
29338 --
29339 EXCEPTION
29340   WHEN xla_exceptions_pkg.application_exception THEN
29341       RAISE;
29342   WHEN OTHERS THEN
29343        xla_exceptions_pkg.raise_message
29344            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_76');
29345 END AcctLineType_76;
29346 --
29347 
29348 ---------------------------------------
29349 --
29350 -- PRIVATE FUNCTION
29351 --         AcctLineType_77
29352 --
29353 ---------------------------------------
29354 PROCEDURE AcctLineType_77 (
29355   p_application_id        IN NUMBER
29356  ,p_event_id              IN NUMBER
29357  ,p_calculate_acctd_flag  IN VARCHAR2
29358  ,p_calculate_g_l_flag    IN VARCHAR2
29359  ,p_actual_flag           IN OUT VARCHAR2
29360  ,p_balance_type_code     OUT VARCHAR2
29361  ,p_gain_or_loss_ref      OUT VARCHAR2
29362  
29363 --Automatic Offsets Value
29364  , p_source_3            IN VARCHAR2
29365  , p_source_3_meaning    IN VARCHAR2
29366 --Bank Cash Clearing Account
29367  , p_source_23            IN NUMBER
29368 --Accounting Reversal Indicator
29369  , p_source_41            IN VARCHAR2
29370 --Distribution Link Type
29371  , p_source_43            IN VARCHAR2
29372 --Override Accounted Amount Indicator
29373  , p_source_68            IN VARCHAR2
29374  , p_source_68_meaning    IN VARCHAR2
29375 --Third Party Type
29376  , p_source_71            IN VARCHAR2
29377 --Invoice Distribution Tax Line Identifier
29378  , p_source_74            IN NUMBER
29379 --Invoice Distribution Tax Distribution Identifier from Tax
29383 --Business Flow Accounts Payable Application Identifier
29380  , p_source_75            IN NUMBER
29381 --Invoice Distribution Summary Tax Line Identifier
29382  , p_source_76            IN NUMBER
29384  , p_source_79            IN NUMBER
29385 --Business Flow Invoice Distribution Type
29386  , p_source_80            IN VARCHAR2
29387 --Business Flow Invoice Entity Code
29388  , p_source_81            IN VARCHAR2
29389 --Business Flow Invoice Distribution Identifier
29390  , p_source_82            IN NUMBER
29391 --Business Flow Invoice Identifier
29392  , p_source_83            IN NUMBER
29393 --When to Account for Payment Option
29394  , p_source_89            IN VARCHAR2
29395 --Payment Distribution Type
29396  , p_source_90            IN VARCHAR2
29397  , p_source_90_meaning    IN VARCHAR2
29398 --Payment Distribution Amount
29399  , p_source_91            IN NUMBER
29400 --Payment Distribution Identifier
29401  , p_source_96            IN NUMBER
29402 --Payment Supplier Identifier
29403  , p_source_102            IN NUMBER
29404 --Payment Supplier Site Identifier
29405  , p_source_103            IN NUMBER
29406 --Payment Distribution Reversed Identifier
29407  , p_source_104            IN NUMBER
29408 --Pooled Bank Account Option
29409  , p_source_105            IN VARCHAR2
29410  , p_source_105_meaning    IN VARCHAR2
29411 --Payment Currency Code
29412  , p_source_106            IN VARCHAR2
29413 --Payment Maturity Date
29414  , p_source_107            IN DATE
29415 --Payment Distribution (Invoice Rate) Ledger Amount
29416  , p_source_109            IN NUMBER
29417 --Payment Exchange Date
29418  , p_source_110            IN DATE
29419 --Payment Exchange Rate
29420  , p_source_111            IN NUMBER
29424  , p_source_115            IN VARCHAR2
29421 --Payment Exchange Rate Type
29422  , p_source_112            IN VARCHAR2
29423 --Payment Type
29425  , p_source_115_meaning    IN VARCHAR2
29426 --Payment Processing Type
29427  , p_source_116            IN VARCHAR2
29428 --Invoice Distribution Amount of the Payment Distribution
29429  , p_source_117            IN NUMBER
29430 )
29431 IS
29432 
29433 l_component_type              VARCHAR2(80);
29434 l_component_code              VARCHAR2(30);
29435 l_component_type_code         VARCHAR2(1);
29436 l_component_appl_id           INTEGER;
29437 l_amb_context_code            VARCHAR2(30);
29438 l_entity_code                 VARCHAR2(30);
29439 l_event_class_code            VARCHAR2(30);
29440 l_ae_header_id                NUMBER;
29441 l_event_type_code             VARCHAR2(30);
29442 l_line_definition_code        VARCHAR2(30);
29443 l_line_definition_owner_code  VARCHAR2(1);
29444 --
29445 -- adr variables
29446 l_segment                     VARCHAR2(30);
29447 l_ccid                        NUMBER;
29448 l_adr_transaction_coa_id      NUMBER;
29449 l_adr_accounting_coa_id       NUMBER;
29450 l_adr_flexfield_segment_code  VARCHAR2(30);
29451 l_adr_flex_value_set_id       NUMBER;
29452 l_adr_value_type_code         VARCHAR2(30);
29453 l_adr_value_combination_id    NUMBER;
29454 l_adr_value_segment_code      VARCHAR2(30);
29455 
29456 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
29457 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
29458 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
29459 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
29460 
29461 -- 4262811 Variables ------------------------------------------------------------------------------------------
29462 l_entered_amt_idx             NUMBER;
29463 l_accted_amt_idx              NUMBER;
29464 l_acc_rev_flag                VARCHAR2(1);
29465 l_accrual_line_num            NUMBER;
29466 l_tmp_amt                     NUMBER;
29467 l_acc_rev_natural_side_code   VARCHAR2(1);
29468 
29469 l_num_entries                 NUMBER;
29470 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
29471 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
29472 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
29473 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
29474 l_recog_line_1                NUMBER;
29475 l_recog_line_2                NUMBER;
29476 
29477 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
29478 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
29479 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
29480 
29481 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29482 
29483 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
29484 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
29485 
29486 ---------------------------------------------------------------------------------------------------------------
29487 
29488 
29489 --
29490 -- bulk performance
29491 --
29492 l_balance_type_code           VARCHAR2(1);
29493 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
29494 l_log_module                  VARCHAR2(240);
29495 
29496 --
29497 -- Upgrade strategy
29498 --
29499 l_actual_upg_option           VARCHAR2(1);
29500 l_enc_upg_option           VARCHAR2(1);
29501 
29502 --
29503 BEGIN
29504 --
29505 IF g_log_enabled THEN
29506       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_77';
29507 END IF;
29508 --
29509 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29510 
29511       trace
29512          (p_msg      => 'BEGIN of AcctLineType_77'
29513          ,p_level    => C_LEVEL_PROCEDURE
29514          ,p_module   => l_log_module);
29515 
29516 END IF;
29517 --
29518 l_component_type             := 'AMB_JLT';
29519 l_component_code             := 'AP_CASH_CLEAR_PMT_BS_INVXRATE';
29520 l_component_type_code        := 'S';
29521 l_component_appl_id          :=  200;
29522 l_amb_context_code           := 'DEFAULT';
29523 l_entity_code                := 'AP_PAYMENTS';
29524 l_event_class_code           := 'PAYMENTS';
29525 l_event_type_code            := 'PAYMENTS_ALL';
29526 l_line_definition_owner_code := 'S';
29527 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
29528 --
29529 l_balance_type_code          := 'A';
29530 l_segment                     := NULL;
29531 l_ccid                        := NULL;
29532 l_adr_transaction_coa_id      := NULL;
29533 l_adr_accounting_coa_id       := NULL;
29534 l_adr_flexfield_segment_code  := NULL;
29535 l_adr_flex_value_set_id       := NULL;
29536 l_adr_value_type_code         := NULL;
29537 l_adr_value_combination_id    := NULL;
29538 l_adr_value_segment_code      := NULL;
29539 
29540 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
29541 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
29542 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
29543 l_budgetary_control_flag     := 'N';
29544 
29545 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
29546 l_bflow_applied_to_amt       := NULL; -- 5132302
29547 l_entered_amt_idx            := NULL;          -- 4262811
29548 l_accted_amt_idx             := NULL;          -- 4262811
29549 l_acc_rev_flag               := NULL;          -- 4262811
29553  
29550 l_accrual_line_num           := NULL;          -- 4262811
29551 l_tmp_amt                    := NULL;          -- 4262811
29552 --
29554 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29555     l_balance_type_code <> 'B' THEN
29556 IF NVL(p_source_89,'
29557 ') =  'ALWAYS_CLEAR' AND 
29558 (NVL(p_source_105,'
29559 ') =  'Y' AND 
29560 NVL(p_source_3,'
29561 ') =  'BALANCING_SEGMENT') AND 
29562 p_source_107 IS NULL AND 
29563 NVL(p_source_90,'
29564 ') =  'CASH' AND 
29565 NVL(p_source_115,'
29566 ') <>  'R' AND 
29567 NVL(p_source_116,'
29568 ') <>  'PAYMENTCARD'
29569  THEN 
29570 
29571    --
29572    XLA_AE_LINES_PKG.SetNewLine;
29573 
29574    p_balance_type_code          := l_balance_type_code;
29575    -- set the flag so later we will know whether the gain loss line needs to be created
29576    
29577    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29578      p_actual_flag :='A';
29579    END IF;
29580 
29581    --
29582    -- bulk performance
29583    --
29584    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29585                                       p_header_num   => 0); -- 4262811
29586    --
29587    -- set accounting line options
29588    --
29589    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29590            p_natural_side_code          => 'C'
29591          , p_gain_or_loss_flag          => 'N'
29592          , p_gl_transfer_mode_code      => 'S'
29593          , p_acct_entry_type_code       => 'A'
29594          , p_switch_side_flag           => 'Y'
29595          , p_merge_duplicate_code       => 'A'
29596          );
29597    --
29598    l_acc_rev_natural_side_code := 'D';  -- 4262811
29599    -- 
29600    --
29601    -- set accounting line type info
29602    --
29603    xla_ae_lines_pkg.SetAcctLineType
29604       (p_component_type             => l_component_type
29605       ,p_event_type_code            => l_event_type_code
29606       ,p_line_definition_owner_code => l_line_definition_owner_code
29607       ,p_line_definition_code       => l_line_definition_code
29608       ,p_accounting_line_code       => l_component_code
29609       ,p_accounting_line_type_code  => l_component_type_code
29610       ,p_accounting_line_appl_id    => l_component_appl_id
29611       ,p_amb_context_code           => l_amb_context_code
29612       ,p_entity_code                => l_entity_code
29613       ,p_event_class_code           => l_event_class_code);
29614    --
29615    -- set accounting class
29616    --
29617    xla_ae_lines_pkg.SetAcctClass(
29618            p_accounting_class_code  => 'CASH_CLEARING'
29619          , p_ae_header_id           => l_ae_header_id
29620          );
29621 
29622    --
29623    -- set rounding class
29624    --
29625    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29626                       'CASH_CLEARING';
29627 
29628    --
29629    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29630    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29631    --
29632    -- bulk performance
29633    --
29634    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29635 
29636    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29637       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29638 
29639    -- 4955764
29640    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29641       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29642 
29643    -- 4458381 Public Sector Enh
29644    
29645    --
29646    -- set accounting attributes for the line type
29647    --
29648    l_entered_amt_idx := 10;
29649    l_accted_amt_idx  := 15;
29650    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
29651    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29652    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
29653    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
29654    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
29655    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
29656    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
29657    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29658    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
29659    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
29660    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
29661    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
29662    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
29663    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29664    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
29665    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
29666    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
29667    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
29668    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
29669    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
29670    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
29671    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
29672    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
29673    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
29674    l_rec_acct_attrs.array_date_value(12)  := p_source_110;
29675    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
29679    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
29676    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
29677    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
29678    l_rec_acct_attrs.array_char_value(14)  := p_source_112;
29680    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
29681    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
29682    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
29683    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
29684    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
29685    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
29686    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
29687    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
29688    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
29689    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
29690    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
29691    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
29692    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
29693    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
29694    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
29695    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
29696    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
29697    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
29698    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
29699 
29700    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29701    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29702 
29703    ---------------------------------------------------------------------------------------------------------------
29704    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29705    ---------------------------------------------------------------------------------------------------------------
29706    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29707 
29708    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29709    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29710 
29711    IF xla_accounting_cache_pkg.GetValueChar
29712          (p_source_code         => 'LEDGER_CATEGORY_CODE'
29713          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29714    AND l_bflow_method_code = 'PRIOR_ENTRY'
29715 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29716    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29717          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29718        )
29719    THEN
29720          xla_ae_lines_pkg.BflowUpgEntry
29721            (p_business_method_code    => l_bflow_method_code
29722            ,p_business_class_code     => l_bflow_class_code
29723            ,p_balance_type            => l_balance_type_code);
29724    ELSE
29725       NULL;
29726 XLA_AE_LINES_PKG.business_flow_validation(
29727                                 p_business_method_code     => l_bflow_method_code
29728                                ,p_business_class_code      => l_bflow_class_code
29729                                ,p_inherit_description_flag => l_inherit_desc_flag);
29730    END IF;
29731 
29732    --
29733    -- call analytical criteria
29734    --
29735    
29736    --
29737    -- call description
29738    --
29739    -- No description or it is inherited.
29740    --
29741    -- call ADRs
29742    -- Bug 4922099
29743    --
29744    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29745         (NVL(l_actual_upg_option, 'N') = 'O') OR
29746         (NVL(l_enc_upg_option, 'N') = 'O')
29747       )
29748    THEN
29749    NULL;
29750    --
29751    --
29752    
29753   l_ccid := AcctDerRule_35(
29754            p_application_id           => p_application_id
29755          , p_ae_header_id             => l_ae_header_id 
29756 , p_source_23 => p_source_23
29757          , x_transaction_coa_id       => l_adr_transaction_coa_id
29758          , x_accounting_coa_id        => l_adr_accounting_coa_id
29759          , x_value_type_code          => l_adr_value_type_code
29760          , p_side                     => 'NA'
29761    );
29762 
29763    xla_ae_lines_pkg.set_ccid(
29764     p_code_combination_id          => l_ccid
29765   , p_value_type_code              => l_adr_value_type_code
29766   , p_transaction_coa_id           => l_adr_transaction_coa_id
29767   , p_accounting_coa_id            => l_adr_accounting_coa_id
29768   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
29769   , p_adr_type_code                => 'S'
29770   , p_component_type               => l_component_type
29771   , p_component_code               => l_component_code
29772   , p_component_type_code          => l_component_type_code
29773   , p_component_appl_id            => l_component_appl_id
29774   , p_amb_context_code             => l_amb_context_code
29775   , p_side                         => 'NA'
29776   );
29777 
29778 
29779    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
29780      p_to_segment_code         => 'GL_BALANCING'
29781    , p_segment_value           => C_CHAR
29782    , p_from_segment_code       => NULL
29783    , p_from_combination_id     => NULL
29784    , p_value_type_code         => NULL
29785    , p_transaction_coa_id      => null
29786    , p_accounting_coa_id       => null
29787    , p_flexfield_segment_code  => NULL
29788    , p_flex_value_set_id       => NULL
29789    , p_adr_code                => NULL
29793    , p_component_type_code     => l_component_type_code
29790    , p_adr_type_code           => NULL
29791    , p_component_type          => l_component_type
29792    , p_component_code          => l_component_code
29794    , p_component_appl_id       => l_component_appl_id
29795    , p_amb_context_code        => l_amb_context_code
29796    , p_entity_code             => 'AP_PAYMENTS'
29797    , p_event_class_code        => 'PAYMENTS'
29798    , p_side                    => 'NA'
29799    );
29800    --
29801 
29802 
29803    --
29804    --
29805    END IF;
29806    --
29807    -- Bug 4922099
29808    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29809           (NVL(l_enc_upg_option, 'N') = 'O')
29810         ) AND
29811         (l_bflow_method_code = 'PRIOR_ENTRY')
29812       )
29813    THEN
29814       IF
29815       --
29816       1 = 2
29817       --
29818       THEN
29819       xla_accounting_err_pkg.build_message
29820                                     (p_appli_s_name            => 'XLA'
29821                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29822                                     ,p_token_1                 => 'LINE_NUMBER'
29823                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
29824                                     ,p_token_2                 => 'LINE_TYPE_NAME'
29825                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
29826                                                                              l_component_type
29827                                                                             ,l_component_code
29828                                                                             ,l_component_type_code
29829                                                                             ,l_component_appl_id
29830                                                                             ,l_amb_context_code
29831                                                                             ,l_entity_code
29832                                                                             ,l_event_class_code
29833                                                                            )
29834                                     ,p_token_3                 => 'OWNER'
29835                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
29836                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
29837                                                                           ,p_lookup_code    => l_component_type_code
29838                                                                          )
29839                                     ,p_token_4                 => 'PRODUCT_NAME'
29840                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29841                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29842                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29843                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29844                                     ,p_ae_header_id            =>  NULL
29845                                        );
29846 
29847         IF (C_LEVEL_ERROR>= g_log_level) THEN
29848                  trace
29849                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29850                       ,p_level    => C_LEVEL_ERROR
29851                       ,p_module   => l_log_module);
29852         END IF;
29853       END IF;
29854    END IF;
29855    --
29856    --
29857    ------------------------------------------------------------------------------------------------
29858    -- 4219869 Business Flow
29859    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29860    -- Prior Entry.  Currently, the following code is always generated.
29861    ------------------------------------------------------------------------------------------------
29862    XLA_AE_LINES_PKG.ValidateCurrentLine;
29863 
29864    ------------------------------------------------------------------------------------
29865    -- 4219869 Business Flow
29866    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29867    ------------------------------------------------------------------------------------
29868    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29869 
29870    ----------------------------------------------------------------------------------
29871    -- 4219869 Business Flow
29872    -- Update journal entry status -- Need to generate this within IF <condition>
29873    ----------------------------------------------------------------------------------
29874    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29875          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29876          ,p_balance_type_code => l_balance_type_code
29877          );
29878 
29879    -------------------------------------------------------------------------------------------
29880    -- 4262811 - Generate the Accrual Reversal lines
29881    -------------------------------------------------------------------------------------------
29882    BEGIN
29883       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29884                               (g_array_event(p_event_id).array_value_num('header_index'));
29885       IF l_acc_rev_flag IS NULL THEN
29886          l_acc_rev_flag := 'N';
29887       END IF;
29888    EXCEPTION
29889       WHEN OTHERS THEN
29890          l_acc_rev_flag := 'N';
29891    END;
29892    --
29893    IF (l_acc_rev_flag = 'Y') THEN
29894 
29898        ------------------------------------------------------------------------------------------
29895        -- 4645092  ------------------------------------------------------------------------------
29896        -- To allow MPA report to determine if it should generate report process
29897        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29899 
29900        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29901        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29902    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
29903    -- call ADRs
29904    -- Bug 4922099
29905    --
29906    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29907         (NVL(l_actual_upg_option, 'N') = 'O') OR
29908         (NVL(l_enc_upg_option, 'N') = 'O')
29909       )
29910    THEN
29911    NULL;
29912    --
29913    --
29914    
29915   l_ccid := AcctDerRule_35(
29916            p_application_id           => p_application_id
29917          , p_ae_header_id             => l_ae_header_id 
29918 , p_source_23 => p_source_23
29919          , x_transaction_coa_id       => l_adr_transaction_coa_id
29920          , x_accounting_coa_id        => l_adr_accounting_coa_id
29921          , x_value_type_code          => l_adr_value_type_code
29922          , p_side                     => 'NA'
29923    );
29924 
29925    xla_ae_lines_pkg.set_ccid(
29926     p_code_combination_id          => l_ccid
29927   , p_value_type_code              => l_adr_value_type_code
29928   , p_transaction_coa_id           => l_adr_transaction_coa_id
29929   , p_accounting_coa_id            => l_adr_accounting_coa_id
29930   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
29931   , p_adr_type_code                => 'S'
29932   , p_component_type               => l_component_type
29933   , p_component_code               => l_component_code
29934   , p_component_type_code          => l_component_type_code
29935   , p_component_appl_id            => l_component_appl_id
29936   , p_amb_context_code             => l_amb_context_code
29937   , p_side                         => 'NA'
29938   );
29939 
29940 
29941    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
29942      p_to_segment_code         => 'GL_BALANCING'
29943    , p_segment_value           => C_CHAR
29944    , p_from_segment_code       => NULL
29945    , p_from_combination_id     => NULL
29946    , p_value_type_code         => NULL
29947    , p_transaction_coa_id      => null
29948    , p_accounting_coa_id       => null
29949    , p_flexfield_segment_code  => NULL
29950    , p_flex_value_set_id       => NULL
29951    , p_adr_code                => NULL
29952    , p_adr_type_code           => NULL
29953    , p_component_type          => l_component_type
29954    , p_component_code          => l_component_code
29955    , p_component_type_code     => l_component_type_code
29956    , p_component_appl_id       => l_component_appl_id
29957    , p_amb_context_code        => l_amb_context_code
29958    , p_entity_code             => 'AP_PAYMENTS'
29959    , p_event_class_code        => 'PAYMENTS'
29960    , p_side                    => 'NA'
29961    );
29962    --
29963 
29964 
29965    --
29966    --
29967    END IF;
29968 
29969        --
29970        -- Update the line information that should be overwritten
29971        --
29972        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29973                                          p_header_num   => 1);
29974        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
29975 
29976        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29977 
29978        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
29979           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29980        END IF;
29981 
29982       --
29983       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29984       --
29985       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29986           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
29987       ELSE
29988           ---------------------------------------------------------------------------------------------------
29989           -- 4262811a Switch Sign
29990           ---------------------------------------------------------------------------------------------------
29991           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
29992           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29993                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29994           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29995                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29996           -- 5132302
29997           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29998                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29999 
30000       END IF;
30001 
30002       -- 4955764
30003       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30004       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30005 
30006 
30007       XLA_AE_LINES_PKG.ValidateCurrentLine;
30008       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30009 
30013 
30010       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30011                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30012                ,p_balance_type_code => l_balance_type_code);
30014    END IF;
30015 
30016    -----------------------------------------------------------------------------------------
30017    -- 4262811 Multiperiod Accounting
30018    -----------------------------------------------------------------------------------------
30019      -- No MPA option is assigned.
30020 
30021 
30022 END IF;
30023 END IF;
30024 --
30025 
30026 --
30027 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30028    trace
30029       (p_msg      => 'END of AcctLineType_77'
30030       ,p_level    => C_LEVEL_PROCEDURE
30031       ,p_module   => l_log_module);
30032 END IF;
30033 --
30034 EXCEPTION
30035   WHEN xla_exceptions_pkg.application_exception THEN
30036       RAISE;
30037   WHEN OTHERS THEN
30038        xla_exceptions_pkg.raise_message
30039            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_77');
30040 END AcctLineType_77;
30041 --
30042 
30043 ---------------------------------------
30044 --
30045 -- PRIVATE FUNCTION
30046 --         AcctLineType_78
30047 --
30048 ---------------------------------------
30049 PROCEDURE AcctLineType_78 (
30050   p_application_id        IN NUMBER
30051  ,p_event_id              IN NUMBER
30052  ,p_calculate_acctd_flag  IN VARCHAR2
30053  ,p_calculate_g_l_flag    IN VARCHAR2
30054  ,p_actual_flag           IN OUT VARCHAR2
30055  ,p_balance_type_code     OUT VARCHAR2
30056  ,p_gain_or_loss_ref      OUT VARCHAR2
30057  
30058 --Bank Cash Clearing Account
30059  , p_source_23            IN NUMBER
30060 --Automatic Offsets Flag
30061  , p_source_35            IN VARCHAR2
30062  , p_source_35_meaning    IN VARCHAR2
30063 --Accounting Reversal Indicator
30064  , p_source_41            IN VARCHAR2
30065 --Distribution Link Type
30066  , p_source_43            IN VARCHAR2
30067 --Override Accounted Amount Indicator
30068  , p_source_68            IN VARCHAR2
30069  , p_source_68_meaning    IN VARCHAR2
30070 --Third Party Type
30071  , p_source_71            IN VARCHAR2
30072 --Invoice Distribution Tax Line Identifier
30073  , p_source_74            IN NUMBER
30074 --Invoice Distribution Tax Distribution Identifier from Tax
30075  , p_source_75            IN NUMBER
30076 --Invoice Distribution Summary Tax Line Identifier
30077  , p_source_76            IN NUMBER
30078 --Business Flow Accounts Payable Application Identifier
30079  , p_source_79            IN NUMBER
30080 --Business Flow Invoice Distribution Type
30081  , p_source_80            IN VARCHAR2
30082 --Business Flow Invoice Entity Code
30083  , p_source_81            IN VARCHAR2
30084 --Business Flow Invoice Distribution Identifier
30085  , p_source_82            IN NUMBER
30086 --Business Flow Invoice Identifier
30087  , p_source_83            IN NUMBER
30088 --When to Account for Payment Option
30089  , p_source_89            IN VARCHAR2
30090 --Payment Distribution Type
30091  , p_source_90            IN VARCHAR2
30092  , p_source_90_meaning    IN VARCHAR2
30093 --Payment Distribution Amount
30094  , p_source_91            IN NUMBER
30095 --Payment Distribution Identifier
30096  , p_source_96            IN NUMBER
30097 --Payment Supplier Identifier
30098  , p_source_102            IN NUMBER
30099 --Payment Supplier Site Identifier
30100  , p_source_103            IN NUMBER
30101 --Payment Distribution Reversed Identifier
30102  , p_source_104            IN NUMBER
30103 --Pooled Bank Account Option
30104  , p_source_105            IN VARCHAR2
30105  , p_source_105_meaning    IN VARCHAR2
30106 --Payment Currency Code
30107  , p_source_106            IN VARCHAR2
30108 --Payment Maturity Date
30109  , p_source_107            IN DATE
30110 --Payment Distribution (Invoice Rate) Ledger Amount
30111  , p_source_109            IN NUMBER
30112 --Payment Exchange Date
30113  , p_source_110            IN DATE
30114 --Payment Exchange Rate
30115  , p_source_111            IN NUMBER
30116 --Payment Exchange Rate Type
30117  , p_source_112            IN VARCHAR2
30118 --Payment Type
30119  , p_source_115            IN VARCHAR2
30120  , p_source_115_meaning    IN VARCHAR2
30121 --Payment Processing Type
30122  , p_source_116            IN VARCHAR2
30123 --Invoice Distribution Amount of the Payment Distribution
30124  , p_source_117            IN NUMBER
30125 )
30126 IS
30127 
30128 l_component_type              VARCHAR2(80);
30129 l_component_code              VARCHAR2(30);
30130 l_component_type_code         VARCHAR2(1);
30131 l_component_appl_id           INTEGER;
30132 l_amb_context_code            VARCHAR2(30);
30133 l_entity_code                 VARCHAR2(30);
30134 l_event_class_code            VARCHAR2(30);
30135 l_ae_header_id                NUMBER;
30136 l_event_type_code             VARCHAR2(30);
30137 l_line_definition_code        VARCHAR2(30);
30138 l_line_definition_owner_code  VARCHAR2(1);
30139 --
30140 -- adr variables
30141 l_segment                     VARCHAR2(30);
30142 l_ccid                        NUMBER;
30143 l_adr_transaction_coa_id      NUMBER;
30144 l_adr_accounting_coa_id       NUMBER;
30145 l_adr_flexfield_segment_code  VARCHAR2(30);
30146 l_adr_flex_value_set_id       NUMBER;
30147 l_adr_value_type_code         VARCHAR2(30);
30148 l_adr_value_combination_id    NUMBER;
30149 l_adr_value_segment_code      VARCHAR2(30);
30150 
30154 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
30151 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
30152 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
30153 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
30155 
30156 -- 4262811 Variables ------------------------------------------------------------------------------------------
30157 l_entered_amt_idx             NUMBER;
30158 l_accted_amt_idx              NUMBER;
30159 l_acc_rev_flag                VARCHAR2(1);
30160 l_accrual_line_num            NUMBER;
30161 l_tmp_amt                     NUMBER;
30162 l_acc_rev_natural_side_code   VARCHAR2(1);
30163 
30164 l_num_entries                 NUMBER;
30165 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
30166 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
30167 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
30168 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
30169 l_recog_line_1                NUMBER;
30170 l_recog_line_2                NUMBER;
30171 
30172 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
30173 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
30174 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
30175 
30176 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30177 
30178 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
30179 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
30180 
30181 ---------------------------------------------------------------------------------------------------------------
30182 
30183 
30184 --
30185 -- bulk performance
30186 --
30187 l_balance_type_code           VARCHAR2(1);
30188 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
30189 l_log_module                  VARCHAR2(240);
30190 
30191 --
30192 -- Upgrade strategy
30193 --
30194 l_actual_upg_option           VARCHAR2(1);
30195 l_enc_upg_option           VARCHAR2(1);
30196 
30197 --
30198 BEGIN
30199 --
30200 IF g_log_enabled THEN
30201       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_78';
30202 END IF;
30203 --
30204 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30205 
30206       trace
30207          (p_msg      => 'BEGIN of AcctLineType_78'
30208          ,p_level    => C_LEVEL_PROCEDURE
30209          ,p_module   => l_log_module);
30210 
30211 END IF;
30212 --
30213 l_component_type             := 'AMB_JLT';
30214 l_component_code             := 'AP_CASH_CLEAR_PMT_INVXRATE';
30215 l_component_type_code        := 'S';
30216 l_component_appl_id          :=  200;
30217 l_amb_context_code           := 'DEFAULT';
30218 l_entity_code                := 'AP_PAYMENTS';
30219 l_event_class_code           := 'PAYMENTS';
30220 l_event_type_code            := 'PAYMENTS_ALL';
30221 l_line_definition_owner_code := 'S';
30222 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
30223 --
30224 l_balance_type_code          := 'A';
30225 l_segment                     := NULL;
30226 l_ccid                        := NULL;
30227 l_adr_transaction_coa_id      := NULL;
30228 l_adr_accounting_coa_id       := NULL;
30229 l_adr_flexfield_segment_code  := NULL;
30230 l_adr_flex_value_set_id       := NULL;
30231 l_adr_value_type_code         := NULL;
30232 l_adr_value_combination_id    := NULL;
30233 l_adr_value_segment_code      := NULL;
30234 
30235 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
30236 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
30237 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
30238 l_budgetary_control_flag     := 'N';
30239 
30240 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
30241 l_bflow_applied_to_amt       := NULL; -- 5132302
30242 l_entered_amt_idx            := NULL;          -- 4262811
30243 l_accted_amt_idx             := NULL;          -- 4262811
30244 l_acc_rev_flag               := NULL;          -- 4262811
30245 l_accrual_line_num           := NULL;          -- 4262811
30246 l_tmp_amt                    := NULL;          -- 4262811
30247 --
30248  
30249 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30250     l_balance_type_code <> 'B' THEN
30251 IF NVL(p_source_89,'
30252 ') =  'ALWAYS_CLEAR' AND 
30253 (NVL(p_source_35,'
30254 ') <>  'Y' OR 
30255 NVL(p_source_35,'
30256 ') =  'Y' AND 
30257 NVL(p_source_105,'
30258 ') <>  'Y') AND 
30259 p_source_107 IS NULL AND 
30260 NVL(p_source_90,'
30261 ') =  'CASH' AND 
30262 NVL(p_source_115,'
30263 ') <>  'R' AND 
30264 NVL(p_source_116,'
30265 ') <>  'PAYMENTCARD'
30266  THEN 
30267 
30268    --
30269    XLA_AE_LINES_PKG.SetNewLine;
30270 
30271    p_balance_type_code          := l_balance_type_code;
30272    -- set the flag so later we will know whether the gain loss line needs to be created
30273    
30274    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30275      p_actual_flag :='A';
30276    END IF;
30277 
30278    --
30279    -- bulk performance
30280    --
30281    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30282                                       p_header_num   => 0); -- 4262811
30283    --
30284    -- set accounting line options
30285    --
30289          , p_gl_transfer_mode_code      => 'S'
30286    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30287            p_natural_side_code          => 'C'
30288          , p_gain_or_loss_flag          => 'N'
30290          , p_acct_entry_type_code       => 'A'
30291          , p_switch_side_flag           => 'Y'
30292          , p_merge_duplicate_code       => 'A'
30293          );
30294    --
30295    l_acc_rev_natural_side_code := 'D';  -- 4262811
30296    -- 
30297    --
30298    -- set accounting line type info
30299    --
30300    xla_ae_lines_pkg.SetAcctLineType
30301       (p_component_type             => l_component_type
30302       ,p_event_type_code            => l_event_type_code
30303       ,p_line_definition_owner_code => l_line_definition_owner_code
30304       ,p_line_definition_code       => l_line_definition_code
30305       ,p_accounting_line_code       => l_component_code
30306       ,p_accounting_line_type_code  => l_component_type_code
30307       ,p_accounting_line_appl_id    => l_component_appl_id
30308       ,p_amb_context_code           => l_amb_context_code
30309       ,p_entity_code                => l_entity_code
30310       ,p_event_class_code           => l_event_class_code);
30311    --
30312    -- set accounting class
30313    --
30314    xla_ae_lines_pkg.SetAcctClass(
30315            p_accounting_class_code  => 'CASH_CLEARING'
30316          , p_ae_header_id           => l_ae_header_id
30317          );
30318 
30319    --
30320    -- set rounding class
30321    --
30322    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30323                       'CASH_CLEARING';
30324 
30325    --
30326    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30327    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30328    --
30329    -- bulk performance
30330    --
30331    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30332 
30333    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30334       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30335 
30336    -- 4955764
30337    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30338       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30339 
30340    -- 4458381 Public Sector Enh
30341    
30342    --
30343    -- set accounting attributes for the line type
30344    --
30345    l_entered_amt_idx := 10;
30346    l_accted_amt_idx  := 15;
30347    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
30348    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30349    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
30350    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
30351    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
30352    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
30353    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
30354    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30355    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
30356    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
30357    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
30358    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
30359    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
30360    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30361    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
30362    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
30363    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
30364    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
30365    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
30366    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
30367    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
30368    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
30369    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
30370    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
30371    l_rec_acct_attrs.array_date_value(12)  := p_source_110;
30372    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
30373    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
30374    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
30375    l_rec_acct_attrs.array_char_value(14)  := p_source_112;
30376    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
30377    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
30378    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
30379    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
30380    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
30381    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
30382    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
30383    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
30384    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
30385    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
30386    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
30387    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
30388    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
30389    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
30390    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
30391    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
30395    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
30392    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
30393    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
30394    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
30396 
30397    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30398    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30399 
30400    ---------------------------------------------------------------------------------------------------------------
30401    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30402    ---------------------------------------------------------------------------------------------------------------
30403    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30404 
30405    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30406    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30407 
30408    IF xla_accounting_cache_pkg.GetValueChar
30409          (p_source_code         => 'LEDGER_CATEGORY_CODE'
30410          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30411    AND l_bflow_method_code = 'PRIOR_ENTRY'
30412 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30413    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30414          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30415        )
30416    THEN
30417          xla_ae_lines_pkg.BflowUpgEntry
30418            (p_business_method_code    => l_bflow_method_code
30419            ,p_business_class_code     => l_bflow_class_code
30420            ,p_balance_type            => l_balance_type_code);
30421    ELSE
30422       NULL;
30423 -- No business flow processing for business flow method of NONE.
30424    END IF;
30425 
30426    --
30427    -- call analytical criteria
30428    --
30429    
30430    --
30431    -- call description
30432    --
30433    -- No description or it is inherited.
30434    --
30435    -- call ADRs
30436    -- Bug 4922099
30437    --
30438    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30439         (NVL(l_actual_upg_option, 'N') = 'O') OR
30440         (NVL(l_enc_upg_option, 'N') = 'O')
30441       )
30442    THEN
30443    NULL;
30444    --
30445    --
30446    
30447   l_ccid := AcctDerRule_35(
30448            p_application_id           => p_application_id
30449          , p_ae_header_id             => l_ae_header_id 
30450 , p_source_23 => p_source_23
30451          , x_transaction_coa_id       => l_adr_transaction_coa_id
30452          , x_accounting_coa_id        => l_adr_accounting_coa_id
30453          , x_value_type_code          => l_adr_value_type_code
30454          , p_side                     => 'NA'
30455    );
30456 
30457    xla_ae_lines_pkg.set_ccid(
30458     p_code_combination_id          => l_ccid
30459   , p_value_type_code              => l_adr_value_type_code
30460   , p_transaction_coa_id           => l_adr_transaction_coa_id
30461   , p_accounting_coa_id            => l_adr_accounting_coa_id
30462   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
30463   , p_adr_type_code                => 'S'
30464   , p_component_type               => l_component_type
30465   , p_component_code               => l_component_code
30466   , p_component_type_code          => l_component_type_code
30467   , p_component_appl_id            => l_component_appl_id
30468   , p_amb_context_code             => l_amb_context_code
30469   , p_side                         => 'NA'
30470   );
30471 
30472 
30473    --
30474    --
30475    END IF;
30476    --
30477    -- Bug 4922099
30478    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30479           (NVL(l_enc_upg_option, 'N') = 'O')
30480         ) AND
30481         (l_bflow_method_code = 'PRIOR_ENTRY')
30482       )
30483    THEN
30484       IF
30485       --
30486       1 = 2
30487       --
30488       THEN
30489       xla_accounting_err_pkg.build_message
30490                                     (p_appli_s_name            => 'XLA'
30491                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30492                                     ,p_token_1                 => 'LINE_NUMBER'
30493                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
30494                                     ,p_token_2                 => 'LINE_TYPE_NAME'
30495                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
30496                                                                              l_component_type
30497                                                                             ,l_component_code
30498                                                                             ,l_component_type_code
30499                                                                             ,l_component_appl_id
30500                                                                             ,l_amb_context_code
30501                                                                             ,l_entity_code
30502                                                                             ,l_event_class_code
30503                                                                            )
30504                                     ,p_token_3                 => 'OWNER'
30505                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
30506                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
30510                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30507                                                                           ,p_lookup_code    => l_component_type_code
30508                                                                          )
30509                                     ,p_token_4                 => 'PRODUCT_NAME'
30511                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30512                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30513                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30514                                     ,p_ae_header_id            =>  NULL
30515                                        );
30516 
30517         IF (C_LEVEL_ERROR>= g_log_level) THEN
30518                  trace
30519                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30520                       ,p_level    => C_LEVEL_ERROR
30521                       ,p_module   => l_log_module);
30522         END IF;
30523       END IF;
30524    END IF;
30525    --
30526    --
30527    ------------------------------------------------------------------------------------------------
30528    -- 4219869 Business Flow
30529    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30530    -- Prior Entry.  Currently, the following code is always generated.
30531    ------------------------------------------------------------------------------------------------
30532    XLA_AE_LINES_PKG.ValidateCurrentLine;
30533 
30534    ------------------------------------------------------------------------------------
30535    -- 4219869 Business Flow
30536    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30537    ------------------------------------------------------------------------------------
30538    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30539 
30540    ----------------------------------------------------------------------------------
30541    -- 4219869 Business Flow
30542    -- Update journal entry status -- Need to generate this within IF <condition>
30543    ----------------------------------------------------------------------------------
30544    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30545          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30546          ,p_balance_type_code => l_balance_type_code
30547          );
30548 
30549    -------------------------------------------------------------------------------------------
30550    -- 4262811 - Generate the Accrual Reversal lines
30551    -------------------------------------------------------------------------------------------
30552    BEGIN
30553       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30554                               (g_array_event(p_event_id).array_value_num('header_index'));
30555       IF l_acc_rev_flag IS NULL THEN
30556          l_acc_rev_flag := 'N';
30557       END IF;
30558    EXCEPTION
30559       WHEN OTHERS THEN
30560          l_acc_rev_flag := 'N';
30561    END;
30562    --
30563    IF (l_acc_rev_flag = 'Y') THEN
30564 
30565        -- 4645092  ------------------------------------------------------------------------------
30566        -- To allow MPA report to determine if it should generate report process
30567        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30568        ------------------------------------------------------------------------------------------
30569 
30570        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30571        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30572    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
30573    -- call ADRs
30574    -- Bug 4922099
30575    --
30576    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30577         (NVL(l_actual_upg_option, 'N') = 'O') OR
30578         (NVL(l_enc_upg_option, 'N') = 'O')
30579       )
30580    THEN
30581    NULL;
30582    --
30583    --
30584    
30585   l_ccid := AcctDerRule_35(
30586            p_application_id           => p_application_id
30587          , p_ae_header_id             => l_ae_header_id 
30588 , p_source_23 => p_source_23
30589          , x_transaction_coa_id       => l_adr_transaction_coa_id
30590          , x_accounting_coa_id        => l_adr_accounting_coa_id
30591          , x_value_type_code          => l_adr_value_type_code
30592          , p_side                     => 'NA'
30593    );
30594 
30595    xla_ae_lines_pkg.set_ccid(
30596     p_code_combination_id          => l_ccid
30597   , p_value_type_code              => l_adr_value_type_code
30598   , p_transaction_coa_id           => l_adr_transaction_coa_id
30599   , p_accounting_coa_id            => l_adr_accounting_coa_id
30600   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
30601   , p_adr_type_code                => 'S'
30602   , p_component_type               => l_component_type
30603   , p_component_code               => l_component_code
30604   , p_component_type_code          => l_component_type_code
30605   , p_component_appl_id            => l_component_appl_id
30606   , p_amb_context_code             => l_amb_context_code
30607   , p_side                         => 'NA'
30608   );
30609 
30610 
30611    --
30612    --
30613    END IF;
30614 
30615        --
30616        -- Update the line information that should be overwritten
30617        --
30618        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30619                                          p_header_num   => 1);
30620        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
30621 
30625           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30622        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30623 
30624        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
30626        END IF;
30627 
30628       --
30629       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30630       --
30631       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30632           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
30633       ELSE
30634           ---------------------------------------------------------------------------------------------------
30635           -- 4262811a Switch Sign
30636           ---------------------------------------------------------------------------------------------------
30637           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
30638           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30639                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30640           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30641                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30642           -- 5132302
30643           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30644                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30645 
30646       END IF;
30647 
30648       -- 4955764
30649       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30650       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30651 
30652 
30653       XLA_AE_LINES_PKG.ValidateCurrentLine;
30654       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30655 
30656       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30657                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30658                ,p_balance_type_code => l_balance_type_code);
30659 
30660    END IF;
30661 
30662    -----------------------------------------------------------------------------------------
30663    -- 4262811 Multiperiod Accounting
30664    -----------------------------------------------------------------------------------------
30665      -- No MPA option is assigned.
30666 
30667 
30668 END IF;
30669 END IF;
30670 --
30671 
30672 --
30673 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30674    trace
30675       (p_msg      => 'END of AcctLineType_78'
30676       ,p_level    => C_LEVEL_PROCEDURE
30677       ,p_module   => l_log_module);
30678 END IF;
30679 --
30680 EXCEPTION
30681   WHEN xla_exceptions_pkg.application_exception THEN
30682       RAISE;
30683   WHEN OTHERS THEN
30684        xla_exceptions_pkg.raise_message
30685            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_78');
30686 END AcctLineType_78;
30687 --
30688 
30689 ---------------------------------------
30690 --
30691 -- PRIVATE FUNCTION
30692 --         AcctLineType_79
30693 --
30694 ---------------------------------------
30695 PROCEDURE AcctLineType_79 (
30696   p_application_id        IN NUMBER
30697  ,p_event_id              IN NUMBER
30698  ,p_calculate_acctd_flag  IN VARCHAR2
30699  ,p_calculate_g_l_flag    IN VARCHAR2
30700  ,p_actual_flag           IN OUT VARCHAR2
30701  ,p_balance_type_code     OUT VARCHAR2
30702  ,p_gain_or_loss_ref      OUT VARCHAR2
30703  
30704 --Bank Cash Clearing Account
30705  , p_source_23            IN NUMBER
30706 --Automatic Offsets Flag
30707  , p_source_35            IN VARCHAR2
30708  , p_source_35_meaning    IN VARCHAR2
30709 --Accounting Reversal Indicator
30710  , p_source_41            IN VARCHAR2
30711 --Distribution Link Type
30712  , p_source_43            IN VARCHAR2
30713 --Override Accounted Amount Indicator
30714  , p_source_68            IN VARCHAR2
30715  , p_source_68_meaning    IN VARCHAR2
30716 --Third Party Type
30717  , p_source_71            IN VARCHAR2
30718 --Business Flow Accounts Payable Application Identifier
30719  , p_source_79            IN NUMBER
30720 --When to Account for Payment Option
30721  , p_source_89            IN VARCHAR2
30722 --Payment Distribution Type
30723  , p_source_90            IN VARCHAR2
30724  , p_source_90_meaning    IN VARCHAR2
30725 --Payment Distribution Amount
30726  , p_source_91            IN NUMBER
30727 --Business Flow Payment Distribution Type
30728  , p_source_92            IN VARCHAR2
30729 --Business Flow Payment Entity Code
30730  , p_source_93            IN VARCHAR2
30731 --Business Flow Payment Distribution Identifier
30732  , p_source_94            IN NUMBER
30733 --Business Flow Payment Identifier
30734  , p_source_95            IN NUMBER
30735 --Payment Distribution Identifier
30736  , p_source_96            IN NUMBER
30737 --Payment Supplier Identifier
30738  , p_source_102            IN NUMBER
30739 --Payment Supplier Site Identifier
30740  , p_source_103            IN NUMBER
30741 --Payment Distribution Reversed Identifier
30742  , p_source_104            IN NUMBER
30743 --Pooled Bank Account Option
30744  , p_source_105            IN VARCHAR2
30745  , p_source_105_meaning    IN VARCHAR2
30746 --Payment Currency Code
30747  , p_source_106            IN VARCHAR2
30748 --Payment Maturity Date
30749  , p_source_107            IN DATE
30750 --Payment Exchange Date
30754 --Payment Exchange Rate Type
30751  , p_source_110            IN DATE
30752 --Payment Exchange Rate
30753  , p_source_111            IN NUMBER
30755  , p_source_112            IN VARCHAR2
30756 --Payment Distribution (Matured Rate) Ledger Amount
30757  , p_source_114            IN NUMBER
30758 )
30759 IS
30760 
30761 l_component_type              VARCHAR2(80);
30762 l_component_code              VARCHAR2(30);
30763 l_component_type_code         VARCHAR2(1);
30764 l_component_appl_id           INTEGER;
30765 l_amb_context_code            VARCHAR2(30);
30766 l_entity_code                 VARCHAR2(30);
30767 l_event_class_code            VARCHAR2(30);
30768 l_ae_header_id                NUMBER;
30769 l_event_type_code             VARCHAR2(30);
30770 l_line_definition_code        VARCHAR2(30);
30771 l_line_definition_owner_code  VARCHAR2(1);
30772 --
30773 -- adr variables
30774 l_segment                     VARCHAR2(30);
30775 l_ccid                        NUMBER;
30776 l_adr_transaction_coa_id      NUMBER;
30777 l_adr_accounting_coa_id       NUMBER;
30778 l_adr_flexfield_segment_code  VARCHAR2(30);
30779 l_adr_flex_value_set_id       NUMBER;
30780 l_adr_value_type_code         VARCHAR2(30);
30781 l_adr_value_combination_id    NUMBER;
30782 l_adr_value_segment_code      VARCHAR2(30);
30783 
30784 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
30785 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
30786 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
30787 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
30788 
30789 -- 4262811 Variables ------------------------------------------------------------------------------------------
30790 l_entered_amt_idx             NUMBER;
30791 l_accted_amt_idx              NUMBER;
30792 l_acc_rev_flag                VARCHAR2(1);
30793 l_accrual_line_num            NUMBER;
30794 l_tmp_amt                     NUMBER;
30795 l_acc_rev_natural_side_code   VARCHAR2(1);
30796 
30797 l_num_entries                 NUMBER;
30798 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
30799 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
30800 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
30801 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
30802 l_recog_line_1                NUMBER;
30803 l_recog_line_2                NUMBER;
30804 
30805 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
30806 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
30807 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
30808 
30809 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30810 
30811 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
30812 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
30813 
30814 ---------------------------------------------------------------------------------------------------------------
30815 
30816 
30817 --
30818 -- bulk performance
30819 --
30820 l_balance_type_code           VARCHAR2(1);
30821 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
30822 l_log_module                  VARCHAR2(240);
30823 
30824 --
30825 -- Upgrade strategy
30826 --
30827 l_actual_upg_option           VARCHAR2(1);
30828 l_enc_upg_option           VARCHAR2(1);
30829 
30830 --
30831 BEGIN
30832 --
30833 IF g_log_enabled THEN
30834       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_79';
30835 END IF;
30836 --
30837 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30838 
30839       trace
30840          (p_msg      => 'BEGIN of AcctLineType_79'
30841          ,p_level    => C_LEVEL_PROCEDURE
30842          ,p_module   => l_log_module);
30843 
30844 END IF;
30845 --
30846 l_component_type             := 'AMB_JLT';
30847 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT';
30848 l_component_type_code        := 'S';
30849 l_component_appl_id          :=  200;
30850 l_amb_context_code           := 'DEFAULT';
30851 l_entity_code                := 'AP_PAYMENTS';
30852 l_event_class_code           := 'FUTURE DATED PAYMENTS';
30853 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
30854 l_line_definition_owner_code := 'S';
30855 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
30856 --
30857 l_balance_type_code          := 'A';
30858 l_segment                     := NULL;
30859 l_ccid                        := NULL;
30860 l_adr_transaction_coa_id      := NULL;
30861 l_adr_accounting_coa_id       := NULL;
30862 l_adr_flexfield_segment_code  := NULL;
30863 l_adr_flex_value_set_id       := NULL;
30864 l_adr_value_type_code         := NULL;
30865 l_adr_value_combination_id    := NULL;
30866 l_adr_value_segment_code      := NULL;
30867 
30868 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
30869 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
30870 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
30871 l_budgetary_control_flag     := 'N';
30872 
30873 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
30874 l_bflow_applied_to_amt       := NULL; -- 5132302
30875 l_entered_amt_idx            := NULL;          -- 4262811
30876 l_accted_amt_idx             := NULL;          -- 4262811
30877 l_acc_rev_flag               := NULL;          -- 4262811
30878 l_accrual_line_num           := NULL;          -- 4262811
30879 l_tmp_amt                    := NULL;          -- 4262811
30880 --
30881  
30885 ') =  'ALWAYS_ALWAYS' OR 
30882 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30883     l_balance_type_code <> 'B' THEN
30884 IF (NVL(p_source_89,'
30886 NVL(p_source_89,'
30887 ') =  'ALWAYS_ISSUE') AND 
30888 (NVL(p_source_35,'
30889 ') <>  'Y' OR 
30890 NVL(p_source_35,'
30891 ') =  'Y' AND 
30892 NVL(p_source_105,'
30893 ') <>  'Y') AND 
30894 p_source_107 IS NOT NULL AND 
30895 NVL(p_source_90,'
30896 ') =  'CASH'
30897  THEN 
30898 
30899    --
30900    XLA_AE_LINES_PKG.SetNewLine;
30901 
30902    p_balance_type_code          := l_balance_type_code;
30903    -- set the flag so later we will know whether the gain loss line needs to be created
30904    
30905    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30906      p_actual_flag :='A';
30907    END IF;
30908 
30909    --
30910    -- bulk performance
30911    --
30912    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30913                                       p_header_num   => 0); -- 4262811
30914    --
30915    -- set accounting line options
30916    --
30917    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30918            p_natural_side_code          => 'C'
30919          , p_gain_or_loss_flag          => 'N'
30920          , p_gl_transfer_mode_code      => 'S'
30921          , p_acct_entry_type_code       => 'A'
30922          , p_switch_side_flag           => 'Y'
30923          , p_merge_duplicate_code       => 'A'
30924          );
30925    --
30926    l_acc_rev_natural_side_code := 'D';  -- 4262811
30927    -- 
30928    --
30929    -- set accounting line type info
30930    --
30931    xla_ae_lines_pkg.SetAcctLineType
30932       (p_component_type             => l_component_type
30933       ,p_event_type_code            => l_event_type_code
30934       ,p_line_definition_owner_code => l_line_definition_owner_code
30935       ,p_line_definition_code       => l_line_definition_code
30936       ,p_accounting_line_code       => l_component_code
30937       ,p_accounting_line_type_code  => l_component_type_code
30938       ,p_accounting_line_appl_id    => l_component_appl_id
30939       ,p_amb_context_code           => l_amb_context_code
30940       ,p_entity_code                => l_entity_code
30941       ,p_event_class_code           => l_event_class_code);
30942    --
30943    -- set accounting class
30944    --
30945    xla_ae_lines_pkg.SetAcctClass(
30946            p_accounting_class_code  => 'CASH_CLEARING'
30947          , p_ae_header_id           => l_ae_header_id
30948          );
30949 
30950    --
30951    -- set rounding class
30952    --
30953    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30954                       'CASH_CLEARING';
30955 
30956    --
30957    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30958    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30959    --
30960    -- bulk performance
30961    --
30962    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30963 
30964    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30965       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30966 
30967    -- 4955764
30968    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30969       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30970 
30971    -- 4458381 Public Sector Enh
30972    
30973    --
30974    -- set accounting attributes for the line type
30975    --
30976    l_entered_amt_idx := 9;
30977    l_accted_amt_idx  := 14;
30978    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
30979    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30980    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
30981    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
30982    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
30983    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30984    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
30985    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
30986    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
30987    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
30988    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
30989    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30990    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
30991    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
30992    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
30993    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
30994    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
30995    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
30996    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
30997    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
30998    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
30999    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
31000    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
31001    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
31002    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
31003    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
31004    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
31008    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
31005    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
31006    l_rec_acct_attrs.array_num_value(14)  := p_source_114;
31007    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
31009    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31010    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
31011    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31012    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
31013    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31014    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
31015    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
31016    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
31017    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
31018    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
31019 
31020    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31021    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31022 
31023    ---------------------------------------------------------------------------------------------------------------
31024    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31025    ---------------------------------------------------------------------------------------------------------------
31026    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31027 
31028    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31029    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31030 
31031    IF xla_accounting_cache_pkg.GetValueChar
31032          (p_source_code         => 'LEDGER_CATEGORY_CODE'
31033          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31034    AND l_bflow_method_code = 'PRIOR_ENTRY'
31035 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31036    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31037          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31038        )
31039    THEN
31040          xla_ae_lines_pkg.BflowUpgEntry
31041            (p_business_method_code    => l_bflow_method_code
31042            ,p_business_class_code     => l_bflow_class_code
31043            ,p_balance_type            => l_balance_type_code);
31044    ELSE
31045       NULL;
31046 -- No business flow processing for business flow method of NONE.
31047    END IF;
31048 
31049    --
31050    -- call analytical criteria
31051    --
31052    
31053    --
31054    -- call description
31055    --
31056    -- No description or it is inherited.
31057    --
31058    -- call ADRs
31059    -- Bug 4922099
31060    --
31061    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31062         (NVL(l_actual_upg_option, 'N') = 'O') OR
31063         (NVL(l_enc_upg_option, 'N') = 'O')
31064       )
31065    THEN
31066    NULL;
31067    --
31068    --
31069    
31070   l_ccid := AcctDerRule_35(
31071            p_application_id           => p_application_id
31072          , p_ae_header_id             => l_ae_header_id 
31073 , p_source_23 => p_source_23
31074          , x_transaction_coa_id       => l_adr_transaction_coa_id
31075          , x_accounting_coa_id        => l_adr_accounting_coa_id
31076          , x_value_type_code          => l_adr_value_type_code
31077          , p_side                     => 'NA'
31078    );
31079 
31080    xla_ae_lines_pkg.set_ccid(
31081     p_code_combination_id          => l_ccid
31082   , p_value_type_code              => l_adr_value_type_code
31083   , p_transaction_coa_id           => l_adr_transaction_coa_id
31084   , p_accounting_coa_id            => l_adr_accounting_coa_id
31085   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
31086   , p_adr_type_code                => 'S'
31087   , p_component_type               => l_component_type
31088   , p_component_code               => l_component_code
31089   , p_component_type_code          => l_component_type_code
31090   , p_component_appl_id            => l_component_appl_id
31091   , p_amb_context_code             => l_amb_context_code
31092   , p_side                         => 'NA'
31093   );
31094 
31095 
31096    --
31097    --
31098    END IF;
31099    --
31100    -- Bug 4922099
31101    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31102           (NVL(l_enc_upg_option, 'N') = 'O')
31103         ) AND
31104         (l_bflow_method_code = 'PRIOR_ENTRY')
31105       )
31106    THEN
31107       IF
31108       --
31109       1 = 2
31110       --
31111       THEN
31112       xla_accounting_err_pkg.build_message
31113                                     (p_appli_s_name            => 'XLA'
31114                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31115                                     ,p_token_1                 => 'LINE_NUMBER'
31116                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
31117                                     ,p_token_2                 => 'LINE_TYPE_NAME'
31118                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
31119                                                                              l_component_type
31120                                                                             ,l_component_code
31124                                                                             ,l_entity_code
31121                                                                             ,l_component_type_code
31122                                                                             ,l_component_appl_id
31123                                                                             ,l_amb_context_code
31125                                                                             ,l_event_class_code
31126                                                                            )
31127                                     ,p_token_3                 => 'OWNER'
31128                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
31129                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
31130                                                                           ,p_lookup_code    => l_component_type_code
31131                                                                          )
31132                                     ,p_token_4                 => 'PRODUCT_NAME'
31133                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31134                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31135                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31136                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31137                                     ,p_ae_header_id            =>  NULL
31138                                        );
31139 
31140         IF (C_LEVEL_ERROR>= g_log_level) THEN
31141                  trace
31142                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31143                       ,p_level    => C_LEVEL_ERROR
31144                       ,p_module   => l_log_module);
31145         END IF;
31146       END IF;
31147    END IF;
31148    --
31149    --
31150    ------------------------------------------------------------------------------------------------
31151    -- 4219869 Business Flow
31152    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31153    -- Prior Entry.  Currently, the following code is always generated.
31154    ------------------------------------------------------------------------------------------------
31155    XLA_AE_LINES_PKG.ValidateCurrentLine;
31156 
31157    ------------------------------------------------------------------------------------
31158    -- 4219869 Business Flow
31159    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31160    ------------------------------------------------------------------------------------
31161    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31162 
31163    ----------------------------------------------------------------------------------
31164    -- 4219869 Business Flow
31165    -- Update journal entry status -- Need to generate this within IF <condition>
31166    ----------------------------------------------------------------------------------
31167    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31168          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31169          ,p_balance_type_code => l_balance_type_code
31170          );
31171 
31172    -------------------------------------------------------------------------------------------
31173    -- 4262811 - Generate the Accrual Reversal lines
31174    -------------------------------------------------------------------------------------------
31175    BEGIN
31176       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31177                               (g_array_event(p_event_id).array_value_num('header_index'));
31178       IF l_acc_rev_flag IS NULL THEN
31179          l_acc_rev_flag := 'N';
31180       END IF;
31181    EXCEPTION
31182       WHEN OTHERS THEN
31183          l_acc_rev_flag := 'N';
31184    END;
31185    --
31186    IF (l_acc_rev_flag = 'Y') THEN
31187 
31188        -- 4645092  ------------------------------------------------------------------------------
31189        -- To allow MPA report to determine if it should generate report process
31190        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31191        ------------------------------------------------------------------------------------------
31192 
31193        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31194        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31195    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
31196    -- call ADRs
31197    -- Bug 4922099
31198    --
31199    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31200         (NVL(l_actual_upg_option, 'N') = 'O') OR
31201         (NVL(l_enc_upg_option, 'N') = 'O')
31202       )
31203    THEN
31204    NULL;
31205    --
31206    --
31207    
31208   l_ccid := AcctDerRule_35(
31209            p_application_id           => p_application_id
31210          , p_ae_header_id             => l_ae_header_id 
31211 , p_source_23 => p_source_23
31212          , x_transaction_coa_id       => l_adr_transaction_coa_id
31213          , x_accounting_coa_id        => l_adr_accounting_coa_id
31214          , x_value_type_code          => l_adr_value_type_code
31215          , p_side                     => 'NA'
31216    );
31217 
31218    xla_ae_lines_pkg.set_ccid(
31219     p_code_combination_id          => l_ccid
31220   , p_value_type_code              => l_adr_value_type_code
31221   , p_transaction_coa_id           => l_adr_transaction_coa_id
31222   , p_accounting_coa_id            => l_adr_accounting_coa_id
31223   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
31224   , p_adr_type_code                => 'S'
31225   , p_component_type               => l_component_type
31229   , p_amb_context_code             => l_amb_context_code
31226   , p_component_code               => l_component_code
31227   , p_component_type_code          => l_component_type_code
31228   , p_component_appl_id            => l_component_appl_id
31230   , p_side                         => 'NA'
31231   );
31232 
31233 
31234    --
31235    --
31236    END IF;
31237 
31238        --
31239        -- Update the line information that should be overwritten
31240        --
31241        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31242                                          p_header_num   => 1);
31243        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
31244 
31245        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31246 
31247        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
31248           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31249        END IF;
31250 
31251       --
31252       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31253       --
31254       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31255           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
31256       ELSE
31257           ---------------------------------------------------------------------------------------------------
31258           -- 4262811a Switch Sign
31259           ---------------------------------------------------------------------------------------------------
31260           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
31261           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31262                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31263           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31264                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31265           -- 5132302
31266           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31267                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31268 
31269       END IF;
31270 
31271       -- 4955764
31272       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31273       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31274 
31275 
31276       XLA_AE_LINES_PKG.ValidateCurrentLine;
31277       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31278 
31279       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31280                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31281                ,p_balance_type_code => l_balance_type_code);
31282 
31283    END IF;
31284 
31285    -----------------------------------------------------------------------------------------
31286    -- 4262811 Multiperiod Accounting
31287    -----------------------------------------------------------------------------------------
31288      -- No MPA option is assigned.
31289 
31290 
31291 END IF;
31292 END IF;
31293 --
31294 
31295 --
31296 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31297    trace
31298       (p_msg      => 'END of AcctLineType_79'
31299       ,p_level    => C_LEVEL_PROCEDURE
31300       ,p_module   => l_log_module);
31301 END IF;
31302 --
31303 EXCEPTION
31304   WHEN xla_exceptions_pkg.application_exception THEN
31305       RAISE;
31306   WHEN OTHERS THEN
31307        xla_exceptions_pkg.raise_message
31308            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_79');
31309 END AcctLineType_79;
31310 --
31311 
31312 ---------------------------------------
31313 --
31314 -- PRIVATE FUNCTION
31315 --         AcctLineType_80
31316 --
31317 ---------------------------------------
31318 PROCEDURE AcctLineType_80 (
31319   p_application_id        IN NUMBER
31320  ,p_event_id              IN NUMBER
31321  ,p_calculate_acctd_flag  IN VARCHAR2
31322  ,p_calculate_g_l_flag    IN VARCHAR2
31323  ,p_actual_flag           IN OUT VARCHAR2
31324  ,p_balance_type_code     OUT VARCHAR2
31325  ,p_gain_or_loss_ref      OUT VARCHAR2
31326  
31327 --Automatic Offsets Value
31328  , p_source_3            IN VARCHAR2
31329  , p_source_3_meaning    IN VARCHAR2
31330 --Bank Cash Clearing Account
31331  , p_source_23            IN NUMBER
31332 --Accounting Reversal Indicator
31333  , p_source_41            IN VARCHAR2
31334 --Distribution Link Type
31335  , p_source_43            IN VARCHAR2
31336 --Override Accounted Amount Indicator
31337  , p_source_68            IN VARCHAR2
31338  , p_source_68_meaning    IN VARCHAR2
31339 --Third Party Type
31340  , p_source_71            IN VARCHAR2
31341 --Business Flow Accounts Payable Application Identifier
31342  , p_source_79            IN NUMBER
31343 --When to Account for Payment Option
31344  , p_source_89            IN VARCHAR2
31345 --Payment Distribution Type
31346  , p_source_90            IN VARCHAR2
31347  , p_source_90_meaning    IN VARCHAR2
31348 --Payment Distribution Amount
31349  , p_source_91            IN NUMBER
31350 --Business Flow Payment Distribution Type
31351  , p_source_92            IN VARCHAR2
31352 --Business Flow Payment Entity Code
31353  , p_source_93            IN VARCHAR2
31354 --Business Flow Payment Distribution Identifier
31355  , p_source_94            IN NUMBER
31356 --Business Flow Payment Identifier
31360 --Payment Supplier Identifier
31357  , p_source_95            IN NUMBER
31358 --Payment Distribution Identifier
31359  , p_source_96            IN NUMBER
31361  , p_source_102            IN NUMBER
31362 --Payment Supplier Site Identifier
31363  , p_source_103            IN NUMBER
31364 --Payment Distribution Reversed Identifier
31365  , p_source_104            IN NUMBER
31366 --Pooled Bank Account Option
31367  , p_source_105            IN VARCHAR2
31368  , p_source_105_meaning    IN VARCHAR2
31369 --Payment Currency Code
31370  , p_source_106            IN VARCHAR2
31371 --Payment Maturity Date
31372  , p_source_107            IN DATE
31373 --Payment Exchange Date
31374  , p_source_110            IN DATE
31375 --Payment Exchange Rate
31376  , p_source_111            IN NUMBER
31377 --Payment Exchange Rate Type
31378  , p_source_112            IN VARCHAR2
31379 --Payment Distribution (Matured Rate) Ledger Amount
31380  , p_source_114            IN NUMBER
31381 )
31382 IS
31383 
31384 l_component_type              VARCHAR2(80);
31385 l_component_code              VARCHAR2(30);
31386 l_component_type_code         VARCHAR2(1);
31387 l_component_appl_id           INTEGER;
31388 l_amb_context_code            VARCHAR2(30);
31389 l_entity_code                 VARCHAR2(30);
31390 l_event_class_code            VARCHAR2(30);
31391 l_ae_header_id                NUMBER;
31392 l_event_type_code             VARCHAR2(30);
31393 l_line_definition_code        VARCHAR2(30);
31394 l_line_definition_owner_code  VARCHAR2(1);
31395 --
31396 -- adr variables
31397 l_segment                     VARCHAR2(30);
31398 l_ccid                        NUMBER;
31399 l_adr_transaction_coa_id      NUMBER;
31400 l_adr_accounting_coa_id       NUMBER;
31401 l_adr_flexfield_segment_code  VARCHAR2(30);
31402 l_adr_flex_value_set_id       NUMBER;
31403 l_adr_value_type_code         VARCHAR2(30);
31404 l_adr_value_combination_id    NUMBER;
31405 l_adr_value_segment_code      VARCHAR2(30);
31406 
31407 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
31408 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
31409 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
31410 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
31411 
31412 -- 4262811 Variables ------------------------------------------------------------------------------------------
31413 l_entered_amt_idx             NUMBER;
31414 l_accted_amt_idx              NUMBER;
31415 l_acc_rev_flag                VARCHAR2(1);
31416 l_accrual_line_num            NUMBER;
31417 l_tmp_amt                     NUMBER;
31418 l_acc_rev_natural_side_code   VARCHAR2(1);
31419 
31420 l_num_entries                 NUMBER;
31421 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
31422 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
31423 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
31424 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
31425 l_recog_line_1                NUMBER;
31426 l_recog_line_2                NUMBER;
31427 
31428 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
31429 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
31430 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
31431 
31432 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31433 
31434 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
31435 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
31436 
31437 ---------------------------------------------------------------------------------------------------------------
31438 
31439 
31440 --
31441 -- bulk performance
31442 --
31443 l_balance_type_code           VARCHAR2(1);
31444 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
31445 l_log_module                  VARCHAR2(240);
31446 
31447 --
31448 -- Upgrade strategy
31449 --
31450 l_actual_upg_option           VARCHAR2(1);
31451 l_enc_upg_option           VARCHAR2(1);
31452 
31453 --
31454 BEGIN
31455 --
31456 IF g_log_enabled THEN
31457       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_80';
31458 END IF;
31459 --
31460 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31461 
31462       trace
31463          (p_msg      => 'BEGIN of AcctLineType_80'
31464          ,p_level    => C_LEVEL_PROCEDURE
31465          ,p_module   => l_log_module);
31466 
31467 END IF;
31468 --
31469 l_component_type             := 'AMB_JLT';
31470 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT_AOS_AS';
31471 l_component_type_code        := 'S';
31472 l_component_appl_id          :=  200;
31473 l_amb_context_code           := 'DEFAULT';
31474 l_entity_code                := 'AP_PAYMENTS';
31475 l_event_class_code           := 'FUTURE DATED PAYMENTS';
31476 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
31477 l_line_definition_owner_code := 'S';
31478 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
31479 --
31480 l_balance_type_code          := 'A';
31481 l_segment                     := NULL;
31482 l_ccid                        := NULL;
31483 l_adr_transaction_coa_id      := NULL;
31484 l_adr_accounting_coa_id       := NULL;
31485 l_adr_flexfield_segment_code  := NULL;
31486 l_adr_flex_value_set_id       := NULL;
31487 l_adr_value_type_code         := NULL;
31488 l_adr_value_combination_id    := NULL;
31489 l_adr_value_segment_code      := NULL;
31490 
31491 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
31495 
31492 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
31493 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
31494 l_budgetary_control_flag     := 'N';
31496 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
31497 l_bflow_applied_to_amt       := NULL; -- 5132302
31498 l_entered_amt_idx            := NULL;          -- 4262811
31499 l_accted_amt_idx             := NULL;          -- 4262811
31500 l_acc_rev_flag               := NULL;          -- 4262811
31501 l_accrual_line_num           := NULL;          -- 4262811
31502 l_tmp_amt                    := NULL;          -- 4262811
31503 --
31504  
31505 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31506     l_balance_type_code <> 'B' THEN
31507 IF (NVL(p_source_89,'
31508 ') =  'ALWAYS_ALWAYS' OR 
31509 NVL(p_source_89,'
31510 ') =  'ALWAYS_ISSUE') AND 
31511 (NVL(p_source_105,'
31512 ') =  'Y' AND 
31513 NVL(p_source_3,'
31514 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
31515 p_source_107 IS NOT NULL AND 
31516 NVL(p_source_90,'
31517 ') =  'CASH'
31518  THEN 
31519 
31520    --
31521    XLA_AE_LINES_PKG.SetNewLine;
31522 
31523    p_balance_type_code          := l_balance_type_code;
31524    -- set the flag so later we will know whether the gain loss line needs to be created
31525    
31526    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31527      p_actual_flag :='A';
31528    END IF;
31529 
31530    --
31531    -- bulk performance
31532    --
31533    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31534                                       p_header_num   => 0); -- 4262811
31535    --
31536    -- set accounting line options
31537    --
31538    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31539            p_natural_side_code          => 'C'
31540          , p_gain_or_loss_flag          => 'N'
31541          , p_gl_transfer_mode_code      => 'S'
31542          , p_acct_entry_type_code       => 'A'
31543          , p_switch_side_flag           => 'Y'
31544          , p_merge_duplicate_code       => 'A'
31545          );
31546    --
31547    l_acc_rev_natural_side_code := 'D';  -- 4262811
31548    -- 
31549    --
31550    -- set accounting line type info
31551    --
31552    xla_ae_lines_pkg.SetAcctLineType
31553       (p_component_type             => l_component_type
31554       ,p_event_type_code            => l_event_type_code
31555       ,p_line_definition_owner_code => l_line_definition_owner_code
31556       ,p_line_definition_code       => l_line_definition_code
31557       ,p_accounting_line_code       => l_component_code
31558       ,p_accounting_line_type_code  => l_component_type_code
31559       ,p_accounting_line_appl_id    => l_component_appl_id
31560       ,p_amb_context_code           => l_amb_context_code
31561       ,p_entity_code                => l_entity_code
31562       ,p_event_class_code           => l_event_class_code);
31563    --
31564    -- set accounting class
31565    --
31566    xla_ae_lines_pkg.SetAcctClass(
31567            p_accounting_class_code  => 'CASH_CLEARING'
31568          , p_ae_header_id           => l_ae_header_id
31569          );
31570 
31571    --
31572    -- set rounding class
31573    --
31574    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31575                       'CASH_CLEARING';
31576 
31577    --
31578    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31579    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31580    --
31581    -- bulk performance
31582    --
31583    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31584 
31585    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31586       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31587 
31588    -- 4955764
31589    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31590       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31591 
31592    -- 4458381 Public Sector Enh
31593    
31594    --
31595    -- set accounting attributes for the line type
31596    --
31597    l_entered_amt_idx := 9;
31598    l_accted_amt_idx  := 14;
31599    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
31600    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31601    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
31602    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31603    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
31604    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31605    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
31606    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31607    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
31608    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31609    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
31610    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31611    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
31612    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
31613    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
31614    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
31615    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
31616    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
31617    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
31618    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
31619    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
31620    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
31621    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
31622    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
31623    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
31624    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
31625    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
31626    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
31627    l_rec_acct_attrs.array_num_value(14)  := p_source_114;
31628    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
31629    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
31630    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31631    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
31632    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31633    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
31634    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31635    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
31636    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
31637    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
31638    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
31639    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
31640 
31641    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31642    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31643 
31644    ---------------------------------------------------------------------------------------------------------------
31645    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31646    ---------------------------------------------------------------------------------------------------------------
31647    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31648 
31649    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31650    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31651 
31652    IF xla_accounting_cache_pkg.GetValueChar
31653          (p_source_code         => 'LEDGER_CATEGORY_CODE'
31654          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31655    AND l_bflow_method_code = 'PRIOR_ENTRY'
31656 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31657    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31658          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31659        )
31660    THEN
31661          xla_ae_lines_pkg.BflowUpgEntry
31662            (p_business_method_code    => l_bflow_method_code
31663            ,p_business_class_code     => l_bflow_class_code
31664            ,p_balance_type            => l_balance_type_code);
31665    ELSE
31666       NULL;
31667 XLA_AE_LINES_PKG.business_flow_validation(
31668                                 p_business_method_code     => l_bflow_method_code
31669                                ,p_business_class_code      => l_bflow_class_code
31670                                ,p_inherit_description_flag => l_inherit_desc_flag);
31671    END IF;
31672 
31673    --
31674    -- call analytical criteria
31675    --
31676    
31677    --
31678    -- call description
31679    --
31680    -- No description or it is inherited.
31681    --
31682    -- call ADRs
31683    -- Bug 4922099
31684    --
31685    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31686         (NVL(l_actual_upg_option, 'N') = 'O') OR
31687         (NVL(l_enc_upg_option, 'N') = 'O')
31688       )
31689    THEN
31690    NULL;
31691    --
31692    --
31693    
31694    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
31695      p_code_combination_id      => TO_NUMBER(C_NUM)
31696    , p_value_type_code          => NULL
31697    , p_transaction_coa_id       => null
31698    , p_accounting_coa_id        => null
31699    , p_adr_code                 => NULL
31700    , p_adr_type_code            => NULL
31701    , p_component_type           => l_component_type
31702    , p_component_code           => l_component_code
31706    , p_side                     => NULL
31703    , p_component_type_code      => l_component_type_code
31704    , p_component_appl_id        => l_component_appl_id
31705    , p_amb_context_code         => l_amb_context_code
31707    );
31708 
31709    
31710   -- initialise segments
31711   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31712   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31713   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31714   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31715   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31716   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31717   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31718   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31719   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31720   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31721   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31722   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31723   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31724   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31725   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31726   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31727   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31728   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31729   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31730   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31731   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31732   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31733   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31734   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31735   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31736   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31737   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31738   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31739   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31740   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31741   --
31742 
31743    --
31744 
31745 
31746    l_segment := AcctDerRule_15(
31747            p_application_id           => p_application_id
31748          , p_ae_header_id             => l_ae_header_id 
31749 , p_source_23 => p_source_23
31750          , x_transaction_coa_id       => l_adr_transaction_coa_id
31751          , x_accounting_coa_id        => l_adr_accounting_coa_id
31752          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
31753          , x_flex_value_set_id        => l_adr_flex_value_set_id
31754          , x_value_type_code          => l_adr_value_type_code
31755          , x_value_combination_id     => l_adr_value_combination_id
31756          , x_value_segment_code       => l_adr_value_segment_code
31757          , p_side                     => 'NA'
31758          , p_override_seg_flag        => 'Y'
31759    );
31760 
31761    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
31762 
31763       xla_ae_lines_pkg.set_segment(
31764           p_to_segment_code         => 'GL_ACCOUNT'
31765         , p_segment_value           => l_segment
31766         , p_from_segment_code       => l_adr_value_segment_code
31767         , p_from_combination_id     => l_adr_value_combination_id
31768         , p_value_type_code         => l_adr_value_type_code
31769         , p_transaction_coa_id      => l_adr_transaction_coa_id
31770         , p_accounting_coa_id       => l_adr_accounting_coa_id
31771         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
31772         , p_flex_value_set_id       => l_adr_flex_value_set_id
31773         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
31774         , p_adr_type_code           => 'S'
31775         , p_component_type          => l_component_type
31776         , p_component_code          => l_component_code
31777         , p_component_type_code     => l_component_type_code
31778         , p_component_appl_id       => l_component_appl_id
31779         , p_amb_context_code        => l_amb_context_code
31780         , p_entity_code             => 'AP_PAYMENTS'
31781         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
31782         , p_side                    => 'NA'
31783         );
31784 
31785   END IF;
31786 
31787    --
31788    --
31789    END IF;
31790    --
31791    -- Bug 4922099
31792    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31793           (NVL(l_enc_upg_option, 'N') = 'O')
31794         ) AND
31795         (l_bflow_method_code = 'PRIOR_ENTRY')
31796       )
31797    THEN
31798       IF
31799       --
31800       1 = 2
31801       --
31802       THEN
31803       xla_accounting_err_pkg.build_message
31804                                     (p_appli_s_name            => 'XLA'
31808                                     ,p_token_2                 => 'LINE_TYPE_NAME'
31805                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31806                                     ,p_token_1                 => 'LINE_NUMBER'
31807                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
31809                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
31810                                                                              l_component_type
31811                                                                             ,l_component_code
31812                                                                             ,l_component_type_code
31813                                                                             ,l_component_appl_id
31814                                                                             ,l_amb_context_code
31815                                                                             ,l_entity_code
31816                                                                             ,l_event_class_code
31817                                                                            )
31818                                     ,p_token_3                 => 'OWNER'
31819                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
31820                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
31821                                                                           ,p_lookup_code    => l_component_type_code
31822                                                                          )
31823                                     ,p_token_4                 => 'PRODUCT_NAME'
31824                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31825                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31826                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31827                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31828                                     ,p_ae_header_id            =>  NULL
31829                                        );
31830 
31831         IF (C_LEVEL_ERROR>= g_log_level) THEN
31832                  trace
31833                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31834                       ,p_level    => C_LEVEL_ERROR
31835                       ,p_module   => l_log_module);
31836         END IF;
31837       END IF;
31838    END IF;
31839    --
31840    --
31841    ------------------------------------------------------------------------------------------------
31842    -- 4219869 Business Flow
31843    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31844    -- Prior Entry.  Currently, the following code is always generated.
31845    ------------------------------------------------------------------------------------------------
31846    XLA_AE_LINES_PKG.ValidateCurrentLine;
31847 
31848    ------------------------------------------------------------------------------------
31849    -- 4219869 Business Flow
31850    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31851    ------------------------------------------------------------------------------------
31852    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31853 
31854    ----------------------------------------------------------------------------------
31855    -- 4219869 Business Flow
31856    -- Update journal entry status -- Need to generate this within IF <condition>
31857    ----------------------------------------------------------------------------------
31858    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31859          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31860          ,p_balance_type_code => l_balance_type_code
31861          );
31862 
31863    -------------------------------------------------------------------------------------------
31864    -- 4262811 - Generate the Accrual Reversal lines
31865    -------------------------------------------------------------------------------------------
31866    BEGIN
31867       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31868                               (g_array_event(p_event_id).array_value_num('header_index'));
31869       IF l_acc_rev_flag IS NULL THEN
31870          l_acc_rev_flag := 'N';
31871       END IF;
31872    EXCEPTION
31873       WHEN OTHERS THEN
31874          l_acc_rev_flag := 'N';
31875    END;
31876    --
31877    IF (l_acc_rev_flag = 'Y') THEN
31878 
31879        -- 4645092  ------------------------------------------------------------------------------
31880        -- To allow MPA report to determine if it should generate report process
31881        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31882        ------------------------------------------------------------------------------------------
31883 
31884        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31885        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31886    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
31887    -- call ADRs
31888    -- Bug 4922099
31889    --
31890    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31891         (NVL(l_actual_upg_option, 'N') = 'O') OR
31892         (NVL(l_enc_upg_option, 'N') = 'O')
31893       )
31894    THEN
31895    NULL;
31896    --
31897    --
31898    
31899    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
31900      p_code_combination_id      => TO_NUMBER(C_NUM)
31901    , p_value_type_code          => NULL
31902    , p_transaction_coa_id       => null
31906    , p_component_type           => l_component_type
31903    , p_accounting_coa_id        => null
31904    , p_adr_code                 => NULL
31905    , p_adr_type_code            => NULL
31907    , p_component_code           => l_component_code
31908    , p_component_type_code      => l_component_type_code
31909    , p_component_appl_id        => l_component_appl_id
31910    , p_amb_context_code         => l_amb_context_code
31911    , p_side                     => NULL
31912    );
31913 
31914    
31915   -- initialise segments
31916   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31917   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31918   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31919   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31920   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31921   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31922   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31923   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31924   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31925   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31926   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31927   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31928   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31929   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31930   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31931   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31932   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31933   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31934   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31935   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31936   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31937   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31938   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31939   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31940   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31941   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31942   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31943   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31944   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31945   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31946   --
31947 
31948    --
31949 
31950 
31951    l_segment := AcctDerRule_15(
31952            p_application_id           => p_application_id
31953          , p_ae_header_id             => l_ae_header_id 
31954 , p_source_23 => p_source_23
31955          , x_transaction_coa_id       => l_adr_transaction_coa_id
31956          , x_accounting_coa_id        => l_adr_accounting_coa_id
31957          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
31958          , x_flex_value_set_id        => l_adr_flex_value_set_id
31959          , x_value_type_code          => l_adr_value_type_code
31960          , x_value_combination_id     => l_adr_value_combination_id
31961          , x_value_segment_code       => l_adr_value_segment_code
31962          , p_side                     => 'NA'
31963          , p_override_seg_flag        => 'Y'
31964    );
31965 
31966    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
31967 
31968       xla_ae_lines_pkg.set_segment(
31969           p_to_segment_code         => 'GL_ACCOUNT'
31970         , p_segment_value           => l_segment
31971         , p_from_segment_code       => l_adr_value_segment_code
31972         , p_from_combination_id     => l_adr_value_combination_id
31973         , p_value_type_code         => l_adr_value_type_code
31974         , p_transaction_coa_id      => l_adr_transaction_coa_id
31975         , p_accounting_coa_id       => l_adr_accounting_coa_id
31976         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
31977         , p_flex_value_set_id       => l_adr_flex_value_set_id
31978         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
31979         , p_adr_type_code           => 'S'
31980         , p_component_type          => l_component_type
31981         , p_component_code          => l_component_code
31982         , p_component_type_code     => l_component_type_code
31983         , p_component_appl_id       => l_component_appl_id
31984         , p_amb_context_code        => l_amb_context_code
31985         , p_entity_code             => 'AP_PAYMENTS'
31986         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
31987         , p_side                    => 'NA'
31988         );
31989 
31990   END IF;
31991 
31992    --
31993    --
31994    END IF;
31995 
31996        --
31997        -- Update the line information that should be overwritten
31998        --
31999        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32000                                          p_header_num   => 1);
32001        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
32002 
32003        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32004 
32005        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
32006           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32007        END IF;
32008 
32009       --
32010       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32011       --
32012       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32013           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
32014       ELSE
32015           ---------------------------------------------------------------------------------------------------
32016           -- 4262811a Switch Sign
32017           ---------------------------------------------------------------------------------------------------
32018           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
32019           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32020                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32021           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32022                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32023           -- 5132302
32024           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32025                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32026 
32027       END IF;
32028 
32029       -- 4955764
32030       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32031       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32032 
32033 
32034       XLA_AE_LINES_PKG.ValidateCurrentLine;
32035       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32036 
32037       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32038                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32039                ,p_balance_type_code => l_balance_type_code);
32040 
32041    END IF;
32042 
32043    -----------------------------------------------------------------------------------------
32044    -- 4262811 Multiperiod Accounting
32045    -----------------------------------------------------------------------------------------
32046      -- No MPA option is assigned.
32047 
32048 
32049 END IF;
32050 END IF;
32051 --
32052 
32053 --
32054 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32055    trace
32056       (p_msg      => 'END of AcctLineType_80'
32057       ,p_level    => C_LEVEL_PROCEDURE
32058       ,p_module   => l_log_module);
32059 END IF;
32060 --
32061 EXCEPTION
32062   WHEN xla_exceptions_pkg.application_exception THEN
32063       RAISE;
32064   WHEN OTHERS THEN
32065        xla_exceptions_pkg.raise_message
32069 
32066            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_80');
32067 END AcctLineType_80;
32068 --
32070 ---------------------------------------
32071 --
32072 -- PRIVATE FUNCTION
32073 --         AcctLineType_81
32074 --
32075 ---------------------------------------
32076 PROCEDURE AcctLineType_81 (
32077   p_application_id        IN NUMBER
32078  ,p_event_id              IN NUMBER
32079  ,p_calculate_acctd_flag  IN VARCHAR2
32080  ,p_calculate_g_l_flag    IN VARCHAR2
32081  ,p_actual_flag           IN OUT VARCHAR2
32082  ,p_balance_type_code     OUT VARCHAR2
32083  ,p_gain_or_loss_ref      OUT VARCHAR2
32084  
32085 --Automatic Offsets Value
32086  , p_source_3            IN VARCHAR2
32087  , p_source_3_meaning    IN VARCHAR2
32088 --Bank Cash Clearing Account
32089  , p_source_23            IN NUMBER
32090 --Accounting Reversal Indicator
32091  , p_source_41            IN VARCHAR2
32092 --Distribution Link Type
32093  , p_source_43            IN VARCHAR2
32094 --Override Accounted Amount Indicator
32095  , p_source_68            IN VARCHAR2
32096  , p_source_68_meaning    IN VARCHAR2
32097 --Third Party Type
32098  , p_source_71            IN VARCHAR2
32099 --Business Flow Accounts Payable Application Identifier
32100  , p_source_79            IN NUMBER
32101 --When to Account for Payment Option
32102  , p_source_89            IN VARCHAR2
32103 --Payment Distribution Type
32104  , p_source_90            IN VARCHAR2
32105  , p_source_90_meaning    IN VARCHAR2
32106 --Payment Distribution Amount
32107  , p_source_91            IN NUMBER
32108 --Business Flow Payment Distribution Type
32109  , p_source_92            IN VARCHAR2
32110 --Business Flow Payment Entity Code
32111  , p_source_93            IN VARCHAR2
32112 --Business Flow Payment Distribution Identifier
32113  , p_source_94            IN NUMBER
32114 --Business Flow Payment Identifier
32115  , p_source_95            IN NUMBER
32116 --Payment Distribution Identifier
32117  , p_source_96            IN NUMBER
32118 --Payment Supplier Identifier
32119  , p_source_102            IN NUMBER
32120 --Payment Supplier Site Identifier
32121  , p_source_103            IN NUMBER
32122 --Payment Distribution Reversed Identifier
32123  , p_source_104            IN NUMBER
32124 --Pooled Bank Account Option
32125  , p_source_105            IN VARCHAR2
32126  , p_source_105_meaning    IN VARCHAR2
32127 --Payment Currency Code
32128  , p_source_106            IN VARCHAR2
32129 --Payment Maturity Date
32130  , p_source_107            IN DATE
32131 --Payment Exchange Date
32132  , p_source_110            IN DATE
32133 --Payment Exchange Rate
32134  , p_source_111            IN NUMBER
32135 --Payment Exchange Rate Type
32136  , p_source_112            IN VARCHAR2
32137 --Payment Distribution (Matured Rate) Ledger Amount
32138  , p_source_114            IN NUMBER
32139 )
32140 IS
32141 
32142 l_component_type              VARCHAR2(80);
32143 l_component_code              VARCHAR2(30);
32144 l_component_type_code         VARCHAR2(1);
32145 l_component_appl_id           INTEGER;
32146 l_amb_context_code            VARCHAR2(30);
32147 l_entity_code                 VARCHAR2(30);
32148 l_event_class_code            VARCHAR2(30);
32149 l_ae_header_id                NUMBER;
32150 l_event_type_code             VARCHAR2(30);
32151 l_line_definition_code        VARCHAR2(30);
32152 l_line_definition_owner_code  VARCHAR2(1);
32153 --
32154 -- adr variables
32155 l_segment                     VARCHAR2(30);
32156 l_ccid                        NUMBER;
32157 l_adr_transaction_coa_id      NUMBER;
32158 l_adr_accounting_coa_id       NUMBER;
32159 l_adr_flexfield_segment_code  VARCHAR2(30);
32160 l_adr_flex_value_set_id       NUMBER;
32161 l_adr_value_type_code         VARCHAR2(30);
32162 l_adr_value_combination_id    NUMBER;
32163 l_adr_value_segment_code      VARCHAR2(30);
32164 
32165 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
32166 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
32167 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
32168 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
32169 
32170 -- 4262811 Variables ------------------------------------------------------------------------------------------
32171 l_entered_amt_idx             NUMBER;
32172 l_accted_amt_idx              NUMBER;
32173 l_acc_rev_flag                VARCHAR2(1);
32174 l_accrual_line_num            NUMBER;
32175 l_tmp_amt                     NUMBER;
32176 l_acc_rev_natural_side_code   VARCHAR2(1);
32177 
32178 l_num_entries                 NUMBER;
32179 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
32180 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
32181 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
32182 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
32183 l_recog_line_1                NUMBER;
32184 l_recog_line_2                NUMBER;
32185 
32186 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
32187 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
32188 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
32189 
32190 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32191 
32192 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
32196 
32193 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
32194 
32195 ---------------------------------------------------------------------------------------------------------------
32197 
32198 --
32199 -- bulk performance
32200 --
32201 l_balance_type_code           VARCHAR2(1);
32202 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
32203 l_log_module                  VARCHAR2(240);
32204 
32205 --
32206 -- Upgrade strategy
32207 --
32208 l_actual_upg_option           VARCHAR2(1);
32209 l_enc_upg_option           VARCHAR2(1);
32210 
32211 --
32212 BEGIN
32213 --
32214 IF g_log_enabled THEN
32215       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_81';
32216 END IF;
32217 --
32218 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32219 
32220       trace
32221          (p_msg      => 'BEGIN of AcctLineType_81'
32222          ,p_level    => C_LEVEL_PROCEDURE
32223          ,p_module   => l_log_module);
32224 
32225 END IF;
32226 --
32227 l_component_type             := 'AMB_JLT';
32228 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT_AOS_BS';
32229 l_component_type_code        := 'S';
32230 l_component_appl_id          :=  200;
32231 l_amb_context_code           := 'DEFAULT';
32232 l_entity_code                := 'AP_PAYMENTS';
32233 l_event_class_code           := 'FUTURE DATED PAYMENTS';
32234 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
32235 l_line_definition_owner_code := 'S';
32236 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
32237 --
32238 l_balance_type_code          := 'A';
32239 l_segment                     := NULL;
32240 l_ccid                        := NULL;
32241 l_adr_transaction_coa_id      := NULL;
32242 l_adr_accounting_coa_id       := NULL;
32243 l_adr_flexfield_segment_code  := NULL;
32244 l_adr_flex_value_set_id       := NULL;
32245 l_adr_value_type_code         := NULL;
32246 l_adr_value_combination_id    := NULL;
32247 l_adr_value_segment_code      := NULL;
32248 
32249 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
32250 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
32251 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
32252 l_budgetary_control_flag     := 'N';
32253 
32254 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
32255 l_bflow_applied_to_amt       := NULL; -- 5132302
32256 l_entered_amt_idx            := NULL;          -- 4262811
32257 l_accted_amt_idx             := NULL;          -- 4262811
32258 l_acc_rev_flag               := NULL;          -- 4262811
32259 l_accrual_line_num           := NULL;          -- 4262811
32260 l_tmp_amt                    := NULL;          -- 4262811
32261 --
32262  
32263 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32264     l_balance_type_code <> 'B' THEN
32265 IF (NVL(p_source_89,'
32266 ') =  'ALWAYS_ALWAYS' OR 
32267 NVL(p_source_89,'
32268 ') =  'ALWAYS_CLEAR' OR 
32269 NVL(p_source_89,'
32270 ') =  'ALWAYS_ISSUE') AND 
32271 (NVL(p_source_105,'
32272 ') =  'Y' AND 
32273 NVL(p_source_3,'
32274 ') =  'BALANCING_SEGMENT') AND 
32275 p_source_107 IS NOT NULL AND 
32276 NVL(p_source_90,'
32277 ') =  'CASH'
32278  THEN 
32279 
32280    --
32281    XLA_AE_LINES_PKG.SetNewLine;
32282 
32283    p_balance_type_code          := l_balance_type_code;
32284    -- set the flag so later we will know whether the gain loss line needs to be created
32285    
32286    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32287      p_actual_flag :='A';
32288    END IF;
32289 
32290    --
32291    -- bulk performance
32292    --
32293    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32294                                       p_header_num   => 0); -- 4262811
32295    --
32296    -- set accounting line options
32297    --
32298    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32299            p_natural_side_code          => 'C'
32300          , p_gain_or_loss_flag          => 'N'
32301          , p_gl_transfer_mode_code      => 'S'
32302          , p_acct_entry_type_code       => 'A'
32303          , p_switch_side_flag           => 'Y'
32304          , p_merge_duplicate_code       => 'A'
32305          );
32306    --
32307    l_acc_rev_natural_side_code := 'D';  -- 4262811
32308    -- 
32309    --
32310    -- set accounting line type info
32311    --
32312    xla_ae_lines_pkg.SetAcctLineType
32313       (p_component_type             => l_component_type
32314       ,p_event_type_code            => l_event_type_code
32315       ,p_line_definition_owner_code => l_line_definition_owner_code
32316       ,p_line_definition_code       => l_line_definition_code
32317       ,p_accounting_line_code       => l_component_code
32318       ,p_accounting_line_type_code  => l_component_type_code
32319       ,p_accounting_line_appl_id    => l_component_appl_id
32320       ,p_amb_context_code           => l_amb_context_code
32321       ,p_entity_code                => l_entity_code
32322       ,p_event_class_code           => l_event_class_code);
32323    --
32324    -- set accounting class
32325    --
32326    xla_ae_lines_pkg.SetAcctClass(
32327            p_accounting_class_code  => 'CASH_CLEARING'
32328          , p_ae_header_id           => l_ae_header_id
32329          );
32330 
32331    --
32332    -- set rounding class
32333    --
32334    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32335                       'CASH_CLEARING';
32336 
32337    --
32341    -- bulk performance
32338    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32339    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32340    --
32342    --
32343    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32344 
32345    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32346       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32347 
32348    -- 4955764
32349    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32350       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32351 
32352    -- 4458381 Public Sector Enh
32353    
32354    --
32355    -- set accounting attributes for the line type
32356    --
32357    l_entered_amt_idx := 9;
32358    l_accted_amt_idx  := 14;
32359    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
32360    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32361    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
32362    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
32363    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
32364    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32365    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
32366    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
32367    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
32368    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
32369    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
32370    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32371    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
32372    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
32373    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
32374    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
32375    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
32376    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
32377    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
32378    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
32379    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
32380    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
32381    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
32382    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
32383    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
32384    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
32385    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
32386    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
32387    l_rec_acct_attrs.array_num_value(14)  := p_source_114;
32388    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
32389    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
32390    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
32391    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
32392    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
32393    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
32394    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
32395    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
32396    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
32397    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
32398    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
32399    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
32400 
32401    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32402    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32403 
32404    ---------------------------------------------------------------------------------------------------------------
32405    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32406    ---------------------------------------------------------------------------------------------------------------
32407    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32408 
32409    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32410    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32411 
32412    IF xla_accounting_cache_pkg.GetValueChar
32413          (p_source_code         => 'LEDGER_CATEGORY_CODE'
32414          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32415    AND l_bflow_method_code = 'PRIOR_ENTRY'
32416 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32417    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32418          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32419        )
32420    THEN
32421          xla_ae_lines_pkg.BflowUpgEntry
32422            (p_business_method_code    => l_bflow_method_code
32423            ,p_business_class_code     => l_bflow_class_code
32424            ,p_balance_type            => l_balance_type_code);
32425    ELSE
32426       NULL;
32427 XLA_AE_LINES_PKG.business_flow_validation(
32428                                 p_business_method_code     => l_bflow_method_code
32429                                ,p_business_class_code      => l_bflow_class_code
32430                                ,p_inherit_description_flag => l_inherit_desc_flag);
32431    END IF;
32432 
32433    --
32434    -- call analytical criteria
32435    --
32436    
32437    --
32441    --
32438    -- call description
32439    --
32440    -- No description or it is inherited.
32442    -- call ADRs
32443    -- Bug 4922099
32444    --
32445    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32446         (NVL(l_actual_upg_option, 'N') = 'O') OR
32447         (NVL(l_enc_upg_option, 'N') = 'O')
32448       )
32449    THEN
32450    NULL;
32451    --
32452    --
32453    
32454   l_ccid := AcctDerRule_35(
32455            p_application_id           => p_application_id
32456          , p_ae_header_id             => l_ae_header_id 
32457 , p_source_23 => p_source_23
32458          , x_transaction_coa_id       => l_adr_transaction_coa_id
32459          , x_accounting_coa_id        => l_adr_accounting_coa_id
32460          , x_value_type_code          => l_adr_value_type_code
32461          , p_side                     => 'NA'
32462    );
32463 
32464    xla_ae_lines_pkg.set_ccid(
32465     p_code_combination_id          => l_ccid
32466   , p_value_type_code              => l_adr_value_type_code
32467   , p_transaction_coa_id           => l_adr_transaction_coa_id
32468   , p_accounting_coa_id            => l_adr_accounting_coa_id
32469   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
32470   , p_adr_type_code                => 'S'
32471   , p_component_type               => l_component_type
32472   , p_component_code               => l_component_code
32473   , p_component_type_code          => l_component_type_code
32474   , p_component_appl_id            => l_component_appl_id
32475   , p_amb_context_code             => l_amb_context_code
32476   , p_side                         => 'NA'
32477   );
32478 
32479 
32480    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
32481      p_to_segment_code         => 'GL_BALANCING'
32482    , p_segment_value           => C_CHAR
32483    , p_from_segment_code       => NULL
32484    , p_from_combination_id     => NULL
32485    , p_value_type_code         => NULL
32486    , p_transaction_coa_id      => null
32487    , p_accounting_coa_id       => null
32488    , p_flexfield_segment_code  => NULL
32489    , p_flex_value_set_id       => NULL
32490    , p_adr_code                => NULL
32491    , p_adr_type_code           => NULL
32492    , p_component_type          => l_component_type
32493    , p_component_code          => l_component_code
32494    , p_component_type_code     => l_component_type_code
32495    , p_component_appl_id       => l_component_appl_id
32496    , p_amb_context_code        => l_amb_context_code
32497    , p_entity_code             => 'AP_PAYMENTS'
32498    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
32499    , p_side                    => 'NA'
32500    );
32501    --
32502 
32503 
32504    --
32505    --
32506    END IF;
32507    --
32508    -- Bug 4922099
32509    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32510           (NVL(l_enc_upg_option, 'N') = 'O')
32511         ) AND
32512         (l_bflow_method_code = 'PRIOR_ENTRY')
32513       )
32514    THEN
32515       IF
32516       --
32517       1 = 2
32518       --
32519       THEN
32520       xla_accounting_err_pkg.build_message
32521                                     (p_appli_s_name            => 'XLA'
32522                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32523                                     ,p_token_1                 => 'LINE_NUMBER'
32524                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
32525                                     ,p_token_2                 => 'LINE_TYPE_NAME'
32526                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
32527                                                                              l_component_type
32528                                                                             ,l_component_code
32529                                                                             ,l_component_type_code
32530                                                                             ,l_component_appl_id
32531                                                                             ,l_amb_context_code
32532                                                                             ,l_entity_code
32533                                                                             ,l_event_class_code
32534                                                                            )
32535                                     ,p_token_3                 => 'OWNER'
32536                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
32537                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
32538                                                                           ,p_lookup_code    => l_component_type_code
32539                                                                          )
32540                                     ,p_token_4                 => 'PRODUCT_NAME'
32541                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32542                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32543                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32544                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32545                                     ,p_ae_header_id            =>  NULL
32546                                        );
32547 
32548         IF (C_LEVEL_ERROR>= g_log_level) THEN
32549                  trace
32553         END IF;
32550                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32551                       ,p_level    => C_LEVEL_ERROR
32552                       ,p_module   => l_log_module);
32554       END IF;
32555    END IF;
32556    --
32557    --
32558    ------------------------------------------------------------------------------------------------
32559    -- 4219869 Business Flow
32560    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32561    -- Prior Entry.  Currently, the following code is always generated.
32562    ------------------------------------------------------------------------------------------------
32563    XLA_AE_LINES_PKG.ValidateCurrentLine;
32564 
32565    ------------------------------------------------------------------------------------
32566    -- 4219869 Business Flow
32567    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32568    ------------------------------------------------------------------------------------
32569    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32570 
32571    ----------------------------------------------------------------------------------
32572    -- 4219869 Business Flow
32573    -- Update journal entry status -- Need to generate this within IF <condition>
32574    ----------------------------------------------------------------------------------
32575    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32576          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32577          ,p_balance_type_code => l_balance_type_code
32578          );
32579 
32580    -------------------------------------------------------------------------------------------
32581    -- 4262811 - Generate the Accrual Reversal lines
32582    -------------------------------------------------------------------------------------------
32583    BEGIN
32584       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32585                               (g_array_event(p_event_id).array_value_num('header_index'));
32586       IF l_acc_rev_flag IS NULL THEN
32587          l_acc_rev_flag := 'N';
32588       END IF;
32589    EXCEPTION
32590       WHEN OTHERS THEN
32591          l_acc_rev_flag := 'N';
32592    END;
32593    --
32594    IF (l_acc_rev_flag = 'Y') THEN
32595 
32596        -- 4645092  ------------------------------------------------------------------------------
32597        -- To allow MPA report to determine if it should generate report process
32598        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32599        ------------------------------------------------------------------------------------------
32600 
32601        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32602        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32603    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
32604    -- call ADRs
32605    -- Bug 4922099
32606    --
32607    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32608         (NVL(l_actual_upg_option, 'N') = 'O') OR
32609         (NVL(l_enc_upg_option, 'N') = 'O')
32610       )
32611    THEN
32612    NULL;
32613    --
32614    --
32615    
32616   l_ccid := AcctDerRule_35(
32617            p_application_id           => p_application_id
32618          , p_ae_header_id             => l_ae_header_id 
32619 , p_source_23 => p_source_23
32620          , x_transaction_coa_id       => l_adr_transaction_coa_id
32621          , x_accounting_coa_id        => l_adr_accounting_coa_id
32622          , x_value_type_code          => l_adr_value_type_code
32623          , p_side                     => 'NA'
32624    );
32625 
32626    xla_ae_lines_pkg.set_ccid(
32627     p_code_combination_id          => l_ccid
32628   , p_value_type_code              => l_adr_value_type_code
32629   , p_transaction_coa_id           => l_adr_transaction_coa_id
32630   , p_accounting_coa_id            => l_adr_accounting_coa_id
32631   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
32632   , p_adr_type_code                => 'S'
32633   , p_component_type               => l_component_type
32634   , p_component_code               => l_component_code
32635   , p_component_type_code          => l_component_type_code
32636   , p_component_appl_id            => l_component_appl_id
32637   , p_amb_context_code             => l_amb_context_code
32638   , p_side                         => 'NA'
32639   );
32640 
32641 
32642    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
32643      p_to_segment_code         => 'GL_BALANCING'
32644    , p_segment_value           => C_CHAR
32645    , p_from_segment_code       => NULL
32646    , p_from_combination_id     => NULL
32647    , p_value_type_code         => NULL
32648    , p_transaction_coa_id      => null
32649    , p_accounting_coa_id       => null
32650    , p_flexfield_segment_code  => NULL
32651    , p_flex_value_set_id       => NULL
32652    , p_adr_code                => NULL
32653    , p_adr_type_code           => NULL
32654    , p_component_type          => l_component_type
32655    , p_component_code          => l_component_code
32656    , p_component_type_code     => l_component_type_code
32657    , p_component_appl_id       => l_component_appl_id
32658    , p_amb_context_code        => l_amb_context_code
32659    , p_entity_code             => 'AP_PAYMENTS'
32660    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
32661    , p_side                    => 'NA'
32662    );
32663    --
32664 
32665 
32666    --
32667    --
32668    END IF;
32669 
32670        --
32674                                          p_header_num   => 1);
32671        -- Update the line information that should be overwritten
32672        --
32673        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32675        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
32676 
32677        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32678 
32679        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
32680           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32681        END IF;
32682 
32683       --
32684       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32685       --
32686       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32687           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
32688       ELSE
32689           ---------------------------------------------------------------------------------------------------
32690           -- 4262811a Switch Sign
32691           ---------------------------------------------------------------------------------------------------
32692           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
32693           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32694                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32695           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32696                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32697           -- 5132302
32698           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32699                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32700 
32701       END IF;
32702 
32703       -- 4955764
32704       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32705       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32706 
32707 
32708       XLA_AE_LINES_PKG.ValidateCurrentLine;
32709       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32710 
32711       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32712                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32713                ,p_balance_type_code => l_balance_type_code);
32714 
32715    END IF;
32716 
32717    -----------------------------------------------------------------------------------------
32718    -- 4262811 Multiperiod Accounting
32719    -----------------------------------------------------------------------------------------
32720      -- No MPA option is assigned.
32721 
32722 
32723 END IF;
32724 END IF;
32725 --
32726 
32727 --
32728 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32729    trace
32730       (p_msg      => 'END of AcctLineType_81'
32731       ,p_level    => C_LEVEL_PROCEDURE
32732       ,p_module   => l_log_module);
32733 END IF;
32734 --
32735 EXCEPTION
32736   WHEN xla_exceptions_pkg.application_exception THEN
32737       RAISE;
32738   WHEN OTHERS THEN
32739        xla_exceptions_pkg.raise_message
32740            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_81');
32741 END AcctLineType_81;
32742 --
32743 
32744 ---------------------------------------
32745 --
32746 -- PRIVATE FUNCTION
32747 --         AcctLineType_82
32748 --
32749 ---------------------------------------
32750 PROCEDURE AcctLineType_82 (
32751   p_application_id        IN NUMBER
32752  ,p_event_id              IN NUMBER
32753  ,p_calculate_acctd_flag  IN VARCHAR2
32754  ,p_calculate_g_l_flag    IN VARCHAR2
32755  ,p_actual_flag           IN OUT VARCHAR2
32756  ,p_balance_type_code     OUT VARCHAR2
32757  ,p_gain_or_loss_ref      OUT VARCHAR2
32758  
32759 --Bank Cash Clearing Account
32760  , p_source_23            IN NUMBER
32761 --Automatic Offsets Flag
32762  , p_source_35            IN VARCHAR2
32763  , p_source_35_meaning    IN VARCHAR2
32764 --Accounting Reversal Indicator
32765  , p_source_41            IN VARCHAR2
32766 --Distribution Link Type
32767  , p_source_43            IN VARCHAR2
32768 --Override Accounted Amount Indicator
32769  , p_source_68            IN VARCHAR2
32770  , p_source_68_meaning    IN VARCHAR2
32771 --Third Party Type
32772  , p_source_71            IN VARCHAR2
32773 --Business Flow Accounts Payable Application Identifier
32774  , p_source_79            IN NUMBER
32775 --When to Account for Payment Option
32776  , p_source_89            IN VARCHAR2
32777 --Payment Distribution Type
32778  , p_source_90            IN VARCHAR2
32779  , p_source_90_meaning    IN VARCHAR2
32780 --Payment Distribution Amount
32781  , p_source_91            IN NUMBER
32782 --Business Flow Payment Distribution Type
32783  , p_source_92            IN VARCHAR2
32784 --Business Flow Payment Entity Code
32785  , p_source_93            IN VARCHAR2
32786 --Business Flow Payment Distribution Identifier
32787  , p_source_94            IN NUMBER
32788 --Business Flow Payment Identifier
32789  , p_source_95            IN NUMBER
32790 --Payment Distribution Identifier
32791  , p_source_96            IN NUMBER
32792 --Payment Supplier Identifier
32793  , p_source_102            IN NUMBER
32794 --Payment Supplier Site Identifier
32798 --Pooled Bank Account Option
32795  , p_source_103            IN NUMBER
32796 --Payment Distribution Reversed Identifier
32797  , p_source_104            IN NUMBER
32799  , p_source_105            IN VARCHAR2
32800  , p_source_105_meaning    IN VARCHAR2
32801 --Payment Currency Code
32802  , p_source_106            IN VARCHAR2
32803 --Payment Maturity Date
32804  , p_source_107            IN DATE
32805 --Payment Distribution (Invoice Rate) Ledger Amount
32806  , p_source_109            IN NUMBER
32807 --Payment Exchange Date
32808  , p_source_110            IN DATE
32809 --Payment Exchange Rate
32810  , p_source_111            IN NUMBER
32811 --Payment Exchange Rate Type
32812  , p_source_112            IN VARCHAR2
32813 )
32814 IS
32815 
32816 l_component_type              VARCHAR2(80);
32817 l_component_code              VARCHAR2(30);
32818 l_component_type_code         VARCHAR2(1);
32819 l_component_appl_id           INTEGER;
32820 l_amb_context_code            VARCHAR2(30);
32821 l_entity_code                 VARCHAR2(30);
32822 l_event_class_code            VARCHAR2(30);
32823 l_ae_header_id                NUMBER;
32824 l_event_type_code             VARCHAR2(30);
32825 l_line_definition_code        VARCHAR2(30);
32826 l_line_definition_owner_code  VARCHAR2(1);
32827 --
32828 -- adr variables
32829 l_segment                     VARCHAR2(30);
32830 l_ccid                        NUMBER;
32831 l_adr_transaction_coa_id      NUMBER;
32832 l_adr_accounting_coa_id       NUMBER;
32833 l_adr_flexfield_segment_code  VARCHAR2(30);
32834 l_adr_flex_value_set_id       NUMBER;
32835 l_adr_value_type_code         VARCHAR2(30);
32836 l_adr_value_combination_id    NUMBER;
32837 l_adr_value_segment_code      VARCHAR2(30);
32838 
32839 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
32840 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
32841 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
32842 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
32843 
32844 -- 4262811 Variables ------------------------------------------------------------------------------------------
32845 l_entered_amt_idx             NUMBER;
32846 l_accted_amt_idx              NUMBER;
32847 l_acc_rev_flag                VARCHAR2(1);
32848 l_accrual_line_num            NUMBER;
32849 l_tmp_amt                     NUMBER;
32850 l_acc_rev_natural_side_code   VARCHAR2(1);
32851 
32852 l_num_entries                 NUMBER;
32853 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
32854 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
32855 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
32856 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
32857 l_recog_line_1                NUMBER;
32858 l_recog_line_2                NUMBER;
32859 
32860 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
32861 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
32862 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
32863 
32864 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32865 
32866 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
32867 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
32868 
32869 ---------------------------------------------------------------------------------------------------------------
32870 
32871 
32872 --
32873 -- bulk performance
32874 --
32875 l_balance_type_code           VARCHAR2(1);
32876 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
32877 l_log_module                  VARCHAR2(240);
32878 
32879 --
32880 -- Upgrade strategy
32881 --
32882 l_actual_upg_option           VARCHAR2(1);
32883 l_enc_upg_option           VARCHAR2(1);
32884 
32885 --
32886 BEGIN
32887 --
32888 IF g_log_enabled THEN
32889       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_82';
32890 END IF;
32891 --
32892 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32893 
32894       trace
32895          (p_msg      => 'BEGIN of AcctLineType_82'
32896          ,p_level    => C_LEVEL_PROCEDURE
32897          ,p_module   => l_log_module);
32898 
32899 END IF;
32900 --
32901 l_component_type             := 'AMB_JLT';
32902 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT_INVXRATE';
32903 l_component_type_code        := 'S';
32904 l_component_appl_id          :=  200;
32905 l_amb_context_code           := 'DEFAULT';
32906 l_entity_code                := 'AP_PAYMENTS';
32907 l_event_class_code           := 'FUTURE DATED PAYMENTS';
32908 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
32909 l_line_definition_owner_code := 'S';
32910 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
32911 --
32912 l_balance_type_code          := 'A';
32913 l_segment                     := NULL;
32914 l_ccid                        := NULL;
32915 l_adr_transaction_coa_id      := NULL;
32916 l_adr_accounting_coa_id       := NULL;
32917 l_adr_flexfield_segment_code  := NULL;
32918 l_adr_flex_value_set_id       := NULL;
32919 l_adr_value_type_code         := NULL;
32920 l_adr_value_combination_id    := NULL;
32921 l_adr_value_segment_code      := NULL;
32922 
32923 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
32924 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
32928 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
32925 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
32926 l_budgetary_control_flag     := 'N';
32927 
32929 l_bflow_applied_to_amt       := NULL; -- 5132302
32930 l_entered_amt_idx            := NULL;          -- 4262811
32931 l_accted_amt_idx             := NULL;          -- 4262811
32932 l_acc_rev_flag               := NULL;          -- 4262811
32933 l_accrual_line_num           := NULL;          -- 4262811
32934 l_tmp_amt                    := NULL;          -- 4262811
32935 --
32936  
32937 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32938     l_balance_type_code <> 'B' THEN
32939 IF NVL(p_source_89,'
32940 ') =  'ALWAYS_CLEAR' AND 
32941 (NVL(p_source_35,'
32942 ') <>  'Y' OR 
32943 NVL(p_source_35,'
32944 ') =  'Y' AND 
32945 NVL(p_source_105,'
32946 ') <>  'Y') AND 
32947 p_source_107 IS NOT NULL AND 
32948 NVL(p_source_90,'
32949 ') =  'CASH'
32950  THEN 
32951 
32952    --
32953    XLA_AE_LINES_PKG.SetNewLine;
32954 
32955    p_balance_type_code          := l_balance_type_code;
32956    -- set the flag so later we will know whether the gain loss line needs to be created
32957    
32958    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32959      p_actual_flag :='A';
32960    END IF;
32961 
32962    --
32963    -- bulk performance
32964    --
32965    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32966                                       p_header_num   => 0); -- 4262811
32967    --
32968    -- set accounting line options
32969    --
32970    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32971            p_natural_side_code          => 'C'
32972          , p_gain_or_loss_flag          => 'N'
32973          , p_gl_transfer_mode_code      => 'S'
32974          , p_acct_entry_type_code       => 'A'
32975          , p_switch_side_flag           => 'Y'
32976          , p_merge_duplicate_code       => 'A'
32977          );
32978    --
32979    l_acc_rev_natural_side_code := 'D';  -- 4262811
32980    -- 
32981    --
32982    -- set accounting line type info
32983    --
32984    xla_ae_lines_pkg.SetAcctLineType
32985       (p_component_type             => l_component_type
32986       ,p_event_type_code            => l_event_type_code
32987       ,p_line_definition_owner_code => l_line_definition_owner_code
32988       ,p_line_definition_code       => l_line_definition_code
32989       ,p_accounting_line_code       => l_component_code
32990       ,p_accounting_line_type_code  => l_component_type_code
32991       ,p_accounting_line_appl_id    => l_component_appl_id
32992       ,p_amb_context_code           => l_amb_context_code
32993       ,p_entity_code                => l_entity_code
32994       ,p_event_class_code           => l_event_class_code);
32995    --
32996    -- set accounting class
32997    --
32998    xla_ae_lines_pkg.SetAcctClass(
32999            p_accounting_class_code  => 'CASH_CLEARING'
33000          , p_ae_header_id           => l_ae_header_id
33001          );
33002 
33003    --
33004    -- set rounding class
33005    --
33006    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33007                       'CASH_CLEARING';
33008 
33009    --
33010    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33011    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33012    --
33013    -- bulk performance
33014    --
33015    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33016 
33017    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33018       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33019 
33020    -- 4955764
33021    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33022       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33023 
33024    -- 4458381 Public Sector Enh
33025    
33026    --
33027    -- set accounting attributes for the line type
33028    --
33029    l_entered_amt_idx := 9;
33030    l_accted_amt_idx  := 14;
33031    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
33032    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33033    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
33034    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
33035    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
33036    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33037    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
33038    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
33039    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
33040    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
33041    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
33042    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33043    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
33044    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
33045    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
33046    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
33047    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
33048    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
33049    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
33050    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
33051    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
33055    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
33052    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
33053    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
33054    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
33056    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
33057    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
33058    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
33059    l_rec_acct_attrs.array_num_value(14)  := p_source_109;
33060    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
33061    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
33062    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
33063    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
33064    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
33065    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
33066    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
33067    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
33068    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
33069    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
33070    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
33071    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
33072 
33073    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33074    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33075 
33076    ---------------------------------------------------------------------------------------------------------------
33077    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33078    ---------------------------------------------------------------------------------------------------------------
33079    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33080 
33081    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33082    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33083 
33084    IF xla_accounting_cache_pkg.GetValueChar
33085          (p_source_code         => 'LEDGER_CATEGORY_CODE'
33086          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33087    AND l_bflow_method_code = 'PRIOR_ENTRY'
33088 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33089    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33090          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33091        )
33092    THEN
33093          xla_ae_lines_pkg.BflowUpgEntry
33094            (p_business_method_code    => l_bflow_method_code
33095            ,p_business_class_code     => l_bflow_class_code
33096            ,p_balance_type            => l_balance_type_code);
33097    ELSE
33098       NULL;
33099 -- No business flow processing for business flow method of NONE.
33100    END IF;
33101 
33102    --
33103    -- call analytical criteria
33104    --
33105    
33106    --
33107    -- call description
33108    --
33109    -- No description or it is inherited.
33110    --
33111    -- call ADRs
33112    -- Bug 4922099
33113    --
33114    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33115         (NVL(l_actual_upg_option, 'N') = 'O') OR
33116         (NVL(l_enc_upg_option, 'N') = 'O')
33117       )
33118    THEN
33119    NULL;
33120    --
33121    --
33122    
33123   l_ccid := AcctDerRule_35(
33124            p_application_id           => p_application_id
33125          , p_ae_header_id             => l_ae_header_id 
33126 , p_source_23 => p_source_23
33127          , x_transaction_coa_id       => l_adr_transaction_coa_id
33128          , x_accounting_coa_id        => l_adr_accounting_coa_id
33129          , x_value_type_code          => l_adr_value_type_code
33130          , p_side                     => 'NA'
33131    );
33132 
33133    xla_ae_lines_pkg.set_ccid(
33134     p_code_combination_id          => l_ccid
33135   , p_value_type_code              => l_adr_value_type_code
33136   , p_transaction_coa_id           => l_adr_transaction_coa_id
33137   , p_accounting_coa_id            => l_adr_accounting_coa_id
33138   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
33139   , p_adr_type_code                => 'S'
33140   , p_component_type               => l_component_type
33141   , p_component_code               => l_component_code
33142   , p_component_type_code          => l_component_type_code
33143   , p_component_appl_id            => l_component_appl_id
33144   , p_amb_context_code             => l_amb_context_code
33145   , p_side                         => 'NA'
33146   );
33147 
33148 
33149    --
33150    --
33151    END IF;
33152    --
33153    -- Bug 4922099
33154    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33155           (NVL(l_enc_upg_option, 'N') = 'O')
33156         ) AND
33157         (l_bflow_method_code = 'PRIOR_ENTRY')
33158       )
33159    THEN
33160       IF
33161       --
33162       1 = 2
33163       --
33164       THEN
33165       xla_accounting_err_pkg.build_message
33166                                     (p_appli_s_name            => 'XLA'
33167                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33168                                     ,p_token_1                 => 'LINE_NUMBER'
33169                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
33170                                     ,p_token_2                 => 'LINE_TYPE_NAME'
33171                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
33175                                                                             ,l_component_appl_id
33172                                                                              l_component_type
33173                                                                             ,l_component_code
33174                                                                             ,l_component_type_code
33176                                                                             ,l_amb_context_code
33177                                                                             ,l_entity_code
33178                                                                             ,l_event_class_code
33179                                                                            )
33180                                     ,p_token_3                 => 'OWNER'
33181                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
33182                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
33183                                                                           ,p_lookup_code    => l_component_type_code
33184                                                                          )
33185                                     ,p_token_4                 => 'PRODUCT_NAME'
33186                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33187                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33188                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33189                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33190                                     ,p_ae_header_id            =>  NULL
33191                                        );
33192 
33193         IF (C_LEVEL_ERROR>= g_log_level) THEN
33194                  trace
33195                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33196                       ,p_level    => C_LEVEL_ERROR
33197                       ,p_module   => l_log_module);
33198         END IF;
33199       END IF;
33200    END IF;
33201    --
33202    --
33203    ------------------------------------------------------------------------------------------------
33204    -- 4219869 Business Flow
33205    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33206    -- Prior Entry.  Currently, the following code is always generated.
33207    ------------------------------------------------------------------------------------------------
33208    XLA_AE_LINES_PKG.ValidateCurrentLine;
33209 
33210    ------------------------------------------------------------------------------------
33211    -- 4219869 Business Flow
33212    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33213    ------------------------------------------------------------------------------------
33214    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33215 
33216    ----------------------------------------------------------------------------------
33217    -- 4219869 Business Flow
33218    -- Update journal entry status -- Need to generate this within IF <condition>
33219    ----------------------------------------------------------------------------------
33220    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33221          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33222          ,p_balance_type_code => l_balance_type_code
33223          );
33224 
33225    -------------------------------------------------------------------------------------------
33226    -- 4262811 - Generate the Accrual Reversal lines
33227    -------------------------------------------------------------------------------------------
33228    BEGIN
33229       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33230                               (g_array_event(p_event_id).array_value_num('header_index'));
33231       IF l_acc_rev_flag IS NULL THEN
33232          l_acc_rev_flag := 'N';
33233       END IF;
33234    EXCEPTION
33235       WHEN OTHERS THEN
33236          l_acc_rev_flag := 'N';
33237    END;
33238    --
33239    IF (l_acc_rev_flag = 'Y') THEN
33240 
33241        -- 4645092  ------------------------------------------------------------------------------
33242        -- To allow MPA report to determine if it should generate report process
33243        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33244        ------------------------------------------------------------------------------------------
33245 
33246        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33247        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33248    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
33249    -- call ADRs
33250    -- Bug 4922099
33251    --
33252    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33253         (NVL(l_actual_upg_option, 'N') = 'O') OR
33254         (NVL(l_enc_upg_option, 'N') = 'O')
33255       )
33256    THEN
33257    NULL;
33258    --
33259    --
33260    
33261   l_ccid := AcctDerRule_35(
33262            p_application_id           => p_application_id
33263          , p_ae_header_id             => l_ae_header_id 
33264 , p_source_23 => p_source_23
33265          , x_transaction_coa_id       => l_adr_transaction_coa_id
33266          , x_accounting_coa_id        => l_adr_accounting_coa_id
33267          , x_value_type_code          => l_adr_value_type_code
33268          , p_side                     => 'NA'
33269    );
33270 
33271    xla_ae_lines_pkg.set_ccid(
33272     p_code_combination_id          => l_ccid
33273   , p_value_type_code              => l_adr_value_type_code
33274   , p_transaction_coa_id           => l_adr_transaction_coa_id
33278   , p_component_type               => l_component_type
33275   , p_accounting_coa_id            => l_adr_accounting_coa_id
33276   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
33277   , p_adr_type_code                => 'S'
33279   , p_component_code               => l_component_code
33280   , p_component_type_code          => l_component_type_code
33281   , p_component_appl_id            => l_component_appl_id
33282   , p_amb_context_code             => l_amb_context_code
33283   , p_side                         => 'NA'
33284   );
33285 
33286 
33287    --
33288    --
33289    END IF;
33290 
33291        --
33292        -- Update the line information that should be overwritten
33293        --
33294        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33295                                          p_header_num   => 1);
33296        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
33297 
33298        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33299 
33300        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
33301           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33302        END IF;
33303 
33304       --
33305       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33306       --
33307       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33308           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
33309       ELSE
33310           ---------------------------------------------------------------------------------------------------
33311           -- 4262811a Switch Sign
33312           ---------------------------------------------------------------------------------------------------
33313           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
33314           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33315                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33316           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33317                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33318           -- 5132302
33319           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33320                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33321 
33322       END IF;
33323 
33324       -- 4955764
33325       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33326       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33327 
33328 
33329       XLA_AE_LINES_PKG.ValidateCurrentLine;
33330       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33331 
33332       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33333                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33334                ,p_balance_type_code => l_balance_type_code);
33335 
33336    END IF;
33337 
33338    -----------------------------------------------------------------------------------------
33339    -- 4262811 Multiperiod Accounting
33340    -----------------------------------------------------------------------------------------
33341      -- No MPA option is assigned.
33342 
33343 
33344 END IF;
33345 END IF;
33346 --
33347 
33348 --
33349 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33350    trace
33351       (p_msg      => 'END of AcctLineType_82'
33352       ,p_level    => C_LEVEL_PROCEDURE
33353       ,p_module   => l_log_module);
33354 END IF;
33355 --
33356 EXCEPTION
33357   WHEN xla_exceptions_pkg.application_exception THEN
33358       RAISE;
33359   WHEN OTHERS THEN
33360        xla_exceptions_pkg.raise_message
33361            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_82');
33362 END AcctLineType_82;
33363 --
33364 
33365 ---------------------------------------
33366 --
33367 -- PRIVATE FUNCTION
33368 --         AcctLineType_83
33369 --
33370 ---------------------------------------
33371 PROCEDURE AcctLineType_83 (
33372   p_application_id        IN NUMBER
33373  ,p_event_id              IN NUMBER
33374  ,p_calculate_acctd_flag  IN VARCHAR2
33375  ,p_calculate_g_l_flag    IN VARCHAR2
33376  ,p_actual_flag           IN OUT VARCHAR2
33377  ,p_balance_type_code     OUT VARCHAR2
33378  ,p_gain_or_loss_ref      OUT VARCHAR2
33379  
33380 --Bank Cash Clearing Account
33381  , p_source_23            IN NUMBER
33382 --Automatic Offsets Flag
33383  , p_source_35            IN VARCHAR2
33384  , p_source_35_meaning    IN VARCHAR2
33385 --Accounting Reversal Indicator
33386  , p_source_41            IN VARCHAR2
33387 --Distribution Link Type
33388  , p_source_43            IN VARCHAR2
33389 --Override Accounted Amount Indicator
33390  , p_source_68            IN VARCHAR2
33391  , p_source_68_meaning    IN VARCHAR2
33392 --Third Party Type
33393  , p_source_71            IN VARCHAR2
33394 --Invoice Distribution Tax Line Identifier
33395  , p_source_74            IN NUMBER
33396 --Invoice Distribution Tax Distribution Identifier from Tax
33397  , p_source_75            IN NUMBER
33398 --Invoice Distribution Summary Tax Line Identifier
33399  , p_source_76            IN NUMBER
33400 --Business Flow Accounts Payable Application Identifier
33401  , p_source_79            IN NUMBER
33402 --Business Flow Invoice Distribution Type
33406 --Business Flow Invoice Distribution Identifier
33403  , p_source_80            IN VARCHAR2
33404 --Business Flow Invoice Entity Code
33405  , p_source_81            IN VARCHAR2
33407  , p_source_82            IN NUMBER
33408 --Business Flow Invoice Identifier
33409  , p_source_83            IN NUMBER
33410 --When to Account for Payment Option
33411  , p_source_89            IN VARCHAR2
33412 --Payment Distribution Type
33413  , p_source_90            IN VARCHAR2
33414  , p_source_90_meaning    IN VARCHAR2
33415 --Payment Distribution Amount
33416  , p_source_91            IN NUMBER
33417 --Payment Distribution Identifier
33418  , p_source_96            IN NUMBER
33419 --Payment Supplier Identifier
33420  , p_source_102            IN NUMBER
33421 --Payment Supplier Site Identifier
33422  , p_source_103            IN NUMBER
33423 --Payment Distribution Reversed Identifier
33424  , p_source_104            IN NUMBER
33425 --Pooled Bank Account Option
33426  , p_source_105            IN VARCHAR2
33427  , p_source_105_meaning    IN VARCHAR2
33428 --Payment Currency Code
33429  , p_source_106            IN VARCHAR2
33430 --Payment Maturity Date
33431  , p_source_107            IN DATE
33432 --Payment Distribution (Payment Rate) Ledger Amount
33433  , p_source_108            IN NUMBER
33434 --Payment Exchange Date
33435  , p_source_110            IN DATE
33436 --Payment Exchange Rate
33437  , p_source_111            IN NUMBER
33438 --Payment Exchange Rate Type
33439  , p_source_112            IN VARCHAR2
33440 --Payment Type
33441  , p_source_115            IN VARCHAR2
33442  , p_source_115_meaning    IN VARCHAR2
33443 )
33444 IS
33445 
33446 l_component_type              VARCHAR2(80);
33447 l_component_code              VARCHAR2(30);
33448 l_component_type_code         VARCHAR2(1);
33449 l_component_appl_id           INTEGER;
33450 l_amb_context_code            VARCHAR2(30);
33451 l_entity_code                 VARCHAR2(30);
33452 l_event_class_code            VARCHAR2(30);
33453 l_ae_header_id                NUMBER;
33454 l_event_type_code             VARCHAR2(30);
33455 l_line_definition_code        VARCHAR2(30);
33456 l_line_definition_owner_code  VARCHAR2(1);
33457 --
33458 -- adr variables
33459 l_segment                     VARCHAR2(30);
33460 l_ccid                        NUMBER;
33461 l_adr_transaction_coa_id      NUMBER;
33462 l_adr_accounting_coa_id       NUMBER;
33463 l_adr_flexfield_segment_code  VARCHAR2(30);
33464 l_adr_flex_value_set_id       NUMBER;
33465 l_adr_value_type_code         VARCHAR2(30);
33466 l_adr_value_combination_id    NUMBER;
33467 l_adr_value_segment_code      VARCHAR2(30);
33468 
33469 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
33470 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
33471 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
33472 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
33473 
33474 -- 4262811 Variables ------------------------------------------------------------------------------------------
33475 l_entered_amt_idx             NUMBER;
33476 l_accted_amt_idx              NUMBER;
33477 l_acc_rev_flag                VARCHAR2(1);
33478 l_accrual_line_num            NUMBER;
33479 l_tmp_amt                     NUMBER;
33480 l_acc_rev_natural_side_code   VARCHAR2(1);
33481 
33482 l_num_entries                 NUMBER;
33483 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
33484 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
33485 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
33486 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
33487 l_recog_line_1                NUMBER;
33488 l_recog_line_2                NUMBER;
33489 
33490 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
33491 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
33492 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
33493 
33494 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33495 
33496 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
33497 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
33498 
33499 ---------------------------------------------------------------------------------------------------------------
33500 
33501 
33502 --
33503 -- bulk performance
33504 --
33505 l_balance_type_code           VARCHAR2(1);
33506 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
33507 l_log_module                  VARCHAR2(240);
33508 
33509 --
33510 -- Upgrade strategy
33511 --
33512 l_actual_upg_option           VARCHAR2(1);
33513 l_enc_upg_option           VARCHAR2(1);
33514 
33515 --
33516 BEGIN
33517 --
33518 IF g_log_enabled THEN
33519       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_83';
33520 END IF;
33521 --
33522 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33523 
33524       trace
33525          (p_msg      => 'BEGIN of AcctLineType_83'
33526          ,p_level    => C_LEVEL_PROCEDURE
33527          ,p_module   => l_log_module);
33528 
33529 END IF;
33530 --
33531 l_component_type             := 'AMB_JLT';
33532 l_component_code             := 'AP_CASH_CLEAR_REF';
33533 l_component_type_code        := 'S';
33534 l_component_appl_id          :=  200;
33535 l_amb_context_code           := 'DEFAULT';
33536 l_entity_code                := 'AP_PAYMENTS';
33537 l_event_class_code           := 'REFUNDS';
33538 l_event_type_code            := 'REFUNDS_ALL';
33539 l_line_definition_owner_code := 'S';
33543 l_segment                     := NULL;
33540 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
33541 --
33542 l_balance_type_code          := 'A';
33544 l_ccid                        := NULL;
33545 l_adr_transaction_coa_id      := NULL;
33546 l_adr_accounting_coa_id       := NULL;
33547 l_adr_flexfield_segment_code  := NULL;
33548 l_adr_flex_value_set_id       := NULL;
33549 l_adr_value_type_code         := NULL;
33550 l_adr_value_combination_id    := NULL;
33551 l_adr_value_segment_code      := NULL;
33552 
33553 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
33554 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
33555 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
33556 l_budgetary_control_flag     := 'N';
33557 
33558 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
33559 l_bflow_applied_to_amt       := NULL; -- 5132302
33560 l_entered_amt_idx            := NULL;          -- 4262811
33561 l_accted_amt_idx             := NULL;          -- 4262811
33562 l_acc_rev_flag               := NULL;          -- 4262811
33563 l_accrual_line_num           := NULL;          -- 4262811
33564 l_tmp_amt                    := NULL;          -- 4262811
33565 --
33566  
33567 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33568     l_balance_type_code <> 'B' THEN
33569 IF NVL(p_source_89,'
33570 ') =  'ALWAYS_ALWAYS' AND 
33571 (NVL(p_source_35,'
33572 ') <>  'Y' OR 
33573 NVL(p_source_35,'
33574 ') =  'Y' AND 
33575 NVL(p_source_105,'
33576 ') <>  'Y') AND 
33577 p_source_107 IS NULL AND 
33578 NVL(p_source_90,'
33579 ') =  'CASH' AND 
33580 NVL(p_source_115,'
33581 ') =  'R'
33582  THEN 
33583 
33584    --
33585    XLA_AE_LINES_PKG.SetNewLine;
33586 
33587    p_balance_type_code          := l_balance_type_code;
33588    -- set the flag so later we will know whether the gain loss line needs to be created
33589    
33590    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33591      p_actual_flag :='A';
33592    END IF;
33593 
33594    --
33595    -- bulk performance
33596    --
33597    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33598                                       p_header_num   => 0); -- 4262811
33599    --
33600    -- set accounting line options
33601    --
33602    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33603            p_natural_side_code          => 'C'
33604          , p_gain_or_loss_flag          => 'N'
33605          , p_gl_transfer_mode_code      => 'S'
33606          , p_acct_entry_type_code       => 'A'
33607          , p_switch_side_flag           => 'Y'
33608          , p_merge_duplicate_code       => 'A'
33609          );
33610    --
33611    l_acc_rev_natural_side_code := 'D';  -- 4262811
33612    -- 
33613    --
33614    -- set accounting line type info
33615    --
33616    xla_ae_lines_pkg.SetAcctLineType
33617       (p_component_type             => l_component_type
33618       ,p_event_type_code            => l_event_type_code
33619       ,p_line_definition_owner_code => l_line_definition_owner_code
33620       ,p_line_definition_code       => l_line_definition_code
33621       ,p_accounting_line_code       => l_component_code
33622       ,p_accounting_line_type_code  => l_component_type_code
33623       ,p_accounting_line_appl_id    => l_component_appl_id
33624       ,p_amb_context_code           => l_amb_context_code
33625       ,p_entity_code                => l_entity_code
33626       ,p_event_class_code           => l_event_class_code);
33627    --
33628    -- set accounting class
33629    --
33630    xla_ae_lines_pkg.SetAcctClass(
33631            p_accounting_class_code  => 'CASH_CLEARING'
33632          , p_ae_header_id           => l_ae_header_id
33633          );
33634 
33635    --
33636    -- set rounding class
33637    --
33638    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33639                       'CASH_CLEARING';
33640 
33641    --
33642    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33643    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33644    --
33645    -- bulk performance
33646    --
33647    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33648 
33649    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33650       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33651 
33652    -- 4955764
33653    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33654       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33655 
33656    -- 4458381 Public Sector Enh
33657    
33658    --
33659    -- set accounting attributes for the line type
33660    --
33661    l_entered_amt_idx := 9;
33662    l_accted_amt_idx  := 14;
33663    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
33664    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33665    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
33666    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
33667    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
33668    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33669    l_rec_acct_attrs.array_char_value(3)  := p_source_80;
33673    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
33670    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
33671    l_rec_acct_attrs.array_char_value(4)  := p_source_81;
33672    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
33674    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33675    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
33676    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
33677    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
33678    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
33679    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
33680    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
33681    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
33682    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
33683    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
33684    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
33685    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
33686    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
33687    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
33688    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
33689    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
33690    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
33691    l_rec_acct_attrs.array_num_value(14)  := p_source_108;
33692    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
33693    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
33694    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
33695    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
33696    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
33697    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
33698    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
33699    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
33700    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
33701    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
33702    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
33703    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
33704    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
33705    l_rec_acct_attrs.array_num_value(21)  := p_source_74;
33706    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
33707    l_rec_acct_attrs.array_num_value(22)  := p_source_75;
33708    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
33709    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
33710 
33711    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33712    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33713 
33714    ---------------------------------------------------------------------------------------------------------------
33715    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33716    ---------------------------------------------------------------------------------------------------------------
33717    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33718 
33719    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33720    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33721 
33722    IF xla_accounting_cache_pkg.GetValueChar
33723          (p_source_code         => 'LEDGER_CATEGORY_CODE'
33724          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33725    AND l_bflow_method_code = 'PRIOR_ENTRY'
33726 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33727    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33728          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33729        )
33730    THEN
33731          xla_ae_lines_pkg.BflowUpgEntry
33732            (p_business_method_code    => l_bflow_method_code
33733            ,p_business_class_code     => l_bflow_class_code
33734            ,p_balance_type            => l_balance_type_code);
33735    ELSE
33736       NULL;
33737 -- No business flow processing for business flow method of NONE.
33738    END IF;
33739 
33740    --
33741    -- call analytical criteria
33742    --
33743    
33744    --
33745    -- call description
33746    --
33747    -- No description or it is inherited.
33748    --
33749    -- call ADRs
33750    -- Bug 4922099
33751    --
33752    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33753         (NVL(l_actual_upg_option, 'N') = 'O') OR
33754         (NVL(l_enc_upg_option, 'N') = 'O')
33755       )
33756    THEN
33757    NULL;
33758    --
33759    --
33760    
33761   l_ccid := AcctDerRule_35(
33762            p_application_id           => p_application_id
33763          , p_ae_header_id             => l_ae_header_id 
33764 , p_source_23 => p_source_23
33765          , x_transaction_coa_id       => l_adr_transaction_coa_id
33766          , x_accounting_coa_id        => l_adr_accounting_coa_id
33767          , x_value_type_code          => l_adr_value_type_code
33768          , p_side                     => 'NA'
33769    );
33770 
33771    xla_ae_lines_pkg.set_ccid(
33772     p_code_combination_id          => l_ccid
33773   , p_value_type_code              => l_adr_value_type_code
33774   , p_transaction_coa_id           => l_adr_transaction_coa_id
33775   , p_accounting_coa_id            => l_adr_accounting_coa_id
33776   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
33777   , p_adr_type_code                => 'S'
33778   , p_component_type               => l_component_type
33782   , p_amb_context_code             => l_amb_context_code
33779   , p_component_code               => l_component_code
33780   , p_component_type_code          => l_component_type_code
33781   , p_component_appl_id            => l_component_appl_id
33783   , p_side                         => 'NA'
33784   );
33785 
33786 
33787    --
33788    --
33789    END IF;
33790    --
33791    -- Bug 4922099
33792    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33793           (NVL(l_enc_upg_option, 'N') = 'O')
33794         ) AND
33795         (l_bflow_method_code = 'PRIOR_ENTRY')
33796       )
33797    THEN
33798       IF
33799       --
33800       1 = 2
33801       --
33802       THEN
33803       xla_accounting_err_pkg.build_message
33804                                     (p_appli_s_name            => 'XLA'
33805                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33806                                     ,p_token_1                 => 'LINE_NUMBER'
33807                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
33808                                     ,p_token_2                 => 'LINE_TYPE_NAME'
33809                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
33810                                                                              l_component_type
33811                                                                             ,l_component_code
33812                                                                             ,l_component_type_code
33813                                                                             ,l_component_appl_id
33814                                                                             ,l_amb_context_code
33815                                                                             ,l_entity_code
33816                                                                             ,l_event_class_code
33817                                                                            )
33818                                     ,p_token_3                 => 'OWNER'
33819                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
33820                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
33821                                                                           ,p_lookup_code    => l_component_type_code
33822                                                                          )
33823                                     ,p_token_4                 => 'PRODUCT_NAME'
33824                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33825                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33826                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33827                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33828                                     ,p_ae_header_id            =>  NULL
33829                                        );
33830 
33831         IF (C_LEVEL_ERROR>= g_log_level) THEN
33832                  trace
33833                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33834                       ,p_level    => C_LEVEL_ERROR
33835                       ,p_module   => l_log_module);
33836         END IF;
33837       END IF;
33838    END IF;
33839    --
33840    --
33841    ------------------------------------------------------------------------------------------------
33842    -- 4219869 Business Flow
33843    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33844    -- Prior Entry.  Currently, the following code is always generated.
33845    ------------------------------------------------------------------------------------------------
33846    XLA_AE_LINES_PKG.ValidateCurrentLine;
33847 
33848    ------------------------------------------------------------------------------------
33849    -- 4219869 Business Flow
33850    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33851    ------------------------------------------------------------------------------------
33852    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33853 
33854    ----------------------------------------------------------------------------------
33855    -- 4219869 Business Flow
33856    -- Update journal entry status -- Need to generate this within IF <condition>
33857    ----------------------------------------------------------------------------------
33858    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33859          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33860          ,p_balance_type_code => l_balance_type_code
33861          );
33862 
33863    -------------------------------------------------------------------------------------------
33864    -- 4262811 - Generate the Accrual Reversal lines
33865    -------------------------------------------------------------------------------------------
33866    BEGIN
33867       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33868                               (g_array_event(p_event_id).array_value_num('header_index'));
33869       IF l_acc_rev_flag IS NULL THEN
33870          l_acc_rev_flag := 'N';
33871       END IF;
33872    EXCEPTION
33873       WHEN OTHERS THEN
33874          l_acc_rev_flag := 'N';
33875    END;
33876    --
33877    IF (l_acc_rev_flag = 'Y') THEN
33878 
33879        -- 4645092  ------------------------------------------------------------------------------
33880        -- To allow MPA report to determine if it should generate report process
33881        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33885        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33882        ------------------------------------------------------------------------------------------
33883 
33884        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33886    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
33887    -- call ADRs
33888    -- Bug 4922099
33889    --
33890    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33891         (NVL(l_actual_upg_option, 'N') = 'O') OR
33892         (NVL(l_enc_upg_option, 'N') = 'O')
33893       )
33894    THEN
33895    NULL;
33896    --
33897    --
33898    
33899   l_ccid := AcctDerRule_35(
33900            p_application_id           => p_application_id
33901          , p_ae_header_id             => l_ae_header_id 
33902 , p_source_23 => p_source_23
33903          , x_transaction_coa_id       => l_adr_transaction_coa_id
33904          , x_accounting_coa_id        => l_adr_accounting_coa_id
33905          , x_value_type_code          => l_adr_value_type_code
33906          , p_side                     => 'NA'
33907    );
33908 
33909    xla_ae_lines_pkg.set_ccid(
33910     p_code_combination_id          => l_ccid
33911   , p_value_type_code              => l_adr_value_type_code
33912   , p_transaction_coa_id           => l_adr_transaction_coa_id
33913   , p_accounting_coa_id            => l_adr_accounting_coa_id
33914   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
33915   , p_adr_type_code                => 'S'
33916   , p_component_type               => l_component_type
33917   , p_component_code               => l_component_code
33918   , p_component_type_code          => l_component_type_code
33919   , p_component_appl_id            => l_component_appl_id
33920   , p_amb_context_code             => l_amb_context_code
33921   , p_side                         => 'NA'
33922   );
33923 
33924 
33925    --
33926    --
33927    END IF;
33928 
33929        --
33930        -- Update the line information that should be overwritten
33931        --
33932        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33933                                          p_header_num   => 1);
33934        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
33935 
33936        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33937 
33938        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
33939           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33940        END IF;
33941 
33942       --
33943       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33944       --
33945       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33946           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
33947       ELSE
33948           ---------------------------------------------------------------------------------------------------
33949           -- 4262811a Switch Sign
33950           ---------------------------------------------------------------------------------------------------
33951           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
33952           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33953                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33954           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33955                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33956           -- 5132302
33957           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33958                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33959 
33960       END IF;
33961 
33962       -- 4955764
33963       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33964       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33965 
33966 
33967       XLA_AE_LINES_PKG.ValidateCurrentLine;
33968       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33969 
33970       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33971                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33972                ,p_balance_type_code => l_balance_type_code);
33973 
33974    END IF;
33975 
33976    -----------------------------------------------------------------------------------------
33977    -- 4262811 Multiperiod Accounting
33978    -----------------------------------------------------------------------------------------
33979      -- No MPA option is assigned.
33980 
33981 
33982 END IF;
33983 END IF;
33984 --
33985 
33986 --
33987 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33988    trace
33989       (p_msg      => 'END of AcctLineType_83'
33990       ,p_level    => C_LEVEL_PROCEDURE
33991       ,p_module   => l_log_module);
33992 END IF;
33993 --
33994 EXCEPTION
33995   WHEN xla_exceptions_pkg.application_exception THEN
33996       RAISE;
33997   WHEN OTHERS THEN
33998        xla_exceptions_pkg.raise_message
33999            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_83');
34000 END AcctLineType_83;
34001 --
34002 
34003 ---------------------------------------
34004 --
34005 -- PRIVATE FUNCTION
34006 --         AcctLineType_84
34007 --
34008 ---------------------------------------
34009 PROCEDURE AcctLineType_84 (
34013  ,p_calculate_g_l_flag    IN VARCHAR2
34010   p_application_id        IN NUMBER
34011  ,p_event_id              IN NUMBER
34012  ,p_calculate_acctd_flag  IN VARCHAR2
34014  ,p_actual_flag           IN OUT VARCHAR2
34015  ,p_balance_type_code     OUT VARCHAR2
34016  ,p_gain_or_loss_ref      OUT VARCHAR2
34017  
34018 --Automatic Offsets Value
34019  , p_source_3            IN VARCHAR2
34020  , p_source_3_meaning    IN VARCHAR2
34021 --Bank Cash Clearing Account
34022  , p_source_23            IN NUMBER
34023 --Accounting Reversal Indicator
34024  , p_source_41            IN VARCHAR2
34025 --Distribution Link Type
34026  , p_source_43            IN VARCHAR2
34027 --Override Accounted Amount Indicator
34028  , p_source_68            IN VARCHAR2
34029  , p_source_68_meaning    IN VARCHAR2
34030 --Third Party Type
34031  , p_source_71            IN VARCHAR2
34032 --Invoice Distribution Tax Line Identifier
34033  , p_source_74            IN NUMBER
34034 --Invoice Distribution Tax Distribution Identifier from Tax
34035  , p_source_75            IN NUMBER
34036 --Invoice Distribution Summary Tax Line Identifier
34037  , p_source_76            IN NUMBER
34038 --Business Flow Accounts Payable Application Identifier
34039  , p_source_79            IN NUMBER
34040 --Business Flow Invoice Distribution Type
34041  , p_source_80            IN VARCHAR2
34042 --Business Flow Invoice Entity Code
34043  , p_source_81            IN VARCHAR2
34044 --Business Flow Invoice Distribution Identifier
34045  , p_source_82            IN NUMBER
34046 --Business Flow Invoice Identifier
34047  , p_source_83            IN NUMBER
34048 --When to Account for Payment Option
34049  , p_source_89            IN VARCHAR2
34050 --Payment Distribution Type
34051  , p_source_90            IN VARCHAR2
34052  , p_source_90_meaning    IN VARCHAR2
34053 --Payment Distribution Amount
34054  , p_source_91            IN NUMBER
34055 --Payment Distribution Identifier
34056  , p_source_96            IN NUMBER
34057 --Payment Supplier Identifier
34058  , p_source_102            IN NUMBER
34059 --Payment Supplier Site Identifier
34060  , p_source_103            IN NUMBER
34061 --Payment Distribution Reversed Identifier
34062  , p_source_104            IN NUMBER
34063 --Pooled Bank Account Option
34064  , p_source_105            IN VARCHAR2
34065  , p_source_105_meaning    IN VARCHAR2
34066 --Payment Currency Code
34067  , p_source_106            IN VARCHAR2
34068 --Payment Maturity Date
34069  , p_source_107            IN DATE
34070 --Payment Distribution (Payment Rate) Ledger Amount
34071  , p_source_108            IN NUMBER
34072 --Payment Exchange Date
34073  , p_source_110            IN DATE
34074 --Payment Exchange Rate
34075  , p_source_111            IN NUMBER
34076 --Payment Exchange Rate Type
34077  , p_source_112            IN VARCHAR2
34078 --Payment Type
34079  , p_source_115            IN VARCHAR2
34080  , p_source_115_meaning    IN VARCHAR2
34081 )
34082 IS
34083 
34084 l_component_type              VARCHAR2(80);
34085 l_component_code              VARCHAR2(30);
34086 l_component_type_code         VARCHAR2(1);
34087 l_component_appl_id           INTEGER;
34088 l_amb_context_code            VARCHAR2(30);
34089 l_entity_code                 VARCHAR2(30);
34090 l_event_class_code            VARCHAR2(30);
34091 l_ae_header_id                NUMBER;
34092 l_event_type_code             VARCHAR2(30);
34093 l_line_definition_code        VARCHAR2(30);
34094 l_line_definition_owner_code  VARCHAR2(1);
34095 --
34096 -- adr variables
34097 l_segment                     VARCHAR2(30);
34098 l_ccid                        NUMBER;
34099 l_adr_transaction_coa_id      NUMBER;
34100 l_adr_accounting_coa_id       NUMBER;
34101 l_adr_flexfield_segment_code  VARCHAR2(30);
34102 l_adr_flex_value_set_id       NUMBER;
34103 l_adr_value_type_code         VARCHAR2(30);
34104 l_adr_value_combination_id    NUMBER;
34105 l_adr_value_segment_code      VARCHAR2(30);
34106 
34107 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
34108 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
34109 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
34110 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
34111 
34112 -- 4262811 Variables ------------------------------------------------------------------------------------------
34113 l_entered_amt_idx             NUMBER;
34114 l_accted_amt_idx              NUMBER;
34115 l_acc_rev_flag                VARCHAR2(1);
34116 l_accrual_line_num            NUMBER;
34117 l_tmp_amt                     NUMBER;
34118 l_acc_rev_natural_side_code   VARCHAR2(1);
34119 
34120 l_num_entries                 NUMBER;
34121 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
34122 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
34123 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
34124 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
34125 l_recog_line_1                NUMBER;
34126 l_recog_line_2                NUMBER;
34127 
34128 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
34129 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
34130 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
34131 
34132 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34133 
34134 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
34135 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
34136 
34137 ---------------------------------------------------------------------------------------------------------------
34138 
34139 
34140 --
34144 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
34141 -- bulk performance
34142 --
34143 l_balance_type_code           VARCHAR2(1);
34145 l_log_module                  VARCHAR2(240);
34146 
34147 --
34148 -- Upgrade strategy
34149 --
34150 l_actual_upg_option           VARCHAR2(1);
34151 l_enc_upg_option           VARCHAR2(1);
34152 
34153 --
34154 BEGIN
34155 --
34156 IF g_log_enabled THEN
34157       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_84';
34158 END IF;
34159 --
34160 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34161 
34162       trace
34163          (p_msg      => 'BEGIN of AcctLineType_84'
34164          ,p_level    => C_LEVEL_PROCEDURE
34165          ,p_module   => l_log_module);
34166 
34167 END IF;
34168 --
34169 l_component_type             := 'AMB_JLT';
34170 l_component_code             := 'AP_CASH_CLEAR_REF_AOS_AS';
34171 l_component_type_code        := 'S';
34172 l_component_appl_id          :=  200;
34173 l_amb_context_code           := 'DEFAULT';
34174 l_entity_code                := 'AP_PAYMENTS';
34175 l_event_class_code           := 'REFUNDS';
34176 l_event_type_code            := 'REFUNDS_ALL';
34177 l_line_definition_owner_code := 'S';
34178 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
34179 --
34180 l_balance_type_code          := 'A';
34181 l_segment                     := NULL;
34182 l_ccid                        := NULL;
34183 l_adr_transaction_coa_id      := NULL;
34184 l_adr_accounting_coa_id       := NULL;
34185 l_adr_flexfield_segment_code  := NULL;
34186 l_adr_flex_value_set_id       := NULL;
34187 l_adr_value_type_code         := NULL;
34188 l_adr_value_combination_id    := NULL;
34189 l_adr_value_segment_code      := NULL;
34190 
34191 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
34192 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
34193 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
34194 l_budgetary_control_flag     := 'N';
34195 
34196 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
34197 l_bflow_applied_to_amt       := NULL; -- 5132302
34198 l_entered_amt_idx            := NULL;          -- 4262811
34199 l_accted_amt_idx             := NULL;          -- 4262811
34200 l_acc_rev_flag               := NULL;          -- 4262811
34201 l_accrual_line_num           := NULL;          -- 4262811
34202 l_tmp_amt                    := NULL;          -- 4262811
34203 --
34204  
34205 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34206     l_balance_type_code <> 'B' THEN
34207 IF NVL(p_source_89,'
34208 ') =  'ALWAYS_ALWAYS' AND 
34209 (NVL(p_source_105,'
34210 ') =  'Y' AND 
34211 NVL(p_source_3,'
34212 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
34213 p_source_107 IS NULL AND 
34214 NVL(p_source_90,'
34215 ') =  'CASH' AND 
34216 NVL(p_source_115,'
34217 ') =  'R'
34218  THEN 
34219 
34220    --
34221    XLA_AE_LINES_PKG.SetNewLine;
34222 
34223    p_balance_type_code          := l_balance_type_code;
34224    -- set the flag so later we will know whether the gain loss line needs to be created
34225    
34226    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34227      p_actual_flag :='A';
34228    END IF;
34229 
34230    --
34231    -- bulk performance
34232    --
34233    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34234                                       p_header_num   => 0); -- 4262811
34235    --
34236    -- set accounting line options
34237    --
34238    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34239            p_natural_side_code          => 'C'
34240          , p_gain_or_loss_flag          => 'N'
34241          , p_gl_transfer_mode_code      => 'S'
34242          , p_acct_entry_type_code       => 'A'
34243          , p_switch_side_flag           => 'Y'
34244          , p_merge_duplicate_code       => 'A'
34245          );
34246    --
34247    l_acc_rev_natural_side_code := 'D';  -- 4262811
34248    -- 
34249    --
34250    -- set accounting line type info
34251    --
34252    xla_ae_lines_pkg.SetAcctLineType
34253       (p_component_type             => l_component_type
34254       ,p_event_type_code            => l_event_type_code
34255       ,p_line_definition_owner_code => l_line_definition_owner_code
34256       ,p_line_definition_code       => l_line_definition_code
34257       ,p_accounting_line_code       => l_component_code
34258       ,p_accounting_line_type_code  => l_component_type_code
34259       ,p_accounting_line_appl_id    => l_component_appl_id
34260       ,p_amb_context_code           => l_amb_context_code
34261       ,p_entity_code                => l_entity_code
34262       ,p_event_class_code           => l_event_class_code);
34263    --
34264    -- set accounting class
34265    --
34266    xla_ae_lines_pkg.SetAcctClass(
34267            p_accounting_class_code  => 'CASH_CLEARING'
34268          , p_ae_header_id           => l_ae_header_id
34269          );
34270 
34271    --
34272    -- set rounding class
34273    --
34274    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34275                       'CASH_CLEARING';
34276 
34277    --
34278    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34279    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34280    --
34281    -- bulk performance
34282    --
34283    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34284 
34288    -- 4955764
34285    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34286       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34287 
34289    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34290       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34291 
34292    -- 4458381 Public Sector Enh
34293    
34294    --
34295    -- set accounting attributes for the line type
34296    --
34297    l_entered_amt_idx := 9;
34298    l_accted_amt_idx  := 14;
34299    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
34300    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34301    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
34302    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
34303    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
34304    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
34305    l_rec_acct_attrs.array_char_value(3)  := p_source_80;
34306    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
34307    l_rec_acct_attrs.array_char_value(4)  := p_source_81;
34308    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
34309    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
34310    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
34311    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
34312    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
34313    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
34314    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
34315    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
34316    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
34317    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
34318    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
34319    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
34320    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
34321    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
34322    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
34323    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
34324    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
34325    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
34326    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
34327    l_rec_acct_attrs.array_num_value(14)  := p_source_108;
34328    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
34329    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
34330    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
34331    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
34332    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
34333    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
34334    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
34335    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
34336    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
34337    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
34338    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
34339    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
34340    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
34341    l_rec_acct_attrs.array_num_value(21)  := p_source_74;
34342    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
34343    l_rec_acct_attrs.array_num_value(22)  := p_source_75;
34344    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
34345    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
34346 
34347    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34348    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34349 
34350    ---------------------------------------------------------------------------------------------------------------
34351    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34352    ---------------------------------------------------------------------------------------------------------------
34353    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34354 
34355    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34356    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34357 
34358    IF xla_accounting_cache_pkg.GetValueChar
34359          (p_source_code         => 'LEDGER_CATEGORY_CODE'
34360          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34361    AND l_bflow_method_code = 'PRIOR_ENTRY'
34362 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34363    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34364          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34365        )
34366    THEN
34367          xla_ae_lines_pkg.BflowUpgEntry
34368            (p_business_method_code    => l_bflow_method_code
34369            ,p_business_class_code     => l_bflow_class_code
34370            ,p_balance_type            => l_balance_type_code);
34371    ELSE
34372       NULL;
34373 XLA_AE_LINES_PKG.business_flow_validation(
34374                                 p_business_method_code     => l_bflow_method_code
34375                                ,p_business_class_code      => l_bflow_class_code
34376                                ,p_inherit_description_flag => l_inherit_desc_flag);
34377    END IF;
34378 
34379    --
34380    -- call analytical criteria
34381    --
34382    
34383    --
34384    -- call description
34385    --
34386    -- No description or it is inherited.
34390    --
34387    --
34388    -- call ADRs
34389    -- Bug 4922099
34391    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34392         (NVL(l_actual_upg_option, 'N') = 'O') OR
34393         (NVL(l_enc_upg_option, 'N') = 'O')
34394       )
34395    THEN
34396    NULL;
34397    --
34398    --
34399    
34400    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
34401      p_code_combination_id      => TO_NUMBER(C_NUM)
34402    , p_value_type_code          => NULL
34403    , p_transaction_coa_id       => null
34404    , p_accounting_coa_id        => null
34405    , p_adr_code                 => NULL
34406    , p_adr_type_code            => NULL
34407    , p_component_type           => l_component_type
34408    , p_component_code           => l_component_code
34409    , p_component_type_code      => l_component_type_code
34410    , p_component_appl_id        => l_component_appl_id
34411    , p_amb_context_code         => l_amb_context_code
34412    , p_side                     => NULL
34413    );
34414 
34415    
34416   -- initialise segments
34417   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34418   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34419   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34420   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34421   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34422   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34423   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34424   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34425   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34426   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34427   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34428   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34429   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34430   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34431   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34432   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34433   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34434   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34435   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34436   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34437   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34438   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34439   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34440   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34441   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34442   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34443   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34444   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34445   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34446   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34447   --
34448 
34449    --
34450 
34451 
34452    l_segment := AcctDerRule_15(
34453            p_application_id           => p_application_id
34454          , p_ae_header_id             => l_ae_header_id 
34455 , p_source_23 => p_source_23
34456          , x_transaction_coa_id       => l_adr_transaction_coa_id
34457          , x_accounting_coa_id        => l_adr_accounting_coa_id
34458          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
34459          , x_flex_value_set_id        => l_adr_flex_value_set_id
34460          , x_value_type_code          => l_adr_value_type_code
34461          , x_value_combination_id     => l_adr_value_combination_id
34462          , x_value_segment_code       => l_adr_value_segment_code
34463          , p_side                     => 'NA'
34464          , p_override_seg_flag        => 'Y'
34465    );
34466 
34467    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
34468 
34469       xla_ae_lines_pkg.set_segment(
34470           p_to_segment_code         => 'GL_ACCOUNT'
34471         , p_segment_value           => l_segment
34472         , p_from_segment_code       => l_adr_value_segment_code
34473         , p_from_combination_id     => l_adr_value_combination_id
34474         , p_value_type_code         => l_adr_value_type_code
34475         , p_transaction_coa_id      => l_adr_transaction_coa_id
34476         , p_accounting_coa_id       => l_adr_accounting_coa_id
34477         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
34478         , p_flex_value_set_id       => l_adr_flex_value_set_id
34479         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
34480         , p_adr_type_code           => 'S'
34481         , p_component_type          => l_component_type
34482         , p_component_code          => l_component_code
34483         , p_component_type_code     => l_component_type_code
34484         , p_component_appl_id       => l_component_appl_id
34485         , p_amb_context_code        => l_amb_context_code
34486         , p_entity_code             => 'AP_PAYMENTS'
34487         , p_event_class_code        => 'REFUNDS'
34488         , p_side                    => 'NA'
34489         );
34493    --
34490 
34491   END IF;
34492 
34494    --
34495    END IF;
34496    --
34497    -- Bug 4922099
34498    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34499           (NVL(l_enc_upg_option, 'N') = 'O')
34500         ) AND
34501         (l_bflow_method_code = 'PRIOR_ENTRY')
34502       )
34503    THEN
34504       IF
34505       --
34506       1 = 2
34507       --
34508       THEN
34509       xla_accounting_err_pkg.build_message
34510                                     (p_appli_s_name            => 'XLA'
34511                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34512                                     ,p_token_1                 => 'LINE_NUMBER'
34513                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
34514                                     ,p_token_2                 => 'LINE_TYPE_NAME'
34515                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
34516                                                                              l_component_type
34517                                                                             ,l_component_code
34518                                                                             ,l_component_type_code
34519                                                                             ,l_component_appl_id
34520                                                                             ,l_amb_context_code
34521                                                                             ,l_entity_code
34522                                                                             ,l_event_class_code
34523                                                                            )
34524                                     ,p_token_3                 => 'OWNER'
34525                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
34526                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
34527                                                                           ,p_lookup_code    => l_component_type_code
34528                                                                          )
34529                                     ,p_token_4                 => 'PRODUCT_NAME'
34530                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34531                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34532                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34533                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34534                                     ,p_ae_header_id            =>  NULL
34535                                        );
34536 
34537         IF (C_LEVEL_ERROR>= g_log_level) THEN
34538                  trace
34539                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34540                       ,p_level    => C_LEVEL_ERROR
34541                       ,p_module   => l_log_module);
34542         END IF;
34543       END IF;
34544    END IF;
34545    --
34546    --
34547    ------------------------------------------------------------------------------------------------
34548    -- 4219869 Business Flow
34549    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34550    -- Prior Entry.  Currently, the following code is always generated.
34551    ------------------------------------------------------------------------------------------------
34552    XLA_AE_LINES_PKG.ValidateCurrentLine;
34553 
34554    ------------------------------------------------------------------------------------
34555    -- 4219869 Business Flow
34556    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34557    ------------------------------------------------------------------------------------
34558    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34559 
34560    ----------------------------------------------------------------------------------
34561    -- 4219869 Business Flow
34562    -- Update journal entry status -- Need to generate this within IF <condition>
34563    ----------------------------------------------------------------------------------
34564    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34565          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34566          ,p_balance_type_code => l_balance_type_code
34567          );
34568 
34569    -------------------------------------------------------------------------------------------
34570    -- 4262811 - Generate the Accrual Reversal lines
34571    -------------------------------------------------------------------------------------------
34572    BEGIN
34573       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34574                               (g_array_event(p_event_id).array_value_num('header_index'));
34575       IF l_acc_rev_flag IS NULL THEN
34576          l_acc_rev_flag := 'N';
34577       END IF;
34578    EXCEPTION
34579       WHEN OTHERS THEN
34580          l_acc_rev_flag := 'N';
34581    END;
34582    --
34583    IF (l_acc_rev_flag = 'Y') THEN
34584 
34585        -- 4645092  ------------------------------------------------------------------------------
34586        -- To allow MPA report to determine if it should generate report process
34587        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34588        ------------------------------------------------------------------------------------------
34589 
34590        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34591        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34592    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
34593    -- call ADRs
34597         (NVL(l_actual_upg_option, 'N') = 'O') OR
34594    -- Bug 4922099
34595    --
34596    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34598         (NVL(l_enc_upg_option, 'N') = 'O')
34599       )
34600    THEN
34601    NULL;
34602    --
34603    --
34604    
34605    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
34606      p_code_combination_id      => TO_NUMBER(C_NUM)
34607    , p_value_type_code          => NULL
34608    , p_transaction_coa_id       => null
34609    , p_accounting_coa_id        => null
34610    , p_adr_code                 => NULL
34611    , p_adr_type_code            => NULL
34612    , p_component_type           => l_component_type
34613    , p_component_code           => l_component_code
34614    , p_component_type_code      => l_component_type_code
34615    , p_component_appl_id        => l_component_appl_id
34616    , p_amb_context_code         => l_amb_context_code
34617    , p_side                     => NULL
34618    );
34619 
34620    
34621   -- initialise segments
34622   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34623   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34624   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34625   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34626   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34627   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34628   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34629   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34630   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34631   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34632   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34633   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34634   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34635   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34636   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34637   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34638   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34639   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34640   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34641   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34642   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34643   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34644   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34645   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34646   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34647   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34648   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34649   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34650   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34651   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34652   --
34653 
34654    --
34655 
34656 
34657    l_segment := AcctDerRule_15(
34658            p_application_id           => p_application_id
34659          , p_ae_header_id             => l_ae_header_id 
34660 , p_source_23 => p_source_23
34661          , x_transaction_coa_id       => l_adr_transaction_coa_id
34662          , x_accounting_coa_id        => l_adr_accounting_coa_id
34663          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
34664          , x_flex_value_set_id        => l_adr_flex_value_set_id
34665          , x_value_type_code          => l_adr_value_type_code
34666          , x_value_combination_id     => l_adr_value_combination_id
34667          , x_value_segment_code       => l_adr_value_segment_code
34668          , p_side                     => 'NA'
34669          , p_override_seg_flag        => 'Y'
34670    );
34671 
34672    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
34673 
34674       xla_ae_lines_pkg.set_segment(
34675           p_to_segment_code         => 'GL_ACCOUNT'
34676         , p_segment_value           => l_segment
34677         , p_from_segment_code       => l_adr_value_segment_code
34678         , p_from_combination_id     => l_adr_value_combination_id
34679         , p_value_type_code         => l_adr_value_type_code
34680         , p_transaction_coa_id      => l_adr_transaction_coa_id
34681         , p_accounting_coa_id       => l_adr_accounting_coa_id
34682         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
34683         , p_flex_value_set_id       => l_adr_flex_value_set_id
34684         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
34685         , p_adr_type_code           => 'S'
34686         , p_component_type          => l_component_type
34687         , p_component_code          => l_component_code
34688         , p_component_type_code     => l_component_type_code
34689         , p_component_appl_id       => l_component_appl_id
34690         , p_amb_context_code        => l_amb_context_code
34691         , p_entity_code             => 'AP_PAYMENTS'
34692         , p_event_class_code        => 'REFUNDS'
34693         , p_side                    => 'NA'
34694         );
34695 
34699    --
34696   END IF;
34697 
34698    --
34700    END IF;
34701 
34702        --
34703        -- Update the line information that should be overwritten
34704        --
34705        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34706                                          p_header_num   => 1);
34707        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
34708 
34709        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34710 
34711        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
34712           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34713        END IF;
34714 
34715       --
34716       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34717       --
34718       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34719           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
34720       ELSE
34721           ---------------------------------------------------------------------------------------------------
34722           -- 4262811a Switch Sign
34723           ---------------------------------------------------------------------------------------------------
34724           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
34725           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34726                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34727           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34728                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34729           -- 5132302
34730           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34731                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34732 
34733       END IF;
34734 
34735       -- 4955764
34736       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34737       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34738 
34739 
34740       XLA_AE_LINES_PKG.ValidateCurrentLine;
34741       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34742 
34743       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34744                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34745                ,p_balance_type_code => l_balance_type_code);
34746 
34747    END IF;
34748 
34749    -----------------------------------------------------------------------------------------
34750    -- 4262811 Multiperiod Accounting
34751    -----------------------------------------------------------------------------------------
34752      -- No MPA option is assigned.
34753 
34754 
34755 END IF;
34756 END IF;
34757 --
34758 
34759 --
34760 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34761    trace
34762       (p_msg      => 'END of AcctLineType_84'
34763       ,p_level    => C_LEVEL_PROCEDURE
34764       ,p_module   => l_log_module);
34765 END IF;
34766 --
34767 EXCEPTION
34768   WHEN xla_exceptions_pkg.application_exception THEN
34769       RAISE;
34770   WHEN OTHERS THEN
34771        xla_exceptions_pkg.raise_message
34772            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_84');
34773 END AcctLineType_84;
34774 --
34775 
34776 ---------------------------------------
34777 --
34778 -- PRIVATE FUNCTION
34779 --         AcctLineType_85
34780 --
34781 ---------------------------------------
34782 PROCEDURE AcctLineType_85 (
34783   p_application_id        IN NUMBER
34784  ,p_event_id              IN NUMBER
34785  ,p_calculate_acctd_flag  IN VARCHAR2
34786  ,p_calculate_g_l_flag    IN VARCHAR2
34787  ,p_actual_flag           IN OUT VARCHAR2
34788  ,p_balance_type_code     OUT VARCHAR2
34789  ,p_gain_or_loss_ref      OUT VARCHAR2
34790  
34791 --Automatic Offsets Value
34792  , p_source_3            IN VARCHAR2
34793  , p_source_3_meaning    IN VARCHAR2
34794 --Bank Cash Clearing Account
34795  , p_source_23            IN NUMBER
34796 --Accounting Reversal Indicator
34797  , p_source_41            IN VARCHAR2
34798 --Distribution Link Type
34799  , p_source_43            IN VARCHAR2
34800 --Override Accounted Amount Indicator
34801  , p_source_68            IN VARCHAR2
34802  , p_source_68_meaning    IN VARCHAR2
34803 --Third Party Type
34804  , p_source_71            IN VARCHAR2
34805 --Invoice Distribution Tax Line Identifier
34806  , p_source_74            IN NUMBER
34807 --Invoice Distribution Tax Distribution Identifier from Tax
34808  , p_source_75            IN NUMBER
34809 --Invoice Distribution Summary Tax Line Identifier
34810  , p_source_76            IN NUMBER
34811 --Business Flow Accounts Payable Application Identifier
34812  , p_source_79            IN NUMBER
34813 --Business Flow Invoice Distribution Type
34814  , p_source_80            IN VARCHAR2
34815 --Business Flow Invoice Entity Code
34816  , p_source_81            IN VARCHAR2
34817 --Business Flow Invoice Distribution Identifier
34818  , p_source_82            IN NUMBER
34819 --Business Flow Invoice Identifier
34820  , p_source_83            IN NUMBER
34821 --When to Account for Payment Option
34822  , p_source_89            IN VARCHAR2
34823 --Payment Distribution Type
34824  , p_source_90            IN VARCHAR2
34825  , p_source_90_meaning    IN VARCHAR2
34829  , p_source_96            IN NUMBER
34826 --Payment Distribution Amount
34827  , p_source_91            IN NUMBER
34828 --Payment Distribution Identifier
34830 --Payment Supplier Identifier
34831  , p_source_102            IN NUMBER
34832 --Payment Supplier Site Identifier
34833  , p_source_103            IN NUMBER
34834 --Payment Distribution Reversed Identifier
34835  , p_source_104            IN NUMBER
34836 --Pooled Bank Account Option
34837  , p_source_105            IN VARCHAR2
34838  , p_source_105_meaning    IN VARCHAR2
34839 --Payment Currency Code
34840  , p_source_106            IN VARCHAR2
34841 --Payment Maturity Date
34842  , p_source_107            IN DATE
34843 --Payment Distribution (Payment Rate) Ledger Amount
34844  , p_source_108            IN NUMBER
34845 --Payment Exchange Date
34846  , p_source_110            IN DATE
34847 --Payment Exchange Rate
34848  , p_source_111            IN NUMBER
34849 --Payment Exchange Rate Type
34850  , p_source_112            IN VARCHAR2
34851 --Payment Type
34852  , p_source_115            IN VARCHAR2
34853  , p_source_115_meaning    IN VARCHAR2
34854 )
34855 IS
34856 
34857 l_component_type              VARCHAR2(80);
34858 l_component_code              VARCHAR2(30);
34859 l_component_type_code         VARCHAR2(1);
34860 l_component_appl_id           INTEGER;
34861 l_amb_context_code            VARCHAR2(30);
34862 l_entity_code                 VARCHAR2(30);
34863 l_event_class_code            VARCHAR2(30);
34864 l_ae_header_id                NUMBER;
34865 l_event_type_code             VARCHAR2(30);
34866 l_line_definition_code        VARCHAR2(30);
34867 l_line_definition_owner_code  VARCHAR2(1);
34868 --
34869 -- adr variables
34870 l_segment                     VARCHAR2(30);
34871 l_ccid                        NUMBER;
34872 l_adr_transaction_coa_id      NUMBER;
34873 l_adr_accounting_coa_id       NUMBER;
34874 l_adr_flexfield_segment_code  VARCHAR2(30);
34875 l_adr_flex_value_set_id       NUMBER;
34876 l_adr_value_type_code         VARCHAR2(30);
34877 l_adr_value_combination_id    NUMBER;
34878 l_adr_value_segment_code      VARCHAR2(30);
34879 
34880 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
34881 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
34882 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
34883 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
34884 
34885 -- 4262811 Variables ------------------------------------------------------------------------------------------
34886 l_entered_amt_idx             NUMBER;
34887 l_accted_amt_idx              NUMBER;
34888 l_acc_rev_flag                VARCHAR2(1);
34889 l_accrual_line_num            NUMBER;
34890 l_tmp_amt                     NUMBER;
34891 l_acc_rev_natural_side_code   VARCHAR2(1);
34892 
34893 l_num_entries                 NUMBER;
34894 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
34895 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
34896 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
34897 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
34898 l_recog_line_1                NUMBER;
34899 l_recog_line_2                NUMBER;
34900 
34901 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
34902 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
34903 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
34904 
34905 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34906 
34907 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
34908 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
34909 
34910 ---------------------------------------------------------------------------------------------------------------
34911 
34912 
34913 --
34914 -- bulk performance
34915 --
34916 l_balance_type_code           VARCHAR2(1);
34917 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
34918 l_log_module                  VARCHAR2(240);
34919 
34920 --
34921 -- Upgrade strategy
34922 --
34923 l_actual_upg_option           VARCHAR2(1);
34924 l_enc_upg_option           VARCHAR2(1);
34925 
34926 --
34927 BEGIN
34928 --
34929 IF g_log_enabled THEN
34930       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_85';
34931 END IF;
34932 --
34933 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34934 
34935       trace
34936          (p_msg      => 'BEGIN of AcctLineType_85'
34937          ,p_level    => C_LEVEL_PROCEDURE
34938          ,p_module   => l_log_module);
34939 
34940 END IF;
34941 --
34942 l_component_type             := 'AMB_JLT';
34943 l_component_code             := 'AP_CASH_CLEAR_REF_AOS_BS';
34944 l_component_type_code        := 'S';
34945 l_component_appl_id          :=  200;
34946 l_amb_context_code           := 'DEFAULT';
34947 l_entity_code                := 'AP_PAYMENTS';
34948 l_event_class_code           := 'REFUNDS';
34949 l_event_type_code            := 'REFUNDS_ALL';
34950 l_line_definition_owner_code := 'S';
34951 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
34952 --
34953 l_balance_type_code          := 'A';
34954 l_segment                     := NULL;
34955 l_ccid                        := NULL;
34956 l_adr_transaction_coa_id      := NULL;
34957 l_adr_accounting_coa_id       := NULL;
34958 l_adr_flexfield_segment_code  := NULL;
34959 l_adr_flex_value_set_id       := NULL;
34960 l_adr_value_type_code         := NULL;
34961 l_adr_value_combination_id    := NULL;
34962 l_adr_value_segment_code      := NULL;
34963 
34964 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
34965 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
34966 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
34967 l_budgetary_control_flag     := 'N';
34968 
34969 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
34970 l_bflow_applied_to_amt       := NULL; -- 5132302
34971 l_entered_amt_idx            := NULL;          -- 4262811
34972 l_accted_amt_idx             := NULL;          -- 4262811
34973 l_acc_rev_flag               := NULL;          -- 4262811
34974 l_accrual_line_num           := NULL;          -- 4262811
34975 l_tmp_amt                    := NULL;          -- 4262811
34976 --
34977  
34978 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34979     l_balance_type_code <> 'B' THEN
34980 IF NVL(p_source_89,'
34981 ') =  'ALWAYS_ALWAYS' AND 
34982 (NVL(p_source_105,'
34983 ') =  'Y' AND 
34984 NVL(p_source_3,'
34985 ') =  'BALANCING_SEGMENT') AND 
34986 p_source_107 IS NULL AND 
34987 NVL(p_source_90,'
34988 ') =  'CASH' AND 
34989 NVL(p_source_115,'
34990 ') =  'R'
34991  THEN 
34992 
34993    --
34994    XLA_AE_LINES_PKG.SetNewLine;
34995 
34996    p_balance_type_code          := l_balance_type_code;
34997    -- set the flag so later we will know whether the gain loss line needs to be created
34998    
34999    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35000      p_actual_flag :='A';
35001    END IF;
35002 
35003    --
35004    -- bulk performance
35005    --
35006    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35007                                       p_header_num   => 0); -- 4262811
35008    --
35009    -- set accounting line options
35010    --
35011    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35012            p_natural_side_code          => 'C'
35013          , p_gain_or_loss_flag          => 'N'
35014          , p_gl_transfer_mode_code      => 'S'
35015          , p_acct_entry_type_code       => 'A'
35016          , p_switch_side_flag           => 'Y'
35017          , p_merge_duplicate_code       => 'A'
35018          );
35019    --
35020    l_acc_rev_natural_side_code := 'D';  -- 4262811
35021    -- 
35022    --
35023    -- set accounting line type info
35024    --
35025    xla_ae_lines_pkg.SetAcctLineType
35026       (p_component_type             => l_component_type
35027       ,p_event_type_code            => l_event_type_code
35028       ,p_line_definition_owner_code => l_line_definition_owner_code
35029       ,p_line_definition_code       => l_line_definition_code
35030       ,p_accounting_line_code       => l_component_code
35031       ,p_accounting_line_type_code  => l_component_type_code
35032       ,p_accounting_line_appl_id    => l_component_appl_id
35033       ,p_amb_context_code           => l_amb_context_code
35034       ,p_entity_code                => l_entity_code
35035       ,p_event_class_code           => l_event_class_code);
35036    --
35037    -- set accounting class
35038    --
35039    xla_ae_lines_pkg.SetAcctClass(
35040            p_accounting_class_code  => 'CASH_CLEARING'
35041          , p_ae_header_id           => l_ae_header_id
35042          );
35043 
35044    --
35045    -- set rounding class
35046    --
35047    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35048                       'CASH_CLEARING';
35049 
35050    --
35051    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35052    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35053    --
35054    -- bulk performance
35055    --
35056    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35057 
35058    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35059       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35060 
35061    -- 4955764
35062    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35063       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35064 
35065    -- 4458381 Public Sector Enh
35066    
35067    --
35068    -- set accounting attributes for the line type
35069    --
35070    l_entered_amt_idx := 9;
35071    l_accted_amt_idx  := 14;
35072    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
35076    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
35073    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35074    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
35075    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
35077    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35078    l_rec_acct_attrs.array_char_value(3)  := p_source_80;
35079    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
35080    l_rec_acct_attrs.array_char_value(4)  := p_source_81;
35081    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
35082    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
35083    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35084    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
35085    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
35086    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
35087    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
35088    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
35089    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
35090    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
35091    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
35092    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
35093    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
35094    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
35095    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
35096    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
35097    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
35098    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
35099    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
35100    l_rec_acct_attrs.array_num_value(14)  := p_source_108;
35101    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
35102    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
35103    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
35104    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
35105    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
35106    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
35107    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
35108    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
35109    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
35110    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
35111    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
35112    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
35113    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
35114    l_rec_acct_attrs.array_num_value(21)  := p_source_74;
35115    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
35116    l_rec_acct_attrs.array_num_value(22)  := p_source_75;
35117    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
35118    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
35119 
35120    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35121    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35122 
35123    ---------------------------------------------------------------------------------------------------------------
35124    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35125    ---------------------------------------------------------------------------------------------------------------
35126    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35127 
35128    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35129    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35130 
35131    IF xla_accounting_cache_pkg.GetValueChar
35132          (p_source_code         => 'LEDGER_CATEGORY_CODE'
35133          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35134    AND l_bflow_method_code = 'PRIOR_ENTRY'
35135 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35136    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35137          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35138        )
35139    THEN
35140          xla_ae_lines_pkg.BflowUpgEntry
35141            (p_business_method_code    => l_bflow_method_code
35142            ,p_business_class_code     => l_bflow_class_code
35143            ,p_balance_type            => l_balance_type_code);
35144    ELSE
35145       NULL;
35146 XLA_AE_LINES_PKG.business_flow_validation(
35147                                 p_business_method_code     => l_bflow_method_code
35148                                ,p_business_class_code      => l_bflow_class_code
35149                                ,p_inherit_description_flag => l_inherit_desc_flag);
35150    END IF;
35151 
35152    --
35153    -- call analytical criteria
35154    --
35155    
35156    --
35157    -- call description
35158    --
35159    -- No description or it is inherited.
35160    --
35161    -- call ADRs
35162    -- Bug 4922099
35163    --
35164    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35165         (NVL(l_actual_upg_option, 'N') = 'O') OR
35166         (NVL(l_enc_upg_option, 'N') = 'O')
35167       )
35168    THEN
35169    NULL;
35170    --
35171    --
35172    
35173   l_ccid := AcctDerRule_35(
35174            p_application_id           => p_application_id
35175          , p_ae_header_id             => l_ae_header_id 
35176 , p_source_23 => p_source_23
35180          , p_side                     => 'NA'
35177          , x_transaction_coa_id       => l_adr_transaction_coa_id
35178          , x_accounting_coa_id        => l_adr_accounting_coa_id
35179          , x_value_type_code          => l_adr_value_type_code
35181    );
35182 
35183    xla_ae_lines_pkg.set_ccid(
35184     p_code_combination_id          => l_ccid
35185   , p_value_type_code              => l_adr_value_type_code
35186   , p_transaction_coa_id           => l_adr_transaction_coa_id
35187   , p_accounting_coa_id            => l_adr_accounting_coa_id
35188   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
35189   , p_adr_type_code                => 'S'
35190   , p_component_type               => l_component_type
35191   , p_component_code               => l_component_code
35192   , p_component_type_code          => l_component_type_code
35193   , p_component_appl_id            => l_component_appl_id
35194   , p_amb_context_code             => l_amb_context_code
35195   , p_side                         => 'NA'
35196   );
35197 
35198 
35199    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
35200      p_to_segment_code         => 'GL_BALANCING'
35201    , p_segment_value           => C_CHAR
35202    , p_from_segment_code       => NULL
35203    , p_from_combination_id     => NULL
35204    , p_value_type_code         => NULL
35205    , p_transaction_coa_id      => null
35206    , p_accounting_coa_id       => null
35207    , p_flexfield_segment_code  => NULL
35208    , p_flex_value_set_id       => NULL
35209    , p_adr_code                => NULL
35210    , p_adr_type_code           => NULL
35211    , p_component_type          => l_component_type
35212    , p_component_code          => l_component_code
35213    , p_component_type_code     => l_component_type_code
35214    , p_component_appl_id       => l_component_appl_id
35215    , p_amb_context_code        => l_amb_context_code
35216    , p_entity_code             => 'AP_PAYMENTS'
35217    , p_event_class_code        => 'REFUNDS'
35218    , p_side                    => 'NA'
35219    );
35220    --
35221 
35222 
35223    --
35224    --
35225    END IF;
35226    --
35227    -- Bug 4922099
35228    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35229           (NVL(l_enc_upg_option, 'N') = 'O')
35230         ) AND
35231         (l_bflow_method_code = 'PRIOR_ENTRY')
35232       )
35233    THEN
35234       IF
35235       --
35236       1 = 2
35237       --
35238       THEN
35239       xla_accounting_err_pkg.build_message
35240                                     (p_appli_s_name            => 'XLA'
35241                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35242                                     ,p_token_1                 => 'LINE_NUMBER'
35243                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
35244                                     ,p_token_2                 => 'LINE_TYPE_NAME'
35245                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
35246                                                                              l_component_type
35247                                                                             ,l_component_code
35248                                                                             ,l_component_type_code
35249                                                                             ,l_component_appl_id
35250                                                                             ,l_amb_context_code
35251                                                                             ,l_entity_code
35252                                                                             ,l_event_class_code
35253                                                                            )
35254                                     ,p_token_3                 => 'OWNER'
35255                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
35256                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
35257                                                                           ,p_lookup_code    => l_component_type_code
35258                                                                          )
35259                                     ,p_token_4                 => 'PRODUCT_NAME'
35260                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35261                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35262                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35263                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35264                                     ,p_ae_header_id            =>  NULL
35265                                        );
35266 
35267         IF (C_LEVEL_ERROR>= g_log_level) THEN
35268                  trace
35269                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35270                       ,p_level    => C_LEVEL_ERROR
35271                       ,p_module   => l_log_module);
35272         END IF;
35273       END IF;
35274    END IF;
35275    --
35276    --
35277    ------------------------------------------------------------------------------------------------
35278    -- 4219869 Business Flow
35279    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35280    -- Prior Entry.  Currently, the following code is always generated.
35281    ------------------------------------------------------------------------------------------------
35282    XLA_AE_LINES_PKG.ValidateCurrentLine;
35283 
35284    ------------------------------------------------------------------------------------
35285    -- 4219869 Business Flow
35286    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35287    ------------------------------------------------------------------------------------
35288    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35289 
35290    ----------------------------------------------------------------------------------
35291    -- 4219869 Business Flow
35292    -- Update journal entry status -- Need to generate this within IF <condition>
35293    ----------------------------------------------------------------------------------
35294    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35295          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35296          ,p_balance_type_code => l_balance_type_code
35297          );
35298 
35299    -------------------------------------------------------------------------------------------
35300    -- 4262811 - Generate the Accrual Reversal lines
35301    -------------------------------------------------------------------------------------------
35302    BEGIN
35303       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35304                               (g_array_event(p_event_id).array_value_num('header_index'));
35305       IF l_acc_rev_flag IS NULL THEN
35306          l_acc_rev_flag := 'N';
35307       END IF;
35308    EXCEPTION
35309       WHEN OTHERS THEN
35310          l_acc_rev_flag := 'N';
35311    END;
35312    --
35313    IF (l_acc_rev_flag = 'Y') THEN
35314 
35315        -- 4645092  ------------------------------------------------------------------------------
35316        -- To allow MPA report to determine if it should generate report process
35317        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35318        ------------------------------------------------------------------------------------------
35319 
35320        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35321        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35322    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
35323    -- call ADRs
35324    -- Bug 4922099
35325    --
35326    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35327         (NVL(l_actual_upg_option, 'N') = 'O') OR
35328         (NVL(l_enc_upg_option, 'N') = 'O')
35329       )
35330    THEN
35331    NULL;
35332    --
35333    --
35334    
35335   l_ccid := AcctDerRule_35(
35336            p_application_id           => p_application_id
35337          , p_ae_header_id             => l_ae_header_id 
35338 , p_source_23 => p_source_23
35339          , x_transaction_coa_id       => l_adr_transaction_coa_id
35340          , x_accounting_coa_id        => l_adr_accounting_coa_id
35341          , x_value_type_code          => l_adr_value_type_code
35342          , p_side                     => 'NA'
35343    );
35344 
35345    xla_ae_lines_pkg.set_ccid(
35346     p_code_combination_id          => l_ccid
35347   , p_value_type_code              => l_adr_value_type_code
35348   , p_transaction_coa_id           => l_adr_transaction_coa_id
35349   , p_accounting_coa_id            => l_adr_accounting_coa_id
35350   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
35351   , p_adr_type_code                => 'S'
35352   , p_component_type               => l_component_type
35353   , p_component_code               => l_component_code
35354   , p_component_type_code          => l_component_type_code
35355   , p_component_appl_id            => l_component_appl_id
35356   , p_amb_context_code             => l_amb_context_code
35357   , p_side                         => 'NA'
35358   );
35359 
35360 
35361    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
35362      p_to_segment_code         => 'GL_BALANCING'
35363    , p_segment_value           => C_CHAR
35364    , p_from_segment_code       => NULL
35365    , p_from_combination_id     => NULL
35366    , p_value_type_code         => NULL
35367    , p_transaction_coa_id      => null
35368    , p_accounting_coa_id       => null
35369    , p_flexfield_segment_code  => NULL
35370    , p_flex_value_set_id       => NULL
35371    , p_adr_code                => NULL
35372    , p_adr_type_code           => NULL
35373    , p_component_type          => l_component_type
35374    , p_component_code          => l_component_code
35375    , p_component_type_code     => l_component_type_code
35376    , p_component_appl_id       => l_component_appl_id
35377    , p_amb_context_code        => l_amb_context_code
35378    , p_entity_code             => 'AP_PAYMENTS'
35379    , p_event_class_code        => 'REFUNDS'
35380    , p_side                    => 'NA'
35381    );
35382    --
35383 
35384 
35385    --
35386    --
35387    END IF;
35388 
35389        --
35390        -- Update the line information that should be overwritten
35391        --
35392        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35393                                          p_header_num   => 1);
35394        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
35395 
35396        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35397 
35398        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
35399           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35400        END IF;
35401 
35402       --
35403       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35404       --
35405       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35406           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
35407       ELSE
35408           ---------------------------------------------------------------------------------------------------
35409           -- 4262811a Switch Sign
35410           ---------------------------------------------------------------------------------------------------
35411           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
35412           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35413                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35414           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35415                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35416           -- 5132302
35417           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35418                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35419 
35420       END IF;
35421 
35422       -- 4955764
35423       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35424       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35425 
35426 
35427       XLA_AE_LINES_PKG.ValidateCurrentLine;
35428       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35429 
35430       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35431                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35432                ,p_balance_type_code => l_balance_type_code);
35433 
35434    END IF;
35435 
35436    -----------------------------------------------------------------------------------------
35437    -- 4262811 Multiperiod Accounting
35438    -----------------------------------------------------------------------------------------
35439      -- No MPA option is assigned.
35440 
35441 
35442 END IF;
35443 END IF;
35444 --
35445 
35446 --
35447 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35448    trace
35449       (p_msg      => 'END of AcctLineType_85'
35450       ,p_level    => C_LEVEL_PROCEDURE
35451       ,p_module   => l_log_module);
35452 END IF;
35453 --
35454 EXCEPTION
35455   WHEN xla_exceptions_pkg.application_exception THEN
35456       RAISE;
35457   WHEN OTHERS THEN
35458        xla_exceptions_pkg.raise_message
35459            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_85');
35460 END AcctLineType_85;
35461 --
35462 
35463 ---------------------------------------
35464 --
35465 -- PRIVATE FUNCTION
35466 --         AcctLineType_86
35467 --
35468 ---------------------------------------
35469 PROCEDURE AcctLineType_86 (
35470   p_application_id        IN NUMBER
35471  ,p_event_id              IN NUMBER
35472  ,p_calculate_acctd_flag  IN VARCHAR2
35473  ,p_calculate_g_l_flag    IN VARCHAR2
35474  ,p_actual_flag           IN OUT VARCHAR2
35475  ,p_balance_type_code     OUT VARCHAR2
35476  ,p_gain_or_loss_ref      OUT VARCHAR2
35477  
35478 --Automatic Offsets Value
35479  , p_source_3            IN VARCHAR2
35480  , p_source_3_meaning    IN VARCHAR2
35481 --Bank Cash Clearing Account
35482  , p_source_23            IN NUMBER
35483 --Accounting Reversal Indicator
35484  , p_source_41            IN VARCHAR2
35485 --Distribution Link Type
35486  , p_source_43            IN VARCHAR2
35487 --Override Accounted Amount Indicator
35488  , p_source_68            IN VARCHAR2
35489  , p_source_68_meaning    IN VARCHAR2
35490 --Third Party Type
35491  , p_source_71            IN VARCHAR2
35492 --Invoice Distribution Tax Line Identifier
35493  , p_source_74            IN NUMBER
35494 --Invoice Distribution Tax Distribution Identifier from Tax
35495  , p_source_75            IN NUMBER
35496 --Invoice Distribution Summary Tax Line Identifier
35497  , p_source_76            IN NUMBER
35498 --Business Flow Accounts Payable Application Identifier
35499  , p_source_79            IN NUMBER
35500 --Business Flow Invoice Distribution Type
35501  , p_source_80            IN VARCHAR2
35502 --Business Flow Invoice Entity Code
35503  , p_source_81            IN VARCHAR2
35504 --Business Flow Invoice Distribution Identifier
35505  , p_source_82            IN NUMBER
35506 --Business Flow Invoice Identifier
35507  , p_source_83            IN NUMBER
35508 --When to Account for Payment Option
35509  , p_source_89            IN VARCHAR2
35510 --Payment Distribution Type
35511  , p_source_90            IN VARCHAR2
35512  , p_source_90_meaning    IN VARCHAR2
35513 --Payment Distribution Amount
35514  , p_source_91            IN NUMBER
35515 --Payment Distribution Identifier
35516  , p_source_96            IN NUMBER
35517 --Payment Supplier Identifier
35518  , p_source_102            IN NUMBER
35519 --Payment Supplier Site Identifier
35520  , p_source_103            IN NUMBER
35521 --Payment Distribution Reversed Identifier
35522  , p_source_104            IN NUMBER
35523 --Pooled Bank Account Option
35524  , p_source_105            IN VARCHAR2
35525  , p_source_105_meaning    IN VARCHAR2
35526 --Payment Currency Code
35527  , p_source_106            IN VARCHAR2
35528 --Payment Maturity Date
35529  , p_source_107            IN DATE
35530 --Payment Distribution (Invoice Rate) Ledger Amount
35531  , p_source_109            IN NUMBER
35532 --Payment Exchange Date
35533  , p_source_110            IN DATE
35534 --Payment Exchange Rate
35535  , p_source_111            IN NUMBER
35536 --Payment Exchange Rate Type
35537  , p_source_112            IN VARCHAR2
35538 --Payment Type
35539  , p_source_115            IN VARCHAR2
35540  , p_source_115_meaning    IN VARCHAR2
35541 )
35542 IS
35543 
35544 l_component_type              VARCHAR2(80);
35545 l_component_code              VARCHAR2(30);
35546 l_component_type_code         VARCHAR2(1);
35547 l_component_appl_id           INTEGER;
35548 l_amb_context_code            VARCHAR2(30);
35549 l_entity_code                 VARCHAR2(30);
35550 l_event_class_code            VARCHAR2(30);
35551 l_ae_header_id                NUMBER;
35552 l_event_type_code             VARCHAR2(30);
35553 l_line_definition_code        VARCHAR2(30);
35554 l_line_definition_owner_code  VARCHAR2(1);
35555 --
35556 -- adr variables
35557 l_segment                     VARCHAR2(30);
35558 l_ccid                        NUMBER;
35559 l_adr_transaction_coa_id      NUMBER;
35560 l_adr_accounting_coa_id       NUMBER;
35561 l_adr_flexfield_segment_code  VARCHAR2(30);
35562 l_adr_flex_value_set_id       NUMBER;
35563 l_adr_value_type_code         VARCHAR2(30);
35564 l_adr_value_combination_id    NUMBER;
35565 l_adr_value_segment_code      VARCHAR2(30);
35566 
35567 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
35568 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
35569 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
35570 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
35571 
35572 -- 4262811 Variables ------------------------------------------------------------------------------------------
35573 l_entered_amt_idx             NUMBER;
35574 l_accted_amt_idx              NUMBER;
35575 l_acc_rev_flag                VARCHAR2(1);
35576 l_accrual_line_num            NUMBER;
35577 l_tmp_amt                     NUMBER;
35578 l_acc_rev_natural_side_code   VARCHAR2(1);
35579 
35580 l_num_entries                 NUMBER;
35581 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
35582 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
35583 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
35584 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
35585 l_recog_line_1                NUMBER;
35586 l_recog_line_2                NUMBER;
35587 
35588 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
35589 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
35590 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
35591 
35592 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35593 
35594 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
35595 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
35596 
35597 ---------------------------------------------------------------------------------------------------------------
35598 
35599 
35600 --
35601 -- bulk performance
35602 --
35603 l_balance_type_code           VARCHAR2(1);
35604 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
35605 l_log_module                  VARCHAR2(240);
35606 
35607 --
35608 -- Upgrade strategy
35609 --
35610 l_actual_upg_option           VARCHAR2(1);
35611 l_enc_upg_option           VARCHAR2(1);
35612 
35613 --
35614 BEGIN
35615 --
35616 IF g_log_enabled THEN
35617       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_86';
35618 END IF;
35619 --
35620 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35621 
35622       trace
35623          (p_msg      => 'BEGIN of AcctLineType_86'
35624          ,p_level    => C_LEVEL_PROCEDURE
35625          ,p_module   => l_log_module);
35626 
35627 END IF;
35628 --
35629 l_component_type             := 'AMB_JLT';
35630 l_component_code             := 'AP_CASH_CLEAR_REF_AS_INVXRATE';
35631 l_component_type_code        := 'S';
35632 l_component_appl_id          :=  200;
35633 l_amb_context_code           := 'DEFAULT';
35634 l_entity_code                := 'AP_PAYMENTS';
35635 l_event_class_code           := 'REFUNDS';
35636 l_event_type_code            := 'REFUNDS_ALL';
35637 l_line_definition_owner_code := 'S';
35638 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
35639 --
35640 l_balance_type_code          := 'A';
35641 l_segment                     := NULL;
35642 l_ccid                        := NULL;
35643 l_adr_transaction_coa_id      := NULL;
35644 l_adr_accounting_coa_id       := NULL;
35645 l_adr_flexfield_segment_code  := NULL;
35646 l_adr_flex_value_set_id       := NULL;
35647 l_adr_value_type_code         := NULL;
35648 l_adr_value_combination_id    := NULL;
35649 l_adr_value_segment_code      := NULL;
35650 
35651 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
35652 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
35653 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
35654 l_budgetary_control_flag     := 'N';
35655 
35656 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
35657 l_bflow_applied_to_amt       := NULL; -- 5132302
35658 l_entered_amt_idx            := NULL;          -- 4262811
35659 l_accted_amt_idx             := NULL;          -- 4262811
35660 l_acc_rev_flag               := NULL;          -- 4262811
35661 l_accrual_line_num           := NULL;          -- 4262811
35662 l_tmp_amt                    := NULL;          -- 4262811
35663 --
35664  
35665 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35666     l_balance_type_code <> 'B' THEN
35667 IF NVL(p_source_89,'
35668 ') =  'ALWAYS_CLEAR' AND 
35669 (NVL(p_source_105,'
35670 ') =  'Y' AND 
35671 NVL(p_source_3,'
35672 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
35673 p_source_107 IS NULL AND 
35674 NVL(p_source_90,'
35675 ') =  'CASH' AND 
35676 NVL(p_source_115,'
35677 ') =  'R'
35678  THEN 
35679 
35680    --
35681    XLA_AE_LINES_PKG.SetNewLine;
35682 
35683    p_balance_type_code          := l_balance_type_code;
35684    -- set the flag so later we will know whether the gain loss line needs to be created
35685    
35686    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35687      p_actual_flag :='A';
35688    END IF;
35689 
35690    --
35691    -- bulk performance
35692    --
35693    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35694                                       p_header_num   => 0); -- 4262811
35695    --
35696    -- set accounting line options
35697    --
35698    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35699            p_natural_side_code          => 'C'
35700          , p_gain_or_loss_flag          => 'N'
35701          , p_gl_transfer_mode_code      => 'S'
35702          , p_acct_entry_type_code       => 'A'
35703          , p_switch_side_flag           => 'Y'
35704          , p_merge_duplicate_code       => 'A'
35705          );
35706    --
35707    l_acc_rev_natural_side_code := 'D';  -- 4262811
35708    -- 
35709    --
35710    -- set accounting line type info
35711    --
35712    xla_ae_lines_pkg.SetAcctLineType
35713       (p_component_type             => l_component_type
35714       ,p_event_type_code            => l_event_type_code
35715       ,p_line_definition_owner_code => l_line_definition_owner_code
35716       ,p_line_definition_code       => l_line_definition_code
35717       ,p_accounting_line_code       => l_component_code
35718       ,p_accounting_line_type_code  => l_component_type_code
35719       ,p_accounting_line_appl_id    => l_component_appl_id
35720       ,p_amb_context_code           => l_amb_context_code
35721       ,p_entity_code                => l_entity_code
35722       ,p_event_class_code           => l_event_class_code);
35723    --
35724    -- set accounting class
35725    --
35726    xla_ae_lines_pkg.SetAcctClass(
35727            p_accounting_class_code  => 'CASH_CLEARING'
35728          , p_ae_header_id           => l_ae_header_id
35729          );
35730 
35731    --
35732    -- set rounding class
35733    --
35734    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35735                       'CASH_CLEARING';
35736 
35737    --
35738    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35739    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35740    --
35741    -- bulk performance
35742    --
35743    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35744 
35745    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35746       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35747 
35748    -- 4955764
35749    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35750       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35751 
35752    -- 4458381 Public Sector Enh
35753    
35754    --
35755    -- set accounting attributes for the line type
35756    --
35757    l_entered_amt_idx := 9;
35758    l_accted_amt_idx  := 14;
35759    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
35760    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35761    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
35762    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
35763    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
35764    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35765    l_rec_acct_attrs.array_char_value(3)  := p_source_80;
35766    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
35767    l_rec_acct_attrs.array_char_value(4)  := p_source_81;
35768    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
35769    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
35770    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35771    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
35772    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
35773    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
35774    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
35775    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
35776    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
35777    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
35778    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
35779    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
35780    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
35781    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
35782    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
35783    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
35784    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
35785    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
35786    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
35787    l_rec_acct_attrs.array_num_value(14)  := p_source_109;
35788    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
35789    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
35790    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
35791    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
35792    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
35793    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
35794    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
35795    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
35796    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
35797    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
35798    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
35799    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
35800    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
35801    l_rec_acct_attrs.array_num_value(21)  := p_source_74;
35802    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
35803    l_rec_acct_attrs.array_num_value(22)  := p_source_75;
35804    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
35805    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
35806 
35807    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35808    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35809 
35810    ---------------------------------------------------------------------------------------------------------------
35811    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35812    ---------------------------------------------------------------------------------------------------------------
35813    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35814 
35815    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35816    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35817 
35818    IF xla_accounting_cache_pkg.GetValueChar
35819          (p_source_code         => 'LEDGER_CATEGORY_CODE'
35820          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35821    AND l_bflow_method_code = 'PRIOR_ENTRY'
35822 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35823    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35824          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35825        )
35826    THEN
35827          xla_ae_lines_pkg.BflowUpgEntry
35828            (p_business_method_code    => l_bflow_method_code
35829            ,p_business_class_code     => l_bflow_class_code
35830            ,p_balance_type            => l_balance_type_code);
35831    ELSE
35832       NULL;
35833 XLA_AE_LINES_PKG.business_flow_validation(
35834                                 p_business_method_code     => l_bflow_method_code
35835                                ,p_business_class_code      => l_bflow_class_code
35836                                ,p_inherit_description_flag => l_inherit_desc_flag);
35837    END IF;
35838 
35839    --
35840    -- call analytical criteria
35841    --
35842    
35843    --
35844    -- call description
35845    --
35846    -- No description or it is inherited.
35847    --
35848    -- call ADRs
35849    -- Bug 4922099
35850    --
35851    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35852         (NVL(l_actual_upg_option, 'N') = 'O') OR
35853         (NVL(l_enc_upg_option, 'N') = 'O')
35854       )
35855    THEN
35856    NULL;
35857    --
35858    --
35859    
35860    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
35861      p_code_combination_id      => TO_NUMBER(C_NUM)
35862    , p_value_type_code          => NULL
35863    , p_transaction_coa_id       => null
35864    , p_accounting_coa_id        => null
35865    , p_adr_code                 => NULL
35866    , p_adr_type_code            => NULL
35867    , p_component_type           => l_component_type
35868    , p_component_code           => l_component_code
35869    , p_component_type_code      => l_component_type_code
35870    , p_component_appl_id        => l_component_appl_id
35871    , p_amb_context_code         => l_amb_context_code
35872    , p_side                     => NULL
35873    );
35874 
35875    
35876   -- initialise segments
35877   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35878   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35879   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35880   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35881   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35882   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35883   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35884   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35885   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35886   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35887   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35888   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35889   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35890   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35891   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35892   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35893   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35894   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35895   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35896   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35897   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35898   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35899   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35900   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35901   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35902   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35903   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35904   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35905   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35906   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35907   --
35908 
35909    --
35910 
35911 
35912    l_segment := AcctDerRule_15(
35913            p_application_id           => p_application_id
35914          , p_ae_header_id             => l_ae_header_id 
35915 , p_source_23 => p_source_23
35916          , x_transaction_coa_id       => l_adr_transaction_coa_id
35917          , x_accounting_coa_id        => l_adr_accounting_coa_id
35918          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
35919          , x_flex_value_set_id        => l_adr_flex_value_set_id
35920          , x_value_type_code          => l_adr_value_type_code
35921          , x_value_combination_id     => l_adr_value_combination_id
35922          , x_value_segment_code       => l_adr_value_segment_code
35923          , p_side                     => 'NA'
35924          , p_override_seg_flag        => 'Y'
35925    );
35926 
35927    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
35928 
35929       xla_ae_lines_pkg.set_segment(
35930           p_to_segment_code         => 'GL_ACCOUNT'
35931         , p_segment_value           => l_segment
35932         , p_from_segment_code       => l_adr_value_segment_code
35933         , p_from_combination_id     => l_adr_value_combination_id
35934         , p_value_type_code         => l_adr_value_type_code
35935         , p_transaction_coa_id      => l_adr_transaction_coa_id
35936         , p_accounting_coa_id       => l_adr_accounting_coa_id
35937         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
35938         , p_flex_value_set_id       => l_adr_flex_value_set_id
35939         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
35940         , p_adr_type_code           => 'S'
35941         , p_component_type          => l_component_type
35942         , p_component_code          => l_component_code
35943         , p_component_type_code     => l_component_type_code
35944         , p_component_appl_id       => l_component_appl_id
35945         , p_amb_context_code        => l_amb_context_code
35946         , p_entity_code             => 'AP_PAYMENTS'
35947         , p_event_class_code        => 'REFUNDS'
35948         , p_side                    => 'NA'
35949         );
35950 
35951   END IF;
35952 
35953    --
35954    --
35955    END IF;
35956    --
35957    -- Bug 4922099
35958    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35959           (NVL(l_enc_upg_option, 'N') = 'O')
35960         ) AND
35961         (l_bflow_method_code = 'PRIOR_ENTRY')
35962       )
35963    THEN
35964       IF
35965       --
35966       1 = 2
35967       --
35968       THEN
35969       xla_accounting_err_pkg.build_message
35970                                     (p_appli_s_name            => 'XLA'
35971                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35972                                     ,p_token_1                 => 'LINE_NUMBER'
35973                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
35974                                     ,p_token_2                 => 'LINE_TYPE_NAME'
35975                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
35976                                                                              l_component_type
35977                                                                             ,l_component_code
35978                                                                             ,l_component_type_code
35979                                                                             ,l_component_appl_id
35980                                                                             ,l_amb_context_code
35981                                                                             ,l_entity_code
35982                                                                             ,l_event_class_code
35983                                                                            )
35984                                     ,p_token_3                 => 'OWNER'
35985                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
35986                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
35987                                                                           ,p_lookup_code    => l_component_type_code
35988                                                                          )
35989                                     ,p_token_4                 => 'PRODUCT_NAME'
35990                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35991                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35992                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35993                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35994                                     ,p_ae_header_id            =>  NULL
35995                                        );
35996 
35997         IF (C_LEVEL_ERROR>= g_log_level) THEN
35998                  trace
35999                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36000                       ,p_level    => C_LEVEL_ERROR
36001                       ,p_module   => l_log_module);
36002         END IF;
36003       END IF;
36004    END IF;
36005    --
36006    --
36007    ------------------------------------------------------------------------------------------------
36008    -- 4219869 Business Flow
36009    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36010    -- Prior Entry.  Currently, the following code is always generated.
36011    ------------------------------------------------------------------------------------------------
36012    XLA_AE_LINES_PKG.ValidateCurrentLine;
36013 
36014    ------------------------------------------------------------------------------------
36015    -- 4219869 Business Flow
36016    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36017    ------------------------------------------------------------------------------------
36018    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36019 
36020    ----------------------------------------------------------------------------------
36021    -- 4219869 Business Flow
36022    -- Update journal entry status -- Need to generate this within IF <condition>
36023    ----------------------------------------------------------------------------------
36024    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36025          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36026          ,p_balance_type_code => l_balance_type_code
36027          );
36028 
36029    -------------------------------------------------------------------------------------------
36030    -- 4262811 - Generate the Accrual Reversal lines
36031    -------------------------------------------------------------------------------------------
36032    BEGIN
36033       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36034                               (g_array_event(p_event_id).array_value_num('header_index'));
36035       IF l_acc_rev_flag IS NULL THEN
36036          l_acc_rev_flag := 'N';
36037       END IF;
36038    EXCEPTION
36039       WHEN OTHERS THEN
36040          l_acc_rev_flag := 'N';
36041    END;
36042    --
36043    IF (l_acc_rev_flag = 'Y') THEN
36044 
36045        -- 4645092  ------------------------------------------------------------------------------
36046        -- To allow MPA report to determine if it should generate report process
36047        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36048        ------------------------------------------------------------------------------------------
36049 
36050        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36051        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36052    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
36053    -- call ADRs
36054    -- Bug 4922099
36055    --
36056    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36057         (NVL(l_actual_upg_option, 'N') = 'O') OR
36058         (NVL(l_enc_upg_option, 'N') = 'O')
36059       )
36060    THEN
36061    NULL;
36062    --
36063    --
36064    
36065    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
36066      p_code_combination_id      => TO_NUMBER(C_NUM)
36067    , p_value_type_code          => NULL
36068    , p_transaction_coa_id       => null
36069    , p_accounting_coa_id        => null
36070    , p_adr_code                 => NULL
36071    , p_adr_type_code            => NULL
36072    , p_component_type           => l_component_type
36073    , p_component_code           => l_component_code
36074    , p_component_type_code      => l_component_type_code
36075    , p_component_appl_id        => l_component_appl_id
36076    , p_amb_context_code         => l_amb_context_code
36077    , p_side                     => NULL
36078    );
36079 
36080    
36081   -- initialise segments
36082   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36083   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36084   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36085   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36086   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36087   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36088   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36089   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36090   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36091   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36092   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36093   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36094   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36095   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36096   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36097   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36098   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36099   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36100   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36101   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36102   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36103   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36104   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36105   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36106   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36107   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36108   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36109   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36110   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36111   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36112   --
36113 
36114    --
36115 
36116 
36117    l_segment := AcctDerRule_15(
36118            p_application_id           => p_application_id
36119          , p_ae_header_id             => l_ae_header_id 
36120 , p_source_23 => p_source_23
36121          , x_transaction_coa_id       => l_adr_transaction_coa_id
36122          , x_accounting_coa_id        => l_adr_accounting_coa_id
36123          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
36124          , x_flex_value_set_id        => l_adr_flex_value_set_id
36125          , x_value_type_code          => l_adr_value_type_code
36126          , x_value_combination_id     => l_adr_value_combination_id
36127          , x_value_segment_code       => l_adr_value_segment_code
36128          , p_side                     => 'NA'
36129          , p_override_seg_flag        => 'Y'
36130    );
36131 
36132    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
36133 
36134       xla_ae_lines_pkg.set_segment(
36135           p_to_segment_code         => 'GL_ACCOUNT'
36136         , p_segment_value           => l_segment
36137         , p_from_segment_code       => l_adr_value_segment_code
36138         , p_from_combination_id     => l_adr_value_combination_id
36139         , p_value_type_code         => l_adr_value_type_code
36140         , p_transaction_coa_id      => l_adr_transaction_coa_id
36141         , p_accounting_coa_id       => l_adr_accounting_coa_id
36142         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
36143         , p_flex_value_set_id       => l_adr_flex_value_set_id
36144         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
36145         , p_adr_type_code           => 'S'
36146         , p_component_type          => l_component_type
36147         , p_component_code          => l_component_code
36148         , p_component_type_code     => l_component_type_code
36149         , p_component_appl_id       => l_component_appl_id
36150         , p_amb_context_code        => l_amb_context_code
36151         , p_entity_code             => 'AP_PAYMENTS'
36152         , p_event_class_code        => 'REFUNDS'
36153         , p_side                    => 'NA'
36154         );
36155 
36156   END IF;
36157 
36158    --
36159    --
36160    END IF;
36161 
36162        --
36163        -- Update the line information that should be overwritten
36164        --
36168 
36165        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36166                                          p_header_num   => 1);
36167        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
36169        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36170 
36171        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
36172           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36173        END IF;
36174 
36175       --
36176       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36177       --
36178       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36179           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
36180       ELSE
36181           ---------------------------------------------------------------------------------------------------
36182           -- 4262811a Switch Sign
36183           ---------------------------------------------------------------------------------------------------
36184           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
36185           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36186                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36187           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36188                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36189           -- 5132302
36190           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36191                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36192 
36193       END IF;
36194 
36195       -- 4955764
36196       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36197       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36198 
36199 
36200       XLA_AE_LINES_PKG.ValidateCurrentLine;
36201       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36202 
36203       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36204                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36205                ,p_balance_type_code => l_balance_type_code);
36206 
36207    END IF;
36208 
36209    -----------------------------------------------------------------------------------------
36210    -- 4262811 Multiperiod Accounting
36211    -----------------------------------------------------------------------------------------
36212      -- No MPA option is assigned.
36213 
36214 
36215 END IF;
36216 END IF;
36217 --
36218 
36219 --
36220 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36221    trace
36222       (p_msg      => 'END of AcctLineType_86'
36223       ,p_level    => C_LEVEL_PROCEDURE
36224       ,p_module   => l_log_module);
36225 END IF;
36226 --
36227 EXCEPTION
36228   WHEN xla_exceptions_pkg.application_exception THEN
36229       RAISE;
36230   WHEN OTHERS THEN
36231        xla_exceptions_pkg.raise_message
36232            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_86');
36233 END AcctLineType_86;
36234 --
36235 
36236 ---------------------------------------
36237 --
36238 -- PRIVATE FUNCTION
36239 --         AcctLineType_87
36240 --
36241 ---------------------------------------
36242 PROCEDURE AcctLineType_87 (
36243   p_application_id        IN NUMBER
36244  ,p_event_id              IN NUMBER
36245  ,p_calculate_acctd_flag  IN VARCHAR2
36246  ,p_calculate_g_l_flag    IN VARCHAR2
36247  ,p_actual_flag           IN OUT VARCHAR2
36248  ,p_balance_type_code     OUT VARCHAR2
36249  ,p_gain_or_loss_ref      OUT VARCHAR2
36250  
36251 --Automatic Offsets Value
36252  , p_source_3            IN VARCHAR2
36253  , p_source_3_meaning    IN VARCHAR2
36254 --Bank Cash Clearing Account
36255  , p_source_23            IN NUMBER
36256 --Accounting Reversal Indicator
36257  , p_source_41            IN VARCHAR2
36258 --Distribution Link Type
36259  , p_source_43            IN VARCHAR2
36260 --Override Accounted Amount Indicator
36261  , p_source_68            IN VARCHAR2
36262  , p_source_68_meaning    IN VARCHAR2
36263 --Third Party Type
36264  , p_source_71            IN VARCHAR2
36265 --Invoice Distribution Tax Line Identifier
36266  , p_source_74            IN NUMBER
36267 --Invoice Distribution Tax Distribution Identifier from Tax
36268  , p_source_75            IN NUMBER
36269 --Invoice Distribution Summary Tax Line Identifier
36270  , p_source_76            IN NUMBER
36271 --Business Flow Accounts Payable Application Identifier
36272  , p_source_79            IN NUMBER
36273 --Business Flow Invoice Distribution Type
36274  , p_source_80            IN VARCHAR2
36275 --Business Flow Invoice Entity Code
36276  , p_source_81            IN VARCHAR2
36277 --Business Flow Invoice Distribution Identifier
36278  , p_source_82            IN NUMBER
36279 --Business Flow Invoice Identifier
36280  , p_source_83            IN NUMBER
36281 --When to Account for Payment Option
36282  , p_source_89            IN VARCHAR2
36283 --Payment Distribution Type
36284  , p_source_90            IN VARCHAR2
36285  , p_source_90_meaning    IN VARCHAR2
36286 --Payment Distribution Amount
36287  , p_source_91            IN NUMBER
36288 --Payment Distribution Identifier
36289  , p_source_96            IN NUMBER
36290 --Payment Supplier Identifier
36294 --Payment Distribution Reversed Identifier
36291  , p_source_102            IN NUMBER
36292 --Payment Supplier Site Identifier
36293  , p_source_103            IN NUMBER
36295  , p_source_104            IN NUMBER
36296 --Pooled Bank Account Option
36297  , p_source_105            IN VARCHAR2
36298  , p_source_105_meaning    IN VARCHAR2
36299 --Payment Currency Code
36300  , p_source_106            IN VARCHAR2
36301 --Payment Maturity Date
36302  , p_source_107            IN DATE
36303 --Payment Distribution (Invoice Rate) Ledger Amount
36304  , p_source_109            IN NUMBER
36305 --Payment Exchange Date
36306  , p_source_110            IN DATE
36307 --Payment Exchange Rate
36308  , p_source_111            IN NUMBER
36309 --Payment Exchange Rate Type
36310  , p_source_112            IN VARCHAR2
36311 --Payment Type
36312  , p_source_115            IN VARCHAR2
36313  , p_source_115_meaning    IN VARCHAR2
36314 )
36315 IS
36316 
36317 l_component_type              VARCHAR2(80);
36318 l_component_code              VARCHAR2(30);
36319 l_component_type_code         VARCHAR2(1);
36320 l_component_appl_id           INTEGER;
36321 l_amb_context_code            VARCHAR2(30);
36322 l_entity_code                 VARCHAR2(30);
36323 l_event_class_code            VARCHAR2(30);
36324 l_ae_header_id                NUMBER;
36325 l_event_type_code             VARCHAR2(30);
36326 l_line_definition_code        VARCHAR2(30);
36327 l_line_definition_owner_code  VARCHAR2(1);
36328 --
36329 -- adr variables
36330 l_segment                     VARCHAR2(30);
36331 l_ccid                        NUMBER;
36332 l_adr_transaction_coa_id      NUMBER;
36333 l_adr_accounting_coa_id       NUMBER;
36334 l_adr_flexfield_segment_code  VARCHAR2(30);
36335 l_adr_flex_value_set_id       NUMBER;
36336 l_adr_value_type_code         VARCHAR2(30);
36337 l_adr_value_combination_id    NUMBER;
36338 l_adr_value_segment_code      VARCHAR2(30);
36339 
36340 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
36341 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
36342 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
36343 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
36344 
36345 -- 4262811 Variables ------------------------------------------------------------------------------------------
36346 l_entered_amt_idx             NUMBER;
36347 l_accted_amt_idx              NUMBER;
36348 l_acc_rev_flag                VARCHAR2(1);
36349 l_accrual_line_num            NUMBER;
36350 l_tmp_amt                     NUMBER;
36351 l_acc_rev_natural_side_code   VARCHAR2(1);
36352 
36353 l_num_entries                 NUMBER;
36354 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
36355 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
36356 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
36357 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
36358 l_recog_line_1                NUMBER;
36359 l_recog_line_2                NUMBER;
36360 
36361 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
36362 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
36363 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
36364 
36365 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36366 
36367 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
36368 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
36369 
36370 ---------------------------------------------------------------------------------------------------------------
36371 
36372 
36373 --
36374 -- bulk performance
36375 --
36376 l_balance_type_code           VARCHAR2(1);
36377 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
36378 l_log_module                  VARCHAR2(240);
36379 
36380 --
36381 -- Upgrade strategy
36382 --
36383 l_actual_upg_option           VARCHAR2(1);
36384 l_enc_upg_option           VARCHAR2(1);
36385 
36386 --
36387 BEGIN
36388 --
36389 IF g_log_enabled THEN
36390       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_87';
36391 END IF;
36392 --
36393 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36394 
36395       trace
36396          (p_msg      => 'BEGIN of AcctLineType_87'
36397          ,p_level    => C_LEVEL_PROCEDURE
36398          ,p_module   => l_log_module);
36399 
36400 END IF;
36401 --
36402 l_component_type             := 'AMB_JLT';
36403 l_component_code             := 'AP_CASH_CLEAR_REF_BS_INVXRATE';
36404 l_component_type_code        := 'S';
36405 l_component_appl_id          :=  200;
36406 l_amb_context_code           := 'DEFAULT';
36407 l_entity_code                := 'AP_PAYMENTS';
36408 l_event_class_code           := 'REFUNDS';
36409 l_event_type_code            := 'REFUNDS_ALL';
36410 l_line_definition_owner_code := 'S';
36411 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
36412 --
36413 l_balance_type_code          := 'A';
36414 l_segment                     := NULL;
36415 l_ccid                        := NULL;
36416 l_adr_transaction_coa_id      := NULL;
36417 l_adr_accounting_coa_id       := NULL;
36418 l_adr_flexfield_segment_code  := NULL;
36419 l_adr_flex_value_set_id       := NULL;
36420 l_adr_value_type_code         := NULL;
36421 l_adr_value_combination_id    := NULL;
36422 l_adr_value_segment_code      := NULL;
36423 
36424 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
36425 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
36429 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
36426 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
36427 l_budgetary_control_flag     := 'N';
36428 
36430 l_bflow_applied_to_amt       := NULL; -- 5132302
36431 l_entered_amt_idx            := NULL;          -- 4262811
36432 l_accted_amt_idx             := NULL;          -- 4262811
36433 l_acc_rev_flag               := NULL;          -- 4262811
36434 l_accrual_line_num           := NULL;          -- 4262811
36435 l_tmp_amt                    := NULL;          -- 4262811
36436 --
36437  
36438 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36439     l_balance_type_code <> 'B' THEN
36440 IF NVL(p_source_89,'
36441 ') =  'ALWAYS_CLEAR' AND 
36442 (NVL(p_source_105,'
36443 ') =  'Y' AND 
36444 NVL(p_source_3,'
36445 ') =  'BALANCING_SEGMENT') AND 
36446 p_source_107 IS NULL AND 
36447 NVL(p_source_90,'
36448 ') =  'CASH' AND 
36449 NVL(p_source_115,'
36450 ') =  'R'
36451  THEN 
36452 
36453    --
36454    XLA_AE_LINES_PKG.SetNewLine;
36455 
36456    p_balance_type_code          := l_balance_type_code;
36457    -- set the flag so later we will know whether the gain loss line needs to be created
36458    
36459    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36460      p_actual_flag :='A';
36461    END IF;
36462 
36463    --
36464    -- bulk performance
36465    --
36466    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36467                                       p_header_num   => 0); -- 4262811
36468    --
36469    -- set accounting line options
36470    --
36471    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36472            p_natural_side_code          => 'C'
36473          , p_gain_or_loss_flag          => 'N'
36474          , p_gl_transfer_mode_code      => 'S'
36475          , p_acct_entry_type_code       => 'A'
36476          , p_switch_side_flag           => 'Y'
36477          , p_merge_duplicate_code       => 'A'
36478          );
36479    --
36480    l_acc_rev_natural_side_code := 'D';  -- 4262811
36481    -- 
36482    --
36483    -- set accounting line type info
36484    --
36485    xla_ae_lines_pkg.SetAcctLineType
36486       (p_component_type             => l_component_type
36487       ,p_event_type_code            => l_event_type_code
36488       ,p_line_definition_owner_code => l_line_definition_owner_code
36489       ,p_line_definition_code       => l_line_definition_code
36490       ,p_accounting_line_code       => l_component_code
36491       ,p_accounting_line_type_code  => l_component_type_code
36492       ,p_accounting_line_appl_id    => l_component_appl_id
36493       ,p_amb_context_code           => l_amb_context_code
36494       ,p_entity_code                => l_entity_code
36495       ,p_event_class_code           => l_event_class_code);
36496    --
36497    -- set accounting class
36498    --
36499    xla_ae_lines_pkg.SetAcctClass(
36500            p_accounting_class_code  => 'CASH_CLEARING'
36501          , p_ae_header_id           => l_ae_header_id
36502          );
36503 
36504    --
36505    -- set rounding class
36506    --
36507    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36508                       'CASH_CLEARING';
36509 
36510    --
36511    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36512    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36513    --
36514    -- bulk performance
36515    --
36516    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36517 
36518    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36519       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36520 
36521    -- 4955764
36522    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36523       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36524 
36525    -- 4458381 Public Sector Enh
36526    
36527    --
36528    -- set accounting attributes for the line type
36529    --
36530    l_entered_amt_idx := 9;
36531    l_accted_amt_idx  := 14;
36532    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
36533    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36534    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
36535    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
36536    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
36537    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36538    l_rec_acct_attrs.array_char_value(3)  := p_source_80;
36539    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
36540    l_rec_acct_attrs.array_char_value(4)  := p_source_81;
36541    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
36542    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
36543    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36544    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
36545    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
36546    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
36547    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
36548    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
36552    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
36549    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
36550    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
36551    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
36553    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
36554    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
36555    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
36556    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
36557    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
36558    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
36559    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
36560    l_rec_acct_attrs.array_num_value(14)  := p_source_109;
36561    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
36562    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
36563    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
36564    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
36565    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
36566    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
36567    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
36568    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
36569    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
36570    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
36571    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
36572    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
36573    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
36574    l_rec_acct_attrs.array_num_value(21)  := p_source_74;
36575    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
36576    l_rec_acct_attrs.array_num_value(22)  := p_source_75;
36577    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
36578    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
36579 
36580    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36581    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36582 
36583    ---------------------------------------------------------------------------------------------------------------
36584    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36585    ---------------------------------------------------------------------------------------------------------------
36586    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36587 
36588    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36589    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36590 
36591    IF xla_accounting_cache_pkg.GetValueChar
36592          (p_source_code         => 'LEDGER_CATEGORY_CODE'
36593          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36594    AND l_bflow_method_code = 'PRIOR_ENTRY'
36595 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36596    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36597          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36598        )
36599    THEN
36600          xla_ae_lines_pkg.BflowUpgEntry
36601            (p_business_method_code    => l_bflow_method_code
36602            ,p_business_class_code     => l_bflow_class_code
36603            ,p_balance_type            => l_balance_type_code);
36604    ELSE
36605       NULL;
36606 XLA_AE_LINES_PKG.business_flow_validation(
36607                                 p_business_method_code     => l_bflow_method_code
36608                                ,p_business_class_code      => l_bflow_class_code
36609                                ,p_inherit_description_flag => l_inherit_desc_flag);
36610    END IF;
36611 
36612    --
36613    -- call analytical criteria
36614    --
36615    
36616    --
36617    -- call description
36618    --
36619    -- No description or it is inherited.
36620    --
36621    -- call ADRs
36622    -- Bug 4922099
36623    --
36624    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36625         (NVL(l_actual_upg_option, 'N') = 'O') OR
36626         (NVL(l_enc_upg_option, 'N') = 'O')
36627       )
36628    THEN
36629    NULL;
36630    --
36631    --
36632    
36633   l_ccid := AcctDerRule_35(
36634            p_application_id           => p_application_id
36635          , p_ae_header_id             => l_ae_header_id 
36636 , p_source_23 => p_source_23
36637          , x_transaction_coa_id       => l_adr_transaction_coa_id
36638          , x_accounting_coa_id        => l_adr_accounting_coa_id
36639          , x_value_type_code          => l_adr_value_type_code
36640          , p_side                     => 'NA'
36641    );
36642 
36643    xla_ae_lines_pkg.set_ccid(
36644     p_code_combination_id          => l_ccid
36645   , p_value_type_code              => l_adr_value_type_code
36646   , p_transaction_coa_id           => l_adr_transaction_coa_id
36647   , p_accounting_coa_id            => l_adr_accounting_coa_id
36648   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
36649   , p_adr_type_code                => 'S'
36650   , p_component_type               => l_component_type
36651   , p_component_code               => l_component_code
36652   , p_component_type_code          => l_component_type_code
36653   , p_component_appl_id            => l_component_appl_id
36654   , p_amb_context_code             => l_amb_context_code
36655   , p_side                         => 'NA'
36656   );
36657 
36658 
36659    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
36660      p_to_segment_code         => 'GL_BALANCING'
36664    , p_value_type_code         => NULL
36661    , p_segment_value           => C_CHAR
36662    , p_from_segment_code       => NULL
36663    , p_from_combination_id     => NULL
36665    , p_transaction_coa_id      => null
36666    , p_accounting_coa_id       => null
36667    , p_flexfield_segment_code  => NULL
36668    , p_flex_value_set_id       => NULL
36669    , p_adr_code                => NULL
36670    , p_adr_type_code           => NULL
36671    , p_component_type          => l_component_type
36672    , p_component_code          => l_component_code
36673    , p_component_type_code     => l_component_type_code
36674    , p_component_appl_id       => l_component_appl_id
36675    , p_amb_context_code        => l_amb_context_code
36676    , p_entity_code             => 'AP_PAYMENTS'
36677    , p_event_class_code        => 'REFUNDS'
36678    , p_side                    => 'NA'
36679    );
36680    --
36681 
36682 
36683    --
36684    --
36685    END IF;
36686    --
36687    -- Bug 4922099
36688    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36689           (NVL(l_enc_upg_option, 'N') = 'O')
36690         ) AND
36691         (l_bflow_method_code = 'PRIOR_ENTRY')
36692       )
36693    THEN
36694       IF
36695       --
36696       1 = 2
36697       --
36698       THEN
36699       xla_accounting_err_pkg.build_message
36700                                     (p_appli_s_name            => 'XLA'
36701                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36702                                     ,p_token_1                 => 'LINE_NUMBER'
36703                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
36704                                     ,p_token_2                 => 'LINE_TYPE_NAME'
36705                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
36706                                                                              l_component_type
36707                                                                             ,l_component_code
36708                                                                             ,l_component_type_code
36709                                                                             ,l_component_appl_id
36710                                                                             ,l_amb_context_code
36711                                                                             ,l_entity_code
36712                                                                             ,l_event_class_code
36713                                                                            )
36714                                     ,p_token_3                 => 'OWNER'
36715                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
36716                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
36717                                                                           ,p_lookup_code    => l_component_type_code
36718                                                                          )
36719                                     ,p_token_4                 => 'PRODUCT_NAME'
36720                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36721                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36722                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36723                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36724                                     ,p_ae_header_id            =>  NULL
36725                                        );
36726 
36727         IF (C_LEVEL_ERROR>= g_log_level) THEN
36728                  trace
36729                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36730                       ,p_level    => C_LEVEL_ERROR
36731                       ,p_module   => l_log_module);
36732         END IF;
36733       END IF;
36734    END IF;
36735    --
36736    --
36737    ------------------------------------------------------------------------------------------------
36738    -- 4219869 Business Flow
36739    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36740    -- Prior Entry.  Currently, the following code is always generated.
36741    ------------------------------------------------------------------------------------------------
36742    XLA_AE_LINES_PKG.ValidateCurrentLine;
36743 
36744    ------------------------------------------------------------------------------------
36745    -- 4219869 Business Flow
36746    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36747    ------------------------------------------------------------------------------------
36748    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36749 
36750    ----------------------------------------------------------------------------------
36751    -- 4219869 Business Flow
36752    -- Update journal entry status -- Need to generate this within IF <condition>
36753    ----------------------------------------------------------------------------------
36754    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36755          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36756          ,p_balance_type_code => l_balance_type_code
36757          );
36758 
36759    -------------------------------------------------------------------------------------------
36760    -- 4262811 - Generate the Accrual Reversal lines
36761    -------------------------------------------------------------------------------------------
36762    BEGIN
36763       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36767       END IF;
36764                               (g_array_event(p_event_id).array_value_num('header_index'));
36765       IF l_acc_rev_flag IS NULL THEN
36766          l_acc_rev_flag := 'N';
36768    EXCEPTION
36769       WHEN OTHERS THEN
36770          l_acc_rev_flag := 'N';
36771    END;
36772    --
36773    IF (l_acc_rev_flag = 'Y') THEN
36774 
36775        -- 4645092  ------------------------------------------------------------------------------
36776        -- To allow MPA report to determine if it should generate report process
36777        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36778        ------------------------------------------------------------------------------------------
36779 
36780        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36781        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36782    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
36783    -- call ADRs
36784    -- Bug 4922099
36785    --
36786    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36787         (NVL(l_actual_upg_option, 'N') = 'O') OR
36788         (NVL(l_enc_upg_option, 'N') = 'O')
36789       )
36790    THEN
36791    NULL;
36792    --
36793    --
36794    
36795   l_ccid := AcctDerRule_35(
36796            p_application_id           => p_application_id
36797          , p_ae_header_id             => l_ae_header_id 
36798 , p_source_23 => p_source_23
36799          , x_transaction_coa_id       => l_adr_transaction_coa_id
36800          , x_accounting_coa_id        => l_adr_accounting_coa_id
36801          , x_value_type_code          => l_adr_value_type_code
36802          , p_side                     => 'NA'
36803    );
36804 
36805    xla_ae_lines_pkg.set_ccid(
36806     p_code_combination_id          => l_ccid
36807   , p_value_type_code              => l_adr_value_type_code
36808   , p_transaction_coa_id           => l_adr_transaction_coa_id
36809   , p_accounting_coa_id            => l_adr_accounting_coa_id
36810   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
36811   , p_adr_type_code                => 'S'
36812   , p_component_type               => l_component_type
36813   , p_component_code               => l_component_code
36814   , p_component_type_code          => l_component_type_code
36815   , p_component_appl_id            => l_component_appl_id
36816   , p_amb_context_code             => l_amb_context_code
36817   , p_side                         => 'NA'
36818   );
36819 
36820 
36821    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
36822      p_to_segment_code         => 'GL_BALANCING'
36823    , p_segment_value           => C_CHAR
36824    , p_from_segment_code       => NULL
36825    , p_from_combination_id     => NULL
36826    , p_value_type_code         => NULL
36827    , p_transaction_coa_id      => null
36828    , p_accounting_coa_id       => null
36829    , p_flexfield_segment_code  => NULL
36830    , p_flex_value_set_id       => NULL
36831    , p_adr_code                => NULL
36832    , p_adr_type_code           => NULL
36833    , p_component_type          => l_component_type
36834    , p_component_code          => l_component_code
36835    , p_component_type_code     => l_component_type_code
36836    , p_component_appl_id       => l_component_appl_id
36837    , p_amb_context_code        => l_amb_context_code
36838    , p_entity_code             => 'AP_PAYMENTS'
36839    , p_event_class_code        => 'REFUNDS'
36840    , p_side                    => 'NA'
36841    );
36842    --
36843 
36844 
36845    --
36846    --
36847    END IF;
36848 
36849        --
36850        -- Update the line information that should be overwritten
36851        --
36852        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36853                                          p_header_num   => 1);
36854        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
36855 
36856        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36857 
36858        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
36859           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36860        END IF;
36861 
36862       --
36863       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36864       --
36865       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36866           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
36867       ELSE
36868           ---------------------------------------------------------------------------------------------------
36869           -- 4262811a Switch Sign
36870           ---------------------------------------------------------------------------------------------------
36871           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
36872           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36873                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36874           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36875                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36876           -- 5132302
36877           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36878                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36879 
36880       END IF;
36881 
36882       -- 4955764
36886 
36883       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36884       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36885 
36887       XLA_AE_LINES_PKG.ValidateCurrentLine;
36888       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36889 
36890       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36891                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36892                ,p_balance_type_code => l_balance_type_code);
36893 
36894    END IF;
36895 
36896    -----------------------------------------------------------------------------------------
36897    -- 4262811 Multiperiod Accounting
36898    -----------------------------------------------------------------------------------------
36899      -- No MPA option is assigned.
36900 
36901 
36902 END IF;
36903 END IF;
36904 --
36905 
36906 --
36907 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36908    trace
36909       (p_msg      => 'END of AcctLineType_87'
36910       ,p_level    => C_LEVEL_PROCEDURE
36911       ,p_module   => l_log_module);
36912 END IF;
36913 --
36914 EXCEPTION
36915   WHEN xla_exceptions_pkg.application_exception THEN
36916       RAISE;
36917   WHEN OTHERS THEN
36918        xla_exceptions_pkg.raise_message
36919            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_87');
36920 END AcctLineType_87;
36921 --
36922 
36923 ---------------------------------------
36924 --
36925 -- PRIVATE FUNCTION
36926 --         AcctLineType_88
36927 --
36928 ---------------------------------------
36929 PROCEDURE AcctLineType_88 (
36930   p_application_id        IN NUMBER
36931  ,p_event_id              IN NUMBER
36932  ,p_calculate_acctd_flag  IN VARCHAR2
36933  ,p_calculate_g_l_flag    IN VARCHAR2
36934  ,p_actual_flag           IN OUT VARCHAR2
36935  ,p_balance_type_code     OUT VARCHAR2
36936  ,p_gain_or_loss_ref      OUT VARCHAR2
36937  
36938 --Bank Cash Clearing Account
36939  , p_source_23            IN NUMBER
36940 --Automatic Offsets Flag
36941  , p_source_35            IN VARCHAR2
36942  , p_source_35_meaning    IN VARCHAR2
36943 --Accounting Reversal Indicator
36944  , p_source_41            IN VARCHAR2
36945 --Distribution Link Type
36946  , p_source_43            IN VARCHAR2
36947 --Override Accounted Amount Indicator
36948  , p_source_68            IN VARCHAR2
36949  , p_source_68_meaning    IN VARCHAR2
36950 --Third Party Type
36951  , p_source_71            IN VARCHAR2
36952 --Invoice Distribution Tax Line Identifier
36953  , p_source_74            IN NUMBER
36954 --Invoice Distribution Tax Distribution Identifier from Tax
36955  , p_source_75            IN NUMBER
36956 --Invoice Distribution Summary Tax Line Identifier
36957  , p_source_76            IN NUMBER
36958 --Business Flow Accounts Payable Application Identifier
36959  , p_source_79            IN NUMBER
36960 --Business Flow Invoice Distribution Type
36961  , p_source_80            IN VARCHAR2
36962 --Business Flow Invoice Entity Code
36963  , p_source_81            IN VARCHAR2
36964 --Business Flow Invoice Distribution Identifier
36965  , p_source_82            IN NUMBER
36966 --Business Flow Invoice Identifier
36967  , p_source_83            IN NUMBER
36968 --When to Account for Payment Option
36969  , p_source_89            IN VARCHAR2
36970 --Payment Distribution Type
36971  , p_source_90            IN VARCHAR2
36972  , p_source_90_meaning    IN VARCHAR2
36973 --Payment Distribution Amount
36974  , p_source_91            IN NUMBER
36975 --Payment Distribution Identifier
36976  , p_source_96            IN NUMBER
36977 --Payment Supplier Identifier
36978  , p_source_102            IN NUMBER
36979 --Payment Supplier Site Identifier
36980  , p_source_103            IN NUMBER
36981 --Payment Distribution Reversed Identifier
36982  , p_source_104            IN NUMBER
36983 --Pooled Bank Account Option
36984  , p_source_105            IN VARCHAR2
36985  , p_source_105_meaning    IN VARCHAR2
36986 --Payment Currency Code
36987  , p_source_106            IN VARCHAR2
36988 --Payment Maturity Date
36989  , p_source_107            IN DATE
36990 --Payment Distribution (Invoice Rate) Ledger Amount
36991  , p_source_109            IN NUMBER
36992 --Payment Exchange Date
36993  , p_source_110            IN DATE
36994 --Payment Exchange Rate
36995  , p_source_111            IN NUMBER
36996 --Payment Exchange Rate Type
36997  , p_source_112            IN VARCHAR2
36998 --Payment Type
36999  , p_source_115            IN VARCHAR2
37000  , p_source_115_meaning    IN VARCHAR2
37001 )
37002 IS
37003 
37004 l_component_type              VARCHAR2(80);
37005 l_component_code              VARCHAR2(30);
37006 l_component_type_code         VARCHAR2(1);
37007 l_component_appl_id           INTEGER;
37008 l_amb_context_code            VARCHAR2(30);
37009 l_entity_code                 VARCHAR2(30);
37010 l_event_class_code            VARCHAR2(30);
37011 l_ae_header_id                NUMBER;
37012 l_event_type_code             VARCHAR2(30);
37013 l_line_definition_code        VARCHAR2(30);
37014 l_line_definition_owner_code  VARCHAR2(1);
37015 --
37016 -- adr variables
37017 l_segment                     VARCHAR2(30);
37018 l_ccid                        NUMBER;
37019 l_adr_transaction_coa_id      NUMBER;
37020 l_adr_accounting_coa_id       NUMBER;
37021 l_adr_flexfield_segment_code  VARCHAR2(30);
37022 l_adr_flex_value_set_id       NUMBER;
37023 l_adr_value_type_code         VARCHAR2(30);
37024 l_adr_value_combination_id    NUMBER;
37025 l_adr_value_segment_code      VARCHAR2(30);
37029 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
37026 
37027 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
37028 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
37030 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
37031 
37032 -- 4262811 Variables ------------------------------------------------------------------------------------------
37033 l_entered_amt_idx             NUMBER;
37034 l_accted_amt_idx              NUMBER;
37035 l_acc_rev_flag                VARCHAR2(1);
37036 l_accrual_line_num            NUMBER;
37037 l_tmp_amt                     NUMBER;
37038 l_acc_rev_natural_side_code   VARCHAR2(1);
37039 
37040 l_num_entries                 NUMBER;
37041 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
37042 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
37043 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
37044 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
37045 l_recog_line_1                NUMBER;
37046 l_recog_line_2                NUMBER;
37047 
37048 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
37049 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
37050 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
37051 
37052 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37053 
37054 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
37055 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
37056 
37057 ---------------------------------------------------------------------------------------------------------------
37058 
37059 
37060 --
37061 -- bulk performance
37062 --
37063 l_balance_type_code           VARCHAR2(1);
37064 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
37065 l_log_module                  VARCHAR2(240);
37066 
37067 --
37068 -- Upgrade strategy
37069 --
37070 l_actual_upg_option           VARCHAR2(1);
37071 l_enc_upg_option           VARCHAR2(1);
37072 
37073 --
37074 BEGIN
37075 --
37076 IF g_log_enabled THEN
37077       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_88';
37078 END IF;
37079 --
37080 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37081 
37082       trace
37083          (p_msg      => 'BEGIN of AcctLineType_88'
37084          ,p_level    => C_LEVEL_PROCEDURE
37085          ,p_module   => l_log_module);
37086 
37087 END IF;
37088 --
37089 l_component_type             := 'AMB_JLT';
37090 l_component_code             := 'AP_CASH_CLEAR_REF_INVXRATE';
37091 l_component_type_code        := 'S';
37092 l_component_appl_id          :=  200;
37093 l_amb_context_code           := 'DEFAULT';
37094 l_entity_code                := 'AP_PAYMENTS';
37095 l_event_class_code           := 'REFUNDS';
37096 l_event_type_code            := 'REFUNDS_ALL';
37097 l_line_definition_owner_code := 'S';
37098 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
37099 --
37100 l_balance_type_code          := 'A';
37101 l_segment                     := NULL;
37102 l_ccid                        := NULL;
37103 l_adr_transaction_coa_id      := NULL;
37104 l_adr_accounting_coa_id       := NULL;
37105 l_adr_flexfield_segment_code  := NULL;
37106 l_adr_flex_value_set_id       := NULL;
37107 l_adr_value_type_code         := NULL;
37108 l_adr_value_combination_id    := NULL;
37109 l_adr_value_segment_code      := NULL;
37110 
37111 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
37112 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
37113 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
37114 l_budgetary_control_flag     := 'N';
37115 
37116 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
37117 l_bflow_applied_to_amt       := NULL; -- 5132302
37118 l_entered_amt_idx            := NULL;          -- 4262811
37119 l_accted_amt_idx             := NULL;          -- 4262811
37120 l_acc_rev_flag               := NULL;          -- 4262811
37121 l_accrual_line_num           := NULL;          -- 4262811
37122 l_tmp_amt                    := NULL;          -- 4262811
37123 --
37124  
37125 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37126     l_balance_type_code <> 'B' THEN
37127 IF NVL(p_source_89,'
37128 ') =  'ALWAYS_CLEAR' AND 
37129 (NVL(p_source_35,'
37130 ') <>  'Y' OR 
37131 NVL(p_source_35,'
37132 ') =  'Y' AND 
37133 NVL(p_source_105,'
37134 ') <>  'Y') AND 
37135 p_source_107 IS NULL AND 
37136 NVL(p_source_90,'
37137 ') =  'CASH' AND 
37138 NVL(p_source_115,'
37139 ') =  'R'
37140  THEN 
37141 
37142    --
37143    XLA_AE_LINES_PKG.SetNewLine;
37144 
37145    p_balance_type_code          := l_balance_type_code;
37146    -- set the flag so later we will know whether the gain loss line needs to be created
37147    
37148    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37149      p_actual_flag :='A';
37150    END IF;
37151 
37152    --
37153    -- bulk performance
37154    --
37155    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37156                                       p_header_num   => 0); -- 4262811
37157    --
37158    -- set accounting line options
37159    --
37160    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37161            p_natural_side_code          => 'C'
37162          , p_gain_or_loss_flag          => 'N'
37163          , p_gl_transfer_mode_code      => 'S'
37167          );
37164          , p_acct_entry_type_code       => 'A'
37165          , p_switch_side_flag           => 'Y'
37166          , p_merge_duplicate_code       => 'A'
37168    --
37169    l_acc_rev_natural_side_code := 'D';  -- 4262811
37170    -- 
37171    --
37172    -- set accounting line type info
37173    --
37174    xla_ae_lines_pkg.SetAcctLineType
37175       (p_component_type             => l_component_type
37176       ,p_event_type_code            => l_event_type_code
37177       ,p_line_definition_owner_code => l_line_definition_owner_code
37178       ,p_line_definition_code       => l_line_definition_code
37179       ,p_accounting_line_code       => l_component_code
37180       ,p_accounting_line_type_code  => l_component_type_code
37181       ,p_accounting_line_appl_id    => l_component_appl_id
37182       ,p_amb_context_code           => l_amb_context_code
37183       ,p_entity_code                => l_entity_code
37184       ,p_event_class_code           => l_event_class_code);
37185    --
37186    -- set accounting class
37187    --
37188    xla_ae_lines_pkg.SetAcctClass(
37189            p_accounting_class_code  => 'CASH_CLEARING'
37190          , p_ae_header_id           => l_ae_header_id
37191          );
37192 
37193    --
37194    -- set rounding class
37195    --
37196    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37197                       'CASH_CLEARING';
37198 
37199    --
37200    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37201    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37202    --
37203    -- bulk performance
37204    --
37205    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37206 
37207    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37208       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37209 
37210    -- 4955764
37211    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37212       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37213 
37214    -- 4458381 Public Sector Enh
37215    
37216    --
37217    -- set accounting attributes for the line type
37218    --
37219    l_entered_amt_idx := 9;
37220    l_accted_amt_idx  := 14;
37221    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
37222    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37223    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
37224    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
37225    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
37226    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37227    l_rec_acct_attrs.array_char_value(3)  := p_source_80;
37228    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
37229    l_rec_acct_attrs.array_char_value(4)  := p_source_81;
37230    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
37231    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
37232    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37233    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
37234    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
37235    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
37236    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
37237    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
37238    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
37239    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
37240    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
37241    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
37242    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
37243    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
37244    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
37245    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
37246    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
37247    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
37248    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
37249    l_rec_acct_attrs.array_num_value(14)  := p_source_109;
37250    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
37251    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
37252    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
37253    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
37254    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
37255    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
37256    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
37257    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
37258    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
37259    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
37260    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
37261    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
37262    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
37263    l_rec_acct_attrs.array_num_value(21)  := p_source_74;
37264    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
37265    l_rec_acct_attrs.array_num_value(22)  := p_source_75;
37266    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
37267    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
37268 
37269    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37273    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37270    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37271 
37272    ---------------------------------------------------------------------------------------------------------------
37274    ---------------------------------------------------------------------------------------------------------------
37275    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37276 
37277    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37278    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37279 
37280    IF xla_accounting_cache_pkg.GetValueChar
37281          (p_source_code         => 'LEDGER_CATEGORY_CODE'
37282          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37283    AND l_bflow_method_code = 'PRIOR_ENTRY'
37284 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37285    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37286          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37287        )
37288    THEN
37289          xla_ae_lines_pkg.BflowUpgEntry
37290            (p_business_method_code    => l_bflow_method_code
37291            ,p_business_class_code     => l_bflow_class_code
37292            ,p_balance_type            => l_balance_type_code);
37293    ELSE
37294       NULL;
37295 -- No business flow processing for business flow method of NONE.
37296    END IF;
37297 
37298    --
37299    -- call analytical criteria
37300    --
37301    
37302    --
37303    -- call description
37304    --
37305    -- No description or it is inherited.
37306    --
37307    -- call ADRs
37308    -- Bug 4922099
37309    --
37310    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37311         (NVL(l_actual_upg_option, 'N') = 'O') OR
37312         (NVL(l_enc_upg_option, 'N') = 'O')
37313       )
37314    THEN
37315    NULL;
37316    --
37317    --
37318    
37319   l_ccid := AcctDerRule_35(
37320            p_application_id           => p_application_id
37321          , p_ae_header_id             => l_ae_header_id 
37322 , p_source_23 => p_source_23
37323          , x_transaction_coa_id       => l_adr_transaction_coa_id
37324          , x_accounting_coa_id        => l_adr_accounting_coa_id
37325          , x_value_type_code          => l_adr_value_type_code
37326          , p_side                     => 'NA'
37327    );
37328 
37329    xla_ae_lines_pkg.set_ccid(
37330     p_code_combination_id          => l_ccid
37331   , p_value_type_code              => l_adr_value_type_code
37332   , p_transaction_coa_id           => l_adr_transaction_coa_id
37333   , p_accounting_coa_id            => l_adr_accounting_coa_id
37334   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
37335   , p_adr_type_code                => 'S'
37336   , p_component_type               => l_component_type
37337   , p_component_code               => l_component_code
37338   , p_component_type_code          => l_component_type_code
37339   , p_component_appl_id            => l_component_appl_id
37340   , p_amb_context_code             => l_amb_context_code
37341   , p_side                         => 'NA'
37342   );
37343 
37344 
37345    --
37346    --
37347    END IF;
37348    --
37349    -- Bug 4922099
37350    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37351           (NVL(l_enc_upg_option, 'N') = 'O')
37352         ) AND
37353         (l_bflow_method_code = 'PRIOR_ENTRY')
37354       )
37355    THEN
37356       IF
37357       --
37358       1 = 2
37359       --
37360       THEN
37361       xla_accounting_err_pkg.build_message
37362                                     (p_appli_s_name            => 'XLA'
37363                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37364                                     ,p_token_1                 => 'LINE_NUMBER'
37365                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
37366                                     ,p_token_2                 => 'LINE_TYPE_NAME'
37367                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
37368                                                                              l_component_type
37369                                                                             ,l_component_code
37370                                                                             ,l_component_type_code
37371                                                                             ,l_component_appl_id
37372                                                                             ,l_amb_context_code
37373                                                                             ,l_entity_code
37374                                                                             ,l_event_class_code
37375                                                                            )
37376                                     ,p_token_3                 => 'OWNER'
37377                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
37378                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
37379                                                                           ,p_lookup_code    => l_component_type_code
37380                                                                          )
37384                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37381                                     ,p_token_4                 => 'PRODUCT_NAME'
37382                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37383                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37385                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37386                                     ,p_ae_header_id            =>  NULL
37387                                        );
37388 
37389         IF (C_LEVEL_ERROR>= g_log_level) THEN
37390                  trace
37391                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37392                       ,p_level    => C_LEVEL_ERROR
37393                       ,p_module   => l_log_module);
37394         END IF;
37395       END IF;
37396    END IF;
37397    --
37398    --
37399    ------------------------------------------------------------------------------------------------
37400    -- 4219869 Business Flow
37401    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37402    -- Prior Entry.  Currently, the following code is always generated.
37403    ------------------------------------------------------------------------------------------------
37404    XLA_AE_LINES_PKG.ValidateCurrentLine;
37405 
37406    ------------------------------------------------------------------------------------
37407    -- 4219869 Business Flow
37408    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37409    ------------------------------------------------------------------------------------
37410    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37411 
37412    ----------------------------------------------------------------------------------
37413    -- 4219869 Business Flow
37414    -- Update journal entry status -- Need to generate this within IF <condition>
37415    ----------------------------------------------------------------------------------
37416    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37417          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37418          ,p_balance_type_code => l_balance_type_code
37419          );
37420 
37421    -------------------------------------------------------------------------------------------
37422    -- 4262811 - Generate the Accrual Reversal lines
37423    -------------------------------------------------------------------------------------------
37424    BEGIN
37425       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37426                               (g_array_event(p_event_id).array_value_num('header_index'));
37427       IF l_acc_rev_flag IS NULL THEN
37428          l_acc_rev_flag := 'N';
37429       END IF;
37430    EXCEPTION
37431       WHEN OTHERS THEN
37432          l_acc_rev_flag := 'N';
37433    END;
37434    --
37435    IF (l_acc_rev_flag = 'Y') THEN
37436 
37437        -- 4645092  ------------------------------------------------------------------------------
37438        -- To allow MPA report to determine if it should generate report process
37439        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37440        ------------------------------------------------------------------------------------------
37441 
37442        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37443        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37444    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
37445    -- call ADRs
37446    -- Bug 4922099
37447    --
37448    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37449         (NVL(l_actual_upg_option, 'N') = 'O') OR
37450         (NVL(l_enc_upg_option, 'N') = 'O')
37451       )
37452    THEN
37453    NULL;
37454    --
37455    --
37456    
37457   l_ccid := AcctDerRule_35(
37458            p_application_id           => p_application_id
37459          , p_ae_header_id             => l_ae_header_id 
37460 , p_source_23 => p_source_23
37461          , x_transaction_coa_id       => l_adr_transaction_coa_id
37462          , x_accounting_coa_id        => l_adr_accounting_coa_id
37463          , x_value_type_code          => l_adr_value_type_code
37464          , p_side                     => 'NA'
37465    );
37466 
37467    xla_ae_lines_pkg.set_ccid(
37468     p_code_combination_id          => l_ccid
37469   , p_value_type_code              => l_adr_value_type_code
37470   , p_transaction_coa_id           => l_adr_transaction_coa_id
37471   , p_accounting_coa_id            => l_adr_accounting_coa_id
37472   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
37473   , p_adr_type_code                => 'S'
37474   , p_component_type               => l_component_type
37475   , p_component_code               => l_component_code
37476   , p_component_type_code          => l_component_type_code
37477   , p_component_appl_id            => l_component_appl_id
37478   , p_amb_context_code             => l_amb_context_code
37479   , p_side                         => 'NA'
37480   );
37481 
37482 
37483    --
37484    --
37485    END IF;
37486 
37487        --
37488        -- Update the line information that should be overwritten
37489        --
37490        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37491                                          p_header_num   => 1);
37492        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
37493 
37494        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37495 
37496        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
37500       --
37497           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37498        END IF;
37499 
37501       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37502       --
37503       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37504           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
37505       ELSE
37506           ---------------------------------------------------------------------------------------------------
37507           -- 4262811a Switch Sign
37508           ---------------------------------------------------------------------------------------------------
37509           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
37510           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37511                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37512           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37513                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37514           -- 5132302
37515           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37516                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37517 
37518       END IF;
37519 
37520       -- 4955764
37521       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37522       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37523 
37524 
37525       XLA_AE_LINES_PKG.ValidateCurrentLine;
37526       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37527 
37528       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37529                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37530                ,p_balance_type_code => l_balance_type_code);
37531 
37532    END IF;
37533 
37534    -----------------------------------------------------------------------------------------
37535    -- 4262811 Multiperiod Accounting
37536    -----------------------------------------------------------------------------------------
37537      -- No MPA option is assigned.
37538 
37539 
37540 END IF;
37541 END IF;
37542 --
37543 
37544 --
37545 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37546    trace
37547       (p_msg      => 'END of AcctLineType_88'
37548       ,p_level    => C_LEVEL_PROCEDURE
37549       ,p_module   => l_log_module);
37550 END IF;
37551 --
37552 EXCEPTION
37553   WHEN xla_exceptions_pkg.application_exception THEN
37554       RAISE;
37555   WHEN OTHERS THEN
37556        xla_exceptions_pkg.raise_message
37557            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_88');
37558 END AcctLineType_88;
37559 --
37560 
37561 ---------------------------------------
37562 --
37563 -- PRIVATE FUNCTION
37564 --         AcctLineType_89
37565 --
37566 ---------------------------------------
37567 PROCEDURE AcctLineType_89 (
37568   p_application_id        IN NUMBER
37569  ,p_event_id              IN NUMBER
37570  ,p_calculate_acctd_flag  IN VARCHAR2
37571  ,p_calculate_g_l_flag    IN VARCHAR2
37572  ,p_actual_flag           IN OUT VARCHAR2
37573  ,p_balance_type_code     OUT VARCHAR2
37574  ,p_gain_or_loss_ref      OUT VARCHAR2
37575  
37576 --Bank Cash Account
37577  , p_source_5            IN NUMBER
37578 --Automatic Offsets Flag
37579  , p_source_35            IN VARCHAR2
37580  , p_source_35_meaning    IN VARCHAR2
37581 --Accounting Reversal Indicator
37582  , p_source_41            IN VARCHAR2
37583 --Distribution Link Type
37584  , p_source_43            IN VARCHAR2
37585 --Override Accounted Amount Indicator
37586  , p_source_68            IN VARCHAR2
37587  , p_source_68_meaning    IN VARCHAR2
37588 --Third Party Type
37589  , p_source_71            IN VARCHAR2
37590 --Invoice Distribution Tax Line Identifier
37591  , p_source_74            IN NUMBER
37592 --Invoice Distribution Tax Distribution Identifier from Tax
37593  , p_source_75            IN NUMBER
37594 --Invoice Distribution Summary Tax Line Identifier
37595  , p_source_76            IN NUMBER
37596 --Business Flow Accounts Payable Application Identifier
37597  , p_source_79            IN NUMBER
37598 --Business Flow Invoice Distribution Type
37599  , p_source_80            IN VARCHAR2
37600 --Business Flow Invoice Entity Code
37601  , p_source_81            IN VARCHAR2
37602 --Business Flow Invoice Distribution Identifier
37603  , p_source_82            IN NUMBER
37604 --Business Flow Invoice Identifier
37605  , p_source_83            IN NUMBER
37606 --When to Account for Payment Option
37607  , p_source_89            IN VARCHAR2
37608 --Payment Distribution Type
37609  , p_source_90            IN VARCHAR2
37610  , p_source_90_meaning    IN VARCHAR2
37611 --Payment Distribution Amount
37612  , p_source_91            IN NUMBER
37613 --Payment Distribution Identifier
37614  , p_source_96            IN NUMBER
37615 --Payment Supplier Identifier
37616  , p_source_102            IN NUMBER
37617 --Payment Supplier Site Identifier
37618  , p_source_103            IN NUMBER
37619 --Payment Distribution Reversed Identifier
37620  , p_source_104            IN NUMBER
37621 --Pooled Bank Account Option
37622  , p_source_105            IN VARCHAR2
37623  , p_source_105_meaning    IN VARCHAR2
37624 --Payment Currency Code
37625  , p_source_106            IN VARCHAR2
37629  , p_source_108            IN NUMBER
37626 --Payment Maturity Date
37627  , p_source_107            IN DATE
37628 --Payment Distribution (Payment Rate) Ledger Amount
37630 --Payment Exchange Date
37631  , p_source_110            IN DATE
37632 --Payment Exchange Rate
37633  , p_source_111            IN NUMBER
37634 --Payment Exchange Rate Type
37635  , p_source_112            IN VARCHAR2
37636 --Payment Type
37637  , p_source_115            IN VARCHAR2
37638  , p_source_115_meaning    IN VARCHAR2
37639 --Payment Processing Type
37640  , p_source_116            IN VARCHAR2
37641 --Invoice Distribution Amount of the Payment Distribution
37642  , p_source_117            IN NUMBER
37643 )
37644 IS
37645 
37646 l_component_type              VARCHAR2(80);
37647 l_component_code              VARCHAR2(30);
37648 l_component_type_code         VARCHAR2(1);
37649 l_component_appl_id           INTEGER;
37650 l_amb_context_code            VARCHAR2(30);
37651 l_entity_code                 VARCHAR2(30);
37652 l_event_class_code            VARCHAR2(30);
37653 l_ae_header_id                NUMBER;
37654 l_event_type_code             VARCHAR2(30);
37655 l_line_definition_code        VARCHAR2(30);
37656 l_line_definition_owner_code  VARCHAR2(1);
37657 --
37658 -- adr variables
37659 l_segment                     VARCHAR2(30);
37660 l_ccid                        NUMBER;
37661 l_adr_transaction_coa_id      NUMBER;
37662 l_adr_accounting_coa_id       NUMBER;
37663 l_adr_flexfield_segment_code  VARCHAR2(30);
37664 l_adr_flex_value_set_id       NUMBER;
37665 l_adr_value_type_code         VARCHAR2(30);
37666 l_adr_value_combination_id    NUMBER;
37667 l_adr_value_segment_code      VARCHAR2(30);
37668 
37669 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
37670 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
37671 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
37672 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
37673 
37674 -- 4262811 Variables ------------------------------------------------------------------------------------------
37675 l_entered_amt_idx             NUMBER;
37676 l_accted_amt_idx              NUMBER;
37677 l_acc_rev_flag                VARCHAR2(1);
37678 l_accrual_line_num            NUMBER;
37679 l_tmp_amt                     NUMBER;
37680 l_acc_rev_natural_side_code   VARCHAR2(1);
37681 
37682 l_num_entries                 NUMBER;
37683 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
37684 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
37685 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
37686 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
37687 l_recog_line_1                NUMBER;
37688 l_recog_line_2                NUMBER;
37689 
37690 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
37691 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
37692 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
37693 
37694 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37695 
37696 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
37697 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
37698 
37699 ---------------------------------------------------------------------------------------------------------------
37700 
37701 
37702 --
37703 -- bulk performance
37704 --
37705 l_balance_type_code           VARCHAR2(1);
37706 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
37707 l_log_module                  VARCHAR2(240);
37708 
37709 --
37710 -- Upgrade strategy
37711 --
37712 l_actual_upg_option           VARCHAR2(1);
37713 l_enc_upg_option           VARCHAR2(1);
37714 
37715 --
37716 BEGIN
37717 --
37718 IF g_log_enabled THEN
37719       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_89';
37720 END IF;
37721 --
37722 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37723 
37724       trace
37725          (p_msg      => 'BEGIN of AcctLineType_89'
37726          ,p_level    => C_LEVEL_PROCEDURE
37727          ,p_module   => l_log_module);
37728 
37729 END IF;
37730 --
37731 l_component_type             := 'AMB_JLT';
37732 l_component_code             := 'AP_CASH_PMT';
37733 l_component_type_code        := 'S';
37734 l_component_appl_id          :=  200;
37735 l_amb_context_code           := 'DEFAULT';
37736 l_entity_code                := 'AP_PAYMENTS';
37737 l_event_class_code           := 'PAYMENTS';
37738 l_event_type_code            := 'PAYMENTS_ALL';
37739 l_line_definition_owner_code := 'S';
37740 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
37741 --
37742 l_balance_type_code          := 'A';
37743 l_segment                     := NULL;
37744 l_ccid                        := NULL;
37745 l_adr_transaction_coa_id      := NULL;
37746 l_adr_accounting_coa_id       := NULL;
37747 l_adr_flexfield_segment_code  := NULL;
37748 l_adr_flex_value_set_id       := NULL;
37749 l_adr_value_type_code         := NULL;
37750 l_adr_value_combination_id    := NULL;
37751 l_adr_value_segment_code      := NULL;
37752 
37753 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
37754 l_bflow_class_code           := '';    -- 4219869 Business Flow
37755 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
37756 l_budgetary_control_flag     := 'N';
37757 
37758 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
37759 l_bflow_applied_to_amt       := NULL; -- 5132302
37760 l_entered_amt_idx            := NULL;          -- 4262811
37764 l_tmp_amt                    := NULL;          -- 4262811
37761 l_accted_amt_idx             := NULL;          -- 4262811
37762 l_acc_rev_flag               := NULL;          -- 4262811
37763 l_accrual_line_num           := NULL;          -- 4262811
37765 --
37766  
37767 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37768     l_balance_type_code <> 'B' THEN
37769 IF NVL(p_source_89,'
37770 ') =  'ISSUE_ISSUE' AND 
37771 (NVL(p_source_35,'
37772 ') <>  'Y' OR 
37773 NVL(p_source_35,'
37774 ') =  'Y' AND 
37775 NVL(p_source_105,'
37776 ') <>  'Y') AND 
37777 p_source_107 IS NULL AND 
37778 NVL(p_source_90,'
37779 ') =  'CASH' AND 
37780 NVL(p_source_115,'
37781 ') <>  'R' AND 
37782 NVL(p_source_116,'
37783 ') <>  'PAYMENTCARD'
37784  THEN 
37785 
37786    --
37787    XLA_AE_LINES_PKG.SetNewLine;
37788 
37789    p_balance_type_code          := l_balance_type_code;
37790    -- set the flag so later we will know whether the gain loss line needs to be created
37791    
37792    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37793      p_actual_flag :='A';
37794    END IF;
37795 
37796    --
37797    -- bulk performance
37798    --
37799    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37800                                       p_header_num   => 0); -- 4262811
37801    --
37802    -- set accounting line options
37803    --
37804    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37805            p_natural_side_code          => 'C'
37806          , p_gain_or_loss_flag          => 'N'
37807          , p_gl_transfer_mode_code      => 'S'
37808          , p_acct_entry_type_code       => 'A'
37809          , p_switch_side_flag           => 'Y'
37810          , p_merge_duplicate_code       => 'A'
37811          );
37812    --
37813    l_acc_rev_natural_side_code := 'D';  -- 4262811
37814    -- 
37815    --
37816    -- set accounting line type info
37817    --
37818    xla_ae_lines_pkg.SetAcctLineType
37819       (p_component_type             => l_component_type
37820       ,p_event_type_code            => l_event_type_code
37821       ,p_line_definition_owner_code => l_line_definition_owner_code
37822       ,p_line_definition_code       => l_line_definition_code
37823       ,p_accounting_line_code       => l_component_code
37824       ,p_accounting_line_type_code  => l_component_type_code
37825       ,p_accounting_line_appl_id    => l_component_appl_id
37826       ,p_amb_context_code           => l_amb_context_code
37827       ,p_entity_code                => l_entity_code
37828       ,p_event_class_code           => l_event_class_code);
37829    --
37830    -- set accounting class
37831    --
37832    xla_ae_lines_pkg.SetAcctClass(
37833            p_accounting_class_code  => 'CASH'
37834          , p_ae_header_id           => l_ae_header_id
37835          );
37836 
37837    --
37838    -- set rounding class
37839    --
37840    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37841                       'CASH';
37842 
37843    --
37844    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37845    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37846    --
37847    -- bulk performance
37848    --
37849    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37850 
37851    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37852       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37853 
37854    -- 4955764
37855    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37856       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37857 
37858    -- 4458381 Public Sector Enh
37859    
37860    --
37861    -- set accounting attributes for the line type
37862    --
37863    l_entered_amt_idx := 10;
37864    l_accted_amt_idx  := 15;
37865    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
37866    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37867    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
37868    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
37869    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
37870    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
37871    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
37872    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37873    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
37874    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
37875    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
37876    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
37877    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
37878    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37879    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
37880    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
37881    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
37882    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
37883    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
37884    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
37885    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
37886    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
37887    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
37888    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
37892    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
37889    l_rec_acct_attrs.array_date_value(12)  := p_source_110;
37890    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
37891    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
37893    l_rec_acct_attrs.array_char_value(14)  := p_source_112;
37894    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
37895    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
37896    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
37897    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
37898    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
37899    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
37900    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
37901    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
37902    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
37903    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
37904    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
37905    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
37906    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
37907    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
37908    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
37909    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
37910    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
37911    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
37912    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
37913    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
37914 
37915    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37916    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37917 
37918    ---------------------------------------------------------------------------------------------------------------
37919    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37920    ---------------------------------------------------------------------------------------------------------------
37921    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37922 
37923    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37924    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37925 
37926    IF xla_accounting_cache_pkg.GetValueChar
37927          (p_source_code         => 'LEDGER_CATEGORY_CODE'
37928          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37929    AND l_bflow_method_code = 'PRIOR_ENTRY'
37930 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37931    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37932          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37933        )
37934    THEN
37935          xla_ae_lines_pkg.BflowUpgEntry
37936            (p_business_method_code    => l_bflow_method_code
37937            ,p_business_class_code     => l_bflow_class_code
37938            ,p_balance_type            => l_balance_type_code);
37939    ELSE
37940       NULL;
37941 -- No business flow processing for business flow method of NONE.
37942    END IF;
37943 
37944    --
37945    -- call analytical criteria
37946    --
37947    
37948    --
37949    -- call description
37950    --
37951    -- No description or it is inherited.
37952    --
37953    -- call ADRs
37954    -- Bug 4922099
37955    --
37956    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37957         (NVL(l_actual_upg_option, 'N') = 'O') OR
37958         (NVL(l_enc_upg_option, 'N') = 'O')
37959       )
37960    THEN
37961    NULL;
37962    --
37963    --
37964    
37965   l_ccid := AcctDerRule_27(
37966            p_application_id           => p_application_id
37967          , p_ae_header_id             => l_ae_header_id 
37968 , p_source_5 => p_source_5
37969          , x_transaction_coa_id       => l_adr_transaction_coa_id
37970          , x_accounting_coa_id        => l_adr_accounting_coa_id
37971          , x_value_type_code          => l_adr_value_type_code
37972          , p_side                     => 'NA'
37973    );
37974 
37975    xla_ae_lines_pkg.set_ccid(
37976     p_code_combination_id          => l_ccid
37977   , p_value_type_code              => l_adr_value_type_code
37978   , p_transaction_coa_id           => l_adr_transaction_coa_id
37979   , p_accounting_coa_id            => l_adr_accounting_coa_id
37980   , p_adr_code                     => 'AP_CASH'
37981   , p_adr_type_code                => 'S'
37982   , p_component_type               => l_component_type
37983   , p_component_code               => l_component_code
37984   , p_component_type_code          => l_component_type_code
37985   , p_component_appl_id            => l_component_appl_id
37986   , p_amb_context_code             => l_amb_context_code
37987   , p_side                         => 'NA'
37988   );
37989 
37990 
37991    --
37992    --
37993    END IF;
37994    --
37995    -- Bug 4922099
37996    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37997           (NVL(l_enc_upg_option, 'N') = 'O')
37998         ) AND
37999         (l_bflow_method_code = 'PRIOR_ENTRY')
38000       )
38001    THEN
38002       IF
38003       --
38004       1 = 2
38005       --
38006       THEN
38007       xla_accounting_err_pkg.build_message
38008                                     (p_appli_s_name            => 'XLA'
38009                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38013                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
38010                                     ,p_token_1                 => 'LINE_NUMBER'
38011                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
38012                                     ,p_token_2                 => 'LINE_TYPE_NAME'
38014                                                                              l_component_type
38015                                                                             ,l_component_code
38016                                                                             ,l_component_type_code
38017                                                                             ,l_component_appl_id
38018                                                                             ,l_amb_context_code
38019                                                                             ,l_entity_code
38020                                                                             ,l_event_class_code
38021                                                                            )
38022                                     ,p_token_3                 => 'OWNER'
38023                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
38024                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
38025                                                                           ,p_lookup_code    => l_component_type_code
38026                                                                          )
38027                                     ,p_token_4                 => 'PRODUCT_NAME'
38028                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38029                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38030                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38031                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38032                                     ,p_ae_header_id            =>  NULL
38033                                        );
38034 
38035         IF (C_LEVEL_ERROR>= g_log_level) THEN
38036                  trace
38037                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38038                       ,p_level    => C_LEVEL_ERROR
38039                       ,p_module   => l_log_module);
38040         END IF;
38041       END IF;
38042    END IF;
38043    --
38044    --
38045    ------------------------------------------------------------------------------------------------
38046    -- 4219869 Business Flow
38047    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38048    -- Prior Entry.  Currently, the following code is always generated.
38049    ------------------------------------------------------------------------------------------------
38050    XLA_AE_LINES_PKG.ValidateCurrentLine;
38051 
38052    ------------------------------------------------------------------------------------
38053    -- 4219869 Business Flow
38054    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38055    ------------------------------------------------------------------------------------
38056    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38057 
38058    ----------------------------------------------------------------------------------
38059    -- 4219869 Business Flow
38060    -- Update journal entry status -- Need to generate this within IF <condition>
38061    ----------------------------------------------------------------------------------
38062    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38063          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38064          ,p_balance_type_code => l_balance_type_code
38065          );
38066 
38067    -------------------------------------------------------------------------------------------
38068    -- 4262811 - Generate the Accrual Reversal lines
38069    -------------------------------------------------------------------------------------------
38070    BEGIN
38071       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38072                               (g_array_event(p_event_id).array_value_num('header_index'));
38073       IF l_acc_rev_flag IS NULL THEN
38074          l_acc_rev_flag := 'N';
38075       END IF;
38076    EXCEPTION
38077       WHEN OTHERS THEN
38078          l_acc_rev_flag := 'N';
38079    END;
38080    --
38081    IF (l_acc_rev_flag = 'Y') THEN
38082 
38083        -- 4645092  ------------------------------------------------------------------------------
38084        -- To allow MPA report to determine if it should generate report process
38085        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38086        ------------------------------------------------------------------------------------------
38087 
38088        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38089        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38090    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
38091    -- call ADRs
38092    -- Bug 4922099
38093    --
38094    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38095         (NVL(l_actual_upg_option, 'N') = 'O') OR
38096         (NVL(l_enc_upg_option, 'N') = 'O')
38097       )
38098    THEN
38099    NULL;
38100    --
38101    --
38102    
38103   l_ccid := AcctDerRule_27(
38104            p_application_id           => p_application_id
38105          , p_ae_header_id             => l_ae_header_id 
38106 , p_source_5 => p_source_5
38107          , x_transaction_coa_id       => l_adr_transaction_coa_id
38108          , x_accounting_coa_id        => l_adr_accounting_coa_id
38109          , x_value_type_code          => l_adr_value_type_code
38113    xla_ae_lines_pkg.set_ccid(
38110          , p_side                     => 'NA'
38111    );
38112 
38114     p_code_combination_id          => l_ccid
38115   , p_value_type_code              => l_adr_value_type_code
38116   , p_transaction_coa_id           => l_adr_transaction_coa_id
38117   , p_accounting_coa_id            => l_adr_accounting_coa_id
38118   , p_adr_code                     => 'AP_CASH'
38119   , p_adr_type_code                => 'S'
38120   , p_component_type               => l_component_type
38121   , p_component_code               => l_component_code
38122   , p_component_type_code          => l_component_type_code
38123   , p_component_appl_id            => l_component_appl_id
38124   , p_amb_context_code             => l_amb_context_code
38125   , p_side                         => 'NA'
38126   );
38127 
38128 
38129    --
38130    --
38131    END IF;
38132 
38133        --
38134        -- Update the line information that should be overwritten
38135        --
38136        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38137                                          p_header_num   => 1);
38138        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
38139 
38140        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38141 
38142        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
38143           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38144        END IF;
38145 
38146       --
38147       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38148       --
38149       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38150           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
38151       ELSE
38152           ---------------------------------------------------------------------------------------------------
38153           -- 4262811a Switch Sign
38154           ---------------------------------------------------------------------------------------------------
38155           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
38156           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38157                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38158           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38159                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38160           -- 5132302
38161           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38162                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38163 
38164       END IF;
38165 
38166       -- 4955764
38167       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38168       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38169 
38170 
38171       XLA_AE_LINES_PKG.ValidateCurrentLine;
38172       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38173 
38174       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38175                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38176                ,p_balance_type_code => l_balance_type_code);
38177 
38178    END IF;
38179 
38180    -----------------------------------------------------------------------------------------
38181    -- 4262811 Multiperiod Accounting
38182    -----------------------------------------------------------------------------------------
38183      -- No MPA option is assigned.
38184 
38185 
38186 END IF;
38187 END IF;
38188 --
38189 
38190 --
38191 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38192    trace
38193       (p_msg      => 'END of AcctLineType_89'
38194       ,p_level    => C_LEVEL_PROCEDURE
38195       ,p_module   => l_log_module);
38196 END IF;
38197 --
38198 EXCEPTION
38199   WHEN xla_exceptions_pkg.application_exception THEN
38200       RAISE;
38201   WHEN OTHERS THEN
38202        xla_exceptions_pkg.raise_message
38203            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_89');
38204 END AcctLineType_89;
38205 --
38206 
38207 ---------------------------------------
38208 --
38209 -- PRIVATE FUNCTION
38210 --         AcctLineType_90
38211 --
38212 ---------------------------------------
38213 PROCEDURE AcctLineType_90 (
38214   p_application_id        IN NUMBER
38215  ,p_event_id              IN NUMBER
38216  ,p_calculate_acctd_flag  IN VARCHAR2
38217  ,p_calculate_g_l_flag    IN VARCHAR2
38218  ,p_actual_flag           IN OUT VARCHAR2
38219  ,p_balance_type_code     OUT VARCHAR2
38220  ,p_gain_or_loss_ref      OUT VARCHAR2
38221  
38222 --Automatic Offsets Value
38223  , p_source_3            IN VARCHAR2
38224  , p_source_3_meaning    IN VARCHAR2
38225 --Bank Cash Account
38226  , p_source_5            IN NUMBER
38227 --Accounting Reversal Indicator
38228  , p_source_41            IN VARCHAR2
38229 --Distribution Link Type
38230  , p_source_43            IN VARCHAR2
38231 --Override Accounted Amount Indicator
38232  , p_source_68            IN VARCHAR2
38233  , p_source_68_meaning    IN VARCHAR2
38234 --Third Party Type
38235  , p_source_71            IN VARCHAR2
38239  , p_source_75            IN NUMBER
38236 --Invoice Distribution Tax Line Identifier
38237  , p_source_74            IN NUMBER
38238 --Invoice Distribution Tax Distribution Identifier from Tax
38240 --Invoice Distribution Summary Tax Line Identifier
38241  , p_source_76            IN NUMBER
38242 --Business Flow Accounts Payable Application Identifier
38243  , p_source_79            IN NUMBER
38244 --Business Flow Invoice Distribution Type
38245  , p_source_80            IN VARCHAR2
38246 --Business Flow Invoice Entity Code
38247  , p_source_81            IN VARCHAR2
38248 --Business Flow Invoice Distribution Identifier
38249  , p_source_82            IN NUMBER
38250 --Business Flow Invoice Identifier
38251  , p_source_83            IN NUMBER
38252 --When to Account for Payment Option
38253  , p_source_89            IN VARCHAR2
38254 --Payment Distribution Type
38255  , p_source_90            IN VARCHAR2
38256  , p_source_90_meaning    IN VARCHAR2
38257 --Payment Distribution Amount
38258  , p_source_91            IN NUMBER
38259 --Payment Distribution Identifier
38260  , p_source_96            IN NUMBER
38261 --Payment Supplier Identifier
38262  , p_source_102            IN NUMBER
38263 --Payment Supplier Site Identifier
38264  , p_source_103            IN NUMBER
38265 --Payment Distribution Reversed Identifier
38266  , p_source_104            IN NUMBER
38267 --Pooled Bank Account Option
38268  , p_source_105            IN VARCHAR2
38269  , p_source_105_meaning    IN VARCHAR2
38270 --Payment Currency Code
38271  , p_source_106            IN VARCHAR2
38272 --Payment Maturity Date
38273  , p_source_107            IN DATE
38274 --Payment Distribution (Payment Rate) Ledger Amount
38275  , p_source_108            IN NUMBER
38276 --Payment Exchange Date
38277  , p_source_110            IN DATE
38278 --Payment Exchange Rate
38279  , p_source_111            IN NUMBER
38280 --Payment Exchange Rate Type
38281  , p_source_112            IN VARCHAR2
38282 --Payment Type
38283  , p_source_115            IN VARCHAR2
38284  , p_source_115_meaning    IN VARCHAR2
38285 --Payment Processing Type
38286  , p_source_116            IN VARCHAR2
38287 --Invoice Distribution Amount of the Payment Distribution
38288  , p_source_117            IN NUMBER
38289 )
38290 IS
38291 
38292 l_component_type              VARCHAR2(80);
38293 l_component_code              VARCHAR2(30);
38294 l_component_type_code         VARCHAR2(1);
38295 l_component_appl_id           INTEGER;
38296 l_amb_context_code            VARCHAR2(30);
38297 l_entity_code                 VARCHAR2(30);
38298 l_event_class_code            VARCHAR2(30);
38299 l_ae_header_id                NUMBER;
38300 l_event_type_code             VARCHAR2(30);
38301 l_line_definition_code        VARCHAR2(30);
38302 l_line_definition_owner_code  VARCHAR2(1);
38303 --
38304 -- adr variables
38305 l_segment                     VARCHAR2(30);
38306 l_ccid                        NUMBER;
38307 l_adr_transaction_coa_id      NUMBER;
38308 l_adr_accounting_coa_id       NUMBER;
38309 l_adr_flexfield_segment_code  VARCHAR2(30);
38310 l_adr_flex_value_set_id       NUMBER;
38311 l_adr_value_type_code         VARCHAR2(30);
38312 l_adr_value_combination_id    NUMBER;
38313 l_adr_value_segment_code      VARCHAR2(30);
38314 
38315 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
38316 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
38317 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
38318 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
38319 
38320 -- 4262811 Variables ------------------------------------------------------------------------------------------
38321 l_entered_amt_idx             NUMBER;
38322 l_accted_amt_idx              NUMBER;
38323 l_acc_rev_flag                VARCHAR2(1);
38324 l_accrual_line_num            NUMBER;
38325 l_tmp_amt                     NUMBER;
38326 l_acc_rev_natural_side_code   VARCHAR2(1);
38327 
38328 l_num_entries                 NUMBER;
38329 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
38330 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
38331 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
38332 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
38333 l_recog_line_1                NUMBER;
38334 l_recog_line_2                NUMBER;
38335 
38336 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
38337 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
38338 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
38339 
38340 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38341 
38342 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
38343 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
38344 
38345 ---------------------------------------------------------------------------------------------------------------
38346 
38347 
38348 --
38349 -- bulk performance
38350 --
38351 l_balance_type_code           VARCHAR2(1);
38352 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
38353 l_log_module                  VARCHAR2(240);
38354 
38355 --
38356 -- Upgrade strategy
38357 --
38358 l_actual_upg_option           VARCHAR2(1);
38359 l_enc_upg_option           VARCHAR2(1);
38360 
38361 --
38362 BEGIN
38363 --
38364 IF g_log_enabled THEN
38365       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_90';
38366 END IF;
38367 --
38368 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38369 
38370       trace
38374 
38371          (p_msg      => 'BEGIN of AcctLineType_90'
38372          ,p_level    => C_LEVEL_PROCEDURE
38373          ,p_module   => l_log_module);
38375 END IF;
38376 --
38377 l_component_type             := 'AMB_JLT';
38378 l_component_code             := 'AP_CASH_PMT_AOS_AS';
38379 l_component_type_code        := 'S';
38380 l_component_appl_id          :=  200;
38381 l_amb_context_code           := 'DEFAULT';
38382 l_entity_code                := 'AP_PAYMENTS';
38383 l_event_class_code           := 'PAYMENTS';
38384 l_event_type_code            := 'PAYMENTS_ALL';
38385 l_line_definition_owner_code := 'S';
38386 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
38387 --
38388 l_balance_type_code          := 'A';
38389 l_segment                     := NULL;
38390 l_ccid                        := NULL;
38391 l_adr_transaction_coa_id      := NULL;
38392 l_adr_accounting_coa_id       := NULL;
38393 l_adr_flexfield_segment_code  := NULL;
38394 l_adr_flex_value_set_id       := NULL;
38395 l_adr_value_type_code         := NULL;
38396 l_adr_value_combination_id    := NULL;
38397 l_adr_value_segment_code      := NULL;
38398 
38399 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
38400 l_bflow_class_code           := '';    -- 4219869 Business Flow
38401 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
38402 l_budgetary_control_flag     := 'N';
38403 
38404 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
38405 l_bflow_applied_to_amt       := NULL; -- 5132302
38406 l_entered_amt_idx            := NULL;          -- 4262811
38407 l_accted_amt_idx             := NULL;          -- 4262811
38408 l_acc_rev_flag               := NULL;          -- 4262811
38409 l_accrual_line_num           := NULL;          -- 4262811
38410 l_tmp_amt                    := NULL;          -- 4262811
38411 --
38412  
38413 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38414     l_balance_type_code <> 'B' THEN
38415 IF NVL(p_source_89,'
38416 ') =  'ISSUE_ISSUE' AND 
38417 (NVL(p_source_105,'
38418 ') =  'Y' AND 
38419 NVL(p_source_3,'
38420 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
38421 p_source_107 IS NULL AND 
38422 NVL(p_source_90,'
38423 ') =  'CASH' AND 
38424 NVL(p_source_115,'
38425 ') <>  'R' AND 
38426 NVL(p_source_116,'
38427 ') <>  'PAYMENTCARD'
38428  THEN 
38429 
38430    --
38431    XLA_AE_LINES_PKG.SetNewLine;
38432 
38433    p_balance_type_code          := l_balance_type_code;
38434    -- set the flag so later we will know whether the gain loss line needs to be created
38435    
38436    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38437      p_actual_flag :='A';
38438    END IF;
38439 
38440    --
38441    -- bulk performance
38442    --
38443    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38444                                       p_header_num   => 0); -- 4262811
38445    --
38446    -- set accounting line options
38447    --
38448    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38449            p_natural_side_code          => 'C'
38450          , p_gain_or_loss_flag          => 'N'
38451          , p_gl_transfer_mode_code      => 'S'
38452          , p_acct_entry_type_code       => 'A'
38453          , p_switch_side_flag           => 'Y'
38454          , p_merge_duplicate_code       => 'A'
38455          );
38456    --
38457    l_acc_rev_natural_side_code := 'D';  -- 4262811
38458    -- 
38459    --
38460    -- set accounting line type info
38461    --
38462    xla_ae_lines_pkg.SetAcctLineType
38463       (p_component_type             => l_component_type
38464       ,p_event_type_code            => l_event_type_code
38465       ,p_line_definition_owner_code => l_line_definition_owner_code
38466       ,p_line_definition_code       => l_line_definition_code
38467       ,p_accounting_line_code       => l_component_code
38468       ,p_accounting_line_type_code  => l_component_type_code
38469       ,p_accounting_line_appl_id    => l_component_appl_id
38470       ,p_amb_context_code           => l_amb_context_code
38471       ,p_entity_code                => l_entity_code
38472       ,p_event_class_code           => l_event_class_code);
38473    --
38474    -- set accounting class
38475    --
38476    xla_ae_lines_pkg.SetAcctClass(
38477            p_accounting_class_code  => 'CASH'
38478          , p_ae_header_id           => l_ae_header_id
38479          );
38480 
38481    --
38482    -- set rounding class
38483    --
38484    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38485                       'CASH';
38486 
38487    --
38488    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38489    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38490    --
38491    -- bulk performance
38492    --
38493    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38494 
38495    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38496       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38497 
38498    -- 4955764
38499    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38500       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38501 
38502    -- 4458381 Public Sector Enh
38503    
38504    --
38505    -- set accounting attributes for the line type
38506    --
38507    l_entered_amt_idx := 10;
38508    l_accted_amt_idx  := 15;
38512    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
38509    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
38510    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38511    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
38513    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
38514    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
38515    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
38516    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
38517    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
38518    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
38519    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
38520    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
38521    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
38522    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
38523    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
38524    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
38525    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
38526    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
38527    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
38528    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
38529    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
38530    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
38531    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
38532    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
38533    l_rec_acct_attrs.array_date_value(12)  := p_source_110;
38534    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
38535    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
38536    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
38537    l_rec_acct_attrs.array_char_value(14)  := p_source_112;
38538    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
38539    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
38540    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
38541    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
38542    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
38543    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
38544    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
38545    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
38546    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
38547    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
38548    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
38549    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
38550    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
38551    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
38552    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
38553    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
38554    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
38555    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
38556    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
38557    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
38558 
38559    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38560    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38561 
38562    ---------------------------------------------------------------------------------------------------------------
38563    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38564    ---------------------------------------------------------------------------------------------------------------
38565    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38566 
38567    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38568    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38569 
38570    IF xla_accounting_cache_pkg.GetValueChar
38571          (p_source_code         => 'LEDGER_CATEGORY_CODE'
38572          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38573    AND l_bflow_method_code = 'PRIOR_ENTRY'
38574 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38575    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38576          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38577        )
38578    THEN
38579          xla_ae_lines_pkg.BflowUpgEntry
38580            (p_business_method_code    => l_bflow_method_code
38581            ,p_business_class_code     => l_bflow_class_code
38582            ,p_balance_type            => l_balance_type_code);
38583    ELSE
38584       NULL;
38585 XLA_AE_LINES_PKG.business_flow_validation(
38586                                 p_business_method_code     => l_bflow_method_code
38587                                ,p_business_class_code      => l_bflow_class_code
38588                                ,p_inherit_description_flag => l_inherit_desc_flag);
38589    END IF;
38590 
38591    --
38592    -- call analytical criteria
38593    --
38594    
38595    --
38596    -- call description
38597    --
38598    -- No description or it is inherited.
38599    --
38600    -- call ADRs
38601    -- Bug 4922099
38602    --
38603    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38604         (NVL(l_actual_upg_option, 'N') = 'O') OR
38605         (NVL(l_enc_upg_option, 'N') = 'O')
38606       )
38607    THEN
38608    NULL;
38609    --
38610    --
38611    
38612    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
38616    , p_accounting_coa_id        => null
38613      p_code_combination_id      => TO_NUMBER(C_NUM)
38614    , p_value_type_code          => NULL
38615    , p_transaction_coa_id       => null
38617    , p_adr_code                 => NULL
38618    , p_adr_type_code            => NULL
38619    , p_component_type           => l_component_type
38620    , p_component_code           => l_component_code
38621    , p_component_type_code      => l_component_type_code
38622    , p_component_appl_id        => l_component_appl_id
38623    , p_amb_context_code         => l_amb_context_code
38624    , p_side                     => NULL
38625    );
38626 
38627    
38628   -- initialise segments
38629   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38630   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38631   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38632   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38633   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38634   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38635   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38636   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38637   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38638   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38639   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38640   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38641   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38642   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38643   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38644   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38645   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38646   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38647   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38648   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38649   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38650   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38651   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38652   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38653   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38654   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38655   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38656   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38657   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38658   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38659   --
38660 
38661    --
38662 
38663 
38664    l_segment := AcctDerRule_5(
38665            p_application_id           => p_application_id
38666          , p_ae_header_id             => l_ae_header_id 
38667 , p_source_5 => p_source_5
38668          , x_transaction_coa_id       => l_adr_transaction_coa_id
38669          , x_accounting_coa_id        => l_adr_accounting_coa_id
38670          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
38671          , x_flex_value_set_id        => l_adr_flex_value_set_id
38672          , x_value_type_code          => l_adr_value_type_code
38673          , x_value_combination_id     => l_adr_value_combination_id
38674          , x_value_segment_code       => l_adr_value_segment_code
38675          , p_side                     => 'NA'
38676          , p_override_seg_flag        => 'Y'
38677    );
38678 
38679    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
38680 
38681       xla_ae_lines_pkg.set_segment(
38682           p_to_segment_code         => 'GL_ACCOUNT'
38683         , p_segment_value           => l_segment
38684         , p_from_segment_code       => l_adr_value_segment_code
38685         , p_from_combination_id     => l_adr_value_combination_id
38686         , p_value_type_code         => l_adr_value_type_code
38687         , p_transaction_coa_id      => l_adr_transaction_coa_id
38688         , p_accounting_coa_id       => l_adr_accounting_coa_id
38689         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
38690         , p_flex_value_set_id       => l_adr_flex_value_set_id
38691         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
38692         , p_adr_type_code           => 'S'
38693         , p_component_type          => l_component_type
38694         , p_component_code          => l_component_code
38695         , p_component_type_code     => l_component_type_code
38696         , p_component_appl_id       => l_component_appl_id
38697         , p_amb_context_code        => l_amb_context_code
38698         , p_entity_code             => 'AP_PAYMENTS'
38699         , p_event_class_code        => 'PAYMENTS'
38700         , p_side                    => 'NA'
38701         );
38702 
38703   END IF;
38704 
38705    --
38706    --
38707    END IF;
38708    --
38709    -- Bug 4922099
38710    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38711           (NVL(l_enc_upg_option, 'N') = 'O')
38712         ) AND
38713         (l_bflow_method_code = 'PRIOR_ENTRY')
38714       )
38715    THEN
38719       --
38716       IF
38717       --
38718       1 = 2
38720       THEN
38721       xla_accounting_err_pkg.build_message
38722                                     (p_appli_s_name            => 'XLA'
38723                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38724                                     ,p_token_1                 => 'LINE_NUMBER'
38725                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
38726                                     ,p_token_2                 => 'LINE_TYPE_NAME'
38727                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
38728                                                                              l_component_type
38729                                                                             ,l_component_code
38730                                                                             ,l_component_type_code
38731                                                                             ,l_component_appl_id
38732                                                                             ,l_amb_context_code
38733                                                                             ,l_entity_code
38734                                                                             ,l_event_class_code
38735                                                                            )
38736                                     ,p_token_3                 => 'OWNER'
38737                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
38738                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
38739                                                                           ,p_lookup_code    => l_component_type_code
38740                                                                          )
38741                                     ,p_token_4                 => 'PRODUCT_NAME'
38742                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38743                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38744                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38745                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38746                                     ,p_ae_header_id            =>  NULL
38747                                        );
38748 
38749         IF (C_LEVEL_ERROR>= g_log_level) THEN
38750                  trace
38751                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38752                       ,p_level    => C_LEVEL_ERROR
38753                       ,p_module   => l_log_module);
38754         END IF;
38755       END IF;
38756    END IF;
38757    --
38758    --
38759    ------------------------------------------------------------------------------------------------
38760    -- 4219869 Business Flow
38761    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38762    -- Prior Entry.  Currently, the following code is always generated.
38763    ------------------------------------------------------------------------------------------------
38764    XLA_AE_LINES_PKG.ValidateCurrentLine;
38765 
38766    ------------------------------------------------------------------------------------
38767    -- 4219869 Business Flow
38768    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38769    ------------------------------------------------------------------------------------
38770    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38771 
38772    ----------------------------------------------------------------------------------
38773    -- 4219869 Business Flow
38774    -- Update journal entry status -- Need to generate this within IF <condition>
38775    ----------------------------------------------------------------------------------
38776    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38777          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38778          ,p_balance_type_code => l_balance_type_code
38779          );
38780 
38781    -------------------------------------------------------------------------------------------
38782    -- 4262811 - Generate the Accrual Reversal lines
38783    -------------------------------------------------------------------------------------------
38784    BEGIN
38785       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38786                               (g_array_event(p_event_id).array_value_num('header_index'));
38787       IF l_acc_rev_flag IS NULL THEN
38788          l_acc_rev_flag := 'N';
38789       END IF;
38790    EXCEPTION
38791       WHEN OTHERS THEN
38792          l_acc_rev_flag := 'N';
38793    END;
38794    --
38795    IF (l_acc_rev_flag = 'Y') THEN
38796 
38797        -- 4645092  ------------------------------------------------------------------------------
38798        -- To allow MPA report to determine if it should generate report process
38799        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38800        ------------------------------------------------------------------------------------------
38801 
38802        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38803        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38804    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
38805    -- call ADRs
38806    -- Bug 4922099
38807    --
38808    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38809         (NVL(l_actual_upg_option, 'N') = 'O') OR
38810         (NVL(l_enc_upg_option, 'N') = 'O')
38811       )
38812    THEN
38813    NULL;
38817    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
38814    --
38815    --
38816    
38818      p_code_combination_id      => TO_NUMBER(C_NUM)
38819    , p_value_type_code          => NULL
38820    , p_transaction_coa_id       => null
38821    , p_accounting_coa_id        => null
38822    , p_adr_code                 => NULL
38823    , p_adr_type_code            => NULL
38824    , p_component_type           => l_component_type
38825    , p_component_code           => l_component_code
38826    , p_component_type_code      => l_component_type_code
38827    , p_component_appl_id        => l_component_appl_id
38828    , p_amb_context_code         => l_amb_context_code
38829    , p_side                     => NULL
38830    );
38831 
38832    
38833   -- initialise segments
38834   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38835   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38836   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38837   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38838   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38839   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38840   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38841   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38842   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38843   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38844   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38845   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38846   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38847   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38848   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38849   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38850   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38851   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38852   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38853   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38854   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38855   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38856   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38857   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38858   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38859   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38860   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38861   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38862   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38863   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38864   --
38865 
38866    --
38867 
38868 
38869    l_segment := AcctDerRule_5(
38870            p_application_id           => p_application_id
38871          , p_ae_header_id             => l_ae_header_id 
38872 , p_source_5 => p_source_5
38873          , x_transaction_coa_id       => l_adr_transaction_coa_id
38874          , x_accounting_coa_id        => l_adr_accounting_coa_id
38875          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
38876          , x_flex_value_set_id        => l_adr_flex_value_set_id
38877          , x_value_type_code          => l_adr_value_type_code
38878          , x_value_combination_id     => l_adr_value_combination_id
38879          , x_value_segment_code       => l_adr_value_segment_code
38880          , p_side                     => 'NA'
38881          , p_override_seg_flag        => 'Y'
38882    );
38883 
38884    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
38885 
38886       xla_ae_lines_pkg.set_segment(
38887           p_to_segment_code         => 'GL_ACCOUNT'
38888         , p_segment_value           => l_segment
38889         , p_from_segment_code       => l_adr_value_segment_code
38890         , p_from_combination_id     => l_adr_value_combination_id
38891         , p_value_type_code         => l_adr_value_type_code
38892         , p_transaction_coa_id      => l_adr_transaction_coa_id
38893         , p_accounting_coa_id       => l_adr_accounting_coa_id
38894         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
38895         , p_flex_value_set_id       => l_adr_flex_value_set_id
38896         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
38897         , p_adr_type_code           => 'S'
38898         , p_component_type          => l_component_type
38899         , p_component_code          => l_component_code
38900         , p_component_type_code     => l_component_type_code
38901         , p_component_appl_id       => l_component_appl_id
38902         , p_amb_context_code        => l_amb_context_code
38903         , p_entity_code             => 'AP_PAYMENTS'
38904         , p_event_class_code        => 'PAYMENTS'
38905         , p_side                    => 'NA'
38906         );
38907 
38908   END IF;
38909 
38910    --
38911    --
38912    END IF;
38913 
38914        --
38918                                          p_header_num   => 1);
38915        -- Update the line information that should be overwritten
38916        --
38917        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38919        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
38920 
38921        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38922 
38923        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
38924           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38925        END IF;
38926 
38927       --
38928       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38929       --
38930       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38931           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
38932       ELSE
38933           ---------------------------------------------------------------------------------------------------
38934           -- 4262811a Switch Sign
38935           ---------------------------------------------------------------------------------------------------
38936           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
38937           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38938                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38939           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38940                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38941           -- 5132302
38942           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38943                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38944 
38945       END IF;
38946 
38947       -- 4955764
38948       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38949       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38950 
38951 
38952       XLA_AE_LINES_PKG.ValidateCurrentLine;
38953       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38954 
38955       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38956                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38957                ,p_balance_type_code => l_balance_type_code);
38958 
38959    END IF;
38960 
38961    -----------------------------------------------------------------------------------------
38962    -- 4262811 Multiperiod Accounting
38963    -----------------------------------------------------------------------------------------
38964      -- No MPA option is assigned.
38965 
38966 
38967 END IF;
38968 END IF;
38969 --
38970 
38971 --
38972 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38973    trace
38974       (p_msg      => 'END of AcctLineType_90'
38975       ,p_level    => C_LEVEL_PROCEDURE
38976       ,p_module   => l_log_module);
38977 END IF;
38978 --
38979 EXCEPTION
38980   WHEN xla_exceptions_pkg.application_exception THEN
38981       RAISE;
38982   WHEN OTHERS THEN
38983        xla_exceptions_pkg.raise_message
38984            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_90');
38985 END AcctLineType_90;
38986 --
38987 
38988 ---------------------------------------
38989 --
38990 -- PRIVATE FUNCTION
38991 --         AcctLineType_91
38992 --
38993 ---------------------------------------
38994 PROCEDURE AcctLineType_91 (
38995   p_application_id        IN NUMBER
38996  ,p_event_id              IN NUMBER
38997  ,p_calculate_acctd_flag  IN VARCHAR2
38998  ,p_calculate_g_l_flag    IN VARCHAR2
38999  ,p_actual_flag           IN OUT VARCHAR2
39000  ,p_balance_type_code     OUT VARCHAR2
39001  ,p_gain_or_loss_ref      OUT VARCHAR2
39002  
39003 --Automatic Offsets Value
39004  , p_source_3            IN VARCHAR2
39005  , p_source_3_meaning    IN VARCHAR2
39006 --Bank Cash Account
39007  , p_source_5            IN NUMBER
39008 --Accounting Reversal Indicator
39009  , p_source_41            IN VARCHAR2
39010 --Distribution Link Type
39011  , p_source_43            IN VARCHAR2
39012 --Override Accounted Amount Indicator
39013  , p_source_68            IN VARCHAR2
39014  , p_source_68_meaning    IN VARCHAR2
39015 --Third Party Type
39016  , p_source_71            IN VARCHAR2
39017 --Invoice Distribution Tax Line Identifier
39018  , p_source_74            IN NUMBER
39019 --Invoice Distribution Tax Distribution Identifier from Tax
39020  , p_source_75            IN NUMBER
39021 --Invoice Distribution Summary Tax Line Identifier
39022  , p_source_76            IN NUMBER
39023 --Business Flow Accounts Payable Application Identifier
39024  , p_source_79            IN NUMBER
39025 --Business Flow Invoice Distribution Type
39026  , p_source_80            IN VARCHAR2
39027 --Business Flow Invoice Entity Code
39028  , p_source_81            IN VARCHAR2
39029 --Business Flow Invoice Distribution Identifier
39030  , p_source_82            IN NUMBER
39031 --Business Flow Invoice Identifier
39032  , p_source_83            IN NUMBER
39033 --When to Account for Payment Option
39034  , p_source_89            IN VARCHAR2
39035 --Payment Distribution Type
39036  , p_source_90            IN VARCHAR2
39040 --Payment Distribution Identifier
39037  , p_source_90_meaning    IN VARCHAR2
39038 --Payment Distribution Amount
39039  , p_source_91            IN NUMBER
39041  , p_source_96            IN NUMBER
39042 --Payment Supplier Identifier
39043  , p_source_102            IN NUMBER
39044 --Payment Supplier Site Identifier
39045  , p_source_103            IN NUMBER
39046 --Payment Distribution Reversed Identifier
39047  , p_source_104            IN NUMBER
39048 --Pooled Bank Account Option
39049  , p_source_105            IN VARCHAR2
39050  , p_source_105_meaning    IN VARCHAR2
39051 --Payment Currency Code
39052  , p_source_106            IN VARCHAR2
39053 --Payment Maturity Date
39054  , p_source_107            IN DATE
39055 --Payment Distribution (Payment Rate) Ledger Amount
39056  , p_source_108            IN NUMBER
39057 --Payment Exchange Date
39058  , p_source_110            IN DATE
39059 --Payment Exchange Rate
39060  , p_source_111            IN NUMBER
39061 --Payment Exchange Rate Type
39062  , p_source_112            IN VARCHAR2
39063 --Payment Type
39064  , p_source_115            IN VARCHAR2
39065  , p_source_115_meaning    IN VARCHAR2
39066 --Payment Processing Type
39067  , p_source_116            IN VARCHAR2
39068 --Invoice Distribution Amount of the Payment Distribution
39069  , p_source_117            IN NUMBER
39070 )
39071 IS
39072 
39073 l_component_type              VARCHAR2(80);
39074 l_component_code              VARCHAR2(30);
39075 l_component_type_code         VARCHAR2(1);
39076 l_component_appl_id           INTEGER;
39077 l_amb_context_code            VARCHAR2(30);
39078 l_entity_code                 VARCHAR2(30);
39079 l_event_class_code            VARCHAR2(30);
39080 l_ae_header_id                NUMBER;
39081 l_event_type_code             VARCHAR2(30);
39082 l_line_definition_code        VARCHAR2(30);
39083 l_line_definition_owner_code  VARCHAR2(1);
39084 --
39085 -- adr variables
39086 l_segment                     VARCHAR2(30);
39087 l_ccid                        NUMBER;
39088 l_adr_transaction_coa_id      NUMBER;
39089 l_adr_accounting_coa_id       NUMBER;
39090 l_adr_flexfield_segment_code  VARCHAR2(30);
39091 l_adr_flex_value_set_id       NUMBER;
39092 l_adr_value_type_code         VARCHAR2(30);
39093 l_adr_value_combination_id    NUMBER;
39094 l_adr_value_segment_code      VARCHAR2(30);
39095 
39096 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
39097 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
39098 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
39099 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
39100 
39101 -- 4262811 Variables ------------------------------------------------------------------------------------------
39102 l_entered_amt_idx             NUMBER;
39103 l_accted_amt_idx              NUMBER;
39104 l_acc_rev_flag                VARCHAR2(1);
39105 l_accrual_line_num            NUMBER;
39106 l_tmp_amt                     NUMBER;
39107 l_acc_rev_natural_side_code   VARCHAR2(1);
39108 
39109 l_num_entries                 NUMBER;
39110 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
39111 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
39112 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
39113 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
39114 l_recog_line_1                NUMBER;
39115 l_recog_line_2                NUMBER;
39116 
39117 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
39118 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
39119 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
39120 
39121 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39122 
39123 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
39124 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
39125 
39126 ---------------------------------------------------------------------------------------------------------------
39127 
39128 
39129 --
39130 -- bulk performance
39131 --
39132 l_balance_type_code           VARCHAR2(1);
39133 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
39134 l_log_module                  VARCHAR2(240);
39135 
39136 --
39137 -- Upgrade strategy
39138 --
39139 l_actual_upg_option           VARCHAR2(1);
39140 l_enc_upg_option           VARCHAR2(1);
39141 
39142 --
39143 BEGIN
39144 --
39145 IF g_log_enabled THEN
39146       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_91';
39147 END IF;
39148 --
39149 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39150 
39151       trace
39152          (p_msg      => 'BEGIN of AcctLineType_91'
39153          ,p_level    => C_LEVEL_PROCEDURE
39154          ,p_module   => l_log_module);
39155 
39156 END IF;
39157 --
39158 l_component_type             := 'AMB_JLT';
39159 l_component_code             := 'AP_CASH_PMT_AOS_BS';
39160 l_component_type_code        := 'S';
39161 l_component_appl_id          :=  200;
39162 l_amb_context_code           := 'DEFAULT';
39163 l_entity_code                := 'AP_PAYMENTS';
39164 l_event_class_code           := 'PAYMENTS';
39165 l_event_type_code            := 'PAYMENTS_ALL';
39166 l_line_definition_owner_code := 'S';
39167 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
39168 --
39169 l_balance_type_code          := 'A';
39170 l_segment                     := NULL;
39171 l_ccid                        := NULL;
39172 l_adr_transaction_coa_id      := NULL;
39173 l_adr_accounting_coa_id       := NULL;
39177 l_adr_value_combination_id    := NULL;
39174 l_adr_flexfield_segment_code  := NULL;
39175 l_adr_flex_value_set_id       := NULL;
39176 l_adr_value_type_code         := NULL;
39178 l_adr_value_segment_code      := NULL;
39179 
39180 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
39181 l_bflow_class_code           := '';    -- 4219869 Business Flow
39182 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
39183 l_budgetary_control_flag     := 'N';
39184 
39185 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
39186 l_bflow_applied_to_amt       := NULL; -- 5132302
39187 l_entered_amt_idx            := NULL;          -- 4262811
39188 l_accted_amt_idx             := NULL;          -- 4262811
39189 l_acc_rev_flag               := NULL;          -- 4262811
39190 l_accrual_line_num           := NULL;          -- 4262811
39191 l_tmp_amt                    := NULL;          -- 4262811
39192 --
39193  
39194 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39195     l_balance_type_code <> 'B' THEN
39196 IF NVL(p_source_89,'
39197 ') =  'ISSUE_ISSUE' AND 
39198 (NVL(p_source_105,'
39199 ') =  'Y' AND 
39200 NVL(p_source_3,'
39201 ') =  'BALANCING_SEGMENT') AND 
39202 p_source_107 IS NULL AND 
39203 NVL(p_source_90,'
39204 ') =  'CASH' AND 
39205 NVL(p_source_115,'
39206 ') <>  'R' AND 
39207 NVL(p_source_116,'
39208 ') <>  'PAYMENTCARD'
39209  THEN 
39210 
39211    --
39212    XLA_AE_LINES_PKG.SetNewLine;
39213 
39214    p_balance_type_code          := l_balance_type_code;
39215    -- set the flag so later we will know whether the gain loss line needs to be created
39216    
39217    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39218      p_actual_flag :='A';
39219    END IF;
39220 
39221    --
39222    -- bulk performance
39223    --
39224    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39225                                       p_header_num   => 0); -- 4262811
39226    --
39227    -- set accounting line options
39228    --
39229    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39230            p_natural_side_code          => 'C'
39231          , p_gain_or_loss_flag          => 'N'
39232          , p_gl_transfer_mode_code      => 'S'
39233          , p_acct_entry_type_code       => 'A'
39234          , p_switch_side_flag           => 'Y'
39235          , p_merge_duplicate_code       => 'A'
39236          );
39237    --
39238    l_acc_rev_natural_side_code := 'D';  -- 4262811
39239    -- 
39240    --
39241    -- set accounting line type info
39242    --
39243    xla_ae_lines_pkg.SetAcctLineType
39244       (p_component_type             => l_component_type
39245       ,p_event_type_code            => l_event_type_code
39246       ,p_line_definition_owner_code => l_line_definition_owner_code
39247       ,p_line_definition_code       => l_line_definition_code
39248       ,p_accounting_line_code       => l_component_code
39249       ,p_accounting_line_type_code  => l_component_type_code
39250       ,p_accounting_line_appl_id    => l_component_appl_id
39251       ,p_amb_context_code           => l_amb_context_code
39252       ,p_entity_code                => l_entity_code
39253       ,p_event_class_code           => l_event_class_code);
39254    --
39255    -- set accounting class
39256    --
39257    xla_ae_lines_pkg.SetAcctClass(
39258            p_accounting_class_code  => 'CASH'
39259          , p_ae_header_id           => l_ae_header_id
39260          );
39261 
39262    --
39263    -- set rounding class
39264    --
39265    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39266                       'CASH';
39267 
39268    --
39269    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39270    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39271    --
39272    -- bulk performance
39273    --
39274    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39275 
39276    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39277       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39278 
39279    -- 4955764
39280    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39281       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39282 
39283    -- 4458381 Public Sector Enh
39284    
39285    --
39286    -- set accounting attributes for the line type
39287    --
39288    l_entered_amt_idx := 10;
39289    l_accted_amt_idx  := 15;
39290    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
39291    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
39292    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
39293    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
39294    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
39295    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
39296    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
39297    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
39298    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
39299    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
39300    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
39301    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
39302    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
39303    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
39307    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
39304    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
39305    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
39306    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
39308    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
39309    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
39310    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
39311    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
39312    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
39313    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
39314    l_rec_acct_attrs.array_date_value(12)  := p_source_110;
39315    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
39316    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
39317    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
39318    l_rec_acct_attrs.array_char_value(14)  := p_source_112;
39319    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
39320    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
39321    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
39322    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
39323    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
39324    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
39325    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
39326    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
39327    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
39328    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
39329    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
39330    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
39331    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
39332    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
39333    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
39334    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
39335    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
39336    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
39337    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
39338    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
39339 
39340    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39341    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39342 
39343    ---------------------------------------------------------------------------------------------------------------
39344    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39345    ---------------------------------------------------------------------------------------------------------------
39346    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39347 
39348    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39349    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39350 
39351    IF xla_accounting_cache_pkg.GetValueChar
39352          (p_source_code         => 'LEDGER_CATEGORY_CODE'
39353          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39354    AND l_bflow_method_code = 'PRIOR_ENTRY'
39355 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39356    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39357          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39358        )
39359    THEN
39360          xla_ae_lines_pkg.BflowUpgEntry
39361            (p_business_method_code    => l_bflow_method_code
39362            ,p_business_class_code     => l_bflow_class_code
39363            ,p_balance_type            => l_balance_type_code);
39364    ELSE
39365       NULL;
39366 XLA_AE_LINES_PKG.business_flow_validation(
39367                                 p_business_method_code     => l_bflow_method_code
39368                                ,p_business_class_code      => l_bflow_class_code
39369                                ,p_inherit_description_flag => l_inherit_desc_flag);
39370    END IF;
39371 
39372    --
39373    -- call analytical criteria
39374    --
39375    
39376    --
39377    -- call description
39378    --
39379    -- No description or it is inherited.
39380    --
39381    -- call ADRs
39382    -- Bug 4922099
39383    --
39384    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39385         (NVL(l_actual_upg_option, 'N') = 'O') OR
39386         (NVL(l_enc_upg_option, 'N') = 'O')
39387       )
39388    THEN
39389    NULL;
39390    --
39391    --
39392    
39393   l_ccid := AcctDerRule_27(
39394            p_application_id           => p_application_id
39395          , p_ae_header_id             => l_ae_header_id 
39396 , p_source_5 => p_source_5
39397          , x_transaction_coa_id       => l_adr_transaction_coa_id
39398          , x_accounting_coa_id        => l_adr_accounting_coa_id
39399          , x_value_type_code          => l_adr_value_type_code
39400          , p_side                     => 'NA'
39401    );
39402 
39403    xla_ae_lines_pkg.set_ccid(
39404     p_code_combination_id          => l_ccid
39405   , p_value_type_code              => l_adr_value_type_code
39406   , p_transaction_coa_id           => l_adr_transaction_coa_id
39407   , p_accounting_coa_id            => l_adr_accounting_coa_id
39408   , p_adr_code                     => 'AP_CASH'
39409   , p_adr_type_code                => 'S'
39410   , p_component_type               => l_component_type
39411   , p_component_code               => l_component_code
39412   , p_component_type_code          => l_component_type_code
39416   );
39413   , p_component_appl_id            => l_component_appl_id
39414   , p_amb_context_code             => l_amb_context_code
39415   , p_side                         => 'NA'
39417 
39418 
39419    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
39420      p_to_segment_code         => 'GL_BALANCING'
39421    , p_segment_value           => C_CHAR
39422    , p_from_segment_code       => NULL
39423    , p_from_combination_id     => NULL
39424    , p_value_type_code         => NULL
39425    , p_transaction_coa_id      => null
39426    , p_accounting_coa_id       => null
39427    , p_flexfield_segment_code  => NULL
39428    , p_flex_value_set_id       => NULL
39429    , p_adr_code                => NULL
39430    , p_adr_type_code           => NULL
39431    , p_component_type          => l_component_type
39432    , p_component_code          => l_component_code
39433    , p_component_type_code     => l_component_type_code
39434    , p_component_appl_id       => l_component_appl_id
39435    , p_amb_context_code        => l_amb_context_code
39436    , p_entity_code             => 'AP_PAYMENTS'
39437    , p_event_class_code        => 'PAYMENTS'
39438    , p_side                    => 'NA'
39439    );
39440    --
39441 
39442 
39443    --
39444    --
39445    END IF;
39446    --
39447    -- Bug 4922099
39448    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39449           (NVL(l_enc_upg_option, 'N') = 'O')
39450         ) AND
39451         (l_bflow_method_code = 'PRIOR_ENTRY')
39452       )
39453    THEN
39454       IF
39455       --
39456       1 = 2
39457       --
39458       THEN
39459       xla_accounting_err_pkg.build_message
39460                                     (p_appli_s_name            => 'XLA'
39461                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39462                                     ,p_token_1                 => 'LINE_NUMBER'
39463                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
39464                                     ,p_token_2                 => 'LINE_TYPE_NAME'
39465                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
39466                                                                              l_component_type
39467                                                                             ,l_component_code
39468                                                                             ,l_component_type_code
39469                                                                             ,l_component_appl_id
39470                                                                             ,l_amb_context_code
39471                                                                             ,l_entity_code
39472                                                                             ,l_event_class_code
39473                                                                            )
39474                                     ,p_token_3                 => 'OWNER'
39475                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
39476                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
39477                                                                           ,p_lookup_code    => l_component_type_code
39478                                                                          )
39479                                     ,p_token_4                 => 'PRODUCT_NAME'
39480                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39481                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39482                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39483                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39484                                     ,p_ae_header_id            =>  NULL
39485                                        );
39486 
39487         IF (C_LEVEL_ERROR>= g_log_level) THEN
39488                  trace
39489                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39490                       ,p_level    => C_LEVEL_ERROR
39491                       ,p_module   => l_log_module);
39492         END IF;
39493       END IF;
39494    END IF;
39495    --
39496    --
39497    ------------------------------------------------------------------------------------------------
39498    -- 4219869 Business Flow
39499    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39500    -- Prior Entry.  Currently, the following code is always generated.
39501    ------------------------------------------------------------------------------------------------
39502    XLA_AE_LINES_PKG.ValidateCurrentLine;
39503 
39504    ------------------------------------------------------------------------------------
39505    -- 4219869 Business Flow
39506    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39507    ------------------------------------------------------------------------------------
39508    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39509 
39510    ----------------------------------------------------------------------------------
39511    -- 4219869 Business Flow
39512    -- Update journal entry status -- Need to generate this within IF <condition>
39513    ----------------------------------------------------------------------------------
39514    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39515          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39516          ,p_balance_type_code => l_balance_type_code
39517          );
39518 
39522    BEGIN
39519    -------------------------------------------------------------------------------------------
39520    -- 4262811 - Generate the Accrual Reversal lines
39521    -------------------------------------------------------------------------------------------
39523       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39524                               (g_array_event(p_event_id).array_value_num('header_index'));
39525       IF l_acc_rev_flag IS NULL THEN
39526          l_acc_rev_flag := 'N';
39527       END IF;
39528    EXCEPTION
39529       WHEN OTHERS THEN
39530          l_acc_rev_flag := 'N';
39531    END;
39532    --
39533    IF (l_acc_rev_flag = 'Y') THEN
39534 
39535        -- 4645092  ------------------------------------------------------------------------------
39536        -- To allow MPA report to determine if it should generate report process
39537        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39538        ------------------------------------------------------------------------------------------
39539 
39540        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39541        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39542    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
39543    -- call ADRs
39544    -- Bug 4922099
39545    --
39546    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39547         (NVL(l_actual_upg_option, 'N') = 'O') OR
39548         (NVL(l_enc_upg_option, 'N') = 'O')
39549       )
39550    THEN
39551    NULL;
39552    --
39553    --
39554    
39555   l_ccid := AcctDerRule_27(
39556            p_application_id           => p_application_id
39557          , p_ae_header_id             => l_ae_header_id 
39558 , p_source_5 => p_source_5
39559          , x_transaction_coa_id       => l_adr_transaction_coa_id
39560          , x_accounting_coa_id        => l_adr_accounting_coa_id
39561          , x_value_type_code          => l_adr_value_type_code
39562          , p_side                     => 'NA'
39563    );
39564 
39565    xla_ae_lines_pkg.set_ccid(
39566     p_code_combination_id          => l_ccid
39567   , p_value_type_code              => l_adr_value_type_code
39568   , p_transaction_coa_id           => l_adr_transaction_coa_id
39569   , p_accounting_coa_id            => l_adr_accounting_coa_id
39570   , p_adr_code                     => 'AP_CASH'
39571   , p_adr_type_code                => 'S'
39572   , p_component_type               => l_component_type
39573   , p_component_code               => l_component_code
39574   , p_component_type_code          => l_component_type_code
39575   , p_component_appl_id            => l_component_appl_id
39576   , p_amb_context_code             => l_amb_context_code
39577   , p_side                         => 'NA'
39578   );
39579 
39580 
39581    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
39582      p_to_segment_code         => 'GL_BALANCING'
39583    , p_segment_value           => C_CHAR
39584    , p_from_segment_code       => NULL
39585    , p_from_combination_id     => NULL
39586    , p_value_type_code         => NULL
39587    , p_transaction_coa_id      => null
39588    , p_accounting_coa_id       => null
39589    , p_flexfield_segment_code  => NULL
39590    , p_flex_value_set_id       => NULL
39591    , p_adr_code                => NULL
39592    , p_adr_type_code           => NULL
39593    , p_component_type          => l_component_type
39594    , p_component_code          => l_component_code
39595    , p_component_type_code     => l_component_type_code
39596    , p_component_appl_id       => l_component_appl_id
39597    , p_amb_context_code        => l_amb_context_code
39598    , p_entity_code             => 'AP_PAYMENTS'
39599    , p_event_class_code        => 'PAYMENTS'
39600    , p_side                    => 'NA'
39601    );
39602    --
39603 
39604 
39605    --
39606    --
39607    END IF;
39608 
39609        --
39610        -- Update the line information that should be overwritten
39611        --
39612        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39613                                          p_header_num   => 1);
39614        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
39615 
39616        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39617 
39618        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
39619           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39620        END IF;
39621 
39622       --
39623       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39624       --
39625       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39626           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
39627       ELSE
39628           ---------------------------------------------------------------------------------------------------
39629           -- 4262811a Switch Sign
39630           ---------------------------------------------------------------------------------------------------
39631           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
39632           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39633                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39634           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39635                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39636           -- 5132302
39640       END IF;
39637           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39638                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39639 
39641 
39642       -- 4955764
39643       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39644       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39645 
39646 
39647       XLA_AE_LINES_PKG.ValidateCurrentLine;
39648       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39649 
39650       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39651                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39652                ,p_balance_type_code => l_balance_type_code);
39653 
39654    END IF;
39655 
39656    -----------------------------------------------------------------------------------------
39657    -- 4262811 Multiperiod Accounting
39658    -----------------------------------------------------------------------------------------
39659      -- No MPA option is assigned.
39660 
39661 
39662 END IF;
39663 END IF;
39664 --
39665 
39666 --
39667 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39668    trace
39669       (p_msg      => 'END of AcctLineType_91'
39670       ,p_level    => C_LEVEL_PROCEDURE
39671       ,p_module   => l_log_module);
39672 END IF;
39673 --
39674 EXCEPTION
39675   WHEN xla_exceptions_pkg.application_exception THEN
39676       RAISE;
39677   WHEN OTHERS THEN
39678        xla_exceptions_pkg.raise_message
39679            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_91');
39680 END AcctLineType_91;
39681 --
39682 
39683 ---------------------------------------
39684 --
39685 -- PRIVATE FUNCTION
39686 --         AcctLineType_92
39687 --
39688 ---------------------------------------
39689 PROCEDURE AcctLineType_92 (
39690   p_application_id        IN NUMBER
39691  ,p_event_id              IN NUMBER
39692  ,p_calculate_acctd_flag  IN VARCHAR2
39693  ,p_calculate_g_l_flag    IN VARCHAR2
39694  ,p_actual_flag           IN OUT VARCHAR2
39695  ,p_balance_type_code     OUT VARCHAR2
39696  ,p_gain_or_loss_ref      OUT VARCHAR2
39697  
39698 --Bank Cash Account
39699  , p_source_5            IN NUMBER
39700 --Automatic Offsets Flag
39701  , p_source_35            IN VARCHAR2
39702  , p_source_35_meaning    IN VARCHAR2
39703 --Accounting Reversal Indicator
39704  , p_source_41            IN VARCHAR2
39705 --Distribution Link Type
39706  , p_source_43            IN VARCHAR2
39707 --Override Accounted Amount Indicator
39708  , p_source_68            IN VARCHAR2
39709  , p_source_68_meaning    IN VARCHAR2
39710 --Third Party Type
39711  , p_source_71            IN VARCHAR2
39712 --Business Flow Accounts Payable Application Identifier
39713  , p_source_79            IN NUMBER
39714 --When to Account for Payment Option
39715  , p_source_89            IN VARCHAR2
39716 --Payment Distribution Type
39717  , p_source_90            IN VARCHAR2
39718  , p_source_90_meaning    IN VARCHAR2
39719 --Payment Distribution Amount
39720  , p_source_91            IN NUMBER
39721 --Business Flow Payment Distribution Type
39722  , p_source_92            IN VARCHAR2
39723 --Business Flow Payment Entity Code
39724  , p_source_93            IN VARCHAR2
39725 --Business Flow Payment Distribution Identifier
39726  , p_source_94            IN NUMBER
39727 --Business Flow Payment Identifier
39728  , p_source_95            IN NUMBER
39729 --Payment Distribution Identifier
39730  , p_source_96            IN NUMBER
39731 --Payment Supplier Identifier
39732  , p_source_102            IN NUMBER
39733 --Payment Supplier Site Identifier
39734  , p_source_103            IN NUMBER
39735 --Payment Distribution Reversed Identifier
39736  , p_source_104            IN NUMBER
39737 --Pooled Bank Account Option
39738  , p_source_105            IN VARCHAR2
39739  , p_source_105_meaning    IN VARCHAR2
39740 --Payment Currency Code
39741  , p_source_106            IN VARCHAR2
39742 --Payment Maturity Date
39743  , p_source_107            IN DATE
39744 --Payment Exchange Date
39745  , p_source_110            IN DATE
39746 --Payment Exchange Rate
39747  , p_source_111            IN NUMBER
39748 --Payment Exchange Rate Type
39749  , p_source_112            IN VARCHAR2
39750 --Payment Distribution (Matured Rate) Ledger Amount
39751  , p_source_114            IN NUMBER
39752 )
39753 IS
39754 
39755 l_component_type              VARCHAR2(80);
39756 l_component_code              VARCHAR2(30);
39757 l_component_type_code         VARCHAR2(1);
39758 l_component_appl_id           INTEGER;
39759 l_amb_context_code            VARCHAR2(30);
39760 l_entity_code                 VARCHAR2(30);
39761 l_event_class_code            VARCHAR2(30);
39762 l_ae_header_id                NUMBER;
39763 l_event_type_code             VARCHAR2(30);
39764 l_line_definition_code        VARCHAR2(30);
39765 l_line_definition_owner_code  VARCHAR2(1);
39766 --
39767 -- adr variables
39768 l_segment                     VARCHAR2(30);
39769 l_ccid                        NUMBER;
39770 l_adr_transaction_coa_id      NUMBER;
39771 l_adr_accounting_coa_id       NUMBER;
39772 l_adr_flexfield_segment_code  VARCHAR2(30);
39773 l_adr_flex_value_set_id       NUMBER;
39774 l_adr_value_type_code         VARCHAR2(30);
39775 l_adr_value_combination_id    NUMBER;
39776 l_adr_value_segment_code      VARCHAR2(30);
39777 
39778 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
39779 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
39783 -- 4262811 Variables ------------------------------------------------------------------------------------------
39780 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
39781 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
39782 
39784 l_entered_amt_idx             NUMBER;
39785 l_accted_amt_idx              NUMBER;
39786 l_acc_rev_flag                VARCHAR2(1);
39787 l_accrual_line_num            NUMBER;
39788 l_tmp_amt                     NUMBER;
39789 l_acc_rev_natural_side_code   VARCHAR2(1);
39790 
39791 l_num_entries                 NUMBER;
39792 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
39793 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
39794 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
39795 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
39796 l_recog_line_1                NUMBER;
39797 l_recog_line_2                NUMBER;
39798 
39799 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
39800 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
39801 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
39802 
39803 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39804 
39805 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
39806 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
39807 
39808 ---------------------------------------------------------------------------------------------------------------
39809 
39810 
39811 --
39812 -- bulk performance
39813 --
39814 l_balance_type_code           VARCHAR2(1);
39815 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
39816 l_log_module                  VARCHAR2(240);
39817 
39818 --
39819 -- Upgrade strategy
39820 --
39821 l_actual_upg_option           VARCHAR2(1);
39822 l_enc_upg_option           VARCHAR2(1);
39823 
39824 --
39825 BEGIN
39826 --
39827 IF g_log_enabled THEN
39828       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_92';
39829 END IF;
39830 --
39831 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39832 
39833       trace
39834          (p_msg      => 'BEGIN of AcctLineType_92'
39835          ,p_level    => C_LEVEL_PROCEDURE
39836          ,p_module   => l_log_module);
39837 
39838 END IF;
39839 --
39840 l_component_type             := 'AMB_JLT';
39841 l_component_code             := 'AP_CASH_PMT_MAT';
39842 l_component_type_code        := 'S';
39843 l_component_appl_id          :=  200;
39844 l_amb_context_code           := 'DEFAULT';
39845 l_entity_code                := 'AP_PAYMENTS';
39846 l_event_class_code           := 'FUTURE DATED PAYMENTS';
39847 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
39848 l_line_definition_owner_code := 'S';
39849 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
39850 --
39851 l_balance_type_code          := 'A';
39852 l_segment                     := NULL;
39853 l_ccid                        := NULL;
39854 l_adr_transaction_coa_id      := NULL;
39855 l_adr_accounting_coa_id       := NULL;
39856 l_adr_flexfield_segment_code  := NULL;
39857 l_adr_flex_value_set_id       := NULL;
39858 l_adr_value_type_code         := NULL;
39859 l_adr_value_combination_id    := NULL;
39860 l_adr_value_segment_code      := NULL;
39861 
39862 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
39863 l_bflow_class_code           := '';    -- 4219869 Business Flow
39864 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
39865 l_budgetary_control_flag     := 'N';
39866 
39867 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
39868 l_bflow_applied_to_amt       := NULL; -- 5132302
39869 l_entered_amt_idx            := NULL;          -- 4262811
39870 l_accted_amt_idx             := NULL;          -- 4262811
39871 l_acc_rev_flag               := NULL;          -- 4262811
39872 l_accrual_line_num           := NULL;          -- 4262811
39873 l_tmp_amt                    := NULL;          -- 4262811
39874 --
39875  
39876 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39877     l_balance_type_code <> 'B' THEN
39878 IF NVL(p_source_89,'
39879 ') =  'ISSUE_ISSUE' AND 
39880 (NVL(p_source_35,'
39881 ') <>  'Y' OR 
39882 NVL(p_source_35,'
39883 ') =  'Y' AND 
39884 NVL(p_source_105,'
39885 ') <>  'Y') AND 
39886 p_source_107 IS NOT NULL AND 
39887 NVL(p_source_90,'
39888 ') =  'CASH'
39889  THEN 
39890 
39891    --
39892    XLA_AE_LINES_PKG.SetNewLine;
39893 
39894    p_balance_type_code          := l_balance_type_code;
39895    -- set the flag so later we will know whether the gain loss line needs to be created
39896    
39897    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39898      p_actual_flag :='A';
39899    END IF;
39900 
39901    --
39902    -- bulk performance
39903    --
39904    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39905                                       p_header_num   => 0); -- 4262811
39906    --
39907    -- set accounting line options
39908    --
39909    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39910            p_natural_side_code          => 'C'
39911          , p_gain_or_loss_flag          => 'N'
39912          , p_gl_transfer_mode_code      => 'S'
39913          , p_acct_entry_type_code       => 'A'
39914          , p_switch_side_flag           => 'Y'
39915          , p_merge_duplicate_code       => 'A'
39916          );
39917    --
39918    l_acc_rev_natural_side_code := 'D';  -- 4262811
39919    -- 
39923    xla_ae_lines_pkg.SetAcctLineType
39920    --
39921    -- set accounting line type info
39922    --
39924       (p_component_type             => l_component_type
39925       ,p_event_type_code            => l_event_type_code
39926       ,p_line_definition_owner_code => l_line_definition_owner_code
39927       ,p_line_definition_code       => l_line_definition_code
39928       ,p_accounting_line_code       => l_component_code
39929       ,p_accounting_line_type_code  => l_component_type_code
39930       ,p_accounting_line_appl_id    => l_component_appl_id
39931       ,p_amb_context_code           => l_amb_context_code
39932       ,p_entity_code                => l_entity_code
39933       ,p_event_class_code           => l_event_class_code);
39934    --
39935    -- set accounting class
39936    --
39937    xla_ae_lines_pkg.SetAcctClass(
39938            p_accounting_class_code  => 'CASH'
39939          , p_ae_header_id           => l_ae_header_id
39940          );
39941 
39942    --
39943    -- set rounding class
39944    --
39945    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39946                       'CASH';
39947 
39948    --
39949    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39950    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39951    --
39952    -- bulk performance
39953    --
39954    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39955 
39956    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39957       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39958 
39959    -- 4955764
39960    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39961       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39962 
39963    -- 4458381 Public Sector Enh
39964    
39965    --
39966    -- set accounting attributes for the line type
39967    --
39968    l_entered_amt_idx := 9;
39969    l_accted_amt_idx  := 14;
39970    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
39971    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
39972    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
39973    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
39974    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
39975    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
39976    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
39977    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
39978    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
39979    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
39980    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
39981    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
39982    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
39983    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
39984    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
39985    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
39986    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
39987    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
39988    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
39989    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
39990    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
39991    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
39992    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
39993    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
39994    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
39995    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
39996    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
39997    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
39998    l_rec_acct_attrs.array_num_value(14)  := p_source_114;
39999    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
40000    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
40001    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
40002    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
40003    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
40004    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
40005    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
40006    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
40007    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
40008    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
40009    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
40010    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
40011 
40012    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40013    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40014 
40015    ---------------------------------------------------------------------------------------------------------------
40016    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40017    ---------------------------------------------------------------------------------------------------------------
40018    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40019 
40020    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40021    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40022 
40023    IF xla_accounting_cache_pkg.GetValueChar
40027 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40024          (p_source_code         => 'LEDGER_CATEGORY_CODE'
40025          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40026    AND l_bflow_method_code = 'PRIOR_ENTRY'
40028    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40029          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40030        )
40031    THEN
40032          xla_ae_lines_pkg.BflowUpgEntry
40033            (p_business_method_code    => l_bflow_method_code
40034            ,p_business_class_code     => l_bflow_class_code
40035            ,p_balance_type            => l_balance_type_code);
40036    ELSE
40037       NULL;
40038 -- No business flow processing for business flow method of NONE.
40039    END IF;
40040 
40041    --
40042    -- call analytical criteria
40043    --
40044    
40045    --
40046    -- call description
40047    --
40048    -- No description or it is inherited.
40049    --
40050    -- call ADRs
40051    -- Bug 4922099
40052    --
40053    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40054         (NVL(l_actual_upg_option, 'N') = 'O') OR
40055         (NVL(l_enc_upg_option, 'N') = 'O')
40056       )
40057    THEN
40058    NULL;
40059    --
40060    --
40061    
40062   l_ccid := AcctDerRule_27(
40063            p_application_id           => p_application_id
40064          , p_ae_header_id             => l_ae_header_id 
40065 , p_source_5 => p_source_5
40066          , x_transaction_coa_id       => l_adr_transaction_coa_id
40067          , x_accounting_coa_id        => l_adr_accounting_coa_id
40068          , x_value_type_code          => l_adr_value_type_code
40069          , p_side                     => 'NA'
40070    );
40071 
40072    xla_ae_lines_pkg.set_ccid(
40073     p_code_combination_id          => l_ccid
40074   , p_value_type_code              => l_adr_value_type_code
40075   , p_transaction_coa_id           => l_adr_transaction_coa_id
40076   , p_accounting_coa_id            => l_adr_accounting_coa_id
40077   , p_adr_code                     => 'AP_CASH'
40078   , p_adr_type_code                => 'S'
40079   , p_component_type               => l_component_type
40080   , p_component_code               => l_component_code
40081   , p_component_type_code          => l_component_type_code
40082   , p_component_appl_id            => l_component_appl_id
40083   , p_amb_context_code             => l_amb_context_code
40084   , p_side                         => 'NA'
40085   );
40086 
40087 
40088    --
40089    --
40090    END IF;
40091    --
40092    -- Bug 4922099
40093    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40094           (NVL(l_enc_upg_option, 'N') = 'O')
40095         ) AND
40096         (l_bflow_method_code = 'PRIOR_ENTRY')
40097       )
40098    THEN
40099       IF
40100       --
40101       1 = 2
40102       --
40103       THEN
40104       xla_accounting_err_pkg.build_message
40105                                     (p_appli_s_name            => 'XLA'
40106                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40107                                     ,p_token_1                 => 'LINE_NUMBER'
40108                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
40109                                     ,p_token_2                 => 'LINE_TYPE_NAME'
40110                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
40111                                                                              l_component_type
40112                                                                             ,l_component_code
40113                                                                             ,l_component_type_code
40114                                                                             ,l_component_appl_id
40115                                                                             ,l_amb_context_code
40116                                                                             ,l_entity_code
40117                                                                             ,l_event_class_code
40118                                                                            )
40119                                     ,p_token_3                 => 'OWNER'
40120                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
40121                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
40122                                                                           ,p_lookup_code    => l_component_type_code
40123                                                                          )
40124                                     ,p_token_4                 => 'PRODUCT_NAME'
40125                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40126                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40127                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40128                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40129                                     ,p_ae_header_id            =>  NULL
40130                                        );
40131 
40132         IF (C_LEVEL_ERROR>= g_log_level) THEN
40133                  trace
40134                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40135                       ,p_level    => C_LEVEL_ERROR
40136                       ,p_module   => l_log_module);
40137         END IF;
40138       END IF;
40139    END IF;
40140    --
40141    --
40145    -- Prior Entry.  Currently, the following code is always generated.
40142    ------------------------------------------------------------------------------------------------
40143    -- 4219869 Business Flow
40144    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40146    ------------------------------------------------------------------------------------------------
40147    XLA_AE_LINES_PKG.ValidateCurrentLine;
40148 
40149    ------------------------------------------------------------------------------------
40150    -- 4219869 Business Flow
40151    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40152    ------------------------------------------------------------------------------------
40153    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40154 
40155    ----------------------------------------------------------------------------------
40156    -- 4219869 Business Flow
40157    -- Update journal entry status -- Need to generate this within IF <condition>
40158    ----------------------------------------------------------------------------------
40159    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40160          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40161          ,p_balance_type_code => l_balance_type_code
40162          );
40163 
40164    -------------------------------------------------------------------------------------------
40165    -- 4262811 - Generate the Accrual Reversal lines
40166    -------------------------------------------------------------------------------------------
40167    BEGIN
40168       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40169                               (g_array_event(p_event_id).array_value_num('header_index'));
40170       IF l_acc_rev_flag IS NULL THEN
40171          l_acc_rev_flag := 'N';
40172       END IF;
40173    EXCEPTION
40174       WHEN OTHERS THEN
40175          l_acc_rev_flag := 'N';
40176    END;
40177    --
40178    IF (l_acc_rev_flag = 'Y') THEN
40179 
40180        -- 4645092  ------------------------------------------------------------------------------
40181        -- To allow MPA report to determine if it should generate report process
40182        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40183        ------------------------------------------------------------------------------------------
40184 
40185        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40186        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40187    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
40188    -- call ADRs
40189    -- Bug 4922099
40190    --
40191    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40192         (NVL(l_actual_upg_option, 'N') = 'O') OR
40193         (NVL(l_enc_upg_option, 'N') = 'O')
40194       )
40195    THEN
40196    NULL;
40197    --
40198    --
40199    
40200   l_ccid := AcctDerRule_27(
40201            p_application_id           => p_application_id
40202          , p_ae_header_id             => l_ae_header_id 
40203 , p_source_5 => p_source_5
40204          , x_transaction_coa_id       => l_adr_transaction_coa_id
40205          , x_accounting_coa_id        => l_adr_accounting_coa_id
40206          , x_value_type_code          => l_adr_value_type_code
40207          , p_side                     => 'NA'
40208    );
40209 
40210    xla_ae_lines_pkg.set_ccid(
40211     p_code_combination_id          => l_ccid
40212   , p_value_type_code              => l_adr_value_type_code
40213   , p_transaction_coa_id           => l_adr_transaction_coa_id
40214   , p_accounting_coa_id            => l_adr_accounting_coa_id
40215   , p_adr_code                     => 'AP_CASH'
40216   , p_adr_type_code                => 'S'
40217   , p_component_type               => l_component_type
40218   , p_component_code               => l_component_code
40219   , p_component_type_code          => l_component_type_code
40220   , p_component_appl_id            => l_component_appl_id
40221   , p_amb_context_code             => l_amb_context_code
40222   , p_side                         => 'NA'
40223   );
40224 
40225 
40226    --
40227    --
40228    END IF;
40229 
40230        --
40231        -- Update the line information that should be overwritten
40232        --
40233        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40234                                          p_header_num   => 1);
40235        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
40236 
40237        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40238 
40239        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
40240           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40241        END IF;
40242 
40243       --
40244       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40245       --
40246       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40247           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
40248       ELSE
40249           ---------------------------------------------------------------------------------------------------
40250           -- 4262811a Switch Sign
40251           ---------------------------------------------------------------------------------------------------
40252           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
40253           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40254                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40258           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40255           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40256                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40257           -- 5132302
40259                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40260 
40261       END IF;
40262 
40263       -- 4955764
40264       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40265       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40266 
40267 
40268       XLA_AE_LINES_PKG.ValidateCurrentLine;
40269       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40270 
40271       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40272                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40273                ,p_balance_type_code => l_balance_type_code);
40274 
40275    END IF;
40276 
40277    -----------------------------------------------------------------------------------------
40278    -- 4262811 Multiperiod Accounting
40279    -----------------------------------------------------------------------------------------
40280      -- No MPA option is assigned.
40281 
40282 
40283 END IF;
40284 END IF;
40285 --
40286 
40287 --
40288 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40289    trace
40290       (p_msg      => 'END of AcctLineType_92'
40291       ,p_level    => C_LEVEL_PROCEDURE
40292       ,p_module   => l_log_module);
40293 END IF;
40294 --
40295 EXCEPTION
40296   WHEN xla_exceptions_pkg.application_exception THEN
40297       RAISE;
40298   WHEN OTHERS THEN
40299        xla_exceptions_pkg.raise_message
40300            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_92');
40301 END AcctLineType_92;
40302 --
40303 
40304 ---------------------------------------
40305 --
40306 -- PRIVATE FUNCTION
40307 --         AcctLineType_93
40308 --
40309 ---------------------------------------
40310 PROCEDURE AcctLineType_93 (
40311   p_application_id        IN NUMBER
40312  ,p_event_id              IN NUMBER
40313  ,p_calculate_acctd_flag  IN VARCHAR2
40314  ,p_calculate_g_l_flag    IN VARCHAR2
40315  ,p_actual_flag           IN OUT VARCHAR2
40316  ,p_balance_type_code     OUT VARCHAR2
40317  ,p_gain_or_loss_ref      OUT VARCHAR2
40318  
40319 --Automatic Offsets Value
40320  , p_source_3            IN VARCHAR2
40321  , p_source_3_meaning    IN VARCHAR2
40322 --Bank Cash Account
40323  , p_source_5            IN NUMBER
40324 --Accounting Reversal Indicator
40325  , p_source_41            IN VARCHAR2
40326 --Distribution Link Type
40327  , p_source_43            IN VARCHAR2
40328 --Override Accounted Amount Indicator
40329  , p_source_68            IN VARCHAR2
40330  , p_source_68_meaning    IN VARCHAR2
40331 --Third Party Type
40332  , p_source_71            IN VARCHAR2
40333 --Business Flow Accounts Payable Application Identifier
40334  , p_source_79            IN NUMBER
40335 --When to Account for Payment Option
40336  , p_source_89            IN VARCHAR2
40337 --Payment Distribution Type
40338  , p_source_90            IN VARCHAR2
40339  , p_source_90_meaning    IN VARCHAR2
40340 --Payment Distribution Amount
40341  , p_source_91            IN NUMBER
40342 --Business Flow Payment Distribution Type
40343  , p_source_92            IN VARCHAR2
40344 --Business Flow Payment Entity Code
40345  , p_source_93            IN VARCHAR2
40346 --Business Flow Payment Distribution Identifier
40347  , p_source_94            IN NUMBER
40348 --Business Flow Payment Identifier
40349  , p_source_95            IN NUMBER
40350 --Payment Distribution Identifier
40351  , p_source_96            IN NUMBER
40352 --Payment Supplier Identifier
40353  , p_source_102            IN NUMBER
40354 --Payment Supplier Site Identifier
40355  , p_source_103            IN NUMBER
40356 --Payment Distribution Reversed Identifier
40357  , p_source_104            IN NUMBER
40358 --Pooled Bank Account Option
40359  , p_source_105            IN VARCHAR2
40360  , p_source_105_meaning    IN VARCHAR2
40361 --Payment Currency Code
40362  , p_source_106            IN VARCHAR2
40363 --Payment Maturity Date
40364  , p_source_107            IN DATE
40365 --Payment Exchange Date
40366  , p_source_110            IN DATE
40367 --Payment Exchange Rate
40368  , p_source_111            IN NUMBER
40369 --Payment Exchange Rate Type
40370  , p_source_112            IN VARCHAR2
40371 --Payment Distribution (Matured Rate) Ledger Amount
40372  , p_source_114            IN NUMBER
40373 )
40374 IS
40375 
40376 l_component_type              VARCHAR2(80);
40377 l_component_code              VARCHAR2(30);
40378 l_component_type_code         VARCHAR2(1);
40379 l_component_appl_id           INTEGER;
40380 l_amb_context_code            VARCHAR2(30);
40381 l_entity_code                 VARCHAR2(30);
40382 l_event_class_code            VARCHAR2(30);
40383 l_ae_header_id                NUMBER;
40384 l_event_type_code             VARCHAR2(30);
40385 l_line_definition_code        VARCHAR2(30);
40386 l_line_definition_owner_code  VARCHAR2(1);
40387 --
40388 -- adr variables
40389 l_segment                     VARCHAR2(30);
40390 l_ccid                        NUMBER;
40391 l_adr_transaction_coa_id      NUMBER;
40392 l_adr_accounting_coa_id       NUMBER;
40393 l_adr_flexfield_segment_code  VARCHAR2(30);
40394 l_adr_flex_value_set_id       NUMBER;
40395 l_adr_value_type_code         VARCHAR2(30);
40396 l_adr_value_combination_id    NUMBER;
40400 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
40397 l_adr_value_segment_code      VARCHAR2(30);
40398 
40399 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
40401 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
40402 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
40403 
40404 -- 4262811 Variables ------------------------------------------------------------------------------------------
40405 l_entered_amt_idx             NUMBER;
40406 l_accted_amt_idx              NUMBER;
40407 l_acc_rev_flag                VARCHAR2(1);
40408 l_accrual_line_num            NUMBER;
40409 l_tmp_amt                     NUMBER;
40410 l_acc_rev_natural_side_code   VARCHAR2(1);
40411 
40412 l_num_entries                 NUMBER;
40413 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
40414 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
40415 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
40416 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
40417 l_recog_line_1                NUMBER;
40418 l_recog_line_2                NUMBER;
40419 
40420 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
40421 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
40422 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
40423 
40424 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40425 
40426 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
40427 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
40428 
40429 ---------------------------------------------------------------------------------------------------------------
40430 
40431 
40432 --
40433 -- bulk performance
40434 --
40435 l_balance_type_code           VARCHAR2(1);
40436 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
40437 l_log_module                  VARCHAR2(240);
40438 
40439 --
40440 -- Upgrade strategy
40441 --
40442 l_actual_upg_option           VARCHAR2(1);
40443 l_enc_upg_option           VARCHAR2(1);
40444 
40445 --
40446 BEGIN
40447 --
40448 IF g_log_enabled THEN
40449       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_93';
40450 END IF;
40451 --
40452 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40453 
40454       trace
40455          (p_msg      => 'BEGIN of AcctLineType_93'
40456          ,p_level    => C_LEVEL_PROCEDURE
40457          ,p_module   => l_log_module);
40458 
40459 END IF;
40460 --
40461 l_component_type             := 'AMB_JLT';
40462 l_component_code             := 'AP_CASH_PMT_MAT_AOS_AS';
40463 l_component_type_code        := 'S';
40464 l_component_appl_id          :=  200;
40465 l_amb_context_code           := 'DEFAULT';
40466 l_entity_code                := 'AP_PAYMENTS';
40467 l_event_class_code           := 'FUTURE DATED PAYMENTS';
40468 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
40469 l_line_definition_owner_code := 'S';
40470 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
40471 --
40472 l_balance_type_code          := 'A';
40473 l_segment                     := NULL;
40474 l_ccid                        := NULL;
40475 l_adr_transaction_coa_id      := NULL;
40476 l_adr_accounting_coa_id       := NULL;
40477 l_adr_flexfield_segment_code  := NULL;
40478 l_adr_flex_value_set_id       := NULL;
40479 l_adr_value_type_code         := NULL;
40480 l_adr_value_combination_id    := NULL;
40481 l_adr_value_segment_code      := NULL;
40482 
40483 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
40484 l_bflow_class_code           := '';    -- 4219869 Business Flow
40485 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
40486 l_budgetary_control_flag     := 'N';
40487 
40488 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
40489 l_bflow_applied_to_amt       := NULL; -- 5132302
40490 l_entered_amt_idx            := NULL;          -- 4262811
40491 l_accted_amt_idx             := NULL;          -- 4262811
40492 l_acc_rev_flag               := NULL;          -- 4262811
40493 l_accrual_line_num           := NULL;          -- 4262811
40494 l_tmp_amt                    := NULL;          -- 4262811
40495 --
40496  
40497 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40498     l_balance_type_code <> 'B' THEN
40499 IF NVL(p_source_89,'
40500 ') =  'ISSUE_ISSUE' AND 
40501 (NVL(p_source_105,'
40502 ') =  'Y' AND 
40503 NVL(p_source_3,'
40504 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
40505 p_source_107 IS NOT NULL AND 
40506 NVL(p_source_90,'
40507 ') =  'CASH'
40508  THEN 
40509 
40510    --
40511    XLA_AE_LINES_PKG.SetNewLine;
40512 
40513    p_balance_type_code          := l_balance_type_code;
40514    -- set the flag so later we will know whether the gain loss line needs to be created
40515    
40516    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40517      p_actual_flag :='A';
40518    END IF;
40519 
40520    --
40521    -- bulk performance
40522    --
40523    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40524                                       p_header_num   => 0); -- 4262811
40525    --
40526    -- set accounting line options
40527    --
40528    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40529            p_natural_side_code          => 'C'
40530          , p_gain_or_loss_flag          => 'N'
40531          , p_gl_transfer_mode_code      => 'S'
40532          , p_acct_entry_type_code       => 'A'
40533          , p_switch_side_flag           => 'Y'
40537    l_acc_rev_natural_side_code := 'D';  -- 4262811
40534          , p_merge_duplicate_code       => 'A'
40535          );
40536    --
40538    -- 
40539    --
40540    -- set accounting line type info
40541    --
40542    xla_ae_lines_pkg.SetAcctLineType
40543       (p_component_type             => l_component_type
40544       ,p_event_type_code            => l_event_type_code
40545       ,p_line_definition_owner_code => l_line_definition_owner_code
40546       ,p_line_definition_code       => l_line_definition_code
40547       ,p_accounting_line_code       => l_component_code
40548       ,p_accounting_line_type_code  => l_component_type_code
40549       ,p_accounting_line_appl_id    => l_component_appl_id
40550       ,p_amb_context_code           => l_amb_context_code
40551       ,p_entity_code                => l_entity_code
40552       ,p_event_class_code           => l_event_class_code);
40553    --
40554    -- set accounting class
40555    --
40556    xla_ae_lines_pkg.SetAcctClass(
40557            p_accounting_class_code  => 'CASH'
40558          , p_ae_header_id           => l_ae_header_id
40559          );
40560 
40561    --
40562    -- set rounding class
40563    --
40564    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40565                       'CASH';
40566 
40567    --
40568    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40569    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40570    --
40571    -- bulk performance
40572    --
40573    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40574 
40575    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40576       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40577 
40578    -- 4955764
40579    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40580       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40581 
40582    -- 4458381 Public Sector Enh
40583    
40584    --
40585    -- set accounting attributes for the line type
40586    --
40587    l_entered_amt_idx := 9;
40588    l_accted_amt_idx  := 14;
40589    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
40590    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40591    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
40592    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
40593    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
40594    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40595    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
40596    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
40597    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
40598    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
40599    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
40600    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40601    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
40602    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
40603    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
40604    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
40605    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
40606    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
40607    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
40608    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
40609    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
40610    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
40611    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
40612    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
40613    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
40614    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
40615    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
40616    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
40617    l_rec_acct_attrs.array_num_value(14)  := p_source_114;
40618    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
40619    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
40620    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
40621    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
40622    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
40623    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
40624    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
40625    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
40626    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
40627    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
40628    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
40629    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
40630 
40631    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40632    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40633 
40634    ---------------------------------------------------------------------------------------------------------------
40635    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40636    ---------------------------------------------------------------------------------------------------------------
40637    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40638 
40639    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40643          (p_source_code         => 'LEDGER_CATEGORY_CODE'
40640    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40641 
40642    IF xla_accounting_cache_pkg.GetValueChar
40644          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40645    AND l_bflow_method_code = 'PRIOR_ENTRY'
40646 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40647    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40648          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40649        )
40650    THEN
40651          xla_ae_lines_pkg.BflowUpgEntry
40652            (p_business_method_code    => l_bflow_method_code
40653            ,p_business_class_code     => l_bflow_class_code
40654            ,p_balance_type            => l_balance_type_code);
40655    ELSE
40656       NULL;
40657 XLA_AE_LINES_PKG.business_flow_validation(
40658                                 p_business_method_code     => l_bflow_method_code
40659                                ,p_business_class_code      => l_bflow_class_code
40660                                ,p_inherit_description_flag => l_inherit_desc_flag);
40661    END IF;
40662 
40663    --
40664    -- call analytical criteria
40665    --
40666    
40667    --
40668    -- call description
40669    --
40670    -- No description or it is inherited.
40671    --
40672    -- call ADRs
40673    -- Bug 4922099
40674    --
40675    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40676         (NVL(l_actual_upg_option, 'N') = 'O') OR
40677         (NVL(l_enc_upg_option, 'N') = 'O')
40678       )
40679    THEN
40680    NULL;
40681    --
40682    --
40683    
40684    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
40685      p_code_combination_id      => TO_NUMBER(C_NUM)
40686    , p_value_type_code          => NULL
40687    , p_transaction_coa_id       => null
40688    , p_accounting_coa_id        => null
40689    , p_adr_code                 => NULL
40690    , p_adr_type_code            => NULL
40691    , p_component_type           => l_component_type
40692    , p_component_code           => l_component_code
40693    , p_component_type_code      => l_component_type_code
40694    , p_component_appl_id        => l_component_appl_id
40695    , p_amb_context_code         => l_amb_context_code
40696    , p_side                     => NULL
40697    );
40698 
40699    
40700   -- initialise segments
40701   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40702   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40703   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40704   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40705   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40706   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40707   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40708   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40709   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40710   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40711   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40712   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40713   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40714   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40715   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40716   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40717   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40718   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40719   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40720   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40721   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40722   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40723   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40724   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40725   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40726   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40727   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40728   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40729   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40730   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40731   --
40732 
40733    --
40734 
40735 
40736    l_segment := AcctDerRule_5(
40737            p_application_id           => p_application_id
40738          , p_ae_header_id             => l_ae_header_id 
40739 , p_source_5 => p_source_5
40740          , x_transaction_coa_id       => l_adr_transaction_coa_id
40741          , x_accounting_coa_id        => l_adr_accounting_coa_id
40742          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
40743          , x_flex_value_set_id        => l_adr_flex_value_set_id
40744          , x_value_type_code          => l_adr_value_type_code
40745          , x_value_combination_id     => l_adr_value_combination_id
40746          , x_value_segment_code       => l_adr_value_segment_code
40750 
40747          , p_side                     => 'NA'
40748          , p_override_seg_flag        => 'Y'
40749    );
40751    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
40752 
40753       xla_ae_lines_pkg.set_segment(
40754           p_to_segment_code         => 'GL_ACCOUNT'
40755         , p_segment_value           => l_segment
40756         , p_from_segment_code       => l_adr_value_segment_code
40757         , p_from_combination_id     => l_adr_value_combination_id
40758         , p_value_type_code         => l_adr_value_type_code
40759         , p_transaction_coa_id      => l_adr_transaction_coa_id
40760         , p_accounting_coa_id       => l_adr_accounting_coa_id
40761         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
40762         , p_flex_value_set_id       => l_adr_flex_value_set_id
40763         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
40764         , p_adr_type_code           => 'S'
40765         , p_component_type          => l_component_type
40766         , p_component_code          => l_component_code
40767         , p_component_type_code     => l_component_type_code
40768         , p_component_appl_id       => l_component_appl_id
40769         , p_amb_context_code        => l_amb_context_code
40770         , p_entity_code             => 'AP_PAYMENTS'
40771         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
40772         , p_side                    => 'NA'
40773         );
40774 
40775   END IF;
40776 
40777    --
40778    --
40779    END IF;
40780    --
40781    -- Bug 4922099
40782    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40783           (NVL(l_enc_upg_option, 'N') = 'O')
40784         ) AND
40785         (l_bflow_method_code = 'PRIOR_ENTRY')
40786       )
40787    THEN
40788       IF
40789       --
40790       1 = 2
40791       --
40792       THEN
40793       xla_accounting_err_pkg.build_message
40794                                     (p_appli_s_name            => 'XLA'
40795                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40796                                     ,p_token_1                 => 'LINE_NUMBER'
40797                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
40798                                     ,p_token_2                 => 'LINE_TYPE_NAME'
40799                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
40800                                                                              l_component_type
40801                                                                             ,l_component_code
40802                                                                             ,l_component_type_code
40803                                                                             ,l_component_appl_id
40804                                                                             ,l_amb_context_code
40805                                                                             ,l_entity_code
40806                                                                             ,l_event_class_code
40807                                                                            )
40808                                     ,p_token_3                 => 'OWNER'
40809                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
40810                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
40811                                                                           ,p_lookup_code    => l_component_type_code
40812                                                                          )
40813                                     ,p_token_4                 => 'PRODUCT_NAME'
40814                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40815                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40816                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40817                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40818                                     ,p_ae_header_id            =>  NULL
40819                                        );
40820 
40821         IF (C_LEVEL_ERROR>= g_log_level) THEN
40822                  trace
40823                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40824                       ,p_level    => C_LEVEL_ERROR
40825                       ,p_module   => l_log_module);
40826         END IF;
40827       END IF;
40828    END IF;
40829    --
40830    --
40831    ------------------------------------------------------------------------------------------------
40832    -- 4219869 Business Flow
40833    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40834    -- Prior Entry.  Currently, the following code is always generated.
40835    ------------------------------------------------------------------------------------------------
40836    XLA_AE_LINES_PKG.ValidateCurrentLine;
40837 
40838    ------------------------------------------------------------------------------------
40839    -- 4219869 Business Flow
40840    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40841    ------------------------------------------------------------------------------------
40842    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40843 
40844    ----------------------------------------------------------------------------------
40845    -- 4219869 Business Flow
40846    -- Update journal entry status -- Need to generate this within IF <condition>
40847    ----------------------------------------------------------------------------------
40848    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40852 
40849          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40850          ,p_balance_type_code => l_balance_type_code
40851          );
40853    -------------------------------------------------------------------------------------------
40854    -- 4262811 - Generate the Accrual Reversal lines
40855    -------------------------------------------------------------------------------------------
40856    BEGIN
40857       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40858                               (g_array_event(p_event_id).array_value_num('header_index'));
40859       IF l_acc_rev_flag IS NULL THEN
40860          l_acc_rev_flag := 'N';
40861       END IF;
40862    EXCEPTION
40863       WHEN OTHERS THEN
40864          l_acc_rev_flag := 'N';
40865    END;
40866    --
40867    IF (l_acc_rev_flag = 'Y') THEN
40868 
40869        -- 4645092  ------------------------------------------------------------------------------
40870        -- To allow MPA report to determine if it should generate report process
40871        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40872        ------------------------------------------------------------------------------------------
40873 
40874        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40875        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40876    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
40877    -- call ADRs
40878    -- Bug 4922099
40879    --
40880    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40881         (NVL(l_actual_upg_option, 'N') = 'O') OR
40882         (NVL(l_enc_upg_option, 'N') = 'O')
40883       )
40884    THEN
40885    NULL;
40886    --
40887    --
40888    
40889    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
40890      p_code_combination_id      => TO_NUMBER(C_NUM)
40891    , p_value_type_code          => NULL
40892    , p_transaction_coa_id       => null
40893    , p_accounting_coa_id        => null
40894    , p_adr_code                 => NULL
40895    , p_adr_type_code            => NULL
40896    , p_component_type           => l_component_type
40897    , p_component_code           => l_component_code
40898    , p_component_type_code      => l_component_type_code
40899    , p_component_appl_id        => l_component_appl_id
40900    , p_amb_context_code         => l_amb_context_code
40901    , p_side                     => NULL
40902    );
40903 
40904    
40905   -- initialise segments
40906   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40907   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40908   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40909   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40910   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40911   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40912   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40913   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40914   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40915   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40916   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40917   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40918   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40919   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40920   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40921   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40922   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40923   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40924   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40925   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40926   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40927   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40928   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40929   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40930   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40931   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40932   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40933   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40934   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40935   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40936   --
40937 
40938    --
40939 
40940 
40941    l_segment := AcctDerRule_5(
40942            p_application_id           => p_application_id
40943          , p_ae_header_id             => l_ae_header_id 
40944 , p_source_5 => p_source_5
40945          , x_transaction_coa_id       => l_adr_transaction_coa_id
40946          , x_accounting_coa_id        => l_adr_accounting_coa_id
40947          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
40948          , x_flex_value_set_id        => l_adr_flex_value_set_id
40949          , x_value_type_code          => l_adr_value_type_code
40950          , x_value_combination_id     => l_adr_value_combination_id
40951          , x_value_segment_code       => l_adr_value_segment_code
40955 
40952          , p_side                     => 'NA'
40953          , p_override_seg_flag        => 'Y'
40954    );
40956    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
40957 
40958       xla_ae_lines_pkg.set_segment(
40959           p_to_segment_code         => 'GL_ACCOUNT'
40960         , p_segment_value           => l_segment
40961         , p_from_segment_code       => l_adr_value_segment_code
40962         , p_from_combination_id     => l_adr_value_combination_id
40963         , p_value_type_code         => l_adr_value_type_code
40964         , p_transaction_coa_id      => l_adr_transaction_coa_id
40965         , p_accounting_coa_id       => l_adr_accounting_coa_id
40966         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
40967         , p_flex_value_set_id       => l_adr_flex_value_set_id
40968         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
40969         , p_adr_type_code           => 'S'
40970         , p_component_type          => l_component_type
40971         , p_component_code          => l_component_code
40972         , p_component_type_code     => l_component_type_code
40973         , p_component_appl_id       => l_component_appl_id
40974         , p_amb_context_code        => l_amb_context_code
40975         , p_entity_code             => 'AP_PAYMENTS'
40976         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
40977         , p_side                    => 'NA'
40978         );
40979 
40980   END IF;
40981 
40982    --
40983    --
40984    END IF;
40985 
40986        --
40987        -- Update the line information that should be overwritten
40988        --
40989        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40990                                          p_header_num   => 1);
40991        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
40992 
40993        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40994 
40995        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
40996           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40997        END IF;
40998 
40999       --
41000       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41001       --
41002       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41003           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
41004       ELSE
41005           ---------------------------------------------------------------------------------------------------
41006           -- 4262811a Switch Sign
41007           ---------------------------------------------------------------------------------------------------
41008           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
41009           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41010                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41011           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41012                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41013           -- 5132302
41014           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41015                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41016 
41017       END IF;
41018 
41019       -- 4955764
41020       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41021       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41022 
41023 
41024       XLA_AE_LINES_PKG.ValidateCurrentLine;
41025       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41026 
41027       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41028                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41029                ,p_balance_type_code => l_balance_type_code);
41030 
41031    END IF;
41032 
41033    -----------------------------------------------------------------------------------------
41034    -- 4262811 Multiperiod Accounting
41035    -----------------------------------------------------------------------------------------
41036      -- No MPA option is assigned.
41037 
41038 
41039 END IF;
41040 END IF;
41041 --
41042 
41043 --
41044 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41045    trace
41046       (p_msg      => 'END of AcctLineType_93'
41047       ,p_level    => C_LEVEL_PROCEDURE
41048       ,p_module   => l_log_module);
41049 END IF;
41050 --
41051 EXCEPTION
41052   WHEN xla_exceptions_pkg.application_exception THEN
41053       RAISE;
41054   WHEN OTHERS THEN
41055        xla_exceptions_pkg.raise_message
41056            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_93');
41057 END AcctLineType_93;
41058 --
41059 
41060 ---------------------------------------
41061 --
41062 -- PRIVATE FUNCTION
41063 --         AcctLineType_94
41064 --
41065 ---------------------------------------
41066 PROCEDURE AcctLineType_94 (
41067   p_application_id        IN NUMBER
41068  ,p_event_id              IN NUMBER
41069  ,p_calculate_acctd_flag  IN VARCHAR2
41070  ,p_calculate_g_l_flag    IN VARCHAR2
41071  ,p_actual_flag           IN OUT VARCHAR2
41072  ,p_balance_type_code     OUT VARCHAR2
41073  ,p_gain_or_loss_ref      OUT VARCHAR2
41074  
41075 --Automatic Offsets Value
41076  , p_source_3            IN VARCHAR2
41077  , p_source_3_meaning    IN VARCHAR2
41081  , p_source_41            IN VARCHAR2
41078 --Bank Cash Account
41079  , p_source_5            IN NUMBER
41080 --Accounting Reversal Indicator
41082 --Distribution Link Type
41083  , p_source_43            IN VARCHAR2
41084 --Override Accounted Amount Indicator
41085  , p_source_68            IN VARCHAR2
41086  , p_source_68_meaning    IN VARCHAR2
41087 --Third Party Type
41088  , p_source_71            IN VARCHAR2
41089 --Business Flow Accounts Payable Application Identifier
41090  , p_source_79            IN NUMBER
41091 --When to Account for Payment Option
41092  , p_source_89            IN VARCHAR2
41093 --Payment Distribution Type
41094  , p_source_90            IN VARCHAR2
41095  , p_source_90_meaning    IN VARCHAR2
41096 --Payment Distribution Amount
41097  , p_source_91            IN NUMBER
41098 --Business Flow Payment Distribution Type
41099  , p_source_92            IN VARCHAR2
41100 --Business Flow Payment Entity Code
41101  , p_source_93            IN VARCHAR2
41102 --Business Flow Payment Distribution Identifier
41103  , p_source_94            IN NUMBER
41104 --Business Flow Payment Identifier
41105  , p_source_95            IN NUMBER
41106 --Payment Distribution Identifier
41107  , p_source_96            IN NUMBER
41108 --Payment Supplier Identifier
41109  , p_source_102            IN NUMBER
41110 --Payment Supplier Site Identifier
41111  , p_source_103            IN NUMBER
41112 --Payment Distribution Reversed Identifier
41113  , p_source_104            IN NUMBER
41114 --Pooled Bank Account Option
41115  , p_source_105            IN VARCHAR2
41116  , p_source_105_meaning    IN VARCHAR2
41117 --Payment Currency Code
41118  , p_source_106            IN VARCHAR2
41119 --Payment Maturity Date
41120  , p_source_107            IN DATE
41121 --Payment Exchange Date
41122  , p_source_110            IN DATE
41123 --Payment Exchange Rate
41124  , p_source_111            IN NUMBER
41125 --Payment Exchange Rate Type
41126  , p_source_112            IN VARCHAR2
41127 --Payment Distribution (Matured Rate) Ledger Amount
41128  , p_source_114            IN NUMBER
41129 )
41130 IS
41131 
41132 l_component_type              VARCHAR2(80);
41133 l_component_code              VARCHAR2(30);
41134 l_component_type_code         VARCHAR2(1);
41135 l_component_appl_id           INTEGER;
41136 l_amb_context_code            VARCHAR2(30);
41137 l_entity_code                 VARCHAR2(30);
41138 l_event_class_code            VARCHAR2(30);
41139 l_ae_header_id                NUMBER;
41140 l_event_type_code             VARCHAR2(30);
41141 l_line_definition_code        VARCHAR2(30);
41142 l_line_definition_owner_code  VARCHAR2(1);
41143 --
41144 -- adr variables
41145 l_segment                     VARCHAR2(30);
41146 l_ccid                        NUMBER;
41147 l_adr_transaction_coa_id      NUMBER;
41148 l_adr_accounting_coa_id       NUMBER;
41149 l_adr_flexfield_segment_code  VARCHAR2(30);
41150 l_adr_flex_value_set_id       NUMBER;
41151 l_adr_value_type_code         VARCHAR2(30);
41152 l_adr_value_combination_id    NUMBER;
41153 l_adr_value_segment_code      VARCHAR2(30);
41154 
41155 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
41156 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
41157 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
41158 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
41159 
41160 -- 4262811 Variables ------------------------------------------------------------------------------------------
41161 l_entered_amt_idx             NUMBER;
41162 l_accted_amt_idx              NUMBER;
41163 l_acc_rev_flag                VARCHAR2(1);
41164 l_accrual_line_num            NUMBER;
41165 l_tmp_amt                     NUMBER;
41166 l_acc_rev_natural_side_code   VARCHAR2(1);
41167 
41168 l_num_entries                 NUMBER;
41169 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
41170 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
41171 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
41172 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
41173 l_recog_line_1                NUMBER;
41174 l_recog_line_2                NUMBER;
41175 
41176 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
41177 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
41178 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
41179 
41180 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41181 
41182 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
41183 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
41184 
41185 ---------------------------------------------------------------------------------------------------------------
41186 
41187 
41188 --
41189 -- bulk performance
41190 --
41191 l_balance_type_code           VARCHAR2(1);
41192 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
41193 l_log_module                  VARCHAR2(240);
41194 
41195 --
41196 -- Upgrade strategy
41197 --
41198 l_actual_upg_option           VARCHAR2(1);
41199 l_enc_upg_option           VARCHAR2(1);
41200 
41201 --
41202 BEGIN
41203 --
41204 IF g_log_enabled THEN
41205       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_94';
41206 END IF;
41207 --
41208 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41209 
41210       trace
41211          (p_msg      => 'BEGIN of AcctLineType_94'
41212          ,p_level    => C_LEVEL_PROCEDURE
41213          ,p_module   => l_log_module);
41214 
41215 END IF;
41219 l_component_type_code        := 'S';
41216 --
41217 l_component_type             := 'AMB_JLT';
41218 l_component_code             := 'AP_CASH_PMT_MAT_AOS_BS';
41220 l_component_appl_id          :=  200;
41221 l_amb_context_code           := 'DEFAULT';
41222 l_entity_code                := 'AP_PAYMENTS';
41223 l_event_class_code           := 'FUTURE DATED PAYMENTS';
41224 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
41225 l_line_definition_owner_code := 'S';
41226 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
41227 --
41228 l_balance_type_code          := 'A';
41229 l_segment                     := NULL;
41230 l_ccid                        := NULL;
41231 l_adr_transaction_coa_id      := NULL;
41232 l_adr_accounting_coa_id       := NULL;
41233 l_adr_flexfield_segment_code  := NULL;
41234 l_adr_flex_value_set_id       := NULL;
41235 l_adr_value_type_code         := NULL;
41236 l_adr_value_combination_id    := NULL;
41237 l_adr_value_segment_code      := NULL;
41238 
41239 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
41240 l_bflow_class_code           := '';    -- 4219869 Business Flow
41241 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
41242 l_budgetary_control_flag     := 'N';
41243 
41244 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
41245 l_bflow_applied_to_amt       := NULL; -- 5132302
41246 l_entered_amt_idx            := NULL;          -- 4262811
41247 l_accted_amt_idx             := NULL;          -- 4262811
41248 l_acc_rev_flag               := NULL;          -- 4262811
41249 l_accrual_line_num           := NULL;          -- 4262811
41250 l_tmp_amt                    := NULL;          -- 4262811
41251 --
41252  
41253 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41254     l_balance_type_code <> 'B' THEN
41255 IF NVL(p_source_89,'
41256 ') =  'ISSUE_ISSUE' AND 
41257 (NVL(p_source_105,'
41258 ') =  'Y' AND 
41259 NVL(p_source_3,'
41260 ') =  'BALANCING_SEGMENT') AND 
41261 p_source_107 IS NOT NULL AND 
41262 NVL(p_source_90,'
41263 ') =  'CASH'
41264  THEN 
41265 
41266    --
41267    XLA_AE_LINES_PKG.SetNewLine;
41268 
41269    p_balance_type_code          := l_balance_type_code;
41270    -- set the flag so later we will know whether the gain loss line needs to be created
41271    
41272    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41273      p_actual_flag :='A';
41274    END IF;
41275 
41276    --
41277    -- bulk performance
41278    --
41279    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41280                                       p_header_num   => 0); -- 4262811
41281    --
41282    -- set accounting line options
41283    --
41284    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41285            p_natural_side_code          => 'C'
41286          , p_gain_or_loss_flag          => 'N'
41287          , p_gl_transfer_mode_code      => 'S'
41288          , p_acct_entry_type_code       => 'A'
41289          , p_switch_side_flag           => 'Y'
41290          , p_merge_duplicate_code       => 'A'
41291          );
41292    --
41293    l_acc_rev_natural_side_code := 'D';  -- 4262811
41294    -- 
41295    --
41296    -- set accounting line type info
41297    --
41298    xla_ae_lines_pkg.SetAcctLineType
41299       (p_component_type             => l_component_type
41300       ,p_event_type_code            => l_event_type_code
41301       ,p_line_definition_owner_code => l_line_definition_owner_code
41302       ,p_line_definition_code       => l_line_definition_code
41303       ,p_accounting_line_code       => l_component_code
41304       ,p_accounting_line_type_code  => l_component_type_code
41305       ,p_accounting_line_appl_id    => l_component_appl_id
41306       ,p_amb_context_code           => l_amb_context_code
41307       ,p_entity_code                => l_entity_code
41308       ,p_event_class_code           => l_event_class_code);
41309    --
41310    -- set accounting class
41311    --
41312    xla_ae_lines_pkg.SetAcctClass(
41313            p_accounting_class_code  => 'CASH'
41314          , p_ae_header_id           => l_ae_header_id
41315          );
41316 
41317    --
41318    -- set rounding class
41319    --
41320    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41321                       'CASH';
41322 
41323    --
41324    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41325    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41326    --
41327    -- bulk performance
41328    --
41329    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41330 
41331    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41332       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41333 
41334    -- 4955764
41335    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41336       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41337 
41338    -- 4458381 Public Sector Enh
41339    
41340    --
41341    -- set accounting attributes for the line type
41342    --
41343    l_entered_amt_idx := 9;
41344    l_accted_amt_idx  := 14;
41345    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
41346    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41347    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
41348    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
41349    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
41353    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
41350    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
41351    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
41352    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
41354    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
41355    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
41356    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
41357    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
41358    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
41359    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
41360    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
41361    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
41362    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
41363    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
41364    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
41365    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
41366    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
41367    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
41368    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
41369    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
41370    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
41371    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
41372    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
41373    l_rec_acct_attrs.array_num_value(14)  := p_source_114;
41374    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
41375    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
41376    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
41377    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
41378    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
41379    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
41380    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
41381    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
41382    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
41383    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
41384    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
41385    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
41386 
41387    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41388    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41389 
41390    ---------------------------------------------------------------------------------------------------------------
41391    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41392    ---------------------------------------------------------------------------------------------------------------
41393    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41394 
41395    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41396    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41397 
41398    IF xla_accounting_cache_pkg.GetValueChar
41399          (p_source_code         => 'LEDGER_CATEGORY_CODE'
41400          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41401    AND l_bflow_method_code = 'PRIOR_ENTRY'
41402 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41403    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41404          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41405        )
41406    THEN
41407          xla_ae_lines_pkg.BflowUpgEntry
41408            (p_business_method_code    => l_bflow_method_code
41409            ,p_business_class_code     => l_bflow_class_code
41410            ,p_balance_type            => l_balance_type_code);
41411    ELSE
41412       NULL;
41413 XLA_AE_LINES_PKG.business_flow_validation(
41414                                 p_business_method_code     => l_bflow_method_code
41415                                ,p_business_class_code      => l_bflow_class_code
41416                                ,p_inherit_description_flag => l_inherit_desc_flag);
41417    END IF;
41418 
41419    --
41420    -- call analytical criteria
41421    --
41422    
41423    --
41424    -- call description
41425    --
41426    -- No description or it is inherited.
41427    --
41428    -- call ADRs
41429    -- Bug 4922099
41430    --
41431    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41432         (NVL(l_actual_upg_option, 'N') = 'O') OR
41433         (NVL(l_enc_upg_option, 'N') = 'O')
41434       )
41435    THEN
41436    NULL;
41437    --
41438    --
41439    
41440   l_ccid := AcctDerRule_27(
41441            p_application_id           => p_application_id
41442          , p_ae_header_id             => l_ae_header_id 
41443 , p_source_5 => p_source_5
41444          , x_transaction_coa_id       => l_adr_transaction_coa_id
41445          , x_accounting_coa_id        => l_adr_accounting_coa_id
41446          , x_value_type_code          => l_adr_value_type_code
41447          , p_side                     => 'NA'
41448    );
41449 
41450    xla_ae_lines_pkg.set_ccid(
41451     p_code_combination_id          => l_ccid
41452   , p_value_type_code              => l_adr_value_type_code
41453   , p_transaction_coa_id           => l_adr_transaction_coa_id
41454   , p_accounting_coa_id            => l_adr_accounting_coa_id
41455   , p_adr_code                     => 'AP_CASH'
41456   , p_adr_type_code                => 'S'
41457   , p_component_type               => l_component_type
41458   , p_component_code               => l_component_code
41462   , p_side                         => 'NA'
41459   , p_component_type_code          => l_component_type_code
41460   , p_component_appl_id            => l_component_appl_id
41461   , p_amb_context_code             => l_amb_context_code
41463   );
41464 
41465 
41466    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
41467      p_to_segment_code         => 'GL_BALANCING'
41468    , p_segment_value           => C_CHAR
41469    , p_from_segment_code       => NULL
41470    , p_from_combination_id     => NULL
41471    , p_value_type_code         => NULL
41472    , p_transaction_coa_id      => null
41473    , p_accounting_coa_id       => null
41474    , p_flexfield_segment_code  => NULL
41475    , p_flex_value_set_id       => NULL
41476    , p_adr_code                => NULL
41477    , p_adr_type_code           => NULL
41478    , p_component_type          => l_component_type
41479    , p_component_code          => l_component_code
41480    , p_component_type_code     => l_component_type_code
41481    , p_component_appl_id       => l_component_appl_id
41482    , p_amb_context_code        => l_amb_context_code
41483    , p_entity_code             => 'AP_PAYMENTS'
41484    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
41485    , p_side                    => 'NA'
41486    );
41487    --
41488 
41489 
41490    --
41491    --
41492    END IF;
41493    --
41494    -- Bug 4922099
41495    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41496           (NVL(l_enc_upg_option, 'N') = 'O')
41497         ) AND
41498         (l_bflow_method_code = 'PRIOR_ENTRY')
41499       )
41500    THEN
41501       IF
41502       --
41503       1 = 2
41504       --
41505       THEN
41506       xla_accounting_err_pkg.build_message
41507                                     (p_appli_s_name            => 'XLA'
41508                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41509                                     ,p_token_1                 => 'LINE_NUMBER'
41510                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
41511                                     ,p_token_2                 => 'LINE_TYPE_NAME'
41512                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
41513                                                                              l_component_type
41514                                                                             ,l_component_code
41515                                                                             ,l_component_type_code
41516                                                                             ,l_component_appl_id
41517                                                                             ,l_amb_context_code
41518                                                                             ,l_entity_code
41519                                                                             ,l_event_class_code
41520                                                                            )
41521                                     ,p_token_3                 => 'OWNER'
41522                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
41523                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
41524                                                                           ,p_lookup_code    => l_component_type_code
41525                                                                          )
41526                                     ,p_token_4                 => 'PRODUCT_NAME'
41527                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41528                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41529                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41530                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41531                                     ,p_ae_header_id            =>  NULL
41532                                        );
41533 
41534         IF (C_LEVEL_ERROR>= g_log_level) THEN
41535                  trace
41536                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41537                       ,p_level    => C_LEVEL_ERROR
41538                       ,p_module   => l_log_module);
41539         END IF;
41540       END IF;
41541    END IF;
41542    --
41543    --
41544    ------------------------------------------------------------------------------------------------
41545    -- 4219869 Business Flow
41546    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41547    -- Prior Entry.  Currently, the following code is always generated.
41548    ------------------------------------------------------------------------------------------------
41549    XLA_AE_LINES_PKG.ValidateCurrentLine;
41550 
41551    ------------------------------------------------------------------------------------
41552    -- 4219869 Business Flow
41553    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41554    ------------------------------------------------------------------------------------
41555    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41556 
41557    ----------------------------------------------------------------------------------
41558    -- 4219869 Business Flow
41559    -- Update journal entry status -- Need to generate this within IF <condition>
41560    ----------------------------------------------------------------------------------
41561    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41562          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41563          ,p_balance_type_code => l_balance_type_code
41564          );
41568    -------------------------------------------------------------------------------------------
41565 
41566    -------------------------------------------------------------------------------------------
41567    -- 4262811 - Generate the Accrual Reversal lines
41569    BEGIN
41570       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41571                               (g_array_event(p_event_id).array_value_num('header_index'));
41572       IF l_acc_rev_flag IS NULL THEN
41573          l_acc_rev_flag := 'N';
41574       END IF;
41575    EXCEPTION
41576       WHEN OTHERS THEN
41577          l_acc_rev_flag := 'N';
41578    END;
41579    --
41580    IF (l_acc_rev_flag = 'Y') THEN
41581 
41582        -- 4645092  ------------------------------------------------------------------------------
41583        -- To allow MPA report to determine if it should generate report process
41584        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41585        ------------------------------------------------------------------------------------------
41586 
41587        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41588        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41589    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
41590    -- call ADRs
41591    -- Bug 4922099
41592    --
41593    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41594         (NVL(l_actual_upg_option, 'N') = 'O') OR
41595         (NVL(l_enc_upg_option, 'N') = 'O')
41596       )
41597    THEN
41598    NULL;
41599    --
41600    --
41601    
41602   l_ccid := AcctDerRule_27(
41603            p_application_id           => p_application_id
41604          , p_ae_header_id             => l_ae_header_id 
41605 , p_source_5 => p_source_5
41606          , x_transaction_coa_id       => l_adr_transaction_coa_id
41607          , x_accounting_coa_id        => l_adr_accounting_coa_id
41608          , x_value_type_code          => l_adr_value_type_code
41609          , p_side                     => 'NA'
41610    );
41611 
41612    xla_ae_lines_pkg.set_ccid(
41613     p_code_combination_id          => l_ccid
41614   , p_value_type_code              => l_adr_value_type_code
41615   , p_transaction_coa_id           => l_adr_transaction_coa_id
41616   , p_accounting_coa_id            => l_adr_accounting_coa_id
41617   , p_adr_code                     => 'AP_CASH'
41618   , p_adr_type_code                => 'S'
41619   , p_component_type               => l_component_type
41620   , p_component_code               => l_component_code
41621   , p_component_type_code          => l_component_type_code
41622   , p_component_appl_id            => l_component_appl_id
41623   , p_amb_context_code             => l_amb_context_code
41624   , p_side                         => 'NA'
41625   );
41626 
41627 
41628    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
41629      p_to_segment_code         => 'GL_BALANCING'
41630    , p_segment_value           => C_CHAR
41631    , p_from_segment_code       => NULL
41632    , p_from_combination_id     => NULL
41633    , p_value_type_code         => NULL
41634    , p_transaction_coa_id      => null
41635    , p_accounting_coa_id       => null
41636    , p_flexfield_segment_code  => NULL
41637    , p_flex_value_set_id       => NULL
41638    , p_adr_code                => NULL
41639    , p_adr_type_code           => NULL
41640    , p_component_type          => l_component_type
41641    , p_component_code          => l_component_code
41642    , p_component_type_code     => l_component_type_code
41643    , p_component_appl_id       => l_component_appl_id
41644    , p_amb_context_code        => l_amb_context_code
41645    , p_entity_code             => 'AP_PAYMENTS'
41646    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
41647    , p_side                    => 'NA'
41648    );
41649    --
41650 
41651 
41652    --
41653    --
41654    END IF;
41655 
41656        --
41657        -- Update the line information that should be overwritten
41658        --
41659        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41660                                          p_header_num   => 1);
41661        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
41662 
41663        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41664 
41665        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
41666           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41667        END IF;
41668 
41669       --
41670       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41671       --
41672       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41673           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
41674       ELSE
41675           ---------------------------------------------------------------------------------------------------
41676           -- 4262811a Switch Sign
41677           ---------------------------------------------------------------------------------------------------
41678           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
41679           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41680                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41684           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41681           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41682                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41683           -- 5132302
41685                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41686 
41687       END IF;
41688 
41689       -- 4955764
41690       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41691       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41692 
41693 
41694       XLA_AE_LINES_PKG.ValidateCurrentLine;
41695       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41696 
41697       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41698                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41699                ,p_balance_type_code => l_balance_type_code);
41700 
41701    END IF;
41702 
41703    -----------------------------------------------------------------------------------------
41704    -- 4262811 Multiperiod Accounting
41705    -----------------------------------------------------------------------------------------
41706      -- No MPA option is assigned.
41707 
41708 
41709 END IF;
41710 END IF;
41711 --
41712 
41713 --
41714 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41715    trace
41716       (p_msg      => 'END of AcctLineType_94'
41717       ,p_level    => C_LEVEL_PROCEDURE
41718       ,p_module   => l_log_module);
41719 END IF;
41720 --
41721 EXCEPTION
41722   WHEN xla_exceptions_pkg.application_exception THEN
41723       RAISE;
41724   WHEN OTHERS THEN
41725        xla_exceptions_pkg.raise_message
41726            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_94');
41727 END AcctLineType_94;
41728 --
41729 
41730 ---------------------------------------
41731 --
41732 -- PRIVATE FUNCTION
41733 --         AcctLineType_95
41734 --
41735 ---------------------------------------
41736 PROCEDURE AcctLineType_95 (
41737   p_application_id        IN NUMBER
41738  ,p_event_id              IN NUMBER
41739  ,p_calculate_acctd_flag  IN VARCHAR2
41740  ,p_calculate_g_l_flag    IN VARCHAR2
41741  ,p_actual_flag           IN OUT VARCHAR2
41742  ,p_balance_type_code     OUT VARCHAR2
41743  ,p_gain_or_loss_ref      OUT VARCHAR2
41744  
41745 --Bank Cash Account
41746  , p_source_5            IN NUMBER
41747 --Automatic Offsets Flag
41748  , p_source_35            IN VARCHAR2
41749  , p_source_35_meaning    IN VARCHAR2
41750 --Accounting Reversal Indicator
41751  , p_source_41            IN VARCHAR2
41752 --Distribution Link Type
41753  , p_source_43            IN VARCHAR2
41754 --Override Accounted Amount Indicator
41755  , p_source_68            IN VARCHAR2
41756  , p_source_68_meaning    IN VARCHAR2
41757 --Third Party Type
41758  , p_source_71            IN VARCHAR2
41759 --Invoice Distribution Tax Line Identifier
41760  , p_source_74            IN NUMBER
41761 --Invoice Distribution Tax Distribution Identifier from Tax
41762  , p_source_75            IN NUMBER
41763 --Invoice Distribution Summary Tax Line Identifier
41764  , p_source_76            IN NUMBER
41765 --Business Flow Accounts Payable Application Identifier
41766  , p_source_79            IN NUMBER
41767 --Business Flow Invoice Distribution Type
41768  , p_source_80            IN VARCHAR2
41769 --Business Flow Invoice Entity Code
41770  , p_source_81            IN VARCHAR2
41771 --Business Flow Invoice Distribution Identifier
41772  , p_source_82            IN NUMBER
41773 --Business Flow Invoice Identifier
41774  , p_source_83            IN NUMBER
41775 --When to Account for Payment Option
41776  , p_source_89            IN VARCHAR2
41777 --Payment Distribution Type
41778  , p_source_90            IN VARCHAR2
41779  , p_source_90_meaning    IN VARCHAR2
41780 --Payment Distribution Amount
41781  , p_source_91            IN NUMBER
41782 --Payment Distribution Identifier
41783  , p_source_96            IN NUMBER
41784 --Payment Supplier Identifier
41785  , p_source_102            IN NUMBER
41786 --Payment Supplier Site Identifier
41787  , p_source_103            IN NUMBER
41788 --Payment Distribution Reversed Identifier
41789  , p_source_104            IN NUMBER
41790 --Pooled Bank Account Option
41791  , p_source_105            IN VARCHAR2
41792  , p_source_105_meaning    IN VARCHAR2
41793 --Payment Currency Code
41794  , p_source_106            IN VARCHAR2
41795 --Payment Maturity Date
41796  , p_source_107            IN DATE
41797 --Payment Distribution (Payment Rate) Ledger Amount
41798  , p_source_108            IN NUMBER
41799 --Payment Exchange Date
41800  , p_source_110            IN DATE
41801 --Payment Exchange Rate
41802  , p_source_111            IN NUMBER
41803 --Payment Exchange Rate Type
41804  , p_source_112            IN VARCHAR2
41805 --Payment Type
41806  , p_source_115            IN VARCHAR2
41807  , p_source_115_meaning    IN VARCHAR2
41808 )
41809 IS
41810 
41811 l_component_type              VARCHAR2(80);
41812 l_component_code              VARCHAR2(30);
41813 l_component_type_code         VARCHAR2(1);
41814 l_component_appl_id           INTEGER;
41815 l_amb_context_code            VARCHAR2(30);
41816 l_entity_code                 VARCHAR2(30);
41817 l_event_class_code            VARCHAR2(30);
41818 l_ae_header_id                NUMBER;
41819 l_event_type_code             VARCHAR2(30);
41820 l_line_definition_code        VARCHAR2(30);
41824 l_segment                     VARCHAR2(30);
41821 l_line_definition_owner_code  VARCHAR2(1);
41822 --
41823 -- adr variables
41825 l_ccid                        NUMBER;
41826 l_adr_transaction_coa_id      NUMBER;
41827 l_adr_accounting_coa_id       NUMBER;
41828 l_adr_flexfield_segment_code  VARCHAR2(30);
41829 l_adr_flex_value_set_id       NUMBER;
41830 l_adr_value_type_code         VARCHAR2(30);
41831 l_adr_value_combination_id    NUMBER;
41832 l_adr_value_segment_code      VARCHAR2(30);
41833 
41834 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
41835 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
41836 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
41837 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
41838 
41839 -- 4262811 Variables ------------------------------------------------------------------------------------------
41840 l_entered_amt_idx             NUMBER;
41841 l_accted_amt_idx              NUMBER;
41842 l_acc_rev_flag                VARCHAR2(1);
41843 l_accrual_line_num            NUMBER;
41844 l_tmp_amt                     NUMBER;
41845 l_acc_rev_natural_side_code   VARCHAR2(1);
41846 
41847 l_num_entries                 NUMBER;
41848 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
41849 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
41850 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
41851 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
41852 l_recog_line_1                NUMBER;
41853 l_recog_line_2                NUMBER;
41854 
41855 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
41856 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
41857 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
41858 
41859 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41860 
41861 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
41862 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
41863 
41864 ---------------------------------------------------------------------------------------------------------------
41865 
41866 
41867 --
41868 -- bulk performance
41869 --
41870 l_balance_type_code           VARCHAR2(1);
41871 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
41872 l_log_module                  VARCHAR2(240);
41873 
41874 --
41875 -- Upgrade strategy
41876 --
41877 l_actual_upg_option           VARCHAR2(1);
41878 l_enc_upg_option           VARCHAR2(1);
41879 
41880 --
41881 BEGIN
41882 --
41883 IF g_log_enabled THEN
41884       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_95';
41885 END IF;
41886 --
41887 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41888 
41889       trace
41890          (p_msg      => 'BEGIN of AcctLineType_95'
41891          ,p_level    => C_LEVEL_PROCEDURE
41892          ,p_module   => l_log_module);
41893 
41894 END IF;
41895 --
41896 l_component_type             := 'AMB_JLT';
41897 l_component_code             := 'AP_CASH_REF';
41898 l_component_type_code        := 'S';
41899 l_component_appl_id          :=  200;
41900 l_amb_context_code           := 'DEFAULT';
41901 l_entity_code                := 'AP_PAYMENTS';
41902 l_event_class_code           := 'REFUNDS';
41903 l_event_type_code            := 'REFUNDS_ALL';
41904 l_line_definition_owner_code := 'S';
41905 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
41906 --
41907 l_balance_type_code          := 'A';
41908 l_segment                     := NULL;
41909 l_ccid                        := NULL;
41910 l_adr_transaction_coa_id      := NULL;
41911 l_adr_accounting_coa_id       := NULL;
41912 l_adr_flexfield_segment_code  := NULL;
41913 l_adr_flex_value_set_id       := NULL;
41914 l_adr_value_type_code         := NULL;
41915 l_adr_value_combination_id    := NULL;
41916 l_adr_value_segment_code      := NULL;
41917 
41918 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
41919 l_bflow_class_code           := '';    -- 4219869 Business Flow
41920 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
41921 l_budgetary_control_flag     := 'N';
41922 
41923 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
41924 l_bflow_applied_to_amt       := NULL; -- 5132302
41925 l_entered_amt_idx            := NULL;          -- 4262811
41926 l_accted_amt_idx             := NULL;          -- 4262811
41927 l_acc_rev_flag               := NULL;          -- 4262811
41928 l_accrual_line_num           := NULL;          -- 4262811
41929 l_tmp_amt                    := NULL;          -- 4262811
41930 --
41931  
41932 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41933     l_balance_type_code <> 'B' THEN
41934 IF NVL(p_source_89,'
41935 ') =  'ISSUE_ISSUE' AND 
41936 (NVL(p_source_35,'
41937 ') <>  'Y' OR 
41938 NVL(p_source_35,'
41939 ') =  'Y' AND 
41940 NVL(p_source_105,'
41941 ') <>  'Y') AND 
41942 p_source_107 IS NULL AND 
41943 NVL(p_source_90,'
41944 ') =  'CASH' AND 
41945 NVL(p_source_115,'
41946 ') =  'R'
41947  THEN 
41948 
41949    --
41950    XLA_AE_LINES_PKG.SetNewLine;
41951 
41952    p_balance_type_code          := l_balance_type_code;
41953    -- set the flag so later we will know whether the gain loss line needs to be created
41954    
41955    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41956      p_actual_flag :='A';
41957    END IF;
41958 
41959    --
41963                                       p_header_num   => 0); -- 4262811
41960    -- bulk performance
41961    --
41962    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41964    --
41965    -- set accounting line options
41966    --
41967    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41968            p_natural_side_code          => 'C'
41969          , p_gain_or_loss_flag          => 'N'
41970          , p_gl_transfer_mode_code      => 'S'
41971          , p_acct_entry_type_code       => 'A'
41972          , p_switch_side_flag           => 'Y'
41973          , p_merge_duplicate_code       => 'A'
41974          );
41975    --
41976    l_acc_rev_natural_side_code := 'D';  -- 4262811
41977    -- 
41978    --
41979    -- set accounting line type info
41980    --
41981    xla_ae_lines_pkg.SetAcctLineType
41982       (p_component_type             => l_component_type
41983       ,p_event_type_code            => l_event_type_code
41984       ,p_line_definition_owner_code => l_line_definition_owner_code
41985       ,p_line_definition_code       => l_line_definition_code
41986       ,p_accounting_line_code       => l_component_code
41987       ,p_accounting_line_type_code  => l_component_type_code
41988       ,p_accounting_line_appl_id    => l_component_appl_id
41989       ,p_amb_context_code           => l_amb_context_code
41990       ,p_entity_code                => l_entity_code
41991       ,p_event_class_code           => l_event_class_code);
41992    --
41993    -- set accounting class
41994    --
41995    xla_ae_lines_pkg.SetAcctClass(
41996            p_accounting_class_code  => 'CASH'
41997          , p_ae_header_id           => l_ae_header_id
41998          );
41999 
42000    --
42001    -- set rounding class
42002    --
42003    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42004                       'CASH';
42005 
42006    --
42007    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42008    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42009    --
42010    -- bulk performance
42011    --
42012    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42013 
42014    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42015       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42016 
42017    -- 4955764
42018    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42019       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42020 
42021    -- 4458381 Public Sector Enh
42022    
42023    --
42024    -- set accounting attributes for the line type
42025    --
42026    l_entered_amt_idx := 9;
42027    l_accted_amt_idx  := 14;
42028    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
42029    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42030    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
42031    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
42032    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
42033    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42034    l_rec_acct_attrs.array_char_value(3)  := p_source_80;
42035    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
42036    l_rec_acct_attrs.array_char_value(4)  := p_source_81;
42037    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
42038    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
42039    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42040    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
42041    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
42042    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
42043    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
42044    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
42045    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
42046    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
42047    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
42048    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
42049    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
42050    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
42051    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
42052    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
42053    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
42054    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
42055    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
42056    l_rec_acct_attrs.array_num_value(14)  := p_source_108;
42057    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
42058    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
42059    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
42060    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
42061    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
42062    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
42063    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
42064    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
42065    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
42066    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
42067    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
42068    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
42072    l_rec_acct_attrs.array_num_value(22)  := p_source_75;
42069    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
42070    l_rec_acct_attrs.array_num_value(21)  := p_source_74;
42071    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
42073    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
42074    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
42075 
42076    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42077    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42078 
42079    ---------------------------------------------------------------------------------------------------------------
42080    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42081    ---------------------------------------------------------------------------------------------------------------
42082    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42083 
42084    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42085    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42086 
42087    IF xla_accounting_cache_pkg.GetValueChar
42088          (p_source_code         => 'LEDGER_CATEGORY_CODE'
42089          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42090    AND l_bflow_method_code = 'PRIOR_ENTRY'
42091 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42092    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42093          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42094        )
42095    THEN
42096          xla_ae_lines_pkg.BflowUpgEntry
42097            (p_business_method_code    => l_bflow_method_code
42098            ,p_business_class_code     => l_bflow_class_code
42099            ,p_balance_type            => l_balance_type_code);
42100    ELSE
42101       NULL;
42102 -- No business flow processing for business flow method of NONE.
42103    END IF;
42104 
42105    --
42106    -- call analytical criteria
42107    --
42108    
42109    --
42110    -- call description
42111    --
42112    -- No description or it is inherited.
42113    --
42114    -- call ADRs
42115    -- Bug 4922099
42116    --
42117    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42118         (NVL(l_actual_upg_option, 'N') = 'O') OR
42119         (NVL(l_enc_upg_option, 'N') = 'O')
42120       )
42121    THEN
42122    NULL;
42123    --
42124    --
42125    
42126   l_ccid := AcctDerRule_27(
42127            p_application_id           => p_application_id
42128          , p_ae_header_id             => l_ae_header_id 
42129 , p_source_5 => p_source_5
42130          , x_transaction_coa_id       => l_adr_transaction_coa_id
42131          , x_accounting_coa_id        => l_adr_accounting_coa_id
42132          , x_value_type_code          => l_adr_value_type_code
42133          , p_side                     => 'NA'
42134    );
42135 
42136    xla_ae_lines_pkg.set_ccid(
42137     p_code_combination_id          => l_ccid
42138   , p_value_type_code              => l_adr_value_type_code
42139   , p_transaction_coa_id           => l_adr_transaction_coa_id
42140   , p_accounting_coa_id            => l_adr_accounting_coa_id
42141   , p_adr_code                     => 'AP_CASH'
42142   , p_adr_type_code                => 'S'
42143   , p_component_type               => l_component_type
42144   , p_component_code               => l_component_code
42145   , p_component_type_code          => l_component_type_code
42146   , p_component_appl_id            => l_component_appl_id
42147   , p_amb_context_code             => l_amb_context_code
42148   , p_side                         => 'NA'
42149   );
42150 
42151 
42152    --
42153    --
42154    END IF;
42155    --
42156    -- Bug 4922099
42157    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42158           (NVL(l_enc_upg_option, 'N') = 'O')
42159         ) AND
42160         (l_bflow_method_code = 'PRIOR_ENTRY')
42161       )
42162    THEN
42163       IF
42164       --
42165       1 = 2
42166       --
42167       THEN
42168       xla_accounting_err_pkg.build_message
42169                                     (p_appli_s_name            => 'XLA'
42170                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42171                                     ,p_token_1                 => 'LINE_NUMBER'
42172                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
42173                                     ,p_token_2                 => 'LINE_TYPE_NAME'
42174                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
42175                                                                              l_component_type
42176                                                                             ,l_component_code
42177                                                                             ,l_component_type_code
42178                                                                             ,l_component_appl_id
42179                                                                             ,l_amb_context_code
42180                                                                             ,l_entity_code
42181                                                                             ,l_event_class_code
42182                                                                            )
42183                                     ,p_token_3                 => 'OWNER'
42187                                                                          )
42184                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
42185                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
42186                                                                           ,p_lookup_code    => l_component_type_code
42188                                     ,p_token_4                 => 'PRODUCT_NAME'
42189                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42190                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42191                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42192                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42193                                     ,p_ae_header_id            =>  NULL
42194                                        );
42195 
42196         IF (C_LEVEL_ERROR>= g_log_level) THEN
42197                  trace
42198                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42199                       ,p_level    => C_LEVEL_ERROR
42200                       ,p_module   => l_log_module);
42201         END IF;
42202       END IF;
42203    END IF;
42204    --
42205    --
42206    ------------------------------------------------------------------------------------------------
42207    -- 4219869 Business Flow
42208    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42209    -- Prior Entry.  Currently, the following code is always generated.
42210    ------------------------------------------------------------------------------------------------
42211    XLA_AE_LINES_PKG.ValidateCurrentLine;
42212 
42213    ------------------------------------------------------------------------------------
42214    -- 4219869 Business Flow
42215    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42216    ------------------------------------------------------------------------------------
42217    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42218 
42219    ----------------------------------------------------------------------------------
42220    -- 4219869 Business Flow
42221    -- Update journal entry status -- Need to generate this within IF <condition>
42222    ----------------------------------------------------------------------------------
42223    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42224          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42225          ,p_balance_type_code => l_balance_type_code
42226          );
42227 
42228    -------------------------------------------------------------------------------------------
42229    -- 4262811 - Generate the Accrual Reversal lines
42230    -------------------------------------------------------------------------------------------
42231    BEGIN
42232       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42233                               (g_array_event(p_event_id).array_value_num('header_index'));
42234       IF l_acc_rev_flag IS NULL THEN
42235          l_acc_rev_flag := 'N';
42236       END IF;
42237    EXCEPTION
42238       WHEN OTHERS THEN
42239          l_acc_rev_flag := 'N';
42240    END;
42241    --
42242    IF (l_acc_rev_flag = 'Y') THEN
42243 
42244        -- 4645092  ------------------------------------------------------------------------------
42245        -- To allow MPA report to determine if it should generate report process
42246        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42247        ------------------------------------------------------------------------------------------
42248 
42249        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42250        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42251    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
42252    -- call ADRs
42253    -- Bug 4922099
42254    --
42255    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42256         (NVL(l_actual_upg_option, 'N') = 'O') OR
42257         (NVL(l_enc_upg_option, 'N') = 'O')
42258       )
42259    THEN
42260    NULL;
42261    --
42262    --
42263    
42264   l_ccid := AcctDerRule_27(
42265            p_application_id           => p_application_id
42266          , p_ae_header_id             => l_ae_header_id 
42267 , p_source_5 => p_source_5
42268          , x_transaction_coa_id       => l_adr_transaction_coa_id
42269          , x_accounting_coa_id        => l_adr_accounting_coa_id
42270          , x_value_type_code          => l_adr_value_type_code
42271          , p_side                     => 'NA'
42272    );
42273 
42274    xla_ae_lines_pkg.set_ccid(
42275     p_code_combination_id          => l_ccid
42276   , p_value_type_code              => l_adr_value_type_code
42277   , p_transaction_coa_id           => l_adr_transaction_coa_id
42278   , p_accounting_coa_id            => l_adr_accounting_coa_id
42279   , p_adr_code                     => 'AP_CASH'
42280   , p_adr_type_code                => 'S'
42281   , p_component_type               => l_component_type
42282   , p_component_code               => l_component_code
42283   , p_component_type_code          => l_component_type_code
42284   , p_component_appl_id            => l_component_appl_id
42285   , p_amb_context_code             => l_amb_context_code
42286   , p_side                         => 'NA'
42287   );
42288 
42289 
42290    --
42291    --
42292    END IF;
42293 
42294        --
42298                                          p_header_num   => 1);
42295        -- Update the line information that should be overwritten
42296        --
42297        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42299        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
42300 
42301        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42302 
42303        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
42304           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42305        END IF;
42306 
42307       --
42308       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42309       --
42310       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42311           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
42312       ELSE
42313           ---------------------------------------------------------------------------------------------------
42314           -- 4262811a Switch Sign
42315           ---------------------------------------------------------------------------------------------------
42316           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
42317           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42318                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42319           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42320                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42321           -- 5132302
42322           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42323                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42324 
42325       END IF;
42326 
42327       -- 4955764
42328       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42329       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42330 
42331 
42332       XLA_AE_LINES_PKG.ValidateCurrentLine;
42333       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42334 
42335       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42336                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42337                ,p_balance_type_code => l_balance_type_code);
42338 
42339    END IF;
42340 
42341    -----------------------------------------------------------------------------------------
42342    -- 4262811 Multiperiod Accounting
42343    -----------------------------------------------------------------------------------------
42344      -- No MPA option is assigned.
42345 
42346 
42347 END IF;
42348 END IF;
42349 --
42350 
42351 --
42352 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42353    trace
42354       (p_msg      => 'END of AcctLineType_95'
42355       ,p_level    => C_LEVEL_PROCEDURE
42356       ,p_module   => l_log_module);
42357 END IF;
42358 --
42359 EXCEPTION
42360   WHEN xla_exceptions_pkg.application_exception THEN
42361       RAISE;
42362   WHEN OTHERS THEN
42363        xla_exceptions_pkg.raise_message
42364            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_95');
42365 END AcctLineType_95;
42366 --
42367 
42368 ---------------------------------------
42369 --
42370 -- PRIVATE FUNCTION
42371 --         AcctLineType_96
42372 --
42373 ---------------------------------------
42374 PROCEDURE AcctLineType_96 (
42375   p_application_id        IN NUMBER
42376  ,p_event_id              IN NUMBER
42377  ,p_calculate_acctd_flag  IN VARCHAR2
42378  ,p_calculate_g_l_flag    IN VARCHAR2
42379  ,p_actual_flag           IN OUT VARCHAR2
42380  ,p_balance_type_code     OUT VARCHAR2
42381  ,p_gain_or_loss_ref      OUT VARCHAR2
42382  
42383 --Automatic Offsets Value
42384  , p_source_3            IN VARCHAR2
42385  , p_source_3_meaning    IN VARCHAR2
42386 --Bank Cash Account
42387  , p_source_5            IN NUMBER
42388 --Accounting Reversal Indicator
42389  , p_source_41            IN VARCHAR2
42390 --Distribution Link Type
42391  , p_source_43            IN VARCHAR2
42392 --Override Accounted Amount Indicator
42393  , p_source_68            IN VARCHAR2
42394  , p_source_68_meaning    IN VARCHAR2
42395 --Third Party Type
42396  , p_source_71            IN VARCHAR2
42397 --Invoice Distribution Tax Line Identifier
42398  , p_source_74            IN NUMBER
42399 --Invoice Distribution Tax Distribution Identifier from Tax
42400  , p_source_75            IN NUMBER
42401 --Invoice Distribution Summary Tax Line Identifier
42402  , p_source_76            IN NUMBER
42403 --Business Flow Accounts Payable Application Identifier
42404  , p_source_79            IN NUMBER
42405 --Business Flow Invoice Distribution Type
42406  , p_source_80            IN VARCHAR2
42407 --Business Flow Invoice Entity Code
42408  , p_source_81            IN VARCHAR2
42409 --Business Flow Invoice Distribution Identifier
42410  , p_source_82            IN NUMBER
42411 --Business Flow Invoice Identifier
42412  , p_source_83            IN NUMBER
42413 --When to Account for Payment Option
42414  , p_source_89            IN VARCHAR2
42415 --Payment Distribution Type
42416  , p_source_90            IN VARCHAR2
42417  , p_source_90_meaning    IN VARCHAR2
42418 --Payment Distribution Amount
42422 --Payment Supplier Identifier
42419  , p_source_91            IN NUMBER
42420 --Payment Distribution Identifier
42421  , p_source_96            IN NUMBER
42423  , p_source_102            IN NUMBER
42424 --Payment Supplier Site Identifier
42425  , p_source_103            IN NUMBER
42426 --Payment Distribution Reversed Identifier
42427  , p_source_104            IN NUMBER
42428 --Pooled Bank Account Option
42429  , p_source_105            IN VARCHAR2
42430  , p_source_105_meaning    IN VARCHAR2
42431 --Payment Currency Code
42432  , p_source_106            IN VARCHAR2
42433 --Payment Maturity Date
42434  , p_source_107            IN DATE
42435 --Payment Distribution (Payment Rate) Ledger Amount
42436  , p_source_108            IN NUMBER
42437 --Payment Exchange Date
42438  , p_source_110            IN DATE
42439 --Payment Exchange Rate
42440  , p_source_111            IN NUMBER
42441 --Payment Exchange Rate Type
42442  , p_source_112            IN VARCHAR2
42443 --Payment Type
42444  , p_source_115            IN VARCHAR2
42445  , p_source_115_meaning    IN VARCHAR2
42446 )
42447 IS
42448 
42449 l_component_type              VARCHAR2(80);
42450 l_component_code              VARCHAR2(30);
42451 l_component_type_code         VARCHAR2(1);
42452 l_component_appl_id           INTEGER;
42453 l_amb_context_code            VARCHAR2(30);
42454 l_entity_code                 VARCHAR2(30);
42455 l_event_class_code            VARCHAR2(30);
42456 l_ae_header_id                NUMBER;
42457 l_event_type_code             VARCHAR2(30);
42458 l_line_definition_code        VARCHAR2(30);
42459 l_line_definition_owner_code  VARCHAR2(1);
42460 --
42461 -- adr variables
42462 l_segment                     VARCHAR2(30);
42463 l_ccid                        NUMBER;
42464 l_adr_transaction_coa_id      NUMBER;
42465 l_adr_accounting_coa_id       NUMBER;
42466 l_adr_flexfield_segment_code  VARCHAR2(30);
42467 l_adr_flex_value_set_id       NUMBER;
42468 l_adr_value_type_code         VARCHAR2(30);
42469 l_adr_value_combination_id    NUMBER;
42470 l_adr_value_segment_code      VARCHAR2(30);
42471 
42472 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
42473 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
42474 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
42475 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
42476 
42477 -- 4262811 Variables ------------------------------------------------------------------------------------------
42478 l_entered_amt_idx             NUMBER;
42479 l_accted_amt_idx              NUMBER;
42480 l_acc_rev_flag                VARCHAR2(1);
42481 l_accrual_line_num            NUMBER;
42482 l_tmp_amt                     NUMBER;
42483 l_acc_rev_natural_side_code   VARCHAR2(1);
42484 
42485 l_num_entries                 NUMBER;
42486 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
42487 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
42488 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
42489 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
42490 l_recog_line_1                NUMBER;
42491 l_recog_line_2                NUMBER;
42492 
42493 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
42494 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
42495 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
42496 
42497 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42498 
42499 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
42500 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
42501 
42502 ---------------------------------------------------------------------------------------------------------------
42503 
42504 
42505 --
42506 -- bulk performance
42507 --
42508 l_balance_type_code           VARCHAR2(1);
42509 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
42510 l_log_module                  VARCHAR2(240);
42511 
42512 --
42513 -- Upgrade strategy
42514 --
42515 l_actual_upg_option           VARCHAR2(1);
42516 l_enc_upg_option           VARCHAR2(1);
42517 
42518 --
42519 BEGIN
42520 --
42521 IF g_log_enabled THEN
42522       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_96';
42523 END IF;
42524 --
42525 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42526 
42527       trace
42528          (p_msg      => 'BEGIN of AcctLineType_96'
42529          ,p_level    => C_LEVEL_PROCEDURE
42530          ,p_module   => l_log_module);
42531 
42532 END IF;
42533 --
42534 l_component_type             := 'AMB_JLT';
42535 l_component_code             := 'AP_CASH_REF_AOS_AS';
42536 l_component_type_code        := 'S';
42537 l_component_appl_id          :=  200;
42538 l_amb_context_code           := 'DEFAULT';
42539 l_entity_code                := 'AP_PAYMENTS';
42540 l_event_class_code           := 'REFUNDS';
42541 l_event_type_code            := 'REFUNDS_ALL';
42542 l_line_definition_owner_code := 'S';
42543 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
42544 --
42545 l_balance_type_code          := 'A';
42546 l_segment                     := NULL;
42547 l_ccid                        := NULL;
42548 l_adr_transaction_coa_id      := NULL;
42549 l_adr_accounting_coa_id       := NULL;
42550 l_adr_flexfield_segment_code  := NULL;
42551 l_adr_flex_value_set_id       := NULL;
42552 l_adr_value_type_code         := NULL;
42553 l_adr_value_combination_id    := NULL;
42554 l_adr_value_segment_code      := NULL;
42555 
42559 l_budgetary_control_flag     := 'N';
42556 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
42557 l_bflow_class_code           := '';    -- 4219869 Business Flow
42558 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
42560 
42561 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
42562 l_bflow_applied_to_amt       := NULL; -- 5132302
42563 l_entered_amt_idx            := NULL;          -- 4262811
42564 l_accted_amt_idx             := NULL;          -- 4262811
42565 l_acc_rev_flag               := NULL;          -- 4262811
42566 l_accrual_line_num           := NULL;          -- 4262811
42567 l_tmp_amt                    := NULL;          -- 4262811
42568 --
42569  
42570 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42571     l_balance_type_code <> 'B' THEN
42572 IF NVL(p_source_89,'
42573 ') =  'ISSUE_ISSUE' AND 
42574 (NVL(p_source_105,'
42575 ') =  'Y' AND 
42576 NVL(p_source_3,'
42577 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
42578 p_source_107 IS NULL AND 
42579 NVL(p_source_90,'
42580 ') =  'CASH' AND 
42581 NVL(p_source_115,'
42582 ') =  'R'
42583  THEN 
42584 
42585    --
42586    XLA_AE_LINES_PKG.SetNewLine;
42587 
42588    p_balance_type_code          := l_balance_type_code;
42589    -- set the flag so later we will know whether the gain loss line needs to be created
42590    
42591    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42592      p_actual_flag :='A';
42593    END IF;
42594 
42595    --
42596    -- bulk performance
42597    --
42598    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42599                                       p_header_num   => 0); -- 4262811
42600    --
42601    -- set accounting line options
42602    --
42603    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42604            p_natural_side_code          => 'C'
42605          , p_gain_or_loss_flag          => 'N'
42606          , p_gl_transfer_mode_code      => 'S'
42607          , p_acct_entry_type_code       => 'A'
42608          , p_switch_side_flag           => 'Y'
42609          , p_merge_duplicate_code       => 'A'
42610          );
42611    --
42612    l_acc_rev_natural_side_code := 'D';  -- 4262811
42613    -- 
42614    --
42615    -- set accounting line type info
42616    --
42617    xla_ae_lines_pkg.SetAcctLineType
42618       (p_component_type             => l_component_type
42619       ,p_event_type_code            => l_event_type_code
42620       ,p_line_definition_owner_code => l_line_definition_owner_code
42621       ,p_line_definition_code       => l_line_definition_code
42622       ,p_accounting_line_code       => l_component_code
42623       ,p_accounting_line_type_code  => l_component_type_code
42624       ,p_accounting_line_appl_id    => l_component_appl_id
42625       ,p_amb_context_code           => l_amb_context_code
42626       ,p_entity_code                => l_entity_code
42627       ,p_event_class_code           => l_event_class_code);
42628    --
42629    -- set accounting class
42630    --
42631    xla_ae_lines_pkg.SetAcctClass(
42632            p_accounting_class_code  => 'CASH'
42633          , p_ae_header_id           => l_ae_header_id
42634          );
42635 
42636    --
42637    -- set rounding class
42638    --
42639    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42640                       'CASH';
42641 
42642    --
42643    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42644    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42645    --
42646    -- bulk performance
42647    --
42648    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42649 
42650    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42651       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42652 
42653    -- 4955764
42654    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42655       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42656 
42657    -- 4458381 Public Sector Enh
42658    
42659    --
42660    -- set accounting attributes for the line type
42661    --
42662    l_entered_amt_idx := 9;
42663    l_accted_amt_idx  := 14;
42664    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
42665    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42666    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
42667    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
42668    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
42669    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42670    l_rec_acct_attrs.array_char_value(3)  := p_source_80;
42671    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
42672    l_rec_acct_attrs.array_char_value(4)  := p_source_81;
42673    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
42674    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
42675    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42676    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
42677    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
42678    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
42679    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
42680    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
42684    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
42681    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
42682    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
42683    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
42685    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
42686    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
42687    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
42688    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
42689    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
42690    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
42691    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
42692    l_rec_acct_attrs.array_num_value(14)  := p_source_108;
42693    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
42694    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
42695    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
42696    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
42697    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
42698    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
42699    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
42700    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
42701    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
42702    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
42703    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
42704    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
42705    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
42706    l_rec_acct_attrs.array_num_value(21)  := p_source_74;
42707    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
42708    l_rec_acct_attrs.array_num_value(22)  := p_source_75;
42709    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
42710    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
42711 
42712    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42713    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42714 
42715    ---------------------------------------------------------------------------------------------------------------
42716    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42717    ---------------------------------------------------------------------------------------------------------------
42718    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42719 
42720    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42721    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42722 
42723    IF xla_accounting_cache_pkg.GetValueChar
42724          (p_source_code         => 'LEDGER_CATEGORY_CODE'
42725          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42726    AND l_bflow_method_code = 'PRIOR_ENTRY'
42727 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42728    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42729          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42730        )
42731    THEN
42732          xla_ae_lines_pkg.BflowUpgEntry
42733            (p_business_method_code    => l_bflow_method_code
42734            ,p_business_class_code     => l_bflow_class_code
42735            ,p_balance_type            => l_balance_type_code);
42736    ELSE
42737       NULL;
42738 XLA_AE_LINES_PKG.business_flow_validation(
42739                                 p_business_method_code     => l_bflow_method_code
42740                                ,p_business_class_code      => l_bflow_class_code
42741                                ,p_inherit_description_flag => l_inherit_desc_flag);
42742    END IF;
42743 
42744    --
42745    -- call analytical criteria
42746    --
42747    
42748    --
42749    -- call description
42750    --
42751    -- No description or it is inherited.
42752    --
42753    -- call ADRs
42754    -- Bug 4922099
42755    --
42756    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42757         (NVL(l_actual_upg_option, 'N') = 'O') OR
42758         (NVL(l_enc_upg_option, 'N') = 'O')
42759       )
42760    THEN
42761    NULL;
42762    --
42763    --
42764    
42765    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
42766      p_code_combination_id      => TO_NUMBER(C_NUM)
42767    , p_value_type_code          => NULL
42768    , p_transaction_coa_id       => null
42769    , p_accounting_coa_id        => null
42770    , p_adr_code                 => NULL
42771    , p_adr_type_code            => NULL
42772    , p_component_type           => l_component_type
42773    , p_component_code           => l_component_code
42774    , p_component_type_code      => l_component_type_code
42775    , p_component_appl_id        => l_component_appl_id
42776    , p_amb_context_code         => l_amb_context_code
42777    , p_side                     => NULL
42778    );
42779 
42780    
42781   -- initialise segments
42782   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42783   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42784   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42785   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42786   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42787   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42791   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42788   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42789   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42790   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42792   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42793   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42794   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42795   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42796   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42797   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42798   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42799   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42800   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42801   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42802   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42803   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42804   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42805   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42806   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42807   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42808   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42809   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42810   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42811   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42812   --
42813 
42814    --
42815 
42816 
42817    l_segment := AcctDerRule_5(
42818            p_application_id           => p_application_id
42819          , p_ae_header_id             => l_ae_header_id 
42820 , p_source_5 => p_source_5
42821          , x_transaction_coa_id       => l_adr_transaction_coa_id
42822          , x_accounting_coa_id        => l_adr_accounting_coa_id
42823          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
42824          , x_flex_value_set_id        => l_adr_flex_value_set_id
42825          , x_value_type_code          => l_adr_value_type_code
42826          , x_value_combination_id     => l_adr_value_combination_id
42827          , x_value_segment_code       => l_adr_value_segment_code
42828          , p_side                     => 'NA'
42829          , p_override_seg_flag        => 'Y'
42830    );
42831 
42832    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
42833 
42834       xla_ae_lines_pkg.set_segment(
42835           p_to_segment_code         => 'GL_ACCOUNT'
42836         , p_segment_value           => l_segment
42837         , p_from_segment_code       => l_adr_value_segment_code
42838         , p_from_combination_id     => l_adr_value_combination_id
42839         , p_value_type_code         => l_adr_value_type_code
42840         , p_transaction_coa_id      => l_adr_transaction_coa_id
42841         , p_accounting_coa_id       => l_adr_accounting_coa_id
42842         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
42843         , p_flex_value_set_id       => l_adr_flex_value_set_id
42844         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
42845         , p_adr_type_code           => 'S'
42846         , p_component_type          => l_component_type
42847         , p_component_code          => l_component_code
42848         , p_component_type_code     => l_component_type_code
42849         , p_component_appl_id       => l_component_appl_id
42850         , p_amb_context_code        => l_amb_context_code
42851         , p_entity_code             => 'AP_PAYMENTS'
42852         , p_event_class_code        => 'REFUNDS'
42853         , p_side                    => 'NA'
42854         );
42855 
42856   END IF;
42857 
42858    --
42859    --
42860    END IF;
42861    --
42862    -- Bug 4922099
42863    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42864           (NVL(l_enc_upg_option, 'N') = 'O')
42865         ) AND
42866         (l_bflow_method_code = 'PRIOR_ENTRY')
42867       )
42868    THEN
42869       IF
42870       --
42871       1 = 2
42872       --
42873       THEN
42874       xla_accounting_err_pkg.build_message
42875                                     (p_appli_s_name            => 'XLA'
42876                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42877                                     ,p_token_1                 => 'LINE_NUMBER'
42878                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
42879                                     ,p_token_2                 => 'LINE_TYPE_NAME'
42880                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
42881                                                                              l_component_type
42882                                                                             ,l_component_code
42883                                                                             ,l_component_type_code
42884                                                                             ,l_component_appl_id
42885                                                                             ,l_amb_context_code
42889                                     ,p_token_3                 => 'OWNER'
42886                                                                             ,l_entity_code
42887                                                                             ,l_event_class_code
42888                                                                            )
42890                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
42891                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
42892                                                                           ,p_lookup_code    => l_component_type_code
42893                                                                          )
42894                                     ,p_token_4                 => 'PRODUCT_NAME'
42895                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42896                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42897                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42898                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42899                                     ,p_ae_header_id            =>  NULL
42900                                        );
42901 
42902         IF (C_LEVEL_ERROR>= g_log_level) THEN
42903                  trace
42904                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42905                       ,p_level    => C_LEVEL_ERROR
42906                       ,p_module   => l_log_module);
42907         END IF;
42908       END IF;
42909    END IF;
42910    --
42911    --
42912    ------------------------------------------------------------------------------------------------
42913    -- 4219869 Business Flow
42914    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42915    -- Prior Entry.  Currently, the following code is always generated.
42916    ------------------------------------------------------------------------------------------------
42917    XLA_AE_LINES_PKG.ValidateCurrentLine;
42918 
42919    ------------------------------------------------------------------------------------
42920    -- 4219869 Business Flow
42921    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42922    ------------------------------------------------------------------------------------
42923    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42924 
42925    ----------------------------------------------------------------------------------
42926    -- 4219869 Business Flow
42927    -- Update journal entry status -- Need to generate this within IF <condition>
42928    ----------------------------------------------------------------------------------
42929    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42930          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42931          ,p_balance_type_code => l_balance_type_code
42932          );
42933 
42934    -------------------------------------------------------------------------------------------
42935    -- 4262811 - Generate the Accrual Reversal lines
42936    -------------------------------------------------------------------------------------------
42937    BEGIN
42938       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42939                               (g_array_event(p_event_id).array_value_num('header_index'));
42940       IF l_acc_rev_flag IS NULL THEN
42941          l_acc_rev_flag := 'N';
42942       END IF;
42943    EXCEPTION
42944       WHEN OTHERS THEN
42945          l_acc_rev_flag := 'N';
42946    END;
42947    --
42948    IF (l_acc_rev_flag = 'Y') THEN
42949 
42950        -- 4645092  ------------------------------------------------------------------------------
42951        -- To allow MPA report to determine if it should generate report process
42952        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42953        ------------------------------------------------------------------------------------------
42954 
42955        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42956        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42957    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
42958    -- call ADRs
42959    -- Bug 4922099
42960    --
42961    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42962         (NVL(l_actual_upg_option, 'N') = 'O') OR
42963         (NVL(l_enc_upg_option, 'N') = 'O')
42964       )
42965    THEN
42966    NULL;
42967    --
42968    --
42969    
42970    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
42971      p_code_combination_id      => TO_NUMBER(C_NUM)
42972    , p_value_type_code          => NULL
42973    , p_transaction_coa_id       => null
42974    , p_accounting_coa_id        => null
42975    , p_adr_code                 => NULL
42976    , p_adr_type_code            => NULL
42977    , p_component_type           => l_component_type
42978    , p_component_code           => l_component_code
42979    , p_component_type_code      => l_component_type_code
42980    , p_component_appl_id        => l_component_appl_id
42981    , p_amb_context_code         => l_amb_context_code
42982    , p_side                     => NULL
42983    );
42984 
42985    
42986   -- initialise segments
42987   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42988   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42992   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42989   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42990   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42991   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42993   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42994   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42995   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
42996   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42997   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42998   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
42999   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43000   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43001   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43002   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43003   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43004   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43005   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43006   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43007   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43008   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43009   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43010   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43011   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43012   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43013   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43014   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43015   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43016   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
43017   --
43018 
43019    --
43020 
43021 
43022    l_segment := AcctDerRule_5(
43023            p_application_id           => p_application_id
43024          , p_ae_header_id             => l_ae_header_id 
43025 , p_source_5 => p_source_5
43026          , x_transaction_coa_id       => l_adr_transaction_coa_id
43027          , x_accounting_coa_id        => l_adr_accounting_coa_id
43028          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
43029          , x_flex_value_set_id        => l_adr_flex_value_set_id
43030          , x_value_type_code          => l_adr_value_type_code
43031          , x_value_combination_id     => l_adr_value_combination_id
43032          , x_value_segment_code       => l_adr_value_segment_code
43033          , p_side                     => 'NA'
43034          , p_override_seg_flag        => 'Y'
43035    );
43036 
43037    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
43038 
43039       xla_ae_lines_pkg.set_segment(
43040           p_to_segment_code         => 'GL_ACCOUNT'
43041         , p_segment_value           => l_segment
43042         , p_from_segment_code       => l_adr_value_segment_code
43043         , p_from_combination_id     => l_adr_value_combination_id
43044         , p_value_type_code         => l_adr_value_type_code
43045         , p_transaction_coa_id      => l_adr_transaction_coa_id
43046         , p_accounting_coa_id       => l_adr_accounting_coa_id
43047         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
43048         , p_flex_value_set_id       => l_adr_flex_value_set_id
43049         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
43050         , p_adr_type_code           => 'S'
43051         , p_component_type          => l_component_type
43052         , p_component_code          => l_component_code
43053         , p_component_type_code     => l_component_type_code
43054         , p_component_appl_id       => l_component_appl_id
43055         , p_amb_context_code        => l_amb_context_code
43056         , p_entity_code             => 'AP_PAYMENTS'
43057         , p_event_class_code        => 'REFUNDS'
43058         , p_side                    => 'NA'
43059         );
43060 
43061   END IF;
43062 
43063    --
43064    --
43065    END IF;
43066 
43067        --
43068        -- Update the line information that should be overwritten
43069        --
43070        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43071                                          p_header_num   => 1);
43072        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
43073 
43074        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43075 
43076        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
43077           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43078        END IF;
43079 
43080       --
43081       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43082       --
43083       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43087           -- 4262811a Switch Sign
43084           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
43085       ELSE
43086           ---------------------------------------------------------------------------------------------------
43088           ---------------------------------------------------------------------------------------------------
43089           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
43090           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43091                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43092           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43093                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43094           -- 5132302
43095           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43096                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43097 
43098       END IF;
43099 
43100       -- 4955764
43101       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43102       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43103 
43104 
43105       XLA_AE_LINES_PKG.ValidateCurrentLine;
43106       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43107 
43108       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43109                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43110                ,p_balance_type_code => l_balance_type_code);
43111 
43112    END IF;
43113 
43114    -----------------------------------------------------------------------------------------
43115    -- 4262811 Multiperiod Accounting
43116    -----------------------------------------------------------------------------------------
43117      -- No MPA option is assigned.
43118 
43119 
43120 END IF;
43121 END IF;
43122 --
43123 
43124 --
43125 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43126    trace
43127       (p_msg      => 'END of AcctLineType_96'
43128       ,p_level    => C_LEVEL_PROCEDURE
43129       ,p_module   => l_log_module);
43130 END IF;
43131 --
43132 EXCEPTION
43133   WHEN xla_exceptions_pkg.application_exception THEN
43134       RAISE;
43135   WHEN OTHERS THEN
43136        xla_exceptions_pkg.raise_message
43137            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_96');
43138 END AcctLineType_96;
43139 --
43140 
43141 ---------------------------------------
43142 --
43143 -- PRIVATE FUNCTION
43144 --         AcctLineType_97
43145 --
43146 ---------------------------------------
43147 PROCEDURE AcctLineType_97 (
43148   p_application_id        IN NUMBER
43149  ,p_event_id              IN NUMBER
43150  ,p_calculate_acctd_flag  IN VARCHAR2
43151  ,p_calculate_g_l_flag    IN VARCHAR2
43152  ,p_actual_flag           IN OUT VARCHAR2
43153  ,p_balance_type_code     OUT VARCHAR2
43154  ,p_gain_or_loss_ref      OUT VARCHAR2
43155  
43156 --Automatic Offsets Value
43157  , p_source_3            IN VARCHAR2
43158  , p_source_3_meaning    IN VARCHAR2
43159 --Bank Cash Account
43160  , p_source_5            IN NUMBER
43161 --Accounting Reversal Indicator
43162  , p_source_41            IN VARCHAR2
43163 --Distribution Link Type
43164  , p_source_43            IN VARCHAR2
43165 --Override Accounted Amount Indicator
43166  , p_source_68            IN VARCHAR2
43167  , p_source_68_meaning    IN VARCHAR2
43168 --Third Party Type
43169  , p_source_71            IN VARCHAR2
43170 --Invoice Distribution Tax Line Identifier
43171  , p_source_74            IN NUMBER
43172 --Invoice Distribution Tax Distribution Identifier from Tax
43173  , p_source_75            IN NUMBER
43174 --Invoice Distribution Summary Tax Line Identifier
43175  , p_source_76            IN NUMBER
43176 --Business Flow Accounts Payable Application Identifier
43177  , p_source_79            IN NUMBER
43178 --Business Flow Invoice Distribution Type
43179  , p_source_80            IN VARCHAR2
43180 --Business Flow Invoice Entity Code
43181  , p_source_81            IN VARCHAR2
43182 --Business Flow Invoice Distribution Identifier
43183  , p_source_82            IN NUMBER
43184 --Business Flow Invoice Identifier
43185  , p_source_83            IN NUMBER
43186 --When to Account for Payment Option
43187  , p_source_89            IN VARCHAR2
43188 --Payment Distribution Type
43189  , p_source_90            IN VARCHAR2
43190  , p_source_90_meaning    IN VARCHAR2
43191 --Payment Distribution Amount
43192  , p_source_91            IN NUMBER
43193 --Payment Distribution Identifier
43194  , p_source_96            IN NUMBER
43195 --Payment Supplier Identifier
43196  , p_source_102            IN NUMBER
43197 --Payment Supplier Site Identifier
43198  , p_source_103            IN NUMBER
43199 --Payment Distribution Reversed Identifier
43200  , p_source_104            IN NUMBER
43201 --Pooled Bank Account Option
43202  , p_source_105            IN VARCHAR2
43203  , p_source_105_meaning    IN VARCHAR2
43204 --Payment Currency Code
43205  , p_source_106            IN VARCHAR2
43206 --Payment Maturity Date
43207  , p_source_107            IN DATE
43208 --Payment Distribution (Payment Rate) Ledger Amount
43209  , p_source_108            IN NUMBER
43210 --Payment Exchange Date
43211  , p_source_110            IN DATE
43212 --Payment Exchange Rate
43213  , p_source_111            IN NUMBER
43214 --Payment Exchange Rate Type
43215  , p_source_112            IN VARCHAR2
43216 --Payment Type
43220 IS
43217  , p_source_115            IN VARCHAR2
43218  , p_source_115_meaning    IN VARCHAR2
43219 )
43221 
43222 l_component_type              VARCHAR2(80);
43223 l_component_code              VARCHAR2(30);
43224 l_component_type_code         VARCHAR2(1);
43225 l_component_appl_id           INTEGER;
43226 l_amb_context_code            VARCHAR2(30);
43227 l_entity_code                 VARCHAR2(30);
43228 l_event_class_code            VARCHAR2(30);
43229 l_ae_header_id                NUMBER;
43230 l_event_type_code             VARCHAR2(30);
43231 l_line_definition_code        VARCHAR2(30);
43232 l_line_definition_owner_code  VARCHAR2(1);
43233 --
43234 -- adr variables
43235 l_segment                     VARCHAR2(30);
43236 l_ccid                        NUMBER;
43237 l_adr_transaction_coa_id      NUMBER;
43238 l_adr_accounting_coa_id       NUMBER;
43239 l_adr_flexfield_segment_code  VARCHAR2(30);
43240 l_adr_flex_value_set_id       NUMBER;
43241 l_adr_value_type_code         VARCHAR2(30);
43242 l_adr_value_combination_id    NUMBER;
43243 l_adr_value_segment_code      VARCHAR2(30);
43244 
43245 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
43246 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
43247 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
43248 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
43249 
43250 -- 4262811 Variables ------------------------------------------------------------------------------------------
43251 l_entered_amt_idx             NUMBER;
43252 l_accted_amt_idx              NUMBER;
43253 l_acc_rev_flag                VARCHAR2(1);
43254 l_accrual_line_num            NUMBER;
43255 l_tmp_amt                     NUMBER;
43256 l_acc_rev_natural_side_code   VARCHAR2(1);
43257 
43258 l_num_entries                 NUMBER;
43259 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
43260 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
43261 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
43262 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
43263 l_recog_line_1                NUMBER;
43264 l_recog_line_2                NUMBER;
43265 
43266 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
43267 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
43268 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
43269 
43270 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43271 
43272 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
43273 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
43274 
43275 ---------------------------------------------------------------------------------------------------------------
43276 
43277 
43278 --
43279 -- bulk performance
43280 --
43281 l_balance_type_code           VARCHAR2(1);
43282 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
43283 l_log_module                  VARCHAR2(240);
43284 
43285 --
43286 -- Upgrade strategy
43287 --
43288 l_actual_upg_option           VARCHAR2(1);
43289 l_enc_upg_option           VARCHAR2(1);
43290 
43291 --
43292 BEGIN
43293 --
43294 IF g_log_enabled THEN
43295       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_97';
43296 END IF;
43297 --
43298 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43299 
43300       trace
43301          (p_msg      => 'BEGIN of AcctLineType_97'
43302          ,p_level    => C_LEVEL_PROCEDURE
43303          ,p_module   => l_log_module);
43304 
43305 END IF;
43306 --
43307 l_component_type             := 'AMB_JLT';
43308 l_component_code             := 'AP_CASH_REF_AOS_BS';
43309 l_component_type_code        := 'S';
43310 l_component_appl_id          :=  200;
43311 l_amb_context_code           := 'DEFAULT';
43312 l_entity_code                := 'AP_PAYMENTS';
43313 l_event_class_code           := 'REFUNDS';
43314 l_event_type_code            := 'REFUNDS_ALL';
43315 l_line_definition_owner_code := 'S';
43316 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
43317 --
43318 l_balance_type_code          := 'A';
43319 l_segment                     := NULL;
43320 l_ccid                        := NULL;
43321 l_adr_transaction_coa_id      := NULL;
43322 l_adr_accounting_coa_id       := NULL;
43323 l_adr_flexfield_segment_code  := NULL;
43324 l_adr_flex_value_set_id       := NULL;
43325 l_adr_value_type_code         := NULL;
43326 l_adr_value_combination_id    := NULL;
43327 l_adr_value_segment_code      := NULL;
43328 
43329 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
43330 l_bflow_class_code           := '';    -- 4219869 Business Flow
43331 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
43332 l_budgetary_control_flag     := 'N';
43333 
43334 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
43335 l_bflow_applied_to_amt       := NULL; -- 5132302
43336 l_entered_amt_idx            := NULL;          -- 4262811
43337 l_accted_amt_idx             := NULL;          -- 4262811
43338 l_acc_rev_flag               := NULL;          -- 4262811
43339 l_accrual_line_num           := NULL;          -- 4262811
43340 l_tmp_amt                    := NULL;          -- 4262811
43341 --
43342  
43343 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43344     l_balance_type_code <> 'B' THEN
43345 IF NVL(p_source_89,'
43346 ') =  'ISSUE_ISSUE' AND 
43347 (NVL(p_source_105,'
43348 ') =  'Y' AND 
43349 NVL(p_source_3,'
43350 ') =  'BALANCING_SEGMENT') AND 
43354 NVL(p_source_115,'
43351 p_source_107 IS NULL AND 
43352 NVL(p_source_90,'
43353 ') =  'CASH' AND 
43355 ') =  'R'
43356  THEN 
43357 
43358    --
43359    XLA_AE_LINES_PKG.SetNewLine;
43360 
43361    p_balance_type_code          := l_balance_type_code;
43362    -- set the flag so later we will know whether the gain loss line needs to be created
43363    
43364    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43365      p_actual_flag :='A';
43366    END IF;
43367 
43368    --
43369    -- bulk performance
43370    --
43371    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43372                                       p_header_num   => 0); -- 4262811
43373    --
43374    -- set accounting line options
43375    --
43376    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43377            p_natural_side_code          => 'C'
43378          , p_gain_or_loss_flag          => 'N'
43379          , p_gl_transfer_mode_code      => 'S'
43380          , p_acct_entry_type_code       => 'A'
43381          , p_switch_side_flag           => 'Y'
43382          , p_merge_duplicate_code       => 'A'
43383          );
43384    --
43385    l_acc_rev_natural_side_code := 'D';  -- 4262811
43386    -- 
43387    --
43388    -- set accounting line type info
43389    --
43390    xla_ae_lines_pkg.SetAcctLineType
43391       (p_component_type             => l_component_type
43392       ,p_event_type_code            => l_event_type_code
43393       ,p_line_definition_owner_code => l_line_definition_owner_code
43394       ,p_line_definition_code       => l_line_definition_code
43395       ,p_accounting_line_code       => l_component_code
43396       ,p_accounting_line_type_code  => l_component_type_code
43397       ,p_accounting_line_appl_id    => l_component_appl_id
43398       ,p_amb_context_code           => l_amb_context_code
43399       ,p_entity_code                => l_entity_code
43400       ,p_event_class_code           => l_event_class_code);
43401    --
43402    -- set accounting class
43403    --
43404    xla_ae_lines_pkg.SetAcctClass(
43405            p_accounting_class_code  => 'CASH'
43406          , p_ae_header_id           => l_ae_header_id
43407          );
43408 
43409    --
43410    -- set rounding class
43411    --
43412    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43413                       'CASH';
43414 
43415    --
43416    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43417    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43418    --
43419    -- bulk performance
43420    --
43421    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43422 
43423    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43424       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43425 
43426    -- 4955764
43427    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43428       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43429 
43430    -- 4458381 Public Sector Enh
43431    
43432    --
43433    -- set accounting attributes for the line type
43434    --
43435    l_entered_amt_idx := 9;
43436    l_accted_amt_idx  := 14;
43437    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
43438    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43439    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
43440    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
43441    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
43442    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43443    l_rec_acct_attrs.array_char_value(3)  := p_source_80;
43444    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
43445    l_rec_acct_attrs.array_char_value(4)  := p_source_81;
43446    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
43447    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
43448    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43449    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
43450    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
43451    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
43452    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
43453    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
43454    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
43455    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
43456    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
43457    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
43458    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
43459    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
43460    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
43461    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
43462    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
43463    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
43464    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
43465    l_rec_acct_attrs.array_num_value(14)  := p_source_108;
43466    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
43467    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
43468    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
43469    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
43473    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
43470    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
43471    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
43472    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
43474    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
43475    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
43476    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
43477    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
43478    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
43479    l_rec_acct_attrs.array_num_value(21)  := p_source_74;
43480    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
43481    l_rec_acct_attrs.array_num_value(22)  := p_source_75;
43482    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
43483    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
43484 
43485    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43486    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43487 
43488    ---------------------------------------------------------------------------------------------------------------
43489    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43490    ---------------------------------------------------------------------------------------------------------------
43491    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43492 
43493    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43494    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43495 
43496    IF xla_accounting_cache_pkg.GetValueChar
43497          (p_source_code         => 'LEDGER_CATEGORY_CODE'
43498          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43499    AND l_bflow_method_code = 'PRIOR_ENTRY'
43500 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43501    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43502          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43503        )
43504    THEN
43505          xla_ae_lines_pkg.BflowUpgEntry
43506            (p_business_method_code    => l_bflow_method_code
43507            ,p_business_class_code     => l_bflow_class_code
43508            ,p_balance_type            => l_balance_type_code);
43509    ELSE
43510       NULL;
43511 XLA_AE_LINES_PKG.business_flow_validation(
43512                                 p_business_method_code     => l_bflow_method_code
43513                                ,p_business_class_code      => l_bflow_class_code
43514                                ,p_inherit_description_flag => l_inherit_desc_flag);
43515    END IF;
43516 
43517    --
43518    -- call analytical criteria
43519    --
43520    
43521    --
43522    -- call description
43523    --
43524    -- No description or it is inherited.
43525    --
43526    -- call ADRs
43527    -- Bug 4922099
43528    --
43529    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43530         (NVL(l_actual_upg_option, 'N') = 'O') OR
43531         (NVL(l_enc_upg_option, 'N') = 'O')
43532       )
43533    THEN
43534    NULL;
43535    --
43536    --
43537    
43538   l_ccid := AcctDerRule_27(
43539            p_application_id           => p_application_id
43540          , p_ae_header_id             => l_ae_header_id 
43541 , p_source_5 => p_source_5
43542          , x_transaction_coa_id       => l_adr_transaction_coa_id
43543          , x_accounting_coa_id        => l_adr_accounting_coa_id
43544          , x_value_type_code          => l_adr_value_type_code
43545          , p_side                     => 'NA'
43546    );
43547 
43548    xla_ae_lines_pkg.set_ccid(
43549     p_code_combination_id          => l_ccid
43550   , p_value_type_code              => l_adr_value_type_code
43551   , p_transaction_coa_id           => l_adr_transaction_coa_id
43552   , p_accounting_coa_id            => l_adr_accounting_coa_id
43553   , p_adr_code                     => 'AP_CASH'
43554   , p_adr_type_code                => 'S'
43555   , p_component_type               => l_component_type
43556   , p_component_code               => l_component_code
43557   , p_component_type_code          => l_component_type_code
43558   , p_component_appl_id            => l_component_appl_id
43559   , p_amb_context_code             => l_amb_context_code
43560   , p_side                         => 'NA'
43561   );
43562 
43563 
43564    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
43565      p_to_segment_code         => 'GL_BALANCING'
43566    , p_segment_value           => C_CHAR
43567    , p_from_segment_code       => NULL
43568    , p_from_combination_id     => NULL
43569    , p_value_type_code         => NULL
43570    , p_transaction_coa_id      => null
43571    , p_accounting_coa_id       => null
43572    , p_flexfield_segment_code  => NULL
43573    , p_flex_value_set_id       => NULL
43574    , p_adr_code                => NULL
43575    , p_adr_type_code           => NULL
43576    , p_component_type          => l_component_type
43577    , p_component_code          => l_component_code
43578    , p_component_type_code     => l_component_type_code
43579    , p_component_appl_id       => l_component_appl_id
43580    , p_amb_context_code        => l_amb_context_code
43581    , p_entity_code             => 'AP_PAYMENTS'
43582    , p_event_class_code        => 'REFUNDS'
43583    , p_side                    => 'NA'
43584    );
43585    --
43586 
43590    END IF;
43587 
43588    --
43589    --
43591    --
43592    -- Bug 4922099
43593    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43594           (NVL(l_enc_upg_option, 'N') = 'O')
43595         ) AND
43596         (l_bflow_method_code = 'PRIOR_ENTRY')
43597       )
43598    THEN
43599       IF
43600       --
43601       1 = 2
43602       --
43603       THEN
43604       xla_accounting_err_pkg.build_message
43605                                     (p_appli_s_name            => 'XLA'
43606                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43607                                     ,p_token_1                 => 'LINE_NUMBER'
43608                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
43609                                     ,p_token_2                 => 'LINE_TYPE_NAME'
43610                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
43611                                                                              l_component_type
43612                                                                             ,l_component_code
43613                                                                             ,l_component_type_code
43614                                                                             ,l_component_appl_id
43615                                                                             ,l_amb_context_code
43616                                                                             ,l_entity_code
43617                                                                             ,l_event_class_code
43618                                                                            )
43619                                     ,p_token_3                 => 'OWNER'
43620                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
43621                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
43622                                                                           ,p_lookup_code    => l_component_type_code
43623                                                                          )
43624                                     ,p_token_4                 => 'PRODUCT_NAME'
43625                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43626                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43627                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43628                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43629                                     ,p_ae_header_id            =>  NULL
43630                                        );
43631 
43632         IF (C_LEVEL_ERROR>= g_log_level) THEN
43633                  trace
43634                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43635                       ,p_level    => C_LEVEL_ERROR
43636                       ,p_module   => l_log_module);
43637         END IF;
43638       END IF;
43639    END IF;
43640    --
43641    --
43642    ------------------------------------------------------------------------------------------------
43643    -- 4219869 Business Flow
43644    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43645    -- Prior Entry.  Currently, the following code is always generated.
43646    ------------------------------------------------------------------------------------------------
43647    XLA_AE_LINES_PKG.ValidateCurrentLine;
43648 
43649    ------------------------------------------------------------------------------------
43650    -- 4219869 Business Flow
43651    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43652    ------------------------------------------------------------------------------------
43653    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43654 
43655    ----------------------------------------------------------------------------------
43656    -- 4219869 Business Flow
43657    -- Update journal entry status -- Need to generate this within IF <condition>
43658    ----------------------------------------------------------------------------------
43659    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43660          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43661          ,p_balance_type_code => l_balance_type_code
43662          );
43663 
43664    -------------------------------------------------------------------------------------------
43665    -- 4262811 - Generate the Accrual Reversal lines
43666    -------------------------------------------------------------------------------------------
43667    BEGIN
43668       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43669                               (g_array_event(p_event_id).array_value_num('header_index'));
43670       IF l_acc_rev_flag IS NULL THEN
43671          l_acc_rev_flag := 'N';
43672       END IF;
43673    EXCEPTION
43674       WHEN OTHERS THEN
43675          l_acc_rev_flag := 'N';
43676    END;
43677    --
43678    IF (l_acc_rev_flag = 'Y') THEN
43679 
43680        -- 4645092  ------------------------------------------------------------------------------
43681        -- To allow MPA report to determine if it should generate report process
43682        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43683        ------------------------------------------------------------------------------------------
43684 
43685        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43689    -- Bug 4922099
43686        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43687    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
43688    -- call ADRs
43690    --
43691    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43692         (NVL(l_actual_upg_option, 'N') = 'O') OR
43693         (NVL(l_enc_upg_option, 'N') = 'O')
43694       )
43695    THEN
43696    NULL;
43697    --
43698    --
43699    
43700   l_ccid := AcctDerRule_27(
43701            p_application_id           => p_application_id
43702          , p_ae_header_id             => l_ae_header_id 
43703 , p_source_5 => p_source_5
43704          , x_transaction_coa_id       => l_adr_transaction_coa_id
43705          , x_accounting_coa_id        => l_adr_accounting_coa_id
43706          , x_value_type_code          => l_adr_value_type_code
43707          , p_side                     => 'NA'
43708    );
43709 
43710    xla_ae_lines_pkg.set_ccid(
43711     p_code_combination_id          => l_ccid
43712   , p_value_type_code              => l_adr_value_type_code
43713   , p_transaction_coa_id           => l_adr_transaction_coa_id
43714   , p_accounting_coa_id            => l_adr_accounting_coa_id
43715   , p_adr_code                     => 'AP_CASH'
43716   , p_adr_type_code                => 'S'
43717   , p_component_type               => l_component_type
43718   , p_component_code               => l_component_code
43719   , p_component_type_code          => l_component_type_code
43720   , p_component_appl_id            => l_component_appl_id
43721   , p_amb_context_code             => l_amb_context_code
43722   , p_side                         => 'NA'
43723   );
43724 
43725 
43726    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
43727      p_to_segment_code         => 'GL_BALANCING'
43728    , p_segment_value           => C_CHAR
43729    , p_from_segment_code       => NULL
43730    , p_from_combination_id     => NULL
43731    , p_value_type_code         => NULL
43732    , p_transaction_coa_id      => null
43733    , p_accounting_coa_id       => null
43734    , p_flexfield_segment_code  => NULL
43735    , p_flex_value_set_id       => NULL
43736    , p_adr_code                => NULL
43737    , p_adr_type_code           => NULL
43738    , p_component_type          => l_component_type
43739    , p_component_code          => l_component_code
43740    , p_component_type_code     => l_component_type_code
43741    , p_component_appl_id       => l_component_appl_id
43742    , p_amb_context_code        => l_amb_context_code
43743    , p_entity_code             => 'AP_PAYMENTS'
43744    , p_event_class_code        => 'REFUNDS'
43745    , p_side                    => 'NA'
43746    );
43747    --
43748 
43749 
43750    --
43751    --
43752    END IF;
43753 
43754        --
43755        -- Update the line information that should be overwritten
43756        --
43757        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43758                                          p_header_num   => 1);
43759        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
43760 
43761        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43762 
43763        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
43764           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43765        END IF;
43766 
43767       --
43768       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43769       --
43770       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43771           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
43772       ELSE
43773           ---------------------------------------------------------------------------------------------------
43774           -- 4262811a Switch Sign
43775           ---------------------------------------------------------------------------------------------------
43776           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
43777           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43778                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43779           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43780                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43781           -- 5132302
43782           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43783                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43784 
43785       END IF;
43786 
43787       -- 4955764
43788       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43789       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43790 
43791 
43792       XLA_AE_LINES_PKG.ValidateCurrentLine;
43793       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43794 
43795       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43796                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43797                ,p_balance_type_code => l_balance_type_code);
43798 
43799    END IF;
43800 
43804      -- No MPA option is assigned.
43801    -----------------------------------------------------------------------------------------
43802    -- 4262811 Multiperiod Accounting
43803    -----------------------------------------------------------------------------------------
43805 
43806 
43807 END IF;
43808 END IF;
43809 --
43810 
43811 --
43812 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43813    trace
43814       (p_msg      => 'END of AcctLineType_97'
43815       ,p_level    => C_LEVEL_PROCEDURE
43816       ,p_module   => l_log_module);
43817 END IF;
43818 --
43819 EXCEPTION
43820   WHEN xla_exceptions_pkg.application_exception THEN
43821       RAISE;
43822   WHEN OTHERS THEN
43823        xla_exceptions_pkg.raise_message
43824            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_97');
43825 END AcctLineType_97;
43826 --
43827 
43828 ---------------------------------------
43829 --
43830 -- PRIVATE FUNCTION
43831 --         AcctLineType_98
43832 --
43833 ---------------------------------------
43834 PROCEDURE AcctLineType_98 (
43835   p_application_id        IN NUMBER
43836  ,p_event_id              IN NUMBER
43837  ,p_calculate_acctd_flag  IN VARCHAR2
43838  ,p_calculate_g_l_flag    IN VARCHAR2
43839  ,p_actual_flag           IN OUT VARCHAR2
43840  ,p_balance_type_code     OUT VARCHAR2
43841  ,p_gain_or_loss_ref      OUT VARCHAR2
43842  
43843 --Accounting Reversal Indicator
43844  , p_source_41            IN VARCHAR2
43845 --Distribution Link Type
43846  , p_source_43            IN VARCHAR2
43847 --Invoice Identifier
43848  , p_source_46            IN NUMBER
43849 --Payables Encumbrance Upgrade Credit Account
43850  , p_source_53            IN NUMBER
43851 --Payables Encumbrance Upgrade Credit Amount
43852  , p_source_54            IN NUMBER
43853 --Invoice Currency Code
43854  , p_source_55            IN VARCHAR2
43855 --Payables Encumbrance Upgrade Credit Base Amount
43856  , p_source_56            IN NUMBER
43857 --Payables Encumbrance Upgrade Debit Account
43858  , p_source_57            IN NUMBER
43859 --Payables Encumbrance Upgrade Debit Amount
43860  , p_source_58            IN NUMBER
43861 --Payables Encumbrance Upgrade Debit Base Amount
43862  , p_source_59            IN NUMBER
43863 --Payables Encumbrance Upgrade Option
43864  , p_source_60            IN VARCHAR2
43865 --Deferred Accounting End Date
43866  , p_source_65            IN DATE
43867 --Deferred Accounting Option
43868  , p_source_66            IN VARCHAR2
43869 --Deferred Accounting Start Date
43870  , p_source_67            IN DATE
43871 --Override Accounted Amount Indicator
43872  , p_source_68            IN VARCHAR2
43873  , p_source_68_meaning    IN VARCHAR2
43874 --Third Party Type
43875  , p_source_71            IN VARCHAR2
43876 --Invoice Distribution Tax Line Identifier
43877  , p_source_74            IN NUMBER
43878 --Invoice Distribution Tax Distribution Identifier from Tax
43879  , p_source_75            IN NUMBER
43880 --Invoice Distribution Summary Tax Line Identifier
43881  , p_source_76            IN NUMBER
43882 --Payables Upgrade Credit Encumbrance Type Identifier
43883  , p_source_77            IN NUMBER
43884 --Payables Upgrade Debit Encumbrance Type Identifier
43885  , p_source_78            IN NUMBER
43886 --Business Flow Accounts Payable Application Identifier
43887  , p_source_79            IN NUMBER
43888 --Prepayment Distribution Type
43889  , p_source_118            IN VARCHAR2
43890 --Deferred Prepayment Settlement Option Code
43891  , p_source_119            IN VARCHAR2
43892  , p_source_119_meaning    IN VARCHAR2
43893 --Prepayment Application Distribution Identifier
43894  , p_source_120            IN NUMBER
43895 --Business Flow Prepayment Payment Distribution Type
43896  , p_source_121            IN VARCHAR2
43897 --Business Flow Cash Basis Prepayment Entity Code
43898  , p_source_122            IN VARCHAR2
43899 --Business Flow Prepay Payment Distribution Id
43900  , p_source_123            IN NUMBER
43901 --Business Flow Prepay Payment Id
43902  , p_source_124            IN NUMBER
43903 --Upgrade Encumbrance Credit Account Class
43904  , p_source_125            IN VARCHAR2
43905 --Upgrade Encumbrance Debit Account Class
43906  , p_source_126            IN VARCHAR2
43907 --Prepayment Distribution Amount
43908  , p_source_127            IN NUMBER
43909 --Prepayment Distribution (Prepayment Rate) Ledger Amount
43910  , p_source_128            IN NUMBER
43911 --Identifier of the Prepayment Application Reversed
43912  , p_source_129            IN NUMBER
43913 )
43914 IS
43915 
43916 l_component_type              VARCHAR2(80);
43917 l_component_code              VARCHAR2(30);
43918 l_component_type_code         VARCHAR2(1);
43919 l_component_appl_id           INTEGER;
43920 l_amb_context_code            VARCHAR2(30);
43921 l_entity_code                 VARCHAR2(30);
43922 l_event_class_code            VARCHAR2(30);
43923 l_ae_header_id                NUMBER;
43924 l_event_type_code             VARCHAR2(30);
43925 l_line_definition_code        VARCHAR2(30);
43926 l_line_definition_owner_code  VARCHAR2(1);
43927 --
43928 -- adr variables
43929 l_segment                     VARCHAR2(30);
43930 l_ccid                        NUMBER;
43931 l_adr_transaction_coa_id      NUMBER;
43932 l_adr_accounting_coa_id       NUMBER;
43933 l_adr_flexfield_segment_code  VARCHAR2(30);
43934 l_adr_flex_value_set_id       NUMBER;
43935 l_adr_value_type_code         VARCHAR2(30);
43939 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
43936 l_adr_value_combination_id    NUMBER;
43937 l_adr_value_segment_code      VARCHAR2(30);
43938 
43940 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
43941 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
43942 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
43943 
43944 -- 4262811 Variables ------------------------------------------------------------------------------------------
43945 l_entered_amt_idx             NUMBER;
43946 l_accted_amt_idx              NUMBER;
43947 l_acc_rev_flag                VARCHAR2(1);
43948 l_accrual_line_num            NUMBER;
43949 l_tmp_amt                     NUMBER;
43950 l_acc_rev_natural_side_code   VARCHAR2(1);
43951 
43952 l_num_entries                 NUMBER;
43953 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
43954 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
43955 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
43956 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
43957 l_recog_line_1                NUMBER;
43958 l_recog_line_2                NUMBER;
43959 
43960 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
43961 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
43962 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
43963 
43964 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43965 
43966 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
43967 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
43968 
43969 ---------------------------------------------------------------------------------------------------------------
43970 
43971 
43972 --
43973 -- bulk performance
43974 --
43975 l_balance_type_code           VARCHAR2(1);
43976 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
43977 l_log_module                  VARCHAR2(240);
43978 
43979 --
43980 -- Upgrade strategy
43981 --
43982 l_actual_upg_option           VARCHAR2(1);
43983 l_enc_upg_option           VARCHAR2(1);
43984 
43985 --
43986 BEGIN
43987 --
43988 IF g_log_enabled THEN
43989       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_98';
43990 END IF;
43991 --
43992 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43993 
43994       trace
43995          (p_msg      => 'BEGIN of AcctLineType_98'
43996          ,p_level    => C_LEVEL_PROCEDURE
43997          ,p_module   => l_log_module);
43998 
43999 END IF;
44000 --
44001 l_component_type             := 'AMB_JLT';
44002 l_component_code             := 'AP_DEF_PP_EXP_ACCR';
44003 l_component_type_code        := 'S';
44004 l_component_appl_id          :=  200;
44005 l_amb_context_code           := 'DEFAULT';
44006 l_entity_code                := 'AP_INVOICES';
44007 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
44008 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
44009 l_line_definition_owner_code := 'S';
44010 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
44011 --
44012 l_balance_type_code          := 'A';
44013 l_segment                     := NULL;
44014 l_ccid                        := NULL;
44015 l_adr_transaction_coa_id      := NULL;
44016 l_adr_accounting_coa_id       := NULL;
44017 l_adr_flexfield_segment_code  := NULL;
44018 l_adr_flex_value_set_id       := NULL;
44019 l_adr_value_type_code         := NULL;
44020 l_adr_value_combination_id    := NULL;
44021 l_adr_value_segment_code      := NULL;
44022 
44023 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
44024 l_bflow_class_code           := 'AP_PP_DEF_TAX';    -- 4219869 Business Flow
44025 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
44026 l_budgetary_control_flag     := 'N';
44027 
44028 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
44029 l_bflow_applied_to_amt       := NULL; -- 5132302
44030 l_entered_amt_idx            := NULL;          -- 4262811
44031 l_accted_amt_idx             := NULL;          -- 4262811
44032 l_acc_rev_flag               := NULL;          -- 4262811
44033 l_accrual_line_num           := NULL;          -- 4262811
44034 l_tmp_amt                    := NULL;          -- 4262811
44035 --
44036  
44037 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44038     l_balance_type_code <> 'B' THEN
44039 IF NVL(p_source_118,'
44040 ') =  'PREPAY APPL REC TAX' AND 
44041 NVL(p_source_119,'
44042 ') =  'DEFERRED'
44043  THEN 
44044 
44045    --
44046    XLA_AE_LINES_PKG.SetNewLine;
44047 
44048    p_balance_type_code          := l_balance_type_code;
44049    -- set the flag so later we will know whether the gain loss line needs to be created
44050    
44051    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44052      p_actual_flag :='A';
44053    END IF;
44054 
44055    --
44056    -- bulk performance
44057    --
44058    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44059                                       p_header_num   => 0); -- 4262811
44060    --
44061    -- set accounting line options
44062    --
44063    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44064            p_natural_side_code          => 'D'
44065          , p_gain_or_loss_flag          => 'N'
44066          , p_gl_transfer_mode_code      => 'S'
44067          , p_acct_entry_type_code       => 'A'
44068          , p_switch_side_flag           => 'Y'
44069          , p_merge_duplicate_code       => 'A'
44070          );
44074    --
44071    --
44072    l_acc_rev_natural_side_code := 'C';  -- 4262811
44073    -- 
44075    -- set accounting line type info
44076    --
44077    xla_ae_lines_pkg.SetAcctLineType
44078       (p_component_type             => l_component_type
44079       ,p_event_type_code            => l_event_type_code
44080       ,p_line_definition_owner_code => l_line_definition_owner_code
44081       ,p_line_definition_code       => l_line_definition_code
44082       ,p_accounting_line_code       => l_component_code
44083       ,p_accounting_line_type_code  => l_component_type_code
44084       ,p_accounting_line_appl_id    => l_component_appl_id
44085       ,p_amb_context_code           => l_amb_context_code
44086       ,p_entity_code                => l_entity_code
44087       ,p_event_class_code           => l_event_class_code);
44088    --
44089    -- set accounting class
44090    --
44091    xla_ae_lines_pkg.SetAcctClass(
44092            p_accounting_class_code  => 'PREPAID_EXPENSE'
44093          , p_ae_header_id           => l_ae_header_id
44094          );
44095 
44096    --
44097    -- set rounding class
44098    --
44099    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44100                       'PREPAID_EXPENSE';
44101 
44102    --
44103    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44104    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44105    --
44106    -- bulk performance
44107    --
44108    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44109 
44110    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44111       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44112 
44113    -- 4955764
44114    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44115       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44116 
44117    -- 4458381 Public Sector Enh
44118    
44119    --
44120    -- set accounting attributes for the line type
44121    --
44122    l_entered_amt_idx := 25;
44123    l_accted_amt_idx  := 27;
44124    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
44125    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44126    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
44127    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
44128    l_rec_acct_attrs.array_num_value(2)  := 
44129 xla_ae_sources_pkg.GetSystemSourceNum(
44130    p_source_code           => 'XLA_EVENT_APPL_ID'
44131  , p_source_type_code      => 'Y'
44132  , p_source_application_id =>  602
44133 );
44134    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
44135    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
44136    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
44137    l_rec_acct_attrs.array_char_value(4)  := 
44138 xla_ae_sources_pkg.GetSystemSourceChar(
44139    p_source_code           => 'XLA_ENTITY_CODE'
44140  , p_source_type_code      => 'Y'
44141  , p_source_application_id =>  602
44142 );
44143    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
44144    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_120);
44145    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
44146    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
44147    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
44148    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
44149    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44150    l_rec_acct_attrs.array_char_value(8)  := p_source_121;
44151    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
44152    l_rec_acct_attrs.array_char_value(9)  := p_source_122;
44153    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
44154    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_123);
44155    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44156    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_124);
44157    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
44158    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_120);
44159    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
44160    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
44161    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
44162    l_rec_acct_attrs.array_char_value(14)  := p_source_125;
44163    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
44164    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
44165    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
44166    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
44167    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
44168    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
44169    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
44170    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
44171    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
44172    l_rec_acct_attrs.array_char_value(19)  := p_source_126;
44173    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
44174    l_rec_acct_attrs.array_num_value(20)  := p_source_57;
44175    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
44176    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
44177    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
44178    l_rec_acct_attrs.array_char_value(22)  := p_source_55;
44182    l_rec_acct_attrs.array_char_value(24)  := p_source_60;
44179    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
44180    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
44181    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
44183    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
44184    l_rec_acct_attrs.array_num_value(25)  := p_source_127;
44185    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
44186    l_rec_acct_attrs.array_char_value(26)  := p_source_55;
44187    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
44188    l_rec_acct_attrs.array_num_value(27)  := p_source_128;
44189    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
44190    l_rec_acct_attrs.array_date_value(28)  := p_source_65;
44191    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
44192    l_rec_acct_attrs.array_char_value(29)  := p_source_66;
44193    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
44194    l_rec_acct_attrs.array_date_value(30)  := p_source_67;
44195    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
44196    l_rec_acct_attrs.array_char_value(31)  := p_source_68;
44197    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
44198    l_rec_acct_attrs.array_char_value(32)  := p_source_71;
44199    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
44200    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_129);
44201    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
44202    l_rec_acct_attrs.array_char_value(34)  := p_source_43;
44203    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
44204    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
44205    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
44206    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
44207    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
44208    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
44209    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
44210    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
44211    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
44212    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
44213 
44214    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44215    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44216 
44217    ---------------------------------------------------------------------------------------------------------------
44218    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44219    ---------------------------------------------------------------------------------------------------------------
44220    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44221 
44222    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44223    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44224 
44225    IF xla_accounting_cache_pkg.GetValueChar
44226          (p_source_code         => 'LEDGER_CATEGORY_CODE'
44227          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44228    AND l_bflow_method_code = 'PRIOR_ENTRY'
44229 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44230    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44231          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44232        )
44233    THEN
44234          xla_ae_lines_pkg.BflowUpgEntry
44235            (p_business_method_code    => l_bflow_method_code
44236            ,p_business_class_code     => l_bflow_class_code
44237            ,p_balance_type            => l_balance_type_code);
44238    ELSE
44239       NULL;
44240 XLA_AE_LINES_PKG.business_flow_validation(
44241                                 p_business_method_code     => l_bflow_method_code
44242                                ,p_business_class_code      => l_bflow_class_code
44243                                ,p_inherit_description_flag => l_inherit_desc_flag);
44244    END IF;
44245 
44246    --
44247    -- call analytical criteria
44248    --
44249    -- Inherited Analytical Criteria for business flow method of Prior Entry.
44250    --
44251    -- call description
44252    --
44253    -- No description or it is inherited.
44254    --
44255    -- call ADRs
44256    -- Bug 4922099
44257    --
44258    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44259         (NVL(l_actual_upg_option, 'N') = 'O') OR
44260         (NVL(l_enc_upg_option, 'N') = 'O')
44261       )
44262    THEN
44263    NULL;
44264    --
44265    --
44266    
44267    --
44268    --
44269    END IF;
44270    --
44271    -- Bug 4922099
44272    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44273           (NVL(l_enc_upg_option, 'N') = 'O')
44274         ) AND
44275         (l_bflow_method_code = 'PRIOR_ENTRY')
44276       )
44277    THEN
44278       IF
44279       --
44280       1 = 1
44281       --
44282       THEN
44283       xla_accounting_err_pkg.build_message
44284                                     (p_appli_s_name            => 'XLA'
44285                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44286                                     ,p_token_1                 => 'LINE_NUMBER'
44287                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
44288                                     ,p_token_2                 => 'LINE_TYPE_NAME'
44292                                                                             ,l_component_type_code
44289                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
44290                                                                              l_component_type
44291                                                                             ,l_component_code
44293                                                                             ,l_component_appl_id
44294                                                                             ,l_amb_context_code
44295                                                                             ,l_entity_code
44296                                                                             ,l_event_class_code
44297                                                                            )
44298                                     ,p_token_3                 => 'OWNER'
44299                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
44300                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
44301                                                                           ,p_lookup_code    => l_component_type_code
44302                                                                          )
44303                                     ,p_token_4                 => 'PRODUCT_NAME'
44304                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44305                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44306                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44307                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44308                                     ,p_ae_header_id            =>  NULL
44309                                        );
44310 
44311         IF (C_LEVEL_ERROR>= g_log_level) THEN
44312                  trace
44313                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44314                       ,p_level    => C_LEVEL_ERROR
44315                       ,p_module   => l_log_module);
44316         END IF;
44317       END IF;
44318    END IF;
44319    --
44320    --
44321    ------------------------------------------------------------------------------------------------
44322    -- 4219869 Business Flow
44323    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44324    -- Prior Entry.  Currently, the following code is always generated.
44325    ------------------------------------------------------------------------------------------------
44326    -- No ValidateCurrentLine for business flow method of Prior Entry
44327 
44328    ------------------------------------------------------------------------------------
44329    -- 4219869 Business Flow
44330    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44331    ------------------------------------------------------------------------------------
44332    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44333 
44334    ----------------------------------------------------------------------------------
44335    -- 4219869 Business Flow
44336    -- Update journal entry status -- Need to generate this within IF <condition>
44337    ----------------------------------------------------------------------------------
44338    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44339          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44340          ,p_balance_type_code => l_balance_type_code
44341          );
44342 
44343    -------------------------------------------------------------------------------------------
44344    -- 4262811 - Generate the Accrual Reversal lines
44345    -------------------------------------------------------------------------------------------
44346    BEGIN
44347       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44348                               (g_array_event(p_event_id).array_value_num('header_index'));
44349       IF l_acc_rev_flag IS NULL THEN
44350          l_acc_rev_flag := 'N';
44351       END IF;
44352    EXCEPTION
44353       WHEN OTHERS THEN
44354          l_acc_rev_flag := 'N';
44355    END;
44356    --
44357    IF (l_acc_rev_flag = 'Y') THEN
44358 
44359        -- 4645092  ------------------------------------------------------------------------------
44360        -- To allow MPA report to determine if it should generate report process
44361        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44362        ------------------------------------------------------------------------------------------
44363 
44364        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44365        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44366    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
44367    -- call ADRs
44368    -- Bug 4922099
44369    --
44370    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44371         (NVL(l_actual_upg_option, 'N') = 'O') OR
44372         (NVL(l_enc_upg_option, 'N') = 'O')
44373       )
44374    THEN
44375    NULL;
44376    --
44377    --
44378    
44379    --
44380    --
44381    END IF;
44382 
44383        --
44384        -- Update the line information that should be overwritten
44385        --
44386        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44387                                          p_header_num   => 1);
44388        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
44389 
44393           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44390        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44391 
44392        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
44394        END IF;
44395 
44396       --
44397       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44398       --
44399       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44400           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
44401       ELSE
44402           ---------------------------------------------------------------------------------------------------
44403           -- 4262811a Switch Sign
44404           ---------------------------------------------------------------------------------------------------
44405           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
44406           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44407                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44408           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44409                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44410           -- 5132302
44411           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44412                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44413 
44414       END IF;
44415 
44416       -- 4955764
44417       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44418       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44419 
44420 
44421       XLA_AE_LINES_PKG.ValidateCurrentLine;
44422       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44423 
44424       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44425                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44426                ,p_balance_type_code => l_balance_type_code);
44427 
44428    END IF;
44429 
44430    -----------------------------------------------------------------------------------------
44431    -- 4262811 Multiperiod Accounting
44432    -----------------------------------------------------------------------------------------
44433      -- No MPA option is assigned.
44434 
44435 
44436 END IF;
44437 END IF;
44438 --
44439 
44440 --
44441 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44442    trace
44443       (p_msg      => 'END of AcctLineType_98'
44444       ,p_level    => C_LEVEL_PROCEDURE
44445       ,p_module   => l_log_module);
44446 END IF;
44447 --
44448 EXCEPTION
44449   WHEN xla_exceptions_pkg.application_exception THEN
44450       RAISE;
44451   WHEN OTHERS THEN
44452        xla_exceptions_pkg.raise_message
44453            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_98');
44454 END AcctLineType_98;
44455 --
44456 
44457 ---------------------------------------
44458 --
44459 -- PRIVATE FUNCTION
44460 --         AcctLineType_99
44461 --
44462 ---------------------------------------
44463 PROCEDURE AcctLineType_99 (
44464   p_application_id        IN NUMBER
44465  ,p_event_id              IN NUMBER
44466  ,p_calculate_acctd_flag  IN VARCHAR2
44467  ,p_calculate_g_l_flag    IN VARCHAR2
44468  ,p_actual_flag           IN OUT VARCHAR2
44469  ,p_balance_type_code     OUT VARCHAR2
44470  ,p_gain_or_loss_ref      OUT VARCHAR2
44471  
44472 --Invoice Distribution Type
44473  , p_source_21            IN VARCHAR2
44474  , p_source_21_meaning    IN VARCHAR2
44475 --Recoverable Tax Account
44476  , p_source_40            IN NUMBER
44477 --Accounting Reversal Indicator
44478  , p_source_41            IN VARCHAR2
44479 --Distribution Link Type
44480  , p_source_43            IN VARCHAR2
44481 --Override Accounted Amount Indicator
44482  , p_source_68            IN VARCHAR2
44483  , p_source_68_meaning    IN VARCHAR2
44484 --Third Party Type
44485  , p_source_71            IN VARCHAR2
44486 --Invoice Distribution Tax Line Identifier
44487  , p_source_74            IN NUMBER
44488 --Invoice Distribution Summary Tax Line Identifier
44489  , p_source_76            IN NUMBER
44490 --Business Flow Accounts Payable Application Identifier
44491  , p_source_79            IN NUMBER
44492 --When to Account for Payment Option
44493  , p_source_89            IN VARCHAR2
44494 --Payment Distribution Type
44495  , p_source_90            IN VARCHAR2
44496  , p_source_90_meaning    IN VARCHAR2
44497 --Payment Distribution Amount
44498  , p_source_91            IN NUMBER
44499 --Business Flow Payment Distribution Type
44500  , p_source_92            IN VARCHAR2
44501 --Business Flow Payment Entity Code
44502  , p_source_93            IN VARCHAR2
44503 --Business Flow Payment Distribution Identifier
44504  , p_source_94            IN NUMBER
44505 --Business Flow Payment Identifier
44506  , p_source_95            IN NUMBER
44507 --Payment Distribution Identifier
44508  , p_source_96            IN NUMBER
44509 --Cleared Exchange Date
44510  , p_source_98            IN DATE
44511 --Cleared Exchange Rate
44512  , p_source_99            IN NUMBER
44513 --Cleared Exchange Rate Type
44514  , p_source_100            IN VARCHAR2
44518  , p_source_102            IN NUMBER
44515 --Payment Distribution (Cleared Rate) Ledger Amount
44516  , p_source_101            IN NUMBER
44517 --Payment Supplier Identifier
44519 --Payment Supplier Site Identifier
44520  , p_source_103            IN NUMBER
44521 --Payment Distribution Reversed Identifier
44522  , p_source_104            IN NUMBER
44523 --Payment Currency Code
44524  , p_source_106            IN VARCHAR2
44525 --Payment Type
44526  , p_source_115            IN VARCHAR2
44527  , p_source_115_meaning    IN VARCHAR2
44528 --Deferred Recoverable Tax Option
44529  , p_source_130            IN VARCHAR2
44530  , p_source_130_meaning    IN VARCHAR2
44531 )
44532 IS
44533 
44534 l_component_type              VARCHAR2(80);
44535 l_component_code              VARCHAR2(30);
44536 l_component_type_code         VARCHAR2(1);
44537 l_component_appl_id           INTEGER;
44538 l_amb_context_code            VARCHAR2(30);
44539 l_entity_code                 VARCHAR2(30);
44540 l_event_class_code            VARCHAR2(30);
44541 l_ae_header_id                NUMBER;
44542 l_event_type_code             VARCHAR2(30);
44543 l_line_definition_code        VARCHAR2(30);
44544 l_line_definition_owner_code  VARCHAR2(1);
44545 --
44546 -- adr variables
44547 l_segment                     VARCHAR2(30);
44548 l_ccid                        NUMBER;
44549 l_adr_transaction_coa_id      NUMBER;
44550 l_adr_accounting_coa_id       NUMBER;
44551 l_adr_flexfield_segment_code  VARCHAR2(30);
44552 l_adr_flex_value_set_id       NUMBER;
44553 l_adr_value_type_code         VARCHAR2(30);
44554 l_adr_value_combination_id    NUMBER;
44555 l_adr_value_segment_code      VARCHAR2(30);
44556 
44557 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
44558 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
44559 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
44560 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
44561 
44562 -- 4262811 Variables ------------------------------------------------------------------------------------------
44563 l_entered_amt_idx             NUMBER;
44564 l_accted_amt_idx              NUMBER;
44565 l_acc_rev_flag                VARCHAR2(1);
44566 l_accrual_line_num            NUMBER;
44567 l_tmp_amt                     NUMBER;
44568 l_acc_rev_natural_side_code   VARCHAR2(1);
44569 
44570 l_num_entries                 NUMBER;
44571 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
44572 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
44573 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
44574 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
44575 l_recog_line_1                NUMBER;
44576 l_recog_line_2                NUMBER;
44577 
44578 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
44579 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
44580 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
44581 
44582 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44583 
44584 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
44585 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
44586 
44587 ---------------------------------------------------------------------------------------------------------------
44588 
44589 
44590 --
44591 -- bulk performance
44592 --
44593 l_balance_type_code           VARCHAR2(1);
44594 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
44595 l_log_module                  VARCHAR2(240);
44596 
44597 --
44598 -- Upgrade strategy
44599 --
44600 l_actual_upg_option           VARCHAR2(1);
44601 l_enc_upg_option           VARCHAR2(1);
44602 
44603 --
44604 BEGIN
44605 --
44606 IF g_log_enabled THEN
44607       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_99';
44608 END IF;
44609 --
44610 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44611 
44612       trace
44613          (p_msg      => 'BEGIN of AcctLineType_99'
44614          ,p_level    => C_LEVEL_PROCEDURE
44615          ,p_module   => l_log_module);
44616 
44617 END IF;
44618 --
44619 l_component_type             := 'AMB_JLT';
44620 l_component_code             := 'AP_DEF_RTAX_CLR';
44621 l_component_type_code        := 'S';
44622 l_component_appl_id          :=  200;
44623 l_amb_context_code           := 'DEFAULT';
44624 l_entity_code                := 'AP_PAYMENTS';
44625 l_event_class_code           := 'RECONCILED PAYMENTS';
44626 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
44627 l_line_definition_owner_code := 'S';
44628 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
44629 --
44630 l_balance_type_code          := 'A';
44631 l_segment                     := NULL;
44632 l_ccid                        := NULL;
44633 l_adr_transaction_coa_id      := NULL;
44634 l_adr_accounting_coa_id       := NULL;
44635 l_adr_flexfield_segment_code  := NULL;
44636 l_adr_flex_value_set_id       := NULL;
44637 l_adr_value_type_code         := NULL;
44638 l_adr_value_combination_id    := NULL;
44639 l_adr_value_segment_code      := NULL;
44640 
44641 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
44642 l_bflow_class_code           := '';    -- 4219869 Business Flow
44643 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
44644 l_budgetary_control_flag     := 'N';
44645 
44649 l_accted_amt_idx             := NULL;          -- 4262811
44646 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
44647 l_bflow_applied_to_amt       := NULL; -- 5132302
44648 l_entered_amt_idx            := NULL;          -- 4262811
44650 l_acc_rev_flag               := NULL;          -- 4262811
44651 l_accrual_line_num           := NULL;          -- 4262811
44652 l_tmp_amt                    := NULL;          -- 4262811
44653 --
44654  
44655 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44656     l_balance_type_code <> 'B' THEN
44657 IF NVL(p_source_89,'
44658 ') =  'CLEAR_CLEAR' AND 
44659 NVL(p_source_21,'
44660 ') =  'REC_TAX' AND 
44661 NVL(p_source_130,'
44662 ') =  'DEFERRED' AND 
44663 (NVL(p_source_90,'
44664 ') =  'CASH' OR 
44665 NVL(p_source_90,'
44666 ') =  'DISCOUNT') AND 
44667 NVL(p_source_115,'
44668 ') <>  'R'
44669  THEN 
44670 
44671    --
44672    XLA_AE_LINES_PKG.SetNewLine;
44673 
44674    p_balance_type_code          := l_balance_type_code;
44675    -- set the flag so later we will know whether the gain loss line needs to be created
44676    
44677    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44678      p_actual_flag :='A';
44679    END IF;
44680 
44681    --
44682    -- bulk performance
44683    --
44684    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44685                                       p_header_num   => 0); -- 4262811
44686    --
44687    -- set accounting line options
44688    --
44689    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44690            p_natural_side_code          => 'D'
44691          , p_gain_or_loss_flag          => 'N'
44692          , p_gl_transfer_mode_code      => 'S'
44693          , p_acct_entry_type_code       => 'A'
44694          , p_switch_side_flag           => 'Y'
44695          , p_merge_duplicate_code       => 'A'
44696          );
44697    --
44698    l_acc_rev_natural_side_code := 'C';  -- 4262811
44699    -- 
44700    --
44701    -- set accounting line type info
44702    --
44703    xla_ae_lines_pkg.SetAcctLineType
44704       (p_component_type             => l_component_type
44705       ,p_event_type_code            => l_event_type_code
44706       ,p_line_definition_owner_code => l_line_definition_owner_code
44707       ,p_line_definition_code       => l_line_definition_code
44708       ,p_accounting_line_code       => l_component_code
44709       ,p_accounting_line_type_code  => l_component_type_code
44710       ,p_accounting_line_appl_id    => l_component_appl_id
44711       ,p_amb_context_code           => l_amb_context_code
44712       ,p_entity_code                => l_entity_code
44713       ,p_event_class_code           => l_event_class_code);
44714    --
44715    -- set accounting class
44716    --
44717    xla_ae_lines_pkg.SetAcctClass(
44718            p_accounting_class_code  => 'DEF_REC_TAX'
44719          , p_ae_header_id           => l_ae_header_id
44720          );
44721 
44722    --
44723    -- set rounding class
44724    --
44725    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44726                       'DEF_REC_TAX';
44727 
44728    --
44729    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44730    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44731    --
44732    -- bulk performance
44733    --
44734    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44735 
44736    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44737       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44738 
44739    -- 4955764
44740    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44741       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44742 
44743    -- 4458381 Public Sector Enh
44744    
44745    --
44746    -- set accounting attributes for the line type
44747    --
44748    l_entered_amt_idx := 10;
44749    l_accted_amt_idx  := 15;
44750    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
44751    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44752    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
44753    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
44754    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
44755    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
44756    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
44757    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44758    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
44759    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
44760    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
44761    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
44762    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
44763    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44764    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
44765    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
44766    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
44767    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
44768    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
44769    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
44770    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
44771    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
44775    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
44772    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
44773    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
44774    l_rec_acct_attrs.array_date_value(12)  := p_source_98;
44776    l_rec_acct_attrs.array_num_value(13)  := p_source_99;
44777    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
44778    l_rec_acct_attrs.array_char_value(14)  := p_source_100;
44779    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
44780    l_rec_acct_attrs.array_num_value(15)  := p_source_101;
44781    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
44782    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
44783    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
44784    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
44785    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
44786    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
44787    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
44788    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
44789    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
44790    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
44791    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
44792    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
44793    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
44794    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
44795    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
44796    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
44797    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
44798    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
44799 
44800    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44801    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44802 
44803    ---------------------------------------------------------------------------------------------------------------
44804    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44805    ---------------------------------------------------------------------------------------------------------------
44806    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44807 
44808    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44809    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44810 
44811    IF xla_accounting_cache_pkg.GetValueChar
44812          (p_source_code         => 'LEDGER_CATEGORY_CODE'
44813          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44814    AND l_bflow_method_code = 'PRIOR_ENTRY'
44815 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44816    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44817          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44818        )
44819    THEN
44820          xla_ae_lines_pkg.BflowUpgEntry
44821            (p_business_method_code    => l_bflow_method_code
44822            ,p_business_class_code     => l_bflow_class_code
44823            ,p_balance_type            => l_balance_type_code);
44824    ELSE
44825       NULL;
44826 -- No business flow processing for business flow method of NONE.
44827    END IF;
44828 
44829    --
44830    -- call analytical criteria
44831    --
44832    
44833    --
44834    -- call description
44835    --
44836    -- No description or it is inherited.
44837    --
44838    -- call ADRs
44839    -- Bug 4922099
44840    --
44841    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44842         (NVL(l_actual_upg_option, 'N') = 'O') OR
44843         (NVL(l_enc_upg_option, 'N') = 'O')
44844       )
44845    THEN
44846    NULL;
44847    --
44848    --
44849    
44850   l_ccid := AcctDerRule_43(
44851            p_application_id           => p_application_id
44852          , p_ae_header_id             => l_ae_header_id 
44853 , p_source_40 => p_source_40
44854          , x_transaction_coa_id       => l_adr_transaction_coa_id
44855          , x_accounting_coa_id        => l_adr_accounting_coa_id
44856          , x_value_type_code          => l_adr_value_type_code
44857          , p_side                     => 'NA'
44858    );
44859 
44860    xla_ae_lines_pkg.set_ccid(
44861     p_code_combination_id          => l_ccid
44862   , p_value_type_code              => l_adr_value_type_code
44863   , p_transaction_coa_id           => l_adr_transaction_coa_id
44864   , p_accounting_coa_id            => l_adr_accounting_coa_id
44865   , p_adr_code                     => 'AP_TAX_ACCOUNT'
44866   , p_adr_type_code                => 'S'
44867   , p_component_type               => l_component_type
44868   , p_component_code               => l_component_code
44869   , p_component_type_code          => l_component_type_code
44870   , p_component_appl_id            => l_component_appl_id
44871   , p_amb_context_code             => l_amb_context_code
44872   , p_side                         => 'NA'
44873   );
44874 
44875 
44876    --
44877    --
44878    END IF;
44879    --
44880    -- Bug 4922099
44881    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44882           (NVL(l_enc_upg_option, 'N') = 'O')
44883         ) AND
44884         (l_bflow_method_code = 'PRIOR_ENTRY')
44885       )
44886    THEN
44887       IF
44888       --
44889       1 = 2
44890       --
44891       THEN
44892       xla_accounting_err_pkg.build_message
44896                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
44893                                     (p_appli_s_name            => 'XLA'
44894                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44895                                     ,p_token_1                 => 'LINE_NUMBER'
44897                                     ,p_token_2                 => 'LINE_TYPE_NAME'
44898                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
44899                                                                              l_component_type
44900                                                                             ,l_component_code
44901                                                                             ,l_component_type_code
44902                                                                             ,l_component_appl_id
44903                                                                             ,l_amb_context_code
44904                                                                             ,l_entity_code
44905                                                                             ,l_event_class_code
44906                                                                            )
44907                                     ,p_token_3                 => 'OWNER'
44908                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
44909                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
44910                                                                           ,p_lookup_code    => l_component_type_code
44911                                                                          )
44912                                     ,p_token_4                 => 'PRODUCT_NAME'
44913                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44914                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44915                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44916                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44917                                     ,p_ae_header_id            =>  NULL
44918                                        );
44919 
44920         IF (C_LEVEL_ERROR>= g_log_level) THEN
44921                  trace
44922                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44923                       ,p_level    => C_LEVEL_ERROR
44924                       ,p_module   => l_log_module);
44925         END IF;
44926       END IF;
44927    END IF;
44928    --
44929    --
44930    ------------------------------------------------------------------------------------------------
44931    -- 4219869 Business Flow
44932    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44933    -- Prior Entry.  Currently, the following code is always generated.
44934    ------------------------------------------------------------------------------------------------
44935    XLA_AE_LINES_PKG.ValidateCurrentLine;
44936 
44937    ------------------------------------------------------------------------------------
44938    -- 4219869 Business Flow
44939    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44940    ------------------------------------------------------------------------------------
44941    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44942 
44943    ----------------------------------------------------------------------------------
44944    -- 4219869 Business Flow
44945    -- Update journal entry status -- Need to generate this within IF <condition>
44946    ----------------------------------------------------------------------------------
44947    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44948          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44949          ,p_balance_type_code => l_balance_type_code
44950          );
44951 
44952    -------------------------------------------------------------------------------------------
44953    -- 4262811 - Generate the Accrual Reversal lines
44954    -------------------------------------------------------------------------------------------
44955    BEGIN
44956       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44957                               (g_array_event(p_event_id).array_value_num('header_index'));
44958       IF l_acc_rev_flag IS NULL THEN
44959          l_acc_rev_flag := 'N';
44960       END IF;
44961    EXCEPTION
44962       WHEN OTHERS THEN
44963          l_acc_rev_flag := 'N';
44964    END;
44965    --
44966    IF (l_acc_rev_flag = 'Y') THEN
44967 
44968        -- 4645092  ------------------------------------------------------------------------------
44969        -- To allow MPA report to determine if it should generate report process
44970        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44971        ------------------------------------------------------------------------------------------
44972 
44973        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44974        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44975    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
44976    -- call ADRs
44977    -- Bug 4922099
44978    --
44979    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44980         (NVL(l_actual_upg_option, 'N') = 'O') OR
44981         (NVL(l_enc_upg_option, 'N') = 'O')
44982       )
44983    THEN
44984    NULL;
44985    --
44986    --
44987    
44988   l_ccid := AcctDerRule_43(
44989            p_application_id           => p_application_id
44993          , x_accounting_coa_id        => l_adr_accounting_coa_id
44990          , p_ae_header_id             => l_ae_header_id 
44991 , p_source_40 => p_source_40
44992          , x_transaction_coa_id       => l_adr_transaction_coa_id
44994          , x_value_type_code          => l_adr_value_type_code
44995          , p_side                     => 'NA'
44996    );
44997 
44998    xla_ae_lines_pkg.set_ccid(
44999     p_code_combination_id          => l_ccid
45000   , p_value_type_code              => l_adr_value_type_code
45001   , p_transaction_coa_id           => l_adr_transaction_coa_id
45002   , p_accounting_coa_id            => l_adr_accounting_coa_id
45003   , p_adr_code                     => 'AP_TAX_ACCOUNT'
45004   , p_adr_type_code                => 'S'
45005   , p_component_type               => l_component_type
45006   , p_component_code               => l_component_code
45007   , p_component_type_code          => l_component_type_code
45008   , p_component_appl_id            => l_component_appl_id
45009   , p_amb_context_code             => l_amb_context_code
45010   , p_side                         => 'NA'
45011   );
45012 
45013 
45014    --
45015    --
45016    END IF;
45017 
45018        --
45019        -- Update the line information that should be overwritten
45020        --
45021        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45022                                          p_header_num   => 1);
45023        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
45024 
45025        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45026 
45027        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
45028           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45029        END IF;
45030 
45031       --
45032       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45033       --
45034       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45035           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
45036       ELSE
45037           ---------------------------------------------------------------------------------------------------
45038           -- 4262811a Switch Sign
45039           ---------------------------------------------------------------------------------------------------
45040           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
45041           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45042                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45043           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45044                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45045           -- 5132302
45046           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45047                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45048 
45049       END IF;
45050 
45051       -- 4955764
45052       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45053       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45054 
45055 
45056       XLA_AE_LINES_PKG.ValidateCurrentLine;
45057       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45058 
45059       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45060                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45061                ,p_balance_type_code => l_balance_type_code);
45062 
45063    END IF;
45064 
45065    -----------------------------------------------------------------------------------------
45066    -- 4262811 Multiperiod Accounting
45067    -----------------------------------------------------------------------------------------
45068      -- No MPA option is assigned.
45069 
45070 
45071 END IF;
45072 END IF;
45073 --
45074 
45075 --
45076 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45077    trace
45078       (p_msg      => 'END of AcctLineType_99'
45079       ,p_level    => C_LEVEL_PROCEDURE
45080       ,p_module   => l_log_module);
45081 END IF;
45082 --
45083 EXCEPTION
45084   WHEN xla_exceptions_pkg.application_exception THEN
45085       RAISE;
45086   WHEN OTHERS THEN
45087        xla_exceptions_pkg.raise_message
45088            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_99');
45089 END AcctLineType_99;
45090 --
45091 
45092 ---------------------------------------
45093 --
45094 -- PRIVATE FUNCTION
45095 --         AcctLineType_100
45096 --
45097 ---------------------------------------
45098 PROCEDURE AcctLineType_100 (
45099   p_application_id        IN NUMBER
45100  ,p_event_id              IN NUMBER
45101  ,p_calculate_acctd_flag  IN VARCHAR2
45102  ,p_calculate_g_l_flag    IN VARCHAR2
45103  ,p_actual_flag           IN OUT VARCHAR2
45104  ,p_balance_type_code     OUT VARCHAR2
45105  ,p_gain_or_loss_ref      OUT VARCHAR2
45106  
45107 --Invoice Distribution Type
45108  , p_source_21            IN VARCHAR2
45109  , p_source_21_meaning    IN VARCHAR2
45110 --Accounting Reversal Indicator
45111  , p_source_41            IN VARCHAR2
45112 --Distribution Link Type
45113  , p_source_43            IN VARCHAR2
45114 --Override Accounted Amount Indicator
45118  , p_source_71            IN VARCHAR2
45115  , p_source_68            IN VARCHAR2
45116  , p_source_68_meaning    IN VARCHAR2
45117 --Third Party Type
45119 --Invoice Distribution Tax Line Identifier
45120  , p_source_74            IN NUMBER
45121 --Invoice Distribution Summary Tax Line Identifier
45122  , p_source_76            IN NUMBER
45123 --Business Flow Accounts Payable Application Identifier
45124  , p_source_79            IN NUMBER
45125 --Business Flow Invoice Distribution Identifier
45126  , p_source_82            IN NUMBER
45127 --Business Flow Invoice Identifier
45128  , p_source_83            IN NUMBER
45129 --When to Account for Payment Option
45130  , p_source_89            IN VARCHAR2
45131 --Payment Distribution Type
45132  , p_source_90            IN VARCHAR2
45133  , p_source_90_meaning    IN VARCHAR2
45134 --Payment Distribution Amount
45135  , p_source_91            IN NUMBER
45136 --Business Flow Payment Distribution Type
45137  , p_source_92            IN VARCHAR2
45138 --Business Flow Payment Entity Code
45139  , p_source_93            IN VARCHAR2
45140 --Payment Distribution Identifier
45141  , p_source_96            IN NUMBER
45142 --Payment Distribution Reversed Identifier
45143  , p_source_104            IN NUMBER
45144 --Payment Currency Code
45145  , p_source_106            IN VARCHAR2
45146 --Payment Distribution (Invoice Rate) Ledger Amount
45147  , p_source_109            IN NUMBER
45148 --Payment Type
45149  , p_source_115            IN VARCHAR2
45150  , p_source_115_meaning    IN VARCHAR2
45151 --Deferred Recoverable Tax Option
45152  , p_source_130            IN VARCHAR2
45153  , p_source_130_meaning    IN VARCHAR2
45154 )
45155 IS
45156 
45157 l_component_type              VARCHAR2(80);
45158 l_component_code              VARCHAR2(30);
45159 l_component_type_code         VARCHAR2(1);
45160 l_component_appl_id           INTEGER;
45161 l_amb_context_code            VARCHAR2(30);
45162 l_entity_code                 VARCHAR2(30);
45163 l_event_class_code            VARCHAR2(30);
45164 l_ae_header_id                NUMBER;
45165 l_event_type_code             VARCHAR2(30);
45166 l_line_definition_code        VARCHAR2(30);
45167 l_line_definition_owner_code  VARCHAR2(1);
45168 --
45169 -- adr variables
45170 l_segment                     VARCHAR2(30);
45171 l_ccid                        NUMBER;
45172 l_adr_transaction_coa_id      NUMBER;
45173 l_adr_accounting_coa_id       NUMBER;
45174 l_adr_flexfield_segment_code  VARCHAR2(30);
45175 l_adr_flex_value_set_id       NUMBER;
45176 l_adr_value_type_code         VARCHAR2(30);
45177 l_adr_value_combination_id    NUMBER;
45178 l_adr_value_segment_code      VARCHAR2(30);
45179 
45180 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
45181 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
45182 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
45183 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
45184 
45185 -- 4262811 Variables ------------------------------------------------------------------------------------------
45186 l_entered_amt_idx             NUMBER;
45187 l_accted_amt_idx              NUMBER;
45188 l_acc_rev_flag                VARCHAR2(1);
45189 l_accrual_line_num            NUMBER;
45190 l_tmp_amt                     NUMBER;
45191 l_acc_rev_natural_side_code   VARCHAR2(1);
45192 
45193 l_num_entries                 NUMBER;
45194 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
45195 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
45196 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
45197 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
45198 l_recog_line_1                NUMBER;
45199 l_recog_line_2                NUMBER;
45200 
45201 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
45202 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
45203 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
45204 
45205 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45206 
45207 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
45208 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
45209 
45210 ---------------------------------------------------------------------------------------------------------------
45211 
45212 
45213 --
45214 -- bulk performance
45215 --
45216 l_balance_type_code           VARCHAR2(1);
45217 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
45218 l_log_module                  VARCHAR2(240);
45219 
45220 --
45221 -- Upgrade strategy
45222 --
45223 l_actual_upg_option           VARCHAR2(1);
45224 l_enc_upg_option           VARCHAR2(1);
45225 
45226 --
45227 BEGIN
45228 --
45229 IF g_log_enabled THEN
45230       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_100';
45231 END IF;
45232 --
45233 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45234 
45235       trace
45236          (p_msg      => 'BEGIN of AcctLineType_100'
45237          ,p_level    => C_LEVEL_PROCEDURE
45238          ,p_module   => l_log_module);
45239 
45240 END IF;
45241 --
45242 l_component_type             := 'AMB_JLT';
45243 l_component_code             := 'AP_DEF_RTAX_INTERIM_CLR';
45244 l_component_type_code        := 'S';
45245 l_component_appl_id          :=  200;
45246 l_amb_context_code           := 'DEFAULT';
45247 l_entity_code                := 'AP_PAYMENTS';
45251 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
45248 l_event_class_code           := 'RECONCILED PAYMENTS';
45249 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
45250 l_line_definition_owner_code := 'S';
45252 --
45253 l_balance_type_code          := 'A';
45254 l_segment                     := NULL;
45255 l_ccid                        := NULL;
45256 l_adr_transaction_coa_id      := NULL;
45257 l_adr_accounting_coa_id       := NULL;
45258 l_adr_flexfield_segment_code  := NULL;
45259 l_adr_flex_value_set_id       := NULL;
45260 l_adr_value_type_code         := NULL;
45261 l_adr_value_combination_id    := NULL;
45262 l_adr_value_segment_code      := NULL;
45263 
45264 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
45265 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
45266 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
45267 l_budgetary_control_flag     := 'N';
45268 
45269 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
45270 l_bflow_applied_to_amt       := NULL; -- 5132302
45271 l_entered_amt_idx            := NULL;          -- 4262811
45272 l_accted_amt_idx             := NULL;          -- 4262811
45273 l_acc_rev_flag               := NULL;          -- 4262811
45274 l_accrual_line_num           := NULL;          -- 4262811
45275 l_tmp_amt                    := NULL;          -- 4262811
45276 --
45277  
45278 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45279     l_balance_type_code <> 'B' THEN
45280 IF NVL(p_source_89,'
45281 ') =  'CLEAR_CLEAR' AND 
45282 NVL(p_source_21,'
45283 ') =  'REC_TAX' AND 
45284 NVL(p_source_130,'
45285 ') =  'DEFERRED' AND 
45286 (NVL(p_source_90,'
45287 ') =  'CASH' OR 
45288 NVL(p_source_90,'
45289 ') =  'DISCOUNT') AND 
45290 NVL(p_source_115,'
45291 ') <>  'R'
45292  THEN 
45293 
45294    --
45295    XLA_AE_LINES_PKG.SetNewLine;
45296 
45297    p_balance_type_code          := l_balance_type_code;
45298    -- set the flag so later we will know whether the gain loss line needs to be created
45299    
45300    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45301      p_actual_flag :='A';
45302    END IF;
45303 
45304    --
45305    -- bulk performance
45306    --
45307    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45308                                       p_header_num   => 0); -- 4262811
45309    --
45310    -- set accounting line options
45311    --
45312    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45313            p_natural_side_code          => 'C'
45314          , p_gain_or_loss_flag          => 'N'
45315          , p_gl_transfer_mode_code      => 'S'
45316          , p_acct_entry_type_code       => 'A'
45317          , p_switch_side_flag           => 'Y'
45318          , p_merge_duplicate_code       => 'A'
45319          );
45320    --
45321    l_acc_rev_natural_side_code := 'D';  -- 4262811
45322    -- 
45323    --
45324    -- set accounting line type info
45325    --
45326    xla_ae_lines_pkg.SetAcctLineType
45327       (p_component_type             => l_component_type
45328       ,p_event_type_code            => l_event_type_code
45329       ,p_line_definition_owner_code => l_line_definition_owner_code
45330       ,p_line_definition_code       => l_line_definition_code
45331       ,p_accounting_line_code       => l_component_code
45332       ,p_accounting_line_type_code  => l_component_type_code
45333       ,p_accounting_line_appl_id    => l_component_appl_id
45334       ,p_amb_context_code           => l_amb_context_code
45335       ,p_entity_code                => l_entity_code
45336       ,p_event_class_code           => l_event_class_code);
45337    --
45338    -- set accounting class
45339    --
45340    xla_ae_lines_pkg.SetAcctClass(
45341            p_accounting_class_code  => 'DEF_REC_TAX'
45342          , p_ae_header_id           => l_ae_header_id
45343          );
45344 
45345    --
45346    -- set rounding class
45347    --
45348    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45349                       'DEF_REC_TAX';
45350 
45351    --
45352    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45353    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45354    --
45355    -- bulk performance
45356    --
45357    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45358 
45359    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45360       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45361 
45362    -- 4955764
45363    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45364       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45365 
45366    -- 4458381 Public Sector Enh
45367    
45368    --
45369    -- set accounting attributes for the line type
45370    --
45371    l_entered_amt_idx := 10;
45372    l_accted_amt_idx  := 12;
45373    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
45374    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45375    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
45376    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
45377    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
45381    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
45378    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
45379    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
45380    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45382    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
45383    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
45384    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
45385    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
45386    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45387    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
45388    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
45389    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
45390    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
45391    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
45392    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
45393    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
45394    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
45395    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
45396    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
45397    l_rec_acct_attrs.array_num_value(12)  := p_source_109;
45398    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
45399    l_rec_acct_attrs.array_char_value(13)  := p_source_68;
45400    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
45401    l_rec_acct_attrs.array_char_value(14)  := p_source_71;
45402    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
45403    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_104);
45404    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
45405    l_rec_acct_attrs.array_char_value(16)  := p_source_43;
45406    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
45407    l_rec_acct_attrs.array_num_value(17)  := p_source_74;
45408    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
45409    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
45410    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
45411    l_rec_acct_attrs.array_num_value(19)  := p_source_76;
45412 
45413    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45414    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45415 
45416    ---------------------------------------------------------------------------------------------------------------
45417    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45418    ---------------------------------------------------------------------------------------------------------------
45419    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45420 
45421    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45422    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45423 
45424    IF xla_accounting_cache_pkg.GetValueChar
45425          (p_source_code         => 'LEDGER_CATEGORY_CODE'
45426          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45427    AND l_bflow_method_code = 'PRIOR_ENTRY'
45428 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45429    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45430          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45431        )
45432    THEN
45433          xla_ae_lines_pkg.BflowUpgEntry
45434            (p_business_method_code    => l_bflow_method_code
45435            ,p_business_class_code     => l_bflow_class_code
45436            ,p_balance_type            => l_balance_type_code);
45437    ELSE
45438       NULL;
45439 XLA_AE_LINES_PKG.business_flow_validation(
45440                                 p_business_method_code     => l_bflow_method_code
45441                                ,p_business_class_code      => l_bflow_class_code
45442                                ,p_inherit_description_flag => l_inherit_desc_flag);
45443    END IF;
45444 
45445    --
45446    -- call analytical criteria
45447    --
45448    -- Inherited Analytical Criteria for business flow method of Prior Entry.
45449    --
45450    -- call description
45451    --
45452    -- No description or it is inherited.
45453    --
45454    -- call ADRs
45455    -- Bug 4922099
45456    --
45457    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45458         (NVL(l_actual_upg_option, 'N') = 'O') OR
45459         (NVL(l_enc_upg_option, 'N') = 'O')
45460       )
45461    THEN
45462    NULL;
45463    --
45464    --
45465    
45466    --
45467    --
45468    END IF;
45469    --
45470    -- Bug 4922099
45471    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45472           (NVL(l_enc_upg_option, 'N') = 'O')
45473         ) AND
45474         (l_bflow_method_code = 'PRIOR_ENTRY')
45475       )
45476    THEN
45477       IF
45478       --
45479       1 = 1
45480       --
45481       THEN
45482       xla_accounting_err_pkg.build_message
45483                                     (p_appli_s_name            => 'XLA'
45484                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45485                                     ,p_token_1                 => 'LINE_NUMBER'
45489                                                                              l_component_type
45486                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
45487                                     ,p_token_2                 => 'LINE_TYPE_NAME'
45488                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
45490                                                                             ,l_component_code
45491                                                                             ,l_component_type_code
45492                                                                             ,l_component_appl_id
45493                                                                             ,l_amb_context_code
45494                                                                             ,l_entity_code
45495                                                                             ,l_event_class_code
45496                                                                            )
45497                                     ,p_token_3                 => 'OWNER'
45498                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
45499                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
45500                                                                           ,p_lookup_code    => l_component_type_code
45501                                                                          )
45502                                     ,p_token_4                 => 'PRODUCT_NAME'
45503                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45504                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45505                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45506                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45507                                     ,p_ae_header_id            =>  NULL
45508                                        );
45509 
45510         IF (C_LEVEL_ERROR>= g_log_level) THEN
45511                  trace
45512                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45513                       ,p_level    => C_LEVEL_ERROR
45514                       ,p_module   => l_log_module);
45515         END IF;
45516       END IF;
45517    END IF;
45518    --
45519    --
45520    ------------------------------------------------------------------------------------------------
45521    -- 4219869 Business Flow
45522    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45523    -- Prior Entry.  Currently, the following code is always generated.
45524    ------------------------------------------------------------------------------------------------
45525    -- No ValidateCurrentLine for business flow method of Prior Entry
45526 
45527    ------------------------------------------------------------------------------------
45528    -- 4219869 Business Flow
45529    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45530    ------------------------------------------------------------------------------------
45531    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45532 
45533    ----------------------------------------------------------------------------------
45534    -- 4219869 Business Flow
45535    -- Update journal entry status -- Need to generate this within IF <condition>
45536    ----------------------------------------------------------------------------------
45537    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45538          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45539          ,p_balance_type_code => l_balance_type_code
45540          );
45541 
45542    -------------------------------------------------------------------------------------------
45543    -- 4262811 - Generate the Accrual Reversal lines
45544    -------------------------------------------------------------------------------------------
45545    BEGIN
45546       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45547                               (g_array_event(p_event_id).array_value_num('header_index'));
45548       IF l_acc_rev_flag IS NULL THEN
45549          l_acc_rev_flag := 'N';
45550       END IF;
45551    EXCEPTION
45552       WHEN OTHERS THEN
45553          l_acc_rev_flag := 'N';
45554    END;
45555    --
45556    IF (l_acc_rev_flag = 'Y') THEN
45557 
45558        -- 4645092  ------------------------------------------------------------------------------
45559        -- To allow MPA report to determine if it should generate report process
45560        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45561        ------------------------------------------------------------------------------------------
45562 
45563        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45564        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45565    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
45566    -- call ADRs
45567    -- Bug 4922099
45568    --
45569    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45570         (NVL(l_actual_upg_option, 'N') = 'O') OR
45571         (NVL(l_enc_upg_option, 'N') = 'O')
45572       )
45573    THEN
45574    NULL;
45575    --
45576    --
45577    
45578    --
45579    --
45580    END IF;
45581 
45582        --
45583        -- Update the line information that should be overwritten
45584        --
45585        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45586                                          p_header_num   => 1);
45590 
45587        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
45588 
45589        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45591        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
45592           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45593        END IF;
45594 
45595       --
45596       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45597       --
45598       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45599           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
45600       ELSE
45601           ---------------------------------------------------------------------------------------------------
45602           -- 4262811a Switch Sign
45603           ---------------------------------------------------------------------------------------------------
45604           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
45605           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45606                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45607           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45608                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45609           -- 5132302
45610           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45611                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45612 
45613       END IF;
45614 
45615       -- 4955764
45616       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45617       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45618 
45619 
45620       XLA_AE_LINES_PKG.ValidateCurrentLine;
45621       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45622 
45623       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45624                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45625                ,p_balance_type_code => l_balance_type_code);
45626 
45627    END IF;
45628 
45629    -----------------------------------------------------------------------------------------
45630    -- 4262811 Multiperiod Accounting
45631    -----------------------------------------------------------------------------------------
45632      -- No MPA option is assigned.
45633 
45634 
45635 END IF;
45636 END IF;
45637 --
45638 
45639 --
45640 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45641    trace
45642       (p_msg      => 'END of AcctLineType_100'
45643       ,p_level    => C_LEVEL_PROCEDURE
45644       ,p_module   => l_log_module);
45645 END IF;
45646 --
45647 EXCEPTION
45648   WHEN xla_exceptions_pkg.application_exception THEN
45649       RAISE;
45650   WHEN OTHERS THEN
45651        xla_exceptions_pkg.raise_message
45652            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_100');
45653 END AcctLineType_100;
45654 --
45655 
45656 ---------------------------------------
45657 --
45658 -- PRIVATE FUNCTION
45659 --         AcctLineType_101
45660 --
45661 ---------------------------------------
45662 PROCEDURE AcctLineType_101 (
45663   p_application_id        IN NUMBER
45664  ,p_event_id              IN NUMBER
45665  ,p_calculate_acctd_flag  IN VARCHAR2
45666  ,p_calculate_g_l_flag    IN VARCHAR2
45667  ,p_actual_flag           IN OUT VARCHAR2
45668  ,p_balance_type_code     OUT VARCHAR2
45669  ,p_gain_or_loss_ref      OUT VARCHAR2
45670  
45671 --Invoice Distribution Type
45672  , p_source_21            IN VARCHAR2
45673  , p_source_21_meaning    IN VARCHAR2
45674 --Accounting Reversal Indicator
45675  , p_source_41            IN VARCHAR2
45676 --Distribution Link Type
45677  , p_source_43            IN VARCHAR2
45678 --Override Accounted Amount Indicator
45679  , p_source_68            IN VARCHAR2
45680  , p_source_68_meaning    IN VARCHAR2
45681 --Third Party Type
45682  , p_source_71            IN VARCHAR2
45683 --Business Flow Accounts Payable Application Identifier
45684  , p_source_79            IN NUMBER
45685 --Business Flow Invoice Distribution Type
45686  , p_source_80            IN VARCHAR2
45687 --Business Flow Invoice Entity Code
45688  , p_source_81            IN VARCHAR2
45689 --Business Flow Invoice Distribution Identifier
45690  , p_source_82            IN NUMBER
45691 --Business Flow Invoice Identifier
45692  , p_source_83            IN NUMBER
45693 --When to Account for Payment Option
45694  , p_source_89            IN VARCHAR2
45695 --Payment Distribution Type
45696  , p_source_90            IN VARCHAR2
45697  , p_source_90_meaning    IN VARCHAR2
45698 --Payment Distribution Amount
45699  , p_source_91            IN NUMBER
45700 --Payment Distribution Identifier
45701  , p_source_96            IN NUMBER
45702 --Payment Distribution Reversed Identifier
45703  , p_source_104            IN NUMBER
45704 --Payment Currency Code
45705  , p_source_106            IN VARCHAR2
45706 --Payment Maturity Date
45707  , p_source_107            IN DATE
45708 --Payment Distribution (Matured Rate) Ledger Amount
45709  , p_source_114            IN NUMBER
45710 --Deferred Recoverable Tax Option
45711  , p_source_130            IN VARCHAR2
45712  , p_source_130_meaning    IN VARCHAR2
45713 )
45714 IS
45715 
45719 l_component_appl_id           INTEGER;
45716 l_component_type              VARCHAR2(80);
45717 l_component_code              VARCHAR2(30);
45718 l_component_type_code         VARCHAR2(1);
45720 l_amb_context_code            VARCHAR2(30);
45721 l_entity_code                 VARCHAR2(30);
45722 l_event_class_code            VARCHAR2(30);
45723 l_ae_header_id                NUMBER;
45724 l_event_type_code             VARCHAR2(30);
45725 l_line_definition_code        VARCHAR2(30);
45726 l_line_definition_owner_code  VARCHAR2(1);
45727 --
45728 -- adr variables
45729 l_segment                     VARCHAR2(30);
45730 l_ccid                        NUMBER;
45731 l_adr_transaction_coa_id      NUMBER;
45732 l_adr_accounting_coa_id       NUMBER;
45733 l_adr_flexfield_segment_code  VARCHAR2(30);
45734 l_adr_flex_value_set_id       NUMBER;
45735 l_adr_value_type_code         VARCHAR2(30);
45736 l_adr_value_combination_id    NUMBER;
45737 l_adr_value_segment_code      VARCHAR2(30);
45738 
45739 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
45740 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
45741 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
45742 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
45743 
45744 -- 4262811 Variables ------------------------------------------------------------------------------------------
45745 l_entered_amt_idx             NUMBER;
45746 l_accted_amt_idx              NUMBER;
45747 l_acc_rev_flag                VARCHAR2(1);
45748 l_accrual_line_num            NUMBER;
45749 l_tmp_amt                     NUMBER;
45750 l_acc_rev_natural_side_code   VARCHAR2(1);
45751 
45752 l_num_entries                 NUMBER;
45753 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
45754 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
45755 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
45756 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
45757 l_recog_line_1                NUMBER;
45758 l_recog_line_2                NUMBER;
45759 
45760 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
45761 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
45762 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
45763 
45764 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45765 
45766 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
45767 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
45768 
45769 ---------------------------------------------------------------------------------------------------------------
45770 
45771 
45772 --
45773 -- bulk performance
45774 --
45775 l_balance_type_code           VARCHAR2(1);
45776 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
45777 l_log_module                  VARCHAR2(240);
45778 
45779 --
45780 -- Upgrade strategy
45781 --
45782 l_actual_upg_option           VARCHAR2(1);
45783 l_enc_upg_option           VARCHAR2(1);
45784 
45785 --
45786 BEGIN
45787 --
45788 IF g_log_enabled THEN
45789       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_101';
45790 END IF;
45791 --
45792 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45793 
45794       trace
45795          (p_msg      => 'BEGIN of AcctLineType_101'
45796          ,p_level    => C_LEVEL_PROCEDURE
45797          ,p_module   => l_log_module);
45798 
45799 END IF;
45800 --
45801 l_component_type             := 'AMB_JLT';
45802 l_component_code             := 'AP_DEF_RTAX_INTERIM_MAT';
45803 l_component_type_code        := 'S';
45804 l_component_appl_id          :=  200;
45805 l_amb_context_code           := 'DEFAULT';
45806 l_entity_code                := 'AP_PAYMENTS';
45807 l_event_class_code           := 'FUTURE DATED PAYMENTS';
45808 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
45809 l_line_definition_owner_code := 'S';
45810 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
45811 --
45812 l_balance_type_code          := 'A';
45813 l_segment                     := NULL;
45814 l_ccid                        := NULL;
45815 l_adr_transaction_coa_id      := NULL;
45816 l_adr_accounting_coa_id       := NULL;
45817 l_adr_flexfield_segment_code  := NULL;
45818 l_adr_flex_value_set_id       := NULL;
45819 l_adr_value_type_code         := NULL;
45820 l_adr_value_combination_id    := NULL;
45821 l_adr_value_segment_code      := NULL;
45822 
45823 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
45824 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
45825 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
45826 l_budgetary_control_flag     := 'N';
45827 
45828 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
45829 l_bflow_applied_to_amt       := NULL; -- 5132302
45830 l_entered_amt_idx            := NULL;          -- 4262811
45831 l_accted_amt_idx             := NULL;          -- 4262811
45832 l_acc_rev_flag               := NULL;          -- 4262811
45833 l_accrual_line_num           := NULL;          -- 4262811
45834 l_tmp_amt                    := NULL;          -- 4262811
45835 --
45836  
45837 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45838     l_balance_type_code <> 'B' THEN
45839 IF NVL(p_source_89,'
45840 ') <>  'CLEAR_CLEAR' AND 
45841 NVL(p_source_21,'
45842 ') =  'REC_TAX' AND 
45843 p_source_107 IS NOT NULL AND 
45844 NVL(p_source_130,'
45848 NVL(p_source_90,'
45845 ') =  'DEFERRED' AND 
45846 (NVL(p_source_90,'
45847 ') =  'DISCOUNT' OR 
45849 ') =  'CASH')
45850  THEN 
45851 
45852    --
45853    XLA_AE_LINES_PKG.SetNewLine;
45854 
45855    p_balance_type_code          := l_balance_type_code;
45856    -- set the flag so later we will know whether the gain loss line needs to be created
45857    
45858    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45859      p_actual_flag :='A';
45860    END IF;
45861 
45862    --
45863    -- bulk performance
45864    --
45865    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45866                                       p_header_num   => 0); -- 4262811
45867    --
45868    -- set accounting line options
45869    --
45870    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45871            p_natural_side_code          => 'C'
45872          , p_gain_or_loss_flag          => 'N'
45873          , p_gl_transfer_mode_code      => 'S'
45874          , p_acct_entry_type_code       => 'A'
45875          , p_switch_side_flag           => 'Y'
45876          , p_merge_duplicate_code       => 'A'
45877          );
45878    --
45879    l_acc_rev_natural_side_code := 'D';  -- 4262811
45880    -- 
45881    --
45882    -- set accounting line type info
45883    --
45884    xla_ae_lines_pkg.SetAcctLineType
45885       (p_component_type             => l_component_type
45886       ,p_event_type_code            => l_event_type_code
45887       ,p_line_definition_owner_code => l_line_definition_owner_code
45888       ,p_line_definition_code       => l_line_definition_code
45889       ,p_accounting_line_code       => l_component_code
45890       ,p_accounting_line_type_code  => l_component_type_code
45891       ,p_accounting_line_appl_id    => l_component_appl_id
45892       ,p_amb_context_code           => l_amb_context_code
45893       ,p_entity_code                => l_entity_code
45894       ,p_event_class_code           => l_event_class_code);
45895    --
45896    -- set accounting class
45897    --
45898    xla_ae_lines_pkg.SetAcctClass(
45899            p_accounting_class_code  => 'DEF_REC_TAX'
45900          , p_ae_header_id           => l_ae_header_id
45901          );
45902 
45903    --
45904    -- set rounding class
45905    --
45906    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45907                       'DEF_REC_TAX';
45908 
45909    --
45910    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45911    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45912    --
45913    -- bulk performance
45914    --
45915    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45916 
45917    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45918       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45919 
45920    -- 4955764
45921    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45922       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45923 
45924    -- 4458381 Public Sector Enh
45925    
45926    --
45927    -- set accounting attributes for the line type
45928    --
45929    l_entered_amt_idx := 9;
45930    l_accted_amt_idx  := 11;
45931    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
45932    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45933    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
45934    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
45935    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
45936    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45937    l_rec_acct_attrs.array_char_value(3)  := p_source_80;
45938    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
45939    l_rec_acct_attrs.array_char_value(4)  := p_source_81;
45940    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
45941    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
45942    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45943    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
45944    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
45945    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
45946    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
45947    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
45948    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
45949    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
45950    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
45951    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
45952    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
45953    l_rec_acct_attrs.array_num_value(11)  := p_source_114;
45954    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
45955    l_rec_acct_attrs.array_char_value(12)  := p_source_68;
45956    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
45957    l_rec_acct_attrs.array_char_value(13)  := p_source_71;
45958    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
45959    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_104);
45960    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
45961    l_rec_acct_attrs.array_char_value(15)  := p_source_43;
45962 
45966    ---------------------------------------------------------------------------------------------------------------
45963    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45964    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45965 
45967    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45968    ---------------------------------------------------------------------------------------------------------------
45969    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45970 
45971    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45972    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45973 
45974    IF xla_accounting_cache_pkg.GetValueChar
45975          (p_source_code         => 'LEDGER_CATEGORY_CODE'
45976          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45977    AND l_bflow_method_code = 'PRIOR_ENTRY'
45978 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45979    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45980          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45981        )
45982    THEN
45983          xla_ae_lines_pkg.BflowUpgEntry
45984            (p_business_method_code    => l_bflow_method_code
45985            ,p_business_class_code     => l_bflow_class_code
45986            ,p_balance_type            => l_balance_type_code);
45987    ELSE
45988       NULL;
45989 XLA_AE_LINES_PKG.business_flow_validation(
45990                                 p_business_method_code     => l_bflow_method_code
45991                                ,p_business_class_code      => l_bflow_class_code
45992                                ,p_inherit_description_flag => l_inherit_desc_flag);
45993    END IF;
45994 
45995    --
45996    -- call analytical criteria
45997    --
45998    -- Inherited Analytical Criteria for business flow method of Prior Entry.
45999    --
46000    -- call description
46001    --
46002    -- No description or it is inherited.
46003    --
46004    -- call ADRs
46005    -- Bug 4922099
46006    --
46007    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46008         (NVL(l_actual_upg_option, 'N') = 'O') OR
46009         (NVL(l_enc_upg_option, 'N') = 'O')
46010       )
46011    THEN
46012    NULL;
46013    --
46014    --
46015    
46016    --
46017    --
46018    END IF;
46019    --
46020    -- Bug 4922099
46021    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46022           (NVL(l_enc_upg_option, 'N') = 'O')
46023         ) AND
46024         (l_bflow_method_code = 'PRIOR_ENTRY')
46025       )
46026    THEN
46027       IF
46028       --
46029       1 = 1
46030       --
46031       THEN
46032       xla_accounting_err_pkg.build_message
46033                                     (p_appli_s_name            => 'XLA'
46034                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46035                                     ,p_token_1                 => 'LINE_NUMBER'
46036                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
46037                                     ,p_token_2                 => 'LINE_TYPE_NAME'
46038                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
46039                                                                              l_component_type
46040                                                                             ,l_component_code
46041                                                                             ,l_component_type_code
46042                                                                             ,l_component_appl_id
46043                                                                             ,l_amb_context_code
46044                                                                             ,l_entity_code
46045                                                                             ,l_event_class_code
46046                                                                            )
46047                                     ,p_token_3                 => 'OWNER'
46048                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
46049                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
46050                                                                           ,p_lookup_code    => l_component_type_code
46051                                                                          )
46052                                     ,p_token_4                 => 'PRODUCT_NAME'
46053                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46054                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46055                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46056                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46057                                     ,p_ae_header_id            =>  NULL
46058                                        );
46059 
46060         IF (C_LEVEL_ERROR>= g_log_level) THEN
46061                  trace
46062                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46063                       ,p_level    => C_LEVEL_ERROR
46064                       ,p_module   => l_log_module);
46065         END IF;
46066       END IF;
46067    END IF;
46071    -- 4219869 Business Flow
46068    --
46069    --
46070    ------------------------------------------------------------------------------------------------
46072    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46073    -- Prior Entry.  Currently, the following code is always generated.
46074    ------------------------------------------------------------------------------------------------
46075    -- No ValidateCurrentLine for business flow method of Prior Entry
46076 
46077    ------------------------------------------------------------------------------------
46078    -- 4219869 Business Flow
46079    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46080    ------------------------------------------------------------------------------------
46081    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46082 
46083    ----------------------------------------------------------------------------------
46084    -- 4219869 Business Flow
46085    -- Update journal entry status -- Need to generate this within IF <condition>
46086    ----------------------------------------------------------------------------------
46087    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46088          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46089          ,p_balance_type_code => l_balance_type_code
46090          );
46091 
46092    -------------------------------------------------------------------------------------------
46093    -- 4262811 - Generate the Accrual Reversal lines
46094    -------------------------------------------------------------------------------------------
46095    BEGIN
46096       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46097                               (g_array_event(p_event_id).array_value_num('header_index'));
46098       IF l_acc_rev_flag IS NULL THEN
46099          l_acc_rev_flag := 'N';
46100       END IF;
46101    EXCEPTION
46102       WHEN OTHERS THEN
46103          l_acc_rev_flag := 'N';
46104    END;
46105    --
46106    IF (l_acc_rev_flag = 'Y') THEN
46107 
46108        -- 4645092  ------------------------------------------------------------------------------
46109        -- To allow MPA report to determine if it should generate report process
46110        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46111        ------------------------------------------------------------------------------------------
46112 
46113        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46114        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46115    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
46116    -- call ADRs
46117    -- Bug 4922099
46118    --
46119    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46120         (NVL(l_actual_upg_option, 'N') = 'O') OR
46121         (NVL(l_enc_upg_option, 'N') = 'O')
46122       )
46123    THEN
46124    NULL;
46125    --
46126    --
46127    
46128    --
46129    --
46130    END IF;
46131 
46132        --
46133        -- Update the line information that should be overwritten
46134        --
46135        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46136                                          p_header_num   => 1);
46137        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
46138 
46139        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46140 
46141        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
46142           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46143        END IF;
46144 
46145       --
46146       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46147       --
46148       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46149           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
46150       ELSE
46151           ---------------------------------------------------------------------------------------------------
46152           -- 4262811a Switch Sign
46153           ---------------------------------------------------------------------------------------------------
46154           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
46155           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46156                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46157           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46158                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46159           -- 5132302
46160           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46161                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46162 
46163       END IF;
46164 
46165       -- 4955764
46166       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46167       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46168 
46169 
46170       XLA_AE_LINES_PKG.ValidateCurrentLine;
46171       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46172 
46173       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46174                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46178 
46175                ,p_balance_type_code => l_balance_type_code);
46176 
46177    END IF;
46179    -----------------------------------------------------------------------------------------
46180    -- 4262811 Multiperiod Accounting
46181    -----------------------------------------------------------------------------------------
46182      -- No MPA option is assigned.
46183 
46184 
46185 END IF;
46186 END IF;
46187 --
46188 
46189 --
46190 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46191    trace
46192       (p_msg      => 'END of AcctLineType_101'
46193       ,p_level    => C_LEVEL_PROCEDURE
46194       ,p_module   => l_log_module);
46195 END IF;
46196 --
46197 EXCEPTION
46198   WHEN xla_exceptions_pkg.application_exception THEN
46199       RAISE;
46200   WHEN OTHERS THEN
46201        xla_exceptions_pkg.raise_message
46202            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_101');
46203 END AcctLineType_101;
46204 --
46205 
46206 ---------------------------------------
46207 --
46208 -- PRIVATE FUNCTION
46209 --         AcctLineType_102
46210 --
46211 ---------------------------------------
46212 PROCEDURE AcctLineType_102 (
46213   p_application_id        IN NUMBER
46214  ,p_event_id              IN NUMBER
46215  ,p_calculate_acctd_flag  IN VARCHAR2
46216  ,p_calculate_g_l_flag    IN VARCHAR2
46217  ,p_actual_flag           IN OUT VARCHAR2
46218  ,p_balance_type_code     OUT VARCHAR2
46219  ,p_gain_or_loss_ref      OUT VARCHAR2
46220  
46221 --Invoice Distribution Type
46222  , p_source_21            IN VARCHAR2
46223  , p_source_21_meaning    IN VARCHAR2
46224 --Accounting Reversal Indicator
46225  , p_source_41            IN VARCHAR2
46226 --Distribution Link Type
46227  , p_source_43            IN VARCHAR2
46228 --Override Accounted Amount Indicator
46229  , p_source_68            IN VARCHAR2
46230  , p_source_68_meaning    IN VARCHAR2
46231 --Third Party Type
46232  , p_source_71            IN VARCHAR2
46233 --Invoice Distribution Tax Line Identifier
46234  , p_source_74            IN NUMBER
46235 --Invoice Distribution Tax Distribution Identifier from Tax
46236  , p_source_75            IN NUMBER
46237 --Invoice Distribution Summary Tax Line Identifier
46238  , p_source_76            IN NUMBER
46239 --Business Flow Accounts Payable Application Identifier
46240  , p_source_79            IN NUMBER
46241 --Business Flow Invoice Distribution Type
46242  , p_source_80            IN VARCHAR2
46243 --Business Flow Invoice Entity Code
46244  , p_source_81            IN VARCHAR2
46245 --Business Flow Invoice Distribution Identifier
46246  , p_source_82            IN NUMBER
46247 --Business Flow Invoice Identifier
46248  , p_source_83            IN NUMBER
46249 --When to Account for Payment Option
46250  , p_source_89            IN VARCHAR2
46251 --Payment Distribution Type
46252  , p_source_90            IN VARCHAR2
46253  , p_source_90_meaning    IN VARCHAR2
46254 --Payment Distribution Amount
46255  , p_source_91            IN NUMBER
46256 --Payment Distribution Identifier
46257  , p_source_96            IN NUMBER
46258 --Payment Distribution Reversed Identifier
46259  , p_source_104            IN NUMBER
46260 --Payment Currency Code
46261  , p_source_106            IN VARCHAR2
46262 --Payment Maturity Date
46263  , p_source_107            IN DATE
46264 --Payment Distribution (Invoice Rate) Ledger Amount
46265  , p_source_109            IN NUMBER
46266 --Payment Type
46267  , p_source_115            IN VARCHAR2
46268  , p_source_115_meaning    IN VARCHAR2
46269 --Payment Processing Type
46270  , p_source_116            IN VARCHAR2
46271 --Invoice Distribution Amount of the Payment Distribution
46272  , p_source_117            IN NUMBER
46273 --Deferred Recoverable Tax Option
46274  , p_source_130            IN VARCHAR2
46275  , p_source_130_meaning    IN VARCHAR2
46276 --AWT Related Distribution Type Lookup code
46277  , p_source_131            IN VARCHAR2
46278 )
46279 IS
46280 
46281 l_component_type              VARCHAR2(80);
46282 l_component_code              VARCHAR2(30);
46283 l_component_type_code         VARCHAR2(1);
46284 l_component_appl_id           INTEGER;
46285 l_amb_context_code            VARCHAR2(30);
46286 l_entity_code                 VARCHAR2(30);
46287 l_event_class_code            VARCHAR2(30);
46288 l_ae_header_id                NUMBER;
46289 l_event_type_code             VARCHAR2(30);
46290 l_line_definition_code        VARCHAR2(30);
46291 l_line_definition_owner_code  VARCHAR2(1);
46292 --
46293 -- adr variables
46294 l_segment                     VARCHAR2(30);
46295 l_ccid                        NUMBER;
46296 l_adr_transaction_coa_id      NUMBER;
46297 l_adr_accounting_coa_id       NUMBER;
46298 l_adr_flexfield_segment_code  VARCHAR2(30);
46299 l_adr_flex_value_set_id       NUMBER;
46300 l_adr_value_type_code         VARCHAR2(30);
46301 l_adr_value_combination_id    NUMBER;
46302 l_adr_value_segment_code      VARCHAR2(30);
46303 
46304 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
46305 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
46306 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
46307 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
46308 
46309 -- 4262811 Variables ------------------------------------------------------------------------------------------
46310 l_entered_amt_idx             NUMBER;
46311 l_accted_amt_idx              NUMBER;
46312 l_acc_rev_flag                VARCHAR2(1);
46313 l_accrual_line_num            NUMBER;
46314 l_tmp_amt                     NUMBER;
46315 l_acc_rev_natural_side_code   VARCHAR2(1);
46316 
46320 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
46317 l_num_entries                 NUMBER;
46318 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
46319 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
46321 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
46322 l_recog_line_1                NUMBER;
46323 l_recog_line_2                NUMBER;
46324 
46325 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
46326 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
46327 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
46328 
46329 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46330 
46331 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
46332 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
46333 
46334 ---------------------------------------------------------------------------------------------------------------
46335 
46336 
46337 --
46338 -- bulk performance
46339 --
46340 l_balance_type_code           VARCHAR2(1);
46341 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
46342 l_log_module                  VARCHAR2(240);
46343 
46344 --
46345 -- Upgrade strategy
46346 --
46347 l_actual_upg_option           VARCHAR2(1);
46348 l_enc_upg_option           VARCHAR2(1);
46349 
46350 --
46351 BEGIN
46352 --
46353 IF g_log_enabled THEN
46354       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_102';
46355 END IF;
46356 --
46357 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46358 
46359       trace
46360          (p_msg      => 'BEGIN of AcctLineType_102'
46361          ,p_level    => C_LEVEL_PROCEDURE
46362          ,p_module   => l_log_module);
46363 
46364 END IF;
46365 --
46366 l_component_type             := 'AMB_JLT';
46367 l_component_code             := 'AP_DEF_RTAX_INTERIM_PMT';
46368 l_component_type_code        := 'S';
46369 l_component_appl_id          :=  200;
46370 l_amb_context_code           := 'DEFAULT';
46371 l_entity_code                := 'AP_PAYMENTS';
46372 l_event_class_code           := 'PAYMENTS';
46373 l_event_type_code            := 'PAYMENTS_ALL';
46374 l_line_definition_owner_code := 'S';
46375 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
46376 --
46377 l_balance_type_code          := 'A';
46378 l_segment                     := NULL;
46379 l_ccid                        := NULL;
46380 l_adr_transaction_coa_id      := NULL;
46381 l_adr_accounting_coa_id       := NULL;
46382 l_adr_flexfield_segment_code  := NULL;
46383 l_adr_flex_value_set_id       := NULL;
46384 l_adr_value_type_code         := NULL;
46385 l_adr_value_combination_id    := NULL;
46386 l_adr_value_segment_code      := NULL;
46387 
46388 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
46389 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
46390 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
46391 l_budgetary_control_flag     := 'N';
46392 
46393 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
46394 l_bflow_applied_to_amt       := NULL; -- 5132302
46395 l_entered_amt_idx            := NULL;          -- 4262811
46396 l_accted_amt_idx             := NULL;          -- 4262811
46397 l_acc_rev_flag               := NULL;          -- 4262811
46398 l_accrual_line_num           := NULL;          -- 4262811
46399 l_tmp_amt                    := NULL;          -- 4262811
46400 --
46401  
46402 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46403     l_balance_type_code <> 'B' THEN
46404 IF NVL(p_source_89,'
46405 ') <>  'CLEAR_CLEAR' AND 
46406 ((NVL(p_source_21,'
46407 ') =  'REC_TAX' AND 
46408 NVL(p_source_130,'
46409 ') =  'DEFERRED') OR 
46410 (NVL(p_source_21,'
46411 ') =  'AWT' AND 
46412 NVL(p_source_131,'
46413 ') =  'AWT_DEFERRED')
46414 ) AND (NVL(p_source_90,'
46415 ') =  'CASH' OR 
46416 NVL(p_source_90,'
46417 ') =  'AWT' OR 
46418 NVL(p_source_90,'
46419 ') =  'DISCOUNT') AND 
46420 p_source_107 IS NULL AND 
46421 NVL(p_source_115,'
46422 ') <>  'R' AND 
46423 NVL(p_source_116,'
46424 ') <>  'PAYMENTCARD'
46425  THEN 
46426 
46427    --
46428    XLA_AE_LINES_PKG.SetNewLine;
46429 
46430    p_balance_type_code          := l_balance_type_code;
46431    -- set the flag so later we will know whether the gain loss line needs to be created
46432    
46433    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46434      p_actual_flag :='A';
46435    END IF;
46436 
46437    --
46438    -- bulk performance
46439    --
46440    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46441                                       p_header_num   => 0); -- 4262811
46442    --
46443    -- set accounting line options
46444    --
46445    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46446            p_natural_side_code          => 'C'
46447          , p_gain_or_loss_flag          => 'N'
46448          , p_gl_transfer_mode_code      => 'S'
46449          , p_acct_entry_type_code       => 'A'
46450          , p_switch_side_flag           => 'Y'
46451          , p_merge_duplicate_code       => 'A'
46452          );
46453    --
46454    l_acc_rev_natural_side_code := 'D';  -- 4262811
46455    -- 
46456    --
46457    -- set accounting line type info
46458    --
46459    xla_ae_lines_pkg.SetAcctLineType
46460       (p_component_type             => l_component_type
46464       ,p_accounting_line_code       => l_component_code
46461       ,p_event_type_code            => l_event_type_code
46462       ,p_line_definition_owner_code => l_line_definition_owner_code
46463       ,p_line_definition_code       => l_line_definition_code
46465       ,p_accounting_line_type_code  => l_component_type_code
46466       ,p_accounting_line_appl_id    => l_component_appl_id
46467       ,p_amb_context_code           => l_amb_context_code
46468       ,p_entity_code                => l_entity_code
46469       ,p_event_class_code           => l_event_class_code);
46470    --
46471    -- set accounting class
46472    --
46473    xla_ae_lines_pkg.SetAcctClass(
46474            p_accounting_class_code  => 'DEF_REC_TAX'
46475          , p_ae_header_id           => l_ae_header_id
46476          );
46477 
46478    --
46479    -- set rounding class
46480    --
46481    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46482                       'DEF_REC_TAX';
46483 
46484    --
46485    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46486    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46487    --
46488    -- bulk performance
46489    --
46490    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46491 
46492    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46493       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46494 
46495    -- 4955764
46496    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46497       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46498 
46499    -- 4458381 Public Sector Enh
46500    
46501    --
46502    -- set accounting attributes for the line type
46503    --
46504    l_entered_amt_idx := 10;
46505    l_accted_amt_idx  := 12;
46506    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
46507    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46508    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
46509    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
46510    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
46511    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
46512    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
46513    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46514    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
46515    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
46516    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
46517    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
46518    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
46519    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46520    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
46521    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
46522    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
46523    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
46524    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
46525    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
46526    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
46527    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
46528    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
46529    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
46530    l_rec_acct_attrs.array_num_value(12)  := p_source_109;
46531    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
46532    l_rec_acct_attrs.array_char_value(13)  := p_source_68;
46533    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
46534    l_rec_acct_attrs.array_char_value(14)  := p_source_71;
46535    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
46536    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_104);
46537    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
46538    l_rec_acct_attrs.array_char_value(16)  := p_source_43;
46539    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
46540    l_rec_acct_attrs.array_num_value(17)  := p_source_74;
46541    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
46542    l_rec_acct_attrs.array_num_value(18)  := p_source_75;
46543    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
46544    l_rec_acct_attrs.array_num_value(19)  := p_source_76;
46545 
46546    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46547    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46548 
46549    ---------------------------------------------------------------------------------------------------------------
46550    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46551    ---------------------------------------------------------------------------------------------------------------
46552    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46553 
46554    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46555    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46556 
46557    IF xla_accounting_cache_pkg.GetValueChar
46558          (p_source_code         => 'LEDGER_CATEGORY_CODE'
46559          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46560    AND l_bflow_method_code = 'PRIOR_ENTRY'
46561 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46565    THEN
46562    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46563          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46564        )
46566          xla_ae_lines_pkg.BflowUpgEntry
46567            (p_business_method_code    => l_bflow_method_code
46568            ,p_business_class_code     => l_bflow_class_code
46569            ,p_balance_type            => l_balance_type_code);
46570    ELSE
46571       NULL;
46572 XLA_AE_LINES_PKG.business_flow_validation(
46573                                 p_business_method_code     => l_bflow_method_code
46574                                ,p_business_class_code      => l_bflow_class_code
46575                                ,p_inherit_description_flag => l_inherit_desc_flag);
46576    END IF;
46577 
46578    --
46579    -- call analytical criteria
46580    --
46581    -- Inherited Analytical Criteria for business flow method of Prior Entry.
46582    --
46583    -- call description
46584    --
46585    -- No description or it is inherited.
46586    --
46587    -- call ADRs
46588    -- Bug 4922099
46589    --
46590    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46591         (NVL(l_actual_upg_option, 'N') = 'O') OR
46592         (NVL(l_enc_upg_option, 'N') = 'O')
46593       )
46594    THEN
46595    NULL;
46596    --
46597    --
46598    
46599    --
46600    --
46601    END IF;
46602    --
46603    -- Bug 4922099
46604    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46605           (NVL(l_enc_upg_option, 'N') = 'O')
46606         ) AND
46607         (l_bflow_method_code = 'PRIOR_ENTRY')
46608       )
46609    THEN
46610       IF
46611       --
46612       1 = 1
46613       --
46614       THEN
46615       xla_accounting_err_pkg.build_message
46616                                     (p_appli_s_name            => 'XLA'
46617                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46618                                     ,p_token_1                 => 'LINE_NUMBER'
46619                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
46620                                     ,p_token_2                 => 'LINE_TYPE_NAME'
46621                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
46622                                                                              l_component_type
46623                                                                             ,l_component_code
46624                                                                             ,l_component_type_code
46625                                                                             ,l_component_appl_id
46626                                                                             ,l_amb_context_code
46627                                                                             ,l_entity_code
46628                                                                             ,l_event_class_code
46629                                                                            )
46630                                     ,p_token_3                 => 'OWNER'
46631                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
46632                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
46633                                                                           ,p_lookup_code    => l_component_type_code
46634                                                                          )
46635                                     ,p_token_4                 => 'PRODUCT_NAME'
46636                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46637                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46638                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46639                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46640                                     ,p_ae_header_id            =>  NULL
46641                                        );
46642 
46643         IF (C_LEVEL_ERROR>= g_log_level) THEN
46644                  trace
46645                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46646                       ,p_level    => C_LEVEL_ERROR
46647                       ,p_module   => l_log_module);
46648         END IF;
46649       END IF;
46650    END IF;
46651    --
46652    --
46653    ------------------------------------------------------------------------------------------------
46654    -- 4219869 Business Flow
46655    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46656    -- Prior Entry.  Currently, the following code is always generated.
46657    ------------------------------------------------------------------------------------------------
46658    -- No ValidateCurrentLine for business flow method of Prior Entry
46659 
46660    ------------------------------------------------------------------------------------
46661    -- 4219869 Business Flow
46662    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46663    ------------------------------------------------------------------------------------
46664    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46665 
46666    ----------------------------------------------------------------------------------
46667    -- 4219869 Business Flow
46668    -- Update journal entry status -- Need to generate this within IF <condition>
46669    ----------------------------------------------------------------------------------
46670    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46671          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46675    -------------------------------------------------------------------------------------------
46672          ,p_balance_type_code => l_balance_type_code
46673          );
46674 
46676    -- 4262811 - Generate the Accrual Reversal lines
46677    -------------------------------------------------------------------------------------------
46678    BEGIN
46679       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46680                               (g_array_event(p_event_id).array_value_num('header_index'));
46681       IF l_acc_rev_flag IS NULL THEN
46682          l_acc_rev_flag := 'N';
46683       END IF;
46684    EXCEPTION
46685       WHEN OTHERS THEN
46686          l_acc_rev_flag := 'N';
46687    END;
46688    --
46689    IF (l_acc_rev_flag = 'Y') THEN
46690 
46691        -- 4645092  ------------------------------------------------------------------------------
46692        -- To allow MPA report to determine if it should generate report process
46693        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46694        ------------------------------------------------------------------------------------------
46695 
46696        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46697        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46698    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
46699    -- call ADRs
46700    -- Bug 4922099
46701    --
46702    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46703         (NVL(l_actual_upg_option, 'N') = 'O') OR
46704         (NVL(l_enc_upg_option, 'N') = 'O')
46705       )
46706    THEN
46707    NULL;
46708    --
46709    --
46710    
46711    --
46712    --
46713    END IF;
46714 
46715        --
46716        -- Update the line information that should be overwritten
46717        --
46718        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46719                                          p_header_num   => 1);
46720        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
46721 
46722        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46723 
46724        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
46725           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46726        END IF;
46727 
46728       --
46729       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46730       --
46731       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46732           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
46733       ELSE
46734           ---------------------------------------------------------------------------------------------------
46735           -- 4262811a Switch Sign
46736           ---------------------------------------------------------------------------------------------------
46737           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
46738           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46739                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46740           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46741                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46742           -- 5132302
46743           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46744                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46745 
46746       END IF;
46747 
46748       -- 4955764
46749       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46750       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46751 
46752 
46753       XLA_AE_LINES_PKG.ValidateCurrentLine;
46754       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46755 
46756       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46757                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46758                ,p_balance_type_code => l_balance_type_code);
46759 
46760    END IF;
46761 
46762    -----------------------------------------------------------------------------------------
46763    -- 4262811 Multiperiod Accounting
46764    -----------------------------------------------------------------------------------------
46765      -- No MPA option is assigned.
46766 
46767 
46768 END IF;
46769 END IF;
46770 --
46771 
46772 --
46773 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46774    trace
46775       (p_msg      => 'END of AcctLineType_102'
46776       ,p_level    => C_LEVEL_PROCEDURE
46777       ,p_module   => l_log_module);
46778 END IF;
46779 --
46780 EXCEPTION
46781   WHEN xla_exceptions_pkg.application_exception THEN
46782       RAISE;
46783   WHEN OTHERS THEN
46784        xla_exceptions_pkg.raise_message
46785            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_102');
46786 END AcctLineType_102;
46787 --
46788 
46789 ---------------------------------------
46790 --
46791 -- PRIVATE FUNCTION
46792 --         AcctLineType_103
46793 --
46794 ---------------------------------------
46795 PROCEDURE AcctLineType_103 (
46796   p_application_id        IN NUMBER
46797  ,p_event_id              IN NUMBER
46798  ,p_calculate_acctd_flag  IN VARCHAR2
46799  ,p_calculate_g_l_flag    IN VARCHAR2
46800  ,p_actual_flag           IN OUT VARCHAR2
46804 --Accounting Reversal Indicator
46801  ,p_balance_type_code     OUT VARCHAR2
46802  ,p_gain_or_loss_ref      OUT VARCHAR2
46803  
46805  , p_source_41            IN VARCHAR2
46806 --Distribution Link Type
46807  , p_source_43            IN VARCHAR2
46808 --Invoice Identifier
46809  , p_source_46            IN NUMBER
46810 --Payables Encumbrance Upgrade Credit Account
46811  , p_source_53            IN NUMBER
46812 --Payables Encumbrance Upgrade Credit Amount
46813  , p_source_54            IN NUMBER
46814 --Invoice Currency Code
46815  , p_source_55            IN VARCHAR2
46816 --Payables Encumbrance Upgrade Credit Base Amount
46817  , p_source_56            IN NUMBER
46818 --Payables Encumbrance Upgrade Debit Account
46819  , p_source_57            IN NUMBER
46820 --Payables Encumbrance Upgrade Debit Amount
46821  , p_source_58            IN NUMBER
46822 --Payables Encumbrance Upgrade Debit Base Amount
46823  , p_source_59            IN NUMBER
46824 --Payables Encumbrance Upgrade Option
46825  , p_source_60            IN VARCHAR2
46826 --Deferred Accounting End Date
46827  , p_source_65            IN DATE
46828 --Deferred Accounting Option
46829  , p_source_66            IN VARCHAR2
46830 --Deferred Accounting Start Date
46831  , p_source_67            IN DATE
46832 --Override Accounted Amount Indicator
46833  , p_source_68            IN VARCHAR2
46834  , p_source_68_meaning    IN VARCHAR2
46835 --Third Party Type
46836  , p_source_71            IN VARCHAR2
46837 --Invoice Distribution Tax Line Identifier
46838  , p_source_74            IN NUMBER
46839 --Invoice Distribution Tax Distribution Identifier from Tax
46840  , p_source_75            IN NUMBER
46841 --Invoice Distribution Summary Tax Line Identifier
46842  , p_source_76            IN NUMBER
46843 --Payables Upgrade Credit Encumbrance Type Identifier
46844  , p_source_77            IN NUMBER
46845 --Payables Upgrade Debit Encumbrance Type Identifier
46846  , p_source_78            IN NUMBER
46847 --Business Flow Accounts Payable Application Identifier
46848  , p_source_79            IN NUMBER
46849 --Business Flow Invoice Distribution Type
46850  , p_source_80            IN VARCHAR2
46851 --Business Flow Invoice Entity Code
46852  , p_source_81            IN VARCHAR2
46853 --Prepayment Application Distribution Identifier
46854  , p_source_120            IN NUMBER
46855 --Upgrade Encumbrance Credit Account Class
46856  , p_source_125            IN VARCHAR2
46857 --Upgrade Encumbrance Debit Account Class
46858  , p_source_126            IN VARCHAR2
46859 --Prepayment Distribution Amount
46860  , p_source_127            IN NUMBER
46861 --Identifier of the Prepayment Application Reversed
46862  , p_source_129            IN NUMBER
46863 --Deferred Recoverable Tax Option
46864  , p_source_130            IN VARCHAR2
46865  , p_source_130_meaning    IN VARCHAR2
46866 --Business Flow Recipient Invoice Distribution Identifier
46867  , p_source_132            IN NUMBER
46868 --Business Flow Recipient Invoice Identifier
46869  , p_source_133            IN NUMBER
46870 --Prepayment Distribution (Invoice Rate) Ledger Amount
46871  , p_source_134            IN NUMBER
46872 )
46873 IS
46874 
46875 l_component_type              VARCHAR2(80);
46876 l_component_code              VARCHAR2(30);
46877 l_component_type_code         VARCHAR2(1);
46878 l_component_appl_id           INTEGER;
46879 l_amb_context_code            VARCHAR2(30);
46880 l_entity_code                 VARCHAR2(30);
46881 l_event_class_code            VARCHAR2(30);
46882 l_ae_header_id                NUMBER;
46883 l_event_type_code             VARCHAR2(30);
46884 l_line_definition_code        VARCHAR2(30);
46885 l_line_definition_owner_code  VARCHAR2(1);
46886 --
46887 -- adr variables
46888 l_segment                     VARCHAR2(30);
46889 l_ccid                        NUMBER;
46890 l_adr_transaction_coa_id      NUMBER;
46891 l_adr_accounting_coa_id       NUMBER;
46892 l_adr_flexfield_segment_code  VARCHAR2(30);
46893 l_adr_flex_value_set_id       NUMBER;
46894 l_adr_value_type_code         VARCHAR2(30);
46895 l_adr_value_combination_id    NUMBER;
46896 l_adr_value_segment_code      VARCHAR2(30);
46897 
46898 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
46899 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
46900 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
46901 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
46902 
46903 -- 4262811 Variables ------------------------------------------------------------------------------------------
46904 l_entered_amt_idx             NUMBER;
46905 l_accted_amt_idx              NUMBER;
46906 l_acc_rev_flag                VARCHAR2(1);
46907 l_accrual_line_num            NUMBER;
46908 l_tmp_amt                     NUMBER;
46909 l_acc_rev_natural_side_code   VARCHAR2(1);
46910 
46911 l_num_entries                 NUMBER;
46912 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
46913 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
46914 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
46915 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
46916 l_recog_line_1                NUMBER;
46917 l_recog_line_2                NUMBER;
46918 
46919 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
46920 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
46921 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
46922 
46923 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46924 
46925 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
46929 
46926 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
46927 
46928 ---------------------------------------------------------------------------------------------------------------
46930 
46931 --
46932 -- bulk performance
46933 --
46934 l_balance_type_code           VARCHAR2(1);
46935 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
46936 l_log_module                  VARCHAR2(240);
46937 
46938 --
46939 -- Upgrade strategy
46940 --
46941 l_actual_upg_option           VARCHAR2(1);
46942 l_enc_upg_option           VARCHAR2(1);
46943 
46944 --
46945 BEGIN
46946 --
46947 IF g_log_enabled THEN
46948       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_103';
46949 END IF;
46950 --
46951 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46952 
46953       trace
46954          (p_msg      => 'BEGIN of AcctLineType_103'
46955          ,p_level    => C_LEVEL_PROCEDURE
46956          ,p_module   => l_log_module);
46957 
46958 END IF;
46959 --
46960 l_component_type             := 'AMB_JLT';
46961 l_component_code             := 'AP_DEF_RTAX_INTERIM_PREPAY';
46962 l_component_type_code        := 'S';
46963 l_component_appl_id          :=  200;
46964 l_amb_context_code           := 'DEFAULT';
46965 l_entity_code                := 'AP_INVOICES';
46966 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
46967 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
46968 l_line_definition_owner_code := 'S';
46969 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
46970 --
46971 l_balance_type_code          := 'A';
46972 l_segment                     := NULL;
46973 l_ccid                        := NULL;
46974 l_adr_transaction_coa_id      := NULL;
46975 l_adr_accounting_coa_id       := NULL;
46976 l_adr_flexfield_segment_code  := NULL;
46977 l_adr_flex_value_set_id       := NULL;
46978 l_adr_value_type_code         := NULL;
46979 l_adr_value_combination_id    := NULL;
46980 l_adr_value_segment_code      := NULL;
46981 
46982 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
46983 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
46984 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
46985 l_budgetary_control_flag     := 'N';
46986 
46987 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
46988 l_bflow_applied_to_amt       := NULL; -- 5132302
46989 l_entered_amt_idx            := NULL;          -- 4262811
46990 l_accted_amt_idx             := NULL;          -- 4262811
46991 l_acc_rev_flag               := NULL;          -- 4262811
46992 l_accrual_line_num           := NULL;          -- 4262811
46993 l_tmp_amt                    := NULL;          -- 4262811
46994 --
46995  
46996 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46997     l_balance_type_code <> 'B' THEN
46998 IF NVL(p_source_130,'
46999 ') =  'DEFERRED'
47000  THEN 
47001 
47002    --
47003    XLA_AE_LINES_PKG.SetNewLine;
47004 
47005    p_balance_type_code          := l_balance_type_code;
47006    -- set the flag so later we will know whether the gain loss line needs to be created
47007    
47008    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47009      p_actual_flag :='A';
47010    END IF;
47011 
47012    --
47013    -- bulk performance
47014    --
47015    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47016                                       p_header_num   => 0); -- 4262811
47017    --
47018    -- set accounting line options
47019    --
47020    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47021            p_natural_side_code          => 'D'
47022          , p_gain_or_loss_flag          => 'N'
47023          , p_gl_transfer_mode_code      => 'S'
47024          , p_acct_entry_type_code       => 'A'
47025          , p_switch_side_flag           => 'Y'
47026          , p_merge_duplicate_code       => 'A'
47027          );
47028    --
47029    l_acc_rev_natural_side_code := 'C';  -- 4262811
47030    -- 
47031    --
47032    -- set accounting line type info
47033    --
47034    xla_ae_lines_pkg.SetAcctLineType
47035       (p_component_type             => l_component_type
47036       ,p_event_type_code            => l_event_type_code
47037       ,p_line_definition_owner_code => l_line_definition_owner_code
47038       ,p_line_definition_code       => l_line_definition_code
47039       ,p_accounting_line_code       => l_component_code
47040       ,p_accounting_line_type_code  => l_component_type_code
47041       ,p_accounting_line_appl_id    => l_component_appl_id
47042       ,p_amb_context_code           => l_amb_context_code
47043       ,p_entity_code                => l_entity_code
47044       ,p_event_class_code           => l_event_class_code);
47045    --
47046    -- set accounting class
47047    --
47048    xla_ae_lines_pkg.SetAcctClass(
47049            p_accounting_class_code  => 'DEF_REC_TAX'
47050          , p_ae_header_id           => l_ae_header_id
47051          );
47052 
47053    --
47054    -- set rounding class
47055    --
47056    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47057                       'DEF_REC_TAX';
47058 
47059    --
47060    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47061    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47062    --
47063    -- bulk performance
47064    --
47065    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47066 
47070    -- 4955764
47067    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47068       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47069 
47071    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47072       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47073 
47074    -- 4458381 Public Sector Enh
47075    
47076    --
47077    -- set accounting attributes for the line type
47078    --
47079    l_entered_amt_idx := 25;
47080    l_accted_amt_idx  := 27;
47081    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
47082    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47083    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
47084    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
47085    l_rec_acct_attrs.array_num_value(2)  := 
47086 xla_ae_sources_pkg.GetSystemSourceNum(
47087    p_source_code           => 'XLA_EVENT_APPL_ID'
47088  , p_source_type_code      => 'Y'
47089  , p_source_application_id =>  602
47090 );
47091    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
47092    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
47093    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
47094    l_rec_acct_attrs.array_char_value(4)  := 
47095 xla_ae_sources_pkg.GetSystemSourceChar(
47096    p_source_code           => 'XLA_ENTITY_CODE'
47097  , p_source_type_code      => 'Y'
47098  , p_source_application_id =>  602
47099 );
47100    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
47101    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_120);
47102    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
47103    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
47104    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
47105    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
47106    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47107    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
47108    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
47109    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
47110    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
47111    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_132);
47112    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47113    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_133);
47114    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
47115    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_120);
47116    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
47117    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
47118    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
47119    l_rec_acct_attrs.array_char_value(14)  := p_source_125;
47120    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
47121    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
47122    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
47123    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
47124    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
47125    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
47126    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
47127    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
47128    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
47129    l_rec_acct_attrs.array_char_value(19)  := p_source_126;
47130    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
47131    l_rec_acct_attrs.array_num_value(20)  := p_source_57;
47132    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
47133    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
47134    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
47135    l_rec_acct_attrs.array_char_value(22)  := p_source_55;
47136    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
47137    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
47138    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
47139    l_rec_acct_attrs.array_char_value(24)  := p_source_60;
47140    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
47141    l_rec_acct_attrs.array_num_value(25)  := p_source_127;
47142    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
47143    l_rec_acct_attrs.array_char_value(26)  := p_source_55;
47144    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
47145    l_rec_acct_attrs.array_num_value(27)  := p_source_134;
47146    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
47147    l_rec_acct_attrs.array_date_value(28)  := p_source_65;
47148    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
47149    l_rec_acct_attrs.array_char_value(29)  := p_source_66;
47150    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
47151    l_rec_acct_attrs.array_date_value(30)  := p_source_67;
47152    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
47153    l_rec_acct_attrs.array_char_value(31)  := p_source_68;
47154    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
47155    l_rec_acct_attrs.array_char_value(32)  := p_source_71;
47156    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
47157    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_129);
47158    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
47159    l_rec_acct_attrs.array_char_value(34)  := p_source_43;
47160    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
47161    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
47162    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
47163    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
47167    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
47164    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
47165    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
47166    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
47168    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
47169    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
47170 
47171    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47172    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47173 
47174    ---------------------------------------------------------------------------------------------------------------
47175    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47176    ---------------------------------------------------------------------------------------------------------------
47177    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47178 
47179    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47180    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47181 
47182    IF xla_accounting_cache_pkg.GetValueChar
47183          (p_source_code         => 'LEDGER_CATEGORY_CODE'
47184          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47185    AND l_bflow_method_code = 'PRIOR_ENTRY'
47186 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47187    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47188          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47189        )
47190    THEN
47191          xla_ae_lines_pkg.BflowUpgEntry
47192            (p_business_method_code    => l_bflow_method_code
47193            ,p_business_class_code     => l_bflow_class_code
47194            ,p_balance_type            => l_balance_type_code);
47195    ELSE
47196       NULL;
47197 XLA_AE_LINES_PKG.business_flow_validation(
47198                                 p_business_method_code     => l_bflow_method_code
47199                                ,p_business_class_code      => l_bflow_class_code
47200                                ,p_inherit_description_flag => l_inherit_desc_flag);
47201    END IF;
47202 
47203    --
47204    -- call analytical criteria
47205    --
47206    -- Inherited Analytical Criteria for business flow method of Prior Entry.
47207    --
47208    -- call description
47209    --
47210    -- No description or it is inherited.
47211    --
47212    -- call ADRs
47213    -- Bug 4922099
47214    --
47215    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47216         (NVL(l_actual_upg_option, 'N') = 'O') OR
47217         (NVL(l_enc_upg_option, 'N') = 'O')
47218       )
47219    THEN
47220    NULL;
47221    --
47222    --
47223    
47224    --
47225    --
47226    END IF;
47227    --
47228    -- Bug 4922099
47229    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47230           (NVL(l_enc_upg_option, 'N') = 'O')
47231         ) AND
47232         (l_bflow_method_code = 'PRIOR_ENTRY')
47233       )
47234    THEN
47235       IF
47236       --
47237       1 = 1
47238       --
47239       THEN
47240       xla_accounting_err_pkg.build_message
47241                                     (p_appli_s_name            => 'XLA'
47242                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47243                                     ,p_token_1                 => 'LINE_NUMBER'
47244                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
47245                                     ,p_token_2                 => 'LINE_TYPE_NAME'
47246                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
47247                                                                              l_component_type
47248                                                                             ,l_component_code
47249                                                                             ,l_component_type_code
47250                                                                             ,l_component_appl_id
47251                                                                             ,l_amb_context_code
47252                                                                             ,l_entity_code
47253                                                                             ,l_event_class_code
47254                                                                            )
47255                                     ,p_token_3                 => 'OWNER'
47256                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
47257                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
47258                                                                           ,p_lookup_code    => l_component_type_code
47259                                                                          )
47260                                     ,p_token_4                 => 'PRODUCT_NAME'
47261                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47262                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47263                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47264                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47265                                     ,p_ae_header_id            =>  NULL
47266                                        );
47267 
47268         IF (C_LEVEL_ERROR>= g_log_level) THEN
47269                  trace
47273         END IF;
47270                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47271                       ,p_level    => C_LEVEL_ERROR
47272                       ,p_module   => l_log_module);
47274       END IF;
47275    END IF;
47276    --
47277    --
47278    ------------------------------------------------------------------------------------------------
47279    -- 4219869 Business Flow
47280    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47281    -- Prior Entry.  Currently, the following code is always generated.
47282    ------------------------------------------------------------------------------------------------
47283    -- No ValidateCurrentLine for business flow method of Prior Entry
47284 
47285    ------------------------------------------------------------------------------------
47286    -- 4219869 Business Flow
47287    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47288    ------------------------------------------------------------------------------------
47289    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47290 
47291    ----------------------------------------------------------------------------------
47292    -- 4219869 Business Flow
47293    -- Update journal entry status -- Need to generate this within IF <condition>
47294    ----------------------------------------------------------------------------------
47295    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47296          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47297          ,p_balance_type_code => l_balance_type_code
47298          );
47299 
47300    -------------------------------------------------------------------------------------------
47301    -- 4262811 - Generate the Accrual Reversal lines
47302    -------------------------------------------------------------------------------------------
47303    BEGIN
47304       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47305                               (g_array_event(p_event_id).array_value_num('header_index'));
47306       IF l_acc_rev_flag IS NULL THEN
47307          l_acc_rev_flag := 'N';
47308       END IF;
47309    EXCEPTION
47310       WHEN OTHERS THEN
47311          l_acc_rev_flag := 'N';
47312    END;
47313    --
47314    IF (l_acc_rev_flag = 'Y') THEN
47315 
47316        -- 4645092  ------------------------------------------------------------------------------
47317        -- To allow MPA report to determine if it should generate report process
47318        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47319        ------------------------------------------------------------------------------------------
47320 
47321        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47322        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47323    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
47324    -- call ADRs
47325    -- Bug 4922099
47326    --
47327    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47328         (NVL(l_actual_upg_option, 'N') = 'O') OR
47329         (NVL(l_enc_upg_option, 'N') = 'O')
47330       )
47331    THEN
47332    NULL;
47333    --
47334    --
47335    
47336    --
47337    --
47338    END IF;
47339 
47340        --
47341        -- Update the line information that should be overwritten
47342        --
47343        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47344                                          p_header_num   => 1);
47345        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
47346 
47347        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47348 
47349        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
47350           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47351        END IF;
47352 
47353       --
47354       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47355       --
47356       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47357           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
47358       ELSE
47359           ---------------------------------------------------------------------------------------------------
47360           -- 4262811a Switch Sign
47361           ---------------------------------------------------------------------------------------------------
47362           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
47363           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47364                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47365           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47366                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47367           -- 5132302
47368           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47369                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47370 
47371       END IF;
47372 
47373       -- 4955764
47374       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47375       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47376 
47377 
47378       XLA_AE_LINES_PKG.ValidateCurrentLine;
47379       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47380 
47381       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47385    END IF;
47382                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47383                ,p_balance_type_code => l_balance_type_code);
47384 
47386 
47387    -----------------------------------------------------------------------------------------
47388    -- 4262811 Multiperiod Accounting
47389    -----------------------------------------------------------------------------------------
47390      -- No MPA option is assigned.
47391 
47392 
47393 END IF;
47394 END IF;
47395 --
47396 
47397 --
47398 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47399    trace
47400       (p_msg      => 'END of AcctLineType_103'
47401       ,p_level    => C_LEVEL_PROCEDURE
47402       ,p_module   => l_log_module);
47403 END IF;
47404 --
47405 EXCEPTION
47406   WHEN xla_exceptions_pkg.application_exception THEN
47407       RAISE;
47408   WHEN OTHERS THEN
47409        xla_exceptions_pkg.raise_message
47410            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_103');
47411 END AcctLineType_103;
47412 --
47413 
47414 ---------------------------------------
47415 --
47416 -- PRIVATE FUNCTION
47417 --         AcctLineType_104
47418 --
47419 ---------------------------------------
47420 PROCEDURE AcctLineType_104 (
47421   p_application_id        IN NUMBER
47422  ,p_event_id              IN NUMBER
47423  ,p_calculate_acctd_flag  IN VARCHAR2
47424  ,p_calculate_g_l_flag    IN VARCHAR2
47425  ,p_actual_flag           IN OUT VARCHAR2
47426  ,p_balance_type_code     OUT VARCHAR2
47427  ,p_gain_or_loss_ref      OUT VARCHAR2
47428  
47429 --Invoice Distribution Description
47430  , p_source_1            IN VARCHAR2
47431 --Invoice Distribution Ledger Amount
47432  , p_source_9            IN NUMBER
47433 --Invoice Distribution Account
47434  , p_source_18            IN NUMBER
47435 --Invoice Distribution Type
47436  , p_source_21            IN VARCHAR2
47437  , p_source_21_meaning    IN VARCHAR2
47438 --Accounting Reversal Indicator
47439  , p_source_41            IN VARCHAR2
47440 --Distribution Link Type
47441  , p_source_43            IN VARCHAR2
47442 --Allocation to Main Distribution Identifier
47443  , p_source_45            IN NUMBER
47444 --Invoice Identifier
47445  , p_source_46            IN NUMBER
47446 --Invoice Distribution Identifier
47447  , p_source_52            IN NUMBER
47448 --Payables Encumbrance Upgrade Credit Account
47449  , p_source_53            IN NUMBER
47450 --Payables Encumbrance Upgrade Credit Amount
47451  , p_source_54            IN NUMBER
47452 --Invoice Currency Code
47453  , p_source_55            IN VARCHAR2
47454 --Payables Encumbrance Upgrade Credit Base Amount
47455  , p_source_56            IN NUMBER
47456 --Payables Encumbrance Upgrade Debit Account
47457  , p_source_57            IN NUMBER
47458 --Payables Encumbrance Upgrade Debit Amount
47459  , p_source_58            IN NUMBER
47460 --Payables Encumbrance Upgrade Debit Base Amount
47461  , p_source_59            IN NUMBER
47462 --Payables Encumbrance Upgrade Option
47463  , p_source_60            IN VARCHAR2
47464 --Invoice Distribution Amount
47465  , p_source_61            IN NUMBER
47466 --Deferred Accounting End Date
47467  , p_source_65            IN DATE
47468 --Deferred Accounting Option
47469  , p_source_66            IN VARCHAR2
47470 --Deferred Accounting Start Date
47471  , p_source_67            IN DATE
47472 --Override Accounted Amount Indicator
47473  , p_source_68            IN VARCHAR2
47474  , p_source_68_meaning    IN VARCHAR2
47475 --Invoice Supplier Identifier
47476  , p_source_69            IN NUMBER
47477 --Invoice Supplier Site Identifier
47478  , p_source_70            IN NUMBER
47479 --Third Party Type
47480  , p_source_71            IN VARCHAR2
47481 --Parent Reversal Identifier
47482  , p_source_72            IN NUMBER
47483 --Invoice Distribution Statistical Amount
47484  , p_source_73            IN NUMBER
47485 --Invoice Distribution Tax Line Identifier
47486  , p_source_74            IN NUMBER
47487 --Invoice Distribution Tax Distribution Identifier from Tax
47488  , p_source_75            IN NUMBER
47489 --Invoice Distribution Summary Tax Line Identifier
47490  , p_source_76            IN NUMBER
47491 --Payables Upgrade Credit Encumbrance Type Identifier
47492  , p_source_77            IN NUMBER
47493 --Payables Upgrade Debit Encumbrance Type Identifier
47494  , p_source_78            IN NUMBER
47495 --Business Flow Accounts Payable Application Identifier
47496  , p_source_79            IN NUMBER
47497 --Business Flow Invoice Distribution Type
47498  , p_source_80            IN VARCHAR2
47499 --Business Flow Invoice Entity Code
47500  , p_source_81            IN VARCHAR2
47501 --Business Flow Invoice Distribution Identifier
47502  , p_source_82            IN NUMBER
47503 --Business Flow Invoice Identifier
47504  , p_source_83            IN NUMBER
47505 --Deferred Recoverable Tax Option
47506  , p_source_130            IN VARCHAR2
47507  , p_source_130_meaning    IN VARCHAR2
47508 --Self-Assessed Tax Flag
47509  , p_source_135            IN VARCHAR2
47510  , p_source_135_meaning    IN VARCHAR2
47511 --Invoice Exchange Date
47512  , p_source_136            IN DATE
47513 --Invoice Exchange Rate
47514  , p_source_137            IN NUMBER
47515 --Invoice Exchange Rate Type
47516  , p_source_138            IN VARCHAR2
47517 )
47518 IS
47519 
47520 l_component_type              VARCHAR2(80);
47521 l_component_code              VARCHAR2(30);
47522 l_component_type_code         VARCHAR2(1);
47523 l_component_appl_id           INTEGER;
47524 l_amb_context_code            VARCHAR2(30);
47525 l_entity_code                 VARCHAR2(30);
47529 l_line_definition_code        VARCHAR2(30);
47526 l_event_class_code            VARCHAR2(30);
47527 l_ae_header_id                NUMBER;
47528 l_event_type_code             VARCHAR2(30);
47530 l_line_definition_owner_code  VARCHAR2(1);
47531 --
47532 -- adr variables
47533 l_segment                     VARCHAR2(30);
47534 l_ccid                        NUMBER;
47535 l_adr_transaction_coa_id      NUMBER;
47536 l_adr_accounting_coa_id       NUMBER;
47537 l_adr_flexfield_segment_code  VARCHAR2(30);
47538 l_adr_flex_value_set_id       NUMBER;
47539 l_adr_value_type_code         VARCHAR2(30);
47540 l_adr_value_combination_id    NUMBER;
47541 l_adr_value_segment_code      VARCHAR2(30);
47542 
47543 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
47544 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
47545 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
47546 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
47547 
47548 -- 4262811 Variables ------------------------------------------------------------------------------------------
47549 l_entered_amt_idx             NUMBER;
47550 l_accted_amt_idx              NUMBER;
47551 l_acc_rev_flag                VARCHAR2(1);
47552 l_accrual_line_num            NUMBER;
47553 l_tmp_amt                     NUMBER;
47554 l_acc_rev_natural_side_code   VARCHAR2(1);
47555 
47556 l_num_entries                 NUMBER;
47557 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
47558 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
47559 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
47560 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
47561 l_recog_line_1                NUMBER;
47562 l_recog_line_2                NUMBER;
47563 
47564 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
47565 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
47566 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
47567 
47568 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47569 
47570 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
47571 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
47572 
47573 ---------------------------------------------------------------------------------------------------------------
47574 
47575 
47576 --
47577 -- bulk performance
47578 --
47579 l_balance_type_code           VARCHAR2(1);
47580 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
47581 l_log_module                  VARCHAR2(240);
47582 
47583 --
47584 -- Upgrade strategy
47585 --
47586 l_actual_upg_option           VARCHAR2(1);
47587 l_enc_upg_option           VARCHAR2(1);
47588 
47589 --
47590 BEGIN
47591 --
47592 IF g_log_enabled THEN
47593       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_104';
47594 END IF;
47595 --
47596 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47597 
47598       trace
47599          (p_msg      => 'BEGIN of AcctLineType_104'
47600          ,p_level    => C_LEVEL_PROCEDURE
47601          ,p_module   => l_log_module);
47602 
47603 END IF;
47604 --
47605 l_component_type             := 'AMB_JLT';
47606 l_component_code             := 'AP_DEF_RTAX_INTERIM_PREPAYMENT';
47607 l_component_type_code        := 'S';
47608 l_component_appl_id          :=  200;
47609 l_amb_context_code           := 'DEFAULT';
47610 l_entity_code                := 'AP_INVOICES';
47611 l_event_class_code           := 'PREPAYMENTS';
47612 l_event_type_code            := 'PREPAYMENTS_ALL';
47613 l_line_definition_owner_code := 'S';
47614 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
47615 --
47616 l_balance_type_code          := 'A';
47617 l_segment                     := NULL;
47618 l_ccid                        := NULL;
47619 l_adr_transaction_coa_id      := NULL;
47620 l_adr_accounting_coa_id       := NULL;
47621 l_adr_flexfield_segment_code  := NULL;
47622 l_adr_flex_value_set_id       := NULL;
47623 l_adr_value_type_code         := NULL;
47624 l_adr_value_combination_id    := NULL;
47625 l_adr_value_segment_code      := NULL;
47626 
47627 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
47628 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
47629 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
47630 l_budgetary_control_flag     := 'N';
47631 
47632 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
47633 l_bflow_applied_to_amt       := NULL; -- 5132302
47634 l_entered_amt_idx            := NULL;          -- 4262811
47635 l_accted_amt_idx             := NULL;          -- 4262811
47636 l_acc_rev_flag               := NULL;          -- 4262811
47637 l_accrual_line_num           := NULL;          -- 4262811
47638 l_tmp_amt                    := NULL;          -- 4262811
47639 --
47640  
47641 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47642     l_balance_type_code <> 'B' THEN
47643 IF NVL(p_source_21,'
47644 ') =  'REC_TAX' AND 
47645 NVL(p_source_130,'
47646 ') =  'DEFERRED' AND 
47647 NVL(p_source_135,'
47648 ') <>  'Y'
47649  THEN 
47650 
47651    --
47652    XLA_AE_LINES_PKG.SetNewLine;
47653 
47654    p_balance_type_code          := l_balance_type_code;
47655    -- set the flag so later we will know whether the gain loss line needs to be created
47656    
47657    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47658      p_actual_flag :='A';
47659    END IF;
47660 
47661    --
47665                                       p_header_num   => 0); -- 4262811
47662    -- bulk performance
47663    --
47664    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47666    --
47667    -- set accounting line options
47668    --
47669    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47670            p_natural_side_code          => 'D'
47671          , p_gain_or_loss_flag          => 'N'
47672          , p_gl_transfer_mode_code      => 'S'
47673          , p_acct_entry_type_code       => 'A'
47674          , p_switch_side_flag           => 'Y'
47675          , p_merge_duplicate_code       => 'A'
47676          );
47677    --
47678    l_acc_rev_natural_side_code := 'C';  -- 4262811
47679    -- 
47680    --
47681    -- set accounting line type info
47682    --
47683    xla_ae_lines_pkg.SetAcctLineType
47684       (p_component_type             => l_component_type
47685       ,p_event_type_code            => l_event_type_code
47686       ,p_line_definition_owner_code => l_line_definition_owner_code
47687       ,p_line_definition_code       => l_line_definition_code
47688       ,p_accounting_line_code       => l_component_code
47689       ,p_accounting_line_type_code  => l_component_type_code
47690       ,p_accounting_line_appl_id    => l_component_appl_id
47691       ,p_amb_context_code           => l_amb_context_code
47692       ,p_entity_code                => l_entity_code
47693       ,p_event_class_code           => l_event_class_code);
47694    --
47695    -- set accounting class
47696    --
47697    xla_ae_lines_pkg.SetAcctClass(
47698            p_accounting_class_code  => 'DEF_REC_TAX'
47699          , p_ae_header_id           => l_ae_header_id
47700          );
47701 
47702    --
47703    -- set rounding class
47704    --
47705    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47706                       'DEF_REC_TAX';
47707 
47708    --
47709    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47710    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47711    --
47712    -- bulk performance
47713    --
47714    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47715 
47716    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47717       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47718 
47719    -- 4955764
47720    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47721       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47722 
47723    -- 4458381 Public Sector Enh
47724    
47725    --
47726    -- set accounting attributes for the line type
47727    --
47728    l_entered_amt_idx := 23;
47729    l_accted_amt_idx  := 28;
47730    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
47731    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47732    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
47733    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
47734    l_rec_acct_attrs.array_num_value(2)  := 
47735 xla_ae_sources_pkg.GetSystemSourceNum(
47736    p_source_code           => 'XLA_EVENT_APPL_ID'
47737  , p_source_type_code      => 'Y'
47738  , p_source_application_id =>  602
47739 );
47740    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
47741    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
47742    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
47743    l_rec_acct_attrs.array_char_value(4)  := 
47744 xla_ae_sources_pkg.GetSystemSourceChar(
47745    p_source_code           => 'XLA_ENTITY_CODE'
47746  , p_source_type_code      => 'Y'
47747  , p_source_application_id =>  602
47748 );
47749    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
47750    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
47751    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
47752    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
47753    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
47754    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
47755    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47756    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
47757    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
47758    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
47759    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
47760    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
47761    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47762    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
47763    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
47764    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
47765    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
47766    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
47767    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
47768    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
47769    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
47770    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
47771    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
47772    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
47773    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
47774    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
47775    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
47779    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
47776    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
47777    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
47778    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
47780    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
47781    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
47782    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
47783    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
47784    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
47785    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
47786    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
47787    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
47788    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
47789    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
47790    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
47791    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
47792    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
47793    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
47794    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
47795    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
47796    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
47797    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
47798    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
47799    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
47800    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
47801    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
47802    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
47803    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
47804    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
47805    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
47806    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
47807    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
47808    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
47809    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
47810    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
47811    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
47812    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
47813    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
47814    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
47815    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
47816    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
47817    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
47818    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
47819    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
47820    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
47821    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
47822    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
47823    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
47824    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
47825    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
47826    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
47827 
47828    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47829    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47830 
47831    ---------------------------------------------------------------------------------------------------------------
47832    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47833    ---------------------------------------------------------------------------------------------------------------
47834    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47835 
47836    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47837    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47838 
47839    IF xla_accounting_cache_pkg.GetValueChar
47840          (p_source_code         => 'LEDGER_CATEGORY_CODE'
47841          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47842    AND l_bflow_method_code = 'PRIOR_ENTRY'
47843 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47844    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47845          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47846        )
47847    THEN
47848          xla_ae_lines_pkg.BflowUpgEntry
47849            (p_business_method_code    => l_bflow_method_code
47850            ,p_business_class_code     => l_bflow_class_code
47851            ,p_balance_type            => l_balance_type_code);
47852    ELSE
47853       NULL;
47854 -- No business flow processing for business flow method of NONE.
47855    END IF;
47856 
47857    --
47858    -- call analytical criteria
47859    --
47860    
47861    --
47862    -- call description
47863    --
47864    
47865 xla_ae_lines_pkg.SetLineDescription(
47866    p_ae_header_id => l_ae_header_id
47867   ,p_description  => Description_2 (
47868      p_application_id         => p_application_id
47869    , p_ae_header_id           => l_ae_header_id 
47870 , p_source_1 => p_source_1
47871    )
47872 );
47873 
47874 
47875    --
47876    -- call ADRs
47877    -- Bug 4922099
47878    --
47879    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47880         (NVL(l_actual_upg_option, 'N') = 'O') OR
47881         (NVL(l_enc_upg_option, 'N') = 'O')
47882       )
47883    THEN
47887    
47884    NULL;
47885    --
47886    --
47888   l_ccid := AcctDerRule_32(
47889            p_application_id           => p_application_id
47890          , p_ae_header_id             => l_ae_header_id 
47891 , p_source_18 => p_source_18
47892          , x_transaction_coa_id       => l_adr_transaction_coa_id
47893          , x_accounting_coa_id        => l_adr_accounting_coa_id
47894          , x_value_type_code          => l_adr_value_type_code
47895          , p_side                     => 'NA'
47896    );
47897 
47898    xla_ae_lines_pkg.set_ccid(
47899     p_code_combination_id          => l_ccid
47900   , p_value_type_code              => l_adr_value_type_code
47901   , p_transaction_coa_id           => l_adr_transaction_coa_id
47902   , p_accounting_coa_id            => l_adr_accounting_coa_id
47903   , p_adr_code                     => 'AP_INVOICE_DIST'
47904   , p_adr_type_code                => 'S'
47905   , p_component_type               => l_component_type
47906   , p_component_code               => l_component_code
47907   , p_component_type_code          => l_component_type_code
47908   , p_component_appl_id            => l_component_appl_id
47909   , p_amb_context_code             => l_amb_context_code
47910   , p_side                         => 'NA'
47911   );
47912 
47913 
47914    --
47915    --
47916    END IF;
47917    --
47918    -- Bug 4922099
47919    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47920           (NVL(l_enc_upg_option, 'N') = 'O')
47921         ) AND
47922         (l_bflow_method_code = 'PRIOR_ENTRY')
47923       )
47924    THEN
47925       IF
47926       --
47927       1 = 2
47928       --
47929       THEN
47930       xla_accounting_err_pkg.build_message
47931                                     (p_appli_s_name            => 'XLA'
47932                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47933                                     ,p_token_1                 => 'LINE_NUMBER'
47934                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
47935                                     ,p_token_2                 => 'LINE_TYPE_NAME'
47936                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
47937                                                                              l_component_type
47938                                                                             ,l_component_code
47939                                                                             ,l_component_type_code
47940                                                                             ,l_component_appl_id
47941                                                                             ,l_amb_context_code
47942                                                                             ,l_entity_code
47943                                                                             ,l_event_class_code
47944                                                                            )
47945                                     ,p_token_3                 => 'OWNER'
47946                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
47947                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
47948                                                                           ,p_lookup_code    => l_component_type_code
47949                                                                          )
47950                                     ,p_token_4                 => 'PRODUCT_NAME'
47951                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47952                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47953                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47954                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47955                                     ,p_ae_header_id            =>  NULL
47956                                        );
47957 
47958         IF (C_LEVEL_ERROR>= g_log_level) THEN
47959                  trace
47960                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47961                       ,p_level    => C_LEVEL_ERROR
47962                       ,p_module   => l_log_module);
47963         END IF;
47964       END IF;
47965    END IF;
47966    --
47967    --
47968    ------------------------------------------------------------------------------------------------
47969    -- 4219869 Business Flow
47970    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47971    -- Prior Entry.  Currently, the following code is always generated.
47972    ------------------------------------------------------------------------------------------------
47973    XLA_AE_LINES_PKG.ValidateCurrentLine;
47974 
47975    ------------------------------------------------------------------------------------
47976    -- 4219869 Business Flow
47977    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47978    ------------------------------------------------------------------------------------
47979    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47980 
47981    ----------------------------------------------------------------------------------
47982    -- 4219869 Business Flow
47983    -- Update journal entry status -- Need to generate this within IF <condition>
47984    ----------------------------------------------------------------------------------
47985    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47986          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47987          ,p_balance_type_code => l_balance_type_code
47988          );
47989 
47993    BEGIN
47990    -------------------------------------------------------------------------------------------
47991    -- 4262811 - Generate the Accrual Reversal lines
47992    -------------------------------------------------------------------------------------------
47994       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47995                               (g_array_event(p_event_id).array_value_num('header_index'));
47996       IF l_acc_rev_flag IS NULL THEN
47997          l_acc_rev_flag := 'N';
47998       END IF;
47999    EXCEPTION
48000       WHEN OTHERS THEN
48001          l_acc_rev_flag := 'N';
48002    END;
48003    --
48004    IF (l_acc_rev_flag = 'Y') THEN
48005 
48006        -- 4645092  ------------------------------------------------------------------------------
48007        -- To allow MPA report to determine if it should generate report process
48008        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48009        ------------------------------------------------------------------------------------------
48010 
48011        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48012        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48013    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
48014    -- call ADRs
48015    -- Bug 4922099
48016    --
48017    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48018         (NVL(l_actual_upg_option, 'N') = 'O') OR
48019         (NVL(l_enc_upg_option, 'N') = 'O')
48020       )
48021    THEN
48022    NULL;
48023    --
48024    --
48025    
48026   l_ccid := AcctDerRule_32(
48027            p_application_id           => p_application_id
48028          , p_ae_header_id             => l_ae_header_id 
48029 , p_source_18 => p_source_18
48030          , x_transaction_coa_id       => l_adr_transaction_coa_id
48031          , x_accounting_coa_id        => l_adr_accounting_coa_id
48032          , x_value_type_code          => l_adr_value_type_code
48033          , p_side                     => 'NA'
48034    );
48035 
48036    xla_ae_lines_pkg.set_ccid(
48037     p_code_combination_id          => l_ccid
48038   , p_value_type_code              => l_adr_value_type_code
48039   , p_transaction_coa_id           => l_adr_transaction_coa_id
48040   , p_accounting_coa_id            => l_adr_accounting_coa_id
48041   , p_adr_code                     => 'AP_INVOICE_DIST'
48042   , p_adr_type_code                => 'S'
48043   , p_component_type               => l_component_type
48044   , p_component_code               => l_component_code
48045   , p_component_type_code          => l_component_type_code
48046   , p_component_appl_id            => l_component_appl_id
48047   , p_amb_context_code             => l_amb_context_code
48048   , p_side                         => 'NA'
48049   );
48050 
48051 
48052    --
48053    --
48054    END IF;
48055 
48056        --
48057        -- Update the line information that should be overwritten
48058        --
48059        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48060                                          p_header_num   => 1);
48061        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
48062 
48063        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48064 
48065        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
48066           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48067        END IF;
48068 
48069       --
48070       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48071       --
48072       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48073           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
48074       ELSE
48075           ---------------------------------------------------------------------------------------------------
48076           -- 4262811a Switch Sign
48077           ---------------------------------------------------------------------------------------------------
48078           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
48079           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48080                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48081           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48082                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48083           -- 5132302
48084           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48085                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48086 
48087       END IF;
48088 
48089       -- 4955764
48090       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48091       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48092 
48093 
48094       XLA_AE_LINES_PKG.ValidateCurrentLine;
48095       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48096 
48097       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48098                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48099                ,p_balance_type_code => l_balance_type_code);
48100 
48101    END IF;
48102 
48103    -----------------------------------------------------------------------------------------
48104    -- 4262811 Multiperiod Accounting
48108 
48105    -----------------------------------------------------------------------------------------
48106      -- No MPA option is assigned.
48107 
48109 END IF;
48110 END IF;
48111 --
48112 
48113 --
48114 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48115    trace
48116       (p_msg      => 'END of AcctLineType_104'
48117       ,p_level    => C_LEVEL_PROCEDURE
48118       ,p_module   => l_log_module);
48119 END IF;
48120 --
48121 EXCEPTION
48122   WHEN xla_exceptions_pkg.application_exception THEN
48123       RAISE;
48124   WHEN OTHERS THEN
48125        xla_exceptions_pkg.raise_message
48126            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_104');
48127 END AcctLineType_104;
48128 --
48129 
48130 ---------------------------------------
48131 --
48132 -- PRIVATE FUNCTION
48133 --         AcctLineType_105
48134 --
48135 ---------------------------------------
48136 PROCEDURE AcctLineType_105 (
48137   p_application_id        IN NUMBER
48138  ,p_event_id              IN NUMBER
48139  ,p_calculate_acctd_flag  IN VARCHAR2
48140  ,p_calculate_g_l_flag    IN VARCHAR2
48141  ,p_actual_flag           IN OUT VARCHAR2
48142  ,p_balance_type_code     OUT VARCHAR2
48143  ,p_gain_or_loss_ref      OUT VARCHAR2
48144  
48145 --Invoice Distribution Type
48146  , p_source_21            IN VARCHAR2
48147  , p_source_21_meaning    IN VARCHAR2
48148 --Recoverable Tax Account
48149  , p_source_40            IN NUMBER
48150 --Accounting Reversal Indicator
48151  , p_source_41            IN VARCHAR2
48152 --Distribution Link Type
48153  , p_source_43            IN VARCHAR2
48154 --Override Accounted Amount Indicator
48155  , p_source_68            IN VARCHAR2
48156  , p_source_68_meaning    IN VARCHAR2
48157 --Third Party Type
48158  , p_source_71            IN VARCHAR2
48159 --Business Flow Accounts Payable Application Identifier
48160  , p_source_79            IN NUMBER
48161 --When to Account for Payment Option
48162  , p_source_89            IN VARCHAR2
48163 --Payment Distribution Type
48164  , p_source_90            IN VARCHAR2
48165  , p_source_90_meaning    IN VARCHAR2
48166 --Payment Distribution Amount
48167  , p_source_91            IN NUMBER
48168 --Business Flow Payment Distribution Type
48169  , p_source_92            IN VARCHAR2
48170 --Business Flow Payment Entity Code
48171  , p_source_93            IN VARCHAR2
48172 --Business Flow Payment Distribution Identifier
48173  , p_source_94            IN NUMBER
48174 --Business Flow Payment Identifier
48175  , p_source_95            IN NUMBER
48176 --Payment Distribution Identifier
48177  , p_source_96            IN NUMBER
48178 --Payment Supplier Identifier
48179  , p_source_102            IN NUMBER
48180 --Payment Supplier Site Identifier
48181  , p_source_103            IN NUMBER
48182 --Payment Distribution Reversed Identifier
48183  , p_source_104            IN NUMBER
48184 --Payment Currency Code
48185  , p_source_106            IN VARCHAR2
48186 --Payment Maturity Date
48187  , p_source_107            IN DATE
48188 --Payment Exchange Date
48189  , p_source_110            IN DATE
48190 --Payment Exchange Rate
48191  , p_source_111            IN NUMBER
48192 --Payment Exchange Rate Type
48193  , p_source_112            IN VARCHAR2
48194 --Payment Distribution (Matured Rate) Ledger Amount
48195  , p_source_114            IN NUMBER
48196 --Deferred Recoverable Tax Option
48197  , p_source_130            IN VARCHAR2
48198  , p_source_130_meaning    IN VARCHAR2
48199 )
48200 IS
48201 
48202 l_component_type              VARCHAR2(80);
48203 l_component_code              VARCHAR2(30);
48204 l_component_type_code         VARCHAR2(1);
48205 l_component_appl_id           INTEGER;
48206 l_amb_context_code            VARCHAR2(30);
48207 l_entity_code                 VARCHAR2(30);
48208 l_event_class_code            VARCHAR2(30);
48209 l_ae_header_id                NUMBER;
48210 l_event_type_code             VARCHAR2(30);
48211 l_line_definition_code        VARCHAR2(30);
48212 l_line_definition_owner_code  VARCHAR2(1);
48213 --
48214 -- adr variables
48215 l_segment                     VARCHAR2(30);
48216 l_ccid                        NUMBER;
48217 l_adr_transaction_coa_id      NUMBER;
48218 l_adr_accounting_coa_id       NUMBER;
48219 l_adr_flexfield_segment_code  VARCHAR2(30);
48220 l_adr_flex_value_set_id       NUMBER;
48221 l_adr_value_type_code         VARCHAR2(30);
48222 l_adr_value_combination_id    NUMBER;
48223 l_adr_value_segment_code      VARCHAR2(30);
48224 
48225 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
48226 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
48227 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
48228 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
48229 
48230 -- 4262811 Variables ------------------------------------------------------------------------------------------
48231 l_entered_amt_idx             NUMBER;
48232 l_accted_amt_idx              NUMBER;
48233 l_acc_rev_flag                VARCHAR2(1);
48234 l_accrual_line_num            NUMBER;
48235 l_tmp_amt                     NUMBER;
48236 l_acc_rev_natural_side_code   VARCHAR2(1);
48237 
48238 l_num_entries                 NUMBER;
48239 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
48240 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
48241 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
48242 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
48243 l_recog_line_1                NUMBER;
48244 l_recog_line_2                NUMBER;
48245 
48249 
48246 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
48247 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
48248 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
48250 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48251 
48252 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
48253 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
48254 
48255 ---------------------------------------------------------------------------------------------------------------
48256 
48257 
48258 --
48259 -- bulk performance
48260 --
48261 l_balance_type_code           VARCHAR2(1);
48262 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
48263 l_log_module                  VARCHAR2(240);
48264 
48265 --
48266 -- Upgrade strategy
48267 --
48268 l_actual_upg_option           VARCHAR2(1);
48269 l_enc_upg_option           VARCHAR2(1);
48270 
48271 --
48272 BEGIN
48273 --
48274 IF g_log_enabled THEN
48275       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_105';
48276 END IF;
48277 --
48278 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48279 
48280       trace
48281          (p_msg      => 'BEGIN of AcctLineType_105'
48282          ,p_level    => C_LEVEL_PROCEDURE
48283          ,p_module   => l_log_module);
48284 
48285 END IF;
48286 --
48287 l_component_type             := 'AMB_JLT';
48288 l_component_code             := 'AP_DEF_RTAX_MAT';
48289 l_component_type_code        := 'S';
48290 l_component_appl_id          :=  200;
48291 l_amb_context_code           := 'DEFAULT';
48292 l_entity_code                := 'AP_PAYMENTS';
48293 l_event_class_code           := 'FUTURE DATED PAYMENTS';
48294 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
48295 l_line_definition_owner_code := 'S';
48296 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
48297 --
48298 l_balance_type_code          := 'A';
48299 l_segment                     := NULL;
48300 l_ccid                        := NULL;
48301 l_adr_transaction_coa_id      := NULL;
48302 l_adr_accounting_coa_id       := NULL;
48303 l_adr_flexfield_segment_code  := NULL;
48304 l_adr_flex_value_set_id       := NULL;
48305 l_adr_value_type_code         := NULL;
48306 l_adr_value_combination_id    := NULL;
48307 l_adr_value_segment_code      := NULL;
48308 
48309 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
48310 l_bflow_class_code           := '';    -- 4219869 Business Flow
48311 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
48312 l_budgetary_control_flag     := 'N';
48313 
48314 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
48315 l_bflow_applied_to_amt       := NULL; -- 5132302
48316 l_entered_amt_idx            := NULL;          -- 4262811
48317 l_accted_amt_idx             := NULL;          -- 4262811
48318 l_acc_rev_flag               := NULL;          -- 4262811
48319 l_accrual_line_num           := NULL;          -- 4262811
48320 l_tmp_amt                    := NULL;          -- 4262811
48321 --
48322  
48323 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48324     l_balance_type_code <> 'B' THEN
48325 IF NVL(p_source_89,'
48326 ') <>  'CLEAR_CLEAR' AND 
48327 NVL(p_source_21,'
48328 ') =  'REC_TAX' AND 
48329 p_source_107 IS NOT NULL AND 
48330 NVL(p_source_130,'
48331 ') =  'DEFERRED' AND 
48332 (NVL(p_source_90,'
48333 ') =  'DISCOUNT' OR 
48334 NVL(p_source_90,'
48335 ') =  'CASH')
48336  THEN 
48337 
48338    --
48339    XLA_AE_LINES_PKG.SetNewLine;
48340 
48341    p_balance_type_code          := l_balance_type_code;
48342    -- set the flag so later we will know whether the gain loss line needs to be created
48343    
48344    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48345      p_actual_flag :='A';
48346    END IF;
48347 
48348    --
48349    -- bulk performance
48350    --
48351    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48352                                       p_header_num   => 0); -- 4262811
48353    --
48354    -- set accounting line options
48355    --
48356    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48357            p_natural_side_code          => 'D'
48358          , p_gain_or_loss_flag          => 'N'
48359          , p_gl_transfer_mode_code      => 'S'
48360          , p_acct_entry_type_code       => 'A'
48361          , p_switch_side_flag           => 'Y'
48362          , p_merge_duplicate_code       => 'A'
48363          );
48364    --
48365    l_acc_rev_natural_side_code := 'C';  -- 4262811
48366    -- 
48367    --
48368    -- set accounting line type info
48369    --
48370    xla_ae_lines_pkg.SetAcctLineType
48371       (p_component_type             => l_component_type
48372       ,p_event_type_code            => l_event_type_code
48373       ,p_line_definition_owner_code => l_line_definition_owner_code
48374       ,p_line_definition_code       => l_line_definition_code
48375       ,p_accounting_line_code       => l_component_code
48376       ,p_accounting_line_type_code  => l_component_type_code
48377       ,p_accounting_line_appl_id    => l_component_appl_id
48378       ,p_amb_context_code           => l_amb_context_code
48379       ,p_entity_code                => l_entity_code
48380       ,p_event_class_code           => l_event_class_code);
48381    --
48382    -- set accounting class
48386          , p_ae_header_id           => l_ae_header_id
48383    --
48384    xla_ae_lines_pkg.SetAcctClass(
48385            p_accounting_class_code  => 'DEF_REC_TAX'
48387          );
48388 
48389    --
48390    -- set rounding class
48391    --
48392    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48393                       'DEF_REC_TAX';
48394 
48395    --
48396    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48397    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48398    --
48399    -- bulk performance
48400    --
48401    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48402 
48403    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48404       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48405 
48406    -- 4955764
48407    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48408       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48409 
48410    -- 4458381 Public Sector Enh
48411    
48412    --
48413    -- set accounting attributes for the line type
48414    --
48415    l_entered_amt_idx := 9;
48416    l_accted_amt_idx  := 14;
48417    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
48418    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48419    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
48420    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
48421    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
48422    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48423    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
48424    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
48425    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
48426    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
48427    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
48428    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48429    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
48430    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
48431    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
48432    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
48433    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
48434    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
48435    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
48436    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
48437    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
48438    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
48439    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
48440    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
48441    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
48442    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
48443    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
48444    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
48445    l_rec_acct_attrs.array_num_value(14)  := p_source_114;
48446    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
48447    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
48448    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
48449    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
48450    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
48451    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
48452    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
48453    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
48454    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
48455    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
48456    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
48457    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
48458 
48459    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48460    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48461 
48462    ---------------------------------------------------------------------------------------------------------------
48463    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48464    ---------------------------------------------------------------------------------------------------------------
48465    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48466 
48467    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48468    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48469 
48470    IF xla_accounting_cache_pkg.GetValueChar
48471          (p_source_code         => 'LEDGER_CATEGORY_CODE'
48472          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48473    AND l_bflow_method_code = 'PRIOR_ENTRY'
48474 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48475    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48476          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48477        )
48478    THEN
48479          xla_ae_lines_pkg.BflowUpgEntry
48480            (p_business_method_code    => l_bflow_method_code
48481            ,p_business_class_code     => l_bflow_class_code
48485 -- No business flow processing for business flow method of NONE.
48482            ,p_balance_type            => l_balance_type_code);
48483    ELSE
48484       NULL;
48486    END IF;
48487 
48488    --
48489    -- call analytical criteria
48490    --
48491    
48492    --
48493    -- call description
48494    --
48495    -- No description or it is inherited.
48496    --
48497    -- call ADRs
48498    -- Bug 4922099
48499    --
48500    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48501         (NVL(l_actual_upg_option, 'N') = 'O') OR
48502         (NVL(l_enc_upg_option, 'N') = 'O')
48503       )
48504    THEN
48505    NULL;
48506    --
48507    --
48508    
48509   l_ccid := AcctDerRule_43(
48510            p_application_id           => p_application_id
48511          , p_ae_header_id             => l_ae_header_id 
48512 , p_source_40 => p_source_40
48513          , x_transaction_coa_id       => l_adr_transaction_coa_id
48514          , x_accounting_coa_id        => l_adr_accounting_coa_id
48515          , x_value_type_code          => l_adr_value_type_code
48516          , p_side                     => 'NA'
48517    );
48518 
48519    xla_ae_lines_pkg.set_ccid(
48520     p_code_combination_id          => l_ccid
48521   , p_value_type_code              => l_adr_value_type_code
48522   , p_transaction_coa_id           => l_adr_transaction_coa_id
48523   , p_accounting_coa_id            => l_adr_accounting_coa_id
48524   , p_adr_code                     => 'AP_TAX_ACCOUNT'
48525   , p_adr_type_code                => 'S'
48526   , p_component_type               => l_component_type
48527   , p_component_code               => l_component_code
48528   , p_component_type_code          => l_component_type_code
48529   , p_component_appl_id            => l_component_appl_id
48530   , p_amb_context_code             => l_amb_context_code
48531   , p_side                         => 'NA'
48532   );
48533 
48534 
48535    --
48536    --
48537    END IF;
48538    --
48539    -- Bug 4922099
48540    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48541           (NVL(l_enc_upg_option, 'N') = 'O')
48542         ) AND
48543         (l_bflow_method_code = 'PRIOR_ENTRY')
48544       )
48545    THEN
48546       IF
48547       --
48548       1 = 2
48549       --
48550       THEN
48551       xla_accounting_err_pkg.build_message
48552                                     (p_appli_s_name            => 'XLA'
48553                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48554                                     ,p_token_1                 => 'LINE_NUMBER'
48555                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
48556                                     ,p_token_2                 => 'LINE_TYPE_NAME'
48557                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
48558                                                                              l_component_type
48559                                                                             ,l_component_code
48560                                                                             ,l_component_type_code
48561                                                                             ,l_component_appl_id
48562                                                                             ,l_amb_context_code
48563                                                                             ,l_entity_code
48564                                                                             ,l_event_class_code
48565                                                                            )
48566                                     ,p_token_3                 => 'OWNER'
48567                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
48568                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
48569                                                                           ,p_lookup_code    => l_component_type_code
48570                                                                          )
48571                                     ,p_token_4                 => 'PRODUCT_NAME'
48575                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48572                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48573                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48574                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48576                                     ,p_ae_header_id            =>  NULL
48577                                        );
48578 
48579         IF (C_LEVEL_ERROR>= g_log_level) THEN
48580                  trace
48581                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48582                       ,p_level    => C_LEVEL_ERROR
48583                       ,p_module   => l_log_module);
48584         END IF;
48585       END IF;
48586    END IF;
48587    --
48588    --
48589    ------------------------------------------------------------------------------------------------
48590    -- 4219869 Business Flow
48591    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48592    -- Prior Entry.  Currently, the following code is always generated.
48593    ------------------------------------------------------------------------------------------------
48594    XLA_AE_LINES_PKG.ValidateCurrentLine;
48595 
48596    ------------------------------------------------------------------------------------
48597    -- 4219869 Business Flow
48598    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48599    ------------------------------------------------------------------------------------
48600    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48601 
48602    ----------------------------------------------------------------------------------
48603    -- 4219869 Business Flow
48604    -- Update journal entry status -- Need to generate this within IF <condition>
48605    ----------------------------------------------------------------------------------
48606    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48607          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48608          ,p_balance_type_code => l_balance_type_code
48609          );
48610 
48611    -------------------------------------------------------------------------------------------
48612    -- 4262811 - Generate the Accrual Reversal lines
48613    -------------------------------------------------------------------------------------------
48614    BEGIN
48615       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48616                               (g_array_event(p_event_id).array_value_num('header_index'));
48617       IF l_acc_rev_flag IS NULL THEN
48618          l_acc_rev_flag := 'N';
48619       END IF;
48620    EXCEPTION
48621       WHEN OTHERS THEN
48622          l_acc_rev_flag := 'N';
48623    END;
48624    --
48625    IF (l_acc_rev_flag = 'Y') THEN
48626 
48627        -- 4645092  ------------------------------------------------------------------------------
48628        -- To allow MPA report to determine if it should generate report process
48629        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48630        ------------------------------------------------------------------------------------------
48631 
48632        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48633        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48634    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
48635    -- call ADRs
48636    -- Bug 4922099
48637    --
48638    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48639         (NVL(l_actual_upg_option, 'N') = 'O') OR
48640         (NVL(l_enc_upg_option, 'N') = 'O')
48641       )
48642    THEN
48643    NULL;
48644    --
48645    --
48646    
48647   l_ccid := AcctDerRule_43(
48648            p_application_id           => p_application_id
48649          , p_ae_header_id             => l_ae_header_id 
48650 , p_source_40 => p_source_40
48651          , x_transaction_coa_id       => l_adr_transaction_coa_id
48652          , x_accounting_coa_id        => l_adr_accounting_coa_id
48653          , x_value_type_code          => l_adr_value_type_code
48654          , p_side                     => 'NA'
48655    );
48656 
48657    xla_ae_lines_pkg.set_ccid(
48658     p_code_combination_id          => l_ccid
48659   , p_value_type_code              => l_adr_value_type_code
48660   , p_transaction_coa_id           => l_adr_transaction_coa_id
48661   , p_accounting_coa_id            => l_adr_accounting_coa_id
48662   , p_adr_code                     => 'AP_TAX_ACCOUNT'
48663   , p_adr_type_code                => 'S'
48664   , p_component_type               => l_component_type
48665   , p_component_code               => l_component_code
48666   , p_component_type_code          => l_component_type_code
48667   , p_component_appl_id            => l_component_appl_id
48668   , p_amb_context_code             => l_amb_context_code
48669   , p_side                         => 'NA'
48670   );
48671 
48672 
48673    --
48674    --
48675    END IF;
48676 
48677        --
48678        -- Update the line information that should be overwritten
48679        --
48680        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48681                                          p_header_num   => 1);
48682        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
48683 
48684        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48685 
48686        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
48690       --
48687           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48688        END IF;
48689 
48691       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48692       --
48693       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48694           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
48695       ELSE
48696           ---------------------------------------------------------------------------------------------------
48697           -- 4262811a Switch Sign
48698           ---------------------------------------------------------------------------------------------------
48699           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
48700           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48701                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48702           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48703                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48704           -- 5132302
48705           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48706                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48707 
48708       END IF;
48709 
48710       -- 4955764
48711       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48712       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48713 
48714 
48715       XLA_AE_LINES_PKG.ValidateCurrentLine;
48716       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48717 
48718       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48719                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48720                ,p_balance_type_code => l_balance_type_code);
48721 
48722    END IF;
48723 
48724    -----------------------------------------------------------------------------------------
48725    -- 4262811 Multiperiod Accounting
48726    -----------------------------------------------------------------------------------------
48727      -- No MPA option is assigned.
48728 
48729 
48730 END IF;
48731 END IF;
48732 --
48733 
48734 --
48735 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48736    trace
48737       (p_msg      => 'END of AcctLineType_105'
48738       ,p_level    => C_LEVEL_PROCEDURE
48739       ,p_module   => l_log_module);
48740 END IF;
48741 --
48742 EXCEPTION
48743   WHEN xla_exceptions_pkg.application_exception THEN
48744       RAISE;
48745   WHEN OTHERS THEN
48746        xla_exceptions_pkg.raise_message
48747            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_105');
48748 END AcctLineType_105;
48749 --
48750 
48751 ---------------------------------------
48752 --
48753 -- PRIVATE FUNCTION
48754 --         AcctLineType_106
48755 --
48756 ---------------------------------------
48757 PROCEDURE AcctLineType_106 (
48758   p_application_id        IN NUMBER
48759  ,p_event_id              IN NUMBER
48760  ,p_calculate_acctd_flag  IN VARCHAR2
48761  ,p_calculate_g_l_flag    IN VARCHAR2
48762  ,p_actual_flag           IN OUT VARCHAR2
48763  ,p_balance_type_code     OUT VARCHAR2
48764  ,p_gain_or_loss_ref      OUT VARCHAR2
48765  
48766 --Invoice Distribution Type
48767  , p_source_21            IN VARCHAR2
48768  , p_source_21_meaning    IN VARCHAR2
48769 --Recoverable Tax Account
48770  , p_source_40            IN NUMBER
48771 --Accounting Reversal Indicator
48772  , p_source_41            IN VARCHAR2
48773 --Distribution Link Type
48774  , p_source_43            IN VARCHAR2
48775 --Override Accounted Amount Indicator
48776  , p_source_68            IN VARCHAR2
48777  , p_source_68_meaning    IN VARCHAR2
48778 --Third Party Type
48779  , p_source_71            IN VARCHAR2
48780 --Invoice Distribution Tax Line Identifier
48781  , p_source_74            IN NUMBER
48782 --Invoice Distribution Tax Distribution Identifier from Tax
48783  , p_source_75            IN NUMBER
48784 --Invoice Distribution Summary Tax Line Identifier
48785  , p_source_76            IN NUMBER
48786 --Business Flow Accounts Payable Application Identifier
48787  , p_source_79            IN NUMBER
48788 --Business Flow Invoice Distribution Type
48789  , p_source_80            IN VARCHAR2
48790 --Business Flow Invoice Entity Code
48791  , p_source_81            IN VARCHAR2
48792 --Business Flow Invoice Distribution Identifier
48793  , p_source_82            IN NUMBER
48794 --Business Flow Invoice Identifier
48795  , p_source_83            IN NUMBER
48796 --When to Account for Payment Option
48797  , p_source_89            IN VARCHAR2
48798 --Payment Distribution Type
48799  , p_source_90            IN VARCHAR2
48800  , p_source_90_meaning    IN VARCHAR2
48801 --Payment Distribution Amount
48802  , p_source_91            IN NUMBER
48803 --Payment Distribution Identifier
48804  , p_source_96            IN NUMBER
48805 --Payment Supplier Identifier
48806  , p_source_102            IN NUMBER
48807 --Payment Supplier Site Identifier
48808  , p_source_103            IN NUMBER
48809 --Payment Distribution Reversed Identifier
48810  , p_source_104            IN NUMBER
48811 --Payment Currency Code
48812  , p_source_106            IN VARCHAR2
48813 --Payment Maturity Date
48814  , p_source_107            IN DATE
48818  , p_source_115            IN VARCHAR2
48815 --Payment Distribution (Invoice Rate) Ledger Amount
48816  , p_source_109            IN NUMBER
48817 --Payment Type
48819  , p_source_115_meaning    IN VARCHAR2
48820 --Payment Processing Type
48821  , p_source_116            IN VARCHAR2
48822 --Invoice Distribution Amount of the Payment Distribution
48823  , p_source_117            IN NUMBER
48824 --Deferred Recoverable Tax Option
48825  , p_source_130            IN VARCHAR2
48826  , p_source_130_meaning    IN VARCHAR2
48827 --AWT Related Distribution Type Lookup code
48828  , p_source_131            IN VARCHAR2
48829 --Invoice Exchange Date
48830  , p_source_136            IN DATE
48831 --Invoice Exchange Rate
48832  , p_source_137            IN NUMBER
48833 --Invoice Exchange Rate Type
48834  , p_source_138            IN VARCHAR2
48835 )
48836 IS
48837 
48838 l_component_type              VARCHAR2(80);
48839 l_component_code              VARCHAR2(30);
48840 l_component_type_code         VARCHAR2(1);
48841 l_component_appl_id           INTEGER;
48842 l_amb_context_code            VARCHAR2(30);
48843 l_entity_code                 VARCHAR2(30);
48844 l_event_class_code            VARCHAR2(30);
48845 l_ae_header_id                NUMBER;
48846 l_event_type_code             VARCHAR2(30);
48847 l_line_definition_code        VARCHAR2(30);
48848 l_line_definition_owner_code  VARCHAR2(1);
48849 --
48850 -- adr variables
48851 l_segment                     VARCHAR2(30);
48852 l_ccid                        NUMBER;
48853 l_adr_transaction_coa_id      NUMBER;
48854 l_adr_accounting_coa_id       NUMBER;
48855 l_adr_flexfield_segment_code  VARCHAR2(30);
48856 l_adr_flex_value_set_id       NUMBER;
48857 l_adr_value_type_code         VARCHAR2(30);
48858 l_adr_value_combination_id    NUMBER;
48859 l_adr_value_segment_code      VARCHAR2(30);
48860 
48861 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
48862 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
48863 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
48864 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
48865 
48866 -- 4262811 Variables ------------------------------------------------------------------------------------------
48867 l_entered_amt_idx             NUMBER;
48868 l_accted_amt_idx              NUMBER;
48869 l_acc_rev_flag                VARCHAR2(1);
48870 l_accrual_line_num            NUMBER;
48871 l_tmp_amt                     NUMBER;
48872 l_acc_rev_natural_side_code   VARCHAR2(1);
48873 
48874 l_num_entries                 NUMBER;
48875 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
48876 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
48877 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
48878 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
48879 l_recog_line_1                NUMBER;
48880 l_recog_line_2                NUMBER;
48881 
48882 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
48883 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
48884 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
48885 
48886 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48887 
48888 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
48889 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
48890 
48891 ---------------------------------------------------------------------------------------------------------------
48892 
48893 
48894 --
48895 -- bulk performance
48896 --
48897 l_balance_type_code           VARCHAR2(1);
48898 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
48899 l_log_module                  VARCHAR2(240);
48900 
48901 --
48902 -- Upgrade strategy
48903 --
48904 l_actual_upg_option           VARCHAR2(1);
48905 l_enc_upg_option           VARCHAR2(1);
48906 
48907 --
48908 BEGIN
48909 --
48910 IF g_log_enabled THEN
48911       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_106';
48912 END IF;
48913 --
48914 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48915 
48916       trace
48917          (p_msg      => 'BEGIN of AcctLineType_106'
48918          ,p_level    => C_LEVEL_PROCEDURE
48919          ,p_module   => l_log_module);
48920 
48921 END IF;
48922 --
48923 l_component_type             := 'AMB_JLT';
48924 l_component_code             := 'AP_DEF_RTAX_PMT';
48925 l_component_type_code        := 'S';
48926 l_component_appl_id          :=  200;
48927 l_amb_context_code           := 'DEFAULT';
48928 l_entity_code                := 'AP_PAYMENTS';
48929 l_event_class_code           := 'PAYMENTS';
48930 l_event_type_code            := 'PAYMENTS_ALL';
48931 l_line_definition_owner_code := 'S';
48932 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
48933 --
48934 l_balance_type_code          := 'A';
48935 l_segment                     := NULL;
48936 l_ccid                        := NULL;
48937 l_adr_transaction_coa_id      := NULL;
48938 l_adr_accounting_coa_id       := NULL;
48939 l_adr_flexfield_segment_code  := NULL;
48940 l_adr_flex_value_set_id       := NULL;
48941 l_adr_value_type_code         := NULL;
48942 l_adr_value_combination_id    := NULL;
48943 l_adr_value_segment_code      := NULL;
48944 
48945 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
48946 l_bflow_class_code           := 'AP_PP_DEF_TAX';    -- 4219869 Business Flow
48947 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
48951 l_bflow_applied_to_amt       := NULL; -- 5132302
48948 l_budgetary_control_flag     := 'N';
48949 
48950 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
48952 l_entered_amt_idx            := NULL;          -- 4262811
48953 l_accted_amt_idx             := NULL;          -- 4262811
48954 l_acc_rev_flag               := NULL;          -- 4262811
48955 l_accrual_line_num           := NULL;          -- 4262811
48956 l_tmp_amt                    := NULL;          -- 4262811
48957 --
48958  
48959 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48960     l_balance_type_code <> 'B' THEN
48961 IF NVL(p_source_89,'
48962 ') <>  'CLEAR_CLEAR' AND 
48963 ((NVL(p_source_21,'
48964 ') =  'REC_TAX' AND 
48965 NVL(p_source_130,'
48966 ') =  'DEFERRED') OR 
48967 (NVL(p_source_21,'
48968 ') =  'AWT' AND 
48969 NVL(p_source_131,'
48970 ') =  'AWT_DEFERRED')
48971 ) AND (NVL(p_source_90,'
48972 ') =  'CASH' OR 
48973 NVL(p_source_90,'
48974 ') =  'AWT' OR 
48975 NVL(p_source_90,'
48976 ') =  'DISCOUNT') AND 
48977 p_source_107 IS NULL AND 
48978 NVL(p_source_115,'
48979 ') <>  'R' AND 
48980 NVL(p_source_116,'
48981 ') <>  'PAYMENTCARD'
48982  THEN 
48983 
48984    --
48985    XLA_AE_LINES_PKG.SetNewLine;
48986 
48987    p_balance_type_code          := l_balance_type_code;
48988    -- set the flag so later we will know whether the gain loss line needs to be created
48989    
48990    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48991      p_actual_flag :='A';
48992    END IF;
48993 
48994    --
48995    -- bulk performance
48996    --
48997    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48998                                       p_header_num   => 0); -- 4262811
48999    --
49000    -- set accounting line options
49001    --
49002    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49003            p_natural_side_code          => 'D'
49004          , p_gain_or_loss_flag          => 'N'
49005          , p_gl_transfer_mode_code      => 'S'
49006          , p_acct_entry_type_code       => 'A'
49007          , p_switch_side_flag           => 'Y'
49008          , p_merge_duplicate_code       => 'A'
49009          );
49010    --
49011    l_acc_rev_natural_side_code := 'C';  -- 4262811
49012    -- 
49013    --
49014    -- set accounting line type info
49015    --
49016    xla_ae_lines_pkg.SetAcctLineType
49017       (p_component_type             => l_component_type
49018       ,p_event_type_code            => l_event_type_code
49019       ,p_line_definition_owner_code => l_line_definition_owner_code
49020       ,p_line_definition_code       => l_line_definition_code
49021       ,p_accounting_line_code       => l_component_code
49022       ,p_accounting_line_type_code  => l_component_type_code
49023       ,p_accounting_line_appl_id    => l_component_appl_id
49024       ,p_amb_context_code           => l_amb_context_code
49025       ,p_entity_code                => l_entity_code
49026       ,p_event_class_code           => l_event_class_code);
49027    --
49028    -- set accounting class
49029    --
49030    xla_ae_lines_pkg.SetAcctClass(
49031            p_accounting_class_code  => 'DEF_REC_TAX'
49032          , p_ae_header_id           => l_ae_header_id
49033          );
49034 
49035    --
49036    -- set rounding class
49037    --
49038    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49039                       'DEF_REC_TAX';
49040 
49041    --
49042    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49043    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49044    --
49045    -- bulk performance
49046    --
49047    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49048 
49049    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49050       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49051 
49052    -- 4955764
49053    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49054       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49055 
49056    -- 4458381 Public Sector Enh
49057    
49058    --
49059    -- set accounting attributes for the line type
49060    --
49061    l_entered_amt_idx := 10;
49062    l_accted_amt_idx  := 15;
49063    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
49064    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49065    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
49066    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
49067    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
49068    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
49069    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
49070    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49071    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
49072    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
49073    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
49074    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
49075    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
49076    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49080    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
49077    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
49078    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
49079    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
49081    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
49082    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
49083    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
49084    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
49085    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
49086    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
49087    l_rec_acct_attrs.array_date_value(12)  := p_source_136;
49088    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
49089    l_rec_acct_attrs.array_num_value(13)  := p_source_137;
49090    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
49091    l_rec_acct_attrs.array_char_value(14)  := p_source_138;
49092    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
49093    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
49094    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
49095    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
49096    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
49097    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
49098    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
49099    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
49100    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
49101    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
49102    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
49103    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
49104    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
49105    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
49106    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
49107    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
49108    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
49109    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
49110    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
49111    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
49112 
49113    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49114    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49115 
49116    ---------------------------------------------------------------------------------------------------------------
49117    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49118    ---------------------------------------------------------------------------------------------------------------
49119    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49120 
49121    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49122    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49123 
49124    IF xla_accounting_cache_pkg.GetValueChar
49125          (p_source_code         => 'LEDGER_CATEGORY_CODE'
49126          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49127    AND l_bflow_method_code = 'PRIOR_ENTRY'
49128 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49129    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49130          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49131        )
49132    THEN
49133          xla_ae_lines_pkg.BflowUpgEntry
49134            (p_business_method_code    => l_bflow_method_code
49135            ,p_business_class_code     => l_bflow_class_code
49136            ,p_balance_type            => l_balance_type_code);
49137    ELSE
49138       NULL;
49139 -- No business flow processing for business flow method of NONE.
49140    END IF;
49141 
49142    --
49143    -- call analytical criteria
49144    --
49145    
49146    --
49147    -- call description
49148    --
49149    -- No description or it is inherited.
49150    --
49151    -- call ADRs
49152    -- Bug 4922099
49153    --
49154    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49155         (NVL(l_actual_upg_option, 'N') = 'O') OR
49156         (NVL(l_enc_upg_option, 'N') = 'O')
49157       )
49158    THEN
49159    NULL;
49160    --
49161    --
49162    
49163   l_ccid := AcctDerRule_43(
49164            p_application_id           => p_application_id
49165          , p_ae_header_id             => l_ae_header_id 
49166 , p_source_40 => p_source_40
49167          , x_transaction_coa_id       => l_adr_transaction_coa_id
49168          , x_accounting_coa_id        => l_adr_accounting_coa_id
49169          , x_value_type_code          => l_adr_value_type_code
49170          , p_side                     => 'NA'
49171    );
49172 
49173    xla_ae_lines_pkg.set_ccid(
49174     p_code_combination_id          => l_ccid
49175   , p_value_type_code              => l_adr_value_type_code
49176   , p_transaction_coa_id           => l_adr_transaction_coa_id
49177   , p_accounting_coa_id            => l_adr_accounting_coa_id
49178   , p_adr_code                     => 'AP_TAX_ACCOUNT'
49179   , p_adr_type_code                => 'S'
49180   , p_component_type               => l_component_type
49181   , p_component_code               => l_component_code
49182   , p_component_type_code          => l_component_type_code
49186   );
49183   , p_component_appl_id            => l_component_appl_id
49184   , p_amb_context_code             => l_amb_context_code
49185   , p_side                         => 'NA'
49187 
49188 
49189    --
49190    --
49191    END IF;
49192    --
49193    -- Bug 4922099
49194    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49195           (NVL(l_enc_upg_option, 'N') = 'O')
49196         ) AND
49197         (l_bflow_method_code = 'PRIOR_ENTRY')
49198       )
49199    THEN
49200       IF
49201       --
49202       1 = 2
49203       --
49204       THEN
49205       xla_accounting_err_pkg.build_message
49206                                     (p_appli_s_name            => 'XLA'
49207                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49208                                     ,p_token_1                 => 'LINE_NUMBER'
49209                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
49210                                     ,p_token_2                 => 'LINE_TYPE_NAME'
49211                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
49212                                                                              l_component_type
49213                                                                             ,l_component_code
49214                                                                             ,l_component_type_code
49215                                                                             ,l_component_appl_id
49216                                                                             ,l_amb_context_code
49217                                                                             ,l_entity_code
49218                                                                             ,l_event_class_code
49219                                                                            )
49220                                     ,p_token_3                 => 'OWNER'
49221                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
49222                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
49223                                                                           ,p_lookup_code    => l_component_type_code
49224                                                                          )
49225                                     ,p_token_4                 => 'PRODUCT_NAME'
49226                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49227                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49228                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49229                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49230                                     ,p_ae_header_id            =>  NULL
49231                                        );
49232 
49233         IF (C_LEVEL_ERROR>= g_log_level) THEN
49234                  trace
49235                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49236                       ,p_level    => C_LEVEL_ERROR
49237                       ,p_module   => l_log_module);
49238         END IF;
49239       END IF;
49240    END IF;
49241    --
49242    --
49243    ------------------------------------------------------------------------------------------------
49244    -- 4219869 Business Flow
49245    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49246    -- Prior Entry.  Currently, the following code is always generated.
49247    ------------------------------------------------------------------------------------------------
49248    XLA_AE_LINES_PKG.ValidateCurrentLine;
49249 
49250    ------------------------------------------------------------------------------------
49251    -- 4219869 Business Flow
49252    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49253    ------------------------------------------------------------------------------------
49254    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49255 
49256    ----------------------------------------------------------------------------------
49257    -- 4219869 Business Flow
49258    -- Update journal entry status -- Need to generate this within IF <condition>
49259    ----------------------------------------------------------------------------------
49260    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49261          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49262          ,p_balance_type_code => l_balance_type_code
49263          );
49264 
49265    -------------------------------------------------------------------------------------------
49266    -- 4262811 - Generate the Accrual Reversal lines
49267    -------------------------------------------------------------------------------------------
49268    BEGIN
49269       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49270                               (g_array_event(p_event_id).array_value_num('header_index'));
49271       IF l_acc_rev_flag IS NULL THEN
49272          l_acc_rev_flag := 'N';
49273       END IF;
49274    EXCEPTION
49275       WHEN OTHERS THEN
49276          l_acc_rev_flag := 'N';
49277    END;
49278    --
49279    IF (l_acc_rev_flag = 'Y') THEN
49280 
49281        -- 4645092  ------------------------------------------------------------------------------
49282        -- To allow MPA report to determine if it should generate report process
49283        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49287        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49284        ------------------------------------------------------------------------------------------
49285 
49286        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49288    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
49289    -- call ADRs
49290    -- Bug 4922099
49291    --
49292    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49293         (NVL(l_actual_upg_option, 'N') = 'O') OR
49294         (NVL(l_enc_upg_option, 'N') = 'O')
49295       )
49296    THEN
49297    NULL;
49298    --
49299    --
49300    
49301   l_ccid := AcctDerRule_43(
49302            p_application_id           => p_application_id
49303          , p_ae_header_id             => l_ae_header_id 
49304 , p_source_40 => p_source_40
49305          , x_transaction_coa_id       => l_adr_transaction_coa_id
49306          , x_accounting_coa_id        => l_adr_accounting_coa_id
49307          , x_value_type_code          => l_adr_value_type_code
49308          , p_side                     => 'NA'
49309    );
49310 
49311    xla_ae_lines_pkg.set_ccid(
49312     p_code_combination_id          => l_ccid
49313   , p_value_type_code              => l_adr_value_type_code
49314   , p_transaction_coa_id           => l_adr_transaction_coa_id
49315   , p_accounting_coa_id            => l_adr_accounting_coa_id
49316   , p_adr_code                     => 'AP_TAX_ACCOUNT'
49317   , p_adr_type_code                => 'S'
49318   , p_component_type               => l_component_type
49319   , p_component_code               => l_component_code
49320   , p_component_type_code          => l_component_type_code
49321   , p_component_appl_id            => l_component_appl_id
49322   , p_amb_context_code             => l_amb_context_code
49323   , p_side                         => 'NA'
49324   );
49325 
49326 
49327    --
49328    --
49329    END IF;
49330 
49331        --
49332        -- Update the line information that should be overwritten
49333        --
49334        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49335                                          p_header_num   => 1);
49336        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
49337 
49338        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49339 
49340        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
49341           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49342        END IF;
49343 
49344       --
49345       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49346       --
49347       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49348           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
49349       ELSE
49350           ---------------------------------------------------------------------------------------------------
49351           -- 4262811a Switch Sign
49352           ---------------------------------------------------------------------------------------------------
49353           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
49354           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49355                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49356           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49357                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49358           -- 5132302
49359           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49360                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49361 
49362       END IF;
49363 
49364       -- 4955764
49365       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49366       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49367 
49368 
49369       XLA_AE_LINES_PKG.ValidateCurrentLine;
49370       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49371 
49372       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49373                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49374                ,p_balance_type_code => l_balance_type_code);
49375 
49376    END IF;
49377 
49378    -----------------------------------------------------------------------------------------
49379    -- 4262811 Multiperiod Accounting
49380    -----------------------------------------------------------------------------------------
49381      -- No MPA option is assigned.
49382 
49383 
49384 END IF;
49385 END IF;
49386 --
49387 
49388 --
49389 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49390    trace
49391       (p_msg      => 'END of AcctLineType_106'
49392       ,p_level    => C_LEVEL_PROCEDURE
49393       ,p_module   => l_log_module);
49394 END IF;
49395 --
49396 EXCEPTION
49397   WHEN xla_exceptions_pkg.application_exception THEN
49398       RAISE;
49399   WHEN OTHERS THEN
49400        xla_exceptions_pkg.raise_message
49401            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_106');
49402 END AcctLineType_106;
49403 --
49404 
49405 ---------------------------------------
49406 --
49407 -- PRIVATE FUNCTION
49408 --         AcctLineType_107
49409 --
49413  ,p_event_id              IN NUMBER
49410 ---------------------------------------
49411 PROCEDURE AcctLineType_107 (
49412   p_application_id        IN NUMBER
49414  ,p_calculate_acctd_flag  IN VARCHAR2
49415  ,p_calculate_g_l_flag    IN VARCHAR2
49416  ,p_actual_flag           IN OUT VARCHAR2
49417  ,p_balance_type_code     OUT VARCHAR2
49418  ,p_gain_or_loss_ref      OUT VARCHAR2
49419  
49420 --Recoverable Tax Account
49421  , p_source_40            IN NUMBER
49422 --Accounting Reversal Indicator
49423  , p_source_41            IN VARCHAR2
49424 --Distribution Link Type
49425  , p_source_43            IN VARCHAR2
49426 --Invoice Identifier
49427  , p_source_46            IN NUMBER
49428 --Payables Encumbrance Upgrade Credit Account
49429  , p_source_53            IN NUMBER
49430 --Payables Encumbrance Upgrade Credit Amount
49431  , p_source_54            IN NUMBER
49432 --Invoice Currency Code
49433  , p_source_55            IN VARCHAR2
49434 --Payables Encumbrance Upgrade Credit Base Amount
49435  , p_source_56            IN NUMBER
49436 --Payables Encumbrance Upgrade Debit Account
49437  , p_source_57            IN NUMBER
49438 --Payables Encumbrance Upgrade Debit Amount
49439  , p_source_58            IN NUMBER
49440 --Payables Encumbrance Upgrade Debit Base Amount
49441  , p_source_59            IN NUMBER
49442 --Payables Encumbrance Upgrade Option
49443  , p_source_60            IN VARCHAR2
49444 --Deferred Accounting End Date
49445  , p_source_65            IN DATE
49446 --Deferred Accounting Option
49447  , p_source_66            IN VARCHAR2
49448 --Deferred Accounting Start Date
49449  , p_source_67            IN DATE
49450 --Override Accounted Amount Indicator
49451  , p_source_68            IN VARCHAR2
49452  , p_source_68_meaning    IN VARCHAR2
49453 --Invoice Supplier Identifier
49454  , p_source_69            IN NUMBER
49455 --Invoice Supplier Site Identifier
49456  , p_source_70            IN NUMBER
49457 --Third Party Type
49458  , p_source_71            IN VARCHAR2
49459 --Invoice Distribution Tax Line Identifier
49460  , p_source_74            IN NUMBER
49461 --Invoice Distribution Tax Distribution Identifier from Tax
49462  , p_source_75            IN NUMBER
49463 --Invoice Distribution Summary Tax Line Identifier
49464  , p_source_76            IN NUMBER
49465 --Payables Upgrade Credit Encumbrance Type Identifier
49466  , p_source_77            IN NUMBER
49467 --Payables Upgrade Debit Encumbrance Type Identifier
49468  , p_source_78            IN NUMBER
49469 --Business Flow Accounts Payable Application Identifier
49470  , p_source_79            IN NUMBER
49471 --Prepayment Application Distribution Identifier
49472  , p_source_120            IN NUMBER
49473 --Upgrade Encumbrance Credit Account Class
49474  , p_source_125            IN VARCHAR2
49475 --Upgrade Encumbrance Debit Account Class
49476  , p_source_126            IN VARCHAR2
49477 --Prepayment Distribution Amount
49478  , p_source_127            IN NUMBER
49479 --Identifier of the Prepayment Application Reversed
49480  , p_source_129            IN NUMBER
49481 --Deferred Recoverable Tax Option
49482  , p_source_130            IN VARCHAR2
49483  , p_source_130_meaning    IN VARCHAR2
49484 --Prepayment Distribution (Invoice Rate) Ledger Amount
49485  , p_source_134            IN NUMBER
49486 --Invoice Exchange Date
49487  , p_source_136            IN DATE
49488 --Invoice Exchange Rate
49489  , p_source_137            IN NUMBER
49490 --Invoice Exchange Rate Type
49491  , p_source_138            IN VARCHAR2
49492 --Business Flow Prepayment Invoice Distribution Type
49493  , p_source_139            IN VARCHAR2
49494 --Business Flow Prepayment Invoice Entity Code
49495  , p_source_140            IN VARCHAR2
49496 --Business Flow Prepayment Invoice Distribution Identifier
49497  , p_source_141            IN NUMBER
49498 --Business Flow Prepayment Invoice Identifier
49499  , p_source_142            IN NUMBER
49500 )
49501 IS
49502 
49503 l_component_type              VARCHAR2(80);
49504 l_component_code              VARCHAR2(30);
49505 l_component_type_code         VARCHAR2(1);
49506 l_component_appl_id           INTEGER;
49507 l_amb_context_code            VARCHAR2(30);
49508 l_entity_code                 VARCHAR2(30);
49509 l_event_class_code            VARCHAR2(30);
49510 l_ae_header_id                NUMBER;
49511 l_event_type_code             VARCHAR2(30);
49512 l_line_definition_code        VARCHAR2(30);
49513 l_line_definition_owner_code  VARCHAR2(1);
49514 --
49515 -- adr variables
49516 l_segment                     VARCHAR2(30);
49517 l_ccid                        NUMBER;
49518 l_adr_transaction_coa_id      NUMBER;
49519 l_adr_accounting_coa_id       NUMBER;
49520 l_adr_flexfield_segment_code  VARCHAR2(30);
49521 l_adr_flex_value_set_id       NUMBER;
49522 l_adr_value_type_code         VARCHAR2(30);
49523 l_adr_value_combination_id    NUMBER;
49524 l_adr_value_segment_code      VARCHAR2(30);
49525 
49526 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
49527 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
49528 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
49529 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
49530 
49531 -- 4262811 Variables ------------------------------------------------------------------------------------------
49532 l_entered_amt_idx             NUMBER;
49533 l_accted_amt_idx              NUMBER;
49534 l_acc_rev_flag                VARCHAR2(1);
49535 l_accrual_line_num            NUMBER;
49536 l_tmp_amt                     NUMBER;
49537 l_acc_rev_natural_side_code   VARCHAR2(1);
49538 
49542 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
49539 l_num_entries                 NUMBER;
49540 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
49541 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
49543 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
49544 l_recog_line_1                NUMBER;
49545 l_recog_line_2                NUMBER;
49546 
49547 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
49548 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
49549 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
49550 
49551 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49552 
49553 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
49554 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
49555 
49556 ---------------------------------------------------------------------------------------------------------------
49557 
49558 
49559 --
49560 -- bulk performance
49561 --
49562 l_balance_type_code           VARCHAR2(1);
49563 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
49564 l_log_module                  VARCHAR2(240);
49565 
49566 --
49567 -- Upgrade strategy
49568 --
49569 l_actual_upg_option           VARCHAR2(1);
49570 l_enc_upg_option           VARCHAR2(1);
49571 
49572 --
49573 BEGIN
49574 --
49575 IF g_log_enabled THEN
49576       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_107';
49577 END IF;
49578 --
49579 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49580 
49581       trace
49582          (p_msg      => 'BEGIN of AcctLineType_107'
49583          ,p_level    => C_LEVEL_PROCEDURE
49584          ,p_module   => l_log_module);
49585 
49586 END IF;
49587 --
49588 l_component_type             := 'AMB_JLT';
49589 l_component_code             := 'AP_DEF_RTAX_PREPAY';
49590 l_component_type_code        := 'S';
49591 l_component_appl_id          :=  200;
49592 l_amb_context_code           := 'DEFAULT';
49593 l_entity_code                := 'AP_INVOICES';
49594 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
49595 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
49596 l_line_definition_owner_code := 'S';
49597 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
49598 --
49599 l_balance_type_code          := 'A';
49600 l_segment                     := NULL;
49601 l_ccid                        := NULL;
49602 l_adr_transaction_coa_id      := NULL;
49603 l_adr_accounting_coa_id       := NULL;
49604 l_adr_flexfield_segment_code  := NULL;
49605 l_adr_flex_value_set_id       := NULL;
49606 l_adr_value_type_code         := NULL;
49607 l_adr_value_combination_id    := NULL;
49608 l_adr_value_segment_code      := NULL;
49609 
49610 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
49611 l_bflow_class_code           := '';    -- 4219869 Business Flow
49612 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
49613 l_budgetary_control_flag     := 'N';
49614 
49615 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
49616 l_bflow_applied_to_amt       := NULL; -- 5132302
49617 l_entered_amt_idx            := NULL;          -- 4262811
49618 l_accted_amt_idx             := NULL;          -- 4262811
49619 l_acc_rev_flag               := NULL;          -- 4262811
49620 l_accrual_line_num           := NULL;          -- 4262811
49621 l_tmp_amt                    := NULL;          -- 4262811
49622 --
49623  
49624 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49625     l_balance_type_code <> 'B' THEN
49626 IF NVL(p_source_130,'
49627 ') =  'DEFERRED'
49628  THEN 
49629 
49630    --
49631    XLA_AE_LINES_PKG.SetNewLine;
49632 
49633    p_balance_type_code          := l_balance_type_code;
49634    -- set the flag so later we will know whether the gain loss line needs to be created
49635    
49636    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
49637      p_actual_flag :='A';
49638    END IF;
49639 
49640    --
49641    -- bulk performance
49642    --
49643    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49644                                       p_header_num   => 0); -- 4262811
49645    --
49646    -- set accounting line options
49647    --
49648    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49649            p_natural_side_code          => 'C'
49650          , p_gain_or_loss_flag          => 'N'
49651          , p_gl_transfer_mode_code      => 'S'
49652          , p_acct_entry_type_code       => 'A'
49653          , p_switch_side_flag           => 'Y'
49654          , p_merge_duplicate_code       => 'A'
49655          );
49656    --
49657    l_acc_rev_natural_side_code := 'D';  -- 4262811
49658    -- 
49659    --
49660    -- set accounting line type info
49661    --
49662    xla_ae_lines_pkg.SetAcctLineType
49663       (p_component_type             => l_component_type
49664       ,p_event_type_code            => l_event_type_code
49665       ,p_line_definition_owner_code => l_line_definition_owner_code
49666       ,p_line_definition_code       => l_line_definition_code
49667       ,p_accounting_line_code       => l_component_code
49668       ,p_accounting_line_type_code  => l_component_type_code
49669       ,p_accounting_line_appl_id    => l_component_appl_id
49670       ,p_amb_context_code           => l_amb_context_code
49671       ,p_entity_code                => l_entity_code
49675    --
49672       ,p_event_class_code           => l_event_class_code);
49673    --
49674    -- set accounting class
49676    xla_ae_lines_pkg.SetAcctClass(
49677            p_accounting_class_code  => 'DEF_REC_TAX'
49678          , p_ae_header_id           => l_ae_header_id
49679          );
49680 
49681    --
49682    -- set rounding class
49683    --
49684    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49685                       'DEF_REC_TAX';
49686 
49687    --
49688    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49689    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49690    --
49691    -- bulk performance
49692    --
49693    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49694 
49695    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49696       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49697 
49698    -- 4955764
49699    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49700       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49701 
49702    -- 4458381 Public Sector Enh
49703    
49704    --
49705    -- set accounting attributes for the line type
49706    --
49707    l_entered_amt_idx := 25;
49708    l_accted_amt_idx  := 30;
49709    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
49710    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49711    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
49712    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
49713    l_rec_acct_attrs.array_num_value(2)  := 
49714 xla_ae_sources_pkg.GetSystemSourceNum(
49715    p_source_code           => 'XLA_EVENT_APPL_ID'
49716  , p_source_type_code      => 'Y'
49717  , p_source_application_id =>  602
49718 );
49719    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
49720    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
49721    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
49722    l_rec_acct_attrs.array_char_value(4)  := 
49723 xla_ae_sources_pkg.GetSystemSourceChar(
49724    p_source_code           => 'XLA_ENTITY_CODE'
49725  , p_source_type_code      => 'Y'
49726  , p_source_application_id =>  602
49727 );
49728    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
49729    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_120);
49730    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
49731    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
49732    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
49733    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
49734    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49735    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
49736    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
49737    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
49738    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
49739    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
49740    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49741    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
49742    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
49743    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_120);
49744    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
49745    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
49746    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
49747    l_rec_acct_attrs.array_char_value(14)  := p_source_125;
49748    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
49749    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
49750    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
49751    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
49752    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
49753    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
49754    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
49755    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
49756    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
49757    l_rec_acct_attrs.array_char_value(19)  := p_source_126;
49758    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
49759    l_rec_acct_attrs.array_num_value(20)  := p_source_57;
49760    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
49761    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
49762    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
49763    l_rec_acct_attrs.array_char_value(22)  := p_source_55;
49764    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
49765    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
49766    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
49767    l_rec_acct_attrs.array_char_value(24)  := p_source_60;
49768    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
49769    l_rec_acct_attrs.array_num_value(25)  := p_source_127;
49770    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
49771    l_rec_acct_attrs.array_char_value(26)  := p_source_55;
49772    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
49773    l_rec_acct_attrs.array_date_value(27)  := p_source_136;
49774    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
49775    l_rec_acct_attrs.array_num_value(28)  := p_source_137;
49776    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
49780    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
49777    l_rec_acct_attrs.array_char_value(29)  := p_source_138;
49778    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
49779    l_rec_acct_attrs.array_num_value(30)  := p_source_134;
49781    l_rec_acct_attrs.array_date_value(31)  := p_source_65;
49782    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
49783    l_rec_acct_attrs.array_char_value(32)  := p_source_66;
49784    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
49785    l_rec_acct_attrs.array_date_value(33)  := p_source_67;
49786    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
49787    l_rec_acct_attrs.array_char_value(34)  := p_source_68;
49788    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
49789    l_rec_acct_attrs.array_num_value(35)  := p_source_69;
49790    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
49791    l_rec_acct_attrs.array_num_value(36)  := p_source_70;
49792    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
49793    l_rec_acct_attrs.array_char_value(37)  := p_source_71;
49794    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
49795    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_129);
49796    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
49797    l_rec_acct_attrs.array_char_value(39)  := p_source_43;
49798    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
49799    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
49800    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
49801    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
49802    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
49803    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
49804    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
49805    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
49806    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
49807    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
49808 
49809    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49810    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49811 
49812    ---------------------------------------------------------------------------------------------------------------
49813    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49814    ---------------------------------------------------------------------------------------------------------------
49815    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49816 
49817    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49818    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49819 
49820    IF xla_accounting_cache_pkg.GetValueChar
49821          (p_source_code         => 'LEDGER_CATEGORY_CODE'
49822          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49823    AND l_bflow_method_code = 'PRIOR_ENTRY'
49824 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49825    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49826          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49827        )
49828    THEN
49829          xla_ae_lines_pkg.BflowUpgEntry
49830            (p_business_method_code    => l_bflow_method_code
49831            ,p_business_class_code     => l_bflow_class_code
49832            ,p_balance_type            => l_balance_type_code);
49833    ELSE
49834       NULL;
49835 -- No business flow processing for business flow method of NONE.
49836    END IF;
49837 
49838    --
49839    -- call analytical criteria
49840    --
49841    
49842    --
49843    -- call description
49844    --
49845    -- No description or it is inherited.
49846    --
49847    -- call ADRs
49848    -- Bug 4922099
49849    --
49850    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49851         (NVL(l_actual_upg_option, 'N') = 'O') OR
49852         (NVL(l_enc_upg_option, 'N') = 'O')
49853       )
49854    THEN
49855    NULL;
49856    --
49857    --
49858    
49859   l_ccid := AcctDerRule_43(
49860            p_application_id           => p_application_id
49861          , p_ae_header_id             => l_ae_header_id 
49862 , p_source_40 => p_source_40
49863          , x_transaction_coa_id       => l_adr_transaction_coa_id
49864          , x_accounting_coa_id        => l_adr_accounting_coa_id
49865          , x_value_type_code          => l_adr_value_type_code
49866          , p_side                     => 'NA'
49867    );
49868 
49869    xla_ae_lines_pkg.set_ccid(
49870     p_code_combination_id          => l_ccid
49871   , p_value_type_code              => l_adr_value_type_code
49872   , p_transaction_coa_id           => l_adr_transaction_coa_id
49873   , p_accounting_coa_id            => l_adr_accounting_coa_id
49874   , p_adr_code                     => 'AP_TAX_ACCOUNT'
49875   , p_adr_type_code                => 'S'
49876   , p_component_type               => l_component_type
49877   , p_component_code               => l_component_code
49878   , p_component_type_code          => l_component_type_code
49879   , p_component_appl_id            => l_component_appl_id
49880   , p_amb_context_code             => l_amb_context_code
49881   , p_side                         => 'NA'
49882   );
49883 
49884 
49885    --
49886    --
49887    END IF;
49888    --
49889    -- Bug 4922099
49893         (l_bflow_method_code = 'PRIOR_ENTRY')
49890    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49891           (NVL(l_enc_upg_option, 'N') = 'O')
49892         ) AND
49894       )
49895    THEN
49896       IF
49897       --
49898       1 = 2
49899       --
49900       THEN
49901       xla_accounting_err_pkg.build_message
49902                                     (p_appli_s_name            => 'XLA'
49903                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49904                                     ,p_token_1                 => 'LINE_NUMBER'
49905                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
49906                                     ,p_token_2                 => 'LINE_TYPE_NAME'
49907                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
49908                                                                              l_component_type
49909                                                                             ,l_component_code
49910                                                                             ,l_component_type_code
49911                                                                             ,l_component_appl_id
49912                                                                             ,l_amb_context_code
49913                                                                             ,l_entity_code
49914                                                                             ,l_event_class_code
49915                                                                            )
49916                                     ,p_token_3                 => 'OWNER'
49917                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
49918                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
49919                                                                           ,p_lookup_code    => l_component_type_code
49920                                                                          )
49921                                     ,p_token_4                 => 'PRODUCT_NAME'
49922                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49923                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49924                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49925                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49926                                     ,p_ae_header_id            =>  NULL
49927                                        );
49928 
49929         IF (C_LEVEL_ERROR>= g_log_level) THEN
49930                  trace
49931                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49932                       ,p_level    => C_LEVEL_ERROR
49933                       ,p_module   => l_log_module);
49934         END IF;
49935       END IF;
49936    END IF;
49937    --
49938    --
49939    ------------------------------------------------------------------------------------------------
49940    -- 4219869 Business Flow
49941    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49942    -- Prior Entry.  Currently, the following code is always generated.
49943    ------------------------------------------------------------------------------------------------
49944    XLA_AE_LINES_PKG.ValidateCurrentLine;
49945 
49946    ------------------------------------------------------------------------------------
49947    -- 4219869 Business Flow
49948    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49949    ------------------------------------------------------------------------------------
49950    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49951 
49952    ----------------------------------------------------------------------------------
49953    -- 4219869 Business Flow
49954    -- Update journal entry status -- Need to generate this within IF <condition>
49955    ----------------------------------------------------------------------------------
49956    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49957          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49958          ,p_balance_type_code => l_balance_type_code
49959          );
49960 
49961    -------------------------------------------------------------------------------------------
49962    -- 4262811 - Generate the Accrual Reversal lines
49963    -------------------------------------------------------------------------------------------
49964    BEGIN
49965       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49966                               (g_array_event(p_event_id).array_value_num('header_index'));
49967       IF l_acc_rev_flag IS NULL THEN
49968          l_acc_rev_flag := 'N';
49969       END IF;
49970    EXCEPTION
49971       WHEN OTHERS THEN
49972          l_acc_rev_flag := 'N';
49973    END;
49974    --
49975    IF (l_acc_rev_flag = 'Y') THEN
49976 
49977        -- 4645092  ------------------------------------------------------------------------------
49978        -- To allow MPA report to determine if it should generate report process
49979        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49980        ------------------------------------------------------------------------------------------
49981 
49982        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49983        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49984    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
49988    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49985    -- call ADRs
49986    -- Bug 4922099
49987    --
49989         (NVL(l_actual_upg_option, 'N') = 'O') OR
49990         (NVL(l_enc_upg_option, 'N') = 'O')
49991       )
49992    THEN
49993    NULL;
49994    --
49995    --
49996    
49997   l_ccid := AcctDerRule_43(
49998            p_application_id           => p_application_id
49999          , p_ae_header_id             => l_ae_header_id 
50000 , p_source_40 => p_source_40
50001          , x_transaction_coa_id       => l_adr_transaction_coa_id
50002          , x_accounting_coa_id        => l_adr_accounting_coa_id
50003          , x_value_type_code          => l_adr_value_type_code
50004          , p_side                     => 'NA'
50005    );
50006 
50007    xla_ae_lines_pkg.set_ccid(
50008     p_code_combination_id          => l_ccid
50009   , p_value_type_code              => l_adr_value_type_code
50010   , p_transaction_coa_id           => l_adr_transaction_coa_id
50011   , p_accounting_coa_id            => l_adr_accounting_coa_id
50012   , p_adr_code                     => 'AP_TAX_ACCOUNT'
50013   , p_adr_type_code                => 'S'
50014   , p_component_type               => l_component_type
50015   , p_component_code               => l_component_code
50016   , p_component_type_code          => l_component_type_code
50017   , p_component_appl_id            => l_component_appl_id
50018   , p_amb_context_code             => l_amb_context_code
50019   , p_side                         => 'NA'
50020   );
50021 
50022 
50023    --
50024    --
50025    END IF;
50026 
50027        --
50028        -- Update the line information that should be overwritten
50029        --
50030        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50031                                          p_header_num   => 1);
50032        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
50033 
50034        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50035 
50036        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
50037           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50038        END IF;
50039 
50040       --
50041       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50042       --
50043       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50044           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
50045       ELSE
50046           ---------------------------------------------------------------------------------------------------
50047           -- 4262811a Switch Sign
50048           ---------------------------------------------------------------------------------------------------
50049           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
50050           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50051                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50052           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50053                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50054           -- 5132302
50055           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50056                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50057 
50058       END IF;
50059 
50060       -- 4955764
50061       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50062       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50063 
50064 
50065       XLA_AE_LINES_PKG.ValidateCurrentLine;
50066       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50067 
50068       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50069                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50070                ,p_balance_type_code => l_balance_type_code);
50071 
50072    END IF;
50073 
50074    -----------------------------------------------------------------------------------------
50075    -- 4262811 Multiperiod Accounting
50076    -----------------------------------------------------------------------------------------
50077      -- No MPA option is assigned.
50078 
50079 
50080 END IF;
50081 END IF;
50082 --
50083 
50084 --
50085 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50086    trace
50087       (p_msg      => 'END of AcctLineType_107'
50088       ,p_level    => C_LEVEL_PROCEDURE
50089       ,p_module   => l_log_module);
50090 END IF;
50091 --
50092 EXCEPTION
50093   WHEN xla_exceptions_pkg.application_exception THEN
50094       RAISE;
50095   WHEN OTHERS THEN
50096        xla_exceptions_pkg.raise_message
50097            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_107');
50098 END AcctLineType_107;
50099 --
50100 
50101 ---------------------------------------
50102 --
50103 -- PRIVATE FUNCTION
50104 --         AcctLineType_108
50105 --
50106 ---------------------------------------
50107 PROCEDURE AcctLineType_108 (
50108   p_application_id        IN NUMBER
50109  ,p_event_id              IN NUMBER
50110  ,p_calculate_acctd_flag  IN VARCHAR2
50111  ,p_calculate_g_l_flag    IN VARCHAR2
50112  ,p_actual_flag           IN OUT VARCHAR2
50113  ,p_balance_type_code     OUT VARCHAR2
50114  ,p_gain_or_loss_ref      OUT VARCHAR2
50115  
50119 --System Discount Account
50116 --Automatic Offsets Value
50117  , p_source_3            IN VARCHAR2
50118  , p_source_3_meaning    IN VARCHAR2
50120  , p_source_6            IN NUMBER
50121 --Discount Distribution Method
50122  , p_source_7            IN VARCHAR2
50123  , p_source_7_meaning    IN VARCHAR2
50124 --Invoice Distribution Account
50125  , p_source_18            IN NUMBER
50126 --Invoice Distribution Type
50127  , p_source_21            IN VARCHAR2
50128  , p_source_21_meaning    IN VARCHAR2
50129 --Discount Account
50130  , p_source_32            IN NUMBER
50131 --Purchase Order Charge Account
50132  , p_source_33            IN NUMBER
50133 --Purchase Order Variance Account
50134  , p_source_34            IN NUMBER
50135 --Accounting Reversal Indicator
50136  , p_source_41            IN VARCHAR2
50137 --Distribution Link Type
50138  , p_source_43            IN VARCHAR2
50139 --Invoice Currency Code
50140  , p_source_55            IN VARCHAR2
50141 --Override Accounted Amount Indicator
50142  , p_source_68            IN VARCHAR2
50143  , p_source_68_meaning    IN VARCHAR2
50144 --Third Party Type
50145  , p_source_71            IN VARCHAR2
50146 --Invoice Distribution Tax Line Identifier
50147  , p_source_74            IN NUMBER
50148 --Invoice Distribution Summary Tax Line Identifier
50149  , p_source_76            IN NUMBER
50150 --Business Flow Accounts Payable Application Identifier
50151  , p_source_79            IN NUMBER
50152 --When to Account for Payment Option
50153  , p_source_89            IN VARCHAR2
50154 --Payment Distribution Type
50155  , p_source_90            IN VARCHAR2
50156  , p_source_90_meaning    IN VARCHAR2
50157 --Payment Distribution Amount
50158  , p_source_91            IN NUMBER
50159 --Business Flow Payment Distribution Type
50160  , p_source_92            IN VARCHAR2
50161 --Business Flow Payment Entity Code
50162  , p_source_93            IN VARCHAR2
50163 --Business Flow Payment Distribution Identifier
50164  , p_source_94            IN NUMBER
50165 --Business Flow Payment Identifier
50166  , p_source_95            IN NUMBER
50167 --Payment Distribution Identifier
50168  , p_source_96            IN NUMBER
50169 --Payment Distribution (Cleared Rate) Ledger Amount
50170  , p_source_101            IN NUMBER
50171 --Payment Supplier Identifier
50172  , p_source_102            IN NUMBER
50173 --Payment Supplier Site Identifier
50174  , p_source_103            IN NUMBER
50175 --Payment Distribution Reversed Identifier
50176  , p_source_104            IN NUMBER
50177 --Invoice Exchange Date
50178  , p_source_136            IN DATE
50179 --Invoice Exchange Rate
50180  , p_source_137            IN NUMBER
50181 --Invoice Exchange Rate Type
50182  , p_source_138            IN VARCHAR2
50183 )
50184 IS
50185 
50186 l_component_type              VARCHAR2(80);
50187 l_component_code              VARCHAR2(30);
50188 l_component_type_code         VARCHAR2(1);
50189 l_component_appl_id           INTEGER;
50190 l_amb_context_code            VARCHAR2(30);
50191 l_entity_code                 VARCHAR2(30);
50192 l_event_class_code            VARCHAR2(30);
50193 l_ae_header_id                NUMBER;
50194 l_event_type_code             VARCHAR2(30);
50195 l_line_definition_code        VARCHAR2(30);
50196 l_line_definition_owner_code  VARCHAR2(1);
50197 --
50198 -- adr variables
50199 l_segment                     VARCHAR2(30);
50200 l_ccid                        NUMBER;
50201 l_adr_transaction_coa_id      NUMBER;
50202 l_adr_accounting_coa_id       NUMBER;
50203 l_adr_flexfield_segment_code  VARCHAR2(30);
50204 l_adr_flex_value_set_id       NUMBER;
50205 l_adr_value_type_code         VARCHAR2(30);
50206 l_adr_value_combination_id    NUMBER;
50207 l_adr_value_segment_code      VARCHAR2(30);
50208 
50209 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
50210 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
50211 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
50212 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
50213 
50214 -- 4262811 Variables ------------------------------------------------------------------------------------------
50215 l_entered_amt_idx             NUMBER;
50216 l_accted_amt_idx              NUMBER;
50217 l_acc_rev_flag                VARCHAR2(1);
50218 l_accrual_line_num            NUMBER;
50219 l_tmp_amt                     NUMBER;
50220 l_acc_rev_natural_side_code   VARCHAR2(1);
50221 
50222 l_num_entries                 NUMBER;
50223 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
50224 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
50225 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
50226 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
50227 l_recog_line_1                NUMBER;
50228 l_recog_line_2                NUMBER;
50229 
50230 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
50231 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
50232 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
50233 
50234 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50235 
50236 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
50237 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
50238 
50239 ---------------------------------------------------------------------------------------------------------------
50240 
50241 
50242 --
50243 -- bulk performance
50244 --
50245 l_balance_type_code           VARCHAR2(1);
50249 --
50246 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
50247 l_log_module                  VARCHAR2(240);
50248 
50250 -- Upgrade strategy
50251 --
50252 l_actual_upg_option           VARCHAR2(1);
50253 l_enc_upg_option           VARCHAR2(1);
50254 
50255 --
50256 BEGIN
50257 --
50258 IF g_log_enabled THEN
50259       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_108';
50260 END IF;
50261 --
50262 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50263 
50264       trace
50265          (p_msg      => 'BEGIN of AcctLineType_108'
50266          ,p_level    => C_LEVEL_PROCEDURE
50267          ,p_module   => l_log_module);
50268 
50269 END IF;
50270 --
50271 l_component_type             := 'AMB_JLT';
50272 l_component_code             := 'AP_DISCOUNT_ACCR_CLEAR';
50273 l_component_type_code        := 'S';
50274 l_component_appl_id          :=  200;
50275 l_amb_context_code           := 'DEFAULT';
50276 l_entity_code                := 'AP_PAYMENTS';
50277 l_event_class_code           := 'RECONCILED PAYMENTS';
50278 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
50279 l_line_definition_owner_code := 'S';
50280 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
50281 --
50282 l_balance_type_code          := 'A';
50283 l_segment                     := NULL;
50284 l_ccid                        := NULL;
50285 l_adr_transaction_coa_id      := NULL;
50286 l_adr_accounting_coa_id       := NULL;
50287 l_adr_flexfield_segment_code  := NULL;
50288 l_adr_flex_value_set_id       := NULL;
50289 l_adr_value_type_code         := NULL;
50290 l_adr_value_combination_id    := NULL;
50291 l_adr_value_segment_code      := NULL;
50292 
50293 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
50294 l_bflow_class_code           := '';    -- 4219869 Business Flow
50295 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
50296 l_budgetary_control_flag     := 'N';
50297 
50298 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
50299 l_bflow_applied_to_amt       := NULL; -- 5132302
50300 l_entered_amt_idx            := NULL;          -- 4262811
50301 l_accted_amt_idx             := NULL;          -- 4262811
50302 l_acc_rev_flag               := NULL;          -- 4262811
50303 l_accrual_line_num           := NULL;          -- 4262811
50304 l_tmp_amt                    := NULL;          -- 4262811
50305 --
50306  
50307 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50308     l_balance_type_code <> 'B' THEN
50309 IF NVL(p_source_89,'
50310 ') =  'CLEAR_CLEAR' AND 
50311 NVL(p_source_90,'
50312 ') =  'DISCOUNT' AND 
50313 (NVL(p_source_21,'
50314 ') =  'ITEM' OR 
50315 NVL(p_source_21,'
50316 ') =  'MISCELLANEOUS' OR 
50317 NVL(p_source_21,'
50318 ') =  'FREIGHT' OR 
50319 NVL(p_source_21,'
50320 ') =  'REC_TAX' OR 
50321 NVL(p_source_21,'
50322 ') =  'NONREC_TAX' OR 
50323 NVL(p_source_21,'
50324 ') =  'TIPV' OR 
50325 NVL(p_source_21,'
50326 ') =  'TRV' OR 
50327 NVL(p_source_21,'
50328 ') =  'IPV' OR 
50329 NVL(p_source_21,'
50330 ') =  'ACCRUAL')
50331  THEN 
50332 
50333    --
50334    XLA_AE_LINES_PKG.SetNewLine;
50335 
50336    p_balance_type_code          := l_balance_type_code;
50337    -- set the flag so later we will know whether the gain loss line needs to be created
50338    
50339    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
50340      p_actual_flag :='A';
50341    END IF;
50342 
50343    --
50344    -- bulk performance
50345    --
50346    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50347                                       p_header_num   => 0); -- 4262811
50348    --
50349    -- set accounting line options
50350    --
50351    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50352            p_natural_side_code          => 'C'
50353          , p_gain_or_loss_flag          => 'N'
50354          , p_gl_transfer_mode_code      => 'S'
50355          , p_acct_entry_type_code       => 'A'
50356          , p_switch_side_flag           => 'Y'
50357          , p_merge_duplicate_code       => 'A'
50358          );
50359    --
50360    l_acc_rev_natural_side_code := 'D';  -- 4262811
50361    -- 
50362    --
50363    -- set accounting line type info
50364    --
50365    xla_ae_lines_pkg.SetAcctLineType
50366       (p_component_type             => l_component_type
50367       ,p_event_type_code            => l_event_type_code
50368       ,p_line_definition_owner_code => l_line_definition_owner_code
50369       ,p_line_definition_code       => l_line_definition_code
50370       ,p_accounting_line_code       => l_component_code
50371       ,p_accounting_line_type_code  => l_component_type_code
50372       ,p_accounting_line_appl_id    => l_component_appl_id
50373       ,p_amb_context_code           => l_amb_context_code
50374       ,p_entity_code                => l_entity_code
50375       ,p_event_class_code           => l_event_class_code);
50376    --
50377    -- set accounting class
50378    --
50379    xla_ae_lines_pkg.SetAcctClass(
50380            p_accounting_class_code  => 'DISCOUNT'
50381          , p_ae_header_id           => l_ae_header_id
50382          );
50383 
50384    --
50385    -- set rounding class
50386    --
50387    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50388                       'DISCOUNT';
50389 
50390    --
50391    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50395    --
50392    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50393    --
50394    -- bulk performance
50396    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50397 
50398    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50399       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50400 
50401    -- 4955764
50402    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50403       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50404 
50405    -- 4458381 Public Sector Enh
50406    
50407    --
50408    -- set accounting attributes for the line type
50409    --
50410    l_entered_amt_idx := 10;
50411    l_accted_amt_idx  := 15;
50412    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
50413    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
50414    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
50415    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
50416    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
50417    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
50418    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
50419    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
50420    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
50421    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
50422    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
50423    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
50424    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
50425    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
50426    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
50427    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
50428    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
50429    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
50430    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
50431    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
50432    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
50433    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
50434    l_rec_acct_attrs.array_char_value(11)  := p_source_55;
50435    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
50436    l_rec_acct_attrs.array_date_value(12)  := p_source_136;
50437    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
50438    l_rec_acct_attrs.array_num_value(13)  := p_source_137;
50439    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
50440    l_rec_acct_attrs.array_char_value(14)  := p_source_138;
50441    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
50442    l_rec_acct_attrs.array_num_value(15)  := p_source_101;
50443    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
50444    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
50445    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
50446    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
50447    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
50448    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
50449    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
50450    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
50451    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
50452    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
50453    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
50454    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
50455    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
50456    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
50457    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
50458    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
50459    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
50460    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
50461 
50462    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50463    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50464 
50465    ---------------------------------------------------------------------------------------------------------------
50466    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50467    ---------------------------------------------------------------------------------------------------------------
50468    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50469 
50470    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50471    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50472 
50473    IF xla_accounting_cache_pkg.GetValueChar
50474          (p_source_code         => 'LEDGER_CATEGORY_CODE'
50475          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50476    AND l_bflow_method_code = 'PRIOR_ENTRY'
50477 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50478    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50479          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50480        )
50481    THEN
50482          xla_ae_lines_pkg.BflowUpgEntry
50483            (p_business_method_code    => l_bflow_method_code
50484            ,p_business_class_code     => l_bflow_class_code
50485            ,p_balance_type            => l_balance_type_code);
50486    ELSE
50487       NULL;
50491    --
50488 -- No business flow processing for business flow method of NONE.
50489    END IF;
50490 
50492    -- call analytical criteria
50493    --
50494    
50495    --
50496    -- call description
50497    --
50498    -- No description or it is inherited.
50499    --
50500    -- call ADRs
50501    -- Bug 4922099
50502    --
50503    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50504         (NVL(l_actual_upg_option, 'N') = 'O') OR
50505         (NVL(l_enc_upg_option, 'N') = 'O')
50506       )
50507    THEN
50508    NULL;
50509    --
50510    --
50511    
50512   l_ccid := AcctDerRule_28(
50513            p_application_id           => p_application_id
50514          , p_ae_header_id             => l_ae_header_id 
50515 , p_source_3 => p_source_3
50516 , p_source_3_meaning => p_source_3_meaning
50517 , p_source_6 => p_source_6
50518 , p_source_7 => p_source_7
50519 , p_source_7_meaning => p_source_7_meaning
50520 , p_source_18 => p_source_18
50521 , p_source_21 => p_source_21
50522 , p_source_21_meaning => p_source_21_meaning
50523 , p_source_32 => p_source_32
50524 , p_source_33 => p_source_33
50525 , p_source_34 => p_source_34
50526          , x_transaction_coa_id       => l_adr_transaction_coa_id
50527          , x_accounting_coa_id        => l_adr_accounting_coa_id
50528          , x_value_type_code          => l_adr_value_type_code
50529          , p_side                     => 'NA'
50530    );
50531 
50532    xla_ae_lines_pkg.set_ccid(
50533     p_code_combination_id          => l_ccid
50534   , p_value_type_code              => l_adr_value_type_code
50535   , p_transaction_coa_id           => l_adr_transaction_coa_id
50536   , p_accounting_coa_id            => l_adr_accounting_coa_id
50537   , p_adr_code                     => 'AP_DISCOUNT'
50538   , p_adr_type_code                => 'S'
50539   , p_component_type               => l_component_type
50540   , p_component_code               => l_component_code
50541   , p_component_type_code          => l_component_type_code
50542   , p_component_appl_id            => l_component_appl_id
50543   , p_amb_context_code             => l_amb_context_code
50544   , p_side                         => 'NA'
50545   );
50546 
50547 
50548    l_segment := AcctDerRule_20(
50549            p_application_id           => p_application_id
50550          , p_ae_header_id             => l_ae_header_id 
50551 , p_source_3 => p_source_3
50552 , p_source_3_meaning => p_source_3_meaning
50553 , p_source_7 => p_source_7
50554 , p_source_7_meaning => p_source_7_meaning
50555 , p_source_18 => p_source_18
50556          , x_transaction_coa_id       => l_adr_transaction_coa_id
50557          , x_accounting_coa_id        => l_adr_accounting_coa_id
50558          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50559          , x_flex_value_set_id        => l_adr_flex_value_set_id
50560          , x_value_type_code          => l_adr_value_type_code
50561          , x_value_combination_id     => l_adr_value_combination_id
50562          , x_value_segment_code       => l_adr_value_segment_code
50563          , p_side                     => 'NA'
50564          , p_override_seg_flag        => 'Y'
50565    );
50566 
50567    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50568 
50569       xla_ae_lines_pkg.set_segment(
50570           p_to_segment_code         => 'GL_BALANCING'
50571         , p_segment_value           => l_segment
50572         , p_from_segment_code       => l_adr_value_segment_code
50573         , p_from_combination_id     => l_adr_value_combination_id
50574         , p_value_type_code         => l_adr_value_type_code
50575         , p_transaction_coa_id      => l_adr_transaction_coa_id
50576         , p_accounting_coa_id       => l_adr_accounting_coa_id
50577         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50578         , p_flex_value_set_id       => l_adr_flex_value_set_id
50579         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
50580         , p_adr_type_code           => 'S'
50581         , p_component_type          => l_component_type
50582         , p_component_code          => l_component_code
50583         , p_component_type_code     => l_component_type_code
50584         , p_component_appl_id       => l_component_appl_id
50585         , p_amb_context_code        => l_amb_context_code
50586         , p_entity_code             => 'AP_PAYMENTS'
50587         , p_event_class_code        => 'RECONCILED PAYMENTS'
50588         , p_side                    => 'NA'
50589         );
50590 
50591   END IF;
50592 
50593    l_segment := AcctDerRule_6(
50594            p_application_id           => p_application_id
50595          , p_ae_header_id             => l_ae_header_id 
50596 , p_source_3 => p_source_3
50597 , p_source_3_meaning => p_source_3_meaning
50598 , p_source_6 => p_source_6
50599 , p_source_7 => p_source_7
50600 , p_source_7_meaning => p_source_7_meaning
50601          , x_transaction_coa_id       => l_adr_transaction_coa_id
50602          , x_accounting_coa_id        => l_adr_accounting_coa_id
50603          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50604          , x_flex_value_set_id        => l_adr_flex_value_set_id
50605          , x_value_type_code          => l_adr_value_type_code
50606          , x_value_combination_id     => l_adr_value_combination_id
50607          , x_value_segment_code       => l_adr_value_segment_code
50608          , p_side                     => 'NA'
50609          , p_override_seg_flag        => 'Y'
50610    );
50611 
50612    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50613 
50614       xla_ae_lines_pkg.set_segment(
50615           p_to_segment_code         => 'GL_ACCOUNT'
50619         , p_value_type_code         => l_adr_value_type_code
50616         , p_segment_value           => l_segment
50617         , p_from_segment_code       => l_adr_value_segment_code
50618         , p_from_combination_id     => l_adr_value_combination_id
50620         , p_transaction_coa_id      => l_adr_transaction_coa_id
50621         , p_accounting_coa_id       => l_adr_accounting_coa_id
50622         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50623         , p_flex_value_set_id       => l_adr_flex_value_set_id
50624         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
50625         , p_adr_type_code           => 'S'
50626         , p_component_type          => l_component_type
50627         , p_component_code          => l_component_code
50628         , p_component_type_code     => l_component_type_code
50629         , p_component_appl_id       => l_component_appl_id
50630         , p_amb_context_code        => l_amb_context_code
50631         , p_entity_code             => 'AP_PAYMENTS'
50632         , p_event_class_code        => 'RECONCILED PAYMENTS'
50633         , p_side                    => 'NA'
50634         );
50635 
50636   END IF;
50637 
50638    --
50639    --
50640    END IF;
50641    --
50642    -- Bug 4922099
50643    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50644           (NVL(l_enc_upg_option, 'N') = 'O')
50645         ) AND
50646         (l_bflow_method_code = 'PRIOR_ENTRY')
50647       )
50648    THEN
50649       IF
50650       --
50651       1 = 2
50652       --
50653       THEN
50654       xla_accounting_err_pkg.build_message
50655                                     (p_appli_s_name            => 'XLA'
50656                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50657                                     ,p_token_1                 => 'LINE_NUMBER'
50658                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
50659                                     ,p_token_2                 => 'LINE_TYPE_NAME'
50660                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
50661                                                                              l_component_type
50662                                                                             ,l_component_code
50663                                                                             ,l_component_type_code
50664                                                                             ,l_component_appl_id
50665                                                                             ,l_amb_context_code
50666                                                                             ,l_entity_code
50667                                                                             ,l_event_class_code
50668                                                                            )
50669                                     ,p_token_3                 => 'OWNER'
50670                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
50671                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
50672                                                                           ,p_lookup_code    => l_component_type_code
50673                                                                          )
50674                                     ,p_token_4                 => 'PRODUCT_NAME'
50675                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50676                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50677                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50678                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50679                                     ,p_ae_header_id            =>  NULL
50680                                        );
50681 
50682         IF (C_LEVEL_ERROR>= g_log_level) THEN
50683                  trace
50684                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50685                       ,p_level    => C_LEVEL_ERROR
50686                       ,p_module   => l_log_module);
50687         END IF;
50688       END IF;
50689    END IF;
50690    --
50691    --
50692    ------------------------------------------------------------------------------------------------
50693    -- 4219869 Business Flow
50694    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50695    -- Prior Entry.  Currently, the following code is always generated.
50696    ------------------------------------------------------------------------------------------------
50697    XLA_AE_LINES_PKG.ValidateCurrentLine;
50698 
50699    ------------------------------------------------------------------------------------
50700    -- 4219869 Business Flow
50701    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50702    ------------------------------------------------------------------------------------
50703    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50704 
50705    ----------------------------------------------------------------------------------
50706    -- 4219869 Business Flow
50707    -- Update journal entry status -- Need to generate this within IF <condition>
50708    ----------------------------------------------------------------------------------
50709    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50710          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50711          ,p_balance_type_code => l_balance_type_code
50712          );
50713 
50714    -------------------------------------------------------------------------------------------
50715    -- 4262811 - Generate the Accrual Reversal lines
50719                               (g_array_event(p_event_id).array_value_num('header_index'));
50716    -------------------------------------------------------------------------------------------
50717    BEGIN
50718       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50720       IF l_acc_rev_flag IS NULL THEN
50721          l_acc_rev_flag := 'N';
50722       END IF;
50723    EXCEPTION
50724       WHEN OTHERS THEN
50725          l_acc_rev_flag := 'N';
50726    END;
50727    --
50728    IF (l_acc_rev_flag = 'Y') THEN
50729 
50730        -- 4645092  ------------------------------------------------------------------------------
50731        -- To allow MPA report to determine if it should generate report process
50732        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50733        ------------------------------------------------------------------------------------------
50734 
50735        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50736        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50737    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
50738    -- call ADRs
50739    -- Bug 4922099
50740    --
50741    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50742         (NVL(l_actual_upg_option, 'N') = 'O') OR
50743         (NVL(l_enc_upg_option, 'N') = 'O')
50744       )
50745    THEN
50746    NULL;
50747    --
50748    --
50749    
50750   l_ccid := AcctDerRule_28(
50751            p_application_id           => p_application_id
50752          , p_ae_header_id             => l_ae_header_id 
50753 , p_source_3 => p_source_3
50754 , p_source_3_meaning => p_source_3_meaning
50755 , p_source_6 => p_source_6
50756 , p_source_7 => p_source_7
50757 , p_source_7_meaning => p_source_7_meaning
50758 , p_source_18 => p_source_18
50759 , p_source_21 => p_source_21
50760 , p_source_21_meaning => p_source_21_meaning
50761 , p_source_32 => p_source_32
50762 , p_source_33 => p_source_33
50763 , p_source_34 => p_source_34
50764          , x_transaction_coa_id       => l_adr_transaction_coa_id
50765          , x_accounting_coa_id        => l_adr_accounting_coa_id
50766          , x_value_type_code          => l_adr_value_type_code
50767          , p_side                     => 'NA'
50768    );
50769 
50770    xla_ae_lines_pkg.set_ccid(
50771     p_code_combination_id          => l_ccid
50772   , p_value_type_code              => l_adr_value_type_code
50773   , p_transaction_coa_id           => l_adr_transaction_coa_id
50774   , p_accounting_coa_id            => l_adr_accounting_coa_id
50775   , p_adr_code                     => 'AP_DISCOUNT'
50776   , p_adr_type_code                => 'S'
50777   , p_component_type               => l_component_type
50778   , p_component_code               => l_component_code
50779   , p_component_type_code          => l_component_type_code
50780   , p_component_appl_id            => l_component_appl_id
50781   , p_amb_context_code             => l_amb_context_code
50782   , p_side                         => 'NA'
50783   );
50784 
50785 
50786    l_segment := AcctDerRule_20(
50787            p_application_id           => p_application_id
50788          , p_ae_header_id             => l_ae_header_id 
50789 , p_source_3 => p_source_3
50790 , p_source_3_meaning => p_source_3_meaning
50791 , p_source_7 => p_source_7
50792 , p_source_7_meaning => p_source_7_meaning
50793 , p_source_18 => p_source_18
50794          , x_transaction_coa_id       => l_adr_transaction_coa_id
50795          , x_accounting_coa_id        => l_adr_accounting_coa_id
50796          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50797          , x_flex_value_set_id        => l_adr_flex_value_set_id
50798          , x_value_type_code          => l_adr_value_type_code
50799          , x_value_combination_id     => l_adr_value_combination_id
50800          , x_value_segment_code       => l_adr_value_segment_code
50801          , p_side                     => 'NA'
50802          , p_override_seg_flag        => 'Y'
50803    );
50804 
50805    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50806 
50807       xla_ae_lines_pkg.set_segment(
50808           p_to_segment_code         => 'GL_BALANCING'
50809         , p_segment_value           => l_segment
50810         , p_from_segment_code       => l_adr_value_segment_code
50811         , p_from_combination_id     => l_adr_value_combination_id
50812         , p_value_type_code         => l_adr_value_type_code
50813         , p_transaction_coa_id      => l_adr_transaction_coa_id
50814         , p_accounting_coa_id       => l_adr_accounting_coa_id
50815         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50816         , p_flex_value_set_id       => l_adr_flex_value_set_id
50817         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
50818         , p_adr_type_code           => 'S'
50819         , p_component_type          => l_component_type
50820         , p_component_code          => l_component_code
50821         , p_component_type_code     => l_component_type_code
50822         , p_component_appl_id       => l_component_appl_id
50823         , p_amb_context_code        => l_amb_context_code
50824         , p_entity_code             => 'AP_PAYMENTS'
50825         , p_event_class_code        => 'RECONCILED PAYMENTS'
50826         , p_side                    => 'NA'
50827         );
50828 
50829   END IF;
50830 
50831    l_segment := AcctDerRule_6(
50832            p_application_id           => p_application_id
50833          , p_ae_header_id             => l_ae_header_id 
50834 , p_source_3 => p_source_3
50835 , p_source_3_meaning => p_source_3_meaning
50836 , p_source_6 => p_source_6
50837 , p_source_7 => p_source_7
50838 , p_source_7_meaning => p_source_7_meaning
50839          , x_transaction_coa_id       => l_adr_transaction_coa_id
50843          , x_value_type_code          => l_adr_value_type_code
50840          , x_accounting_coa_id        => l_adr_accounting_coa_id
50841          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50842          , x_flex_value_set_id        => l_adr_flex_value_set_id
50844          , x_value_combination_id     => l_adr_value_combination_id
50845          , x_value_segment_code       => l_adr_value_segment_code
50846          , p_side                     => 'NA'
50847          , p_override_seg_flag        => 'Y'
50848    );
50849 
50850    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50851 
50852       xla_ae_lines_pkg.set_segment(
50853           p_to_segment_code         => 'GL_ACCOUNT'
50854         , p_segment_value           => l_segment
50855         , p_from_segment_code       => l_adr_value_segment_code
50856         , p_from_combination_id     => l_adr_value_combination_id
50857         , p_value_type_code         => l_adr_value_type_code
50858         , p_transaction_coa_id      => l_adr_transaction_coa_id
50859         , p_accounting_coa_id       => l_adr_accounting_coa_id
50860         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50861         , p_flex_value_set_id       => l_adr_flex_value_set_id
50862         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
50863         , p_adr_type_code           => 'S'
50864         , p_component_type          => l_component_type
50865         , p_component_code          => l_component_code
50866         , p_component_type_code     => l_component_type_code
50867         , p_component_appl_id       => l_component_appl_id
50868         , p_amb_context_code        => l_amb_context_code
50869         , p_entity_code             => 'AP_PAYMENTS'
50870         , p_event_class_code        => 'RECONCILED PAYMENTS'
50871         , p_side                    => 'NA'
50872         );
50873 
50874   END IF;
50875 
50876    --
50877    --
50878    END IF;
50879 
50880        --
50881        -- Update the line information that should be overwritten
50882        --
50883        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50884                                          p_header_num   => 1);
50885        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
50886 
50887        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50888 
50889        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
50890           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50891        END IF;
50892 
50893       --
50894       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50895       --
50896       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50897           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
50898       ELSE
50899           ---------------------------------------------------------------------------------------------------
50900           -- 4262811a Switch Sign
50901           ---------------------------------------------------------------------------------------------------
50902           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
50903           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50904                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50905           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50906                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50907           -- 5132302
50908           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50909                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50910 
50911       END IF;
50912 
50913       -- 4955764
50914       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50915       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50916 
50917 
50918       XLA_AE_LINES_PKG.ValidateCurrentLine;
50919       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50920 
50921       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50922                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50923                ,p_balance_type_code => l_balance_type_code);
50924 
50925    END IF;
50926 
50927    -----------------------------------------------------------------------------------------
50928    -- 4262811 Multiperiod Accounting
50929    -----------------------------------------------------------------------------------------
50930      -- No MPA option is assigned.
50931 
50932 
50933 END IF;
50934 END IF;
50935 --
50936 
50937 --
50938 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50939    trace
50940       (p_msg      => 'END of AcctLineType_108'
50941       ,p_level    => C_LEVEL_PROCEDURE
50942       ,p_module   => l_log_module);
50943 END IF;
50944 --
50945 EXCEPTION
50946   WHEN xla_exceptions_pkg.application_exception THEN
50947       RAISE;
50948   WHEN OTHERS THEN
50949        xla_exceptions_pkg.raise_message
50950            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_108');
50951 END AcctLineType_108;
50952 --
50953 
50954 ---------------------------------------
50955 --
50956 -- PRIVATE FUNCTION
50957 --         AcctLineType_109
50958 --
50959 ---------------------------------------
50960 PROCEDURE AcctLineType_109 (
50961   p_application_id        IN NUMBER
50965  ,p_actual_flag           IN OUT VARCHAR2
50962  ,p_event_id              IN NUMBER
50963  ,p_calculate_acctd_flag  IN VARCHAR2
50964  ,p_calculate_g_l_flag    IN VARCHAR2
50966  ,p_balance_type_code     OUT VARCHAR2
50967  ,p_gain_or_loss_ref      OUT VARCHAR2
50968  
50969 --Automatic Offsets Value
50970  , p_source_3            IN VARCHAR2
50971  , p_source_3_meaning    IN VARCHAR2
50972 --System Discount Account
50973  , p_source_6            IN NUMBER
50974 --Discount Distribution Method
50975  , p_source_7            IN VARCHAR2
50976  , p_source_7_meaning    IN VARCHAR2
50977 --Invoice Distribution Account
50978  , p_source_18            IN NUMBER
50979 --Invoice Distribution Type
50980  , p_source_21            IN VARCHAR2
50981  , p_source_21_meaning    IN VARCHAR2
50982 --Discount Account
50983  , p_source_32            IN NUMBER
50984 --Purchase Order Charge Account
50985  , p_source_33            IN NUMBER
50986 --Purchase Order Variance Account
50987  , p_source_34            IN NUMBER
50988 --Accounting Reversal Indicator
50989  , p_source_41            IN VARCHAR2
50990 --Distribution Link Type
50991  , p_source_43            IN VARCHAR2
50992 --Override Accounted Amount Indicator
50993  , p_source_68            IN VARCHAR2
50994  , p_source_68_meaning    IN VARCHAR2
50995 --Third Party Type
50996  , p_source_71            IN VARCHAR2
50997 --Invoice Distribution Tax Line Identifier
50998  , p_source_74            IN NUMBER
50999 --Invoice Distribution Tax Distribution Identifier from Tax
51000  , p_source_75            IN NUMBER
51001 --Invoice Distribution Summary Tax Line Identifier
51002  , p_source_76            IN NUMBER
51003 --Business Flow Accounts Payable Application Identifier
51004  , p_source_79            IN NUMBER
51005 --Business Flow Invoice Distribution Type
51006  , p_source_80            IN VARCHAR2
51007 --Business Flow Invoice Entity Code
51008  , p_source_81            IN VARCHAR2
51009 --Business Flow Invoice Distribution Identifier
51010  , p_source_82            IN NUMBER
51011 --Business Flow Invoice Identifier
51012  , p_source_83            IN NUMBER
51013 --When to Account for Payment Option
51014  , p_source_89            IN VARCHAR2
51015 --Payment Distribution Type
51016  , p_source_90            IN VARCHAR2
51017  , p_source_90_meaning    IN VARCHAR2
51018 --Payment Distribution Amount
51019  , p_source_91            IN NUMBER
51020 --Payment Distribution Identifier
51021  , p_source_96            IN NUMBER
51022 --Payment Supplier Identifier
51023  , p_source_102            IN NUMBER
51024 --Payment Supplier Site Identifier
51025  , p_source_103            IN NUMBER
51026 --Payment Distribution Reversed Identifier
51027  , p_source_104            IN NUMBER
51028 --Payment Currency Code
51029  , p_source_106            IN VARCHAR2
51030 --Payment Distribution (Payment Rate) Ledger Amount
51031  , p_source_108            IN NUMBER
51032 --Payment Type
51033  , p_source_115            IN VARCHAR2
51034  , p_source_115_meaning    IN VARCHAR2
51035 --Payment Processing Type
51036  , p_source_116            IN VARCHAR2
51037 --Invoice Distribution Amount of the Payment Distribution
51038  , p_source_117            IN NUMBER
51039 --Invoice Exchange Date
51040  , p_source_136            IN DATE
51041 --Invoice Exchange Rate
51042  , p_source_137            IN NUMBER
51043 --Invoice Exchange Rate Type
51044  , p_source_138            IN VARCHAR2
51045 )
51046 IS
51047 
51048 l_component_type              VARCHAR2(80);
51049 l_component_code              VARCHAR2(30);
51050 l_component_type_code         VARCHAR2(1);
51051 l_component_appl_id           INTEGER;
51052 l_amb_context_code            VARCHAR2(30);
51053 l_entity_code                 VARCHAR2(30);
51054 l_event_class_code            VARCHAR2(30);
51055 l_ae_header_id                NUMBER;
51056 l_event_type_code             VARCHAR2(30);
51057 l_line_definition_code        VARCHAR2(30);
51058 l_line_definition_owner_code  VARCHAR2(1);
51059 --
51060 -- adr variables
51061 l_segment                     VARCHAR2(30);
51062 l_ccid                        NUMBER;
51063 l_adr_transaction_coa_id      NUMBER;
51064 l_adr_accounting_coa_id       NUMBER;
51065 l_adr_flexfield_segment_code  VARCHAR2(30);
51066 l_adr_flex_value_set_id       NUMBER;
51067 l_adr_value_type_code         VARCHAR2(30);
51068 l_adr_value_combination_id    NUMBER;
51069 l_adr_value_segment_code      VARCHAR2(30);
51070 
51071 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
51072 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
51073 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
51074 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
51075 
51076 -- 4262811 Variables ------------------------------------------------------------------------------------------
51077 l_entered_amt_idx             NUMBER;
51078 l_accted_amt_idx              NUMBER;
51079 l_acc_rev_flag                VARCHAR2(1);
51080 l_accrual_line_num            NUMBER;
51081 l_tmp_amt                     NUMBER;
51082 l_acc_rev_natural_side_code   VARCHAR2(1);
51083 
51084 l_num_entries                 NUMBER;
51085 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
51086 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
51087 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
51088 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
51089 l_recog_line_1                NUMBER;
51090 l_recog_line_2                NUMBER;
51091 
51092 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
51093 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
51097 
51094 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
51095 
51096 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51098 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
51099 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
51100 
51101 ---------------------------------------------------------------------------------------------------------------
51102 
51103 
51104 --
51105 -- bulk performance
51106 --
51107 l_balance_type_code           VARCHAR2(1);
51108 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
51109 l_log_module                  VARCHAR2(240);
51110 
51111 --
51112 -- Upgrade strategy
51113 --
51114 l_actual_upg_option           VARCHAR2(1);
51115 l_enc_upg_option           VARCHAR2(1);
51116 
51117 --
51118 BEGIN
51119 --
51120 IF g_log_enabled THEN
51121       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_109';
51122 END IF;
51123 --
51124 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51125 
51126       trace
51127          (p_msg      => 'BEGIN of AcctLineType_109'
51128          ,p_level    => C_LEVEL_PROCEDURE
51129          ,p_module   => l_log_module);
51130 
51131 END IF;
51132 --
51133 l_component_type             := 'AMB_JLT';
51134 l_component_code             := 'AP_DISCOUNT_ACCR_PMT';
51135 l_component_type_code        := 'S';
51136 l_component_appl_id          :=  200;
51137 l_amb_context_code           := 'DEFAULT';
51138 l_entity_code                := 'AP_PAYMENTS';
51139 l_event_class_code           := 'PAYMENTS';
51140 l_event_type_code            := 'PAYMENTS_ALL';
51141 l_line_definition_owner_code := 'S';
51142 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
51143 --
51144 l_balance_type_code          := 'A';
51145 l_segment                     := NULL;
51146 l_ccid                        := NULL;
51147 l_adr_transaction_coa_id      := NULL;
51148 l_adr_accounting_coa_id       := NULL;
51149 l_adr_flexfield_segment_code  := NULL;
51150 l_adr_flex_value_set_id       := NULL;
51151 l_adr_value_type_code         := NULL;
51152 l_adr_value_combination_id    := NULL;
51153 l_adr_value_segment_code      := NULL;
51154 
51155 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
51156 l_bflow_class_code           := '';    -- 4219869 Business Flow
51157 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
51158 l_budgetary_control_flag     := 'N';
51159 
51160 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
51161 l_bflow_applied_to_amt       := NULL; -- 5132302
51162 l_entered_amt_idx            := NULL;          -- 4262811
51163 l_accted_amt_idx             := NULL;          -- 4262811
51164 l_acc_rev_flag               := NULL;          -- 4262811
51165 l_accrual_line_num           := NULL;          -- 4262811
51166 l_tmp_amt                    := NULL;          -- 4262811
51167 --
51168  
51169 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51170     l_balance_type_code <> 'B' THEN
51171 IF NVL(p_source_89,'
51172 ') <>  'CLEAR_CLEAR' AND 
51173 NVL(p_source_90,'
51174 ') =  'DISCOUNT' AND 
51175 NVL(p_source_115,'
51176 ') <>  'R' AND 
51177 NVL(p_source_116,'
51178 ') <>  'PAYMENTCARD'
51179  THEN 
51180 
51181    --
51182    XLA_AE_LINES_PKG.SetNewLine;
51183 
51184    p_balance_type_code          := l_balance_type_code;
51185    -- set the flag so later we will know whether the gain loss line needs to be created
51186    
51187    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
51188      p_actual_flag :='A';
51189    END IF;
51190 
51191    --
51192    -- bulk performance
51193    --
51194    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51195                                       p_header_num   => 0); -- 4262811
51196    --
51197    -- set accounting line options
51198    --
51199    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51200            p_natural_side_code          => 'C'
51201          , p_gain_or_loss_flag          => 'N'
51202          , p_gl_transfer_mode_code      => 'S'
51203          , p_acct_entry_type_code       => 'A'
51204          , p_switch_side_flag           => 'Y'
51205          , p_merge_duplicate_code       => 'A'
51206          );
51207    --
51208    l_acc_rev_natural_side_code := 'D';  -- 4262811
51209    -- 
51210    --
51211    -- set accounting line type info
51212    --
51213    xla_ae_lines_pkg.SetAcctLineType
51214       (p_component_type             => l_component_type
51215       ,p_event_type_code            => l_event_type_code
51216       ,p_line_definition_owner_code => l_line_definition_owner_code
51217       ,p_line_definition_code       => l_line_definition_code
51218       ,p_accounting_line_code       => l_component_code
51219       ,p_accounting_line_type_code  => l_component_type_code
51220       ,p_accounting_line_appl_id    => l_component_appl_id
51221       ,p_amb_context_code           => l_amb_context_code
51222       ,p_entity_code                => l_entity_code
51223       ,p_event_class_code           => l_event_class_code);
51224    --
51225    -- set accounting class
51226    --
51227    xla_ae_lines_pkg.SetAcctClass(
51228            p_accounting_class_code  => 'DISCOUNT'
51229          , p_ae_header_id           => l_ae_header_id
51230          );
51231 
51232    --
51233    -- set rounding class
51234    --
51235    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51236                       'DISCOUNT';
51237 
51238    --
51242    -- bulk performance
51239    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51240    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51241    --
51243    --
51244    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51245 
51246    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51247       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51248 
51249    -- 4955764
51250    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51251       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51252 
51253    -- 4458381 Public Sector Enh
51254    
51255    --
51256    -- set accounting attributes for the line type
51257    --
51258    l_entered_amt_idx := 10;
51259    l_accted_amt_idx  := 15;
51260    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
51261    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51262    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
51263    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
51264    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
51265    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
51266    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
51267    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51268    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
51269    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
51270    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
51271    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
51272    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
51273    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51274    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
51275    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
51276    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
51277    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
51278    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
51279    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
51280    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
51281    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
51282    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
51283    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
51284    l_rec_acct_attrs.array_date_value(12)  := p_source_136;
51285    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
51286    l_rec_acct_attrs.array_num_value(13)  := p_source_137;
51287    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
51288    l_rec_acct_attrs.array_char_value(14)  := p_source_138;
51289    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
51290    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
51291    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
51292    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
51293    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
51294    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
51295    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
51296    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
51297    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
51298    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
51299    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
51300    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
51301    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
51302    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
51303    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
51304    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
51305    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
51306    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
51307    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
51308    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
51309 
51310    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51311    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51312 
51313    ---------------------------------------------------------------------------------------------------------------
51314    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51315    ---------------------------------------------------------------------------------------------------------------
51316    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51317 
51318    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51319    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51320 
51321    IF xla_accounting_cache_pkg.GetValueChar
51322          (p_source_code         => 'LEDGER_CATEGORY_CODE'
51323          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51324    AND l_bflow_method_code = 'PRIOR_ENTRY'
51325 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51326    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51327          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51328        )
51329    THEN
51330          xla_ae_lines_pkg.BflowUpgEntry
51331            (p_business_method_code    => l_bflow_method_code
51332            ,p_business_class_code     => l_bflow_class_code
51333            ,p_balance_type            => l_balance_type_code);
51334    ELSE
51335       NULL;
51339    --
51336 -- No business flow processing for business flow method of NONE.
51337    END IF;
51338 
51340    -- call analytical criteria
51341    --
51342    
51343    --
51344    -- call description
51345    --
51346    -- No description or it is inherited.
51347    --
51348    -- call ADRs
51349    -- Bug 4922099
51350    --
51351    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51352         (NVL(l_actual_upg_option, 'N') = 'O') OR
51353         (NVL(l_enc_upg_option, 'N') = 'O')
51354       )
51355    THEN
51356    NULL;
51357    --
51358    --
51359    
51360   l_ccid := AcctDerRule_28(
51361            p_application_id           => p_application_id
51362          , p_ae_header_id             => l_ae_header_id 
51363 , p_source_3 => p_source_3
51364 , p_source_3_meaning => p_source_3_meaning
51365 , p_source_6 => p_source_6
51366 , p_source_7 => p_source_7
51367 , p_source_7_meaning => p_source_7_meaning
51368 , p_source_18 => p_source_18
51369 , p_source_21 => p_source_21
51370 , p_source_21_meaning => p_source_21_meaning
51371 , p_source_32 => p_source_32
51372 , p_source_33 => p_source_33
51373 , p_source_34 => p_source_34
51374          , x_transaction_coa_id       => l_adr_transaction_coa_id
51375          , x_accounting_coa_id        => l_adr_accounting_coa_id
51376          , x_value_type_code          => l_adr_value_type_code
51377          , p_side                     => 'NA'
51378    );
51379 
51380    xla_ae_lines_pkg.set_ccid(
51381     p_code_combination_id          => l_ccid
51382   , p_value_type_code              => l_adr_value_type_code
51383   , p_transaction_coa_id           => l_adr_transaction_coa_id
51384   , p_accounting_coa_id            => l_adr_accounting_coa_id
51385   , p_adr_code                     => 'AP_DISCOUNT'
51386   , p_adr_type_code                => 'S'
51387   , p_component_type               => l_component_type
51388   , p_component_code               => l_component_code
51389   , p_component_type_code          => l_component_type_code
51390   , p_component_appl_id            => l_component_appl_id
51391   , p_amb_context_code             => l_amb_context_code
51392   , p_side                         => 'NA'
51393   );
51394 
51395 
51396    l_segment := AcctDerRule_20(
51397            p_application_id           => p_application_id
51398          , p_ae_header_id             => l_ae_header_id 
51399 , p_source_3 => p_source_3
51400 , p_source_3_meaning => p_source_3_meaning
51401 , p_source_7 => p_source_7
51402 , p_source_7_meaning => p_source_7_meaning
51403 , p_source_18 => p_source_18
51404          , x_transaction_coa_id       => l_adr_transaction_coa_id
51405          , x_accounting_coa_id        => l_adr_accounting_coa_id
51406          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51407          , x_flex_value_set_id        => l_adr_flex_value_set_id
51408          , x_value_type_code          => l_adr_value_type_code
51409          , x_value_combination_id     => l_adr_value_combination_id
51410          , x_value_segment_code       => l_adr_value_segment_code
51411          , p_side                     => 'NA'
51412          , p_override_seg_flag        => 'Y'
51413    );
51414 
51415    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51416 
51417       xla_ae_lines_pkg.set_segment(
51418           p_to_segment_code         => 'GL_BALANCING'
51419         , p_segment_value           => l_segment
51420         , p_from_segment_code       => l_adr_value_segment_code
51421         , p_from_combination_id     => l_adr_value_combination_id
51422         , p_value_type_code         => l_adr_value_type_code
51423         , p_transaction_coa_id      => l_adr_transaction_coa_id
51424         , p_accounting_coa_id       => l_adr_accounting_coa_id
51425         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51426         , p_flex_value_set_id       => l_adr_flex_value_set_id
51427         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
51428         , p_adr_type_code           => 'S'
51429         , p_component_type          => l_component_type
51430         , p_component_code          => l_component_code
51431         , p_component_type_code     => l_component_type_code
51432         , p_component_appl_id       => l_component_appl_id
51433         , p_amb_context_code        => l_amb_context_code
51434         , p_entity_code             => 'AP_PAYMENTS'
51435         , p_event_class_code        => 'PAYMENTS'
51436         , p_side                    => 'NA'
51437         );
51438 
51439   END IF;
51440 
51441    l_segment := AcctDerRule_6(
51442            p_application_id           => p_application_id
51443          , p_ae_header_id             => l_ae_header_id 
51444 , p_source_3 => p_source_3
51445 , p_source_3_meaning => p_source_3_meaning
51446 , p_source_6 => p_source_6
51447 , p_source_7 => p_source_7
51448 , p_source_7_meaning => p_source_7_meaning
51449          , x_transaction_coa_id       => l_adr_transaction_coa_id
51450          , x_accounting_coa_id        => l_adr_accounting_coa_id
51451          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51452          , x_flex_value_set_id        => l_adr_flex_value_set_id
51453          , x_value_type_code          => l_adr_value_type_code
51454          , x_value_combination_id     => l_adr_value_combination_id
51455          , x_value_segment_code       => l_adr_value_segment_code
51456          , p_side                     => 'NA'
51457          , p_override_seg_flag        => 'Y'
51458    );
51459 
51460    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51461 
51462       xla_ae_lines_pkg.set_segment(
51463           p_to_segment_code         => 'GL_ACCOUNT'
51464         , p_segment_value           => l_segment
51468         , p_transaction_coa_id      => l_adr_transaction_coa_id
51465         , p_from_segment_code       => l_adr_value_segment_code
51466         , p_from_combination_id     => l_adr_value_combination_id
51467         , p_value_type_code         => l_adr_value_type_code
51469         , p_accounting_coa_id       => l_adr_accounting_coa_id
51470         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51471         , p_flex_value_set_id       => l_adr_flex_value_set_id
51472         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
51473         , p_adr_type_code           => 'S'
51474         , p_component_type          => l_component_type
51475         , p_component_code          => l_component_code
51476         , p_component_type_code     => l_component_type_code
51477         , p_component_appl_id       => l_component_appl_id
51478         , p_amb_context_code        => l_amb_context_code
51479         , p_entity_code             => 'AP_PAYMENTS'
51480         , p_event_class_code        => 'PAYMENTS'
51481         , p_side                    => 'NA'
51482         );
51483 
51484   END IF;
51485 
51486    --
51487    --
51488    END IF;
51489    --
51490    -- Bug 4922099
51491    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51492           (NVL(l_enc_upg_option, 'N') = 'O')
51493         ) AND
51494         (l_bflow_method_code = 'PRIOR_ENTRY')
51495       )
51496    THEN
51497       IF
51498       --
51499       1 = 2
51500       --
51501       THEN
51502       xla_accounting_err_pkg.build_message
51503                                     (p_appli_s_name            => 'XLA'
51504                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51505                                     ,p_token_1                 => 'LINE_NUMBER'
51506                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
51507                                     ,p_token_2                 => 'LINE_TYPE_NAME'
51508                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
51509                                                                              l_component_type
51510                                                                             ,l_component_code
51511                                                                             ,l_component_type_code
51512                                                                             ,l_component_appl_id
51513                                                                             ,l_amb_context_code
51514                                                                             ,l_entity_code
51515                                                                             ,l_event_class_code
51516                                                                            )
51517                                     ,p_token_3                 => 'OWNER'
51518                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
51519                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
51520                                                                           ,p_lookup_code    => l_component_type_code
51521                                                                          )
51522                                     ,p_token_4                 => 'PRODUCT_NAME'
51523                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51524                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51525                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51526                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51527                                     ,p_ae_header_id            =>  NULL
51528                                        );
51529 
51530         IF (C_LEVEL_ERROR>= g_log_level) THEN
51531                  trace
51532                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51533                       ,p_level    => C_LEVEL_ERROR
51534                       ,p_module   => l_log_module);
51535         END IF;
51536       END IF;
51537    END IF;
51538    --
51539    --
51540    ------------------------------------------------------------------------------------------------
51541    -- 4219869 Business Flow
51542    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51543    -- Prior Entry.  Currently, the following code is always generated.
51544    ------------------------------------------------------------------------------------------------
51545    XLA_AE_LINES_PKG.ValidateCurrentLine;
51546 
51547    ------------------------------------------------------------------------------------
51548    -- 4219869 Business Flow
51549    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51550    ------------------------------------------------------------------------------------
51551    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51552 
51553    ----------------------------------------------------------------------------------
51554    -- 4219869 Business Flow
51555    -- Update journal entry status -- Need to generate this within IF <condition>
51556    ----------------------------------------------------------------------------------
51557    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51558          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51559          ,p_balance_type_code => l_balance_type_code
51560          );
51561 
51562    -------------------------------------------------------------------------------------------
51563    -- 4262811 - Generate the Accrual Reversal lines
51564    -------------------------------------------------------------------------------------------
51568       IF l_acc_rev_flag IS NULL THEN
51565    BEGIN
51566       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51567                               (g_array_event(p_event_id).array_value_num('header_index'));
51569          l_acc_rev_flag := 'N';
51570       END IF;
51571    EXCEPTION
51572       WHEN OTHERS THEN
51573          l_acc_rev_flag := 'N';
51574    END;
51575    --
51576    IF (l_acc_rev_flag = 'Y') THEN
51577 
51578        -- 4645092  ------------------------------------------------------------------------------
51579        -- To allow MPA report to determine if it should generate report process
51580        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51581        ------------------------------------------------------------------------------------------
51582 
51583        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51584        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51585    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
51586    -- call ADRs
51587    -- Bug 4922099
51588    --
51589    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51590         (NVL(l_actual_upg_option, 'N') = 'O') OR
51591         (NVL(l_enc_upg_option, 'N') = 'O')
51592       )
51593    THEN
51594    NULL;
51595    --
51596    --
51597    
51598   l_ccid := AcctDerRule_28(
51599            p_application_id           => p_application_id
51600          , p_ae_header_id             => l_ae_header_id 
51601 , p_source_3 => p_source_3
51602 , p_source_3_meaning => p_source_3_meaning
51603 , p_source_6 => p_source_6
51604 , p_source_7 => p_source_7
51605 , p_source_7_meaning => p_source_7_meaning
51606 , p_source_18 => p_source_18
51607 , p_source_21 => p_source_21
51608 , p_source_21_meaning => p_source_21_meaning
51609 , p_source_32 => p_source_32
51610 , p_source_33 => p_source_33
51611 , p_source_34 => p_source_34
51612          , x_transaction_coa_id       => l_adr_transaction_coa_id
51613          , x_accounting_coa_id        => l_adr_accounting_coa_id
51614          , x_value_type_code          => l_adr_value_type_code
51615          , p_side                     => 'NA'
51616    );
51617 
51618    xla_ae_lines_pkg.set_ccid(
51619     p_code_combination_id          => l_ccid
51620   , p_value_type_code              => l_adr_value_type_code
51621   , p_transaction_coa_id           => l_adr_transaction_coa_id
51622   , p_accounting_coa_id            => l_adr_accounting_coa_id
51623   , p_adr_code                     => 'AP_DISCOUNT'
51624   , p_adr_type_code                => 'S'
51625   , p_component_type               => l_component_type
51626   , p_component_code               => l_component_code
51627   , p_component_type_code          => l_component_type_code
51628   , p_component_appl_id            => l_component_appl_id
51629   , p_amb_context_code             => l_amb_context_code
51630   , p_side                         => 'NA'
51631   );
51632 
51633 
51634    l_segment := AcctDerRule_20(
51635            p_application_id           => p_application_id
51636          , p_ae_header_id             => l_ae_header_id 
51637 , p_source_3 => p_source_3
51638 , p_source_3_meaning => p_source_3_meaning
51639 , p_source_7 => p_source_7
51640 , p_source_7_meaning => p_source_7_meaning
51641 , p_source_18 => p_source_18
51642          , x_transaction_coa_id       => l_adr_transaction_coa_id
51643          , x_accounting_coa_id        => l_adr_accounting_coa_id
51644          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51645          , x_flex_value_set_id        => l_adr_flex_value_set_id
51646          , x_value_type_code          => l_adr_value_type_code
51647          , x_value_combination_id     => l_adr_value_combination_id
51648          , x_value_segment_code       => l_adr_value_segment_code
51649          , p_side                     => 'NA'
51650          , p_override_seg_flag        => 'Y'
51651    );
51652 
51653    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51654 
51655       xla_ae_lines_pkg.set_segment(
51656           p_to_segment_code         => 'GL_BALANCING'
51657         , p_segment_value           => l_segment
51658         , p_from_segment_code       => l_adr_value_segment_code
51659         , p_from_combination_id     => l_adr_value_combination_id
51660         , p_value_type_code         => l_adr_value_type_code
51661         , p_transaction_coa_id      => l_adr_transaction_coa_id
51662         , p_accounting_coa_id       => l_adr_accounting_coa_id
51663         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51664         , p_flex_value_set_id       => l_adr_flex_value_set_id
51665         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
51666         , p_adr_type_code           => 'S'
51667         , p_component_type          => l_component_type
51668         , p_component_code          => l_component_code
51669         , p_component_type_code     => l_component_type_code
51670         , p_component_appl_id       => l_component_appl_id
51671         , p_amb_context_code        => l_amb_context_code
51672         , p_entity_code             => 'AP_PAYMENTS'
51673         , p_event_class_code        => 'PAYMENTS'
51674         , p_side                    => 'NA'
51675         );
51676 
51677   END IF;
51678 
51679    l_segment := AcctDerRule_6(
51680            p_application_id           => p_application_id
51681          , p_ae_header_id             => l_ae_header_id 
51682 , p_source_3 => p_source_3
51683 , p_source_3_meaning => p_source_3_meaning
51684 , p_source_6 => p_source_6
51685 , p_source_7 => p_source_7
51686 , p_source_7_meaning => p_source_7_meaning
51687          , x_transaction_coa_id       => l_adr_transaction_coa_id
51688          , x_accounting_coa_id        => l_adr_accounting_coa_id
51692          , x_value_combination_id     => l_adr_value_combination_id
51689          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51690          , x_flex_value_set_id        => l_adr_flex_value_set_id
51691          , x_value_type_code          => l_adr_value_type_code
51693          , x_value_segment_code       => l_adr_value_segment_code
51694          , p_side                     => 'NA'
51695          , p_override_seg_flag        => 'Y'
51696    );
51697 
51698    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51699 
51700       xla_ae_lines_pkg.set_segment(
51701           p_to_segment_code         => 'GL_ACCOUNT'
51702         , p_segment_value           => l_segment
51703         , p_from_segment_code       => l_adr_value_segment_code
51704         , p_from_combination_id     => l_adr_value_combination_id
51705         , p_value_type_code         => l_adr_value_type_code
51706         , p_transaction_coa_id      => l_adr_transaction_coa_id
51707         , p_accounting_coa_id       => l_adr_accounting_coa_id
51708         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51709         , p_flex_value_set_id       => l_adr_flex_value_set_id
51710         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
51711         , p_adr_type_code           => 'S'
51712         , p_component_type          => l_component_type
51713         , p_component_code          => l_component_code
51714         , p_component_type_code     => l_component_type_code
51715         , p_component_appl_id       => l_component_appl_id
51716         , p_amb_context_code        => l_amb_context_code
51717         , p_entity_code             => 'AP_PAYMENTS'
51718         , p_event_class_code        => 'PAYMENTS'
51719         , p_side                    => 'NA'
51720         );
51721 
51722   END IF;
51723 
51724    --
51725    --
51726    END IF;
51727 
51728        --
51729        -- Update the line information that should be overwritten
51730        --
51731        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
51732                                          p_header_num   => 1);
51733        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
51734 
51735        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
51736 
51737        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
51738           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
51739        END IF;
51740 
51741       --
51742       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
51743       --
51744       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
51745           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
51746       ELSE
51747           ---------------------------------------------------------------------------------------------------
51748           -- 4262811a Switch Sign
51749           ---------------------------------------------------------------------------------------------------
51750           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
51751           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51752                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51753           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51754                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51755           -- 5132302
51756           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
51757                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51758 
51759       END IF;
51760 
51761       -- 4955764
51762       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51763       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
51764 
51765 
51766       XLA_AE_LINES_PKG.ValidateCurrentLine;
51767       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51768 
51769       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51770                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
51771                ,p_balance_type_code => l_balance_type_code);
51772 
51773    END IF;
51774 
51775    -----------------------------------------------------------------------------------------
51776    -- 4262811 Multiperiod Accounting
51777    -----------------------------------------------------------------------------------------
51778      -- No MPA option is assigned.
51779 
51780 
51781 END IF;
51782 END IF;
51783 --
51784 
51785 --
51786 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51787    trace
51788       (p_msg      => 'END of AcctLineType_109'
51789       ,p_level    => C_LEVEL_PROCEDURE
51790       ,p_module   => l_log_module);
51791 END IF;
51792 --
51793 EXCEPTION
51794   WHEN xla_exceptions_pkg.application_exception THEN
51795       RAISE;
51796   WHEN OTHERS THEN
51797        xla_exceptions_pkg.raise_message
51798            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_109');
51799 END AcctLineType_109;
51800 --
51801 
51802 ---------------------------------------
51803 --
51804 -- PRIVATE FUNCTION
51805 --         AcctLineType_110
51806 --
51807 ---------------------------------------
51808 PROCEDURE AcctLineType_110 (
51809   p_application_id        IN NUMBER
51810  ,p_event_id              IN NUMBER
51811  ,p_calculate_acctd_flag  IN VARCHAR2
51815  ,p_gain_or_loss_ref      OUT VARCHAR2
51812  ,p_calculate_g_l_flag    IN VARCHAR2
51813  ,p_actual_flag           IN OUT VARCHAR2
51814  ,p_balance_type_code     OUT VARCHAR2
51816  
51817 --Automatic Offsets Value
51818  , p_source_3            IN VARCHAR2
51819  , p_source_3_meaning    IN VARCHAR2
51820 --System Discount Account
51821  , p_source_6            IN NUMBER
51822 --Discount Distribution Method
51823  , p_source_7            IN VARCHAR2
51824  , p_source_7_meaning    IN VARCHAR2
51825 --Invoice Distribution Account
51826  , p_source_18            IN NUMBER
51827 --Invoice Distribution Type
51828  , p_source_21            IN VARCHAR2
51829  , p_source_21_meaning    IN VARCHAR2
51830 --Discount Account
51831  , p_source_32            IN NUMBER
51832 --Purchase Order Charge Account
51833  , p_source_33            IN NUMBER
51834 --Purchase Order Variance Account
51835  , p_source_34            IN NUMBER
51836 --Accounting Reversal Indicator
51837  , p_source_41            IN VARCHAR2
51838 --Distribution Link Type
51839  , p_source_43            IN VARCHAR2
51840 --Override Accounted Amount Indicator
51841  , p_source_68            IN VARCHAR2
51842  , p_source_68_meaning    IN VARCHAR2
51843 --Third Party Type
51844  , p_source_71            IN VARCHAR2
51845 --Invoice Distribution Tax Line Identifier
51846  , p_source_74            IN NUMBER
51847 --Invoice Distribution Tax Distribution Identifier from Tax
51848  , p_source_75            IN NUMBER
51849 --Invoice Distribution Summary Tax Line Identifier
51850  , p_source_76            IN NUMBER
51851 --Business Flow Accounts Payable Application Identifier
51852  , p_source_79            IN NUMBER
51853 --Business Flow Invoice Distribution Type
51854  , p_source_80            IN VARCHAR2
51855 --Business Flow Invoice Entity Code
51856  , p_source_81            IN VARCHAR2
51857 --Business Flow Invoice Distribution Identifier
51858  , p_source_82            IN NUMBER
51859 --Business Flow Invoice Identifier
51860  , p_source_83            IN NUMBER
51861 --When to Account for Payment Option
51862  , p_source_89            IN VARCHAR2
51863 --Payment Distribution Type
51864  , p_source_90            IN VARCHAR2
51865  , p_source_90_meaning    IN VARCHAR2
51866 --Payment Distribution Amount
51867  , p_source_91            IN NUMBER
51868 --Payment Distribution Identifier
51869  , p_source_96            IN NUMBER
51870 --Payment Supplier Identifier
51871  , p_source_102            IN NUMBER
51872 --Payment Supplier Site Identifier
51873  , p_source_103            IN NUMBER
51874 --Payment Distribution Reversed Identifier
51875  , p_source_104            IN NUMBER
51876 --Payment Currency Code
51877  , p_source_106            IN VARCHAR2
51878 --Payment Distribution (Invoice Rate) Ledger Amount
51879  , p_source_109            IN NUMBER
51880 --Payment Type
51881  , p_source_115            IN VARCHAR2
51882  , p_source_115_meaning    IN VARCHAR2
51883 --Invoice Exchange Date
51884  , p_source_136            IN DATE
51885 --Invoice Exchange Rate
51886  , p_source_137            IN NUMBER
51887 --Invoice Exchange Rate Type
51888  , p_source_138            IN VARCHAR2
51889 )
51890 IS
51891 
51892 l_component_type              VARCHAR2(80);
51893 l_component_code              VARCHAR2(30);
51894 l_component_type_code         VARCHAR2(1);
51895 l_component_appl_id           INTEGER;
51896 l_amb_context_code            VARCHAR2(30);
51897 l_entity_code                 VARCHAR2(30);
51898 l_event_class_code            VARCHAR2(30);
51899 l_ae_header_id                NUMBER;
51900 l_event_type_code             VARCHAR2(30);
51901 l_line_definition_code        VARCHAR2(30);
51902 l_line_definition_owner_code  VARCHAR2(1);
51903 --
51904 -- adr variables
51905 l_segment                     VARCHAR2(30);
51906 l_ccid                        NUMBER;
51907 l_adr_transaction_coa_id      NUMBER;
51908 l_adr_accounting_coa_id       NUMBER;
51909 l_adr_flexfield_segment_code  VARCHAR2(30);
51910 l_adr_flex_value_set_id       NUMBER;
51911 l_adr_value_type_code         VARCHAR2(30);
51912 l_adr_value_combination_id    NUMBER;
51913 l_adr_value_segment_code      VARCHAR2(30);
51914 
51915 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
51916 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
51917 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
51918 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
51919 
51920 -- 4262811 Variables ------------------------------------------------------------------------------------------
51921 l_entered_amt_idx             NUMBER;
51922 l_accted_amt_idx              NUMBER;
51923 l_acc_rev_flag                VARCHAR2(1);
51924 l_accrual_line_num            NUMBER;
51925 l_tmp_amt                     NUMBER;
51926 l_acc_rev_natural_side_code   VARCHAR2(1);
51927 
51928 l_num_entries                 NUMBER;
51929 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
51930 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
51931 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
51932 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
51933 l_recog_line_1                NUMBER;
51934 l_recog_line_2                NUMBER;
51935 
51936 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
51937 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
51938 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
51939 
51940 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51941 
51942 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
51946 
51943 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
51944 
51945 ---------------------------------------------------------------------------------------------------------------
51947 
51948 --
51949 -- bulk performance
51950 --
51951 l_balance_type_code           VARCHAR2(1);
51952 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
51953 l_log_module                  VARCHAR2(240);
51954 
51955 --
51956 -- Upgrade strategy
51957 --
51958 l_actual_upg_option           VARCHAR2(1);
51959 l_enc_upg_option           VARCHAR2(1);
51960 
51961 --
51962 BEGIN
51963 --
51964 IF g_log_enabled THEN
51965       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_110';
51966 END IF;
51967 --
51968 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51969 
51970       trace
51971          (p_msg      => 'BEGIN of AcctLineType_110'
51972          ,p_level    => C_LEVEL_PROCEDURE
51973          ,p_module   => l_log_module);
51974 
51975 END IF;
51976 --
51977 l_component_type             := 'AMB_JLT';
51978 l_component_code             := 'AP_DISCOUNT_ACCR_REF';
51979 l_component_type_code        := 'S';
51980 l_component_appl_id          :=  200;
51981 l_amb_context_code           := 'DEFAULT';
51982 l_entity_code                := 'AP_PAYMENTS';
51983 l_event_class_code           := 'REFUNDS';
51984 l_event_type_code            := 'REFUNDS_ALL';
51985 l_line_definition_owner_code := 'S';
51986 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
51987 --
51988 l_balance_type_code          := 'A';
51989 l_segment                     := NULL;
51990 l_ccid                        := NULL;
51991 l_adr_transaction_coa_id      := NULL;
51992 l_adr_accounting_coa_id       := NULL;
51993 l_adr_flexfield_segment_code  := NULL;
51994 l_adr_flex_value_set_id       := NULL;
51995 l_adr_value_type_code         := NULL;
51996 l_adr_value_combination_id    := NULL;
51997 l_adr_value_segment_code      := NULL;
51998 
51999 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
52000 l_bflow_class_code           := '';    -- 4219869 Business Flow
52001 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
52002 l_budgetary_control_flag     := 'N';
52003 
52004 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
52005 l_bflow_applied_to_amt       := NULL; -- 5132302
52006 l_entered_amt_idx            := NULL;          -- 4262811
52007 l_accted_amt_idx             := NULL;          -- 4262811
52008 l_acc_rev_flag               := NULL;          -- 4262811
52009 l_accrual_line_num           := NULL;          -- 4262811
52010 l_tmp_amt                    := NULL;          -- 4262811
52011 --
52012  
52013 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52014     l_balance_type_code <> 'B' THEN
52015 IF NVL(p_source_89,'
52016 ') <>  'CLEAR_CLEAR' AND 
52017 NVL(p_source_90,'
52018 ') =  'DISCOUNT' AND 
52019 NVL(p_source_115,'
52020 ') =  'R'
52021  THEN 
52022 
52023    --
52024    XLA_AE_LINES_PKG.SetNewLine;
52025 
52026    p_balance_type_code          := l_balance_type_code;
52027    -- set the flag so later we will know whether the gain loss line needs to be created
52028    
52029    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
52030      p_actual_flag :='A';
52031    END IF;
52032 
52033    --
52034    -- bulk performance
52035    --
52036    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52037                                       p_header_num   => 0); -- 4262811
52038    --
52039    -- set accounting line options
52040    --
52041    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52042            p_natural_side_code          => 'C'
52043          , p_gain_or_loss_flag          => 'N'
52044          , p_gl_transfer_mode_code      => 'S'
52045          , p_acct_entry_type_code       => 'A'
52046          , p_switch_side_flag           => 'Y'
52047          , p_merge_duplicate_code       => 'A'
52048          );
52049    --
52050    l_acc_rev_natural_side_code := 'D';  -- 4262811
52051    -- 
52052    --
52053    -- set accounting line type info
52054    --
52055    xla_ae_lines_pkg.SetAcctLineType
52056       (p_component_type             => l_component_type
52057       ,p_event_type_code            => l_event_type_code
52058       ,p_line_definition_owner_code => l_line_definition_owner_code
52059       ,p_line_definition_code       => l_line_definition_code
52060       ,p_accounting_line_code       => l_component_code
52061       ,p_accounting_line_type_code  => l_component_type_code
52062       ,p_accounting_line_appl_id    => l_component_appl_id
52063       ,p_amb_context_code           => l_amb_context_code
52064       ,p_entity_code                => l_entity_code
52065       ,p_event_class_code           => l_event_class_code);
52066    --
52067    -- set accounting class
52068    --
52069    xla_ae_lines_pkg.SetAcctClass(
52070            p_accounting_class_code  => 'DISCOUNT'
52071          , p_ae_header_id           => l_ae_header_id
52072          );
52073 
52074    --
52075    -- set rounding class
52076    --
52077    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52078                       'DISCOUNT';
52079 
52080    --
52081    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52082    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52083    --
52084    -- bulk performance
52085    --
52089       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52086    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52087 
52088    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52090 
52091    -- 4955764
52092    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52093       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52094 
52095    -- 4458381 Public Sector Enh
52096    
52097    --
52098    -- set accounting attributes for the line type
52099    --
52100    l_entered_amt_idx := 9;
52101    l_accted_amt_idx  := 14;
52102    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
52103    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
52104    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
52105    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
52106    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
52107    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
52108    l_rec_acct_attrs.array_char_value(3)  := p_source_80;
52109    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
52110    l_rec_acct_attrs.array_char_value(4)  := p_source_81;
52111    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
52112    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
52113    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
52114    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
52115    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
52116    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
52117    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
52118    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
52119    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
52120    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
52121    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
52122    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
52123    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
52124    l_rec_acct_attrs.array_date_value(11)  := p_source_136;
52125    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
52126    l_rec_acct_attrs.array_num_value(12)  := p_source_137;
52127    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
52128    l_rec_acct_attrs.array_char_value(13)  := p_source_138;
52129    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
52130    l_rec_acct_attrs.array_num_value(14)  := p_source_109;
52131    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
52132    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
52133    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
52134    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
52135    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
52136    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
52137    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
52138    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
52139    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
52140    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
52141    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
52142    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
52143    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
52144    l_rec_acct_attrs.array_num_value(21)  := p_source_74;
52145    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
52146    l_rec_acct_attrs.array_num_value(22)  := p_source_75;
52147    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
52148    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
52149 
52150    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
52151    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
52152 
52153    ---------------------------------------------------------------------------------------------------------------
52154    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
52155    ---------------------------------------------------------------------------------------------------------------
52156    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52157 
52158    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52159    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52160 
52161    IF xla_accounting_cache_pkg.GetValueChar
52162          (p_source_code         => 'LEDGER_CATEGORY_CODE'
52163          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52164    AND l_bflow_method_code = 'PRIOR_ENTRY'
52165 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52166    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52167          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52168        )
52169    THEN
52170          xla_ae_lines_pkg.BflowUpgEntry
52171            (p_business_method_code    => l_bflow_method_code
52172            ,p_business_class_code     => l_bflow_class_code
52173            ,p_balance_type            => l_balance_type_code);
52174    ELSE
52175       NULL;
52176 -- No business flow processing for business flow method of NONE.
52177    END IF;
52178 
52179    --
52180    -- call analytical criteria
52181    --
52182    
52183    --
52184    -- call description
52185    --
52186    -- No description or it is inherited.
52187    --
52188    -- call ADRs
52189    -- Bug 4922099
52190    --
52194       )
52191    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52192         (NVL(l_actual_upg_option, 'N') = 'O') OR
52193         (NVL(l_enc_upg_option, 'N') = 'O')
52195    THEN
52196    NULL;
52197    --
52198    --
52199    
52200   l_ccid := AcctDerRule_28(
52201            p_application_id           => p_application_id
52202          , p_ae_header_id             => l_ae_header_id 
52203 , p_source_3 => p_source_3
52204 , p_source_3_meaning => p_source_3_meaning
52205 , p_source_6 => p_source_6
52206 , p_source_7 => p_source_7
52207 , p_source_7_meaning => p_source_7_meaning
52208 , p_source_18 => p_source_18
52209 , p_source_21 => p_source_21
52210 , p_source_21_meaning => p_source_21_meaning
52211 , p_source_32 => p_source_32
52212 , p_source_33 => p_source_33
52213 , p_source_34 => p_source_34
52214          , x_transaction_coa_id       => l_adr_transaction_coa_id
52215          , x_accounting_coa_id        => l_adr_accounting_coa_id
52216          , x_value_type_code          => l_adr_value_type_code
52217          , p_side                     => 'NA'
52218    );
52219 
52220    xla_ae_lines_pkg.set_ccid(
52221     p_code_combination_id          => l_ccid
52222   , p_value_type_code              => l_adr_value_type_code
52223   , p_transaction_coa_id           => l_adr_transaction_coa_id
52224   , p_accounting_coa_id            => l_adr_accounting_coa_id
52225   , p_adr_code                     => 'AP_DISCOUNT'
52226   , p_adr_type_code                => 'S'
52227   , p_component_type               => l_component_type
52228   , p_component_code               => l_component_code
52229   , p_component_type_code          => l_component_type_code
52230   , p_component_appl_id            => l_component_appl_id
52231   , p_amb_context_code             => l_amb_context_code
52232   , p_side                         => 'NA'
52233   );
52234 
52235 
52236    l_segment := AcctDerRule_20(
52237            p_application_id           => p_application_id
52238          , p_ae_header_id             => l_ae_header_id 
52239 , p_source_3 => p_source_3
52240 , p_source_3_meaning => p_source_3_meaning
52241 , p_source_7 => p_source_7
52242 , p_source_7_meaning => p_source_7_meaning
52243 , p_source_18 => p_source_18
52244          , x_transaction_coa_id       => l_adr_transaction_coa_id
52245          , x_accounting_coa_id        => l_adr_accounting_coa_id
52246          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
52247          , x_flex_value_set_id        => l_adr_flex_value_set_id
52248          , x_value_type_code          => l_adr_value_type_code
52249          , x_value_combination_id     => l_adr_value_combination_id
52250          , x_value_segment_code       => l_adr_value_segment_code
52251          , p_side                     => 'NA'
52252          , p_override_seg_flag        => 'Y'
52253    );
52254 
52255    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
52256 
52257       xla_ae_lines_pkg.set_segment(
52258           p_to_segment_code         => 'GL_BALANCING'
52259         , p_segment_value           => l_segment
52260         , p_from_segment_code       => l_adr_value_segment_code
52261         , p_from_combination_id     => l_adr_value_combination_id
52262         , p_value_type_code         => l_adr_value_type_code
52263         , p_transaction_coa_id      => l_adr_transaction_coa_id
52264         , p_accounting_coa_id       => l_adr_accounting_coa_id
52265         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52266         , p_flex_value_set_id       => l_adr_flex_value_set_id
52267         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
52268         , p_adr_type_code           => 'S'
52269         , p_component_type          => l_component_type
52270         , p_component_code          => l_component_code
52271         , p_component_type_code     => l_component_type_code
52272         , p_component_appl_id       => l_component_appl_id
52273         , p_amb_context_code        => l_amb_context_code
52274         , p_entity_code             => 'AP_PAYMENTS'
52275         , p_event_class_code        => 'REFUNDS'
52276         , p_side                    => 'NA'
52277         );
52278 
52279   END IF;
52280 
52281    l_segment := AcctDerRule_6(
52282            p_application_id           => p_application_id
52283          , p_ae_header_id             => l_ae_header_id 
52284 , p_source_3 => p_source_3
52285 , p_source_3_meaning => p_source_3_meaning
52286 , p_source_6 => p_source_6
52287 , p_source_7 => p_source_7
52288 , p_source_7_meaning => p_source_7_meaning
52289          , x_transaction_coa_id       => l_adr_transaction_coa_id
52290          , x_accounting_coa_id        => l_adr_accounting_coa_id
52291          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
52292          , x_flex_value_set_id        => l_adr_flex_value_set_id
52293          , x_value_type_code          => l_adr_value_type_code
52294          , x_value_combination_id     => l_adr_value_combination_id
52295          , x_value_segment_code       => l_adr_value_segment_code
52296          , p_side                     => 'NA'
52297          , p_override_seg_flag        => 'Y'
52298    );
52299 
52300    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
52301 
52302       xla_ae_lines_pkg.set_segment(
52303           p_to_segment_code         => 'GL_ACCOUNT'
52304         , p_segment_value           => l_segment
52305         , p_from_segment_code       => l_adr_value_segment_code
52306         , p_from_combination_id     => l_adr_value_combination_id
52307         , p_value_type_code         => l_adr_value_type_code
52308         , p_transaction_coa_id      => l_adr_transaction_coa_id
52309         , p_accounting_coa_id       => l_adr_accounting_coa_id
52310         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52314         , p_component_type          => l_component_type
52311         , p_flex_value_set_id       => l_adr_flex_value_set_id
52312         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
52313         , p_adr_type_code           => 'S'
52315         , p_component_code          => l_component_code
52316         , p_component_type_code     => l_component_type_code
52317         , p_component_appl_id       => l_component_appl_id
52318         , p_amb_context_code        => l_amb_context_code
52319         , p_entity_code             => 'AP_PAYMENTS'
52320         , p_event_class_code        => 'REFUNDS'
52321         , p_side                    => 'NA'
52322         );
52323 
52324   END IF;
52325 
52326    --
52327    --
52328    END IF;
52329    --
52330    -- Bug 4922099
52331    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52332           (NVL(l_enc_upg_option, 'N') = 'O')
52333         ) AND
52334         (l_bflow_method_code = 'PRIOR_ENTRY')
52335       )
52336    THEN
52337       IF
52338       --
52339       1 = 2
52340       --
52341       THEN
52342       xla_accounting_err_pkg.build_message
52343                                     (p_appli_s_name            => 'XLA'
52344                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52345                                     ,p_token_1                 => 'LINE_NUMBER'
52346                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
52347                                     ,p_token_2                 => 'LINE_TYPE_NAME'
52348                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
52349                                                                              l_component_type
52350                                                                             ,l_component_code
52351                                                                             ,l_component_type_code
52352                                                                             ,l_component_appl_id
52353                                                                             ,l_amb_context_code
52354                                                                             ,l_entity_code
52355                                                                             ,l_event_class_code
52356                                                                            )
52357                                     ,p_token_3                 => 'OWNER'
52358                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
52359                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
52360                                                                           ,p_lookup_code    => l_component_type_code
52361                                                                          )
52362                                     ,p_token_4                 => 'PRODUCT_NAME'
52363                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52364                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52365                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52366                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52367                                     ,p_ae_header_id            =>  NULL
52368                                        );
52369 
52370         IF (C_LEVEL_ERROR>= g_log_level) THEN
52371                  trace
52372                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52373                       ,p_level    => C_LEVEL_ERROR
52374                       ,p_module   => l_log_module);
52375         END IF;
52376       END IF;
52377    END IF;
52378    --
52379    --
52380    ------------------------------------------------------------------------------------------------
52381    -- 4219869 Business Flow
52382    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52383    -- Prior Entry.  Currently, the following code is always generated.
52384    ------------------------------------------------------------------------------------------------
52385    XLA_AE_LINES_PKG.ValidateCurrentLine;
52386 
52387    ------------------------------------------------------------------------------------
52388    -- 4219869 Business Flow
52389    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52390    ------------------------------------------------------------------------------------
52391    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52392 
52393    ----------------------------------------------------------------------------------
52394    -- 4219869 Business Flow
52395    -- Update journal entry status -- Need to generate this within IF <condition>
52396    ----------------------------------------------------------------------------------
52397    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52398          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52399          ,p_balance_type_code => l_balance_type_code
52400          );
52401 
52402    -------------------------------------------------------------------------------------------
52403    -- 4262811 - Generate the Accrual Reversal lines
52404    -------------------------------------------------------------------------------------------
52405    BEGIN
52406       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52407                               (g_array_event(p_event_id).array_value_num('header_index'));
52408       IF l_acc_rev_flag IS NULL THEN
52409          l_acc_rev_flag := 'N';
52410       END IF;
52411    EXCEPTION
52415    --
52412       WHEN OTHERS THEN
52413          l_acc_rev_flag := 'N';
52414    END;
52416    IF (l_acc_rev_flag = 'Y') THEN
52417 
52418        -- 4645092  ------------------------------------------------------------------------------
52419        -- To allow MPA report to determine if it should generate report process
52420        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52421        ------------------------------------------------------------------------------------------
52422 
52423        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52424        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52425    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
52426    -- call ADRs
52427    -- Bug 4922099
52428    --
52429    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52430         (NVL(l_actual_upg_option, 'N') = 'O') OR
52431         (NVL(l_enc_upg_option, 'N') = 'O')
52432       )
52433    THEN
52434    NULL;
52435    --
52436    --
52437    
52438   l_ccid := AcctDerRule_28(
52439            p_application_id           => p_application_id
52440          , p_ae_header_id             => l_ae_header_id 
52441 , p_source_3 => p_source_3
52442 , p_source_3_meaning => p_source_3_meaning
52443 , p_source_6 => p_source_6
52444 , p_source_7 => p_source_7
52445 , p_source_7_meaning => p_source_7_meaning
52446 , p_source_18 => p_source_18
52447 , p_source_21 => p_source_21
52448 , p_source_21_meaning => p_source_21_meaning
52449 , p_source_32 => p_source_32
52450 , p_source_33 => p_source_33
52451 , p_source_34 => p_source_34
52452          , x_transaction_coa_id       => l_adr_transaction_coa_id
52453          , x_accounting_coa_id        => l_adr_accounting_coa_id
52454          , x_value_type_code          => l_adr_value_type_code
52455          , p_side                     => 'NA'
52456    );
52457 
52458    xla_ae_lines_pkg.set_ccid(
52459     p_code_combination_id          => l_ccid
52460   , p_value_type_code              => l_adr_value_type_code
52461   , p_transaction_coa_id           => l_adr_transaction_coa_id
52462   , p_accounting_coa_id            => l_adr_accounting_coa_id
52463   , p_adr_code                     => 'AP_DISCOUNT'
52464   , p_adr_type_code                => 'S'
52465   , p_component_type               => l_component_type
52466   , p_component_code               => l_component_code
52467   , p_component_type_code          => l_component_type_code
52468   , p_component_appl_id            => l_component_appl_id
52469   , p_amb_context_code             => l_amb_context_code
52470   , p_side                         => 'NA'
52471   );
52472 
52473 
52474    l_segment := AcctDerRule_20(
52475            p_application_id           => p_application_id
52476          , p_ae_header_id             => l_ae_header_id 
52477 , p_source_3 => p_source_3
52478 , p_source_3_meaning => p_source_3_meaning
52479 , p_source_7 => p_source_7
52480 , p_source_7_meaning => p_source_7_meaning
52481 , p_source_18 => p_source_18
52482          , x_transaction_coa_id       => l_adr_transaction_coa_id
52483          , x_accounting_coa_id        => l_adr_accounting_coa_id
52484          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
52485          , x_flex_value_set_id        => l_adr_flex_value_set_id
52486          , x_value_type_code          => l_adr_value_type_code
52487          , x_value_combination_id     => l_adr_value_combination_id
52488          , x_value_segment_code       => l_adr_value_segment_code
52489          , p_side                     => 'NA'
52490          , p_override_seg_flag        => 'Y'
52491    );
52492 
52493    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
52494 
52495       xla_ae_lines_pkg.set_segment(
52496           p_to_segment_code         => 'GL_BALANCING'
52497         , p_segment_value           => l_segment
52498         , p_from_segment_code       => l_adr_value_segment_code
52499         , p_from_combination_id     => l_adr_value_combination_id
52500         , p_value_type_code         => l_adr_value_type_code
52501         , p_transaction_coa_id      => l_adr_transaction_coa_id
52502         , p_accounting_coa_id       => l_adr_accounting_coa_id
52503         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52504         , p_flex_value_set_id       => l_adr_flex_value_set_id
52505         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
52506         , p_adr_type_code           => 'S'
52507         , p_component_type          => l_component_type
52508         , p_component_code          => l_component_code
52509         , p_component_type_code     => l_component_type_code
52510         , p_component_appl_id       => l_component_appl_id
52511         , p_amb_context_code        => l_amb_context_code
52512         , p_entity_code             => 'AP_PAYMENTS'
52513         , p_event_class_code        => 'REFUNDS'
52514         , p_side                    => 'NA'
52515         );
52516 
52517   END IF;
52518 
52519    l_segment := AcctDerRule_6(
52520            p_application_id           => p_application_id
52521          , p_ae_header_id             => l_ae_header_id 
52522 , p_source_3 => p_source_3
52523 , p_source_3_meaning => p_source_3_meaning
52524 , p_source_6 => p_source_6
52525 , p_source_7 => p_source_7
52526 , p_source_7_meaning => p_source_7_meaning
52527          , x_transaction_coa_id       => l_adr_transaction_coa_id
52528          , x_accounting_coa_id        => l_adr_accounting_coa_id
52529          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
52530          , x_flex_value_set_id        => l_adr_flex_value_set_id
52534          , p_side                     => 'NA'
52531          , x_value_type_code          => l_adr_value_type_code
52532          , x_value_combination_id     => l_adr_value_combination_id
52533          , x_value_segment_code       => l_adr_value_segment_code
52535          , p_override_seg_flag        => 'Y'
52536    );
52537 
52538    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
52539 
52540       xla_ae_lines_pkg.set_segment(
52541           p_to_segment_code         => 'GL_ACCOUNT'
52542         , p_segment_value           => l_segment
52543         , p_from_segment_code       => l_adr_value_segment_code
52544         , p_from_combination_id     => l_adr_value_combination_id
52545         , p_value_type_code         => l_adr_value_type_code
52546         , p_transaction_coa_id      => l_adr_transaction_coa_id
52547         , p_accounting_coa_id       => l_adr_accounting_coa_id
52548         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52549         , p_flex_value_set_id       => l_adr_flex_value_set_id
52550         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
52551         , p_adr_type_code           => 'S'
52552         , p_component_type          => l_component_type
52553         , p_component_code          => l_component_code
52554         , p_component_type_code     => l_component_type_code
52555         , p_component_appl_id       => l_component_appl_id
52556         , p_amb_context_code        => l_amb_context_code
52557         , p_entity_code             => 'AP_PAYMENTS'
52558         , p_event_class_code        => 'REFUNDS'
52559         , p_side                    => 'NA'
52560         );
52561 
52562   END IF;
52563 
52564    --
52565    --
52566    END IF;
52567 
52568        --
52569        -- Update the line information that should be overwritten
52570        --
52571        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52572                                          p_header_num   => 1);
52573        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
52574 
52575        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52576 
52577        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
52578           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52579        END IF;
52580 
52581       --
52582       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52583       --
52584       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52585           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
52586       ELSE
52587           ---------------------------------------------------------------------------------------------------
52588           -- 4262811a Switch Sign
52589           ---------------------------------------------------------------------------------------------------
52590           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
52591           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52592                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52593           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52594                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52595           -- 5132302
52596           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52597                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52598 
52599       END IF;
52600 
52601       -- 4955764
52602       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52603       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52604 
52605 
52606       XLA_AE_LINES_PKG.ValidateCurrentLine;
52607       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52608 
52609       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52610                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52611                ,p_balance_type_code => l_balance_type_code);
52612 
52613    END IF;
52614 
52615    -----------------------------------------------------------------------------------------
52616    -- 4262811 Multiperiod Accounting
52617    -----------------------------------------------------------------------------------------
52618      -- No MPA option is assigned.
52619 
52620 
52621 END IF;
52622 END IF;
52623 --
52624 
52625 --
52626 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52627    trace
52628       (p_msg      => 'END of AcctLineType_110'
52629       ,p_level    => C_LEVEL_PROCEDURE
52630       ,p_module   => l_log_module);
52631 END IF;
52632 --
52633 EXCEPTION
52634   WHEN xla_exceptions_pkg.application_exception THEN
52635       RAISE;
52636   WHEN OTHERS THEN
52637        xla_exceptions_pkg.raise_message
52638            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_110');
52639 END AcctLineType_110;
52640 --
52641 
52642 ---------------------------------------
52643 --
52644 -- PRIVATE FUNCTION
52645 --         AcctLineType_111
52646 --
52647 ---------------------------------------
52648 PROCEDURE AcctLineType_111 (
52649   p_application_id        IN NUMBER
52650  ,p_event_id              IN NUMBER
52651  ,p_calculate_acctd_flag  IN VARCHAR2
52652  ,p_calculate_g_l_flag    IN VARCHAR2
52653  ,p_actual_flag           IN OUT VARCHAR2
52657 --Invoice Distribution Description
52654  ,p_balance_type_code     OUT VARCHAR2
52655  ,p_gain_or_loss_ref      OUT VARCHAR2
52656  
52658  , p_source_1            IN VARCHAR2
52659 --Automatic Offsets Value
52660  , p_source_3            IN VARCHAR2
52661  , p_source_3_meaning    IN VARCHAR2
52662 --Purchase Order Rate Variance Gain Account
52663  , p_source_8            IN NUMBER
52664 --Invoice Distribution Ledger Amount
52665  , p_source_9            IN NUMBER
52666 --Destination Type of the PO Distribution
52667  , p_source_10            IN VARCHAR2
52668  , p_source_10_meaning    IN VARCHAR2
52669 --Purchase Order Rate Variance Loss Account
52670  , p_source_11            IN NUMBER
52671 --Invoice Distribution Account
52672  , p_source_18            IN NUMBER
52673 --Invoice Distribution Type
52674  , p_source_21            IN VARCHAR2
52675  , p_source_21_meaning    IN VARCHAR2
52676 --Automatic Offsets Flag
52677  , p_source_35            IN VARCHAR2
52678  , p_source_35_meaning    IN VARCHAR2
52679 --Accounting Reversal Indicator
52680  , p_source_41            IN VARCHAR2
52681 --Distribution Link Type
52682  , p_source_43            IN VARCHAR2
52683 --Allocation to Main Distribution Identifier
52684  , p_source_45            IN NUMBER
52685 --Invoice Identifier
52686  , p_source_46            IN NUMBER
52687 --Invoice Distribution Identifier
52688  , p_source_52            IN NUMBER
52689 --Payables Encumbrance Upgrade Credit Account
52690  , p_source_53            IN NUMBER
52691 --Payables Encumbrance Upgrade Credit Amount
52692  , p_source_54            IN NUMBER
52693 --Invoice Currency Code
52694  , p_source_55            IN VARCHAR2
52695 --Payables Encumbrance Upgrade Credit Base Amount
52696  , p_source_56            IN NUMBER
52697 --Payables Encumbrance Upgrade Debit Account
52698  , p_source_57            IN NUMBER
52699 --Payables Encumbrance Upgrade Debit Amount
52700  , p_source_58            IN NUMBER
52701 --Payables Encumbrance Upgrade Debit Base Amount
52702  , p_source_59            IN NUMBER
52703 --Payables Encumbrance Upgrade Option
52704  , p_source_60            IN VARCHAR2
52705 --Invoice Distribution Amount
52706  , p_source_61            IN NUMBER
52707 --Deferred Accounting End Date
52708  , p_source_65            IN DATE
52709 --Deferred Accounting Option
52710  , p_source_66            IN VARCHAR2
52711 --Deferred Accounting Start Date
52712  , p_source_67            IN DATE
52713 --Override Accounted Amount Indicator
52714  , p_source_68            IN VARCHAR2
52715  , p_source_68_meaning    IN VARCHAR2
52716 --Invoice Supplier Identifier
52717  , p_source_69            IN NUMBER
52718 --Invoice Supplier Site Identifier
52719  , p_source_70            IN NUMBER
52720 --Third Party Type
52721  , p_source_71            IN VARCHAR2
52722 --Parent Reversal Identifier
52723  , p_source_72            IN NUMBER
52724 --Invoice Distribution Statistical Amount
52725  , p_source_73            IN NUMBER
52726 --Invoice Distribution Tax Line Identifier
52727  , p_source_74            IN NUMBER
52728 --Invoice Distribution Tax Distribution Identifier from Tax
52729  , p_source_75            IN NUMBER
52730 --Invoice Distribution Summary Tax Line Identifier
52731  , p_source_76            IN NUMBER
52732 --Payables Upgrade Credit Encumbrance Type Identifier
52733  , p_source_77            IN NUMBER
52734 --Payables Upgrade Debit Encumbrance Type Identifier
52735  , p_source_78            IN NUMBER
52736 --Business Flow Accounts Payable Application Identifier
52737  , p_source_79            IN NUMBER
52738 --Business Flow Invoice Distribution Type
52739  , p_source_80            IN VARCHAR2
52740 --Business Flow Invoice Entity Code
52741  , p_source_81            IN VARCHAR2
52742 --Business Flow Invoice Distribution Identifier
52743  , p_source_82            IN NUMBER
52744 --Business Flow Invoice Identifier
52745  , p_source_83            IN NUMBER
52746 --Accrue on Receipt Option
52747  , p_source_84            IN VARCHAR2
52748  , p_source_84_meaning    IN VARCHAR2
52749 --Invoice Exchange Date
52750  , p_source_136            IN DATE
52751 --Invoice Exchange Rate
52752  , p_source_137            IN NUMBER
52753 --Invoice Exchange Rate Type
52754  , p_source_138            IN VARCHAR2
52755 )
52756 IS
52757 
52758 l_component_type              VARCHAR2(80);
52759 l_component_code              VARCHAR2(30);
52760 l_component_type_code         VARCHAR2(1);
52761 l_component_appl_id           INTEGER;
52762 l_amb_context_code            VARCHAR2(30);
52763 l_entity_code                 VARCHAR2(30);
52764 l_event_class_code            VARCHAR2(30);
52765 l_ae_header_id                NUMBER;
52766 l_event_type_code             VARCHAR2(30);
52767 l_line_definition_code        VARCHAR2(30);
52768 l_line_definition_owner_code  VARCHAR2(1);
52769 --
52770 -- adr variables
52771 l_segment                     VARCHAR2(30);
52772 l_ccid                        NUMBER;
52773 l_adr_transaction_coa_id      NUMBER;
52774 l_adr_accounting_coa_id       NUMBER;
52775 l_adr_flexfield_segment_code  VARCHAR2(30);
52776 l_adr_flex_value_set_id       NUMBER;
52777 l_adr_value_type_code         VARCHAR2(30);
52778 l_adr_value_combination_id    NUMBER;
52779 l_adr_value_segment_code      VARCHAR2(30);
52780 
52781 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
52782 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
52783 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
52784 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
52785 
52786 -- 4262811 Variables ------------------------------------------------------------------------------------------
52790 l_accrual_line_num            NUMBER;
52787 l_entered_amt_idx             NUMBER;
52788 l_accted_amt_idx              NUMBER;
52789 l_acc_rev_flag                VARCHAR2(1);
52791 l_tmp_amt                     NUMBER;
52792 l_acc_rev_natural_side_code   VARCHAR2(1);
52793 
52794 l_num_entries                 NUMBER;
52795 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
52796 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
52797 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
52798 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
52799 l_recog_line_1                NUMBER;
52800 l_recog_line_2                NUMBER;
52801 
52802 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
52803 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
52804 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
52805 
52806 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52807 
52808 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
52809 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
52810 
52811 ---------------------------------------------------------------------------------------------------------------
52812 
52813 
52814 --
52815 -- bulk performance
52816 --
52817 l_balance_type_code           VARCHAR2(1);
52818 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
52819 l_log_module                  VARCHAR2(240);
52820 
52821 --
52822 -- Upgrade strategy
52823 --
52824 l_actual_upg_option           VARCHAR2(1);
52825 l_enc_upg_option           VARCHAR2(1);
52826 
52827 --
52828 BEGIN
52829 --
52830 IF g_log_enabled THEN
52831       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_111';
52832 END IF;
52833 --
52834 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52835 
52836       trace
52837          (p_msg      => 'BEGIN of AcctLineType_111'
52838          ,p_level    => C_LEVEL_PROCEDURE
52839          ,p_module   => l_log_module);
52840 
52841 END IF;
52842 --
52843 l_component_type             := 'AMB_JLT';
52844 l_component_code             := 'AP_EX_RATE_VAR_CM';
52845 l_component_type_code        := 'S';
52846 l_component_appl_id          :=  200;
52847 l_amb_context_code           := 'DEFAULT';
52848 l_entity_code                := 'AP_INVOICES';
52849 l_event_class_code           := 'CREDIT MEMOS';
52850 l_event_type_code            := 'CREDIT MEMOS_ALL';
52851 l_line_definition_owner_code := 'S';
52852 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
52853 --
52854 l_balance_type_code          := 'A';
52855 l_segment                     := NULL;
52856 l_ccid                        := NULL;
52857 l_adr_transaction_coa_id      := NULL;
52858 l_adr_accounting_coa_id       := NULL;
52859 l_adr_flexfield_segment_code  := NULL;
52860 l_adr_flex_value_set_id       := NULL;
52861 l_adr_value_type_code         := NULL;
52862 l_adr_value_combination_id    := NULL;
52863 l_adr_value_segment_code      := NULL;
52864 
52865 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
52866 l_bflow_class_code           := '';    -- 4219869 Business Flow
52867 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
52868 l_budgetary_control_flag     := 'N';
52869 
52870 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
52871 l_bflow_applied_to_amt       := NULL; -- 5132302
52872 l_entered_amt_idx            := NULL;          -- 4262811
52873 l_accted_amt_idx             := NULL;          -- 4262811
52874 l_acc_rev_flag               := NULL;          -- 4262811
52875 l_accrual_line_num           := NULL;          -- 4262811
52876 l_tmp_amt                    := NULL;          -- 4262811
52877 --
52878 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
52879             (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
52880                return;
52881   END IF;
52882   
52883 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52884     l_balance_type_code <> 'B' THEN
52885 IF NVL(p_source_21,'
52886 ') =  'ERV' AND 
52887 NVL(p_source_84,'
52888 ') =  'Y'
52889  THEN 
52890 
52891    --
52892    XLA_AE_LINES_PKG.SetNewLine;
52893 
52894    p_balance_type_code          := l_balance_type_code;
52895    -- set the flag so later we will know whether the gain loss line needs to be created
52896    
52897    IF(l_balance_type_code = 'A' ) THEN
52898      p_actual_flag :='G';
52899    END IF;
52900 
52901    --
52902    -- bulk performance
52903    --
52904    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52905                                       p_header_num   => 0); -- 4262811
52906    --
52907    -- set accounting line options
52908    --
52909    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52910            p_natural_side_code          => 'D'
52911          , p_gain_or_loss_flag          => 'Y'
52912          , p_gl_transfer_mode_code      => 'S'
52913          , p_acct_entry_type_code       => 'A'
52914          , p_switch_side_flag           => 'Y'
52915          , p_merge_duplicate_code       => 'A'
52916          );
52917    --
52918    l_acc_rev_natural_side_code := 'C';  -- 4262811
52919    -- 
52920    --
52921    -- set accounting line type info
52922    --
52923    xla_ae_lines_pkg.SetAcctLineType
52927       ,p_line_definition_code       => l_line_definition_code
52924       (p_component_type             => l_component_type
52925       ,p_event_type_code            => l_event_type_code
52926       ,p_line_definition_owner_code => l_line_definition_owner_code
52928       ,p_accounting_line_code       => l_component_code
52929       ,p_accounting_line_type_code  => l_component_type_code
52930       ,p_accounting_line_appl_id    => l_component_appl_id
52931       ,p_amb_context_code           => l_amb_context_code
52932       ,p_entity_code                => l_entity_code
52933       ,p_event_class_code           => l_event_class_code);
52934    --
52935    -- set accounting class
52936    --
52937    xla_ae_lines_pkg.SetAcctClass(
52938            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
52939          , p_ae_header_id           => l_ae_header_id
52940          );
52941 
52942    --
52943    -- set rounding class
52944    --
52945    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52946                       'EXCHANGE_RATE_VARIANCE';
52947 
52948    --
52949    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52950    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52951    --
52952    -- bulk performance
52953    --
52954    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52955 
52956    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52957       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52958 
52959    -- 4955764
52960    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52961       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52962 
52963    -- 4458381 Public Sector Enh
52964    
52965    --
52966    -- set accounting attributes for the line type
52967    --
52968    l_entered_amt_idx := 23;
52969    l_accted_amt_idx  := 28;
52970    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
52971    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
52972    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
52973    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
52974    l_rec_acct_attrs.array_num_value(2)  := 
52975 xla_ae_sources_pkg.GetSystemSourceNum(
52976    p_source_code           => 'XLA_EVENT_APPL_ID'
52977  , p_source_type_code      => 'Y'
52978  , p_source_application_id =>  602
52979 );
52980    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
52981    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
52982    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
52983    l_rec_acct_attrs.array_char_value(4)  := 
52984 xla_ae_sources_pkg.GetSystemSourceChar(
52985    p_source_code           => 'XLA_ENTITY_CODE'
52986  , p_source_type_code      => 'Y'
52987  , p_source_application_id =>  602
52988 );
52989    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
52990    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
52991    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
52992    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
52993    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
52994    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
52995    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
52996    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
52997    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
52998    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
52999    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
53000    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
53001    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53002    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
53003    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
53004    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
53005    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
53006    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
53007    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
53008    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
53009    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
53010    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
53011    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
53012    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
53013    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
53014    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
53015    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
53016    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
53017    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
53018    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
53019    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
53020    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
53021    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
53022    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
53023    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
53024    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
53025    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
53026    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
53030    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
53027    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
53028    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
53029    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
53031    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
53032    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
53033    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
53034    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
53035    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
53036    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
53037    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
53038    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
53039    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
53040    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
53041    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
53042    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
53043    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
53044    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
53045    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
53046    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
53047    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
53048    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
53049    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
53050    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
53051    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
53052    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
53053    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
53054    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
53055    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
53056    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
53057    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
53058    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
53059    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
53060    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
53061    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
53062    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
53063    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
53064    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
53065    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
53066    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
53067 
53068    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53069    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53070 
53071    ---------------------------------------------------------------------------------------------------------------
53072    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53073    ---------------------------------------------------------------------------------------------------------------
53074    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53075 
53076    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53077    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53078 
53079    IF xla_accounting_cache_pkg.GetValueChar
53080          (p_source_code         => 'LEDGER_CATEGORY_CODE'
53081          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53082    AND l_bflow_method_code = 'PRIOR_ENTRY'
53083 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53084    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53085          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53086        )
53087    THEN
53088          xla_ae_lines_pkg.BflowUpgEntry
53089            (p_business_method_code    => l_bflow_method_code
53090            ,p_business_class_code     => l_bflow_class_code
53091            ,p_balance_type            => l_balance_type_code);
53092    ELSE
53093       NULL;
53094 -- No business flow processing for business flow method of NONE.
53095    END IF;
53096 
53097    --
53098    -- call analytical criteria
53099    --
53100    
53101    --
53102    -- call description
53103    --
53104    
53105 xla_ae_lines_pkg.SetLineDescription(
53106    p_ae_header_id => l_ae_header_id
53107   ,p_description  => Description_2 (
53108      p_application_id         => p_application_id
53109    , p_ae_header_id           => l_ae_header_id 
53110 , p_source_1 => p_source_1
53111    )
53112 );
53113 
53114 
53115    --
53116    -- call ADRs
53117    -- Bug 4922099
53118    --
53119    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53120         (NVL(l_actual_upg_option, 'N') = 'O') OR
53121         (NVL(l_enc_upg_option, 'N') = 'O')
53122       )
53123    THEN
53124    NULL;
53125    --
53126    --
53127    
53128   l_ccid := AcctDerRule_29(
53129            p_application_id           => p_application_id
53130          , p_ae_header_id             => l_ae_header_id 
53131 , p_source_3 => p_source_3
53132 , p_source_3_meaning => p_source_3_meaning
53133 , p_source_8 => p_source_8
53134 , p_source_9 => p_source_9
53135 , p_source_10 => p_source_10
53136 , p_source_10_meaning => p_source_10_meaning
53137 , p_source_11 => p_source_11
53138 , p_source_18 => p_source_18
53139 , p_source_35 => p_source_35
53143          , x_value_type_code          => l_adr_value_type_code
53140 , p_source_35_meaning => p_source_35_meaning
53141          , x_transaction_coa_id       => l_adr_transaction_coa_id
53142          , x_accounting_coa_id        => l_adr_accounting_coa_id
53144          , p_side                     => 'NA'
53145    );
53146 
53147    xla_ae_lines_pkg.set_ccid(
53148     p_code_combination_id          => l_ccid
53149   , p_value_type_code              => l_adr_value_type_code
53150   , p_transaction_coa_id           => l_adr_transaction_coa_id
53151   , p_accounting_coa_id            => l_adr_accounting_coa_id
53152   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
53153   , p_adr_type_code                => 'S'
53154   , p_component_type               => l_component_type
53155   , p_component_code               => l_component_code
53156   , p_component_type_code          => l_component_type_code
53157   , p_component_appl_id            => l_component_appl_id
53158   , p_amb_context_code             => l_amb_context_code
53159   , p_side                         => 'NA'
53160   );
53161 
53162 
53163    l_segment := AcctDerRule_7(
53164            p_application_id           => p_application_id
53165          , p_ae_header_id             => l_ae_header_id 
53166 , p_source_3 => p_source_3
53167 , p_source_3_meaning => p_source_3_meaning
53168 , p_source_8 => p_source_8
53169 , p_source_9 => p_source_9
53170 , p_source_10 => p_source_10
53171 , p_source_10_meaning => p_source_10_meaning
53172 , p_source_11 => p_source_11
53173          , x_transaction_coa_id       => l_adr_transaction_coa_id
53174          , x_accounting_coa_id        => l_adr_accounting_coa_id
53175          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53176          , x_flex_value_set_id        => l_adr_flex_value_set_id
53177          , x_value_type_code          => l_adr_value_type_code
53178          , x_value_combination_id     => l_adr_value_combination_id
53179          , x_value_segment_code       => l_adr_value_segment_code
53180          , p_side                     => 'NA'
53181          , p_override_seg_flag        => 'Y'
53182    );
53183 
53184    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53185 
53186       xla_ae_lines_pkg.set_segment(
53187           p_to_segment_code         => 'GL_ACCOUNT'
53188         , p_segment_value           => l_segment
53189         , p_from_segment_code       => l_adr_value_segment_code
53190         , p_from_combination_id     => l_adr_value_combination_id
53191         , p_value_type_code         => l_adr_value_type_code
53192         , p_transaction_coa_id      => l_adr_transaction_coa_id
53193         , p_accounting_coa_id       => l_adr_accounting_coa_id
53194         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53195         , p_flex_value_set_id       => l_adr_flex_value_set_id
53196         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
53197         , p_adr_type_code           => 'S'
53198         , p_component_type          => l_component_type
53199         , p_component_code          => l_component_code
53200         , p_component_type_code     => l_component_type_code
53201         , p_component_appl_id       => l_component_appl_id
53202         , p_amb_context_code        => l_amb_context_code
53203         , p_entity_code             => 'AP_INVOICES'
53204         , p_event_class_code        => 'CREDIT MEMOS'
53205         , p_side                    => 'NA'
53206         );
53207 
53208   END IF;
53209 
53210    l_segment := AcctDerRule_22(
53211            p_application_id           => p_application_id
53212          , p_ae_header_id             => l_ae_header_id 
53213 , p_source_3 => p_source_3
53214 , p_source_3_meaning => p_source_3_meaning
53215 , p_source_10 => p_source_10
53216 , p_source_10_meaning => p_source_10_meaning
53217 , p_source_18 => p_source_18
53218          , x_transaction_coa_id       => l_adr_transaction_coa_id
53219          , x_accounting_coa_id        => l_adr_accounting_coa_id
53220          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53221          , x_flex_value_set_id        => l_adr_flex_value_set_id
53222          , x_value_type_code          => l_adr_value_type_code
53223          , x_value_combination_id     => l_adr_value_combination_id
53224          , x_value_segment_code       => l_adr_value_segment_code
53225          , p_side                     => 'NA'
53226          , p_override_seg_flag        => 'Y'
53227    );
53228 
53229    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53230 
53231       xla_ae_lines_pkg.set_segment(
53232           p_to_segment_code         => 'GL_BALANCING'
53233         , p_segment_value           => l_segment
53234         , p_from_segment_code       => l_adr_value_segment_code
53235         , p_from_combination_id     => l_adr_value_combination_id
53236         , p_value_type_code         => l_adr_value_type_code
53237         , p_transaction_coa_id      => l_adr_transaction_coa_id
53238         , p_accounting_coa_id       => l_adr_accounting_coa_id
53239         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53240         , p_flex_value_set_id       => l_adr_flex_value_set_id
53241         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
53242         , p_adr_type_code           => 'S'
53243         , p_component_type          => l_component_type
53244         , p_component_code          => l_component_code
53245         , p_component_type_code     => l_component_type_code
53246         , p_component_appl_id       => l_component_appl_id
53247         , p_amb_context_code        => l_amb_context_code
53248         , p_entity_code             => 'AP_INVOICES'
53249         , p_event_class_code        => 'CREDIT MEMOS'
53250         , p_side                    => 'NA'
53251         );
53255    --
53252 
53253   END IF;
53254 
53256    --
53257    END IF;
53258    --
53259    -- Bug 4922099
53260    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53261           (NVL(l_enc_upg_option, 'N') = 'O')
53262         ) AND
53263         (l_bflow_method_code = 'PRIOR_ENTRY')
53264       )
53265    THEN
53266       IF
53267       --
53268       1 = 2
53269       --
53270       THEN
53271       xla_accounting_err_pkg.build_message
53272                                     (p_appli_s_name            => 'XLA'
53273                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53274                                     ,p_token_1                 => 'LINE_NUMBER'
53275                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
53276                                     ,p_token_2                 => 'LINE_TYPE_NAME'
53277                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
53278                                                                              l_component_type
53279                                                                             ,l_component_code
53280                                                                             ,l_component_type_code
53281                                                                             ,l_component_appl_id
53282                                                                             ,l_amb_context_code
53283                                                                             ,l_entity_code
53284                                                                             ,l_event_class_code
53285                                                                            )
53286                                     ,p_token_3                 => 'OWNER'
53287                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
53288                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
53289                                                                           ,p_lookup_code    => l_component_type_code
53290                                                                          )
53291                                     ,p_token_4                 => 'PRODUCT_NAME'
53292                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53293                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53294                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53295                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53296                                     ,p_ae_header_id            =>  NULL
53297                                        );
53298 
53299         IF (C_LEVEL_ERROR>= g_log_level) THEN
53300                  trace
53301                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53302                       ,p_level    => C_LEVEL_ERROR
53303                       ,p_module   => l_log_module);
53304         END IF;
53305       END IF;
53306    END IF;
53307    --
53308    --
53309    ------------------------------------------------------------------------------------------------
53310    -- 4219869 Business Flow
53311    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53312    -- Prior Entry.  Currently, the following code is always generated.
53313    ------------------------------------------------------------------------------------------------
53314    XLA_AE_LINES_PKG.ValidateCurrentLine;
53315 
53316    ------------------------------------------------------------------------------------
53317    -- 4219869 Business Flow
53318    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53319    ------------------------------------------------------------------------------------
53320    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53321 
53322    ----------------------------------------------------------------------------------
53323    -- 4219869 Business Flow
53324    -- Update journal entry status -- Need to generate this within IF <condition>
53325    ----------------------------------------------------------------------------------
53326    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53327          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53328          ,p_balance_type_code => l_balance_type_code
53329          );
53330 
53331    -------------------------------------------------------------------------------------------
53332    -- 4262811 - Generate the Accrual Reversal lines
53333    -------------------------------------------------------------------------------------------
53334    BEGIN
53335       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53336                               (g_array_event(p_event_id).array_value_num('header_index'));
53337       IF l_acc_rev_flag IS NULL THEN
53338          l_acc_rev_flag := 'N';
53339       END IF;
53340    EXCEPTION
53341       WHEN OTHERS THEN
53342          l_acc_rev_flag := 'N';
53343    END;
53344    --
53345    IF (l_acc_rev_flag = 'Y') THEN
53346 
53347        -- 4645092  ------------------------------------------------------------------------------
53348        -- To allow MPA report to determine if it should generate report process
53349        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53350        ------------------------------------------------------------------------------------------
53351 
53352        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53356    -- Bug 4922099
53353        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53354    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
53355    -- call ADRs
53357    --
53358    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53359         (NVL(l_actual_upg_option, 'N') = 'O') OR
53360         (NVL(l_enc_upg_option, 'N') = 'O')
53361       )
53362    THEN
53363    NULL;
53364    --
53365    --
53366    
53367   l_ccid := AcctDerRule_29(
53368            p_application_id           => p_application_id
53369          , p_ae_header_id             => l_ae_header_id 
53370 , p_source_3 => p_source_3
53371 , p_source_3_meaning => p_source_3_meaning
53372 , p_source_8 => p_source_8
53373 , p_source_9 => p_source_9
53374 , p_source_10 => p_source_10
53375 , p_source_10_meaning => p_source_10_meaning
53376 , p_source_11 => p_source_11
53377 , p_source_18 => p_source_18
53378 , p_source_35 => p_source_35
53379 , p_source_35_meaning => p_source_35_meaning
53380          , x_transaction_coa_id       => l_adr_transaction_coa_id
53381          , x_accounting_coa_id        => l_adr_accounting_coa_id
53382          , x_value_type_code          => l_adr_value_type_code
53383          , p_side                     => 'NA'
53384    );
53385 
53386    xla_ae_lines_pkg.set_ccid(
53387     p_code_combination_id          => l_ccid
53388   , p_value_type_code              => l_adr_value_type_code
53389   , p_transaction_coa_id           => l_adr_transaction_coa_id
53390   , p_accounting_coa_id            => l_adr_accounting_coa_id
53391   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
53392   , p_adr_type_code                => 'S'
53393   , p_component_type               => l_component_type
53394   , p_component_code               => l_component_code
53395   , p_component_type_code          => l_component_type_code
53396   , p_component_appl_id            => l_component_appl_id
53397   , p_amb_context_code             => l_amb_context_code
53398   , p_side                         => 'NA'
53399   );
53400 
53401 
53402    l_segment := AcctDerRule_7(
53403            p_application_id           => p_application_id
53404          , p_ae_header_id             => l_ae_header_id 
53405 , p_source_3 => p_source_3
53406 , p_source_3_meaning => p_source_3_meaning
53407 , p_source_8 => p_source_8
53408 , p_source_9 => p_source_9
53409 , p_source_10 => p_source_10
53410 , p_source_10_meaning => p_source_10_meaning
53411 , p_source_11 => p_source_11
53412          , x_transaction_coa_id       => l_adr_transaction_coa_id
53413          , x_accounting_coa_id        => l_adr_accounting_coa_id
53414          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53415          , x_flex_value_set_id        => l_adr_flex_value_set_id
53416          , x_value_type_code          => l_adr_value_type_code
53417          , x_value_combination_id     => l_adr_value_combination_id
53418          , x_value_segment_code       => l_adr_value_segment_code
53419          , p_side                     => 'NA'
53420          , p_override_seg_flag        => 'Y'
53421    );
53422 
53423    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53424 
53425       xla_ae_lines_pkg.set_segment(
53426           p_to_segment_code         => 'GL_ACCOUNT'
53427         , p_segment_value           => l_segment
53428         , p_from_segment_code       => l_adr_value_segment_code
53429         , p_from_combination_id     => l_adr_value_combination_id
53430         , p_value_type_code         => l_adr_value_type_code
53431         , p_transaction_coa_id      => l_adr_transaction_coa_id
53432         , p_accounting_coa_id       => l_adr_accounting_coa_id
53433         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53434         , p_flex_value_set_id       => l_adr_flex_value_set_id
53435         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
53436         , p_adr_type_code           => 'S'
53437         , p_component_type          => l_component_type
53438         , p_component_code          => l_component_code
53439         , p_component_type_code     => l_component_type_code
53440         , p_component_appl_id       => l_component_appl_id
53441         , p_amb_context_code        => l_amb_context_code
53442         , p_entity_code             => 'AP_INVOICES'
53443         , p_event_class_code        => 'CREDIT MEMOS'
53444         , p_side                    => 'NA'
53445         );
53446 
53447   END IF;
53448 
53449    l_segment := AcctDerRule_22(
53450            p_application_id           => p_application_id
53451          , p_ae_header_id             => l_ae_header_id 
53452 , p_source_3 => p_source_3
53453 , p_source_3_meaning => p_source_3_meaning
53454 , p_source_10 => p_source_10
53455 , p_source_10_meaning => p_source_10_meaning
53456 , p_source_18 => p_source_18
53457          , x_transaction_coa_id       => l_adr_transaction_coa_id
53458          , x_accounting_coa_id        => l_adr_accounting_coa_id
53459          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53460          , x_flex_value_set_id        => l_adr_flex_value_set_id
53461          , x_value_type_code          => l_adr_value_type_code
53462          , x_value_combination_id     => l_adr_value_combination_id
53463          , x_value_segment_code       => l_adr_value_segment_code
53464          , p_side                     => 'NA'
53465          , p_override_seg_flag        => 'Y'
53466    );
53467 
53468    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53469 
53470       xla_ae_lines_pkg.set_segment(
53471           p_to_segment_code         => 'GL_BALANCING'
53472         , p_segment_value           => l_segment
53473         , p_from_segment_code       => l_adr_value_segment_code
53474         , p_from_combination_id     => l_adr_value_combination_id
53478         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53475         , p_value_type_code         => l_adr_value_type_code
53476         , p_transaction_coa_id      => l_adr_transaction_coa_id
53477         , p_accounting_coa_id       => l_adr_accounting_coa_id
53479         , p_flex_value_set_id       => l_adr_flex_value_set_id
53480         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
53481         , p_adr_type_code           => 'S'
53482         , p_component_type          => l_component_type
53483         , p_component_code          => l_component_code
53484         , p_component_type_code     => l_component_type_code
53485         , p_component_appl_id       => l_component_appl_id
53486         , p_amb_context_code        => l_amb_context_code
53487         , p_entity_code             => 'AP_INVOICES'
53488         , p_event_class_code        => 'CREDIT MEMOS'
53489         , p_side                    => 'NA'
53490         );
53491 
53492   END IF;
53493 
53494    --
53495    --
53496    END IF;
53497 
53498        --
53499        -- Update the line information that should be overwritten
53500        --
53501        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53502                                          p_header_num   => 1);
53503        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
53504 
53505        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53506 
53507        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
53508           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53509        END IF;
53510 
53511       --
53512       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53513       --
53514       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53515           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
53516       ELSE
53517           ---------------------------------------------------------------------------------------------------
53518           -- 4262811a Switch Sign
53519           ---------------------------------------------------------------------------------------------------
53520           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
53521           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53522                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53523           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53524                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53525           -- 5132302
53526           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53527                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53528 
53529       END IF;
53530 
53531       -- 4955764
53532       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53533       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53534 
53535 
53536       XLA_AE_LINES_PKG.ValidateCurrentLine;
53537       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53538 
53539       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53540                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53541                ,p_balance_type_code => l_balance_type_code);
53542 
53543    END IF;
53544 
53545    -----------------------------------------------------------------------------------------
53546    -- 4262811 Multiperiod Accounting
53547    -----------------------------------------------------------------------------------------
53548      -- No MPA option is assigned.
53549 
53550 
53551 END IF;
53552 END IF;
53553 --
53554 
53555 --
53556 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53557    trace
53558       (p_msg      => 'END of AcctLineType_111'
53559       ,p_level    => C_LEVEL_PROCEDURE
53560       ,p_module   => l_log_module);
53561 END IF;
53562 --
53563 EXCEPTION
53564   WHEN xla_exceptions_pkg.application_exception THEN
53565       RAISE;
53566   WHEN OTHERS THEN
53567        xla_exceptions_pkg.raise_message
53568            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_111');
53569 END AcctLineType_111;
53570 --
53571 
53572 ---------------------------------------
53573 --
53574 -- PRIVATE FUNCTION
53575 --         AcctLineType_112
53576 --
53577 ---------------------------------------
53578 PROCEDURE AcctLineType_112 (
53579   p_application_id        IN NUMBER
53580  ,p_event_id              IN NUMBER
53581  ,p_calculate_acctd_flag  IN VARCHAR2
53582  ,p_calculate_g_l_flag    IN VARCHAR2
53583  ,p_actual_flag           IN OUT VARCHAR2
53584  ,p_balance_type_code     OUT VARCHAR2
53585  ,p_gain_or_loss_ref      OUT VARCHAR2
53586  
53587 --Invoice Distribution Type
53588  , p_source_21            IN VARCHAR2
53589  , p_source_21_meaning    IN VARCHAR2
53590 --Accounting Reversal Indicator
53591  , p_source_41            IN VARCHAR2
53592 --Distribution Link Type
53593  , p_source_43            IN VARCHAR2
53594 --Allocation to Main Distribution Identifier
53595  , p_source_45            IN NUMBER
53596 --Invoice Identifier
53597  , p_source_46            IN NUMBER
53598 --Invoice Distribution Identifier
53599  , p_source_52            IN NUMBER
53600 --Payables Encumbrance Upgrade Credit Account
53601  , p_source_53            IN NUMBER
53605  , p_source_55            IN VARCHAR2
53602 --Payables Encumbrance Upgrade Credit Amount
53603  , p_source_54            IN NUMBER
53604 --Invoice Currency Code
53606 --Payables Encumbrance Upgrade Credit Base Amount
53607  , p_source_56            IN NUMBER
53608 --Payables Encumbrance Upgrade Debit Account
53609  , p_source_57            IN NUMBER
53610 --Payables Encumbrance Upgrade Debit Amount
53611  , p_source_58            IN NUMBER
53612 --Payables Encumbrance Upgrade Debit Base Amount
53613  , p_source_59            IN NUMBER
53614 --Payables Encumbrance Upgrade Option
53615  , p_source_60            IN VARCHAR2
53616 --Deferred Accounting End Date
53617  , p_source_65            IN DATE
53618 --Deferred Accounting Option
53619  , p_source_66            IN VARCHAR2
53620 --Deferred Accounting Start Date
53621  , p_source_67            IN DATE
53622 --Override Accounted Amount Indicator
53623  , p_source_68            IN VARCHAR2
53624  , p_source_68_meaning    IN VARCHAR2
53625 --Third Party Type
53626  , p_source_71            IN VARCHAR2
53627 --Parent Reversal Identifier
53628  , p_source_72            IN NUMBER
53629 --Invoice Distribution Statistical Amount
53630  , p_source_73            IN NUMBER
53631 --Invoice Distribution Tax Line Identifier
53632  , p_source_74            IN NUMBER
53633 --Invoice Distribution Tax Distribution Identifier from Tax
53634  , p_source_75            IN NUMBER
53635 --Invoice Distribution Summary Tax Line Identifier
53636  , p_source_76            IN NUMBER
53637 --Payables Upgrade Credit Encumbrance Type Identifier
53638  , p_source_77            IN NUMBER
53639 --Payables Upgrade Debit Encumbrance Type Identifier
53640  , p_source_78            IN NUMBER
53641 --Business Flow Accounts Payable Application Identifier
53642  , p_source_79            IN NUMBER
53643 --Business Flow Invoice Distribution Type
53644  , p_source_80            IN VARCHAR2
53645 --Business Flow Invoice Entity Code
53646  , p_source_81            IN VARCHAR2
53647 --Business Flow Invoice Distribution Identifier
53648  , p_source_82            IN NUMBER
53649 --Business Flow Invoice Identifier
53650  , p_source_83            IN NUMBER
53651 --Purchasing Encumbrance Option
53652  , p_source_86            IN VARCHAR2
53653  , p_source_86_meaning    IN VARCHAR2
53654 --Invoice Encumbered Option
53655  , p_source_87            IN VARCHAR2
53656  , p_source_87_meaning    IN VARCHAR2
53657 --Invoice Distribution Encumbrance Amount
53658  , p_source_143            IN NUMBER
53659 --Invoice Distribution Encumbrance Ledger Amount
53660  , p_source_144            IN NUMBER
53661 )
53662 IS
53663 
53664 l_component_type              VARCHAR2(80);
53665 l_component_code              VARCHAR2(30);
53666 l_component_type_code         VARCHAR2(1);
53667 l_component_appl_id           INTEGER;
53668 l_amb_context_code            VARCHAR2(30);
53669 l_entity_code                 VARCHAR2(30);
53670 l_event_class_code            VARCHAR2(30);
53671 l_ae_header_id                NUMBER;
53672 l_event_type_code             VARCHAR2(30);
53673 l_line_definition_code        VARCHAR2(30);
53674 l_line_definition_owner_code  VARCHAR2(1);
53675 --
53676 -- adr variables
53677 l_segment                     VARCHAR2(30);
53678 l_ccid                        NUMBER;
53679 l_adr_transaction_coa_id      NUMBER;
53680 l_adr_accounting_coa_id       NUMBER;
53681 l_adr_flexfield_segment_code  VARCHAR2(30);
53682 l_adr_flex_value_set_id       NUMBER;
53683 l_adr_value_type_code         VARCHAR2(30);
53684 l_adr_value_combination_id    NUMBER;
53685 l_adr_value_segment_code      VARCHAR2(30);
53686 
53687 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
53688 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
53689 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
53690 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
53691 
53692 -- 4262811 Variables ------------------------------------------------------------------------------------------
53693 l_entered_amt_idx             NUMBER;
53694 l_accted_amt_idx              NUMBER;
53695 l_acc_rev_flag                VARCHAR2(1);
53696 l_accrual_line_num            NUMBER;
53697 l_tmp_amt                     NUMBER;
53698 l_acc_rev_natural_side_code   VARCHAR2(1);
53699 
53700 l_num_entries                 NUMBER;
53701 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
53702 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
53703 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
53704 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
53705 l_recog_line_1                NUMBER;
53706 l_recog_line_2                NUMBER;
53707 
53708 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
53709 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
53710 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
53711 
53712 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53713 
53714 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
53715 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
53716 
53717 ---------------------------------------------------------------------------------------------------------------
53718 
53719 
53720 --
53721 -- bulk performance
53722 --
53723 l_balance_type_code           VARCHAR2(1);
53724 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
53725 l_log_module                  VARCHAR2(240);
53726 
53727 --
53728 -- Upgrade strategy
53729 --
53730 l_actual_upg_option           VARCHAR2(1);
53734 BEGIN
53731 l_enc_upg_option           VARCHAR2(1);
53732 
53733 --
53735 --
53736 IF g_log_enabled THEN
53737       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_112';
53738 END IF;
53739 --
53740 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53741 
53742       trace
53743          (p_msg      => 'BEGIN of AcctLineType_112'
53744          ,p_level    => C_LEVEL_PROCEDURE
53745          ,p_module   => l_log_module);
53746 
53747 END IF;
53748 --
53749 l_component_type             := 'AMB_JLT';
53750 l_component_code             := 'AP_EX_RATE_VAR_CM_ENC';
53751 l_component_type_code        := 'S';
53752 l_component_appl_id          :=  200;
53753 l_amb_context_code           := 'DEFAULT';
53754 l_entity_code                := 'AP_INVOICES';
53755 l_event_class_code           := 'CREDIT MEMOS';
53756 l_event_type_code            := 'CREDIT MEMOS_ALL';
53757 l_line_definition_owner_code := 'S';
53758 l_line_definition_code       := 'ENC_REV_CM_ALL';
53759 --
53760 l_balance_type_code          := 'E';
53761 l_segment                     := NULL;
53762 l_ccid                        := NULL;
53763 l_adr_transaction_coa_id      := NULL;
53764 l_adr_accounting_coa_id       := NULL;
53765 l_adr_flexfield_segment_code  := NULL;
53766 l_adr_flex_value_set_id       := NULL;
53767 l_adr_value_type_code         := NULL;
53768 l_adr_value_combination_id    := NULL;
53769 l_adr_value_segment_code      := NULL;
53770 
53771 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
53772 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
53773 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
53774 l_budgetary_control_flag     := 'N';
53775 
53776 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
53777 l_bflow_applied_to_amt       := NULL; -- 5132302
53778 l_entered_amt_idx            := NULL;          -- 4262811
53779 l_accted_amt_idx             := NULL;          -- 4262811
53780 l_acc_rev_flag               := NULL;          -- 4262811
53781 l_accrual_line_num           := NULL;          -- 4262811
53782 l_tmp_amt                    := NULL;          -- 4262811
53783 --
53784 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
53785             (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
53786                return;
53787   END IF;
53788   
53789 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53790     l_balance_type_code <> 'B' THEN
53791 IF NVL(p_source_21,'
53792 ') =  'ERV' AND 
53793 NVL(p_source_86,'
53794 ') =  'Y' AND 
53795 NVL(p_source_87,'
53796 ') =  'Y'
53797  THEN 
53798 
53799    --
53800    XLA_AE_LINES_PKG.SetNewLine;
53801 
53802    p_balance_type_code          := l_balance_type_code;
53803    -- set the flag so later we will know whether the gain loss line needs to be created
53804    
53805    IF(l_balance_type_code = 'A' ) THEN
53806      p_actual_flag :='G';
53807    END IF;
53808 
53809    --
53810    -- bulk performance
53811    --
53812    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53813                                       p_header_num   => 0); -- 4262811
53814    --
53815    -- set accounting line options
53816    --
53817    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53818            p_natural_side_code          => 'C'
53819          , p_gain_or_loss_flag          => 'Y'
53820          , p_gl_transfer_mode_code      => 'S'
53821          , p_acct_entry_type_code       => 'E'
53822          , p_switch_side_flag           => 'Y'
53823          , p_merge_duplicate_code       => 'A'
53824          );
53825    --
53826    l_acc_rev_natural_side_code := 'D';  -- 4262811
53827    -- 
53828    --
53829    -- set accounting line type info
53830    --
53831    xla_ae_lines_pkg.SetAcctLineType
53832       (p_component_type             => l_component_type
53833       ,p_event_type_code            => l_event_type_code
53834       ,p_line_definition_owner_code => l_line_definition_owner_code
53835       ,p_line_definition_code       => l_line_definition_code
53836       ,p_accounting_line_code       => l_component_code
53837       ,p_accounting_line_type_code  => l_component_type_code
53838       ,p_accounting_line_appl_id    => l_component_appl_id
53839       ,p_amb_context_code           => l_amb_context_code
53840       ,p_entity_code                => l_entity_code
53841       ,p_event_class_code           => l_event_class_code);
53842    --
53843    -- set accounting class
53844    --
53845    xla_ae_lines_pkg.SetAcctClass(
53846            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
53847          , p_ae_header_id           => l_ae_header_id
53848          );
53849 
53850    --
53851    -- set rounding class
53852    --
53853    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53854                       'EXCHANGE_RATE_VARIANCE';
53855 
53856    --
53857    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53858    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53859    --
53860    -- bulk performance
53861    --
53862    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53863 
53864    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53865       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53869       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53866 
53867    -- 4955764
53868    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53870 
53871    -- 4458381 Public Sector Enh
53872    
53873    --
53874    -- set accounting attributes for the line type
53875    --
53876    l_entered_amt_idx := 23;
53877    l_accted_amt_idx  := 25;
53878    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
53879    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53880    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
53881    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
53882    l_rec_acct_attrs.array_num_value(2)  := 
53883 xla_ae_sources_pkg.GetSystemSourceNum(
53884    p_source_code           => 'XLA_EVENT_APPL_ID'
53885  , p_source_type_code      => 'Y'
53886  , p_source_application_id =>  602
53887 );
53888    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
53889    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
53890    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
53891    l_rec_acct_attrs.array_char_value(4)  := 
53892 xla_ae_sources_pkg.GetSystemSourceChar(
53893    p_source_code           => 'XLA_ENTITY_CODE'
53894  , p_source_type_code      => 'Y'
53895  , p_source_application_id =>  602
53896 );
53897    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
53898    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
53899    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
53900    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
53901    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
53902    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
53903    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53904    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
53905    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
53906    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
53907    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
53908    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
53909    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53910    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
53911    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
53912    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
53913    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
53914    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
53915    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
53916    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
53917    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
53918    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
53919    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
53920    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
53921    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
53922    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
53923    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
53924    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
53925    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
53926    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
53927    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
53928    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
53929    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
53930    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
53931    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
53932    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
53933    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
53934    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
53935    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
53936    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
53937    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
53938    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
53939    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
53940    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
53941    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
53942    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
53943    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
53944    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
53945    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
53946    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
53947    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
53948    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
53949    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
53950    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
53951    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
53952    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
53953    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
53954    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
53955    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
53956    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
53957    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
53958    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
53959    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
53960    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
53964    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
53961    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
53962    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
53963    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
53965 
53966    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53967    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53968 
53969    ---------------------------------------------------------------------------------------------------------------
53970    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53971    ---------------------------------------------------------------------------------------------------------------
53972    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53973 
53974    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53975    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53976 
53977    IF xla_accounting_cache_pkg.GetValueChar
53978          (p_source_code         => 'LEDGER_CATEGORY_CODE'
53979          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53980    AND l_bflow_method_code = 'PRIOR_ENTRY'
53981 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53982    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53983          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53984        )
53985    THEN
53986          xla_ae_lines_pkg.BflowUpgEntry
53987            (p_business_method_code    => l_bflow_method_code
53988            ,p_business_class_code     => l_bflow_class_code
53989            ,p_balance_type            => l_balance_type_code);
53990    ELSE
53991       NULL;
53992 XLA_AE_LINES_PKG.business_flow_validation(
53993                                 p_business_method_code     => l_bflow_method_code
53994                                ,p_business_class_code      => l_bflow_class_code
53995                                ,p_inherit_description_flag => l_inherit_desc_flag);
53996    END IF;
53997 
53998    --
53999    -- call analytical criteria
54000    --
54001    -- Inherited Analytical Criteria for business flow method of Prior Entry.
54002    --
54003    -- call description
54004    --
54005    -- No description or it is inherited.
54006    --
54007    -- call ADRs
54008    -- Bug 4922099
54009    --
54010    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54011         (NVL(l_actual_upg_option, 'N') = 'O') OR
54012         (NVL(l_enc_upg_option, 'N') = 'O')
54013       )
54014    THEN
54015    NULL;
54016    --
54017    --
54018    
54019    --
54020    --
54021    END IF;
54022    --
54023    -- Bug 4922099
54024    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54025           (NVL(l_enc_upg_option, 'N') = 'O')
54026         ) AND
54027         (l_bflow_method_code = 'PRIOR_ENTRY')
54028       )
54029    THEN
54030       IF
54031       --
54032       1 = 1
54033       --
54034       THEN
54035       xla_accounting_err_pkg.build_message
54036                                     (p_appli_s_name            => 'XLA'
54037                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54038                                     ,p_token_1                 => 'LINE_NUMBER'
54039                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
54040                                     ,p_token_2                 => 'LINE_TYPE_NAME'
54041                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
54042                                                                              l_component_type
54043                                                                             ,l_component_code
54044                                                                             ,l_component_type_code
54045                                                                             ,l_component_appl_id
54046                                                                             ,l_amb_context_code
54047                                                                             ,l_entity_code
54048                                                                             ,l_event_class_code
54049                                                                            )
54050                                     ,p_token_3                 => 'OWNER'
54051                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
54052                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
54053                                                                           ,p_lookup_code    => l_component_type_code
54054                                                                          )
54055                                     ,p_token_4                 => 'PRODUCT_NAME'
54056                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54057                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54058                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54059                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54060                                     ,p_ae_header_id            =>  NULL
54061                                        );
54062 
54063         IF (C_LEVEL_ERROR>= g_log_level) THEN
54064                  trace
54068         END IF;
54065                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54066                       ,p_level    => C_LEVEL_ERROR
54067                       ,p_module   => l_log_module);
54069       END IF;
54070    END IF;
54071    --
54072    --
54073    ------------------------------------------------------------------------------------------------
54074    -- 4219869 Business Flow
54075    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54076    -- Prior Entry.  Currently, the following code is always generated.
54077    ------------------------------------------------------------------------------------------------
54078    -- No ValidateCurrentLine for business flow method of Prior Entry
54079 
54080    ------------------------------------------------------------------------------------
54081    -- 4219869 Business Flow
54082    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54083    ------------------------------------------------------------------------------------
54084    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54085 
54086    ----------------------------------------------------------------------------------
54087    -- 4219869 Business Flow
54088    -- Update journal entry status -- Need to generate this within IF <condition>
54089    ----------------------------------------------------------------------------------
54090    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54091          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54092          ,p_balance_type_code => l_balance_type_code
54093          );
54094 
54095    -------------------------------------------------------------------------------------------
54096    -- 4262811 - Generate the Accrual Reversal lines
54097    -------------------------------------------------------------------------------------------
54098    BEGIN
54099       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54100                               (g_array_event(p_event_id).array_value_num('header_index'));
54101       IF l_acc_rev_flag IS NULL THEN
54102          l_acc_rev_flag := 'N';
54103       END IF;
54104    EXCEPTION
54105       WHEN OTHERS THEN
54106          l_acc_rev_flag := 'N';
54107    END;
54108    --
54109    IF (l_acc_rev_flag = 'Y') THEN
54110 
54111        -- 4645092  ------------------------------------------------------------------------------
54112        -- To allow MPA report to determine if it should generate report process
54113        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54114        ------------------------------------------------------------------------------------------
54115 
54116        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54117        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54118    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
54119    -- call ADRs
54120    -- Bug 4922099
54121    --
54122    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54123         (NVL(l_actual_upg_option, 'N') = 'O') OR
54124         (NVL(l_enc_upg_option, 'N') = 'O')
54125       )
54126    THEN
54127    NULL;
54128    --
54129    --
54130    
54131    --
54132    --
54133    END IF;
54134 
54135        --
54136        -- Update the line information that should be overwritten
54137        --
54138        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54139                                          p_header_num   => 1);
54140        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
54141 
54142        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54143 
54144        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
54145           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54146        END IF;
54147 
54148       --
54149       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54150       --
54151       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54152           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
54153       ELSE
54154           ---------------------------------------------------------------------------------------------------
54155           -- 4262811a Switch Sign
54156           ---------------------------------------------------------------------------------------------------
54157           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
54158           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54159                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54160           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54161                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54162           -- 5132302
54163           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54164                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54165 
54166       END IF;
54167 
54168       -- 4955764
54169       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54170       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54171 
54172 
54176       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54173       XLA_AE_LINES_PKG.ValidateCurrentLine;
54174       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54175 
54177                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54178                ,p_balance_type_code => l_balance_type_code);
54179 
54180    END IF;
54181 
54182    -----------------------------------------------------------------------------------------
54183    -- 4262811 Multiperiod Accounting
54184    -----------------------------------------------------------------------------------------
54185      -- No MPA option is assigned.
54186 
54187 
54188 END IF;
54189 END IF;
54190 --
54191 
54192 --
54193 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54194    trace
54195       (p_msg      => 'END of AcctLineType_112'
54196       ,p_level    => C_LEVEL_PROCEDURE
54197       ,p_module   => l_log_module);
54198 END IF;
54199 --
54200 EXCEPTION
54201   WHEN xla_exceptions_pkg.application_exception THEN
54202       RAISE;
54203   WHEN OTHERS THEN
54204        xla_exceptions_pkg.raise_message
54205            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_112');
54206 END AcctLineType_112;
54207 --
54208 
54209 ---------------------------------------
54210 --
54211 -- PRIVATE FUNCTION
54212 --         AcctLineType_113
54213 --
54214 ---------------------------------------
54215 PROCEDURE AcctLineType_113 (
54216   p_application_id        IN NUMBER
54217  ,p_event_id              IN NUMBER
54218  ,p_calculate_acctd_flag  IN VARCHAR2
54219  ,p_calculate_g_l_flag    IN VARCHAR2
54220  ,p_actual_flag           IN OUT VARCHAR2
54221  ,p_balance_type_code     OUT VARCHAR2
54222  ,p_gain_or_loss_ref      OUT VARCHAR2
54223  
54224 --Invoice Distribution Description
54225  , p_source_1            IN VARCHAR2
54226 --Automatic Offsets Value
54227  , p_source_3            IN VARCHAR2
54228  , p_source_3_meaning    IN VARCHAR2
54229 --Purchase Order Rate Variance Gain Account
54230  , p_source_8            IN NUMBER
54231 --Invoice Distribution Ledger Amount
54232  , p_source_9            IN NUMBER
54233 --Destination Type of the PO Distribution
54234  , p_source_10            IN VARCHAR2
54235  , p_source_10_meaning    IN VARCHAR2
54236 --Purchase Order Rate Variance Loss Account
54237  , p_source_11            IN NUMBER
54238 --Invoice Distribution Account
54239  , p_source_18            IN NUMBER
54240 --Invoice Distribution Type
54241  , p_source_21            IN VARCHAR2
54242  , p_source_21_meaning    IN VARCHAR2
54243 --Automatic Offsets Flag
54244  , p_source_35            IN VARCHAR2
54245  , p_source_35_meaning    IN VARCHAR2
54246 --Accounting Reversal Indicator
54247  , p_source_41            IN VARCHAR2
54248 --Distribution Link Type
54249  , p_source_43            IN VARCHAR2
54250 --Allocation to Main Distribution Identifier
54251  , p_source_45            IN NUMBER
54252 --Invoice Identifier
54253  , p_source_46            IN NUMBER
54254 --Invoice Distribution Identifier
54255  , p_source_52            IN NUMBER
54256 --Payables Encumbrance Upgrade Credit Account
54257  , p_source_53            IN NUMBER
54258 --Payables Encumbrance Upgrade Credit Amount
54259  , p_source_54            IN NUMBER
54260 --Invoice Currency Code
54261  , p_source_55            IN VARCHAR2
54262 --Payables Encumbrance Upgrade Credit Base Amount
54263  , p_source_56            IN NUMBER
54264 --Payables Encumbrance Upgrade Debit Account
54265  , p_source_57            IN NUMBER
54266 --Payables Encumbrance Upgrade Debit Amount
54267  , p_source_58            IN NUMBER
54268 --Payables Encumbrance Upgrade Debit Base Amount
54269  , p_source_59            IN NUMBER
54270 --Payables Encumbrance Upgrade Option
54271  , p_source_60            IN VARCHAR2
54272 --Invoice Distribution Amount
54273  , p_source_61            IN NUMBER
54274 --Deferred Accounting End Date
54275  , p_source_65            IN DATE
54276 --Deferred Accounting Option
54277  , p_source_66            IN VARCHAR2
54278 --Deferred Accounting Start Date
54279  , p_source_67            IN DATE
54280 --Override Accounted Amount Indicator
54281  , p_source_68            IN VARCHAR2
54282  , p_source_68_meaning    IN VARCHAR2
54283 --Invoice Supplier Identifier
54284  , p_source_69            IN NUMBER
54285 --Invoice Supplier Site Identifier
54286  , p_source_70            IN NUMBER
54287 --Third Party Type
54288  , p_source_71            IN VARCHAR2
54289 --Parent Reversal Identifier
54290  , p_source_72            IN NUMBER
54291 --Invoice Distribution Tax Line Identifier
54292  , p_source_74            IN NUMBER
54293 --Invoice Distribution Tax Distribution Identifier from Tax
54294  , p_source_75            IN NUMBER
54295 --Invoice Distribution Summary Tax Line Identifier
54296  , p_source_76            IN NUMBER
54297 --Payables Upgrade Credit Encumbrance Type Identifier
54298  , p_source_77            IN NUMBER
54299 --Payables Upgrade Debit Encumbrance Type Identifier
54300  , p_source_78            IN NUMBER
54301 --Business Flow Accounts Payable Application Identifier
54302  , p_source_79            IN NUMBER
54303 --Business Flow Invoice Distribution Type
54304  , p_source_80            IN VARCHAR2
54305 --Business Flow Invoice Entity Code
54306  , p_source_81            IN VARCHAR2
54307 --Business Flow Invoice Distribution Identifier
54308  , p_source_82            IN NUMBER
54309 --Business Flow Invoice Identifier
54310  , p_source_83            IN NUMBER
54311 --Accrue on Receipt Option
54312  , p_source_84            IN VARCHAR2
54313  , p_source_84_meaning    IN VARCHAR2
54314 --Invoice Exchange Date
54318 --Invoice Exchange Rate Type
54315  , p_source_136            IN DATE
54316 --Invoice Exchange Rate
54317  , p_source_137            IN NUMBER
54319  , p_source_138            IN VARCHAR2
54320 )
54321 IS
54322 
54323 l_component_type              VARCHAR2(80);
54324 l_component_code              VARCHAR2(30);
54325 l_component_type_code         VARCHAR2(1);
54326 l_component_appl_id           INTEGER;
54327 l_amb_context_code            VARCHAR2(30);
54328 l_entity_code                 VARCHAR2(30);
54329 l_event_class_code            VARCHAR2(30);
54330 l_ae_header_id                NUMBER;
54331 l_event_type_code             VARCHAR2(30);
54332 l_line_definition_code        VARCHAR2(30);
54333 l_line_definition_owner_code  VARCHAR2(1);
54334 --
54335 -- adr variables
54336 l_segment                     VARCHAR2(30);
54337 l_ccid                        NUMBER;
54338 l_adr_transaction_coa_id      NUMBER;
54339 l_adr_accounting_coa_id       NUMBER;
54340 l_adr_flexfield_segment_code  VARCHAR2(30);
54341 l_adr_flex_value_set_id       NUMBER;
54342 l_adr_value_type_code         VARCHAR2(30);
54343 l_adr_value_combination_id    NUMBER;
54344 l_adr_value_segment_code      VARCHAR2(30);
54345 
54346 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
54347 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
54348 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
54349 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
54350 
54351 -- 4262811 Variables ------------------------------------------------------------------------------------------
54352 l_entered_amt_idx             NUMBER;
54353 l_accted_amt_idx              NUMBER;
54354 l_acc_rev_flag                VARCHAR2(1);
54355 l_accrual_line_num            NUMBER;
54356 l_tmp_amt                     NUMBER;
54357 l_acc_rev_natural_side_code   VARCHAR2(1);
54358 
54359 l_num_entries                 NUMBER;
54360 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
54361 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
54362 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
54363 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
54364 l_recog_line_1                NUMBER;
54365 l_recog_line_2                NUMBER;
54366 
54367 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
54368 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
54369 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
54370 
54371 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54372 
54373 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
54374 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
54375 
54376 ---------------------------------------------------------------------------------------------------------------
54377 
54378 
54379 --
54380 -- bulk performance
54381 --
54382 l_balance_type_code           VARCHAR2(1);
54383 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
54384 l_log_module                  VARCHAR2(240);
54385 
54386 --
54387 -- Upgrade strategy
54388 --
54389 l_actual_upg_option           VARCHAR2(1);
54390 l_enc_upg_option           VARCHAR2(1);
54391 
54392 --
54393 BEGIN
54394 --
54395 IF g_log_enabled THEN
54396       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_113';
54397 END IF;
54398 --
54399 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54400 
54401       trace
54402          (p_msg      => 'BEGIN of AcctLineType_113'
54403          ,p_level    => C_LEVEL_PROCEDURE
54404          ,p_module   => l_log_module);
54405 
54406 END IF;
54407 --
54408 l_component_type             := 'AMB_JLT';
54409 l_component_code             := 'AP_EX_RATE_VAR_DM';
54410 l_component_type_code        := 'S';
54411 l_component_appl_id          :=  200;
54412 l_amb_context_code           := 'DEFAULT';
54413 l_entity_code                := 'AP_INVOICES';
54414 l_event_class_code           := 'DEBIT MEMOS';
54415 l_event_type_code            := 'DEBIT MEMOS_ALL';
54416 l_line_definition_owner_code := 'S';
54417 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
54418 --
54419 l_balance_type_code          := 'A';
54420 l_segment                     := NULL;
54421 l_ccid                        := NULL;
54422 l_adr_transaction_coa_id      := NULL;
54423 l_adr_accounting_coa_id       := NULL;
54424 l_adr_flexfield_segment_code  := NULL;
54425 l_adr_flex_value_set_id       := NULL;
54426 l_adr_value_type_code         := NULL;
54427 l_adr_value_combination_id    := NULL;
54428 l_adr_value_segment_code      := NULL;
54429 
54430 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
54431 l_bflow_class_code           := '';    -- 4219869 Business Flow
54432 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
54433 l_budgetary_control_flag     := 'N';
54434 
54435 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
54436 l_bflow_applied_to_amt       := NULL; -- 5132302
54437 l_entered_amt_idx            := NULL;          -- 4262811
54438 l_accted_amt_idx             := NULL;          -- 4262811
54439 l_acc_rev_flag               := NULL;          -- 4262811
54440 l_accrual_line_num           := NULL;          -- 4262811
54441 l_tmp_amt                    := NULL;          -- 4262811
54442 --
54443 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
54447   
54444             (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
54445                return;
54446   END IF;
54448 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54449     l_balance_type_code <> 'B' THEN
54450 IF NVL(p_source_21,'
54451 ') =  'ERV' AND 
54452 NVL(p_source_84,'
54453 ') =  'Y'
54454  THEN 
54455 
54456    --
54457    XLA_AE_LINES_PKG.SetNewLine;
54458 
54459    p_balance_type_code          := l_balance_type_code;
54460    -- set the flag so later we will know whether the gain loss line needs to be created
54461    
54462    IF(l_balance_type_code = 'A' ) THEN
54463      p_actual_flag :='G';
54464    END IF;
54465 
54466    --
54467    -- bulk performance
54468    --
54469    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54470                                       p_header_num   => 0); -- 4262811
54471    --
54472    -- set accounting line options
54473    --
54474    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54475            p_natural_side_code          => 'D'
54476          , p_gain_or_loss_flag          => 'Y'
54477          , p_gl_transfer_mode_code      => 'S'
54478          , p_acct_entry_type_code       => 'A'
54479          , p_switch_side_flag           => 'Y'
54480          , p_merge_duplicate_code       => 'A'
54481          );
54482    --
54483    l_acc_rev_natural_side_code := 'C';  -- 4262811
54484    -- 
54485    --
54486    -- set accounting line type info
54487    --
54488    xla_ae_lines_pkg.SetAcctLineType
54489       (p_component_type             => l_component_type
54490       ,p_event_type_code            => l_event_type_code
54491       ,p_line_definition_owner_code => l_line_definition_owner_code
54492       ,p_line_definition_code       => l_line_definition_code
54493       ,p_accounting_line_code       => l_component_code
54494       ,p_accounting_line_type_code  => l_component_type_code
54495       ,p_accounting_line_appl_id    => l_component_appl_id
54496       ,p_amb_context_code           => l_amb_context_code
54497       ,p_entity_code                => l_entity_code
54498       ,p_event_class_code           => l_event_class_code);
54499    --
54500    -- set accounting class
54501    --
54502    xla_ae_lines_pkg.SetAcctClass(
54503            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
54504          , p_ae_header_id           => l_ae_header_id
54505          );
54506 
54507    --
54508    -- set rounding class
54509    --
54510    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54511                       'EXCHANGE_RATE_VARIANCE';
54512 
54513    --
54514    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54515    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54516    --
54517    -- bulk performance
54518    --
54519    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54520 
54521    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54522       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54523 
54524    -- 4955764
54525    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54526       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54527 
54528    -- 4458381 Public Sector Enh
54529    
54530    --
54531    -- set accounting attributes for the line type
54532    --
54533    l_entered_amt_idx := 23;
54534    l_accted_amt_idx  := 28;
54535    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
54536    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
54537    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
54538    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
54539    l_rec_acct_attrs.array_num_value(2)  := 
54540 xla_ae_sources_pkg.GetSystemSourceNum(
54541    p_source_code           => 'XLA_EVENT_APPL_ID'
54542  , p_source_type_code      => 'Y'
54543  , p_source_application_id =>  602
54544 );
54545    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
54546    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
54547    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
54548    l_rec_acct_attrs.array_char_value(4)  := 
54549 xla_ae_sources_pkg.GetSystemSourceChar(
54550    p_source_code           => 'XLA_ENTITY_CODE'
54551  , p_source_type_code      => 'Y'
54552  , p_source_application_id =>  602
54553 );
54554    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
54555    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
54556    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
54557    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
54558    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
54559    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
54560    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54561    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
54562    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
54563    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
54564    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
54565    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
54569    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
54566    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54567    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
54568    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
54570    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
54571    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
54572    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
54573    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
54574    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
54575    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
54576    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
54577    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
54578    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
54579    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
54580    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
54581    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
54582    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
54583    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
54584    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
54585    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
54586    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
54587    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
54588    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
54589    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
54590    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
54591    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
54592    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
54593    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
54594    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
54595    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
54596    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
54597    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
54598    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
54599    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
54600    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
54601    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
54602    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
54603    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
54604    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
54605    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
54606    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
54607    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
54608    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
54609    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
54610    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
54611    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
54612    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
54613    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
54614    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
54615    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
54616    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
54617    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
54618    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
54619    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
54620    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
54621    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
54622    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
54623    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
54624    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
54625    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
54626    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
54627    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
54628    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
54629    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
54630 
54631    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54632    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54633 
54634    ---------------------------------------------------------------------------------------------------------------
54635    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54636    ---------------------------------------------------------------------------------------------------------------
54637    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54638 
54639    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54640    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54641 
54642    IF xla_accounting_cache_pkg.GetValueChar
54643          (p_source_code         => 'LEDGER_CATEGORY_CODE'
54644          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54645    AND l_bflow_method_code = 'PRIOR_ENTRY'
54646 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54647    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54648          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54649        )
54650    THEN
54651          xla_ae_lines_pkg.BflowUpgEntry
54652            (p_business_method_code    => l_bflow_method_code
54656       NULL;
54653            ,p_business_class_code     => l_bflow_class_code
54654            ,p_balance_type            => l_balance_type_code);
54655    ELSE
54657 -- No business flow processing for business flow method of NONE.
54658    END IF;
54659 
54660    --
54661    -- call analytical criteria
54662    --
54663    
54664    --
54665    -- call description
54666    --
54667    
54668 xla_ae_lines_pkg.SetLineDescription(
54669    p_ae_header_id => l_ae_header_id
54670   ,p_description  => Description_2 (
54671      p_application_id         => p_application_id
54672    , p_ae_header_id           => l_ae_header_id 
54673 , p_source_1 => p_source_1
54674    )
54675 );
54676 
54677 
54678    --
54679    -- call ADRs
54680    -- Bug 4922099
54681    --
54682    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54683         (NVL(l_actual_upg_option, 'N') = 'O') OR
54684         (NVL(l_enc_upg_option, 'N') = 'O')
54685       )
54686    THEN
54687    NULL;
54688    --
54689    --
54690    
54691   l_ccid := AcctDerRule_29(
54692            p_application_id           => p_application_id
54693          , p_ae_header_id             => l_ae_header_id 
54694 , p_source_3 => p_source_3
54695 , p_source_3_meaning => p_source_3_meaning
54696 , p_source_8 => p_source_8
54697 , p_source_9 => p_source_9
54698 , p_source_10 => p_source_10
54699 , p_source_10_meaning => p_source_10_meaning
54700 , p_source_11 => p_source_11
54701 , p_source_18 => p_source_18
54702 , p_source_35 => p_source_35
54703 , p_source_35_meaning => p_source_35_meaning
54704          , x_transaction_coa_id       => l_adr_transaction_coa_id
54705          , x_accounting_coa_id        => l_adr_accounting_coa_id
54706          , x_value_type_code          => l_adr_value_type_code
54707          , p_side                     => 'NA'
54708    );
54709 
54710    xla_ae_lines_pkg.set_ccid(
54711     p_code_combination_id          => l_ccid
54712   , p_value_type_code              => l_adr_value_type_code
54713   , p_transaction_coa_id           => l_adr_transaction_coa_id
54714   , p_accounting_coa_id            => l_adr_accounting_coa_id
54715   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
54716   , p_adr_type_code                => 'S'
54717   , p_component_type               => l_component_type
54718   , p_component_code               => l_component_code
54719   , p_component_type_code          => l_component_type_code
54720   , p_component_appl_id            => l_component_appl_id
54721   , p_amb_context_code             => l_amb_context_code
54722   , p_side                         => 'NA'
54723   );
54724 
54725 
54726    l_segment := AcctDerRule_7(
54727            p_application_id           => p_application_id
54728          , p_ae_header_id             => l_ae_header_id 
54729 , p_source_3 => p_source_3
54730 , p_source_3_meaning => p_source_3_meaning
54731 , p_source_8 => p_source_8
54732 , p_source_9 => p_source_9
54733 , p_source_10 => p_source_10
54734 , p_source_10_meaning => p_source_10_meaning
54735 , p_source_11 => p_source_11
54736          , x_transaction_coa_id       => l_adr_transaction_coa_id
54737          , x_accounting_coa_id        => l_adr_accounting_coa_id
54738          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
54739          , x_flex_value_set_id        => l_adr_flex_value_set_id
54740          , x_value_type_code          => l_adr_value_type_code
54741          , x_value_combination_id     => l_adr_value_combination_id
54742          , x_value_segment_code       => l_adr_value_segment_code
54743          , p_side                     => 'NA'
54744          , p_override_seg_flag        => 'Y'
54745    );
54746 
54747    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
54748 
54749       xla_ae_lines_pkg.set_segment(
54750           p_to_segment_code         => 'GL_ACCOUNT'
54751         , p_segment_value           => l_segment
54752         , p_from_segment_code       => l_adr_value_segment_code
54753         , p_from_combination_id     => l_adr_value_combination_id
54754         , p_value_type_code         => l_adr_value_type_code
54755         , p_transaction_coa_id      => l_adr_transaction_coa_id
54756         , p_accounting_coa_id       => l_adr_accounting_coa_id
54757         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
54758         , p_flex_value_set_id       => l_adr_flex_value_set_id
54759         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
54760         , p_adr_type_code           => 'S'
54761         , p_component_type          => l_component_type
54762         , p_component_code          => l_component_code
54763         , p_component_type_code     => l_component_type_code
54764         , p_component_appl_id       => l_component_appl_id
54765         , p_amb_context_code        => l_amb_context_code
54766         , p_entity_code             => 'AP_INVOICES'
54767         , p_event_class_code        => 'DEBIT MEMOS'
54768         , p_side                    => 'NA'
54769         );
54770 
54771   END IF;
54772 
54773    l_segment := AcctDerRule_22(
54774            p_application_id           => p_application_id
54775          , p_ae_header_id             => l_ae_header_id 
54776 , p_source_3 => p_source_3
54777 , p_source_3_meaning => p_source_3_meaning
54778 , p_source_10 => p_source_10
54779 , p_source_10_meaning => p_source_10_meaning
54780 , p_source_18 => p_source_18
54781          , x_transaction_coa_id       => l_adr_transaction_coa_id
54782          , x_accounting_coa_id        => l_adr_accounting_coa_id
54786          , x_value_combination_id     => l_adr_value_combination_id
54783          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
54784          , x_flex_value_set_id        => l_adr_flex_value_set_id
54785          , x_value_type_code          => l_adr_value_type_code
54787          , x_value_segment_code       => l_adr_value_segment_code
54788          , p_side                     => 'NA'
54789          , p_override_seg_flag        => 'Y'
54790    );
54791 
54792    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
54793 
54794       xla_ae_lines_pkg.set_segment(
54795           p_to_segment_code         => 'GL_BALANCING'
54796         , p_segment_value           => l_segment
54797         , p_from_segment_code       => l_adr_value_segment_code
54798         , p_from_combination_id     => l_adr_value_combination_id
54799         , p_value_type_code         => l_adr_value_type_code
54800         , p_transaction_coa_id      => l_adr_transaction_coa_id
54801         , p_accounting_coa_id       => l_adr_accounting_coa_id
54802         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
54803         , p_flex_value_set_id       => l_adr_flex_value_set_id
54804         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
54805         , p_adr_type_code           => 'S'
54806         , p_component_type          => l_component_type
54807         , p_component_code          => l_component_code
54808         , p_component_type_code     => l_component_type_code
54809         , p_component_appl_id       => l_component_appl_id
54810         , p_amb_context_code        => l_amb_context_code
54811         , p_entity_code             => 'AP_INVOICES'
54812         , p_event_class_code        => 'DEBIT MEMOS'
54813         , p_side                    => 'NA'
54814         );
54815 
54816   END IF;
54817 
54818    --
54819    --
54820    END IF;
54821    --
54822    -- Bug 4922099
54823    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54824           (NVL(l_enc_upg_option, 'N') = 'O')
54825         ) AND
54826         (l_bflow_method_code = 'PRIOR_ENTRY')
54827       )
54828    THEN
54829       IF
54830       --
54831       1 = 2
54832       --
54833       THEN
54834       xla_accounting_err_pkg.build_message
54835                                     (p_appli_s_name            => 'XLA'
54836                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54837                                     ,p_token_1                 => 'LINE_NUMBER'
54838                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
54839                                     ,p_token_2                 => 'LINE_TYPE_NAME'
54840                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
54841                                                                              l_component_type
54842                                                                             ,l_component_code
54843                                                                             ,l_component_type_code
54844                                                                             ,l_component_appl_id
54845                                                                             ,l_amb_context_code
54846                                                                             ,l_entity_code
54847                                                                             ,l_event_class_code
54848                                                                            )
54849                                     ,p_token_3                 => 'OWNER'
54850                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
54851                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
54852                                                                           ,p_lookup_code    => l_component_type_code
54853                                                                          )
54854                                     ,p_token_4                 => 'PRODUCT_NAME'
54855                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54856                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54857                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54858                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54859                                     ,p_ae_header_id            =>  NULL
54860                                        );
54861 
54862         IF (C_LEVEL_ERROR>= g_log_level) THEN
54863                  trace
54864                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54865                       ,p_level    => C_LEVEL_ERROR
54866                       ,p_module   => l_log_module);
54867         END IF;
54868       END IF;
54869    END IF;
54870    --
54871    --
54872    ------------------------------------------------------------------------------------------------
54873    -- 4219869 Business Flow
54874    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54875    -- Prior Entry.  Currently, the following code is always generated.
54876    ------------------------------------------------------------------------------------------------
54877    XLA_AE_LINES_PKG.ValidateCurrentLine;
54878 
54879    ------------------------------------------------------------------------------------
54880    -- 4219869 Business Flow
54881    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54885    ----------------------------------------------------------------------------------
54882    ------------------------------------------------------------------------------------
54883    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54884 
54886    -- 4219869 Business Flow
54887    -- Update journal entry status -- Need to generate this within IF <condition>
54888    ----------------------------------------------------------------------------------
54889    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54890          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54891          ,p_balance_type_code => l_balance_type_code
54892          );
54893 
54894    -------------------------------------------------------------------------------------------
54895    -- 4262811 - Generate the Accrual Reversal lines
54896    -------------------------------------------------------------------------------------------
54897    BEGIN
54898       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54899                               (g_array_event(p_event_id).array_value_num('header_index'));
54900       IF l_acc_rev_flag IS NULL THEN
54901          l_acc_rev_flag := 'N';
54902       END IF;
54903    EXCEPTION
54904       WHEN OTHERS THEN
54905          l_acc_rev_flag := 'N';
54906    END;
54907    --
54908    IF (l_acc_rev_flag = 'Y') THEN
54909 
54910        -- 4645092  ------------------------------------------------------------------------------
54911        -- To allow MPA report to determine if it should generate report process
54912        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54913        ------------------------------------------------------------------------------------------
54914 
54915        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54916        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54917    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
54918    -- call ADRs
54919    -- Bug 4922099
54920    --
54921    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54922         (NVL(l_actual_upg_option, 'N') = 'O') OR
54923         (NVL(l_enc_upg_option, 'N') = 'O')
54924       )
54925    THEN
54926    NULL;
54927    --
54928    --
54929    
54930   l_ccid := AcctDerRule_29(
54931            p_application_id           => p_application_id
54932          , p_ae_header_id             => l_ae_header_id 
54933 , p_source_3 => p_source_3
54934 , p_source_3_meaning => p_source_3_meaning
54935 , p_source_8 => p_source_8
54936 , p_source_9 => p_source_9
54937 , p_source_10 => p_source_10
54938 , p_source_10_meaning => p_source_10_meaning
54939 , p_source_11 => p_source_11
54940 , p_source_18 => p_source_18
54941 , p_source_35 => p_source_35
54942 , p_source_35_meaning => p_source_35_meaning
54943          , x_transaction_coa_id       => l_adr_transaction_coa_id
54944          , x_accounting_coa_id        => l_adr_accounting_coa_id
54945          , x_value_type_code          => l_adr_value_type_code
54946          , p_side                     => 'NA'
54947    );
54948 
54949    xla_ae_lines_pkg.set_ccid(
54950     p_code_combination_id          => l_ccid
54951   , p_value_type_code              => l_adr_value_type_code
54952   , p_transaction_coa_id           => l_adr_transaction_coa_id
54953   , p_accounting_coa_id            => l_adr_accounting_coa_id
54954   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
54955   , p_adr_type_code                => 'S'
54956   , p_component_type               => l_component_type
54957   , p_component_code               => l_component_code
54958   , p_component_type_code          => l_component_type_code
54959   , p_component_appl_id            => l_component_appl_id
54960   , p_amb_context_code             => l_amb_context_code
54961   , p_side                         => 'NA'
54962   );
54963 
54964 
54965    l_segment := AcctDerRule_7(
54966            p_application_id           => p_application_id
54967          , p_ae_header_id             => l_ae_header_id 
54968 , p_source_3 => p_source_3
54969 , p_source_3_meaning => p_source_3_meaning
54970 , p_source_8 => p_source_8
54971 , p_source_9 => p_source_9
54972 , p_source_10 => p_source_10
54973 , p_source_10_meaning => p_source_10_meaning
54974 , p_source_11 => p_source_11
54975          , x_transaction_coa_id       => l_adr_transaction_coa_id
54976          , x_accounting_coa_id        => l_adr_accounting_coa_id
54977          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
54978          , x_flex_value_set_id        => l_adr_flex_value_set_id
54979          , x_value_type_code          => l_adr_value_type_code
54980          , x_value_combination_id     => l_adr_value_combination_id
54981          , x_value_segment_code       => l_adr_value_segment_code
54982          , p_side                     => 'NA'
54983          , p_override_seg_flag        => 'Y'
54984    );
54985 
54986    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
54987 
54988       xla_ae_lines_pkg.set_segment(
54989           p_to_segment_code         => 'GL_ACCOUNT'
54990         , p_segment_value           => l_segment
54991         , p_from_segment_code       => l_adr_value_segment_code
54992         , p_from_combination_id     => l_adr_value_combination_id
54993         , p_value_type_code         => l_adr_value_type_code
54994         , p_transaction_coa_id      => l_adr_transaction_coa_id
54995         , p_accounting_coa_id       => l_adr_accounting_coa_id
54996         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
54997         , p_flex_value_set_id       => l_adr_flex_value_set_id
54998         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
54999         , p_adr_type_code           => 'S'
55000         , p_component_type          => l_component_type
55004         , p_amb_context_code        => l_amb_context_code
55001         , p_component_code          => l_component_code
55002         , p_component_type_code     => l_component_type_code
55003         , p_component_appl_id       => l_component_appl_id
55005         , p_entity_code             => 'AP_INVOICES'
55006         , p_event_class_code        => 'DEBIT MEMOS'
55007         , p_side                    => 'NA'
55008         );
55009 
55010   END IF;
55011 
55012    l_segment := AcctDerRule_22(
55013            p_application_id           => p_application_id
55014          , p_ae_header_id             => l_ae_header_id 
55015 , p_source_3 => p_source_3
55016 , p_source_3_meaning => p_source_3_meaning
55017 , p_source_10 => p_source_10
55018 , p_source_10_meaning => p_source_10_meaning
55019 , p_source_18 => p_source_18
55020          , x_transaction_coa_id       => l_adr_transaction_coa_id
55021          , x_accounting_coa_id        => l_adr_accounting_coa_id
55022          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
55023          , x_flex_value_set_id        => l_adr_flex_value_set_id
55024          , x_value_type_code          => l_adr_value_type_code
55025          , x_value_combination_id     => l_adr_value_combination_id
55026          , x_value_segment_code       => l_adr_value_segment_code
55027          , p_side                     => 'NA'
55028          , p_override_seg_flag        => 'Y'
55029    );
55030 
55031    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
55032 
55033       xla_ae_lines_pkg.set_segment(
55034           p_to_segment_code         => 'GL_BALANCING'
55035         , p_segment_value           => l_segment
55036         , p_from_segment_code       => l_adr_value_segment_code
55037         , p_from_combination_id     => l_adr_value_combination_id
55038         , p_value_type_code         => l_adr_value_type_code
55039         , p_transaction_coa_id      => l_adr_transaction_coa_id
55040         , p_accounting_coa_id       => l_adr_accounting_coa_id
55041         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
55042         , p_flex_value_set_id       => l_adr_flex_value_set_id
55043         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
55044         , p_adr_type_code           => 'S'
55045         , p_component_type          => l_component_type
55046         , p_component_code          => l_component_code
55047         , p_component_type_code     => l_component_type_code
55048         , p_component_appl_id       => l_component_appl_id
55049         , p_amb_context_code        => l_amb_context_code
55050         , p_entity_code             => 'AP_INVOICES'
55051         , p_event_class_code        => 'DEBIT MEMOS'
55052         , p_side                    => 'NA'
55053         );
55054 
55055   END IF;
55056 
55057    --
55058    --
55059    END IF;
55060 
55061        --
55062        -- Update the line information that should be overwritten
55063        --
55064        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55065                                          p_header_num   => 1);
55066        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
55067 
55068        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55069 
55070        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
55071           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55072        END IF;
55073 
55074       --
55075       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55076       --
55077       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55078           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
55079       ELSE
55080           ---------------------------------------------------------------------------------------------------
55081           -- 4262811a Switch Sign
55082           ---------------------------------------------------------------------------------------------------
55083           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
55084           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55085                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55086           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55087                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55088           -- 5132302
55089           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55090                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55091 
55092       END IF;
55093 
55094       -- 4955764
55095       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55096       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55097 
55098 
55099       XLA_AE_LINES_PKG.ValidateCurrentLine;
55100       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55101 
55102       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55103                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55104                ,p_balance_type_code => l_balance_type_code);
55105 
55106    END IF;
55107 
55108    -----------------------------------------------------------------------------------------
55109    -- 4262811 Multiperiod Accounting
55110    -----------------------------------------------------------------------------------------
55114 END IF;
55111      -- No MPA option is assigned.
55112 
55113 
55115 END IF;
55116 --
55117 
55118 --
55119 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55120    trace
55121       (p_msg      => 'END of AcctLineType_113'
55122       ,p_level    => C_LEVEL_PROCEDURE
55123       ,p_module   => l_log_module);
55124 END IF;
55125 --
55126 EXCEPTION
55127   WHEN xla_exceptions_pkg.application_exception THEN
55128       RAISE;
55129   WHEN OTHERS THEN
55130        xla_exceptions_pkg.raise_message
55131            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_113');
55132 END AcctLineType_113;
55133 --
55134 
55135 ---------------------------------------
55136 --
55137 -- PRIVATE FUNCTION
55138 --         AcctLineType_114
55139 --
55140 ---------------------------------------
55141 PROCEDURE AcctLineType_114 (
55142   p_application_id        IN NUMBER
55143  ,p_event_id              IN NUMBER
55144  ,p_calculate_acctd_flag  IN VARCHAR2
55145  ,p_calculate_g_l_flag    IN VARCHAR2
55146  ,p_actual_flag           IN OUT VARCHAR2
55147  ,p_balance_type_code     OUT VARCHAR2
55148  ,p_gain_or_loss_ref      OUT VARCHAR2
55149  
55150 --Invoice Distribution Type
55151  , p_source_21            IN VARCHAR2
55152  , p_source_21_meaning    IN VARCHAR2
55153 --Accounting Reversal Indicator
55154  , p_source_41            IN VARCHAR2
55155 --Distribution Link Type
55156  , p_source_43            IN VARCHAR2
55157 --Allocation to Main Distribution Identifier
55158  , p_source_45            IN NUMBER
55159 --Invoice Identifier
55160  , p_source_46            IN NUMBER
55161 --Invoice Distribution Identifier
55162  , p_source_52            IN NUMBER
55163 --Payables Encumbrance Upgrade Credit Account
55164  , p_source_53            IN NUMBER
55165 --Payables Encumbrance Upgrade Credit Amount
55166  , p_source_54            IN NUMBER
55167 --Invoice Currency Code
55168  , p_source_55            IN VARCHAR2
55169 --Payables Encumbrance Upgrade Credit Base Amount
55170  , p_source_56            IN NUMBER
55171 --Payables Encumbrance Upgrade Debit Account
55172  , p_source_57            IN NUMBER
55173 --Payables Encumbrance Upgrade Debit Amount
55174  , p_source_58            IN NUMBER
55175 --Payables Encumbrance Upgrade Debit Base Amount
55176  , p_source_59            IN NUMBER
55177 --Payables Encumbrance Upgrade Option
55178  , p_source_60            IN VARCHAR2
55179 --Deferred Accounting End Date
55180  , p_source_65            IN DATE
55181 --Deferred Accounting Option
55182  , p_source_66            IN VARCHAR2
55183 --Deferred Accounting Start Date
55184  , p_source_67            IN DATE
55185 --Override Accounted Amount Indicator
55186  , p_source_68            IN VARCHAR2
55187  , p_source_68_meaning    IN VARCHAR2
55188 --Third Party Type
55189  , p_source_71            IN VARCHAR2
55190 --Parent Reversal Identifier
55191  , p_source_72            IN NUMBER
55192 --Invoice Distribution Tax Line Identifier
55193  , p_source_74            IN NUMBER
55194 --Invoice Distribution Tax Distribution Identifier from Tax
55195  , p_source_75            IN NUMBER
55196 --Invoice Distribution Summary Tax Line Identifier
55197  , p_source_76            IN NUMBER
55198 --Payables Upgrade Credit Encumbrance Type Identifier
55199  , p_source_77            IN NUMBER
55200 --Payables Upgrade Debit Encumbrance Type Identifier
55201  , p_source_78            IN NUMBER
55202 --Business Flow Accounts Payable Application Identifier
55203  , p_source_79            IN NUMBER
55204 --Business Flow Invoice Distribution Type
55205  , p_source_80            IN VARCHAR2
55206 --Business Flow Invoice Entity Code
55207  , p_source_81            IN VARCHAR2
55208 --Business Flow Invoice Distribution Identifier
55209  , p_source_82            IN NUMBER
55210 --Business Flow Invoice Identifier
55211  , p_source_83            IN NUMBER
55212 --Purchasing Encumbrance Option
55213  , p_source_86            IN VARCHAR2
55214  , p_source_86_meaning    IN VARCHAR2
55215 --Invoice Encumbered Option
55216  , p_source_87            IN VARCHAR2
55217  , p_source_87_meaning    IN VARCHAR2
55218 --Invoice Distribution Encumbrance Amount
55219  , p_source_143            IN NUMBER
55220 --Invoice Distribution Encumbrance Ledger Amount
55221  , p_source_144            IN NUMBER
55222 )
55223 IS
55224 
55225 l_component_type              VARCHAR2(80);
55226 l_component_code              VARCHAR2(30);
55227 l_component_type_code         VARCHAR2(1);
55228 l_component_appl_id           INTEGER;
55229 l_amb_context_code            VARCHAR2(30);
55230 l_entity_code                 VARCHAR2(30);
55231 l_event_class_code            VARCHAR2(30);
55232 l_ae_header_id                NUMBER;
55233 l_event_type_code             VARCHAR2(30);
55234 l_line_definition_code        VARCHAR2(30);
55235 l_line_definition_owner_code  VARCHAR2(1);
55236 --
55237 -- adr variables
55238 l_segment                     VARCHAR2(30);
55239 l_ccid                        NUMBER;
55240 l_adr_transaction_coa_id      NUMBER;
55241 l_adr_accounting_coa_id       NUMBER;
55242 l_adr_flexfield_segment_code  VARCHAR2(30);
55243 l_adr_flex_value_set_id       NUMBER;
55244 l_adr_value_type_code         VARCHAR2(30);
55245 l_adr_value_combination_id    NUMBER;
55246 l_adr_value_segment_code      VARCHAR2(30);
55247 
55248 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
55249 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
55250 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
55251 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
55255 l_accted_amt_idx              NUMBER;
55252 
55253 -- 4262811 Variables ------------------------------------------------------------------------------------------
55254 l_entered_amt_idx             NUMBER;
55256 l_acc_rev_flag                VARCHAR2(1);
55257 l_accrual_line_num            NUMBER;
55258 l_tmp_amt                     NUMBER;
55259 l_acc_rev_natural_side_code   VARCHAR2(1);
55260 
55261 l_num_entries                 NUMBER;
55262 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
55263 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
55264 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
55265 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
55266 l_recog_line_1                NUMBER;
55267 l_recog_line_2                NUMBER;
55268 
55269 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
55270 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
55271 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
55272 
55273 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55274 
55275 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
55276 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
55277 
55278 ---------------------------------------------------------------------------------------------------------------
55279 
55280 
55281 --
55282 -- bulk performance
55283 --
55284 l_balance_type_code           VARCHAR2(1);
55285 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
55286 l_log_module                  VARCHAR2(240);
55287 
55288 --
55289 -- Upgrade strategy
55290 --
55291 l_actual_upg_option           VARCHAR2(1);
55292 l_enc_upg_option           VARCHAR2(1);
55293 
55294 --
55295 BEGIN
55296 --
55297 IF g_log_enabled THEN
55298       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_114';
55299 END IF;
55300 --
55301 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55302 
55303       trace
55304          (p_msg      => 'BEGIN of AcctLineType_114'
55305          ,p_level    => C_LEVEL_PROCEDURE
55306          ,p_module   => l_log_module);
55307 
55308 END IF;
55309 --
55310 l_component_type             := 'AMB_JLT';
55311 l_component_code             := 'AP_EX_RATE_VAR_DM_ENC';
55312 l_component_type_code        := 'S';
55313 l_component_appl_id          :=  200;
55314 l_amb_context_code           := 'DEFAULT';
55315 l_entity_code                := 'AP_INVOICES';
55316 l_event_class_code           := 'DEBIT MEMOS';
55317 l_event_type_code            := 'DEBIT MEMOS_ALL';
55318 l_line_definition_owner_code := 'S';
55319 l_line_definition_code       := 'ENC_REV_DM_ALL';
55320 --
55321 l_balance_type_code          := 'E';
55322 l_segment                     := NULL;
55323 l_ccid                        := NULL;
55324 l_adr_transaction_coa_id      := NULL;
55325 l_adr_accounting_coa_id       := NULL;
55326 l_adr_flexfield_segment_code  := NULL;
55327 l_adr_flex_value_set_id       := NULL;
55328 l_adr_value_type_code         := NULL;
55329 l_adr_value_combination_id    := NULL;
55330 l_adr_value_segment_code      := NULL;
55331 
55332 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
55333 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
55334 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
55335 l_budgetary_control_flag     := 'N';
55336 
55337 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
55338 l_bflow_applied_to_amt       := NULL; -- 5132302
55339 l_entered_amt_idx            := NULL;          -- 4262811
55340 l_accted_amt_idx             := NULL;          -- 4262811
55341 l_acc_rev_flag               := NULL;          -- 4262811
55342 l_accrual_line_num           := NULL;          -- 4262811
55343 l_tmp_amt                    := NULL;          -- 4262811
55344 --
55345 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
55346             (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
55347                return;
55348   END IF;
55349   
55350 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55351     l_balance_type_code <> 'B' THEN
55352 IF NVL(p_source_21,'
55353 ') =  'ERV' AND 
55354 NVL(p_source_86,'
55355 ') =  'Y' AND 
55356 NVL(p_source_87,'
55357 ') =  'Y'
55358  THEN 
55359 
55360    --
55361    XLA_AE_LINES_PKG.SetNewLine;
55362 
55363    p_balance_type_code          := l_balance_type_code;
55364    -- set the flag so later we will know whether the gain loss line needs to be created
55365    
55366    IF(l_balance_type_code = 'A' ) THEN
55367      p_actual_flag :='G';
55368    END IF;
55369 
55370    --
55371    -- bulk performance
55372    --
55373    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55374                                       p_header_num   => 0); -- 4262811
55375    --
55376    -- set accounting line options
55377    --
55378    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55379            p_natural_side_code          => 'C'
55380          , p_gain_or_loss_flag          => 'Y'
55381          , p_gl_transfer_mode_code      => 'S'
55382          , p_acct_entry_type_code       => 'E'
55383          , p_switch_side_flag           => 'Y'
55387    l_acc_rev_natural_side_code := 'D';  -- 4262811
55384          , p_merge_duplicate_code       => 'A'
55385          );
55386    --
55388    -- 
55389    --
55390    -- set accounting line type info
55391    --
55392    xla_ae_lines_pkg.SetAcctLineType
55393       (p_component_type             => l_component_type
55394       ,p_event_type_code            => l_event_type_code
55395       ,p_line_definition_owner_code => l_line_definition_owner_code
55396       ,p_line_definition_code       => l_line_definition_code
55397       ,p_accounting_line_code       => l_component_code
55398       ,p_accounting_line_type_code  => l_component_type_code
55399       ,p_accounting_line_appl_id    => l_component_appl_id
55400       ,p_amb_context_code           => l_amb_context_code
55401       ,p_entity_code                => l_entity_code
55402       ,p_event_class_code           => l_event_class_code);
55403    --
55404    -- set accounting class
55405    --
55406    xla_ae_lines_pkg.SetAcctClass(
55407            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
55408          , p_ae_header_id           => l_ae_header_id
55409          );
55410 
55411    --
55412    -- set rounding class
55413    --
55414    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55415                       'EXCHANGE_RATE_VARIANCE';
55416 
55417    --
55418    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55419    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55420    --
55421    -- bulk performance
55422    --
55423    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55424 
55425    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55426       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55427 
55428    -- 4955764
55429    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55430       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55431 
55432    -- 4458381 Public Sector Enh
55433    
55434    --
55435    -- set accounting attributes for the line type
55436    --
55437    l_entered_amt_idx := 23;
55438    l_accted_amt_idx  := 25;
55439    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
55440    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
55441    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
55442    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
55443    l_rec_acct_attrs.array_num_value(2)  := 
55444 xla_ae_sources_pkg.GetSystemSourceNum(
55445    p_source_code           => 'XLA_EVENT_APPL_ID'
55446  , p_source_type_code      => 'Y'
55447  , p_source_application_id =>  602
55448 );
55449    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
55450    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
55451    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
55452    l_rec_acct_attrs.array_char_value(4)  := 
55453 xla_ae_sources_pkg.GetSystemSourceChar(
55454    p_source_code           => 'XLA_ENTITY_CODE'
55455  , p_source_type_code      => 'Y'
55456  , p_source_application_id =>  602
55457 );
55458    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
55459    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
55460    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
55461    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
55462    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
55463    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
55464    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55465    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
55466    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
55467    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
55468    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
55469    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
55470    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55471    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
55472    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
55473    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
55474    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
55475    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
55476    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
55477    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
55478    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
55479    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
55480    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
55481    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
55482    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
55483    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
55484    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
55485    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
55486    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
55487    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
55488    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
55489    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
55490    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
55491    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
55495    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
55492    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
55493    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
55494    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
55496    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
55497    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
55498    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
55499    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
55500    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
55501    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
55502    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
55503    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
55504    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
55505    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
55506    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
55507    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
55508    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
55509    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
55510    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
55511    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
55512    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
55513    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
55514    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
55515    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
55516    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
55517    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
55518    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
55519    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
55520    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
55521    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
55522    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
55523    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
55524 
55525    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55526    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55527 
55528    ---------------------------------------------------------------------------------------------------------------
55529    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55530    ---------------------------------------------------------------------------------------------------------------
55531    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55532 
55533    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55534    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55535 
55536    IF xla_accounting_cache_pkg.GetValueChar
55537          (p_source_code         => 'LEDGER_CATEGORY_CODE'
55538          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55539    AND l_bflow_method_code = 'PRIOR_ENTRY'
55540 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55541    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55542          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55543        )
55544    THEN
55545          xla_ae_lines_pkg.BflowUpgEntry
55546            (p_business_method_code    => l_bflow_method_code
55547            ,p_business_class_code     => l_bflow_class_code
55548            ,p_balance_type            => l_balance_type_code);
55549    ELSE
55550       NULL;
55551 XLA_AE_LINES_PKG.business_flow_validation(
55552                                 p_business_method_code     => l_bflow_method_code
55553                                ,p_business_class_code      => l_bflow_class_code
55554                                ,p_inherit_description_flag => l_inherit_desc_flag);
55555    END IF;
55556 
55557    --
55558    -- call analytical criteria
55559    --
55560    -- Inherited Analytical Criteria for business flow method of Prior Entry.
55561    --
55562    -- call description
55563    --
55564    -- No description or it is inherited.
55565    --
55566    -- call ADRs
55567    -- Bug 4922099
55568    --
55569    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55570         (NVL(l_actual_upg_option, 'N') = 'O') OR
55571         (NVL(l_enc_upg_option, 'N') = 'O')
55572       )
55573    THEN
55574    NULL;
55575    --
55576    --
55577    
55578    --
55579    --
55580    END IF;
55581    --
55582    -- Bug 4922099
55583    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55584           (NVL(l_enc_upg_option, 'N') = 'O')
55585         ) AND
55586         (l_bflow_method_code = 'PRIOR_ENTRY')
55587       )
55588    THEN
55589       IF
55590       --
55591       1 = 1
55592       --
55593       THEN
55594       xla_accounting_err_pkg.build_message
55595                                     (p_appli_s_name            => 'XLA'
55596                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55597                                     ,p_token_1                 => 'LINE_NUMBER'
55598                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
55599                                     ,p_token_2                 => 'LINE_TYPE_NAME'
55600                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
55604                                                                             ,l_component_appl_id
55601                                                                              l_component_type
55602                                                                             ,l_component_code
55603                                                                             ,l_component_type_code
55605                                                                             ,l_amb_context_code
55606                                                                             ,l_entity_code
55607                                                                             ,l_event_class_code
55608                                                                            )
55609                                     ,p_token_3                 => 'OWNER'
55610                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
55611                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
55612                                                                           ,p_lookup_code    => l_component_type_code
55613                                                                          )
55614                                     ,p_token_4                 => 'PRODUCT_NAME'
55615                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55616                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55617                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55618                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55619                                     ,p_ae_header_id            =>  NULL
55620                                        );
55621 
55622         IF (C_LEVEL_ERROR>= g_log_level) THEN
55623                  trace
55624                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55625                       ,p_level    => C_LEVEL_ERROR
55626                       ,p_module   => l_log_module);
55627         END IF;
55628       END IF;
55629    END IF;
55630    --
55631    --
55632    ------------------------------------------------------------------------------------------------
55633    -- 4219869 Business Flow
55634    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55635    -- Prior Entry.  Currently, the following code is always generated.
55636    ------------------------------------------------------------------------------------------------
55637    -- No ValidateCurrentLine for business flow method of Prior Entry
55638 
55639    ------------------------------------------------------------------------------------
55640    -- 4219869 Business Flow
55641    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55642    ------------------------------------------------------------------------------------
55643    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55644 
55645    ----------------------------------------------------------------------------------
55646    -- 4219869 Business Flow
55647    -- Update journal entry status -- Need to generate this within IF <condition>
55648    ----------------------------------------------------------------------------------
55649    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55650          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55651          ,p_balance_type_code => l_balance_type_code
55652          );
55653 
55654    -------------------------------------------------------------------------------------------
55655    -- 4262811 - Generate the Accrual Reversal lines
55656    -------------------------------------------------------------------------------------------
55657    BEGIN
55658       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55659                               (g_array_event(p_event_id).array_value_num('header_index'));
55660       IF l_acc_rev_flag IS NULL THEN
55661          l_acc_rev_flag := 'N';
55662       END IF;
55663    EXCEPTION
55664       WHEN OTHERS THEN
55665          l_acc_rev_flag := 'N';
55666    END;
55667    --
55668    IF (l_acc_rev_flag = 'Y') THEN
55669 
55670        -- 4645092  ------------------------------------------------------------------------------
55671        -- To allow MPA report to determine if it should generate report process
55672        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55673        ------------------------------------------------------------------------------------------
55674 
55675        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55676        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55677    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
55678    -- call ADRs
55679    -- Bug 4922099
55680    --
55681    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55682         (NVL(l_actual_upg_option, 'N') = 'O') OR
55683         (NVL(l_enc_upg_option, 'N') = 'O')
55684       )
55685    THEN
55686    NULL;
55687    --
55688    --
55689    
55690    --
55691    --
55692    END IF;
55693 
55694        --
55695        -- Update the line information that should be overwritten
55696        --
55697        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55698                                          p_header_num   => 1);
55699        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
55700 
55701        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55702 
55703        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
55707       --
55704           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55705        END IF;
55706 
55708       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55709       --
55710       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55711           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
55712       ELSE
55713           ---------------------------------------------------------------------------------------------------
55714           -- 4262811a Switch Sign
55715           ---------------------------------------------------------------------------------------------------
55716           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
55717           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55718                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55719           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55720                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55721           -- 5132302
55722           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55723                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55724 
55725       END IF;
55726 
55727       -- 4955764
55728       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55729       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55730 
55731 
55732       XLA_AE_LINES_PKG.ValidateCurrentLine;
55733       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55734 
55735       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55736                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55737                ,p_balance_type_code => l_balance_type_code);
55738 
55739    END IF;
55740 
55741    -----------------------------------------------------------------------------------------
55742    -- 4262811 Multiperiod Accounting
55743    -----------------------------------------------------------------------------------------
55744      -- No MPA option is assigned.
55745 
55746 
55747 END IF;
55748 END IF;
55749 --
55750 
55751 --
55752 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55753    trace
55754       (p_msg      => 'END of AcctLineType_114'
55755       ,p_level    => C_LEVEL_PROCEDURE
55756       ,p_module   => l_log_module);
55757 END IF;
55758 --
55759 EXCEPTION
55760   WHEN xla_exceptions_pkg.application_exception THEN
55761       RAISE;
55762   WHEN OTHERS THEN
55763        xla_exceptions_pkg.raise_message
55764            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_114');
55765 END AcctLineType_114;
55766 --
55767 
55768 ---------------------------------------
55769 --
55770 -- PRIVATE FUNCTION
55771 --         AcctLineType_115
55772 --
55773 ---------------------------------------
55774 PROCEDURE AcctLineType_115 (
55775   p_application_id        IN NUMBER
55776  ,p_event_id              IN NUMBER
55777  ,p_calculate_acctd_flag  IN VARCHAR2
55778  ,p_calculate_g_l_flag    IN VARCHAR2
55779  ,p_actual_flag           IN OUT VARCHAR2
55780  ,p_balance_type_code     OUT VARCHAR2
55781  ,p_gain_or_loss_ref      OUT VARCHAR2
55782  
55783 --Invoice Distribution Description
55784  , p_source_1            IN VARCHAR2
55785 --Automatic Offsets Value
55786  , p_source_3            IN VARCHAR2
55787  , p_source_3_meaning    IN VARCHAR2
55788 --Purchase Order Rate Variance Gain Account
55789  , p_source_8            IN NUMBER
55790 --Invoice Distribution Ledger Amount
55791  , p_source_9            IN NUMBER
55792 --Destination Type of the PO Distribution
55793  , p_source_10            IN VARCHAR2
55794  , p_source_10_meaning    IN VARCHAR2
55795 --Purchase Order Rate Variance Loss Account
55796  , p_source_11            IN NUMBER
55797 --Invoice Distribution Account
55798  , p_source_18            IN NUMBER
55799 --Invoice Distribution Type
55800  , p_source_21            IN VARCHAR2
55801  , p_source_21_meaning    IN VARCHAR2
55802 --Automatic Offsets Flag
55803  , p_source_35            IN VARCHAR2
55804  , p_source_35_meaning    IN VARCHAR2
55805 --Accounting Reversal Indicator
55806  , p_source_41            IN VARCHAR2
55807 --Distribution Link Type
55808  , p_source_43            IN VARCHAR2
55809 --Allocation to Main Distribution Identifier
55810  , p_source_45            IN NUMBER
55811 --Invoice Identifier
55812  , p_source_46            IN NUMBER
55813 --Invoice Distribution Identifier
55814  , p_source_52            IN NUMBER
55815 --Payables Encumbrance Upgrade Credit Account
55816  , p_source_53            IN NUMBER
55817 --Payables Encumbrance Upgrade Credit Amount
55818  , p_source_54            IN NUMBER
55819 --Invoice Currency Code
55820  , p_source_55            IN VARCHAR2
55821 --Payables Encumbrance Upgrade Credit Base Amount
55822  , p_source_56            IN NUMBER
55823 --Payables Encumbrance Upgrade Debit Account
55824  , p_source_57            IN NUMBER
55825 --Payables Encumbrance Upgrade Debit Amount
55826  , p_source_58            IN NUMBER
55827 --Payables Encumbrance Upgrade Debit Base Amount
55828  , p_source_59            IN NUMBER
55829 --Payables Encumbrance Upgrade Option
55830  , p_source_60            IN VARCHAR2
55831 --Invoice Distribution Amount
55832  , p_source_61            IN NUMBER
55833 --Deferred Accounting End Date
55837 --Deferred Accounting Start Date
55834  , p_source_65            IN DATE
55835 --Deferred Accounting Option
55836  , p_source_66            IN VARCHAR2
55838  , p_source_67            IN DATE
55839 --Override Accounted Amount Indicator
55840  , p_source_68            IN VARCHAR2
55841  , p_source_68_meaning    IN VARCHAR2
55842 --Invoice Supplier Identifier
55843  , p_source_69            IN NUMBER
55844 --Invoice Supplier Site Identifier
55845  , p_source_70            IN NUMBER
55846 --Third Party Type
55847  , p_source_71            IN VARCHAR2
55848 --Parent Reversal Identifier
55849  , p_source_72            IN NUMBER
55850 --Invoice Distribution Statistical Amount
55851  , p_source_73            IN NUMBER
55852 --Invoice Distribution Tax Line Identifier
55853  , p_source_74            IN NUMBER
55854 --Invoice Distribution Tax Distribution Identifier from Tax
55855  , p_source_75            IN NUMBER
55856 --Invoice Distribution Summary Tax Line Identifier
55857  , p_source_76            IN NUMBER
55858 --Payables Upgrade Credit Encumbrance Type Identifier
55859  , p_source_77            IN NUMBER
55860 --Payables Upgrade Debit Encumbrance Type Identifier
55861  , p_source_78            IN NUMBER
55862 --Business Flow Accounts Payable Application Identifier
55863  , p_source_79            IN NUMBER
55864 --Business Flow Invoice Distribution Type
55865  , p_source_80            IN VARCHAR2
55866 --Business Flow Invoice Entity Code
55867  , p_source_81            IN VARCHAR2
55868 --Business Flow Invoice Distribution Identifier
55869  , p_source_82            IN NUMBER
55870 --Business Flow Invoice Identifier
55871  , p_source_83            IN NUMBER
55872 --Accrue on Receipt Option
55873  , p_source_84            IN VARCHAR2
55874  , p_source_84_meaning    IN VARCHAR2
55875 --Invoice Exchange Date
55876  , p_source_136            IN DATE
55877 --Invoice Exchange Rate
55878  , p_source_137            IN NUMBER
55879 --Invoice Exchange Rate Type
55880  , p_source_138            IN VARCHAR2
55881 )
55882 IS
55883 
55884 l_component_type              VARCHAR2(80);
55885 l_component_code              VARCHAR2(30);
55886 l_component_type_code         VARCHAR2(1);
55887 l_component_appl_id           INTEGER;
55888 l_amb_context_code            VARCHAR2(30);
55889 l_entity_code                 VARCHAR2(30);
55890 l_event_class_code            VARCHAR2(30);
55891 l_ae_header_id                NUMBER;
55892 l_event_type_code             VARCHAR2(30);
55893 l_line_definition_code        VARCHAR2(30);
55894 l_line_definition_owner_code  VARCHAR2(1);
55895 --
55896 -- adr variables
55897 l_segment                     VARCHAR2(30);
55898 l_ccid                        NUMBER;
55899 l_adr_transaction_coa_id      NUMBER;
55900 l_adr_accounting_coa_id       NUMBER;
55901 l_adr_flexfield_segment_code  VARCHAR2(30);
55902 l_adr_flex_value_set_id       NUMBER;
55903 l_adr_value_type_code         VARCHAR2(30);
55904 l_adr_value_combination_id    NUMBER;
55905 l_adr_value_segment_code      VARCHAR2(30);
55906 
55907 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
55908 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
55909 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
55910 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
55911 
55912 -- 4262811 Variables ------------------------------------------------------------------------------------------
55913 l_entered_amt_idx             NUMBER;
55914 l_accted_amt_idx              NUMBER;
55915 l_acc_rev_flag                VARCHAR2(1);
55916 l_accrual_line_num            NUMBER;
55917 l_tmp_amt                     NUMBER;
55918 l_acc_rev_natural_side_code   VARCHAR2(1);
55919 
55920 l_num_entries                 NUMBER;
55921 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
55922 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
55923 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
55924 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
55925 l_recog_line_1                NUMBER;
55926 l_recog_line_2                NUMBER;
55927 
55928 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
55929 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
55930 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
55931 
55932 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55933 
55934 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
55935 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
55936 
55937 ---------------------------------------------------------------------------------------------------------------
55938 
55939 
55940 --
55941 -- bulk performance
55942 --
55943 l_balance_type_code           VARCHAR2(1);
55944 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
55945 l_log_module                  VARCHAR2(240);
55946 
55947 --
55948 -- Upgrade strategy
55949 --
55950 l_actual_upg_option           VARCHAR2(1);
55951 l_enc_upg_option           VARCHAR2(1);
55952 
55953 --
55954 BEGIN
55955 --
55956 IF g_log_enabled THEN
55957       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_115';
55958 END IF;
55959 --
55960 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55961 
55962       trace
55963          (p_msg      => 'BEGIN of AcctLineType_115'
55964          ,p_level    => C_LEVEL_PROCEDURE
55965          ,p_module   => l_log_module);
55966 
55967 END IF;
55968 --
55969 l_component_type             := 'AMB_JLT';
55973 l_amb_context_code           := 'DEFAULT';
55970 l_component_code             := 'AP_EX_RATE_VAR_INV';
55971 l_component_type_code        := 'S';
55972 l_component_appl_id          :=  200;
55974 l_entity_code                := 'AP_INVOICES';
55975 l_event_class_code           := 'INVOICES';
55976 l_event_type_code            := 'INVOICES_ALL';
55977 l_line_definition_owner_code := 'S';
55978 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
55979 --
55980 l_balance_type_code          := 'A';
55981 l_segment                     := NULL;
55982 l_ccid                        := NULL;
55983 l_adr_transaction_coa_id      := NULL;
55984 l_adr_accounting_coa_id       := NULL;
55985 l_adr_flexfield_segment_code  := NULL;
55986 l_adr_flex_value_set_id       := NULL;
55987 l_adr_value_type_code         := NULL;
55988 l_adr_value_combination_id    := NULL;
55989 l_adr_value_segment_code      := NULL;
55990 
55991 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
55992 l_bflow_class_code           := '';    -- 4219869 Business Flow
55993 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
55994 l_budgetary_control_flag     := 'N';
55995 
55996 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
55997 l_bflow_applied_to_amt       := NULL; -- 5132302
55998 l_entered_amt_idx            := NULL;          -- 4262811
55999 l_accted_amt_idx             := NULL;          -- 4262811
56000 l_acc_rev_flag               := NULL;          -- 4262811
56001 l_accrual_line_num           := NULL;          -- 4262811
56002 l_tmp_amt                    := NULL;          -- 4262811
56003 --
56004 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
56005             (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
56006                return;
56007   END IF;
56008   
56009 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56010     l_balance_type_code <> 'B' THEN
56011 IF NVL(p_source_21,'
56012 ') =  'ERV' AND 
56013 NVL(p_source_84,'
56014 ') =  'Y'
56015  THEN 
56016 
56017    --
56018    XLA_AE_LINES_PKG.SetNewLine;
56019 
56020    p_balance_type_code          := l_balance_type_code;
56021    -- set the flag so later we will know whether the gain loss line needs to be created
56022    
56023    IF(l_balance_type_code = 'A' ) THEN
56024      p_actual_flag :='G';
56025    END IF;
56026 
56027    --
56028    -- bulk performance
56029    --
56030    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56031                                       p_header_num   => 0); -- 4262811
56032    --
56033    -- set accounting line options
56034    --
56035    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56036            p_natural_side_code          => 'D'
56037          , p_gain_or_loss_flag          => 'Y'
56038          , p_gl_transfer_mode_code      => 'S'
56039          , p_acct_entry_type_code       => 'A'
56040          , p_switch_side_flag           => 'Y'
56041          , p_merge_duplicate_code       => 'A'
56042          );
56043    --
56044    l_acc_rev_natural_side_code := 'C';  -- 4262811
56045    -- 
56046    --
56047    -- set accounting line type info
56048    --
56049    xla_ae_lines_pkg.SetAcctLineType
56050       (p_component_type             => l_component_type
56051       ,p_event_type_code            => l_event_type_code
56052       ,p_line_definition_owner_code => l_line_definition_owner_code
56053       ,p_line_definition_code       => l_line_definition_code
56054       ,p_accounting_line_code       => l_component_code
56055       ,p_accounting_line_type_code  => l_component_type_code
56056       ,p_accounting_line_appl_id    => l_component_appl_id
56057       ,p_amb_context_code           => l_amb_context_code
56058       ,p_entity_code                => l_entity_code
56059       ,p_event_class_code           => l_event_class_code);
56060    --
56061    -- set accounting class
56062    --
56063    xla_ae_lines_pkg.SetAcctClass(
56064            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
56065          , p_ae_header_id           => l_ae_header_id
56066          );
56067 
56068    --
56069    -- set rounding class
56070    --
56071    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56072                       'EXCHANGE_RATE_VARIANCE';
56073 
56074    --
56075    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
56076    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
56077    --
56078    -- bulk performance
56079    --
56080    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
56081 
56082    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
56083       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
56084 
56085    -- 4955764
56086    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56087       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
56088 
56089    -- 4458381 Public Sector Enh
56090    
56091    --
56092    -- set accounting attributes for the line type
56093    --
56094    l_entered_amt_idx := 24;
56095    l_accted_amt_idx  := 29;
56096    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
56097    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
56098    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
56099    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
56103  , p_source_type_code      => 'Y'
56100    l_rec_acct_attrs.array_num_value(2)  := 
56101 xla_ae_sources_pkg.GetSystemSourceNum(
56102    p_source_code           => 'XLA_EVENT_APPL_ID'
56104  , p_source_application_id =>  602
56105 );
56106    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
56107    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
56108    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
56109    l_rec_acct_attrs.array_char_value(4)  := 
56110 xla_ae_sources_pkg.GetSystemSourceChar(
56111    p_source_code           => 'XLA_ENTITY_CODE'
56112  , p_source_type_code      => 'Y'
56113  , p_source_application_id =>  602
56114 );
56115    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
56116    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
56117    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
56118    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
56119    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
56120    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
56121    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
56122    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
56123    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
56124    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
56125    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
56126    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
56127    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
56128    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
56129    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
56130    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
56131    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
56132    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
56133    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
56134    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
56135    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
56136    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
56137    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
56138    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
56139    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
56140    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
56141    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
56142    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
56143    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
56144    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
56145    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
56146    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
56147    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
56148    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
56149    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
56150    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
56151    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
56152    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
56153    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
56154    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
56155    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
56156    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
56157    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
56158    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
56159    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
56160    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
56161    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
56162    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
56163    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
56164    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
56165    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
56166    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
56167    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
56168    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
56169    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
56170    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
56171    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
56172    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
56173    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
56174    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
56175    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
56176    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
56177    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
56178    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
56179    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
56180    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
56181    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
56182    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
56183    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
56184    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
56185    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
56186    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
56187    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
56188    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
56189    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
56190    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
56191    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
56192    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
56196    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
56193    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
56194    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
56195 
56197    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
56198 
56199    ---------------------------------------------------------------------------------------------------------------
56200    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
56201    ---------------------------------------------------------------------------------------------------------------
56202    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
56203 
56204    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56205    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56206 
56207    IF xla_accounting_cache_pkg.GetValueChar
56208          (p_source_code         => 'LEDGER_CATEGORY_CODE'
56209          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
56210    AND l_bflow_method_code = 'PRIOR_ENTRY'
56211 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
56212    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
56213          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
56214        )
56215    THEN
56216          xla_ae_lines_pkg.BflowUpgEntry
56217            (p_business_method_code    => l_bflow_method_code
56218            ,p_business_class_code     => l_bflow_class_code
56219            ,p_balance_type            => l_balance_type_code);
56220    ELSE
56221       NULL;
56222 -- No business flow processing for business flow method of NONE.
56223    END IF;
56224 
56225    --
56226    -- call analytical criteria
56227    --
56228    
56229    --
56230    -- call description
56231    --
56232    
56233 xla_ae_lines_pkg.SetLineDescription(
56234    p_ae_header_id => l_ae_header_id
56235   ,p_description  => Description_2 (
56236      p_application_id         => p_application_id
56237    , p_ae_header_id           => l_ae_header_id 
56238 , p_source_1 => p_source_1
56239    )
56240 );
56241 
56242 
56243    --
56244    -- call ADRs
56245    -- Bug 4922099
56246    --
56247    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56248         (NVL(l_actual_upg_option, 'N') = 'O') OR
56249         (NVL(l_enc_upg_option, 'N') = 'O')
56250       )
56251    THEN
56252    NULL;
56253    --
56254    --
56255    
56256   l_ccid := AcctDerRule_29(
56257            p_application_id           => p_application_id
56258          , p_ae_header_id             => l_ae_header_id 
56259 , p_source_3 => p_source_3
56260 , p_source_3_meaning => p_source_3_meaning
56261 , p_source_8 => p_source_8
56262 , p_source_9 => p_source_9
56263 , p_source_10 => p_source_10
56264 , p_source_10_meaning => p_source_10_meaning
56265 , p_source_11 => p_source_11
56266 , p_source_18 => p_source_18
56267 , p_source_35 => p_source_35
56268 , p_source_35_meaning => p_source_35_meaning
56269          , x_transaction_coa_id       => l_adr_transaction_coa_id
56270          , x_accounting_coa_id        => l_adr_accounting_coa_id
56271          , x_value_type_code          => l_adr_value_type_code
56272          , p_side                     => 'NA'
56273    );
56274 
56275    xla_ae_lines_pkg.set_ccid(
56276     p_code_combination_id          => l_ccid
56277   , p_value_type_code              => l_adr_value_type_code
56278   , p_transaction_coa_id           => l_adr_transaction_coa_id
56279   , p_accounting_coa_id            => l_adr_accounting_coa_id
56280   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
56281   , p_adr_type_code                => 'S'
56282   , p_component_type               => l_component_type
56283   , p_component_code               => l_component_code
56284   , p_component_type_code          => l_component_type_code
56285   , p_component_appl_id            => l_component_appl_id
56286   , p_amb_context_code             => l_amb_context_code
56287   , p_side                         => 'NA'
56288   );
56289 
56290 
56291    l_segment := AcctDerRule_7(
56292            p_application_id           => p_application_id
56293          , p_ae_header_id             => l_ae_header_id 
56294 , p_source_3 => p_source_3
56295 , p_source_3_meaning => p_source_3_meaning
56296 , p_source_8 => p_source_8
56297 , p_source_9 => p_source_9
56298 , p_source_10 => p_source_10
56299 , p_source_10_meaning => p_source_10_meaning
56300 , p_source_11 => p_source_11
56301          , x_transaction_coa_id       => l_adr_transaction_coa_id
56302          , x_accounting_coa_id        => l_adr_accounting_coa_id
56303          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
56304          , x_flex_value_set_id        => l_adr_flex_value_set_id
56305          , x_value_type_code          => l_adr_value_type_code
56306          , x_value_combination_id     => l_adr_value_combination_id
56307          , x_value_segment_code       => l_adr_value_segment_code
56308          , p_side                     => 'NA'
56309          , p_override_seg_flag        => 'Y'
56310    );
56311 
56312    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
56313 
56314       xla_ae_lines_pkg.set_segment(
56315           p_to_segment_code         => 'GL_ACCOUNT'
56316         , p_segment_value           => l_segment
56317         , p_from_segment_code       => l_adr_value_segment_code
56318         , p_from_combination_id     => l_adr_value_combination_id
56319         , p_value_type_code         => l_adr_value_type_code
56323         , p_flex_value_set_id       => l_adr_flex_value_set_id
56320         , p_transaction_coa_id      => l_adr_transaction_coa_id
56321         , p_accounting_coa_id       => l_adr_accounting_coa_id
56322         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
56324         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
56325         , p_adr_type_code           => 'S'
56326         , p_component_type          => l_component_type
56327         , p_component_code          => l_component_code
56328         , p_component_type_code     => l_component_type_code
56329         , p_component_appl_id       => l_component_appl_id
56330         , p_amb_context_code        => l_amb_context_code
56331         , p_entity_code             => 'AP_INVOICES'
56332         , p_event_class_code        => 'INVOICES'
56333         , p_side                    => 'NA'
56334         );
56335 
56336   END IF;
56337 
56338    l_segment := AcctDerRule_22(
56339            p_application_id           => p_application_id
56340          , p_ae_header_id             => l_ae_header_id 
56341 , p_source_3 => p_source_3
56342 , p_source_3_meaning => p_source_3_meaning
56343 , p_source_10 => p_source_10
56344 , p_source_10_meaning => p_source_10_meaning
56345 , p_source_18 => p_source_18
56346          , x_transaction_coa_id       => l_adr_transaction_coa_id
56347          , x_accounting_coa_id        => l_adr_accounting_coa_id
56348          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
56349          , x_flex_value_set_id        => l_adr_flex_value_set_id
56350          , x_value_type_code          => l_adr_value_type_code
56351          , x_value_combination_id     => l_adr_value_combination_id
56352          , x_value_segment_code       => l_adr_value_segment_code
56353          , p_side                     => 'NA'
56354          , p_override_seg_flag        => 'Y'
56355    );
56356 
56357    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
56358 
56359       xla_ae_lines_pkg.set_segment(
56360           p_to_segment_code         => 'GL_BALANCING'
56361         , p_segment_value           => l_segment
56362         , p_from_segment_code       => l_adr_value_segment_code
56363         , p_from_combination_id     => l_adr_value_combination_id
56364         , p_value_type_code         => l_adr_value_type_code
56365         , p_transaction_coa_id      => l_adr_transaction_coa_id
56366         , p_accounting_coa_id       => l_adr_accounting_coa_id
56367         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
56368         , p_flex_value_set_id       => l_adr_flex_value_set_id
56369         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
56370         , p_adr_type_code           => 'S'
56371         , p_component_type          => l_component_type
56372         , p_component_code          => l_component_code
56373         , p_component_type_code     => l_component_type_code
56374         , p_component_appl_id       => l_component_appl_id
56375         , p_amb_context_code        => l_amb_context_code
56376         , p_entity_code             => 'AP_INVOICES'
56377         , p_event_class_code        => 'INVOICES'
56378         , p_side                    => 'NA'
56379         );
56380 
56381   END IF;
56382 
56383    --
56384    --
56385    END IF;
56386    --
56387    -- Bug 4922099
56388    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
56389           (NVL(l_enc_upg_option, 'N') = 'O')
56390         ) AND
56391         (l_bflow_method_code = 'PRIOR_ENTRY')
56392       )
56393    THEN
56394       IF
56395       --
56396       1 = 2
56397       --
56398       THEN
56399       xla_accounting_err_pkg.build_message
56400                                     (p_appli_s_name            => 'XLA'
56401                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56402                                     ,p_token_1                 => 'LINE_NUMBER'
56403                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
56404                                     ,p_token_2                 => 'LINE_TYPE_NAME'
56405                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
56406                                                                              l_component_type
56407                                                                             ,l_component_code
56408                                                                             ,l_component_type_code
56409                                                                             ,l_component_appl_id
56410                                                                             ,l_amb_context_code
56411                                                                             ,l_entity_code
56412                                                                             ,l_event_class_code
56413                                                                            )
56414                                     ,p_token_3                 => 'OWNER'
56415                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
56416                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
56417                                                                           ,p_lookup_code    => l_component_type_code
56418                                                                          )
56419                                     ,p_token_4                 => 'PRODUCT_NAME'
56420                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
56421                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
56422                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
56426 
56423                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
56424                                     ,p_ae_header_id            =>  NULL
56425                                        );
56427         IF (C_LEVEL_ERROR>= g_log_level) THEN
56428                  trace
56429                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56430                       ,p_level    => C_LEVEL_ERROR
56431                       ,p_module   => l_log_module);
56432         END IF;
56433       END IF;
56434    END IF;
56435    --
56436    --
56437    ------------------------------------------------------------------------------------------------
56438    -- 4219869 Business Flow
56439    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
56440    -- Prior Entry.  Currently, the following code is always generated.
56441    ------------------------------------------------------------------------------------------------
56442    XLA_AE_LINES_PKG.ValidateCurrentLine;
56443 
56444    ------------------------------------------------------------------------------------
56445    -- 4219869 Business Flow
56446    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
56447    ------------------------------------------------------------------------------------
56448    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56449 
56450    ----------------------------------------------------------------------------------
56451    -- 4219869 Business Flow
56452    -- Update journal entry status -- Need to generate this within IF <condition>
56453    ----------------------------------------------------------------------------------
56454    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56455          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56456          ,p_balance_type_code => l_balance_type_code
56457          );
56458 
56459    -------------------------------------------------------------------------------------------
56460    -- 4262811 - Generate the Accrual Reversal lines
56461    -------------------------------------------------------------------------------------------
56462    BEGIN
56463       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56464                               (g_array_event(p_event_id).array_value_num('header_index'));
56465       IF l_acc_rev_flag IS NULL THEN
56466          l_acc_rev_flag := 'N';
56467       END IF;
56468    EXCEPTION
56469       WHEN OTHERS THEN
56470          l_acc_rev_flag := 'N';
56471    END;
56472    --
56473    IF (l_acc_rev_flag = 'Y') THEN
56474 
56475        -- 4645092  ------------------------------------------------------------------------------
56476        -- To allow MPA report to determine if it should generate report process
56477        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56478        ------------------------------------------------------------------------------------------
56479 
56480        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56481        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56482    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
56483    -- call ADRs
56484    -- Bug 4922099
56485    --
56486    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56487         (NVL(l_actual_upg_option, 'N') = 'O') OR
56488         (NVL(l_enc_upg_option, 'N') = 'O')
56489       )
56490    THEN
56491    NULL;
56492    --
56493    --
56494    
56495   l_ccid := AcctDerRule_29(
56496            p_application_id           => p_application_id
56497          , p_ae_header_id             => l_ae_header_id 
56498 , p_source_3 => p_source_3
56499 , p_source_3_meaning => p_source_3_meaning
56500 , p_source_8 => p_source_8
56501 , p_source_9 => p_source_9
56502 , p_source_10 => p_source_10
56503 , p_source_10_meaning => p_source_10_meaning
56504 , p_source_11 => p_source_11
56505 , p_source_18 => p_source_18
56506 , p_source_35 => p_source_35
56507 , p_source_35_meaning => p_source_35_meaning
56508          , x_transaction_coa_id       => l_adr_transaction_coa_id
56509          , x_accounting_coa_id        => l_adr_accounting_coa_id
56510          , x_value_type_code          => l_adr_value_type_code
56511          , p_side                     => 'NA'
56512    );
56513 
56514    xla_ae_lines_pkg.set_ccid(
56515     p_code_combination_id          => l_ccid
56516   , p_value_type_code              => l_adr_value_type_code
56517   , p_transaction_coa_id           => l_adr_transaction_coa_id
56518   , p_accounting_coa_id            => l_adr_accounting_coa_id
56519   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
56520   , p_adr_type_code                => 'S'
56521   , p_component_type               => l_component_type
56522   , p_component_code               => l_component_code
56523   , p_component_type_code          => l_component_type_code
56524   , p_component_appl_id            => l_component_appl_id
56525   , p_amb_context_code             => l_amb_context_code
56526   , p_side                         => 'NA'
56527   );
56528 
56529 
56530    l_segment := AcctDerRule_7(
56531            p_application_id           => p_application_id
56532          , p_ae_header_id             => l_ae_header_id 
56533 , p_source_3 => p_source_3
56534 , p_source_3_meaning => p_source_3_meaning
56535 , p_source_8 => p_source_8
56536 , p_source_9 => p_source_9
56537 , p_source_10 => p_source_10
56538 , p_source_10_meaning => p_source_10_meaning
56539 , p_source_11 => p_source_11
56540          , x_transaction_coa_id       => l_adr_transaction_coa_id
56541          , x_accounting_coa_id        => l_adr_accounting_coa_id
56545          , x_value_combination_id     => l_adr_value_combination_id
56542          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
56543          , x_flex_value_set_id        => l_adr_flex_value_set_id
56544          , x_value_type_code          => l_adr_value_type_code
56546          , x_value_segment_code       => l_adr_value_segment_code
56547          , p_side                     => 'NA'
56548          , p_override_seg_flag        => 'Y'
56549    );
56550 
56551    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
56552 
56553       xla_ae_lines_pkg.set_segment(
56554           p_to_segment_code         => 'GL_ACCOUNT'
56555         , p_segment_value           => l_segment
56556         , p_from_segment_code       => l_adr_value_segment_code
56557         , p_from_combination_id     => l_adr_value_combination_id
56558         , p_value_type_code         => l_adr_value_type_code
56559         , p_transaction_coa_id      => l_adr_transaction_coa_id
56560         , p_accounting_coa_id       => l_adr_accounting_coa_id
56561         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
56562         , p_flex_value_set_id       => l_adr_flex_value_set_id
56563         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
56564         , p_adr_type_code           => 'S'
56565         , p_component_type          => l_component_type
56566         , p_component_code          => l_component_code
56567         , p_component_type_code     => l_component_type_code
56568         , p_component_appl_id       => l_component_appl_id
56569         , p_amb_context_code        => l_amb_context_code
56570         , p_entity_code             => 'AP_INVOICES'
56571         , p_event_class_code        => 'INVOICES'
56572         , p_side                    => 'NA'
56573         );
56574 
56575   END IF;
56576 
56577    l_segment := AcctDerRule_22(
56578            p_application_id           => p_application_id
56579          , p_ae_header_id             => l_ae_header_id 
56580 , p_source_3 => p_source_3
56581 , p_source_3_meaning => p_source_3_meaning
56582 , p_source_10 => p_source_10
56583 , p_source_10_meaning => p_source_10_meaning
56584 , p_source_18 => p_source_18
56585          , x_transaction_coa_id       => l_adr_transaction_coa_id
56586          , x_accounting_coa_id        => l_adr_accounting_coa_id
56587          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
56588          , x_flex_value_set_id        => l_adr_flex_value_set_id
56589          , x_value_type_code          => l_adr_value_type_code
56590          , x_value_combination_id     => l_adr_value_combination_id
56591          , x_value_segment_code       => l_adr_value_segment_code
56592          , p_side                     => 'NA'
56593          , p_override_seg_flag        => 'Y'
56594    );
56595 
56596    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
56597 
56598       xla_ae_lines_pkg.set_segment(
56599           p_to_segment_code         => 'GL_BALANCING'
56600         , p_segment_value           => l_segment
56601         , p_from_segment_code       => l_adr_value_segment_code
56602         , p_from_combination_id     => l_adr_value_combination_id
56603         , p_value_type_code         => l_adr_value_type_code
56604         , p_transaction_coa_id      => l_adr_transaction_coa_id
56605         , p_accounting_coa_id       => l_adr_accounting_coa_id
56606         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
56607         , p_flex_value_set_id       => l_adr_flex_value_set_id
56608         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
56609         , p_adr_type_code           => 'S'
56610         , p_component_type          => l_component_type
56611         , p_component_code          => l_component_code
56612         , p_component_type_code     => l_component_type_code
56613         , p_component_appl_id       => l_component_appl_id
56614         , p_amb_context_code        => l_amb_context_code
56615         , p_entity_code             => 'AP_INVOICES'
56616         , p_event_class_code        => 'INVOICES'
56617         , p_side                    => 'NA'
56618         );
56619 
56620   END IF;
56621 
56622    --
56623    --
56624    END IF;
56625 
56626        --
56627        -- Update the line information that should be overwritten
56628        --
56629        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56630                                          p_header_num   => 1);
56631        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
56632 
56633        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56634 
56635        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
56636           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56637        END IF;
56638 
56639       --
56640       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56641       --
56642       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56643           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
56644       ELSE
56645           ---------------------------------------------------------------------------------------------------
56646           -- 4262811a Switch Sign
56647           ---------------------------------------------------------------------------------------------------
56648           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
56649           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56650                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56654           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56651           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56652                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56653           -- 5132302
56655                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56656 
56657       END IF;
56658 
56659       -- 4955764
56660       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56661       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56662 
56663 
56664       XLA_AE_LINES_PKG.ValidateCurrentLine;
56665       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56666 
56667       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56668                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56669                ,p_balance_type_code => l_balance_type_code);
56670 
56671    END IF;
56672 
56673    -----------------------------------------------------------------------------------------
56674    -- 4262811 Multiperiod Accounting
56675    -----------------------------------------------------------------------------------------
56676      -- No MPA option is assigned.
56677 
56678 
56679 END IF;
56680 END IF;
56681 --
56682 
56683 --
56684 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56685    trace
56686       (p_msg      => 'END of AcctLineType_115'
56687       ,p_level    => C_LEVEL_PROCEDURE
56688       ,p_module   => l_log_module);
56689 END IF;
56690 --
56691 EXCEPTION
56692   WHEN xla_exceptions_pkg.application_exception THEN
56693       RAISE;
56694   WHEN OTHERS THEN
56695        xla_exceptions_pkg.raise_message
56696            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_115');
56697 END AcctLineType_115;
56698 --
56699 
56700 ---------------------------------------
56701 --
56702 -- PRIVATE FUNCTION
56703 --         AcctLineType_116
56704 --
56705 ---------------------------------------
56706 PROCEDURE AcctLineType_116 (
56707   p_application_id        IN NUMBER
56708  ,p_event_id              IN NUMBER
56709  ,p_calculate_acctd_flag  IN VARCHAR2
56710  ,p_calculate_g_l_flag    IN VARCHAR2
56711  ,p_actual_flag           IN OUT VARCHAR2
56712  ,p_balance_type_code     OUT VARCHAR2
56713  ,p_gain_or_loss_ref      OUT VARCHAR2
56714  
56715 --Invoice Distribution Type
56716  , p_source_21            IN VARCHAR2
56717  , p_source_21_meaning    IN VARCHAR2
56718 --Accounting Reversal Indicator
56719  , p_source_41            IN VARCHAR2
56720 --Distribution Link Type
56721  , p_source_43            IN VARCHAR2
56722 --Allocation to Main Distribution Identifier
56723  , p_source_45            IN NUMBER
56724 --Invoice Identifier
56725  , p_source_46            IN NUMBER
56726 --Invoice Distribution Identifier
56727  , p_source_52            IN NUMBER
56728 --Payables Encumbrance Upgrade Credit Account
56729  , p_source_53            IN NUMBER
56730 --Payables Encumbrance Upgrade Credit Amount
56731  , p_source_54            IN NUMBER
56732 --Invoice Currency Code
56733  , p_source_55            IN VARCHAR2
56734 --Payables Encumbrance Upgrade Credit Base Amount
56735  , p_source_56            IN NUMBER
56736 --Payables Encumbrance Upgrade Debit Account
56737  , p_source_57            IN NUMBER
56738 --Payables Encumbrance Upgrade Debit Amount
56739  , p_source_58            IN NUMBER
56740 --Payables Encumbrance Upgrade Debit Base Amount
56741  , p_source_59            IN NUMBER
56742 --Payables Encumbrance Upgrade Option
56743  , p_source_60            IN VARCHAR2
56744 --Invoice Distribution Amount
56745  , p_source_61            IN NUMBER
56746 --Deferred Accounting End Date
56747  , p_source_65            IN DATE
56748 --Deferred Accounting Option
56749  , p_source_66            IN VARCHAR2
56750 --Deferred Accounting Start Date
56751  , p_source_67            IN DATE
56752 --Override Accounted Amount Indicator
56753  , p_source_68            IN VARCHAR2
56754  , p_source_68_meaning    IN VARCHAR2
56755 --Third Party Type
56756  , p_source_71            IN VARCHAR2
56757 --Parent Reversal Identifier
56758  , p_source_72            IN NUMBER
56759 --Invoice Distribution Statistical Amount
56760  , p_source_73            IN NUMBER
56761 --Invoice Distribution Tax Line Identifier
56762  , p_source_74            IN NUMBER
56763 --Invoice Distribution Tax Distribution Identifier from Tax
56764  , p_source_75            IN NUMBER
56765 --Invoice Distribution Summary Tax Line Identifier
56766  , p_source_76            IN NUMBER
56767 --Payables Upgrade Credit Encumbrance Type Identifier
56768  , p_source_77            IN NUMBER
56769 --Payables Upgrade Debit Encumbrance Type Identifier
56770  , p_source_78            IN NUMBER
56771 --Business Flow Accounts Payable Application Identifier
56772  , p_source_79            IN NUMBER
56773 --Business Flow Invoice Distribution Type
56774  , p_source_80            IN VARCHAR2
56775 --Business Flow Invoice Entity Code
56776  , p_source_81            IN VARCHAR2
56777 --Business Flow Invoice Distribution Identifier
56778  , p_source_82            IN NUMBER
56779 --Business Flow Invoice Identifier
56780  , p_source_83            IN NUMBER
56781 --Purchasing Encumbrance Option
56782  , p_source_86            IN VARCHAR2
56783  , p_source_86_meaning    IN VARCHAR2
56784 --Invoice Encumbered Option
56785  , p_source_87            IN VARCHAR2
56786  , p_source_87_meaning    IN VARCHAR2
56787 --Invoice Distribution Encumbrance Amount
56788  , p_source_143            IN NUMBER
56792 IS
56789 --Invoice Distribution Encumbrance Ledger Amount
56790  , p_source_144            IN NUMBER
56791 )
56793 
56794 l_component_type              VARCHAR2(80);
56795 l_component_code              VARCHAR2(30);
56796 l_component_type_code         VARCHAR2(1);
56797 l_component_appl_id           INTEGER;
56798 l_amb_context_code            VARCHAR2(30);
56799 l_entity_code                 VARCHAR2(30);
56800 l_event_class_code            VARCHAR2(30);
56801 l_ae_header_id                NUMBER;
56802 l_event_type_code             VARCHAR2(30);
56803 l_line_definition_code        VARCHAR2(30);
56804 l_line_definition_owner_code  VARCHAR2(1);
56805 --
56806 -- adr variables
56807 l_segment                     VARCHAR2(30);
56808 l_ccid                        NUMBER;
56809 l_adr_transaction_coa_id      NUMBER;
56810 l_adr_accounting_coa_id       NUMBER;
56811 l_adr_flexfield_segment_code  VARCHAR2(30);
56812 l_adr_flex_value_set_id       NUMBER;
56813 l_adr_value_type_code         VARCHAR2(30);
56814 l_adr_value_combination_id    NUMBER;
56815 l_adr_value_segment_code      VARCHAR2(30);
56816 
56817 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
56818 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
56819 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
56820 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
56821 
56822 -- 4262811 Variables ------------------------------------------------------------------------------------------
56823 l_entered_amt_idx             NUMBER;
56824 l_accted_amt_idx              NUMBER;
56825 l_acc_rev_flag                VARCHAR2(1);
56826 l_accrual_line_num            NUMBER;
56827 l_tmp_amt                     NUMBER;
56828 l_acc_rev_natural_side_code   VARCHAR2(1);
56829 
56830 l_num_entries                 NUMBER;
56831 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
56832 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
56833 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
56834 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
56835 l_recog_line_1                NUMBER;
56836 l_recog_line_2                NUMBER;
56837 
56838 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
56839 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
56840 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
56841 
56842 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56843 
56844 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
56845 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
56846 
56847 ---------------------------------------------------------------------------------------------------------------
56848 
56849 
56850 --
56851 -- bulk performance
56852 --
56853 l_balance_type_code           VARCHAR2(1);
56854 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
56855 l_log_module                  VARCHAR2(240);
56856 
56857 --
56858 -- Upgrade strategy
56859 --
56860 l_actual_upg_option           VARCHAR2(1);
56861 l_enc_upg_option           VARCHAR2(1);
56862 
56863 --
56864 BEGIN
56865 --
56866 IF g_log_enabled THEN
56867       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_116';
56868 END IF;
56869 --
56870 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56871 
56872       trace
56873          (p_msg      => 'BEGIN of AcctLineType_116'
56874          ,p_level    => C_LEVEL_PROCEDURE
56875          ,p_module   => l_log_module);
56876 
56877 END IF;
56878 --
56879 l_component_type             := 'AMB_JLT';
56880 l_component_code             := 'AP_EX_RATE_VAR_INV_ENC';
56881 l_component_type_code        := 'S';
56882 l_component_appl_id          :=  200;
56883 l_amb_context_code           := 'DEFAULT';
56884 l_entity_code                := 'AP_INVOICES';
56885 l_event_class_code           := 'INVOICES';
56886 l_event_type_code            := 'INVOICES_ALL';
56887 l_line_definition_owner_code := 'S';
56888 l_line_definition_code       := 'ENC_REV_INVOICES_ALL';
56889 --
56890 l_balance_type_code          := 'E';
56891 l_segment                     := NULL;
56892 l_ccid                        := NULL;
56893 l_adr_transaction_coa_id      := NULL;
56894 l_adr_accounting_coa_id       := NULL;
56895 l_adr_flexfield_segment_code  := NULL;
56896 l_adr_flex_value_set_id       := NULL;
56897 l_adr_value_type_code         := NULL;
56898 l_adr_value_combination_id    := NULL;
56899 l_adr_value_segment_code      := NULL;
56900 
56901 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
56902 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
56903 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
56904 l_budgetary_control_flag     := 'N';
56905 
56906 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
56907 l_bflow_applied_to_amt       := NULL; -- 5132302
56908 l_entered_amt_idx            := NULL;          -- 4262811
56909 l_accted_amt_idx             := NULL;          -- 4262811
56910 l_acc_rev_flag               := NULL;          -- 4262811
56911 l_accrual_line_num           := NULL;          -- 4262811
56912 l_tmp_amt                    := NULL;          -- 4262811
56913 --
56914 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
56915             (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
56916                return;
56917   END IF;
56918   
56922 ') =  'ERV' AND 
56919 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56920     l_balance_type_code <> 'B' THEN
56921 IF NVL(p_source_21,'
56923 NVL(p_source_86,'
56924 ') =  'Y' AND 
56925 NVL(p_source_87,'
56926 ') =  'Y'
56927  THEN 
56928 
56929    --
56930    XLA_AE_LINES_PKG.SetNewLine;
56931 
56932    p_balance_type_code          := l_balance_type_code;
56933    -- set the flag so later we will know whether the gain loss line needs to be created
56934    
56935    IF(l_balance_type_code = 'A' ) THEN
56936      p_actual_flag :='G';
56937    END IF;
56938 
56939    --
56940    -- bulk performance
56941    --
56942    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56943                                       p_header_num   => 0); -- 4262811
56944    --
56945    -- set accounting line options
56946    --
56947    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56948            p_natural_side_code          => 'C'
56949          , p_gain_or_loss_flag          => 'Y'
56950          , p_gl_transfer_mode_code      => 'S'
56951          , p_acct_entry_type_code       => 'E'
56952          , p_switch_side_flag           => 'Y'
56953          , p_merge_duplicate_code       => 'A'
56954          );
56955    --
56956    l_acc_rev_natural_side_code := 'D';  -- 4262811
56957    -- 
56958    --
56959    -- set accounting line type info
56960    --
56961    xla_ae_lines_pkg.SetAcctLineType
56962       (p_component_type             => l_component_type
56963       ,p_event_type_code            => l_event_type_code
56964       ,p_line_definition_owner_code => l_line_definition_owner_code
56965       ,p_line_definition_code       => l_line_definition_code
56966       ,p_accounting_line_code       => l_component_code
56967       ,p_accounting_line_type_code  => l_component_type_code
56968       ,p_accounting_line_appl_id    => l_component_appl_id
56969       ,p_amb_context_code           => l_amb_context_code
56970       ,p_entity_code                => l_entity_code
56971       ,p_event_class_code           => l_event_class_code);
56972    --
56973    -- set accounting class
56974    --
56975    xla_ae_lines_pkg.SetAcctClass(
56976            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
56977          , p_ae_header_id           => l_ae_header_id
56978          );
56979 
56980    --
56981    -- set rounding class
56982    --
56983    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56984                       'EXCHANGE_RATE_VARIANCE';
56985 
56986    --
56987    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
56988    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
56989    --
56990    -- bulk performance
56991    --
56992    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
56993 
56994    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
56995       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
56996 
56997    -- 4955764
56998    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56999       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57000 
57001    -- 4458381 Public Sector Enh
57002    
57003    --
57004    -- set accounting attributes for the line type
57005    --
57006    l_entered_amt_idx := 24;
57007    l_accted_amt_idx  := 26;
57008    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
57009    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57010    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
57011    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
57012    l_rec_acct_attrs.array_num_value(2)  := 
57013 xla_ae_sources_pkg.GetSystemSourceNum(
57014    p_source_code           => 'XLA_EVENT_APPL_ID'
57015  , p_source_type_code      => 'Y'
57016  , p_source_application_id =>  602
57017 );
57018    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
57019    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
57020    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
57021    l_rec_acct_attrs.array_char_value(4)  := 
57022 xla_ae_sources_pkg.GetSystemSourceChar(
57023    p_source_code           => 'XLA_ENTITY_CODE'
57024  , p_source_type_code      => 'Y'
57025  , p_source_application_id =>  602
57026 );
57027    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
57028    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
57029    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
57033    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
57030    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
57031    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
57032    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
57034    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
57035    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57036    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
57037    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
57038    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
57039    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
57040    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
57041    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57042    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
57043    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
57044    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
57045    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
57046    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
57047    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
57048    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
57049    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
57050    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
57051    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
57052    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
57053    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
57054    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
57055    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
57056    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
57057    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
57058    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
57059    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
57060    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
57061    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
57062    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
57063    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
57064    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
57065    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
57066    l_rec_acct_attrs.array_num_value(24)  := p_source_143;
57067    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
57068    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
57069    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
57070    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
57071    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
57072    l_rec_acct_attrs.array_date_value(27)  := p_source_65;
57073    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
57074    l_rec_acct_attrs.array_char_value(28)  := p_source_66;
57075    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
57076    l_rec_acct_attrs.array_date_value(29)  := p_source_67;
57077    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
57078    l_rec_acct_attrs.array_char_value(30)  := p_source_68;
57079    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
57080    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
57081    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
57082    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
57083    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
57084    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
57085    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
57086    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
57087    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
57088    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
57089    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
57090    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
57091    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
57092    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
57093    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
57094    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
57095    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
57096    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
57097 
57098    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57099    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57100 
57101    ---------------------------------------------------------------------------------------------------------------
57102    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57103    ---------------------------------------------------------------------------------------------------------------
57104    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57105 
57106    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57107    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57108 
57109    IF xla_accounting_cache_pkg.GetValueChar
57110          (p_source_code         => 'LEDGER_CATEGORY_CODE'
57111          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57112    AND l_bflow_method_code = 'PRIOR_ENTRY'
57116        )
57113 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57114    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57115          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57117    THEN
57118          xla_ae_lines_pkg.BflowUpgEntry
57119            (p_business_method_code    => l_bflow_method_code
57120            ,p_business_class_code     => l_bflow_class_code
57121            ,p_balance_type            => l_balance_type_code);
57122    ELSE
57123       NULL;
57124 XLA_AE_LINES_PKG.business_flow_validation(
57125                                 p_business_method_code     => l_bflow_method_code
57126                                ,p_business_class_code      => l_bflow_class_code
57127                                ,p_inherit_description_flag => l_inherit_desc_flag);
57128    END IF;
57129 
57130    --
57131    -- call analytical criteria
57132    --
57133    -- Inherited Analytical Criteria for business flow method of Prior Entry.
57134    --
57135    -- call description
57136    --
57137    -- No description or it is inherited.
57138    --
57139    -- call ADRs
57140    -- Bug 4922099
57141    --
57142    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57143         (NVL(l_actual_upg_option, 'N') = 'O') OR
57144         (NVL(l_enc_upg_option, 'N') = 'O')
57145       )
57146    THEN
57147    NULL;
57148    --
57149    --
57150    
57151    --
57152    --
57153    END IF;
57154    --
57155    -- Bug 4922099
57156    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57157           (NVL(l_enc_upg_option, 'N') = 'O')
57158         ) AND
57159         (l_bflow_method_code = 'PRIOR_ENTRY')
57160       )
57161    THEN
57162       IF
57163       --
57164       1 = 1
57165       --
57166       THEN
57167       xla_accounting_err_pkg.build_message
57168                                     (p_appli_s_name            => 'XLA'
57169                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57170                                     ,p_token_1                 => 'LINE_NUMBER'
57171                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
57172                                     ,p_token_2                 => 'LINE_TYPE_NAME'
57173                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
57174                                                                              l_component_type
57175                                                                             ,l_component_code
57176                                                                             ,l_component_type_code
57177                                                                             ,l_component_appl_id
57178                                                                             ,l_amb_context_code
57179                                                                             ,l_entity_code
57180                                                                             ,l_event_class_code
57181                                                                            )
57182                                     ,p_token_3                 => 'OWNER'
57183                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
57184                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
57185                                                                           ,p_lookup_code    => l_component_type_code
57186                                                                          )
57187                                     ,p_token_4                 => 'PRODUCT_NAME'
57188                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57189                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57190                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57191                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57192                                     ,p_ae_header_id            =>  NULL
57193                                        );
57194 
57195         IF (C_LEVEL_ERROR>= g_log_level) THEN
57196                  trace
57197                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57198                       ,p_level    => C_LEVEL_ERROR
57199                       ,p_module   => l_log_module);
57200         END IF;
57201       END IF;
57202    END IF;
57203    --
57204    --
57205    ------------------------------------------------------------------------------------------------
57206    -- 4219869 Business Flow
57207    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57208    -- Prior Entry.  Currently, the following code is always generated.
57209    ------------------------------------------------------------------------------------------------
57210    -- No ValidateCurrentLine for business flow method of Prior Entry
57211 
57212    ------------------------------------------------------------------------------------
57213    -- 4219869 Business Flow
57214    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57215    ------------------------------------------------------------------------------------
57216    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57217 
57218    ----------------------------------------------------------------------------------
57219    -- 4219869 Business Flow
57220    -- Update journal entry status -- Need to generate this within IF <condition>
57221    ----------------------------------------------------------------------------------
57222    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57226 
57223          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57224          ,p_balance_type_code => l_balance_type_code
57225          );
57227    -------------------------------------------------------------------------------------------
57228    -- 4262811 - Generate the Accrual Reversal lines
57229    -------------------------------------------------------------------------------------------
57230    BEGIN
57231       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57232                               (g_array_event(p_event_id).array_value_num('header_index'));
57233       IF l_acc_rev_flag IS NULL THEN
57234          l_acc_rev_flag := 'N';
57235       END IF;
57236    EXCEPTION
57237       WHEN OTHERS THEN
57238          l_acc_rev_flag := 'N';
57239    END;
57240    --
57241    IF (l_acc_rev_flag = 'Y') THEN
57242 
57243        -- 4645092  ------------------------------------------------------------------------------
57244        -- To allow MPA report to determine if it should generate report process
57245        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57246        ------------------------------------------------------------------------------------------
57247 
57248        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57249        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57250    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
57251    -- call ADRs
57252    -- Bug 4922099
57253    --
57254    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57255         (NVL(l_actual_upg_option, 'N') = 'O') OR
57256         (NVL(l_enc_upg_option, 'N') = 'O')
57257       )
57258    THEN
57259    NULL;
57260    --
57261    --
57262    
57263    --
57264    --
57265    END IF;
57266 
57267        --
57268        -- Update the line information that should be overwritten
57269        --
57270        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57271                                          p_header_num   => 1);
57272        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
57273 
57274        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57275 
57276        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
57277           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57278        END IF;
57279 
57280       --
57281       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57282       --
57283       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57284           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
57285       ELSE
57286           ---------------------------------------------------------------------------------------------------
57287           -- 4262811a Switch Sign
57288           ---------------------------------------------------------------------------------------------------
57289           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
57290           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57291                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57292           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57293                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57294           -- 5132302
57295           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57296                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57297 
57298       END IF;
57299 
57300       -- 4955764
57301       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57302       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57303 
57304 
57305       XLA_AE_LINES_PKG.ValidateCurrentLine;
57306       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57307 
57308       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57309                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57310                ,p_balance_type_code => l_balance_type_code);
57311 
57312    END IF;
57313 
57314    -----------------------------------------------------------------------------------------
57315    -- 4262811 Multiperiod Accounting
57316    -----------------------------------------------------------------------------------------
57317      -- No MPA option is assigned.
57318 
57319 
57320 END IF;
57321 END IF;
57322 --
57323 
57324 --
57325 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57326    trace
57327       (p_msg      => 'END of AcctLineType_116'
57328       ,p_level    => C_LEVEL_PROCEDURE
57329       ,p_module   => l_log_module);
57330 END IF;
57331 --
57332 EXCEPTION
57333   WHEN xla_exceptions_pkg.application_exception THEN
57334       RAISE;
57335   WHEN OTHERS THEN
57336        xla_exceptions_pkg.raise_message
57337            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_116');
57338 END AcctLineType_116;
57339 --
57340 
57341 ---------------------------------------
57342 --
57343 -- PRIVATE FUNCTION
57344 --         AcctLineType_117
57345 --
57346 ---------------------------------------
57347 PROCEDURE AcctLineType_117 (
57348   p_application_id        IN NUMBER
57349  ,p_event_id              IN NUMBER
57353  ,p_balance_type_code     OUT VARCHAR2
57350  ,p_calculate_acctd_flag  IN VARCHAR2
57351  ,p_calculate_g_l_flag    IN VARCHAR2
57352  ,p_actual_flag           IN OUT VARCHAR2
57354  ,p_gain_or_loss_ref      OUT VARCHAR2
57355  
57356 --Invoice Distribution Type
57357  , p_source_21            IN VARCHAR2
57358  , p_source_21_meaning    IN VARCHAR2
57359 --Accounting Reversal Indicator
57360  , p_source_41            IN VARCHAR2
57361 --Distribution Link Type
57362  , p_source_43            IN VARCHAR2
57363 --Allocation to Main Distribution Identifier
57364  , p_source_45            IN NUMBER
57365 --Invoice Identifier
57366  , p_source_46            IN NUMBER
57367 --Invoice Distribution Identifier
57368  , p_source_52            IN NUMBER
57369 --Payables Encumbrance Upgrade Credit Account
57370  , p_source_53            IN NUMBER
57371 --Payables Encumbrance Upgrade Credit Amount
57372  , p_source_54            IN NUMBER
57373 --Invoice Currency Code
57374  , p_source_55            IN VARCHAR2
57375 --Payables Encumbrance Upgrade Credit Base Amount
57376  , p_source_56            IN NUMBER
57377 --Payables Encumbrance Upgrade Debit Account
57378  , p_source_57            IN NUMBER
57379 --Payables Encumbrance Upgrade Debit Amount
57380  , p_source_58            IN NUMBER
57381 --Payables Encumbrance Upgrade Debit Base Amount
57382  , p_source_59            IN NUMBER
57383 --Payables Encumbrance Upgrade Option
57384  , p_source_60            IN VARCHAR2
57385 --Deferred Accounting End Date
57386  , p_source_65            IN DATE
57387 --Deferred Accounting Option
57388  , p_source_66            IN VARCHAR2
57389 --Deferred Accounting Start Date
57390  , p_source_67            IN DATE
57391 --Override Accounted Amount Indicator
57392  , p_source_68            IN VARCHAR2
57393  , p_source_68_meaning    IN VARCHAR2
57394 --Third Party Type
57395  , p_source_71            IN VARCHAR2
57396 --Parent Reversal Identifier
57397  , p_source_72            IN NUMBER
57398 --Invoice Distribution Statistical Amount
57399  , p_source_73            IN NUMBER
57400 --Invoice Distribution Tax Line Identifier
57401  , p_source_74            IN NUMBER
57402 --Invoice Distribution Tax Distribution Identifier from Tax
57403  , p_source_75            IN NUMBER
57404 --Invoice Distribution Summary Tax Line Identifier
57405  , p_source_76            IN NUMBER
57406 --Payables Upgrade Credit Encumbrance Type Identifier
57407  , p_source_77            IN NUMBER
57408 --Payables Upgrade Debit Encumbrance Type Identifier
57409  , p_source_78            IN NUMBER
57410 --Business Flow Accounts Payable Application Identifier
57411  , p_source_79            IN NUMBER
57412 --Business Flow Invoice Distribution Type
57413  , p_source_80            IN VARCHAR2
57414 --Business Flow Invoice Entity Code
57415  , p_source_81            IN VARCHAR2
57416 --Business Flow Invoice Distribution Identifier
57417  , p_source_82            IN NUMBER
57418 --Business Flow Invoice Identifier
57419  , p_source_83            IN NUMBER
57420 --Purchasing Encumbrance Option
57421  , p_source_86            IN VARCHAR2
57422  , p_source_86_meaning    IN VARCHAR2
57423 --Invoice Encumbered Option
57424  , p_source_87            IN VARCHAR2
57425  , p_source_87_meaning    IN VARCHAR2
57426 --Invoice Distribution Encumbrance Amount
57427  , p_source_143            IN NUMBER
57428 --Invoice Distribution Encumbrance Ledger Amount
57429  , p_source_144            IN NUMBER
57430 )
57431 IS
57432 
57433 l_component_type              VARCHAR2(80);
57434 l_component_code              VARCHAR2(30);
57435 l_component_type_code         VARCHAR2(1);
57436 l_component_appl_id           INTEGER;
57437 l_amb_context_code            VARCHAR2(30);
57438 l_entity_code                 VARCHAR2(30);
57439 l_event_class_code            VARCHAR2(30);
57440 l_ae_header_id                NUMBER;
57441 l_event_type_code             VARCHAR2(30);
57442 l_line_definition_code        VARCHAR2(30);
57443 l_line_definition_owner_code  VARCHAR2(1);
57444 --
57445 -- adr variables
57446 l_segment                     VARCHAR2(30);
57447 l_ccid                        NUMBER;
57448 l_adr_transaction_coa_id      NUMBER;
57449 l_adr_accounting_coa_id       NUMBER;
57450 l_adr_flexfield_segment_code  VARCHAR2(30);
57451 l_adr_flex_value_set_id       NUMBER;
57452 l_adr_value_type_code         VARCHAR2(30);
57453 l_adr_value_combination_id    NUMBER;
57454 l_adr_value_segment_code      VARCHAR2(30);
57455 
57456 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
57457 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
57458 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
57459 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
57460 
57461 -- 4262811 Variables ------------------------------------------------------------------------------------------
57462 l_entered_amt_idx             NUMBER;
57463 l_accted_amt_idx              NUMBER;
57464 l_acc_rev_flag                VARCHAR2(1);
57465 l_accrual_line_num            NUMBER;
57466 l_tmp_amt                     NUMBER;
57467 l_acc_rev_natural_side_code   VARCHAR2(1);
57468 
57469 l_num_entries                 NUMBER;
57470 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
57471 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
57472 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
57473 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
57474 l_recog_line_1                NUMBER;
57475 l_recog_line_2                NUMBER;
57476 
57477 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
57478 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
57482 
57479 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
57480 
57481 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
57483 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
57484 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
57485 
57486 ---------------------------------------------------------------------------------------------------------------
57487 
57488 
57489 --
57490 -- bulk performance
57491 --
57492 l_balance_type_code           VARCHAR2(1);
57493 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
57494 l_log_module                  VARCHAR2(240);
57495 
57496 --
57497 -- Upgrade strategy
57498 --
57499 l_actual_upg_option           VARCHAR2(1);
57500 l_enc_upg_option           VARCHAR2(1);
57501 
57502 --
57503 BEGIN
57504 --
57505 IF g_log_enabled THEN
57506       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_117';
57507 END IF;
57508 --
57509 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57510 
57511       trace
57512          (p_msg      => 'BEGIN of AcctLineType_117'
57513          ,p_level    => C_LEVEL_PROCEDURE
57514          ,p_module   => l_log_module);
57515 
57516 END IF;
57517 --
57518 l_component_type             := 'AMB_JLT';
57519 l_component_code             := 'AP_EX_RATE_VAR_PP_ENC';
57520 l_component_type_code        := 'S';
57521 l_component_appl_id          :=  200;
57522 l_amb_context_code           := 'DEFAULT';
57523 l_entity_code                := 'AP_INVOICES';
57524 l_event_class_code           := 'PREPAYMENTS';
57525 l_event_type_code            := 'PREPAYMENTS_ALL';
57526 l_line_definition_owner_code := 'S';
57527 l_line_definition_code       := 'ENC_REV_PREPAY_ALL';
57528 --
57529 l_balance_type_code          := 'E';
57530 l_segment                     := NULL;
57531 l_ccid                        := NULL;
57532 l_adr_transaction_coa_id      := NULL;
57533 l_adr_accounting_coa_id       := NULL;
57534 l_adr_flexfield_segment_code  := NULL;
57535 l_adr_flex_value_set_id       := NULL;
57536 l_adr_value_type_code         := NULL;
57537 l_adr_value_combination_id    := NULL;
57538 l_adr_value_segment_code      := NULL;
57539 
57540 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
57541 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
57542 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
57543 l_budgetary_control_flag     := 'N';
57544 
57545 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
57546 l_bflow_applied_to_amt       := NULL; -- 5132302
57547 l_entered_amt_idx            := NULL;          -- 4262811
57548 l_accted_amt_idx             := NULL;          -- 4262811
57549 l_acc_rev_flag               := NULL;          -- 4262811
57550 l_accrual_line_num           := NULL;          -- 4262811
57551 l_tmp_amt                    := NULL;          -- 4262811
57552 --
57553 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
57554             (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
57555                return;
57556   END IF;
57557   
57558 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57559     l_balance_type_code <> 'B' THEN
57560 IF NVL(p_source_21,'
57561 ') =  'ERV' AND 
57562 NVL(p_source_86,'
57563 ') =  'Y' AND 
57564 NVL(p_source_87,'
57565 ') =  'Y'
57566  THEN 
57567 
57568    --
57569    XLA_AE_LINES_PKG.SetNewLine;
57570 
57571    p_balance_type_code          := l_balance_type_code;
57572    -- set the flag so later we will know whether the gain loss line needs to be created
57573    
57574    IF(l_balance_type_code = 'A' ) THEN
57575      p_actual_flag :='G';
57576    END IF;
57577 
57578    --
57579    -- bulk performance
57580    --
57581    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57582                                       p_header_num   => 0); -- 4262811
57583    --
57584    -- set accounting line options
57585    --
57586    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57587            p_natural_side_code          => 'C'
57588          , p_gain_or_loss_flag          => 'Y'
57589          , p_gl_transfer_mode_code      => 'S'
57590          , p_acct_entry_type_code       => 'E'
57591          , p_switch_side_flag           => 'Y'
57592          , p_merge_duplicate_code       => 'A'
57593          );
57594    --
57595    l_acc_rev_natural_side_code := 'D';  -- 4262811
57596    -- 
57597    --
57598    -- set accounting line type info
57599    --
57600    xla_ae_lines_pkg.SetAcctLineType
57601       (p_component_type             => l_component_type
57602       ,p_event_type_code            => l_event_type_code
57603       ,p_line_definition_owner_code => l_line_definition_owner_code
57604       ,p_line_definition_code       => l_line_definition_code
57605       ,p_accounting_line_code       => l_component_code
57606       ,p_accounting_line_type_code  => l_component_type_code
57607       ,p_accounting_line_appl_id    => l_component_appl_id
57608       ,p_amb_context_code           => l_amb_context_code
57609       ,p_entity_code                => l_entity_code
57610       ,p_event_class_code           => l_event_class_code);
57611    --
57612    -- set accounting class
57613    --
57614    xla_ae_lines_pkg.SetAcctClass(
57618 
57615            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
57616          , p_ae_header_id           => l_ae_header_id
57617          );
57619    --
57620    -- set rounding class
57621    --
57622    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57623                       'EXCHANGE_RATE_VARIANCE';
57624 
57625    --
57626    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57627    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57628    --
57629    -- bulk performance
57630    --
57631    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57632 
57633    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57634       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57635 
57636    -- 4955764
57637    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57638       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57639 
57640    -- 4458381 Public Sector Enh
57641    
57642    --
57643    -- set accounting attributes for the line type
57644    --
57645    l_entered_amt_idx := 23;
57646    l_accted_amt_idx  := 25;
57647    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
57648    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57649    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
57650    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
57651    l_rec_acct_attrs.array_num_value(2)  := 
57652 xla_ae_sources_pkg.GetSystemSourceNum(
57653    p_source_code           => 'XLA_EVENT_APPL_ID'
57654  , p_source_type_code      => 'Y'
57655  , p_source_application_id =>  602
57656 );
57657    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
57658    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
57659    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
57660    l_rec_acct_attrs.array_char_value(4)  := 
57661 xla_ae_sources_pkg.GetSystemSourceChar(
57662    p_source_code           => 'XLA_ENTITY_CODE'
57663  , p_source_type_code      => 'Y'
57664  , p_source_application_id =>  602
57665 );
57666    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
57667    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
57668    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
57669    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
57670    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
57671    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
57672    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57673    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
57674    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
57675    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
57676    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
57677    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
57678    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57679    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
57680    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
57681    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
57682    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
57683    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
57684    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
57685    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
57686    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
57687    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
57688    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
57689    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
57690    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
57691    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
57692    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
57693    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
57694    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
57695    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
57696    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
57697    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
57698    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
57699    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
57700    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
57701    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
57702    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
57703    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
57704    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
57705    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
57706    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
57707    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
57708    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
57709    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
57710    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
57711    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
57712    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
57713    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
57714    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
57715    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
57716    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
57717    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
57721    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
57718    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
57719    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
57720    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
57722    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
57723    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
57724    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
57725    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
57726    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
57727    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
57728    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
57729    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
57730    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
57731    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
57732    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
57733    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
57734 
57735    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57736    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57737 
57738    ---------------------------------------------------------------------------------------------------------------
57739    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57740    ---------------------------------------------------------------------------------------------------------------
57741    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57742 
57743    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57744    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57745 
57746    IF xla_accounting_cache_pkg.GetValueChar
57747          (p_source_code         => 'LEDGER_CATEGORY_CODE'
57748          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57749    AND l_bflow_method_code = 'PRIOR_ENTRY'
57750 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57751    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57752          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57753        )
57754    THEN
57755          xla_ae_lines_pkg.BflowUpgEntry
57756            (p_business_method_code    => l_bflow_method_code
57757            ,p_business_class_code     => l_bflow_class_code
57758            ,p_balance_type            => l_balance_type_code);
57759    ELSE
57760       NULL;
57761 XLA_AE_LINES_PKG.business_flow_validation(
57762                                 p_business_method_code     => l_bflow_method_code
57763                                ,p_business_class_code      => l_bflow_class_code
57764                                ,p_inherit_description_flag => l_inherit_desc_flag);
57765    END IF;
57766 
57767    --
57768    -- call analytical criteria
57769    --
57770    -- Inherited Analytical Criteria for business flow method of Prior Entry.
57771    --
57772    -- call description
57773    --
57774    -- No description or it is inherited.
57775    --
57776    -- call ADRs
57777    -- Bug 4922099
57778    --
57779    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57780         (NVL(l_actual_upg_option, 'N') = 'O') OR
57781         (NVL(l_enc_upg_option, 'N') = 'O')
57782       )
57783    THEN
57784    NULL;
57785    --
57786    --
57787    
57788    --
57789    --
57790    END IF;
57791    --
57792    -- Bug 4922099
57793    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57794           (NVL(l_enc_upg_option, 'N') = 'O')
57795         ) AND
57796         (l_bflow_method_code = 'PRIOR_ENTRY')
57797       )
57798    THEN
57799       IF
57800       --
57801       1 = 1
57802       --
57803       THEN
57804       xla_accounting_err_pkg.build_message
57805                                     (p_appli_s_name            => 'XLA'
57806                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57807                                     ,p_token_1                 => 'LINE_NUMBER'
57808                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
57809                                     ,p_token_2                 => 'LINE_TYPE_NAME'
57810                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
57811                                                                              l_component_type
57812                                                                             ,l_component_code
57813                                                                             ,l_component_type_code
57814                                                                             ,l_component_appl_id
57815                                                                             ,l_amb_context_code
57816                                                                             ,l_entity_code
57817                                                                             ,l_event_class_code
57818                                                                            )
57819                                     ,p_token_3                 => 'OWNER'
57820                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
57821                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
57822                                                                           ,p_lookup_code    => l_component_type_code
57823                                                                          )
57824                                     ,p_token_4                 => 'PRODUCT_NAME'
57828                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57825                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57826                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57827                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57829                                     ,p_ae_header_id            =>  NULL
57830                                        );
57831 
57832         IF (C_LEVEL_ERROR>= g_log_level) THEN
57833                  trace
57834                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57835                       ,p_level    => C_LEVEL_ERROR
57836                       ,p_module   => l_log_module);
57837         END IF;
57838       END IF;
57839    END IF;
57840    --
57841    --
57842    ------------------------------------------------------------------------------------------------
57843    -- 4219869 Business Flow
57844    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57845    -- Prior Entry.  Currently, the following code is always generated.
57846    ------------------------------------------------------------------------------------------------
57847    -- No ValidateCurrentLine for business flow method of Prior Entry
57848 
57849    ------------------------------------------------------------------------------------
57850    -- 4219869 Business Flow
57851    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57852    ------------------------------------------------------------------------------------
57853    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57854 
57855    ----------------------------------------------------------------------------------
57856    -- 4219869 Business Flow
57857    -- Update journal entry status -- Need to generate this within IF <condition>
57858    ----------------------------------------------------------------------------------
57859    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57860          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57861          ,p_balance_type_code => l_balance_type_code
57862          );
57863 
57864    -------------------------------------------------------------------------------------------
57865    -- 4262811 - Generate the Accrual Reversal lines
57866    -------------------------------------------------------------------------------------------
57867    BEGIN
57868       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57869                               (g_array_event(p_event_id).array_value_num('header_index'));
57870       IF l_acc_rev_flag IS NULL THEN
57871          l_acc_rev_flag := 'N';
57872       END IF;
57873    EXCEPTION
57874       WHEN OTHERS THEN
57875          l_acc_rev_flag := 'N';
57876    END;
57877    --
57878    IF (l_acc_rev_flag = 'Y') THEN
57879 
57880        -- 4645092  ------------------------------------------------------------------------------
57881        -- To allow MPA report to determine if it should generate report process
57882        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57883        ------------------------------------------------------------------------------------------
57884 
57885        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57886        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57887    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
57888    -- call ADRs
57889    -- Bug 4922099
57890    --
57891    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57892         (NVL(l_actual_upg_option, 'N') = 'O') OR
57893         (NVL(l_enc_upg_option, 'N') = 'O')
57894       )
57895    THEN
57896    NULL;
57897    --
57898    --
57899    
57900    --
57901    --
57902    END IF;
57903 
57904        --
57905        -- Update the line information that should be overwritten
57906        --
57907        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57908                                          p_header_num   => 1);
57909        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
57910 
57911        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57912 
57913        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
57914           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57915        END IF;
57916 
57917       --
57918       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57919       --
57920       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57921           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
57922       ELSE
57923           ---------------------------------------------------------------------------------------------------
57924           -- 4262811a Switch Sign
57925           ---------------------------------------------------------------------------------------------------
57926           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
57927           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57928                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57929           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57930                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57931           -- 5132302
57935       END IF;
57932           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57933                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57934 
57936 
57937       -- 4955764
57938       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57939       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57940 
57941 
57942       XLA_AE_LINES_PKG.ValidateCurrentLine;
57943       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57944 
57945       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57946                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57947                ,p_balance_type_code => l_balance_type_code);
57948 
57949    END IF;
57950 
57951    -----------------------------------------------------------------------------------------
57952    -- 4262811 Multiperiod Accounting
57953    -----------------------------------------------------------------------------------------
57954      -- No MPA option is assigned.
57955 
57956 
57957 END IF;
57958 END IF;
57959 --
57960 
57961 --
57962 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57963    trace
57964       (p_msg      => 'END of AcctLineType_117'
57965       ,p_level    => C_LEVEL_PROCEDURE
57966       ,p_module   => l_log_module);
57967 END IF;
57968 --
57969 EXCEPTION
57970   WHEN xla_exceptions_pkg.application_exception THEN
57971       RAISE;
57972   WHEN OTHERS THEN
57973        xla_exceptions_pkg.raise_message
57974            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_117');
57975 END AcctLineType_117;
57976 --
57977 
57978 ---------------------------------------
57979 --
57980 -- PRIVATE FUNCTION
57981 --         AcctLineType_118
57982 --
57983 ---------------------------------------
57984 PROCEDURE AcctLineType_118 (
57985   p_application_id        IN NUMBER
57986  ,p_event_id              IN NUMBER
57987  ,p_calculate_acctd_flag  IN VARCHAR2
57988  ,p_calculate_g_l_flag    IN VARCHAR2
57989  ,p_actual_flag           IN OUT VARCHAR2
57990  ,p_balance_type_code     OUT VARCHAR2
57991  ,p_gain_or_loss_ref      OUT VARCHAR2
57992  
57993 --Invoice Distribution Description
57994  , p_source_1            IN VARCHAR2
57995 --Automatic Offsets Value
57996  , p_source_3            IN VARCHAR2
57997  , p_source_3_meaning    IN VARCHAR2
57998 --Purchase Order Rate Variance Gain Account
57999  , p_source_8            IN NUMBER
58000 --Invoice Distribution Ledger Amount
58001  , p_source_9            IN NUMBER
58002 --Destination Type of the PO Distribution
58003  , p_source_10            IN VARCHAR2
58004  , p_source_10_meaning    IN VARCHAR2
58005 --Purchase Order Rate Variance Loss Account
58006  , p_source_11            IN NUMBER
58007 --Invoice Distribution Account
58008  , p_source_18            IN NUMBER
58009 --Invoice Distribution Type
58010  , p_source_21            IN VARCHAR2
58011  , p_source_21_meaning    IN VARCHAR2
58012 --Automatic Offsets Flag
58013  , p_source_35            IN VARCHAR2
58014  , p_source_35_meaning    IN VARCHAR2
58015 --Accounting Reversal Indicator
58016  , p_source_41            IN VARCHAR2
58017 --Distribution Link Type
58018  , p_source_43            IN VARCHAR2
58019 --Allocation to Main Distribution Identifier
58020  , p_source_45            IN NUMBER
58021 --Invoice Identifier
58022  , p_source_46            IN NUMBER
58023 --Invoice Distribution Identifier
58024  , p_source_52            IN NUMBER
58025 --Payables Encumbrance Upgrade Credit Account
58026  , p_source_53            IN NUMBER
58027 --Payables Encumbrance Upgrade Credit Amount
58028  , p_source_54            IN NUMBER
58029 --Invoice Currency Code
58030  , p_source_55            IN VARCHAR2
58031 --Payables Encumbrance Upgrade Credit Base Amount
58032  , p_source_56            IN NUMBER
58033 --Payables Encumbrance Upgrade Debit Account
58034  , p_source_57            IN NUMBER
58035 --Payables Encumbrance Upgrade Debit Amount
58036  , p_source_58            IN NUMBER
58037 --Payables Encumbrance Upgrade Debit Base Amount
58038  , p_source_59            IN NUMBER
58039 --Payables Encumbrance Upgrade Option
58040  , p_source_60            IN VARCHAR2
58041 --Invoice Distribution Amount
58042  , p_source_61            IN NUMBER
58043 --Deferred Accounting End Date
58044  , p_source_65            IN DATE
58045 --Deferred Accounting Option
58046  , p_source_66            IN VARCHAR2
58047 --Deferred Accounting Start Date
58048  , p_source_67            IN DATE
58049 --Override Accounted Amount Indicator
58050  , p_source_68            IN VARCHAR2
58051  , p_source_68_meaning    IN VARCHAR2
58052 --Invoice Supplier Identifier
58053  , p_source_69            IN NUMBER
58054 --Invoice Supplier Site Identifier
58055  , p_source_70            IN NUMBER
58056 --Third Party Type
58057  , p_source_71            IN VARCHAR2
58058 --Parent Reversal Identifier
58059  , p_source_72            IN NUMBER
58060 --Invoice Distribution Statistical Amount
58061  , p_source_73            IN NUMBER
58062 --Invoice Distribution Tax Line Identifier
58063  , p_source_74            IN NUMBER
58064 --Invoice Distribution Tax Distribution Identifier from Tax
58065  , p_source_75            IN NUMBER
58066 --Invoice Distribution Summary Tax Line Identifier
58067  , p_source_76            IN NUMBER
58068 --Payables Upgrade Credit Encumbrance Type Identifier
58069  , p_source_77            IN NUMBER
58070 --Payables Upgrade Debit Encumbrance Type Identifier
58071  , p_source_78            IN NUMBER
58075  , p_source_80            IN VARCHAR2
58072 --Business Flow Accounts Payable Application Identifier
58073  , p_source_79            IN NUMBER
58074 --Business Flow Invoice Distribution Type
58076 --Business Flow Invoice Entity Code
58077  , p_source_81            IN VARCHAR2
58078 --Business Flow Invoice Distribution Identifier
58079  , p_source_82            IN NUMBER
58080 --Business Flow Invoice Identifier
58081  , p_source_83            IN NUMBER
58082 --Accrue on Receipt Option
58083  , p_source_84            IN VARCHAR2
58084  , p_source_84_meaning    IN VARCHAR2
58085 --Invoice Exchange Date
58086  , p_source_136            IN DATE
58087 --Invoice Exchange Rate
58088  , p_source_137            IN NUMBER
58089 --Invoice Exchange Rate Type
58090  , p_source_138            IN VARCHAR2
58091 )
58092 IS
58093 
58094 l_component_type              VARCHAR2(80);
58095 l_component_code              VARCHAR2(30);
58096 l_component_type_code         VARCHAR2(1);
58097 l_component_appl_id           INTEGER;
58098 l_amb_context_code            VARCHAR2(30);
58099 l_entity_code                 VARCHAR2(30);
58100 l_event_class_code            VARCHAR2(30);
58101 l_ae_header_id                NUMBER;
58102 l_event_type_code             VARCHAR2(30);
58103 l_line_definition_code        VARCHAR2(30);
58104 l_line_definition_owner_code  VARCHAR2(1);
58105 --
58106 -- adr variables
58107 l_segment                     VARCHAR2(30);
58108 l_ccid                        NUMBER;
58109 l_adr_transaction_coa_id      NUMBER;
58110 l_adr_accounting_coa_id       NUMBER;
58111 l_adr_flexfield_segment_code  VARCHAR2(30);
58112 l_adr_flex_value_set_id       NUMBER;
58113 l_adr_value_type_code         VARCHAR2(30);
58114 l_adr_value_combination_id    NUMBER;
58115 l_adr_value_segment_code      VARCHAR2(30);
58116 
58117 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
58118 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
58119 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
58120 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
58121 
58122 -- 4262811 Variables ------------------------------------------------------------------------------------------
58123 l_entered_amt_idx             NUMBER;
58124 l_accted_amt_idx              NUMBER;
58125 l_acc_rev_flag                VARCHAR2(1);
58126 l_accrual_line_num            NUMBER;
58127 l_tmp_amt                     NUMBER;
58128 l_acc_rev_natural_side_code   VARCHAR2(1);
58129 
58130 l_num_entries                 NUMBER;
58131 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
58132 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
58133 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
58134 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
58135 l_recog_line_1                NUMBER;
58136 l_recog_line_2                NUMBER;
58137 
58138 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
58139 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
58140 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
58141 
58142 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58143 
58144 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
58145 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
58146 
58147 ---------------------------------------------------------------------------------------------------------------
58148 
58149 
58150 --
58151 -- bulk performance
58152 --
58153 l_balance_type_code           VARCHAR2(1);
58154 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
58155 l_log_module                  VARCHAR2(240);
58156 
58157 --
58158 -- Upgrade strategy
58159 --
58160 l_actual_upg_option           VARCHAR2(1);
58161 l_enc_upg_option           VARCHAR2(1);
58162 
58163 --
58164 BEGIN
58165 --
58166 IF g_log_enabled THEN
58167       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_118';
58168 END IF;
58169 --
58170 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58171 
58172       trace
58173          (p_msg      => 'BEGIN of AcctLineType_118'
58174          ,p_level    => C_LEVEL_PROCEDURE
58175          ,p_module   => l_log_module);
58176 
58177 END IF;
58178 --
58179 l_component_type             := 'AMB_JLT';
58180 l_component_code             := 'AP_EX_RATE_VAR_PREPAY';
58181 l_component_type_code        := 'S';
58182 l_component_appl_id          :=  200;
58183 l_amb_context_code           := 'DEFAULT';
58184 l_entity_code                := 'AP_INVOICES';
58185 l_event_class_code           := 'PREPAYMENTS';
58186 l_event_type_code            := 'PREPAYMENTS_ALL';
58187 l_line_definition_owner_code := 'S';
58188 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
58189 --
58190 l_balance_type_code          := 'A';
58191 l_segment                     := NULL;
58192 l_ccid                        := NULL;
58193 l_adr_transaction_coa_id      := NULL;
58194 l_adr_accounting_coa_id       := NULL;
58195 l_adr_flexfield_segment_code  := NULL;
58196 l_adr_flex_value_set_id       := NULL;
58197 l_adr_value_type_code         := NULL;
58198 l_adr_value_combination_id    := NULL;
58199 l_adr_value_segment_code      := NULL;
58200 
58201 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
58202 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
58203 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
58204 l_budgetary_control_flag     := 'N';
58205 
58206 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
58210 l_acc_rev_flag               := NULL;          -- 4262811
58207 l_bflow_applied_to_amt       := NULL; -- 5132302
58208 l_entered_amt_idx            := NULL;          -- 4262811
58209 l_accted_amt_idx             := NULL;          -- 4262811
58211 l_accrual_line_num           := NULL;          -- 4262811
58212 l_tmp_amt                    := NULL;          -- 4262811
58213 --
58214 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
58215             (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
58216                return;
58217   END IF;
58218   
58219 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58220     l_balance_type_code <> 'B' THEN
58221 IF NVL(p_source_21,'
58222 ') =  'ERV' AND 
58223 NVL(p_source_84,'
58224 ') =  'Y'
58225  THEN 
58226 
58227    --
58228    XLA_AE_LINES_PKG.SetNewLine;
58229 
58230    p_balance_type_code          := l_balance_type_code;
58231    -- set the flag so later we will know whether the gain loss line needs to be created
58232    
58233    IF(l_balance_type_code = 'A' ) THEN
58234      p_actual_flag :='G';
58235    END IF;
58236 
58237    --
58238    -- bulk performance
58239    --
58240    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58241                                       p_header_num   => 0); -- 4262811
58242    --
58243    -- set accounting line options
58244    --
58245    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58246            p_natural_side_code          => 'D'
58247          , p_gain_or_loss_flag          => 'Y'
58248          , p_gl_transfer_mode_code      => 'S'
58249          , p_acct_entry_type_code       => 'A'
58250          , p_switch_side_flag           => 'Y'
58251          , p_merge_duplicate_code       => 'A'
58252          );
58253    --
58254    l_acc_rev_natural_side_code := 'C';  -- 4262811
58255    -- 
58256    --
58257    -- set accounting line type info
58258    --
58259    xla_ae_lines_pkg.SetAcctLineType
58260       (p_component_type             => l_component_type
58261       ,p_event_type_code            => l_event_type_code
58262       ,p_line_definition_owner_code => l_line_definition_owner_code
58263       ,p_line_definition_code       => l_line_definition_code
58264       ,p_accounting_line_code       => l_component_code
58265       ,p_accounting_line_type_code  => l_component_type_code
58266       ,p_accounting_line_appl_id    => l_component_appl_id
58267       ,p_amb_context_code           => l_amb_context_code
58268       ,p_entity_code                => l_entity_code
58269       ,p_event_class_code           => l_event_class_code);
58270    --
58271    -- set accounting class
58272    --
58273    xla_ae_lines_pkg.SetAcctClass(
58274            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
58275          , p_ae_header_id           => l_ae_header_id
58276          );
58277 
58278    --
58279    -- set rounding class
58280    --
58281    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58282                       'EXCHANGE_RATE_VARIANCE';
58283 
58284    --
58285    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58286    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58287    --
58288    -- bulk performance
58289    --
58290    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58291 
58292    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58293       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58294 
58295    -- 4955764
58296    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58297       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58298 
58299    -- 4458381 Public Sector Enh
58300    
58301    --
58302    -- set accounting attributes for the line type
58303    --
58304    l_entered_amt_idx := 23;
58305    l_accted_amt_idx  := 28;
58306    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
58307    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
58308    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
58309    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
58310    l_rec_acct_attrs.array_num_value(2)  := 
58311 xla_ae_sources_pkg.GetSystemSourceNum(
58312    p_source_code           => 'XLA_EVENT_APPL_ID'
58313  , p_source_type_code      => 'Y'
58314  , p_source_application_id =>  602
58315 );
58316    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
58317    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
58318    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
58319    l_rec_acct_attrs.array_char_value(4)  := 
58320 xla_ae_sources_pkg.GetSystemSourceChar(
58321    p_source_code           => 'XLA_ENTITY_CODE'
58322  , p_source_type_code      => 'Y'
58323  , p_source_application_id =>  602
58324 );
58325    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
58326    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
58327    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
58328    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
58329    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
58330    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
58331    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
58335    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
58332    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
58333    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
58334    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
58336    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
58337    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
58338    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
58339    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
58340    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
58341    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
58342    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
58343    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
58344    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
58345    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
58346    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
58347    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
58348    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
58349    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
58350    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
58351    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
58352    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
58353    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
58354    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
58355    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
58356    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
58357    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
58358    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
58359    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
58360    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
58361    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
58362    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
58363    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
58364    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
58365    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
58366    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
58367    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
58368    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
58369    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
58370    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
58371    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
58372    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
58373    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
58374    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
58375    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
58376    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
58377    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
58378    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
58379    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
58380    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
58381    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
58382    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
58383    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
58384    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
58385    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
58386    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
58387    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
58388    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
58389    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
58390    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
58391    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
58392    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
58393    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
58394    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
58395    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
58396    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
58397    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
58398    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
58399    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
58400    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
58401    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
58402    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
58403 
58404    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58405    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58406 
58407    ---------------------------------------------------------------------------------------------------------------
58408    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58409    ---------------------------------------------------------------------------------------------------------------
58410    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58411 
58412    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58413    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58414 
58415    IF xla_accounting_cache_pkg.GetValueChar
58416          (p_source_code         => 'LEDGER_CATEGORY_CODE'
58417          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58418    AND l_bflow_method_code = 'PRIOR_ENTRY'
58419 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58423    THEN
58420    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58421          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58422        )
58424          xla_ae_lines_pkg.BflowUpgEntry
58425            (p_business_method_code    => l_bflow_method_code
58426            ,p_business_class_code     => l_bflow_class_code
58427            ,p_balance_type            => l_balance_type_code);
58428    ELSE
58429       NULL;
58430 -- No business flow processing for business flow method of NONE.
58431    END IF;
58432 
58433    --
58434    -- call analytical criteria
58435    --
58436    
58437    --
58438    -- call description
58439    --
58440    
58441 xla_ae_lines_pkg.SetLineDescription(
58442    p_ae_header_id => l_ae_header_id
58443   ,p_description  => Description_2 (
58444      p_application_id         => p_application_id
58445    , p_ae_header_id           => l_ae_header_id 
58446 , p_source_1 => p_source_1
58447    )
58448 );
58449 
58450 
58451    --
58452    -- call ADRs
58453    -- Bug 4922099
58454    --
58455    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58456         (NVL(l_actual_upg_option, 'N') = 'O') OR
58457         (NVL(l_enc_upg_option, 'N') = 'O')
58458       )
58459    THEN
58460    NULL;
58461    --
58462    --
58463    
58464   l_ccid := AcctDerRule_29(
58465            p_application_id           => p_application_id
58466          , p_ae_header_id             => l_ae_header_id 
58467 , p_source_3 => p_source_3
58468 , p_source_3_meaning => p_source_3_meaning
58469 , p_source_8 => p_source_8
58470 , p_source_9 => p_source_9
58471 , p_source_10 => p_source_10
58472 , p_source_10_meaning => p_source_10_meaning
58473 , p_source_11 => p_source_11
58474 , p_source_18 => p_source_18
58475 , p_source_35 => p_source_35
58476 , p_source_35_meaning => p_source_35_meaning
58477          , x_transaction_coa_id       => l_adr_transaction_coa_id
58478          , x_accounting_coa_id        => l_adr_accounting_coa_id
58479          , x_value_type_code          => l_adr_value_type_code
58480          , p_side                     => 'NA'
58481    );
58482 
58483    xla_ae_lines_pkg.set_ccid(
58484     p_code_combination_id          => l_ccid
58485   , p_value_type_code              => l_adr_value_type_code
58486   , p_transaction_coa_id           => l_adr_transaction_coa_id
58487   , p_accounting_coa_id            => l_adr_accounting_coa_id
58488   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
58489   , p_adr_type_code                => 'S'
58490   , p_component_type               => l_component_type
58491   , p_component_code               => l_component_code
58492   , p_component_type_code          => l_component_type_code
58493   , p_component_appl_id            => l_component_appl_id
58494   , p_amb_context_code             => l_amb_context_code
58495   , p_side                         => 'NA'
58496   );
58497 
58498 
58499    l_segment := AcctDerRule_7(
58500            p_application_id           => p_application_id
58501          , p_ae_header_id             => l_ae_header_id 
58502 , p_source_3 => p_source_3
58503 , p_source_3_meaning => p_source_3_meaning
58504 , p_source_8 => p_source_8
58505 , p_source_9 => p_source_9
58506 , p_source_10 => p_source_10
58507 , p_source_10_meaning => p_source_10_meaning
58508 , p_source_11 => p_source_11
58509          , x_transaction_coa_id       => l_adr_transaction_coa_id
58510          , x_accounting_coa_id        => l_adr_accounting_coa_id
58511          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
58512          , x_flex_value_set_id        => l_adr_flex_value_set_id
58513          , x_value_type_code          => l_adr_value_type_code
58514          , x_value_combination_id     => l_adr_value_combination_id
58515          , x_value_segment_code       => l_adr_value_segment_code
58516          , p_side                     => 'NA'
58517          , p_override_seg_flag        => 'Y'
58518    );
58519 
58520    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
58521 
58522       xla_ae_lines_pkg.set_segment(
58523           p_to_segment_code         => 'GL_ACCOUNT'
58524         , p_segment_value           => l_segment
58525         , p_from_segment_code       => l_adr_value_segment_code
58526         , p_from_combination_id     => l_adr_value_combination_id
58527         , p_value_type_code         => l_adr_value_type_code
58528         , p_transaction_coa_id      => l_adr_transaction_coa_id
58529         , p_accounting_coa_id       => l_adr_accounting_coa_id
58530         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
58531         , p_flex_value_set_id       => l_adr_flex_value_set_id
58532         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
58533         , p_adr_type_code           => 'S'
58534         , p_component_type          => l_component_type
58535         , p_component_code          => l_component_code
58536         , p_component_type_code     => l_component_type_code
58537         , p_component_appl_id       => l_component_appl_id
58538         , p_amb_context_code        => l_amb_context_code
58539         , p_entity_code             => 'AP_INVOICES'
58540         , p_event_class_code        => 'PREPAYMENTS'
58541         , p_side                    => 'NA'
58542         );
58543 
58544   END IF;
58545 
58546    l_segment := AcctDerRule_22(
58547            p_application_id           => p_application_id
58548          , p_ae_header_id             => l_ae_header_id 
58549 , p_source_3 => p_source_3
58550 , p_source_3_meaning => p_source_3_meaning
58551 , p_source_10 => p_source_10
58552 , p_source_10_meaning => p_source_10_meaning
58556          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
58553 , p_source_18 => p_source_18
58554          , x_transaction_coa_id       => l_adr_transaction_coa_id
58555          , x_accounting_coa_id        => l_adr_accounting_coa_id
58557          , x_flex_value_set_id        => l_adr_flex_value_set_id
58558          , x_value_type_code          => l_adr_value_type_code
58559          , x_value_combination_id     => l_adr_value_combination_id
58560          , x_value_segment_code       => l_adr_value_segment_code
58561          , p_side                     => 'NA'
58562          , p_override_seg_flag        => 'Y'
58563    );
58564 
58565    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
58566 
58567       xla_ae_lines_pkg.set_segment(
58568           p_to_segment_code         => 'GL_BALANCING'
58569         , p_segment_value           => l_segment
58570         , p_from_segment_code       => l_adr_value_segment_code
58571         , p_from_combination_id     => l_adr_value_combination_id
58572         , p_value_type_code         => l_adr_value_type_code
58573         , p_transaction_coa_id      => l_adr_transaction_coa_id
58574         , p_accounting_coa_id       => l_adr_accounting_coa_id
58575         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
58576         , p_flex_value_set_id       => l_adr_flex_value_set_id
58577         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
58578         , p_adr_type_code           => 'S'
58579         , p_component_type          => l_component_type
58580         , p_component_code          => l_component_code
58581         , p_component_type_code     => l_component_type_code
58582         , p_component_appl_id       => l_component_appl_id
58583         , p_amb_context_code        => l_amb_context_code
58584         , p_entity_code             => 'AP_INVOICES'
58585         , p_event_class_code        => 'PREPAYMENTS'
58586         , p_side                    => 'NA'
58587         );
58588 
58589   END IF;
58590 
58591    --
58592    --
58593    END IF;
58594    --
58595    -- Bug 4922099
58596    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58597           (NVL(l_enc_upg_option, 'N') = 'O')
58598         ) AND
58599         (l_bflow_method_code = 'PRIOR_ENTRY')
58600       )
58601    THEN
58602       IF
58603       --
58604       1 = 2
58605       --
58606       THEN
58607       xla_accounting_err_pkg.build_message
58608                                     (p_appli_s_name            => 'XLA'
58609                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58610                                     ,p_token_1                 => 'LINE_NUMBER'
58611                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
58612                                     ,p_token_2                 => 'LINE_TYPE_NAME'
58613                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
58614                                                                              l_component_type
58615                                                                             ,l_component_code
58616                                                                             ,l_component_type_code
58617                                                                             ,l_component_appl_id
58618                                                                             ,l_amb_context_code
58619                                                                             ,l_entity_code
58620                                                                             ,l_event_class_code
58621                                                                            )
58622                                     ,p_token_3                 => 'OWNER'
58623                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
58624                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
58625                                                                           ,p_lookup_code    => l_component_type_code
58626                                                                          )
58627                                     ,p_token_4                 => 'PRODUCT_NAME'
58628                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58629                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58630                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58631                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58632                                     ,p_ae_header_id            =>  NULL
58633                                        );
58634 
58635         IF (C_LEVEL_ERROR>= g_log_level) THEN
58636                  trace
58637                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58638                       ,p_level    => C_LEVEL_ERROR
58639                       ,p_module   => l_log_module);
58640         END IF;
58641       END IF;
58642    END IF;
58643    --
58644    --
58645    ------------------------------------------------------------------------------------------------
58646    -- 4219869 Business Flow
58647    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58648    -- Prior Entry.  Currently, the following code is always generated.
58649    ------------------------------------------------------------------------------------------------
58650    XLA_AE_LINES_PKG.ValidateCurrentLine;
58651 
58652    ------------------------------------------------------------------------------------
58653    -- 4219869 Business Flow
58654    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58658    ----------------------------------------------------------------------------------
58655    ------------------------------------------------------------------------------------
58656    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58657 
58659    -- 4219869 Business Flow
58660    -- Update journal entry status -- Need to generate this within IF <condition>
58661    ----------------------------------------------------------------------------------
58662    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58663          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58664          ,p_balance_type_code => l_balance_type_code
58665          );
58666 
58667    -------------------------------------------------------------------------------------------
58668    -- 4262811 - Generate the Accrual Reversal lines
58669    -------------------------------------------------------------------------------------------
58670    BEGIN
58671       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58672                               (g_array_event(p_event_id).array_value_num('header_index'));
58673       IF l_acc_rev_flag IS NULL THEN
58674          l_acc_rev_flag := 'N';
58675       END IF;
58676    EXCEPTION
58677       WHEN OTHERS THEN
58678          l_acc_rev_flag := 'N';
58679    END;
58680    --
58681    IF (l_acc_rev_flag = 'Y') THEN
58682 
58683        -- 4645092  ------------------------------------------------------------------------------
58684        -- To allow MPA report to determine if it should generate report process
58685        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58686        ------------------------------------------------------------------------------------------
58687 
58688        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58689        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
58690    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
58691    -- call ADRs
58692    -- Bug 4922099
58693    --
58694    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58695         (NVL(l_actual_upg_option, 'N') = 'O') OR
58696         (NVL(l_enc_upg_option, 'N') = 'O')
58697       )
58698    THEN
58699    NULL;
58700    --
58701    --
58702    
58703   l_ccid := AcctDerRule_29(
58704            p_application_id           => p_application_id
58705          , p_ae_header_id             => l_ae_header_id 
58706 , p_source_3 => p_source_3
58707 , p_source_3_meaning => p_source_3_meaning
58708 , p_source_8 => p_source_8
58709 , p_source_9 => p_source_9
58710 , p_source_10 => p_source_10
58711 , p_source_10_meaning => p_source_10_meaning
58712 , p_source_11 => p_source_11
58713 , p_source_18 => p_source_18
58714 , p_source_35 => p_source_35
58715 , p_source_35_meaning => p_source_35_meaning
58716          , x_transaction_coa_id       => l_adr_transaction_coa_id
58717          , x_accounting_coa_id        => l_adr_accounting_coa_id
58718          , x_value_type_code          => l_adr_value_type_code
58719          , p_side                     => 'NA'
58720    );
58721 
58722    xla_ae_lines_pkg.set_ccid(
58723     p_code_combination_id          => l_ccid
58724   , p_value_type_code              => l_adr_value_type_code
58725   , p_transaction_coa_id           => l_adr_transaction_coa_id
58726   , p_accounting_coa_id            => l_adr_accounting_coa_id
58727   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
58728   , p_adr_type_code                => 'S'
58729   , p_component_type               => l_component_type
58730   , p_component_code               => l_component_code
58731   , p_component_type_code          => l_component_type_code
58732   , p_component_appl_id            => l_component_appl_id
58733   , p_amb_context_code             => l_amb_context_code
58734   , p_side                         => 'NA'
58735   );
58736 
58737 
58738    l_segment := AcctDerRule_7(
58739            p_application_id           => p_application_id
58740          , p_ae_header_id             => l_ae_header_id 
58741 , p_source_3 => p_source_3
58742 , p_source_3_meaning => p_source_3_meaning
58743 , p_source_8 => p_source_8
58744 , p_source_9 => p_source_9
58745 , p_source_10 => p_source_10
58746 , p_source_10_meaning => p_source_10_meaning
58747 , p_source_11 => p_source_11
58748          , x_transaction_coa_id       => l_adr_transaction_coa_id
58749          , x_accounting_coa_id        => l_adr_accounting_coa_id
58750          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
58751          , x_flex_value_set_id        => l_adr_flex_value_set_id
58752          , x_value_type_code          => l_adr_value_type_code
58753          , x_value_combination_id     => l_adr_value_combination_id
58754          , x_value_segment_code       => l_adr_value_segment_code
58755          , p_side                     => 'NA'
58756          , p_override_seg_flag        => 'Y'
58757    );
58758 
58759    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
58760 
58761       xla_ae_lines_pkg.set_segment(
58762           p_to_segment_code         => 'GL_ACCOUNT'
58763         , p_segment_value           => l_segment
58764         , p_from_segment_code       => l_adr_value_segment_code
58765         , p_from_combination_id     => l_adr_value_combination_id
58766         , p_value_type_code         => l_adr_value_type_code
58767         , p_transaction_coa_id      => l_adr_transaction_coa_id
58768         , p_accounting_coa_id       => l_adr_accounting_coa_id
58769         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
58770         , p_flex_value_set_id       => l_adr_flex_value_set_id
58771         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
58772         , p_adr_type_code           => 'S'
58773         , p_component_type          => l_component_type
58774         , p_component_code          => l_component_code
58778         , p_entity_code             => 'AP_INVOICES'
58775         , p_component_type_code     => l_component_type_code
58776         , p_component_appl_id       => l_component_appl_id
58777         , p_amb_context_code        => l_amb_context_code
58779         , p_event_class_code        => 'PREPAYMENTS'
58780         , p_side                    => 'NA'
58781         );
58782 
58783   END IF;
58784 
58785    l_segment := AcctDerRule_22(
58786            p_application_id           => p_application_id
58787          , p_ae_header_id             => l_ae_header_id 
58788 , p_source_3 => p_source_3
58789 , p_source_3_meaning => p_source_3_meaning
58790 , p_source_10 => p_source_10
58791 , p_source_10_meaning => p_source_10_meaning
58792 , p_source_18 => p_source_18
58793          , x_transaction_coa_id       => l_adr_transaction_coa_id
58794          , x_accounting_coa_id        => l_adr_accounting_coa_id
58795          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
58796          , x_flex_value_set_id        => l_adr_flex_value_set_id
58797          , x_value_type_code          => l_adr_value_type_code
58798          , x_value_combination_id     => l_adr_value_combination_id
58799          , x_value_segment_code       => l_adr_value_segment_code
58800          , p_side                     => 'NA'
58801          , p_override_seg_flag        => 'Y'
58802    );
58803 
58804    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
58805 
58806       xla_ae_lines_pkg.set_segment(
58807           p_to_segment_code         => 'GL_BALANCING'
58808         , p_segment_value           => l_segment
58809         , p_from_segment_code       => l_adr_value_segment_code
58810         , p_from_combination_id     => l_adr_value_combination_id
58811         , p_value_type_code         => l_adr_value_type_code
58812         , p_transaction_coa_id      => l_adr_transaction_coa_id
58813         , p_accounting_coa_id       => l_adr_accounting_coa_id
58814         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
58815         , p_flex_value_set_id       => l_adr_flex_value_set_id
58816         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
58817         , p_adr_type_code           => 'S'
58818         , p_component_type          => l_component_type
58819         , p_component_code          => l_component_code
58820         , p_component_type_code     => l_component_type_code
58821         , p_component_appl_id       => l_component_appl_id
58822         , p_amb_context_code        => l_amb_context_code
58823         , p_entity_code             => 'AP_INVOICES'
58824         , p_event_class_code        => 'PREPAYMENTS'
58825         , p_side                    => 'NA'
58826         );
58827 
58828   END IF;
58829 
58830    --
58831    --
58832    END IF;
58833 
58834        --
58835        -- Update the line information that should be overwritten
58836        --
58837        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58838                                          p_header_num   => 1);
58839        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
58840 
58841        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58842 
58843        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
58844           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58845        END IF;
58846 
58847       --
58848       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58849       --
58850       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58851           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
58852       ELSE
58853           ---------------------------------------------------------------------------------------------------
58854           -- 4262811a Switch Sign
58855           ---------------------------------------------------------------------------------------------------
58856           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
58857           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58858                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58859           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58860                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58861           -- 5132302
58862           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58863                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58864 
58865       END IF;
58866 
58867       -- 4955764
58868       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58869       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
58870 
58871 
58872       XLA_AE_LINES_PKG.ValidateCurrentLine;
58873       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58874 
58875       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58876                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
58877                ,p_balance_type_code => l_balance_type_code);
58878 
58879    END IF;
58880 
58881    -----------------------------------------------------------------------------------------
58882    -- 4262811 Multiperiod Accounting
58883    -----------------------------------------------------------------------------------------
58884      -- No MPA option is assigned.
58885 
58886 
58887 END IF;
58888 END IF;
58889 --
58890 
58894       (p_msg      => 'END of AcctLineType_118'
58891 --
58892 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58893    trace
58895       ,p_level    => C_LEVEL_PROCEDURE
58896       ,p_module   => l_log_module);
58897 END IF;
58898 --
58899 EXCEPTION
58900   WHEN xla_exceptions_pkg.application_exception THEN
58901       RAISE;
58902   WHEN OTHERS THEN
58903        xla_exceptions_pkg.raise_message
58904            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_118');
58905 END AcctLineType_118;
58906 --
58907 
58908 ---------------------------------------
58909 --
58910 -- PRIVATE FUNCTION
58911 --         AcctLineType_119
58912 --
58913 ---------------------------------------
58914 PROCEDURE AcctLineType_119 (
58915   p_application_id        IN NUMBER
58916  ,p_event_id              IN NUMBER
58917  ,p_calculate_acctd_flag  IN VARCHAR2
58918  ,p_calculate_g_l_flag    IN VARCHAR2
58919  ,p_actual_flag           IN OUT VARCHAR2
58920  ,p_balance_type_code     OUT VARCHAR2
58921  ,p_gain_or_loss_ref      OUT VARCHAR2
58922  
58923 --Automatic Offsets Value
58924  , p_source_3            IN VARCHAR2
58925  , p_source_3_meaning    IN VARCHAR2
58926 --Invoice Distribution Account
58927  , p_source_18            IN NUMBER
58928 --Payables Options Rounding Account
58929  , p_source_37            IN NUMBER
58930 --Accounting Reversal Indicator
58931  , p_source_41            IN VARCHAR2
58932 --Distribution Link Type
58933  , p_source_43            IN VARCHAR2
58934 --Invoice Identifier
58935  , p_source_46            IN NUMBER
58936 --Payables Encumbrance Upgrade Credit Account
58937  , p_source_53            IN NUMBER
58938 --Payables Encumbrance Upgrade Credit Amount
58939  , p_source_54            IN NUMBER
58940 --Invoice Currency Code
58941  , p_source_55            IN VARCHAR2
58942 --Payables Encumbrance Upgrade Credit Base Amount
58943  , p_source_56            IN NUMBER
58944 --Payables Encumbrance Upgrade Debit Account
58945  , p_source_57            IN NUMBER
58946 --Payables Encumbrance Upgrade Debit Amount
58947  , p_source_58            IN NUMBER
58948 --Payables Encumbrance Upgrade Debit Base Amount
58949  , p_source_59            IN NUMBER
58950 --Payables Encumbrance Upgrade Option
58951  , p_source_60            IN VARCHAR2
58952 --Deferred Accounting End Date
58953  , p_source_65            IN DATE
58954 --Deferred Accounting Option
58955  , p_source_66            IN VARCHAR2
58956 --Deferred Accounting Start Date
58957  , p_source_67            IN DATE
58958 --Override Accounted Amount Indicator
58959  , p_source_68            IN VARCHAR2
58960  , p_source_68_meaning    IN VARCHAR2
58961 --Invoice Supplier Identifier
58962  , p_source_69            IN NUMBER
58963 --Invoice Supplier Site Identifier
58964  , p_source_70            IN NUMBER
58965 --Third Party Type
58966  , p_source_71            IN VARCHAR2
58967 --Invoice Distribution Tax Line Identifier
58968  , p_source_74            IN NUMBER
58969 --Invoice Distribution Tax Distribution Identifier from Tax
58970  , p_source_75            IN NUMBER
58971 --Invoice Distribution Summary Tax Line Identifier
58972  , p_source_76            IN NUMBER
58973 --Payables Upgrade Credit Encumbrance Type Identifier
58974  , p_source_77            IN NUMBER
58975 --Payables Upgrade Debit Encumbrance Type Identifier
58976  , p_source_78            IN NUMBER
58977 --Business Flow Accounts Payable Application Identifier
58978  , p_source_79            IN NUMBER
58979 --Prepayment Distribution Type
58980  , p_source_118            IN VARCHAR2
58981 --Prepayment Application Distribution Identifier
58982  , p_source_120            IN NUMBER
58983 --Upgrade Encumbrance Credit Account Class
58984  , p_source_125            IN VARCHAR2
58985 --Upgrade Encumbrance Debit Account Class
58986  , p_source_126            IN VARCHAR2
58987 --Prepayment Distribution Amount
58988  , p_source_127            IN NUMBER
58989 --Prepayment Distribution (Prepayment Rate) Ledger Amount
58990  , p_source_128            IN NUMBER
58991 --Identifier of the Prepayment Application Reversed
58992  , p_source_129            IN NUMBER
58993 --Invoice Exchange Date
58994  , p_source_136            IN DATE
58995 --Invoice Exchange Rate
58996  , p_source_137            IN NUMBER
58997 --Invoice Exchange Rate Type
58998  , p_source_138            IN VARCHAR2
58999 --Business Flow Prepayment Invoice Distribution Type
59000  , p_source_139            IN VARCHAR2
59001 --Business Flow Prepayment Invoice Entity Code
59002  , p_source_140            IN VARCHAR2
59003 --Business Flow Prepayment Invoice Distribution Identifier
59004  , p_source_141            IN NUMBER
59005 --Business Flow Prepayment Invoice Identifier
59006  , p_source_142            IN NUMBER
59007 )
59008 IS
59009 
59010 l_component_type              VARCHAR2(80);
59011 l_component_code              VARCHAR2(30);
59012 l_component_type_code         VARCHAR2(1);
59013 l_component_appl_id           INTEGER;
59014 l_amb_context_code            VARCHAR2(30);
59015 l_entity_code                 VARCHAR2(30);
59016 l_event_class_code            VARCHAR2(30);
59017 l_ae_header_id                NUMBER;
59018 l_event_type_code             VARCHAR2(30);
59019 l_line_definition_code        VARCHAR2(30);
59020 l_line_definition_owner_code  VARCHAR2(1);
59021 --
59022 -- adr variables
59023 l_segment                     VARCHAR2(30);
59024 l_ccid                        NUMBER;
59025 l_adr_transaction_coa_id      NUMBER;
59026 l_adr_accounting_coa_id       NUMBER;
59027 l_adr_flexfield_segment_code  VARCHAR2(30);
59028 l_adr_flex_value_set_id       NUMBER;
59029 l_adr_value_type_code         VARCHAR2(30);
59030 l_adr_value_combination_id    NUMBER;
59034 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
59031 l_adr_value_segment_code      VARCHAR2(30);
59032 
59033 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
59035 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
59036 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
59037 
59038 -- 4262811 Variables ------------------------------------------------------------------------------------------
59039 l_entered_amt_idx             NUMBER;
59040 l_accted_amt_idx              NUMBER;
59041 l_acc_rev_flag                VARCHAR2(1);
59042 l_accrual_line_num            NUMBER;
59043 l_tmp_amt                     NUMBER;
59044 l_acc_rev_natural_side_code   VARCHAR2(1);
59045 
59046 l_num_entries                 NUMBER;
59047 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
59048 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
59049 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
59050 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
59051 l_recog_line_1                NUMBER;
59052 l_recog_line_2                NUMBER;
59053 
59054 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
59055 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
59056 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
59057 
59058 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59059 
59060 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
59061 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
59062 
59063 ---------------------------------------------------------------------------------------------------------------
59064 
59065 
59066 --
59067 -- bulk performance
59068 --
59069 l_balance_type_code           VARCHAR2(1);
59070 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
59071 l_log_module                  VARCHAR2(240);
59072 
59073 --
59074 -- Upgrade strategy
59075 --
59076 l_actual_upg_option           VARCHAR2(1);
59077 l_enc_upg_option           VARCHAR2(1);
59078 
59079 --
59080 BEGIN
59081 --
59082 IF g_log_enabled THEN
59083       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_119';
59084 END IF;
59085 --
59086 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59087 
59088       trace
59089          (p_msg      => 'BEGIN of AcctLineType_119'
59090          ,p_level    => C_LEVEL_PROCEDURE
59091          ,p_module   => l_log_module);
59092 
59093 END IF;
59094 --
59095 l_component_type             := 'AMB_JLT';
59096 l_component_code             := 'AP_FINAL_APP_ROUND_ACCR';
59097 l_component_type_code        := 'S';
59098 l_component_appl_id          :=  200;
59099 l_amb_context_code           := 'DEFAULT';
59100 l_entity_code                := 'AP_INVOICES';
59101 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
59102 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
59103 l_line_definition_owner_code := 'S';
59104 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
59105 --
59106 l_balance_type_code          := 'A';
59107 l_segment                     := NULL;
59108 l_ccid                        := NULL;
59109 l_adr_transaction_coa_id      := NULL;
59110 l_adr_accounting_coa_id       := NULL;
59111 l_adr_flexfield_segment_code  := NULL;
59112 l_adr_flex_value_set_id       := NULL;
59113 l_adr_value_type_code         := NULL;
59114 l_adr_value_combination_id    := NULL;
59115 l_adr_value_segment_code      := NULL;
59116 
59117 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
59118 l_bflow_class_code           := '';    -- 4219869 Business Flow
59119 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
59120 l_budgetary_control_flag     := 'N';
59121 
59122 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
59123 l_bflow_applied_to_amt       := NULL; -- 5132302
59124 l_entered_amt_idx            := NULL;          -- 4262811
59125 l_accted_amt_idx             := NULL;          -- 4262811
59126 l_acc_rev_flag               := NULL;          -- 4262811
59127 l_accrual_line_num           := NULL;          -- 4262811
59128 l_tmp_amt                    := NULL;          -- 4262811
59129 --
59130  
59131 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59132     l_balance_type_code <> 'B' THEN
59133 IF NVL(p_source_118,'
59134 ') =  'FINAL APPLICATION ROUNDING'
59135  THEN 
59136 
59137    --
59138    XLA_AE_LINES_PKG.SetNewLine;
59139 
59140    p_balance_type_code          := l_balance_type_code;
59141    -- set the flag so later we will know whether the gain loss line needs to be created
59142    
59143    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
59144      p_actual_flag :='A';
59145    END IF;
59146 
59147    --
59148    -- bulk performance
59149    --
59150    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59151                                       p_header_num   => 0); -- 4262811
59152    --
59153    -- set accounting line options
59154    --
59155    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59156            p_natural_side_code          => 'C'
59157          , p_gain_or_loss_flag          => 'N'
59158          , p_gl_transfer_mode_code      => 'S'
59159          , p_acct_entry_type_code       => 'A'
59160          , p_switch_side_flag           => 'Y'
59161          , p_merge_duplicate_code       => 'A'
59162          );
59163    --
59164    l_acc_rev_natural_side_code := 'D';  -- 4262811
59165    -- 
59169    xla_ae_lines_pkg.SetAcctLineType
59166    --
59167    -- set accounting line type info
59168    --
59170       (p_component_type             => l_component_type
59171       ,p_event_type_code            => l_event_type_code
59172       ,p_line_definition_owner_code => l_line_definition_owner_code
59173       ,p_line_definition_code       => l_line_definition_code
59174       ,p_accounting_line_code       => l_component_code
59175       ,p_accounting_line_type_code  => l_component_type_code
59176       ,p_accounting_line_appl_id    => l_component_appl_id
59177       ,p_amb_context_code           => l_amb_context_code
59178       ,p_entity_code                => l_entity_code
59179       ,p_event_class_code           => l_event_class_code);
59180    --
59181    -- set accounting class
59182    --
59183    xla_ae_lines_pkg.SetAcctClass(
59184            p_accounting_class_code  => 'ROUNDING'
59185          , p_ae_header_id           => l_ae_header_id
59186          );
59187 
59188    --
59189    -- set rounding class
59190    --
59191    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59192                       'ROUNDING';
59193 
59194    --
59195    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59196    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59197    --
59198    -- bulk performance
59199    --
59200    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59201 
59202    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59203       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59204 
59205    -- 4955764
59206    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59207       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59208 
59209    -- 4458381 Public Sector Enh
59210    
59211    --
59212    -- set accounting attributes for the line type
59213    --
59214    l_entered_amt_idx := 25;
59215    l_accted_amt_idx  := 30;
59216    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
59217    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
59218    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
59219    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
59220    l_rec_acct_attrs.array_num_value(2)  := 
59221 xla_ae_sources_pkg.GetSystemSourceNum(
59222    p_source_code           => 'XLA_EVENT_APPL_ID'
59223  , p_source_type_code      => 'Y'
59224  , p_source_application_id =>  602
59225 );
59226    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
59227    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
59228    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
59229    l_rec_acct_attrs.array_char_value(4)  := 
59230 xla_ae_sources_pkg.GetSystemSourceChar(
59231    p_source_code           => 'XLA_ENTITY_CODE'
59232  , p_source_type_code      => 'Y'
59233  , p_source_application_id =>  602
59234 );
59235    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
59236    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_120);
59237    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
59238    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
59239    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
59240    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
59241    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
59242    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
59243    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
59244    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
59245    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
59246    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
59247    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
59248    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
59249    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
59250    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_120);
59251    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
59252    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
59253    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
59254    l_rec_acct_attrs.array_char_value(14)  := p_source_125;
59255    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
59256    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
59257    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
59258    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
59259    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
59260    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
59261    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
59262    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
59263    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
59264    l_rec_acct_attrs.array_char_value(19)  := p_source_126;
59265    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
59266    l_rec_acct_attrs.array_num_value(20)  := p_source_57;
59267    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
59268    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
59269    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
59270    l_rec_acct_attrs.array_char_value(22)  := p_source_55;
59271    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
59272    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
59276    l_rec_acct_attrs.array_num_value(25)  := p_source_127;
59273    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
59274    l_rec_acct_attrs.array_char_value(24)  := p_source_60;
59275    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
59277    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
59278    l_rec_acct_attrs.array_char_value(26)  := p_source_55;
59279    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
59280    l_rec_acct_attrs.array_date_value(27)  := p_source_136;
59281    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
59282    l_rec_acct_attrs.array_num_value(28)  := p_source_137;
59283    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
59284    l_rec_acct_attrs.array_char_value(29)  := p_source_138;
59285    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
59286    l_rec_acct_attrs.array_num_value(30)  := p_source_128;
59287    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
59288    l_rec_acct_attrs.array_date_value(31)  := p_source_65;
59289    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
59290    l_rec_acct_attrs.array_char_value(32)  := p_source_66;
59291    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
59292    l_rec_acct_attrs.array_date_value(33)  := p_source_67;
59293    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
59294    l_rec_acct_attrs.array_char_value(34)  := p_source_68;
59295    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
59296    l_rec_acct_attrs.array_num_value(35)  := p_source_69;
59297    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
59298    l_rec_acct_attrs.array_num_value(36)  := p_source_70;
59299    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
59300    l_rec_acct_attrs.array_char_value(37)  := p_source_71;
59301    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
59302    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_129);
59303    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
59304    l_rec_acct_attrs.array_char_value(39)  := p_source_43;
59305    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
59306    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
59307    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
59308    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
59309    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
59310    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
59311    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
59312    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
59313    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
59314    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
59315 
59316    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59317    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59318 
59319    ---------------------------------------------------------------------------------------------------------------
59320    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59321    ---------------------------------------------------------------------------------------------------------------
59322    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59323 
59324    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59325    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59326 
59327    IF xla_accounting_cache_pkg.GetValueChar
59328          (p_source_code         => 'LEDGER_CATEGORY_CODE'
59329          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59330    AND l_bflow_method_code = 'PRIOR_ENTRY'
59331 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59332    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59333          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59334        )
59335    THEN
59336          xla_ae_lines_pkg.BflowUpgEntry
59337            (p_business_method_code    => l_bflow_method_code
59338            ,p_business_class_code     => l_bflow_class_code
59339            ,p_balance_type            => l_balance_type_code);
59340    ELSE
59341       NULL;
59342 -- No business flow processing for business flow method of NONE.
59343    END IF;
59344 
59345    --
59346    -- call analytical criteria
59347    --
59348    
59349    --
59350    -- call description
59351    --
59352    -- No description or it is inherited.
59353    --
59354    -- call ADRs
59355    -- Bug 4922099
59356    --
59357    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59358         (NVL(l_actual_upg_option, 'N') = 'O') OR
59359         (NVL(l_enc_upg_option, 'N') = 'O')
59360       )
59361    THEN
59362    NULL;
59363    --
59364    --
59365    
59366   l_ccid := AcctDerRule_40(
59367            p_application_id           => p_application_id
59368          , p_ae_header_id             => l_ae_header_id 
59369 , p_source_3 => p_source_3
59370 , p_source_3_meaning => p_source_3_meaning
59371 , p_source_18 => p_source_18
59372 , p_source_37 => p_source_37
59373          , x_transaction_coa_id       => l_adr_transaction_coa_id
59374          , x_accounting_coa_id        => l_adr_accounting_coa_id
59375          , x_value_type_code          => l_adr_value_type_code
59376          , p_side                     => 'NA'
59377    );
59378 
59379    xla_ae_lines_pkg.set_ccid(
59380     p_code_combination_id          => l_ccid
59384   , p_adr_code                     => 'AP_ROUNDING'
59381   , p_value_type_code              => l_adr_value_type_code
59382   , p_transaction_coa_id           => l_adr_transaction_coa_id
59383   , p_accounting_coa_id            => l_adr_accounting_coa_id
59385   , p_adr_type_code                => 'S'
59386   , p_component_type               => l_component_type
59387   , p_component_code               => l_component_code
59388   , p_component_type_code          => l_component_type_code
59389   , p_component_appl_id            => l_component_appl_id
59390   , p_amb_context_code             => l_amb_context_code
59391   , p_side                         => 'NA'
59392   );
59393 
59394 
59395    --
59396    --
59397    END IF;
59398    --
59399    -- Bug 4922099
59400    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59401           (NVL(l_enc_upg_option, 'N') = 'O')
59402         ) AND
59403         (l_bflow_method_code = 'PRIOR_ENTRY')
59404       )
59405    THEN
59406       IF
59407       --
59408       1 = 2
59409       --
59410       THEN
59411       xla_accounting_err_pkg.build_message
59412                                     (p_appli_s_name            => 'XLA'
59413                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59414                                     ,p_token_1                 => 'LINE_NUMBER'
59415                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
59416                                     ,p_token_2                 => 'LINE_TYPE_NAME'
59417                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
59418                                                                              l_component_type
59419                                                                             ,l_component_code
59420                                                                             ,l_component_type_code
59421                                                                             ,l_component_appl_id
59422                                                                             ,l_amb_context_code
59423                                                                             ,l_entity_code
59424                                                                             ,l_event_class_code
59425                                                                            )
59426                                     ,p_token_3                 => 'OWNER'
59427                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
59428                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
59429                                                                           ,p_lookup_code    => l_component_type_code
59430                                                                          )
59431                                     ,p_token_4                 => 'PRODUCT_NAME'
59432                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59433                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59434                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59435                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59436                                     ,p_ae_header_id            =>  NULL
59437                                        );
59438 
59439         IF (C_LEVEL_ERROR>= g_log_level) THEN
59440                  trace
59441                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59442                       ,p_level    => C_LEVEL_ERROR
59443                       ,p_module   => l_log_module);
59444         END IF;
59445       END IF;
59446    END IF;
59447    --
59448    --
59449    ------------------------------------------------------------------------------------------------
59450    -- 4219869 Business Flow
59451    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59452    -- Prior Entry.  Currently, the following code is always generated.
59453    ------------------------------------------------------------------------------------------------
59454    XLA_AE_LINES_PKG.ValidateCurrentLine;
59455 
59456    ------------------------------------------------------------------------------------
59457    -- 4219869 Business Flow
59458    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59459    ------------------------------------------------------------------------------------
59460    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59461 
59462    ----------------------------------------------------------------------------------
59463    -- 4219869 Business Flow
59464    -- Update journal entry status -- Need to generate this within IF <condition>
59465    ----------------------------------------------------------------------------------
59466    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59467          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59468          ,p_balance_type_code => l_balance_type_code
59469          );
59470 
59471    -------------------------------------------------------------------------------------------
59472    -- 4262811 - Generate the Accrual Reversal lines
59473    -------------------------------------------------------------------------------------------
59474    BEGIN
59475       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59476                               (g_array_event(p_event_id).array_value_num('header_index'));
59477       IF l_acc_rev_flag IS NULL THEN
59478          l_acc_rev_flag := 'N';
59479       END IF;
59480    EXCEPTION
59481       WHEN OTHERS THEN
59482          l_acc_rev_flag := 'N';
59483    END;
59487        -- 4645092  ------------------------------------------------------------------------------
59484    --
59485    IF (l_acc_rev_flag = 'Y') THEN
59486 
59488        -- To allow MPA report to determine if it should generate report process
59489        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59490        ------------------------------------------------------------------------------------------
59491 
59492        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59493        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59494    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
59495    -- call ADRs
59496    -- Bug 4922099
59497    --
59498    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59499         (NVL(l_actual_upg_option, 'N') = 'O') OR
59500         (NVL(l_enc_upg_option, 'N') = 'O')
59501       )
59502    THEN
59503    NULL;
59504    --
59505    --
59506    
59507   l_ccid := AcctDerRule_40(
59508            p_application_id           => p_application_id
59509          , p_ae_header_id             => l_ae_header_id 
59510 , p_source_3 => p_source_3
59511 , p_source_3_meaning => p_source_3_meaning
59512 , p_source_18 => p_source_18
59513 , p_source_37 => p_source_37
59514          , x_transaction_coa_id       => l_adr_transaction_coa_id
59515          , x_accounting_coa_id        => l_adr_accounting_coa_id
59516          , x_value_type_code          => l_adr_value_type_code
59517          , p_side                     => 'NA'
59518    );
59519 
59520    xla_ae_lines_pkg.set_ccid(
59521     p_code_combination_id          => l_ccid
59522   , p_value_type_code              => l_adr_value_type_code
59523   , p_transaction_coa_id           => l_adr_transaction_coa_id
59524   , p_accounting_coa_id            => l_adr_accounting_coa_id
59525   , p_adr_code                     => 'AP_ROUNDING'
59526   , p_adr_type_code                => 'S'
59527   , p_component_type               => l_component_type
59528   , p_component_code               => l_component_code
59529   , p_component_type_code          => l_component_type_code
59530   , p_component_appl_id            => l_component_appl_id
59531   , p_amb_context_code             => l_amb_context_code
59532   , p_side                         => 'NA'
59533   );
59534 
59535 
59536    --
59537    --
59538    END IF;
59539 
59540        --
59541        -- Update the line information that should be overwritten
59542        --
59543        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59544                                          p_header_num   => 1);
59545        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
59546 
59547        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59548 
59549        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
59550           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59551        END IF;
59552 
59553       --
59554       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59555       --
59556       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59557           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
59558       ELSE
59559           ---------------------------------------------------------------------------------------------------
59560           -- 4262811a Switch Sign
59561           ---------------------------------------------------------------------------------------------------
59562           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
59563           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59564                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59565           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59566                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59567           -- 5132302
59568           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59569                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59570 
59571       END IF;
59572 
59573       -- 4955764
59574       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59575       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59576 
59577 
59578       XLA_AE_LINES_PKG.ValidateCurrentLine;
59579       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59580 
59581       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59582                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59583                ,p_balance_type_code => l_balance_type_code);
59584 
59585    END IF;
59586 
59587    -----------------------------------------------------------------------------------------
59588    -- 4262811 Multiperiod Accounting
59589    -----------------------------------------------------------------------------------------
59590      -- No MPA option is assigned.
59591 
59592 
59593 END IF;
59594 END IF;
59595 --
59596 
59597 --
59598 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59599    trace
59600       (p_msg      => 'END of AcctLineType_119'
59601       ,p_level    => C_LEVEL_PROCEDURE
59602       ,p_module   => l_log_module);
59603 END IF;
59604 --
59605 EXCEPTION
59606   WHEN xla_exceptions_pkg.application_exception THEN
59607       RAISE;
59608   WHEN OTHERS THEN
59612 --
59609        xla_exceptions_pkg.raise_message
59610            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_119');
59611 END AcctLineType_119;
59613 
59614 ---------------------------------------
59615 --
59616 -- PRIVATE FUNCTION
59617 --         AcctLineType_120
59618 --
59619 ---------------------------------------
59620 PROCEDURE AcctLineType_120 (
59621   p_application_id        IN NUMBER
59622  ,p_event_id              IN NUMBER
59623  ,p_calculate_acctd_flag  IN VARCHAR2
59624  ,p_calculate_g_l_flag    IN VARCHAR2
59625  ,p_actual_flag           IN OUT VARCHAR2
59626  ,p_balance_type_code     OUT VARCHAR2
59627  ,p_gain_or_loss_ref      OUT VARCHAR2
59628  
59629 --Automatic Offsets Value
59630  , p_source_3            IN VARCHAR2
59631  , p_source_3_meaning    IN VARCHAR2
59632 --Invoice Distribution Account
59633  , p_source_18            IN NUMBER
59634 --Payables Options Rounding Account
59635  , p_source_37            IN NUMBER
59636 --Accounting Reversal Indicator
59637  , p_source_41            IN VARCHAR2
59638 --Distribution Link Type
59639  , p_source_43            IN VARCHAR2
59640 --Invoice Currency Code
59641  , p_source_55            IN VARCHAR2
59642 --Override Accounted Amount Indicator
59643  , p_source_68            IN VARCHAR2
59644  , p_source_68_meaning    IN VARCHAR2
59645 --Third Party Type
59646  , p_source_71            IN VARCHAR2
59647 --Invoice Distribution Tax Line Identifier
59648  , p_source_74            IN NUMBER
59649 --Invoice Distribution Summary Tax Line Identifier
59650  , p_source_76            IN NUMBER
59651 --Business Flow Accounts Payable Application Identifier
59652  , p_source_79            IN NUMBER
59653 --When to Account for Payment Option
59654  , p_source_89            IN VARCHAR2
59655 --Payment Distribution Type
59656  , p_source_90            IN VARCHAR2
59657  , p_source_90_meaning    IN VARCHAR2
59658 --Payment Distribution Amount
59659  , p_source_91            IN NUMBER
59660 --Business Flow Payment Distribution Type
59661  , p_source_92            IN VARCHAR2
59662 --Business Flow Payment Entity Code
59663  , p_source_93            IN VARCHAR2
59664 --Business Flow Payment Distribution Identifier
59665  , p_source_94            IN NUMBER
59666 --Business Flow Payment Identifier
59667  , p_source_95            IN NUMBER
59668 --Payment Distribution Identifier
59669  , p_source_96            IN NUMBER
59670 --Payment Supplier Identifier
59671  , p_source_102            IN NUMBER
59672 --Payment Supplier Site Identifier
59673  , p_source_103            IN NUMBER
59674 --Payment Distribution Reversed Identifier
59675  , p_source_104            IN NUMBER
59676 --Payment Distribution (Invoice Rate) Ledger Amount
59677  , p_source_109            IN NUMBER
59678 --Invoice Exchange Date
59679  , p_source_136            IN DATE
59680 --Invoice Exchange Rate
59681  , p_source_137            IN NUMBER
59682 --Invoice Exchange Rate Type
59683  , p_source_138            IN VARCHAR2
59684 )
59685 IS
59686 
59687 l_component_type              VARCHAR2(80);
59688 l_component_code              VARCHAR2(30);
59689 l_component_type_code         VARCHAR2(1);
59690 l_component_appl_id           INTEGER;
59691 l_amb_context_code            VARCHAR2(30);
59692 l_entity_code                 VARCHAR2(30);
59693 l_event_class_code            VARCHAR2(30);
59694 l_ae_header_id                NUMBER;
59695 l_event_type_code             VARCHAR2(30);
59696 l_line_definition_code        VARCHAR2(30);
59697 l_line_definition_owner_code  VARCHAR2(1);
59698 --
59699 -- adr variables
59700 l_segment                     VARCHAR2(30);
59701 l_ccid                        NUMBER;
59702 l_adr_transaction_coa_id      NUMBER;
59703 l_adr_accounting_coa_id       NUMBER;
59704 l_adr_flexfield_segment_code  VARCHAR2(30);
59705 l_adr_flex_value_set_id       NUMBER;
59706 l_adr_value_type_code         VARCHAR2(30);
59707 l_adr_value_combination_id    NUMBER;
59708 l_adr_value_segment_code      VARCHAR2(30);
59709 
59710 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
59711 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
59712 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
59713 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
59714 
59715 -- 4262811 Variables ------------------------------------------------------------------------------------------
59716 l_entered_amt_idx             NUMBER;
59717 l_accted_amt_idx              NUMBER;
59718 l_acc_rev_flag                VARCHAR2(1);
59719 l_accrual_line_num            NUMBER;
59720 l_tmp_amt                     NUMBER;
59721 l_acc_rev_natural_side_code   VARCHAR2(1);
59722 
59723 l_num_entries                 NUMBER;
59724 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
59725 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
59726 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
59727 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
59728 l_recog_line_1                NUMBER;
59729 l_recog_line_2                NUMBER;
59730 
59731 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
59732 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
59733 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
59734 
59735 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59736 
59740 ---------------------------------------------------------------------------------------------------------------
59737 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
59738 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
59739 
59741 
59742 
59743 --
59744 -- bulk performance
59745 --
59746 l_balance_type_code           VARCHAR2(1);
59747 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
59748 l_log_module                  VARCHAR2(240);
59749 
59750 --
59751 -- Upgrade strategy
59752 --
59753 l_actual_upg_option           VARCHAR2(1);
59754 l_enc_upg_option           VARCHAR2(1);
59755 
59756 --
59757 BEGIN
59758 --
59759 IF g_log_enabled THEN
59760       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_120';
59761 END IF;
59762 --
59763 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59764 
59765       trace
59766          (p_msg      => 'BEGIN of AcctLineType_120'
59767          ,p_level    => C_LEVEL_PROCEDURE
59768          ,p_module   => l_log_module);
59769 
59770 END IF;
59771 --
59772 l_component_type             := 'AMB_JLT';
59773 l_component_code             := 'AP_FINAL_PMT_ROUNDING_CLEAR';
59774 l_component_type_code        := 'S';
59775 l_component_appl_id          :=  200;
59776 l_amb_context_code           := 'DEFAULT';
59777 l_entity_code                := 'AP_PAYMENTS';
59778 l_event_class_code           := 'RECONCILED PAYMENTS';
59779 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
59780 l_line_definition_owner_code := 'S';
59781 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
59782 --
59783 l_balance_type_code          := 'A';
59784 l_segment                     := NULL;
59785 l_ccid                        := NULL;
59786 l_adr_transaction_coa_id      := NULL;
59787 l_adr_accounting_coa_id       := NULL;
59788 l_adr_flexfield_segment_code  := NULL;
59789 l_adr_flex_value_set_id       := NULL;
59790 l_adr_value_type_code         := NULL;
59791 l_adr_value_combination_id    := NULL;
59792 l_adr_value_segment_code      := NULL;
59793 
59794 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
59795 l_bflow_class_code           := '';    -- 4219869 Business Flow
59796 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
59797 l_budgetary_control_flag     := 'N';
59798 
59799 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
59800 l_bflow_applied_to_amt       := NULL; -- 5132302
59801 l_entered_amt_idx            := NULL;          -- 4262811
59802 l_accted_amt_idx             := NULL;          -- 4262811
59803 l_acc_rev_flag               := NULL;          -- 4262811
59804 l_accrual_line_num           := NULL;          -- 4262811
59805 l_tmp_amt                    := NULL;          -- 4262811
59806 --
59807  
59808 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59809     l_balance_type_code <> 'B' THEN
59810 IF NVL(p_source_89,'
59811 ') =  'CLEAR_CLEAR' AND 
59812 NVL(p_source_90,'
59813 ') =  'FINAL PAYMENT ROUNDING'
59814  THEN 
59815 
59816    --
59817    XLA_AE_LINES_PKG.SetNewLine;
59818 
59819    p_balance_type_code          := l_balance_type_code;
59820    -- set the flag so later we will know whether the gain loss line needs to be created
59821    
59822    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
59823      p_actual_flag :='A';
59824    END IF;
59825 
59826    --
59827    -- bulk performance
59828    --
59829    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59830                                       p_header_num   => 0); -- 4262811
59831    --
59832    -- set accounting line options
59833    --
59834    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59835            p_natural_side_code          => 'D'
59836          , p_gain_or_loss_flag          => 'N'
59837          , p_gl_transfer_mode_code      => 'S'
59838          , p_acct_entry_type_code       => 'A'
59839          , p_switch_side_flag           => 'Y'
59840          , p_merge_duplicate_code       => 'A'
59841          );
59842    --
59843    l_acc_rev_natural_side_code := 'C';  -- 4262811
59844    -- 
59845    --
59846    -- set accounting line type info
59847    --
59848    xla_ae_lines_pkg.SetAcctLineType
59849       (p_component_type             => l_component_type
59850       ,p_event_type_code            => l_event_type_code
59851       ,p_line_definition_owner_code => l_line_definition_owner_code
59852       ,p_line_definition_code       => l_line_definition_code
59853       ,p_accounting_line_code       => l_component_code
59854       ,p_accounting_line_type_code  => l_component_type_code
59855       ,p_accounting_line_appl_id    => l_component_appl_id
59856       ,p_amb_context_code           => l_amb_context_code
59857       ,p_entity_code                => l_entity_code
59858       ,p_event_class_code           => l_event_class_code);
59859    --
59860    -- set accounting class
59861    --
59862    xla_ae_lines_pkg.SetAcctClass(
59863            p_accounting_class_code  => 'ROUNDING'
59864          , p_ae_header_id           => l_ae_header_id
59865          );
59866 
59867    --
59868    -- set rounding class
59869    --
59870    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59871                       'ROUNDING';
59872 
59873    --
59874    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59875    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59876    --
59877    -- bulk performance
59878    --
59882       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59879    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59880 
59881    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59883 
59884    -- 4955764
59885    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59886       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59887 
59888    -- 4458381 Public Sector Enh
59889    
59890    --
59891    -- set accounting attributes for the line type
59892    --
59893    l_entered_amt_idx := 10;
59894    l_accted_amt_idx  := 15;
59895    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
59896    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
59897    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
59898    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
59899    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
59900    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
59901    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
59902    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
59903    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
59904    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
59905    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
59906    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
59907    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
59908    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
59909    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
59910    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
59911    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
59912    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
59913    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
59914    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
59915    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
59916    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
59917    l_rec_acct_attrs.array_char_value(11)  := p_source_55;
59918    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
59919    l_rec_acct_attrs.array_date_value(12)  := p_source_136;
59920    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
59921    l_rec_acct_attrs.array_num_value(13)  := p_source_137;
59922    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
59923    l_rec_acct_attrs.array_char_value(14)  := p_source_138;
59924    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
59925    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
59926    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
59927    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
59928    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
59929    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
59930    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
59931    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
59932    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
59933    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
59934    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
59935    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
59936    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
59937    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
59938    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
59939    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
59940    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
59941    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
59942    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
59943    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
59944 
59945    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59946    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59947 
59948    ---------------------------------------------------------------------------------------------------------------
59949    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59950    ---------------------------------------------------------------------------------------------------------------
59951    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59952 
59953    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59954    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59955 
59956    IF xla_accounting_cache_pkg.GetValueChar
59957          (p_source_code         => 'LEDGER_CATEGORY_CODE'
59958          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59959    AND l_bflow_method_code = 'PRIOR_ENTRY'
59960 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59961    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59962          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59963        )
59964    THEN
59965          xla_ae_lines_pkg.BflowUpgEntry
59966            (p_business_method_code    => l_bflow_method_code
59967            ,p_business_class_code     => l_bflow_class_code
59968            ,p_balance_type            => l_balance_type_code);
59969    ELSE
59970       NULL;
59971 -- No business flow processing for business flow method of NONE.
59972    END IF;
59973 
59974    --
59975    -- call analytical criteria
59976    --
59977    
59978    --
59979    -- call description
59983    -- call ADRs
59980    --
59981    -- No description or it is inherited.
59982    --
59984    -- Bug 4922099
59985    --
59986    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59987         (NVL(l_actual_upg_option, 'N') = 'O') OR
59988         (NVL(l_enc_upg_option, 'N') = 'O')
59989       )
59990    THEN
59991    NULL;
59992    --
59993    --
59994    
59995   l_ccid := AcctDerRule_40(
59996            p_application_id           => p_application_id
59997          , p_ae_header_id             => l_ae_header_id 
59998 , p_source_3 => p_source_3
59999 , p_source_3_meaning => p_source_3_meaning
60000 , p_source_18 => p_source_18
60001 , p_source_37 => p_source_37
60002          , x_transaction_coa_id       => l_adr_transaction_coa_id
60003          , x_accounting_coa_id        => l_adr_accounting_coa_id
60004          , x_value_type_code          => l_adr_value_type_code
60005          , p_side                     => 'NA'
60006    );
60007 
60008    xla_ae_lines_pkg.set_ccid(
60009     p_code_combination_id          => l_ccid
60010   , p_value_type_code              => l_adr_value_type_code
60011   , p_transaction_coa_id           => l_adr_transaction_coa_id
60012   , p_accounting_coa_id            => l_adr_accounting_coa_id
60013   , p_adr_code                     => 'AP_ROUNDING'
60014   , p_adr_type_code                => 'S'
60015   , p_component_type               => l_component_type
60016   , p_component_code               => l_component_code
60017   , p_component_type_code          => l_component_type_code
60018   , p_component_appl_id            => l_component_appl_id
60019   , p_amb_context_code             => l_amb_context_code
60020   , p_side                         => 'NA'
60021   );
60022 
60023 
60024    --
60025    --
60026    END IF;
60027    --
60028    -- Bug 4922099
60029    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60030           (NVL(l_enc_upg_option, 'N') = 'O')
60031         ) AND
60032         (l_bflow_method_code = 'PRIOR_ENTRY')
60033       )
60034    THEN
60035       IF
60036       --
60037       1 = 2
60038       --
60039       THEN
60040       xla_accounting_err_pkg.build_message
60041                                     (p_appli_s_name            => 'XLA'
60042                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60043                                     ,p_token_1                 => 'LINE_NUMBER'
60044                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
60045                                     ,p_token_2                 => 'LINE_TYPE_NAME'
60046                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
60047                                                                              l_component_type
60048                                                                             ,l_component_code
60049                                                                             ,l_component_type_code
60050                                                                             ,l_component_appl_id
60051                                                                             ,l_amb_context_code
60052                                                                             ,l_entity_code
60053                                                                             ,l_event_class_code
60054                                                                            )
60055                                     ,p_token_3                 => 'OWNER'
60056                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
60057                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
60058                                                                           ,p_lookup_code    => l_component_type_code
60059                                                                          )
60060                                     ,p_token_4                 => 'PRODUCT_NAME'
60061                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60062                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60063                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60064                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60065                                     ,p_ae_header_id            =>  NULL
60066                                        );
60067 
60068         IF (C_LEVEL_ERROR>= g_log_level) THEN
60069                  trace
60070                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60071                       ,p_level    => C_LEVEL_ERROR
60072                       ,p_module   => l_log_module);
60073         END IF;
60074       END IF;
60075    END IF;
60076    --
60077    --
60078    ------------------------------------------------------------------------------------------------
60079    -- 4219869 Business Flow
60080    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60081    -- Prior Entry.  Currently, the following code is always generated.
60082    ------------------------------------------------------------------------------------------------
60083    XLA_AE_LINES_PKG.ValidateCurrentLine;
60084 
60085    ------------------------------------------------------------------------------------
60086    -- 4219869 Business Flow
60087    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60088    ------------------------------------------------------------------------------------
60092    -- 4219869 Business Flow
60089    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60090 
60091    ----------------------------------------------------------------------------------
60093    -- Update journal entry status -- Need to generate this within IF <condition>
60094    ----------------------------------------------------------------------------------
60095    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60096          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60097          ,p_balance_type_code => l_balance_type_code
60098          );
60099 
60100    -------------------------------------------------------------------------------------------
60101    -- 4262811 - Generate the Accrual Reversal lines
60102    -------------------------------------------------------------------------------------------
60103    BEGIN
60104       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60105                               (g_array_event(p_event_id).array_value_num('header_index'));
60106       IF l_acc_rev_flag IS NULL THEN
60107          l_acc_rev_flag := 'N';
60108       END IF;
60109    EXCEPTION
60110       WHEN OTHERS THEN
60111          l_acc_rev_flag := 'N';
60112    END;
60113    --
60114    IF (l_acc_rev_flag = 'Y') THEN
60115 
60116        -- 4645092  ------------------------------------------------------------------------------
60117        -- To allow MPA report to determine if it should generate report process
60118        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60119        ------------------------------------------------------------------------------------------
60120 
60121        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60122        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60123    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
60124    -- call ADRs
60125    -- Bug 4922099
60126    --
60127    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60128         (NVL(l_actual_upg_option, 'N') = 'O') OR
60129         (NVL(l_enc_upg_option, 'N') = 'O')
60130       )
60131    THEN
60132    NULL;
60133    --
60134    --
60135    
60136   l_ccid := AcctDerRule_40(
60137            p_application_id           => p_application_id
60138          , p_ae_header_id             => l_ae_header_id 
60139 , p_source_3 => p_source_3
60140 , p_source_3_meaning => p_source_3_meaning
60141 , p_source_18 => p_source_18
60142 , p_source_37 => p_source_37
60143          , x_transaction_coa_id       => l_adr_transaction_coa_id
60144          , x_accounting_coa_id        => l_adr_accounting_coa_id
60145          , x_value_type_code          => l_adr_value_type_code
60146          , p_side                     => 'NA'
60147    );
60148 
60149    xla_ae_lines_pkg.set_ccid(
60150     p_code_combination_id          => l_ccid
60151   , p_value_type_code              => l_adr_value_type_code
60152   , p_transaction_coa_id           => l_adr_transaction_coa_id
60153   , p_accounting_coa_id            => l_adr_accounting_coa_id
60154   , p_adr_code                     => 'AP_ROUNDING'
60155   , p_adr_type_code                => 'S'
60156   , p_component_type               => l_component_type
60157   , p_component_code               => l_component_code
60158   , p_component_type_code          => l_component_type_code
60159   , p_component_appl_id            => l_component_appl_id
60160   , p_amb_context_code             => l_amb_context_code
60161   , p_side                         => 'NA'
60162   );
60163 
60164 
60165    --
60166    --
60167    END IF;
60168 
60169        --
60170        -- Update the line information that should be overwritten
60171        --
60172        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60173                                          p_header_num   => 1);
60174        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
60175 
60176        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60177 
60178        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
60179           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60180        END IF;
60181 
60182       --
60183       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60184       --
60185       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60186           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
60187       ELSE
60188           ---------------------------------------------------------------------------------------------------
60189           -- 4262811a Switch Sign
60190           ---------------------------------------------------------------------------------------------------
60191           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
60192           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60193                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60194           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60195                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60196           -- 5132302
60197           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60198                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60199 
60200       END IF;
60201 
60205 
60202       -- 4955764
60203       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60204       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60206 
60207       XLA_AE_LINES_PKG.ValidateCurrentLine;
60208       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60209 
60210       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60211                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60212                ,p_balance_type_code => l_balance_type_code);
60213 
60214    END IF;
60215 
60216    -----------------------------------------------------------------------------------------
60217    -- 4262811 Multiperiod Accounting
60218    -----------------------------------------------------------------------------------------
60219      -- No MPA option is assigned.
60220 
60221 
60222 END IF;
60223 END IF;
60224 --
60225 
60226 --
60227 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60228    trace
60229       (p_msg      => 'END of AcctLineType_120'
60230       ,p_level    => C_LEVEL_PROCEDURE
60231       ,p_module   => l_log_module);
60232 END IF;
60233 --
60234 EXCEPTION
60235   WHEN xla_exceptions_pkg.application_exception THEN
60236       RAISE;
60237   WHEN OTHERS THEN
60238        xla_exceptions_pkg.raise_message
60239            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_120');
60240 END AcctLineType_120;
60241 --
60242 
60243 ---------------------------------------
60244 --
60245 -- PRIVATE FUNCTION
60246 --         AcctLineType_121
60247 --
60248 ---------------------------------------
60249 PROCEDURE AcctLineType_121 (
60250   p_application_id        IN NUMBER
60251  ,p_event_id              IN NUMBER
60252  ,p_calculate_acctd_flag  IN VARCHAR2
60253  ,p_calculate_g_l_flag    IN VARCHAR2
60254  ,p_actual_flag           IN OUT VARCHAR2
60255  ,p_balance_type_code     OUT VARCHAR2
60256  ,p_gain_or_loss_ref      OUT VARCHAR2
60257  
60258 --Automatic Offsets Value
60259  , p_source_3            IN VARCHAR2
60260  , p_source_3_meaning    IN VARCHAR2
60261 --Invoice Distribution Account
60262  , p_source_18            IN NUMBER
60263 --Payables Options Rounding Account
60264  , p_source_37            IN NUMBER
60265 --Accounting Reversal Indicator
60266  , p_source_41            IN VARCHAR2
60267 --Distribution Link Type
60268  , p_source_43            IN VARCHAR2
60269 --Invoice Currency Code
60270  , p_source_55            IN VARCHAR2
60271 --Override Accounted Amount Indicator
60272  , p_source_68            IN VARCHAR2
60273  , p_source_68_meaning    IN VARCHAR2
60274 --Third Party Type
60275  , p_source_71            IN VARCHAR2
60276 --Invoice Distribution Tax Line Identifier
60277  , p_source_74            IN NUMBER
60278 --Invoice Distribution Tax Distribution Identifier from Tax
60279  , p_source_75            IN NUMBER
60280 --Invoice Distribution Summary Tax Line Identifier
60281  , p_source_76            IN NUMBER
60282 --Business Flow Accounts Payable Application Identifier
60283  , p_source_79            IN NUMBER
60284 --Business Flow Invoice Distribution Type
60285  , p_source_80            IN VARCHAR2
60286 --Business Flow Invoice Entity Code
60287  , p_source_81            IN VARCHAR2
60288 --Business Flow Invoice Distribution Identifier
60289  , p_source_82            IN NUMBER
60290 --Business Flow Invoice Identifier
60291  , p_source_83            IN NUMBER
60292 --When to Account for Payment Option
60293  , p_source_89            IN VARCHAR2
60294 --Payment Distribution Type
60295  , p_source_90            IN VARCHAR2
60296  , p_source_90_meaning    IN VARCHAR2
60297 --Payment Distribution Amount
60298  , p_source_91            IN NUMBER
60299 --Payment Distribution Identifier
60300  , p_source_96            IN NUMBER
60301 --Payment Supplier Identifier
60302  , p_source_102            IN NUMBER
60303 --Payment Supplier Site Identifier
60304  , p_source_103            IN NUMBER
60305 --Payment Distribution Reversed Identifier
60306  , p_source_104            IN NUMBER
60307 --Payment Distribution (Invoice Rate) Ledger Amount
60308  , p_source_109            IN NUMBER
60309 --Payment Type
60310  , p_source_115            IN VARCHAR2
60311  , p_source_115_meaning    IN VARCHAR2
60312 --Payment Processing Type
60313  , p_source_116            IN VARCHAR2
60314 --Invoice Distribution Amount of the Payment Distribution
60315  , p_source_117            IN NUMBER
60316 --Invoice Exchange Date
60317  , p_source_136            IN DATE
60318 --Invoice Exchange Rate
60319  , p_source_137            IN NUMBER
60320 --Invoice Exchange Rate Type
60321  , p_source_138            IN VARCHAR2
60322 )
60323 IS
60324 
60325 l_component_type              VARCHAR2(80);
60326 l_component_code              VARCHAR2(30);
60327 l_component_type_code         VARCHAR2(1);
60328 l_component_appl_id           INTEGER;
60329 l_amb_context_code            VARCHAR2(30);
60330 l_entity_code                 VARCHAR2(30);
60331 l_event_class_code            VARCHAR2(30);
60332 l_ae_header_id                NUMBER;
60333 l_event_type_code             VARCHAR2(30);
60334 l_line_definition_code        VARCHAR2(30);
60335 l_line_definition_owner_code  VARCHAR2(1);
60336 --
60337 -- adr variables
60338 l_segment                     VARCHAR2(30);
60339 l_ccid                        NUMBER;
60340 l_adr_transaction_coa_id      NUMBER;
60341 l_adr_accounting_coa_id       NUMBER;
60342 l_adr_flexfield_segment_code  VARCHAR2(30);
60343 l_adr_flex_value_set_id       NUMBER;
60344 l_adr_value_type_code         VARCHAR2(30);
60348 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
60345 l_adr_value_combination_id    NUMBER;
60346 l_adr_value_segment_code      VARCHAR2(30);
60347 
60349 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
60350 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
60351 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
60352 
60353 -- 4262811 Variables ------------------------------------------------------------------------------------------
60354 l_entered_amt_idx             NUMBER;
60355 l_accted_amt_idx              NUMBER;
60356 l_acc_rev_flag                VARCHAR2(1);
60357 l_accrual_line_num            NUMBER;
60358 l_tmp_amt                     NUMBER;
60359 l_acc_rev_natural_side_code   VARCHAR2(1);
60360 
60361 l_num_entries                 NUMBER;
60362 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
60363 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
60364 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
60365 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
60366 l_recog_line_1                NUMBER;
60367 l_recog_line_2                NUMBER;
60368 
60369 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
60370 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
60371 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
60372 
60373 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60374 
60375 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
60376 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
60377 
60378 ---------------------------------------------------------------------------------------------------------------
60379 
60380 
60381 --
60382 -- bulk performance
60383 --
60384 l_balance_type_code           VARCHAR2(1);
60385 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
60386 l_log_module                  VARCHAR2(240);
60387 
60388 --
60389 -- Upgrade strategy
60390 --
60391 l_actual_upg_option           VARCHAR2(1);
60392 l_enc_upg_option           VARCHAR2(1);
60393 
60394 --
60395 BEGIN
60396 --
60397 IF g_log_enabled THEN
60398       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_121';
60399 END IF;
60400 --
60401 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60402 
60403       trace
60404          (p_msg      => 'BEGIN of AcctLineType_121'
60405          ,p_level    => C_LEVEL_PROCEDURE
60406          ,p_module   => l_log_module);
60407 
60408 END IF;
60409 --
60410 l_component_type             := 'AMB_JLT';
60411 l_component_code             := 'AP_FINAL_PMT_ROUNDING_PMT';
60412 l_component_type_code        := 'S';
60413 l_component_appl_id          :=  200;
60414 l_amb_context_code           := 'DEFAULT';
60415 l_entity_code                := 'AP_PAYMENTS';
60416 l_event_class_code           := 'PAYMENTS';
60417 l_event_type_code            := 'PAYMENTS_ALL';
60418 l_line_definition_owner_code := 'S';
60419 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
60420 --
60421 l_balance_type_code          := 'A';
60422 l_segment                     := NULL;
60423 l_ccid                        := NULL;
60424 l_adr_transaction_coa_id      := NULL;
60425 l_adr_accounting_coa_id       := NULL;
60426 l_adr_flexfield_segment_code  := NULL;
60427 l_adr_flex_value_set_id       := NULL;
60428 l_adr_value_type_code         := NULL;
60429 l_adr_value_combination_id    := NULL;
60430 l_adr_value_segment_code      := NULL;
60431 
60432 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
60433 l_bflow_class_code           := '';    -- 4219869 Business Flow
60434 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
60435 l_budgetary_control_flag     := 'N';
60436 
60437 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
60438 l_bflow_applied_to_amt       := NULL; -- 5132302
60439 l_entered_amt_idx            := NULL;          -- 4262811
60440 l_accted_amt_idx             := NULL;          -- 4262811
60441 l_acc_rev_flag               := NULL;          -- 4262811
60442 l_accrual_line_num           := NULL;          -- 4262811
60443 l_tmp_amt                    := NULL;          -- 4262811
60444 --
60445  
60446 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60447     l_balance_type_code <> 'B' THEN
60448 IF NVL(p_source_89,'
60449 ') <>  'CLEAR_CLEAR' AND 
60450 NVL(p_source_90,'
60451 ') =  'FINAL PAYMENT ROUNDING' AND 
60452 NVL(p_source_115,'
60453 ') <>  'R' AND 
60454 NVL(p_source_116,'
60455 ') <>  'PAYMENTCARD'
60456  THEN 
60457 
60458    --
60459    XLA_AE_LINES_PKG.SetNewLine;
60460 
60461    p_balance_type_code          := l_balance_type_code;
60462    -- set the flag so later we will know whether the gain loss line needs to be created
60463    
60464    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60465      p_actual_flag :='A';
60466    END IF;
60467 
60468    --
60469    -- bulk performance
60470    --
60471    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60472                                       p_header_num   => 0); -- 4262811
60473    --
60474    -- set accounting line options
60475    --
60476    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60477            p_natural_side_code          => 'D'
60478          , p_gain_or_loss_flag          => 'N'
60479          , p_gl_transfer_mode_code      => 'S'
60480          , p_acct_entry_type_code       => 'A'
60484    --
60481          , p_switch_side_flag           => 'Y'
60482          , p_merge_duplicate_code       => 'A'
60483          );
60485    l_acc_rev_natural_side_code := 'C';  -- 4262811
60486    -- 
60487    --
60488    -- set accounting line type info
60489    --
60490    xla_ae_lines_pkg.SetAcctLineType
60491       (p_component_type             => l_component_type
60492       ,p_event_type_code            => l_event_type_code
60493       ,p_line_definition_owner_code => l_line_definition_owner_code
60494       ,p_line_definition_code       => l_line_definition_code
60495       ,p_accounting_line_code       => l_component_code
60496       ,p_accounting_line_type_code  => l_component_type_code
60497       ,p_accounting_line_appl_id    => l_component_appl_id
60498       ,p_amb_context_code           => l_amb_context_code
60499       ,p_entity_code                => l_entity_code
60500       ,p_event_class_code           => l_event_class_code);
60501    --
60502    -- set accounting class
60503    --
60504    xla_ae_lines_pkg.SetAcctClass(
60505            p_accounting_class_code  => 'ROUNDING'
60506          , p_ae_header_id           => l_ae_header_id
60507          );
60508 
60509    --
60510    -- set rounding class
60511    --
60512    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
60513                       'ROUNDING';
60514 
60515    --
60516    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
60517    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
60518    --
60519    -- bulk performance
60520    --
60521    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
60522 
60523    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
60524       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
60525 
60526    -- 4955764
60527    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60528       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
60529 
60530    -- 4458381 Public Sector Enh
60531    
60532    --
60533    -- set accounting attributes for the line type
60534    --
60535    l_entered_amt_idx := 10;
60536    l_accted_amt_idx  := 15;
60537    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
60538    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
60539    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
60540    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
60541    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
60542    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
60543    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
60544    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
60545    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
60546    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
60547    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
60548    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
60549    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
60550    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
60551    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
60552    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
60553    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
60554    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
60555    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
60556    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
60557    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
60558    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
60559    l_rec_acct_attrs.array_char_value(11)  := p_source_55;
60560    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
60561    l_rec_acct_attrs.array_date_value(12)  := p_source_136;
60562    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
60563    l_rec_acct_attrs.array_num_value(13)  := p_source_137;
60564    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
60565    l_rec_acct_attrs.array_char_value(14)  := p_source_138;
60566    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
60567    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
60568    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
60569    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
60570    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
60571    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
60572    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
60573    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
60574    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
60575    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
60576    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
60577    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
60578    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
60579    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
60580    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
60581    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
60582    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
60583    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
60584    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
60585    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
60586 
60587    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60591    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60588    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60589 
60590    ---------------------------------------------------------------------------------------------------------------
60592    ---------------------------------------------------------------------------------------------------------------
60593    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60594 
60595    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60596    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60597 
60598    IF xla_accounting_cache_pkg.GetValueChar
60599          (p_source_code         => 'LEDGER_CATEGORY_CODE'
60600          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60601    AND l_bflow_method_code = 'PRIOR_ENTRY'
60602 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60603    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60604          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60605        )
60606    THEN
60607          xla_ae_lines_pkg.BflowUpgEntry
60608            (p_business_method_code    => l_bflow_method_code
60609            ,p_business_class_code     => l_bflow_class_code
60610            ,p_balance_type            => l_balance_type_code);
60611    ELSE
60612       NULL;
60613 -- No business flow processing for business flow method of NONE.
60614    END IF;
60615 
60616    --
60617    -- call analytical criteria
60618    --
60619    
60620    --
60621    -- call description
60622    --
60623    -- No description or it is inherited.
60624    --
60625    -- call ADRs
60626    -- Bug 4922099
60627    --
60628    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60629         (NVL(l_actual_upg_option, 'N') = 'O') OR
60630         (NVL(l_enc_upg_option, 'N') = 'O')
60631       )
60632    THEN
60633    NULL;
60634    --
60635    --
60636    
60637   l_ccid := AcctDerRule_40(
60638            p_application_id           => p_application_id
60639          , p_ae_header_id             => l_ae_header_id 
60640 , p_source_3 => p_source_3
60641 , p_source_3_meaning => p_source_3_meaning
60642 , p_source_18 => p_source_18
60643 , p_source_37 => p_source_37
60644          , x_transaction_coa_id       => l_adr_transaction_coa_id
60645          , x_accounting_coa_id        => l_adr_accounting_coa_id
60646          , x_value_type_code          => l_adr_value_type_code
60647          , p_side                     => 'NA'
60648    );
60649 
60650    xla_ae_lines_pkg.set_ccid(
60651     p_code_combination_id          => l_ccid
60652   , p_value_type_code              => l_adr_value_type_code
60653   , p_transaction_coa_id           => l_adr_transaction_coa_id
60654   , p_accounting_coa_id            => l_adr_accounting_coa_id
60655   , p_adr_code                     => 'AP_ROUNDING'
60656   , p_adr_type_code                => 'S'
60657   , p_component_type               => l_component_type
60658   , p_component_code               => l_component_code
60659   , p_component_type_code          => l_component_type_code
60660   , p_component_appl_id            => l_component_appl_id
60661   , p_amb_context_code             => l_amb_context_code
60662   , p_side                         => 'NA'
60663   );
60664 
60665 
60666    --
60667    --
60668    END IF;
60669    --
60670    -- Bug 4922099
60671    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60672           (NVL(l_enc_upg_option, 'N') = 'O')
60673         ) AND
60674         (l_bflow_method_code = 'PRIOR_ENTRY')
60675       )
60676    THEN
60677       IF
60678       --
60679       1 = 2
60680       --
60681       THEN
60682       xla_accounting_err_pkg.build_message
60683                                     (p_appli_s_name            => 'XLA'
60684                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60685                                     ,p_token_1                 => 'LINE_NUMBER'
60686                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
60687                                     ,p_token_2                 => 'LINE_TYPE_NAME'
60688                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
60689                                                                              l_component_type
60690                                                                             ,l_component_code
60691                                                                             ,l_component_type_code
60692                                                                             ,l_component_appl_id
60693                                                                             ,l_amb_context_code
60694                                                                             ,l_entity_code
60695                                                                             ,l_event_class_code
60696                                                                            )
60697                                     ,p_token_3                 => 'OWNER'
60698                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
60699                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
60700                                                                           ,p_lookup_code    => l_component_type_code
60701                                                                          )
60702                                     ,p_token_4                 => 'PRODUCT_NAME'
60706                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60703                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60704                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60705                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60707                                     ,p_ae_header_id            =>  NULL
60708                                        );
60709 
60710         IF (C_LEVEL_ERROR>= g_log_level) THEN
60711                  trace
60712                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60713                       ,p_level    => C_LEVEL_ERROR
60714                       ,p_module   => l_log_module);
60715         END IF;
60716       END IF;
60717    END IF;
60718    --
60719    --
60720    ------------------------------------------------------------------------------------------------
60721    -- 4219869 Business Flow
60722    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60723    -- Prior Entry.  Currently, the following code is always generated.
60724    ------------------------------------------------------------------------------------------------
60725    XLA_AE_LINES_PKG.ValidateCurrentLine;
60726 
60727    ------------------------------------------------------------------------------------
60728    -- 4219869 Business Flow
60729    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60730    ------------------------------------------------------------------------------------
60731    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60732 
60733    ----------------------------------------------------------------------------------
60734    -- 4219869 Business Flow
60735    -- Update journal entry status -- Need to generate this within IF <condition>
60736    ----------------------------------------------------------------------------------
60737    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60738          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60739          ,p_balance_type_code => l_balance_type_code
60740          );
60741 
60742    -------------------------------------------------------------------------------------------
60743    -- 4262811 - Generate the Accrual Reversal lines
60744    -------------------------------------------------------------------------------------------
60745    BEGIN
60746       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60747                               (g_array_event(p_event_id).array_value_num('header_index'));
60748       IF l_acc_rev_flag IS NULL THEN
60749          l_acc_rev_flag := 'N';
60750       END IF;
60751    EXCEPTION
60752       WHEN OTHERS THEN
60753          l_acc_rev_flag := 'N';
60754    END;
60755    --
60756    IF (l_acc_rev_flag = 'Y') THEN
60757 
60758        -- 4645092  ------------------------------------------------------------------------------
60759        -- To allow MPA report to determine if it should generate report process
60760        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60761        ------------------------------------------------------------------------------------------
60762 
60763        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60764        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60765    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
60766    -- call ADRs
60767    -- Bug 4922099
60768    --
60769    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60770         (NVL(l_actual_upg_option, 'N') = 'O') OR
60771         (NVL(l_enc_upg_option, 'N') = 'O')
60772       )
60773    THEN
60774    NULL;
60775    --
60776    --
60777    
60778   l_ccid := AcctDerRule_40(
60779            p_application_id           => p_application_id
60780          , p_ae_header_id             => l_ae_header_id 
60781 , p_source_3 => p_source_3
60782 , p_source_3_meaning => p_source_3_meaning
60783 , p_source_18 => p_source_18
60784 , p_source_37 => p_source_37
60785          , x_transaction_coa_id       => l_adr_transaction_coa_id
60786          , x_accounting_coa_id        => l_adr_accounting_coa_id
60787          , x_value_type_code          => l_adr_value_type_code
60788          , p_side                     => 'NA'
60789    );
60790 
60791    xla_ae_lines_pkg.set_ccid(
60792     p_code_combination_id          => l_ccid
60793   , p_value_type_code              => l_adr_value_type_code
60794   , p_transaction_coa_id           => l_adr_transaction_coa_id
60795   , p_accounting_coa_id            => l_adr_accounting_coa_id
60796   , p_adr_code                     => 'AP_ROUNDING'
60797   , p_adr_type_code                => 'S'
60798   , p_component_type               => l_component_type
60799   , p_component_code               => l_component_code
60800   , p_component_type_code          => l_component_type_code
60801   , p_component_appl_id            => l_component_appl_id
60802   , p_amb_context_code             => l_amb_context_code
60803   , p_side                         => 'NA'
60804   );
60805 
60806 
60807    --
60808    --
60809    END IF;
60810 
60811        --
60812        -- Update the line information that should be overwritten
60813        --
60814        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60815                                          p_header_num   => 1);
60816        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
60817 
60818        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60819 
60820        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
60824       --
60821           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60822        END IF;
60823 
60825       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60826       --
60827       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60828           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
60829       ELSE
60830           ---------------------------------------------------------------------------------------------------
60831           -- 4262811a Switch Sign
60832           ---------------------------------------------------------------------------------------------------
60833           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
60834           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60835                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60836           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60837                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60838           -- 5132302
60839           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60840                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60841 
60842       END IF;
60843 
60844       -- 4955764
60845       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60846       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60847 
60848 
60849       XLA_AE_LINES_PKG.ValidateCurrentLine;
60850       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60851 
60852       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60853                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60854                ,p_balance_type_code => l_balance_type_code);
60855 
60856    END IF;
60857 
60858    -----------------------------------------------------------------------------------------
60859    -- 4262811 Multiperiod Accounting
60860    -----------------------------------------------------------------------------------------
60861      -- No MPA option is assigned.
60862 
60863 
60864 END IF;
60865 END IF;
60866 --
60867 
60868 --
60869 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60870    trace
60871       (p_msg      => 'END of AcctLineType_121'
60872       ,p_level    => C_LEVEL_PROCEDURE
60873       ,p_module   => l_log_module);
60874 END IF;
60875 --
60876 EXCEPTION
60877   WHEN xla_exceptions_pkg.application_exception THEN
60878       RAISE;
60879   WHEN OTHERS THEN
60880        xla_exceptions_pkg.raise_message
60881            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_121');
60882 END AcctLineType_121;
60883 --
60884 
60885 ---------------------------------------
60886 --
60887 -- PRIVATE FUNCTION
60888 --         AcctLineType_122
60889 --
60890 ---------------------------------------
60891 PROCEDURE AcctLineType_122 (
60892   p_application_id        IN NUMBER
60893  ,p_event_id              IN NUMBER
60894  ,p_calculate_acctd_flag  IN VARCHAR2
60895  ,p_calculate_g_l_flag    IN VARCHAR2
60896  ,p_actual_flag           IN OUT VARCHAR2
60897  ,p_balance_type_code     OUT VARCHAR2
60898  ,p_gain_or_loss_ref      OUT VARCHAR2
60899  
60900 --Automatic Offsets Value
60901  , p_source_3            IN VARCHAR2
60902  , p_source_3_meaning    IN VARCHAR2
60903 --Invoice Distribution Account
60904  , p_source_18            IN NUMBER
60905 --Payables Options Rounding Account
60906  , p_source_37            IN NUMBER
60907 --Accounting Reversal Indicator
60908  , p_source_41            IN VARCHAR2
60909 --Distribution Link Type
60910  , p_source_43            IN VARCHAR2
60911 --Invoice Currency Code
60912  , p_source_55            IN VARCHAR2
60913 --Override Accounted Amount Indicator
60914  , p_source_68            IN VARCHAR2
60915  , p_source_68_meaning    IN VARCHAR2
60916 --Third Party Type
60917  , p_source_71            IN VARCHAR2
60918 --Invoice Distribution Tax Line Identifier
60919  , p_source_74            IN NUMBER
60920 --Invoice Distribution Tax Distribution Identifier from Tax
60921  , p_source_75            IN NUMBER
60922 --Invoice Distribution Summary Tax Line Identifier
60923  , p_source_76            IN NUMBER
60924 --Business Flow Accounts Payable Application Identifier
60925  , p_source_79            IN NUMBER
60926 --Business Flow Invoice Distribution Type
60927  , p_source_80            IN VARCHAR2
60928 --Business Flow Invoice Entity Code
60929  , p_source_81            IN VARCHAR2
60930 --Business Flow Invoice Distribution Identifier
60931  , p_source_82            IN NUMBER
60932 --Business Flow Invoice Identifier
60933  , p_source_83            IN NUMBER
60934 --When to Account for Payment Option
60935  , p_source_89            IN VARCHAR2
60936 --Payment Distribution Type
60937  , p_source_90            IN VARCHAR2
60938  , p_source_90_meaning    IN VARCHAR2
60939 --Payment Distribution Amount
60940  , p_source_91            IN NUMBER
60941 --Payment Distribution Identifier
60942  , p_source_96            IN NUMBER
60943 --Payment Supplier Identifier
60944  , p_source_102            IN NUMBER
60945 --Payment Supplier Site Identifier
60946  , p_source_103            IN NUMBER
60947 --Payment Distribution Reversed Identifier
60948  , p_source_104            IN NUMBER
60949 --Payment Distribution (Invoice Rate) Ledger Amount
60953  , p_source_115_meaning    IN VARCHAR2
60950  , p_source_109            IN NUMBER
60951 --Payment Type
60952  , p_source_115            IN VARCHAR2
60954 --Invoice Exchange Date
60955  , p_source_136            IN DATE
60956 --Invoice Exchange Rate
60957  , p_source_137            IN NUMBER
60958 --Invoice Exchange Rate Type
60959  , p_source_138            IN VARCHAR2
60960 )
60961 IS
60962 
60963 l_component_type              VARCHAR2(80);
60964 l_component_code              VARCHAR2(30);
60965 l_component_type_code         VARCHAR2(1);
60966 l_component_appl_id           INTEGER;
60967 l_amb_context_code            VARCHAR2(30);
60968 l_entity_code                 VARCHAR2(30);
60969 l_event_class_code            VARCHAR2(30);
60970 l_ae_header_id                NUMBER;
60971 l_event_type_code             VARCHAR2(30);
60972 l_line_definition_code        VARCHAR2(30);
60973 l_line_definition_owner_code  VARCHAR2(1);
60974 --
60975 -- adr variables
60976 l_segment                     VARCHAR2(30);
60977 l_ccid                        NUMBER;
60978 l_adr_transaction_coa_id      NUMBER;
60979 l_adr_accounting_coa_id       NUMBER;
60980 l_adr_flexfield_segment_code  VARCHAR2(30);
60981 l_adr_flex_value_set_id       NUMBER;
60982 l_adr_value_type_code         VARCHAR2(30);
60983 l_adr_value_combination_id    NUMBER;
60984 l_adr_value_segment_code      VARCHAR2(30);
60985 
60986 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
60987 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
60988 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
60989 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
60990 
60991 -- 4262811 Variables ------------------------------------------------------------------------------------------
60992 l_entered_amt_idx             NUMBER;
60993 l_accted_amt_idx              NUMBER;
60994 l_acc_rev_flag                VARCHAR2(1);
60995 l_accrual_line_num            NUMBER;
60996 l_tmp_amt                     NUMBER;
60997 l_acc_rev_natural_side_code   VARCHAR2(1);
60998 
60999 l_num_entries                 NUMBER;
61000 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
61001 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
61002 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
61003 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
61004 l_recog_line_1                NUMBER;
61005 l_recog_line_2                NUMBER;
61006 
61007 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
61008 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
61009 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
61010 
61011 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61012 
61013 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
61014 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
61015 
61016 ---------------------------------------------------------------------------------------------------------------
61017 
61018 
61019 --
61020 -- bulk performance
61021 --
61022 l_balance_type_code           VARCHAR2(1);
61023 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
61024 l_log_module                  VARCHAR2(240);
61025 
61026 --
61027 -- Upgrade strategy
61028 --
61029 l_actual_upg_option           VARCHAR2(1);
61030 l_enc_upg_option           VARCHAR2(1);
61031 
61032 --
61033 BEGIN
61034 --
61035 IF g_log_enabled THEN
61036       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_122';
61037 END IF;
61038 --
61039 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61040 
61041       trace
61042          (p_msg      => 'BEGIN of AcctLineType_122'
61043          ,p_level    => C_LEVEL_PROCEDURE
61044          ,p_module   => l_log_module);
61045 
61046 END IF;
61047 --
61048 l_component_type             := 'AMB_JLT';
61052 l_amb_context_code           := 'DEFAULT';
61049 l_component_code             := 'AP_FINAL_PMT_ROUNDING_REF';
61050 l_component_type_code        := 'S';
61051 l_component_appl_id          :=  200;
61053 l_entity_code                := 'AP_PAYMENTS';
61054 l_event_class_code           := 'REFUNDS';
61055 l_event_type_code            := 'REFUNDS_ALL';
61056 l_line_definition_owner_code := 'S';
61057 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
61058 --
61059 l_balance_type_code          := 'A';
61060 l_segment                     := NULL;
61061 l_ccid                        := NULL;
61062 l_adr_transaction_coa_id      := NULL;
61063 l_adr_accounting_coa_id       := NULL;
61064 l_adr_flexfield_segment_code  := NULL;
61065 l_adr_flex_value_set_id       := NULL;
61066 l_adr_value_type_code         := NULL;
61067 l_adr_value_combination_id    := NULL;
61068 l_adr_value_segment_code      := NULL;
61069 
61070 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
61071 l_bflow_class_code           := '';    -- 4219869 Business Flow
61072 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
61073 l_budgetary_control_flag     := 'N';
61074 
61075 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
61076 l_bflow_applied_to_amt       := NULL; -- 5132302
61077 l_entered_amt_idx            := NULL;          -- 4262811
61078 l_accted_amt_idx             := NULL;          -- 4262811
61079 l_acc_rev_flag               := NULL;          -- 4262811
61080 l_accrual_line_num           := NULL;          -- 4262811
61081 l_tmp_amt                    := NULL;          -- 4262811
61082 --
61083  
61084 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
61085     l_balance_type_code <> 'B' THEN
61086 IF NVL(p_source_89,'
61087 ') <>  'CLEAR_CLEAR' AND 
61088 NVL(p_source_90,'
61089 ') =  'FINAL PAYMENT ROUNDING' AND 
61090 NVL(p_source_115,'
61091 ') =  'R'
61092  THEN 
61093 
61094    --
61095    XLA_AE_LINES_PKG.SetNewLine;
61096 
61097    p_balance_type_code          := l_balance_type_code;
61098    -- set the flag so later we will know whether the gain loss line needs to be created
61099    
61100    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
61101      p_actual_flag :='A';
61102    END IF;
61103 
61104    --
61105    -- bulk performance
61106    --
61107    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
61108                                       p_header_num   => 0); -- 4262811
61109    --
61110    -- set accounting line options
61111    --
61112    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
61113            p_natural_side_code          => 'D'
61114          , p_gain_or_loss_flag          => 'N'
61115          , p_gl_transfer_mode_code      => 'S'
61116          , p_acct_entry_type_code       => 'A'
61117          , p_switch_side_flag           => 'Y'
61118          , p_merge_duplicate_code       => 'A'
61119          );
61120    --
61121    l_acc_rev_natural_side_code := 'C';  -- 4262811
61122    -- 
61123    --
61124    -- set accounting line type info
61125    --
61126    xla_ae_lines_pkg.SetAcctLineType
61127       (p_component_type             => l_component_type
61128       ,p_event_type_code            => l_event_type_code
61129       ,p_line_definition_owner_code => l_line_definition_owner_code
61130       ,p_line_definition_code       => l_line_definition_code
61131       ,p_accounting_line_code       => l_component_code
61132       ,p_accounting_line_type_code  => l_component_type_code
61133       ,p_accounting_line_appl_id    => l_component_appl_id
61134       ,p_amb_context_code           => l_amb_context_code
61135       ,p_entity_code                => l_entity_code
61136       ,p_event_class_code           => l_event_class_code);
61137    --
61138    -- set accounting class
61139    --
61140    xla_ae_lines_pkg.SetAcctClass(
61141            p_accounting_class_code  => 'ROUNDING'
61142          , p_ae_header_id           => l_ae_header_id
61143          );
61144 
61145    --
61146    -- set rounding class
61147    --
61148    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61149                       'ROUNDING';
61150 
61151    --
61152    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61153    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61154    --
61155    -- bulk performance
61156    --
61157    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61158 
61159    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61160       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61161 
61162    -- 4955764
61166    -- 4458381 Public Sector Enh
61163    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61164       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61165 
61167    
61168    --
61169    -- set accounting attributes for the line type
61170    --
61171    l_entered_amt_idx := 9;
61172    l_accted_amt_idx  := 14;
61173    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
61174    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
61175    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
61176    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
61177    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
61178    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61179    l_rec_acct_attrs.array_char_value(3)  := p_source_80;
61180    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
61181    l_rec_acct_attrs.array_char_value(4)  := p_source_81;
61182    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
61183    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
61184    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61185    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
61186    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
61187    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
61188    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
61189    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
61190    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
61191    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
61192    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
61193    l_rec_acct_attrs.array_char_value(10)  := p_source_55;
61197    l_rec_acct_attrs.array_num_value(12)  := p_source_137;
61194    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
61195    l_rec_acct_attrs.array_date_value(11)  := p_source_136;
61196    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
61198    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
61199    l_rec_acct_attrs.array_char_value(13)  := p_source_138;
61200    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
61201    l_rec_acct_attrs.array_num_value(14)  := p_source_109;
61202    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
61203    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
61204    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
61205    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
61206    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
61207    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
61208    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
61209    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
61210    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
61211    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
61212    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
61213    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
61214    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
61215    l_rec_acct_attrs.array_num_value(21)  := p_source_74;
61216    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
61217    l_rec_acct_attrs.array_num_value(22)  := p_source_75;
61218    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
61219    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
61220 
61221    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61222    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61223 
61224    ---------------------------------------------------------------------------------------------------------------
61225    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61226    ---------------------------------------------------------------------------------------------------------------
61227    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61228 
61229    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61230    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61231 
61232    IF xla_accounting_cache_pkg.GetValueChar
61233          (p_source_code         => 'LEDGER_CATEGORY_CODE'
61234          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61235    AND l_bflow_method_code = 'PRIOR_ENTRY'
61236 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61240    THEN
61237    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61238          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61239        )
61241          xla_ae_lines_pkg.BflowUpgEntry
61242            (p_business_method_code    => l_bflow_method_code
61243            ,p_business_class_code     => l_bflow_class_code
61244            ,p_balance_type            => l_balance_type_code);
61245    ELSE
61246       NULL;
61247 -- No business flow processing for business flow method of NONE.
61248    END IF;
61249 
61250    --
61251    -- call analytical criteria
61252    --
61253    
61254    --
61255    -- call description
61256    --
61257    -- No description or it is inherited.
61258    --
61259    -- call ADRs
61260    -- Bug 4922099
61261    --
61262    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61263         (NVL(l_actual_upg_option, 'N') = 'O') OR
61264         (NVL(l_enc_upg_option, 'N') = 'O')
61265       )
61266    THEN
61267    NULL;
61268    --
61269    --
61270    
61271   l_ccid := AcctDerRule_40(
61272            p_application_id           => p_application_id
61273          , p_ae_header_id             => l_ae_header_id 
61274 , p_source_3 => p_source_3
61275 , p_source_3_meaning => p_source_3_meaning
61276 , p_source_18 => p_source_18
61277 , p_source_37 => p_source_37
61278          , x_transaction_coa_id       => l_adr_transaction_coa_id
61279          , x_accounting_coa_id        => l_adr_accounting_coa_id
61280          , x_value_type_code          => l_adr_value_type_code
61281          , p_side                     => 'NA'
61282    );
61283 
61284    xla_ae_lines_pkg.set_ccid(
61285     p_code_combination_id          => l_ccid
61286   , p_value_type_code              => l_adr_value_type_code
61287   , p_transaction_coa_id           => l_adr_transaction_coa_id
61288   , p_accounting_coa_id            => l_adr_accounting_coa_id
61289   , p_adr_code                     => 'AP_ROUNDING'
61290   , p_adr_type_code                => 'S'
61291   , p_component_type               => l_component_type
61292   , p_component_code               => l_component_code
61293   , p_component_type_code          => l_component_type_code
61294   , p_component_appl_id            => l_component_appl_id
61295   , p_amb_context_code             => l_amb_context_code
61296   , p_side                         => 'NA'
61297   );
61298 
61299 
61300    --
61301    --
61302    END IF;
61303    --
61304    -- Bug 4922099
61305    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61306           (NVL(l_enc_upg_option, 'N') = 'O')
61307         ) AND
61308         (l_bflow_method_code = 'PRIOR_ENTRY')
61309       )
61310    THEN
61311       IF
61312       --
61313       1 = 2
61314       --
61315       THEN
61316       xla_accounting_err_pkg.build_message
61317                                     (p_appli_s_name            => 'XLA'
61318                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61319                                     ,p_token_1                 => 'LINE_NUMBER'
61320                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
61321                                     ,p_token_2                 => 'LINE_TYPE_NAME'
61322                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
61323                                                                              l_component_type
61324                                                                             ,l_component_code
61325                                                                             ,l_component_type_code
61326                                                                             ,l_component_appl_id
61330                                                                            )
61327                                                                             ,l_amb_context_code
61328                                                                             ,l_entity_code
61329                                                                             ,l_event_class_code
61331                                     ,p_token_3                 => 'OWNER'
61332                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
61333                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
61334                                                                           ,p_lookup_code    => l_component_type_code
61335                                                                          )
61336                                     ,p_token_4                 => 'PRODUCT_NAME'
61340                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61337                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61338                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61339                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61341                                     ,p_ae_header_id            =>  NULL
61342                                        );
61343 
61344         IF (C_LEVEL_ERROR>= g_log_level) THEN
61345                  trace
61346                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61347                       ,p_level    => C_LEVEL_ERROR
61348                       ,p_module   => l_log_module);
61349         END IF;
61350       END IF;
61351    END IF;
61352    --
61353    --
61354    ------------------------------------------------------------------------------------------------
61355    -- 4219869 Business Flow
61356    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61357    -- Prior Entry.  Currently, the following code is always generated.
61358    ------------------------------------------------------------------------------------------------
61359    XLA_AE_LINES_PKG.ValidateCurrentLine;
61360 
61361    ------------------------------------------------------------------------------------
61362    -- 4219869 Business Flow
61363    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61364    ------------------------------------------------------------------------------------
61365    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61366 
61367    ----------------------------------------------------------------------------------
61368    -- 4219869 Business Flow
61369    -- Update journal entry status -- Need to generate this within IF <condition>
61370    ----------------------------------------------------------------------------------
61371    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61372          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61373          ,p_balance_type_code => l_balance_type_code
61374          );
61375 
61376    -------------------------------------------------------------------------------------------
61377    -- 4262811 - Generate the Accrual Reversal lines
61378    -------------------------------------------------------------------------------------------
61379    BEGIN
61380       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61381                               (g_array_event(p_event_id).array_value_num('header_index'));
61382       IF l_acc_rev_flag IS NULL THEN
61383          l_acc_rev_flag := 'N';
61384       END IF;
61385    EXCEPTION
61386       WHEN OTHERS THEN
61387          l_acc_rev_flag := 'N';
61388    END;
61389    --
61390    IF (l_acc_rev_flag = 'Y') THEN
61391 
61392        -- 4645092  ------------------------------------------------------------------------------
61393        -- To allow MPA report to determine if it should generate report process
61394        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61395        ------------------------------------------------------------------------------------------
61396 
61397        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61398        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61399    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
61400    -- call ADRs
61401    -- Bug 4922099
61402    --
61403    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61404         (NVL(l_actual_upg_option, 'N') = 'O') OR
61405         (NVL(l_enc_upg_option, 'N') = 'O')
61406       )
61407    THEN
61408    NULL;
61409    --
61410    --
61411    
61412   l_ccid := AcctDerRule_40(
61413            p_application_id           => p_application_id
61414          , p_ae_header_id             => l_ae_header_id 
61415 , p_source_3 => p_source_3
61416 , p_source_3_meaning => p_source_3_meaning
61417 , p_source_18 => p_source_18
61418 , p_source_37 => p_source_37
61419          , x_transaction_coa_id       => l_adr_transaction_coa_id
61420          , x_accounting_coa_id        => l_adr_accounting_coa_id
61421          , x_value_type_code          => l_adr_value_type_code
61422          , p_side                     => 'NA'
61423    );
61424 
61425    xla_ae_lines_pkg.set_ccid(
61426     p_code_combination_id          => l_ccid
61427   , p_value_type_code              => l_adr_value_type_code
61428   , p_transaction_coa_id           => l_adr_transaction_coa_id
61429   , p_accounting_coa_id            => l_adr_accounting_coa_id
61430   , p_adr_code                     => 'AP_ROUNDING'
61431   , p_adr_type_code                => 'S'
61432   , p_component_type               => l_component_type
61433   , p_component_code               => l_component_code
61434   , p_component_type_code          => l_component_type_code
61435   , p_component_appl_id            => l_component_appl_id
61436   , p_amb_context_code             => l_amb_context_code
61437   , p_side                         => 'NA'
61438   );
61439 
61440 
61441    --
61442    --
61443    END IF;
61444 
61445        --
61446        -- Update the line information that should be overwritten
61447        --
61448        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61449                                          p_header_num   => 1);
61450        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
61451 
61455           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61452        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61453 
61454        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
61456        END IF;
61457 
61458       --
61459       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61460       --
61461       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61462           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
61463       ELSE
61464           ---------------------------------------------------------------------------------------------------
61465           -- 4262811a Switch Sign
61466           ---------------------------------------------------------------------------------------------------
61467           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
61468           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61469                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61470           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61471                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61472           -- 5132302
61473           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61474                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61475 
61476       END IF;
61477 
61478       -- 4955764
61479       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61480       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61481 
61482 
61483       XLA_AE_LINES_PKG.ValidateCurrentLine;
61484       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61485 
61486       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61487                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61488                ,p_balance_type_code => l_balance_type_code);
61489 
61490    END IF;
61491 
61492    -----------------------------------------------------------------------------------------
61493    -- 4262811 Multiperiod Accounting
61494    -----------------------------------------------------------------------------------------
61495      -- No MPA option is assigned.
61496 
61497 
61498 END IF;
61499 END IF;
61500 --
61501 
61502 --
61503 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61504    trace
61505       (p_msg      => 'END of AcctLineType_122'
61506       ,p_level    => C_LEVEL_PROCEDURE
61507       ,p_module   => l_log_module);
61508 END IF;
61509 --
61510 EXCEPTION
61511   WHEN xla_exceptions_pkg.application_exception THEN
61512       RAISE;
61513   WHEN OTHERS THEN
61514        xla_exceptions_pkg.raise_message
61515            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_122');
61516 END AcctLineType_122;
61517 --
61518 
61519 ---------------------------------------
61520 --
61521 -- PRIVATE FUNCTION
61522 --         AcctLineType_123
61523 --
61524 ---------------------------------------
61528  ,p_calculate_acctd_flag  IN VARCHAR2
61525 PROCEDURE AcctLineType_123 (
61526   p_application_id        IN NUMBER
61527  ,p_event_id              IN NUMBER
61529  ,p_calculate_g_l_flag    IN VARCHAR2
61530  ,p_actual_flag           IN OUT VARCHAR2
61531  ,p_balance_type_code     OUT VARCHAR2
61532  ,p_gain_or_loss_ref      OUT VARCHAR2
61533  
61534 --Automatic Offsets Value
61535  , p_source_3            IN VARCHAR2
61536  , p_source_3_meaning    IN VARCHAR2
61537 --Invoice Distribution Account
61538  , p_source_18            IN NUMBER
61539 --Payables Options Rounding Account
61540  , p_source_37            IN NUMBER
61541 --Accounting Reversal Indicator
61542  , p_source_41            IN VARCHAR2
61543 --Distribution Link Type
61544  , p_source_43            IN VARCHAR2
61545 --Invoice Identifier
61546  , p_source_46            IN NUMBER
61547 --Payables Encumbrance Upgrade Credit Account
61548  , p_source_53            IN NUMBER
61549 --Payables Encumbrance Upgrade Credit Amount
61550  , p_source_54            IN NUMBER
61551 --Invoice Currency Code
61552  , p_source_55            IN VARCHAR2
61553 --Payables Encumbrance Upgrade Credit Base Amount
61554  , p_source_56            IN NUMBER
61555 --Payables Encumbrance Upgrade Debit Account
61556  , p_source_57            IN NUMBER
61557 --Payables Encumbrance Upgrade Debit Amount
61558  , p_source_58            IN NUMBER
61559 --Payables Encumbrance Upgrade Debit Base Amount
61560  , p_source_59            IN NUMBER
61561 --Payables Encumbrance Upgrade Option
61562  , p_source_60            IN VARCHAR2
61563 --Deferred Accounting End Date
61564  , p_source_65            IN DATE
61565 --Deferred Accounting Option
61566  , p_source_66            IN VARCHAR2
61567 --Deferred Accounting Start Date
61568  , p_source_67            IN DATE
61569 --Override Accounted Amount Indicator
61570  , p_source_68            IN VARCHAR2
61571  , p_source_68_meaning    IN VARCHAR2
61572 --Invoice Supplier Identifier
61573  , p_source_69            IN NUMBER
61574 --Invoice Supplier Site Identifier
61575  , p_source_70            IN NUMBER
61576 --Third Party Type
61577  , p_source_71            IN VARCHAR2
61578 --Invoice Distribution Tax Line Identifier
61579  , p_source_74            IN NUMBER
61580 --Invoice Distribution Tax Distribution Identifier from Tax
61581  , p_source_75            IN NUMBER
61582 --Invoice Distribution Summary Tax Line Identifier
61583  , p_source_76            IN NUMBER
61584 --Payables Upgrade Credit Encumbrance Type Identifier
61585  , p_source_77            IN NUMBER
61586 --Payables Upgrade Debit Encumbrance Type Identifier
61587  , p_source_78            IN NUMBER
61588 --Business Flow Accounts Payable Application Identifier
61589  , p_source_79            IN NUMBER
61590 --Prepayment Distribution Type
61591  , p_source_118            IN VARCHAR2
61592 --Prepayment Application Distribution Identifier
61593  , p_source_120            IN NUMBER
61594 --Upgrade Encumbrance Credit Account Class
61595  , p_source_125            IN VARCHAR2
61596 --Upgrade Encumbrance Debit Account Class
61597  , p_source_126            IN VARCHAR2
61598 --Prepayment Distribution Amount
61599  , p_source_127            IN NUMBER
61600 --Identifier of the Prepayment Application Reversed
61601  , p_source_129            IN NUMBER
61602 --Invoice Exchange Date
61603  , p_source_136            IN DATE
61604 --Invoice Exchange Rate
61605  , p_source_137            IN NUMBER
61606 --Invoice Exchange Rate Type
61607  , p_source_138            IN VARCHAR2
61608 --Business Flow Prepayment Invoice Distribution Type
61609  , p_source_139            IN VARCHAR2
61610 --Business Flow Prepayment Invoice Entity Code
61611  , p_source_140            IN VARCHAR2
61612 --Business Flow Prepayment Invoice Distribution Identifier
61613  , p_source_141            IN NUMBER
61614 --Business Flow Prepayment Invoice Identifier
61615  , p_source_142            IN NUMBER
61616 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
61617  , p_source_145            IN NUMBER
61618 )
61619 IS
61620 
61621 l_component_type              VARCHAR2(80);
61622 l_component_code              VARCHAR2(30);
61623 l_component_type_code         VARCHAR2(1);
61624 l_component_appl_id           INTEGER;
61625 l_amb_context_code            VARCHAR2(30);
61626 l_entity_code                 VARCHAR2(30);
61627 l_event_class_code            VARCHAR2(30);
61628 l_ae_header_id                NUMBER;
61629 l_event_type_code             VARCHAR2(30);
61630 l_line_definition_code        VARCHAR2(30);
61631 l_line_definition_owner_code  VARCHAR2(1);
61632 --
61633 -- adr variables
61634 l_segment                     VARCHAR2(30);
61635 l_ccid                        NUMBER;
61636 l_adr_transaction_coa_id      NUMBER;
61637 l_adr_accounting_coa_id       NUMBER;
61638 l_adr_flexfield_segment_code  VARCHAR2(30);
61639 l_adr_flex_value_set_id       NUMBER;
61640 l_adr_value_type_code         VARCHAR2(30);
61641 l_adr_value_combination_id    NUMBER;
61642 l_adr_value_segment_code      VARCHAR2(30);
61643 
61644 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
61645 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
61646 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
61647 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
61648 
61649 -- 4262811 Variables ------------------------------------------------------------------------------------------
61650 l_entered_amt_idx             NUMBER;
61651 l_accted_amt_idx              NUMBER;
61652 l_acc_rev_flag                VARCHAR2(1);
61653 l_accrual_line_num            NUMBER;
61654 l_tmp_amt                     NUMBER;
61655 l_acc_rev_natural_side_code   VARCHAR2(1);
61656 
61660 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
61657 l_num_entries                 NUMBER;
61658 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
61659 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
61661 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
61662 l_recog_line_1                NUMBER;
61663 l_recog_line_2                NUMBER;
61664 
61665 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
61666 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
61667 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
61668 
61669 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61670 
61671 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
61672 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
61673 
61674 ---------------------------------------------------------------------------------------------------------------
61675 
61676 
61677 --
61678 -- bulk performance
61679 --
61680 l_balance_type_code           VARCHAR2(1);
61681 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
61682 l_log_module                  VARCHAR2(240);
61683 
61684 --
61685 -- Upgrade strategy
61686 --
61687 l_actual_upg_option           VARCHAR2(1);
61688 l_enc_upg_option           VARCHAR2(1);
61689 
61690 --
61691 BEGIN
61692 --
61693 IF g_log_enabled THEN
61694       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_123';
61695 END IF;
61696 --
61697 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61698 
61699       trace
61700          (p_msg      => 'BEGIN of AcctLineType_123'
61701          ,p_level    => C_LEVEL_PROCEDURE
61702          ,p_module   => l_log_module);
61703 
61704 END IF;
61705 --
61706 l_component_type             := 'AMB_JLT';
61707 l_component_code             := 'AP_FINAL_PMT_ROUND_PREPAY_APP';
61708 l_component_type_code        := 'S';
61709 l_component_appl_id          :=  200;
61710 l_amb_context_code           := 'DEFAULT';
61711 l_entity_code                := 'AP_INVOICES';
61712 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
61713 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
61714 l_line_definition_owner_code := 'S';
61715 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
61716 --
61717 l_balance_type_code          := 'A';
61718 l_segment                     := NULL;
61719 l_ccid                        := NULL;
61720 l_adr_transaction_coa_id      := NULL;
61721 l_adr_accounting_coa_id       := NULL;
61722 l_adr_flexfield_segment_code  := NULL;
61723 l_adr_flex_value_set_id       := NULL;
61724 l_adr_value_type_code         := NULL;
61725 l_adr_value_combination_id    := NULL;
61726 l_adr_value_segment_code      := NULL;
61727 
61728 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
61729 l_bflow_class_code           := '';    -- 4219869 Business Flow
61730 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
61731 l_budgetary_control_flag     := 'N';
61732 
61733 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
61734 l_bflow_applied_to_amt       := NULL; -- 5132302
61735 l_entered_amt_idx            := NULL;          -- 4262811
61736 l_accted_amt_idx             := NULL;          -- 4262811
61737 l_acc_rev_flag               := NULL;          -- 4262811
61738 l_accrual_line_num           := NULL;          -- 4262811
61739 l_tmp_amt                    := NULL;          -- 4262811
61740 --
61741  
61742 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
61743     l_balance_type_code <> 'B' THEN
61744 IF NVL(p_source_118,'
61745 ') =  'FINAL PAYMENT ROUNDING'
61746  THEN 
61747 
61748    --
61749    XLA_AE_LINES_PKG.SetNewLine;
61750 
61751    p_balance_type_code          := l_balance_type_code;
61752    -- set the flag so later we will know whether the gain loss line needs to be created
61753    
61754    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
61755      p_actual_flag :='A';
61756    END IF;
61757 
61758    --
61759    -- bulk performance
61760    --
61761    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
61762                                       p_header_num   => 0); -- 4262811
61763    --
61764    -- set accounting line options
61765    --
61766    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
61767            p_natural_side_code          => 'C'
61768          , p_gain_or_loss_flag          => 'N'
61769          , p_gl_transfer_mode_code      => 'S'
61770          , p_acct_entry_type_code       => 'A'
61771          , p_switch_side_flag           => 'Y'
61772          , p_merge_duplicate_code       => 'A'
61773          );
61774    --
61775    l_acc_rev_natural_side_code := 'D';  -- 4262811
61776    -- 
61777    --
61778    -- set accounting line type info
61779    --
61780    xla_ae_lines_pkg.SetAcctLineType
61781       (p_component_type             => l_component_type
61782       ,p_event_type_code            => l_event_type_code
61783       ,p_line_definition_owner_code => l_line_definition_owner_code
61784       ,p_line_definition_code       => l_line_definition_code
61785       ,p_accounting_line_code       => l_component_code
61786       ,p_accounting_line_type_code  => l_component_type_code
61787       ,p_accounting_line_appl_id    => l_component_appl_id
61788       ,p_amb_context_code           => l_amb_context_code
61789       ,p_entity_code                => l_entity_code
61790       ,p_event_class_code           => l_event_class_code);
61791    --
61792    -- set accounting class
61796          , p_ae_header_id           => l_ae_header_id
61793    --
61794    xla_ae_lines_pkg.SetAcctClass(
61795            p_accounting_class_code  => 'ROUNDING'
61797          );
61798 
61799    --
61800    -- set rounding class
61801    --
61802    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61803                       'ROUNDING';
61804 
61805    --
61806    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61807    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61808    --
61809    -- bulk performance
61810    --
61811    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61812 
61813    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61814       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61815 
61816    -- 4955764
61817    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61818       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61819 
61820    -- 4458381 Public Sector Enh
61821    
61822    --
61823    -- set accounting attributes for the line type
61824    --
61825    l_entered_amt_idx := 25;
61826    l_accted_amt_idx  := 30;
61827    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
61828    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
61829    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
61830    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
61831    l_rec_acct_attrs.array_num_value(2)  := 
61832 xla_ae_sources_pkg.GetSystemSourceNum(
61833    p_source_code           => 'XLA_EVENT_APPL_ID'
61834  , p_source_type_code      => 'Y'
61835  , p_source_application_id =>  602
61836 );
61837    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
61838    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
61839    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
61840    l_rec_acct_attrs.array_char_value(4)  := 
61841 xla_ae_sources_pkg.GetSystemSourceChar(
61842    p_source_code           => 'XLA_ENTITY_CODE'
61843  , p_source_type_code      => 'Y'
61844  , p_source_application_id =>  602
61845 );
61846    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
61847    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_120);
61848    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
61849    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
61850    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
61851    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
61852    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61853    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
61854    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
61855    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
61856    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
61857    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
61858    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61859    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
61860    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
61861    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_120);
61862    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
61863    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
61864    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
61865    l_rec_acct_attrs.array_char_value(14)  := p_source_125;
61866    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
61867    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
61868    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
61869    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
61870    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
61871    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
61872    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
61873    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
61874    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
61875    l_rec_acct_attrs.array_char_value(19)  := p_source_126;
61876    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
61877    l_rec_acct_attrs.array_num_value(20)  := p_source_57;
61878    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
61879    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
61880    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
61881    l_rec_acct_attrs.array_char_value(22)  := p_source_55;
61882    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
61883    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
61884    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
61885    l_rec_acct_attrs.array_char_value(24)  := p_source_60;
61886    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
61887    l_rec_acct_attrs.array_num_value(25)  := p_source_127;
61888    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
61889    l_rec_acct_attrs.array_char_value(26)  := p_source_55;
61890    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
61891    l_rec_acct_attrs.array_date_value(27)  := p_source_136;
61892    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
61893    l_rec_acct_attrs.array_num_value(28)  := p_source_137;
61894    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
61898    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
61895    l_rec_acct_attrs.array_char_value(29)  := p_source_138;
61896    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
61897    l_rec_acct_attrs.array_num_value(30)  := p_source_145;
61899    l_rec_acct_attrs.array_date_value(31)  := p_source_65;
61900    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
61901    l_rec_acct_attrs.array_char_value(32)  := p_source_66;
61902    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
61903    l_rec_acct_attrs.array_date_value(33)  := p_source_67;
61904    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
61905    l_rec_acct_attrs.array_char_value(34)  := p_source_68;
61906    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
61907    l_rec_acct_attrs.array_num_value(35)  := p_source_69;
61908    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
61909    l_rec_acct_attrs.array_num_value(36)  := p_source_70;
61910    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
61911    l_rec_acct_attrs.array_char_value(37)  := p_source_71;
61912    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
61913    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_129);
61914    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
61915    l_rec_acct_attrs.array_char_value(39)  := p_source_43;
61916    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
61917    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
61918    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
61919    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
61920    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
61921    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
61922    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
61923    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
61924    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
61925    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
61926 
61927    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61928    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61929 
61930    ---------------------------------------------------------------------------------------------------------------
61931    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61932    ---------------------------------------------------------------------------------------------------------------
61933    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61934 
61935    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61936    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61937 
61938    IF xla_accounting_cache_pkg.GetValueChar
61939          (p_source_code         => 'LEDGER_CATEGORY_CODE'
61940          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61941    AND l_bflow_method_code = 'PRIOR_ENTRY'
61942 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61943    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61944          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61945        )
61946    THEN
61947          xla_ae_lines_pkg.BflowUpgEntry
61948            (p_business_method_code    => l_bflow_method_code
61949            ,p_business_class_code     => l_bflow_class_code
61950            ,p_balance_type            => l_balance_type_code);
61951    ELSE
61952       NULL;
61953 -- No business flow processing for business flow method of NONE.
61954    END IF;
61955 
61956    --
61957    -- call analytical criteria
61958    --
61959    
61960    --
61961    -- call description
61962    --
61963    -- No description or it is inherited.
61964    --
61965    -- call ADRs
61966    -- Bug 4922099
61967    --
61968    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61969         (NVL(l_actual_upg_option, 'N') = 'O') OR
61970         (NVL(l_enc_upg_option, 'N') = 'O')
61971       )
61972    THEN
61973    NULL;
61974    --
61975    --
61976    
61977   l_ccid := AcctDerRule_40(
61978            p_application_id           => p_application_id
61979          , p_ae_header_id             => l_ae_header_id 
61980 , p_source_3 => p_source_3
61981 , p_source_3_meaning => p_source_3_meaning
61982 , p_source_18 => p_source_18
61983 , p_source_37 => p_source_37
61984          , x_transaction_coa_id       => l_adr_transaction_coa_id
61985          , x_accounting_coa_id        => l_adr_accounting_coa_id
61986          , x_value_type_code          => l_adr_value_type_code
61987          , p_side                     => 'NA'
61988    );
61989 
61990    xla_ae_lines_pkg.set_ccid(
61991     p_code_combination_id          => l_ccid
61992   , p_value_type_code              => l_adr_value_type_code
61993   , p_transaction_coa_id           => l_adr_transaction_coa_id
61994   , p_accounting_coa_id            => l_adr_accounting_coa_id
61995   , p_adr_code                     => 'AP_ROUNDING'
61996   , p_adr_type_code                => 'S'
61997   , p_component_type               => l_component_type
61998   , p_component_code               => l_component_code
61999   , p_component_type_code          => l_component_type_code
62000   , p_component_appl_id            => l_component_appl_id
62001   , p_amb_context_code             => l_amb_context_code
62002   , p_side                         => 'NA'
62003   );
62004 
62005 
62006    --
62010    -- Bug 4922099
62007    --
62008    END IF;
62009    --
62011    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62012           (NVL(l_enc_upg_option, 'N') = 'O')
62013         ) AND
62014         (l_bflow_method_code = 'PRIOR_ENTRY')
62015       )
62016    THEN
62017       IF
62018       --
62019       1 = 2
62020       --
62021       THEN
62022       xla_accounting_err_pkg.build_message
62023                                     (p_appli_s_name            => 'XLA'
62024                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62025                                     ,p_token_1                 => 'LINE_NUMBER'
62026                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
62027                                     ,p_token_2                 => 'LINE_TYPE_NAME'
62028                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
62029                                                                              l_component_type
62030                                                                             ,l_component_code
62031                                                                             ,l_component_type_code
62032                                                                             ,l_component_appl_id
62033                                                                             ,l_amb_context_code
62034                                                                             ,l_entity_code
62035                                                                             ,l_event_class_code
62036                                                                            )
62037                                     ,p_token_3                 => 'OWNER'
62038                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
62039                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
62040                                                                           ,p_lookup_code    => l_component_type_code
62041                                                                          )
62042                                     ,p_token_4                 => 'PRODUCT_NAME'
62043                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62044                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62045                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62046                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62047                                     ,p_ae_header_id            =>  NULL
62048                                        );
62049 
62050         IF (C_LEVEL_ERROR>= g_log_level) THEN
62051                  trace
62052                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62053                       ,p_level    => C_LEVEL_ERROR
62054                       ,p_module   => l_log_module);
62055         END IF;
62056       END IF;
62057    END IF;
62058    --
62059    --
62060    ------------------------------------------------------------------------------------------------
62061    -- 4219869 Business Flow
62062    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62063    -- Prior Entry.  Currently, the following code is always generated.
62064    ------------------------------------------------------------------------------------------------
62065    XLA_AE_LINES_PKG.ValidateCurrentLine;
62066 
62067    ------------------------------------------------------------------------------------
62068    -- 4219869 Business Flow
62069    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62070    ------------------------------------------------------------------------------------
62071    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62072 
62073    ----------------------------------------------------------------------------------
62074    -- 4219869 Business Flow
62075    -- Update journal entry status -- Need to generate this within IF <condition>
62076    ----------------------------------------------------------------------------------
62077    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62078          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62079          ,p_balance_type_code => l_balance_type_code
62080          );
62081 
62082    -------------------------------------------------------------------------------------------
62083    -- 4262811 - Generate the Accrual Reversal lines
62084    -------------------------------------------------------------------------------------------
62085    BEGIN
62086       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62087                               (g_array_event(p_event_id).array_value_num('header_index'));
62088       IF l_acc_rev_flag IS NULL THEN
62089          l_acc_rev_flag := 'N';
62090       END IF;
62091    EXCEPTION
62092       WHEN OTHERS THEN
62093          l_acc_rev_flag := 'N';
62094    END;
62095    --
62096    IF (l_acc_rev_flag = 'Y') THEN
62097 
62098        -- 4645092  ------------------------------------------------------------------------------
62099        -- To allow MPA report to determine if it should generate report process
62100        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62101        ------------------------------------------------------------------------------------------
62102 
62103        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62104        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62105    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
62106    -- call ADRs
62110         (NVL(l_actual_upg_option, 'N') = 'O') OR
62107    -- Bug 4922099
62108    --
62109    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62111         (NVL(l_enc_upg_option, 'N') = 'O')
62112       )
62113    THEN
62114    NULL;
62115    --
62116    --
62117    
62118   l_ccid := AcctDerRule_40(
62119            p_application_id           => p_application_id
62120          , p_ae_header_id             => l_ae_header_id 
62121 , p_source_3 => p_source_3
62122 , p_source_3_meaning => p_source_3_meaning
62123 , p_source_18 => p_source_18
62124 , p_source_37 => p_source_37
62125          , x_transaction_coa_id       => l_adr_transaction_coa_id
62126          , x_accounting_coa_id        => l_adr_accounting_coa_id
62127          , x_value_type_code          => l_adr_value_type_code
62128          , p_side                     => 'NA'
62129    );
62130 
62131    xla_ae_lines_pkg.set_ccid(
62132     p_code_combination_id          => l_ccid
62133   , p_value_type_code              => l_adr_value_type_code
62134   , p_transaction_coa_id           => l_adr_transaction_coa_id
62135   , p_accounting_coa_id            => l_adr_accounting_coa_id
62136   , p_adr_code                     => 'AP_ROUNDING'
62137   , p_adr_type_code                => 'S'
62138   , p_component_type               => l_component_type
62139   , p_component_code               => l_component_code
62140   , p_component_type_code          => l_component_type_code
62141   , p_component_appl_id            => l_component_appl_id
62142   , p_amb_context_code             => l_amb_context_code
62143   , p_side                         => 'NA'
62144   );
62145 
62146 
62147    --
62148    --
62149    END IF;
62150 
62151        --
62152        -- Update the line information that should be overwritten
62153        --
62154        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
62155                                          p_header_num   => 1);
62156        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
62157 
62158        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
62159 
62160        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
62161           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
62162        END IF;
62163 
62164       --
62165       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
62166       --
62167       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
62168           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
62169       ELSE
62170           ---------------------------------------------------------------------------------------------------
62171           -- 4262811a Switch Sign
62172           ---------------------------------------------------------------------------------------------------
62173           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
62174           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62175                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62176           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62177                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62178           -- 5132302
62179           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
62180                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62181 
62182       END IF;
62183 
62184       -- 4955764
62185       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62186       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
62187 
62188 
62189       XLA_AE_LINES_PKG.ValidateCurrentLine;
62190       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62191 
62192       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62193                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
62194                ,p_balance_type_code => l_balance_type_code);
62195 
62196    END IF;
62197 
62198    -----------------------------------------------------------------------------------------
62199    -- 4262811 Multiperiod Accounting
62200    -----------------------------------------------------------------------------------------
62201      -- No MPA option is assigned.
62202 
62203 
62204 END IF;
62205 END IF;
62206 --
62207 
62208 --
62209 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62210    trace
62211       (p_msg      => 'END of AcctLineType_123'
62212       ,p_level    => C_LEVEL_PROCEDURE
62213       ,p_module   => l_log_module);
62214 END IF;
62215 --
62216 EXCEPTION
62217   WHEN xla_exceptions_pkg.application_exception THEN
62218       RAISE;
62219   WHEN OTHERS THEN
62220        xla_exceptions_pkg.raise_message
62221            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_123');
62222 END AcctLineType_123;
62223 --
62224 
62225 ---------------------------------------
62226 --
62227 -- PRIVATE FUNCTION
62228 --         AcctLineType_124
62229 --
62230 ---------------------------------------
62231 PROCEDURE AcctLineType_124 (
62232   p_application_id        IN NUMBER
62233  ,p_event_id              IN NUMBER
62234  ,p_calculate_acctd_flag  IN VARCHAR2
62235  ,p_calculate_g_l_flag    IN VARCHAR2
62236  ,p_actual_flag           IN OUT VARCHAR2
62240 --Invoice Distribution Description
62237  ,p_balance_type_code     OUT VARCHAR2
62238  ,p_gain_or_loss_ref      OUT VARCHAR2
62239  
62241  , p_source_1            IN VARCHAR2
62242 --Invoice Distribution Ledger Amount
62243  , p_source_9            IN NUMBER
62244 --Invoice Distribution Account
62245  , p_source_18            IN NUMBER
62246 --Invoice Distribution Type
62247  , p_source_21            IN VARCHAR2
62248  , p_source_21_meaning    IN VARCHAR2
62249 --Accounting Reversal Indicator
62250  , p_source_41            IN VARCHAR2
62251 --Distribution Link Type
62252  , p_source_43            IN VARCHAR2
62253 --Allocation to Main Distribution Identifier
62254  , p_source_45            IN NUMBER
62255 --Invoice Identifier
62256  , p_source_46            IN NUMBER
62257 --Invoice Distribution Identifier
62258  , p_source_52            IN NUMBER
62259 --Payables Encumbrance Upgrade Credit Account
62260  , p_source_53            IN NUMBER
62261 --Payables Encumbrance Upgrade Credit Amount
62262  , p_source_54            IN NUMBER
62263 --Invoice Currency Code
62264  , p_source_55            IN VARCHAR2
62265 --Payables Encumbrance Upgrade Credit Base Amount
62266  , p_source_56            IN NUMBER
62267 --Payables Encumbrance Upgrade Debit Account
62268  , p_source_57            IN NUMBER
62269 --Payables Encumbrance Upgrade Debit Amount
62270  , p_source_58            IN NUMBER
62271 --Payables Encumbrance Upgrade Debit Base Amount
62272  , p_source_59            IN NUMBER
62273 --Payables Encumbrance Upgrade Option
62274  , p_source_60            IN VARCHAR2
62275 --Invoice Distribution Amount
62276  , p_source_61            IN NUMBER
62277 --Deferred Accounting End Date
62278  , p_source_65            IN DATE
62279 --Deferred Accounting Option
62280  , p_source_66            IN VARCHAR2
62281 --Deferred Accounting Start Date
62282  , p_source_67            IN DATE
62283 --Override Accounted Amount Indicator
62284  , p_source_68            IN VARCHAR2
62285  , p_source_68_meaning    IN VARCHAR2
62286 --Invoice Supplier Identifier
62287  , p_source_69            IN NUMBER
62288 --Invoice Supplier Site Identifier
62289  , p_source_70            IN NUMBER
62290 --Third Party Type
62291  , p_source_71            IN VARCHAR2
62292 --Parent Reversal Identifier
62293  , p_source_72            IN NUMBER
62294 --Invoice Distribution Statistical Amount
62295  , p_source_73            IN NUMBER
62296 --Invoice Distribution Tax Line Identifier
62297  , p_source_74            IN NUMBER
62298 --Invoice Distribution Tax Distribution Identifier from Tax
62299  , p_source_75            IN NUMBER
62300 --Invoice Distribution Summary Tax Line Identifier
62301  , p_source_76            IN NUMBER
62302 --Payables Upgrade Credit Encumbrance Type Identifier
62303  , p_source_77            IN NUMBER
62304 --Payables Upgrade Debit Encumbrance Type Identifier
62305  , p_source_78            IN NUMBER
62306 --Business Flow Accounts Payable Application Identifier
62307  , p_source_79            IN NUMBER
62308 --Business Flow Invoice Distribution Type
62309  , p_source_80            IN VARCHAR2
62310 --Business Flow Invoice Entity Code
62311  , p_source_81            IN VARCHAR2
62312 --Business Flow Invoice Distribution Identifier
62313  , p_source_82            IN NUMBER
62314 --Business Flow Invoice Identifier
62315  , p_source_83            IN NUMBER
62316 --Invoice Exchange Date
62317  , p_source_136            IN DATE
62318 --Invoice Exchange Rate
62319  , p_source_137            IN NUMBER
62320 --Invoice Exchange Rate Type
62321  , p_source_138            IN VARCHAR2
62322 )
62323 IS
62324 
62325 l_component_type              VARCHAR2(80);
62326 l_component_code              VARCHAR2(30);
62327 l_component_type_code         VARCHAR2(1);
62328 l_component_appl_id           INTEGER;
62329 l_amb_context_code            VARCHAR2(30);
62330 l_entity_code                 VARCHAR2(30);
62331 l_event_class_code            VARCHAR2(30);
62332 l_ae_header_id                NUMBER;
62333 l_event_type_code             VARCHAR2(30);
62334 l_line_definition_code        VARCHAR2(30);
62335 l_line_definition_owner_code  VARCHAR2(1);
62336 --
62337 -- adr variables
62338 l_segment                     VARCHAR2(30);
62339 l_ccid                        NUMBER;
62340 l_adr_transaction_coa_id      NUMBER;
62341 l_adr_accounting_coa_id       NUMBER;
62342 l_adr_flexfield_segment_code  VARCHAR2(30);
62343 l_adr_flex_value_set_id       NUMBER;
62344 l_adr_value_type_code         VARCHAR2(30);
62345 l_adr_value_combination_id    NUMBER;
62346 l_adr_value_segment_code      VARCHAR2(30);
62347 
62348 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
62349 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
62350 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
62351 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
62352 
62353 -- 4262811 Variables ------------------------------------------------------------------------------------------
62354 l_entered_amt_idx             NUMBER;
62355 l_accted_amt_idx              NUMBER;
62356 l_acc_rev_flag                VARCHAR2(1);
62357 l_accrual_line_num            NUMBER;
62358 l_tmp_amt                     NUMBER;
62359 l_acc_rev_natural_side_code   VARCHAR2(1);
62360 
62361 l_num_entries                 NUMBER;
62362 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
62363 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
62364 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
62365 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
62366 l_recog_line_1                NUMBER;
62367 l_recog_line_2                NUMBER;
62368 
62372 
62369 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
62370 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
62371 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
62373 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62374 
62375 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
62376 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
62377 
62378 ---------------------------------------------------------------------------------------------------------------
62379 
62380 
62381 --
62382 -- bulk performance
62383 --
62384 l_balance_type_code           VARCHAR2(1);
62385 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
62386 l_log_module                  VARCHAR2(240);
62387 
62388 --
62389 -- Upgrade strategy
62390 --
62391 l_actual_upg_option           VARCHAR2(1);
62392 l_enc_upg_option           VARCHAR2(1);
62393 
62394 --
62395 BEGIN
62396 --
62397 IF g_log_enabled THEN
62398       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_124';
62399 END IF;
62400 --
62401 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62402 
62403       trace
62404          (p_msg      => 'BEGIN of AcctLineType_124'
62405          ,p_level    => C_LEVEL_PROCEDURE
62406          ,p_module   => l_log_module);
62407 
62408 END IF;
62409 --
62410 l_component_type             := 'AMB_JLT';
62411 l_component_code             := 'AP_FREIGHT_EXPENSE_CM';
62412 l_component_type_code        := 'S';
62413 l_component_appl_id          :=  200;
62414 l_amb_context_code           := 'DEFAULT';
62415 l_entity_code                := 'AP_INVOICES';
62416 l_event_class_code           := 'CREDIT MEMOS';
62417 l_event_type_code            := 'CREDIT MEMOS_ALL';
62418 l_line_definition_owner_code := 'S';
62419 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
62420 --
62421 l_balance_type_code          := 'A';
62422 l_segment                     := NULL;
62423 l_ccid                        := NULL;
62424 l_adr_transaction_coa_id      := NULL;
62425 l_adr_accounting_coa_id       := NULL;
62426 l_adr_flexfield_segment_code  := NULL;
62427 l_adr_flex_value_set_id       := NULL;
62428 l_adr_value_type_code         := NULL;
62429 l_adr_value_combination_id    := NULL;
62430 l_adr_value_segment_code      := NULL;
62431 
62432 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
62433 l_bflow_class_code           := '';    -- 4219869 Business Flow
62434 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
62435 l_budgetary_control_flag     := 'N';
62436 
62437 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
62438 l_bflow_applied_to_amt       := NULL; -- 5132302
62439 l_entered_amt_idx            := NULL;          -- 4262811
62440 l_accted_amt_idx             := NULL;          -- 4262811
62441 l_acc_rev_flag               := NULL;          -- 4262811
62442 l_accrual_line_num           := NULL;          -- 4262811
62443 l_tmp_amt                    := NULL;          -- 4262811
62444 --
62445  
62446 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62447     l_balance_type_code <> 'B' THEN
62448 IF NVL(p_source_21,'
62449 ') =  'FREIGHT'
62450  THEN 
62451 
62452    --
62453    XLA_AE_LINES_PKG.SetNewLine;
62454 
62455    p_balance_type_code          := l_balance_type_code;
62456    -- set the flag so later we will know whether the gain loss line needs to be created
62457    
62458    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62459      p_actual_flag :='A';
62460    END IF;
62461 
62462    --
62463    -- bulk performance
62464    --
62465    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62466                                       p_header_num   => 0); -- 4262811
62467    --
62468    -- set accounting line options
62469    --
62470    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62471            p_natural_side_code          => 'D'
62472          , p_gain_or_loss_flag          => 'N'
62473          , p_gl_transfer_mode_code      => 'S'
62474          , p_acct_entry_type_code       => 'A'
62475          , p_switch_side_flag           => 'Y'
62476          , p_merge_duplicate_code       => 'A'
62477          );
62478    --
62479    l_acc_rev_natural_side_code := 'C';  -- 4262811
62480    -- 
62481    --
62482    -- set accounting line type info
62483    --
62484    xla_ae_lines_pkg.SetAcctLineType
62485       (p_component_type             => l_component_type
62486       ,p_event_type_code            => l_event_type_code
62487       ,p_line_definition_owner_code => l_line_definition_owner_code
62488       ,p_line_definition_code       => l_line_definition_code
62489       ,p_accounting_line_code       => l_component_code
62490       ,p_accounting_line_type_code  => l_component_type_code
62491       ,p_accounting_line_appl_id    => l_component_appl_id
62492       ,p_amb_context_code           => l_amb_context_code
62493       ,p_entity_code                => l_entity_code
62494       ,p_event_class_code           => l_event_class_code);
62495    --
62496    -- set accounting class
62497    --
62498    xla_ae_lines_pkg.SetAcctClass(
62499            p_accounting_class_code  => 'FREIGHT'
62500          , p_ae_header_id           => l_ae_header_id
62501          );
62502 
62503    --
62504    -- set rounding class
62505    --
62506    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62507                       'FREIGHT';
62508 
62509    --
62513    -- bulk performance
62510    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62511    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62512    --
62514    --
62515    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62516 
62517    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62518       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62519 
62520    -- 4955764
62521    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62522       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62523 
62524    -- 4458381 Public Sector Enh
62525    
62526    --
62527    -- set accounting attributes for the line type
62528    --
62529    l_entered_amt_idx := 23;
62530    l_accted_amt_idx  := 28;
62531    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
62532    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62533    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
62534    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
62535    l_rec_acct_attrs.array_num_value(2)  := 
62536 xla_ae_sources_pkg.GetSystemSourceNum(
62537    p_source_code           => 'XLA_EVENT_APPL_ID'
62538  , p_source_type_code      => 'Y'
62539  , p_source_application_id =>  602
62540 );
62541    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
62542    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
62543    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
62544    l_rec_acct_attrs.array_char_value(4)  := 
62545 xla_ae_sources_pkg.GetSystemSourceChar(
62546    p_source_code           => 'XLA_ENTITY_CODE'
62547  , p_source_type_code      => 'Y'
62548  , p_source_application_id =>  602
62549 );
62550    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
62551    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
62552    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
62553    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
62554    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
62555    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
62556    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62557    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
62558    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
62559    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
62560    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
62561    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
62562    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62563    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
62564    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
62565    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
62566    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
62567    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
62568    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
62569    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
62570    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
62571    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
62572    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
62573    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
62574    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
62575    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
62576    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
62577    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
62578    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
62579    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
62580    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
62581    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
62582    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
62583    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
62584    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
62585    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
62586    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
62587    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
62588    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
62589    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
62590    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
62591    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
62592    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
62593    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
62594    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
62595    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
62596    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
62597    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
62598    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
62599    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
62600    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
62601    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
62602    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
62603    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
62604    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
62605    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
62609    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
62606    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
62607    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
62608    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
62610    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
62611    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
62612    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
62613    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
62614    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
62615    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
62616    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
62617    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
62618    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
62619    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
62620    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
62621    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
62622    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
62623    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
62624    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
62625    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
62626    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
62627    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
62628 
62629    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
62630    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
62631 
62632    ---------------------------------------------------------------------------------------------------------------
62633    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
62634    ---------------------------------------------------------------------------------------------------------------
62635    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
62636 
62637    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62638    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62639 
62640    IF xla_accounting_cache_pkg.GetValueChar
62641          (p_source_code         => 'LEDGER_CATEGORY_CODE'
62642          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
62643    AND l_bflow_method_code = 'PRIOR_ENTRY'
62644 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
62645    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
62646          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
62647        )
62648    THEN
62649          xla_ae_lines_pkg.BflowUpgEntry
62650            (p_business_method_code    => l_bflow_method_code
62651            ,p_business_class_code     => l_bflow_class_code
62652            ,p_balance_type            => l_balance_type_code);
62653    ELSE
62654       NULL;
62655 -- No business flow processing for business flow method of NONE.
62656    END IF;
62657 
62658    --
62659    -- call analytical criteria
62660    --
62661    
62662    --
62663    -- call description
62664    --
62665    
62666 xla_ae_lines_pkg.SetLineDescription(
62667    p_ae_header_id => l_ae_header_id
62668   ,p_description  => Description_2 (
62669      p_application_id         => p_application_id
62670    , p_ae_header_id           => l_ae_header_id 
62671 , p_source_1 => p_source_1
62672    )
62673 );
62674 
62675 
62676    --
62677    -- call ADRs
62678    -- Bug 4922099
62679    --
62680    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62681         (NVL(l_actual_upg_option, 'N') = 'O') OR
62682         (NVL(l_enc_upg_option, 'N') = 'O')
62683       )
62684    THEN
62685    NULL;
62686    --
62687    --
62688    
62689   l_ccid := AcctDerRule_32(
62690            p_application_id           => p_application_id
62691          , p_ae_header_id             => l_ae_header_id 
62692 , p_source_18 => p_source_18
62693          , x_transaction_coa_id       => l_adr_transaction_coa_id
62694          , x_accounting_coa_id        => l_adr_accounting_coa_id
62695          , x_value_type_code          => l_adr_value_type_code
62696          , p_side                     => 'NA'
62697    );
62698 
62699    xla_ae_lines_pkg.set_ccid(
62700     p_code_combination_id          => l_ccid
62701   , p_value_type_code              => l_adr_value_type_code
62702   , p_transaction_coa_id           => l_adr_transaction_coa_id
62703   , p_accounting_coa_id            => l_adr_accounting_coa_id
62704   , p_adr_code                     => 'AP_INVOICE_DIST'
62705   , p_adr_type_code                => 'S'
62706   , p_component_type               => l_component_type
62707   , p_component_code               => l_component_code
62708   , p_component_type_code          => l_component_type_code
62709   , p_component_appl_id            => l_component_appl_id
62710   , p_amb_context_code             => l_amb_context_code
62711   , p_side                         => 'NA'
62712   );
62713 
62714 
62715    --
62716    --
62717    END IF;
62718    --
62719    -- Bug 4922099
62720    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62721           (NVL(l_enc_upg_option, 'N') = 'O')
62722         ) AND
62723         (l_bflow_method_code = 'PRIOR_ENTRY')
62724       )
62725    THEN
62726       IF
62727       --
62728       1 = 2
62729       --
62730       THEN
62734                                     ,p_token_1                 => 'LINE_NUMBER'
62731       xla_accounting_err_pkg.build_message
62732                                     (p_appli_s_name            => 'XLA'
62733                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62735                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
62736                                     ,p_token_2                 => 'LINE_TYPE_NAME'
62737                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
62738                                                                              l_component_type
62739                                                                             ,l_component_code
62740                                                                             ,l_component_type_code
62741                                                                             ,l_component_appl_id
62742                                                                             ,l_amb_context_code
62743                                                                             ,l_entity_code
62744                                                                             ,l_event_class_code
62745                                                                            )
62746                                     ,p_token_3                 => 'OWNER'
62747                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
62748                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
62749                                                                           ,p_lookup_code    => l_component_type_code
62750                                                                          )
62751                                     ,p_token_4                 => 'PRODUCT_NAME'
62752                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62753                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62754                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62755                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62756                                     ,p_ae_header_id            =>  NULL
62757                                        );
62758 
62759         IF (C_LEVEL_ERROR>= g_log_level) THEN
62760                  trace
62761                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62762                       ,p_level    => C_LEVEL_ERROR
62763                       ,p_module   => l_log_module);
62764         END IF;
62765       END IF;
62766    END IF;
62767    --
62768    --
62769    ------------------------------------------------------------------------------------------------
62770    -- 4219869 Business Flow
62771    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62772    -- Prior Entry.  Currently, the following code is always generated.
62773    ------------------------------------------------------------------------------------------------
62774    XLA_AE_LINES_PKG.ValidateCurrentLine;
62775 
62776    ------------------------------------------------------------------------------------
62777    -- 4219869 Business Flow
62778    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62779    ------------------------------------------------------------------------------------
62780    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62781 
62782    ----------------------------------------------------------------------------------
62783    -- 4219869 Business Flow
62784    -- Update journal entry status -- Need to generate this within IF <condition>
62785    ----------------------------------------------------------------------------------
62786    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62787          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62788          ,p_balance_type_code => l_balance_type_code
62789          );
62790 
62791    -------------------------------------------------------------------------------------------
62792    -- 4262811 - Generate the Accrual Reversal lines
62793    -------------------------------------------------------------------------------------------
62794    BEGIN
62795       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62796                               (g_array_event(p_event_id).array_value_num('header_index'));
62797       IF l_acc_rev_flag IS NULL THEN
62798          l_acc_rev_flag := 'N';
62799       END IF;
62800    EXCEPTION
62801       WHEN OTHERS THEN
62802          l_acc_rev_flag := 'N';
62803    END;
62804    --
62805    IF (l_acc_rev_flag = 'Y') THEN
62806 
62807        -- 4645092  ------------------------------------------------------------------------------
62808        -- To allow MPA report to determine if it should generate report process
62809        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62810        ------------------------------------------------------------------------------------------
62811 
62812        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62813        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62814    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
62815    -- call ADRs
62816    -- Bug 4922099
62817    --
62818    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62819         (NVL(l_actual_upg_option, 'N') = 'O') OR
62820         (NVL(l_enc_upg_option, 'N') = 'O')
62821       )
62822    THEN
62823    NULL;
62824    --
62825    --
62826    
62827   l_ccid := AcctDerRule_32(
62831          , x_transaction_coa_id       => l_adr_transaction_coa_id
62828            p_application_id           => p_application_id
62829          , p_ae_header_id             => l_ae_header_id 
62830 , p_source_18 => p_source_18
62832          , x_accounting_coa_id        => l_adr_accounting_coa_id
62833          , x_value_type_code          => l_adr_value_type_code
62834          , p_side                     => 'NA'
62835    );
62836 
62837    xla_ae_lines_pkg.set_ccid(
62838     p_code_combination_id          => l_ccid
62839   , p_value_type_code              => l_adr_value_type_code
62840   , p_transaction_coa_id           => l_adr_transaction_coa_id
62841   , p_accounting_coa_id            => l_adr_accounting_coa_id
62842   , p_adr_code                     => 'AP_INVOICE_DIST'
62843   , p_adr_type_code                => 'S'
62844   , p_component_type               => l_component_type
62845   , p_component_code               => l_component_code
62846   , p_component_type_code          => l_component_type_code
62847   , p_component_appl_id            => l_component_appl_id
62848   , p_amb_context_code             => l_amb_context_code
62849   , p_side                         => 'NA'
62850   );
62851 
62852 
62853    --
62854    --
62855    END IF;
62856 
62857        --
62858        -- Update the line information that should be overwritten
62859        --
62860        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
62861                                          p_header_num   => 1);
62862        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
62863 
62864        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
62865 
62866        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
62867           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
62868        END IF;
62869 
62870       --
62871       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
62872       --
62873       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
62874           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
62875       ELSE
62876           ---------------------------------------------------------------------------------------------------
62877           -- 4262811a Switch Sign
62878           ---------------------------------------------------------------------------------------------------
62879           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
62880           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62881                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62882           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62883                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62884           -- 5132302
62885           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
62886                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62887 
62888       END IF;
62889 
62890       -- 4955764
62891       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62892       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
62893 
62894 
62895       XLA_AE_LINES_PKG.ValidateCurrentLine;
62896       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62897 
62898       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62899                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
62900                ,p_balance_type_code => l_balance_type_code);
62901 
62902    END IF;
62903 
62904    -----------------------------------------------------------------------------------------
62905    -- 4262811 Multiperiod Accounting
62906    -----------------------------------------------------------------------------------------
62907      -- No MPA option is assigned.
62908 
62909 
62910 END IF;
62911 END IF;
62912 --
62913 
62914 --
62915 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62916    trace
62917       (p_msg      => 'END of AcctLineType_124'
62918       ,p_level    => C_LEVEL_PROCEDURE
62919       ,p_module   => l_log_module);
62920 END IF;
62921 --
62922 EXCEPTION
62923   WHEN xla_exceptions_pkg.application_exception THEN
62924       RAISE;
62925   WHEN OTHERS THEN
62926        xla_exceptions_pkg.raise_message
62927            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_124');
62928 END AcctLineType_124;
62929 --
62930 
62931 ---------------------------------------
62932 --
62933 -- PRIVATE FUNCTION
62934 --         AcctLineType_125
62935 --
62936 ---------------------------------------
62937 PROCEDURE AcctLineType_125 (
62938   p_application_id        IN NUMBER
62939  ,p_event_id              IN NUMBER
62940  ,p_calculate_acctd_flag  IN VARCHAR2
62941  ,p_calculate_g_l_flag    IN VARCHAR2
62942  ,p_actual_flag           IN OUT VARCHAR2
62943  ,p_balance_type_code     OUT VARCHAR2
62944  ,p_gain_or_loss_ref      OUT VARCHAR2
62945  
62946 --Invoice Distribution Type
62947  , p_source_21            IN VARCHAR2
62948  , p_source_21_meaning    IN VARCHAR2
62949 --Accounting Reversal Indicator
62950  , p_source_41            IN VARCHAR2
62951 --Distribution Link Type
62952  , p_source_43            IN VARCHAR2
62953 --Allocation to Main Distribution Identifier
62954  , p_source_45            IN NUMBER
62958  , p_source_52            IN NUMBER
62955 --Invoice Identifier
62956  , p_source_46            IN NUMBER
62957 --Invoice Distribution Identifier
62959 --Payables Encumbrance Upgrade Credit Account
62960  , p_source_53            IN NUMBER
62961 --Payables Encumbrance Upgrade Credit Amount
62962  , p_source_54            IN NUMBER
62963 --Invoice Currency Code
62964  , p_source_55            IN VARCHAR2
62965 --Payables Encumbrance Upgrade Credit Base Amount
62966  , p_source_56            IN NUMBER
62967 --Payables Encumbrance Upgrade Debit Account
62968  , p_source_57            IN NUMBER
62969 --Payables Encumbrance Upgrade Debit Amount
62970  , p_source_58            IN NUMBER
62971 --Payables Encumbrance Upgrade Debit Base Amount
62972  , p_source_59            IN NUMBER
62973 --Payables Encumbrance Upgrade Option
62974  , p_source_60            IN VARCHAR2
62975 --Deferred Accounting End Date
62976  , p_source_65            IN DATE
62977 --Deferred Accounting Option
62978  , p_source_66            IN VARCHAR2
62979 --Deferred Accounting Start Date
62980  , p_source_67            IN DATE
62981 --Override Accounted Amount Indicator
62982  , p_source_68            IN VARCHAR2
62983  , p_source_68_meaning    IN VARCHAR2
62984 --Third Party Type
62985  , p_source_71            IN VARCHAR2
62986 --Parent Reversal Identifier
62987  , p_source_72            IN NUMBER
62988 --Invoice Distribution Statistical Amount
62989  , p_source_73            IN NUMBER
62990 --Invoice Distribution Tax Line Identifier
62991  , p_source_74            IN NUMBER
62992 --Invoice Distribution Tax Distribution Identifier from Tax
62993  , p_source_75            IN NUMBER
62994 --Invoice Distribution Summary Tax Line Identifier
62995  , p_source_76            IN NUMBER
62996 --Payables Upgrade Credit Encumbrance Type Identifier
62997  , p_source_77            IN NUMBER
62998 --Payables Upgrade Debit Encumbrance Type Identifier
62999  , p_source_78            IN NUMBER
63000 --Business Flow Accounts Payable Application Identifier
63001  , p_source_79            IN NUMBER
63002 --Business Flow Invoice Distribution Type
63003  , p_source_80            IN VARCHAR2
63004 --Business Flow Invoice Entity Code
63005  , p_source_81            IN VARCHAR2
63006 --Business Flow Invoice Distribution Identifier
63007  , p_source_82            IN NUMBER
63008 --Business Flow Invoice Identifier
63009  , p_source_83            IN NUMBER
63010 --Purchasing Encumbrance Option
63011  , p_source_86            IN VARCHAR2
63012  , p_source_86_meaning    IN VARCHAR2
63013 --Invoice Encumbered Option
63014  , p_source_87            IN VARCHAR2
63015  , p_source_87_meaning    IN VARCHAR2
63016 --Invoice Distribution Encumbrance Amount
63017  , p_source_143            IN NUMBER
63018 --Invoice Distribution Encumbrance Ledger Amount
63019  , p_source_144            IN NUMBER
63020 )
63021 IS
63022 
63023 l_component_type              VARCHAR2(80);
63024 l_component_code              VARCHAR2(30);
63025 l_component_type_code         VARCHAR2(1);
63026 l_component_appl_id           INTEGER;
63027 l_amb_context_code            VARCHAR2(30);
63028 l_entity_code                 VARCHAR2(30);
63029 l_event_class_code            VARCHAR2(30);
63030 l_ae_header_id                NUMBER;
63031 l_event_type_code             VARCHAR2(30);
63032 l_line_definition_code        VARCHAR2(30);
63033 l_line_definition_owner_code  VARCHAR2(1);
63034 --
63035 -- adr variables
63036 l_segment                     VARCHAR2(30);
63037 l_ccid                        NUMBER;
63038 l_adr_transaction_coa_id      NUMBER;
63039 l_adr_accounting_coa_id       NUMBER;
63040 l_adr_flexfield_segment_code  VARCHAR2(30);
63041 l_adr_flex_value_set_id       NUMBER;
63042 l_adr_value_type_code         VARCHAR2(30);
63043 l_adr_value_combination_id    NUMBER;
63044 l_adr_value_segment_code      VARCHAR2(30);
63045 
63046 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
63047 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
63048 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
63049 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
63050 
63051 -- 4262811 Variables ------------------------------------------------------------------------------------------
63052 l_entered_amt_idx             NUMBER;
63053 l_accted_amt_idx              NUMBER;
63054 l_acc_rev_flag                VARCHAR2(1);
63055 l_accrual_line_num            NUMBER;
63056 l_tmp_amt                     NUMBER;
63057 l_acc_rev_natural_side_code   VARCHAR2(1);
63058 
63059 l_num_entries                 NUMBER;
63060 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
63061 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
63062 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
63063 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
63064 l_recog_line_1                NUMBER;
63065 l_recog_line_2                NUMBER;
63066 
63067 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
63068 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
63069 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
63070 
63071 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
63072 
63073 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
63074 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
63075 
63076 ---------------------------------------------------------------------------------------------------------------
63077 
63078 
63079 --
63080 -- bulk performance
63081 --
63082 l_balance_type_code           VARCHAR2(1);
63086 --
63083 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
63084 l_log_module                  VARCHAR2(240);
63085 
63087 -- Upgrade strategy
63088 --
63089 l_actual_upg_option           VARCHAR2(1);
63090 l_enc_upg_option           VARCHAR2(1);
63091 
63092 --
63093 BEGIN
63094 --
63095 IF g_log_enabled THEN
63096       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_125';
63097 END IF;
63098 --
63099 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63100 
63101       trace
63102          (p_msg      => 'BEGIN of AcctLineType_125'
63103          ,p_level    => C_LEVEL_PROCEDURE
63104          ,p_module   => l_log_module);
63105 
63106 END IF;
63107 --
63108 l_component_type             := 'AMB_JLT';
63109 l_component_code             := 'AP_FREIGHT_EXPENSE_CM_ENC';
63110 l_component_type_code        := 'S';
63111 l_component_appl_id          :=  200;
63112 l_amb_context_code           := 'DEFAULT';
63113 l_entity_code                := 'AP_INVOICES';
63114 l_event_class_code           := 'CREDIT MEMOS';
63115 l_event_type_code            := 'CREDIT MEMOS_ALL';
63116 l_line_definition_owner_code := 'S';
63117 l_line_definition_code       := 'ENC_REV_CM_ALL';
63118 --
63119 l_balance_type_code          := 'E';
63120 l_segment                     := NULL;
63121 l_ccid                        := NULL;
63122 l_adr_transaction_coa_id      := NULL;
63123 l_adr_accounting_coa_id       := NULL;
63124 l_adr_flexfield_segment_code  := NULL;
63125 l_adr_flex_value_set_id       := NULL;
63126 l_adr_value_type_code         := NULL;
63127 l_adr_value_combination_id    := NULL;
63128 l_adr_value_segment_code      := NULL;
63129 
63130 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
63131 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
63132 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
63133 l_budgetary_control_flag     := 'N';
63134 
63135 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
63136 l_bflow_applied_to_amt       := NULL; -- 5132302
63137 l_entered_amt_idx            := NULL;          -- 4262811
63138 l_accted_amt_idx             := NULL;          -- 4262811
63139 l_acc_rev_flag               := NULL;          -- 4262811
63140 l_accrual_line_num           := NULL;          -- 4262811
63141 l_tmp_amt                    := NULL;          -- 4262811
63142 --
63143  
63144 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
63145     l_balance_type_code <> 'B' THEN
63146 IF NVL(p_source_21,'
63147 ') =  'FREIGHT' AND 
63148 NVL(p_source_86,'
63149 ') =  'Y' AND 
63150 NVL(p_source_87,'
63151 ') =  'Y'
63152  THEN 
63153 
63154    --
63155    XLA_AE_LINES_PKG.SetNewLine;
63156 
63157    p_balance_type_code          := l_balance_type_code;
63158    -- set the flag so later we will know whether the gain loss line needs to be created
63159    
63160    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
63161      p_actual_flag :='A';
63162    END IF;
63163 
63164    --
63165    -- bulk performance
63166    --
63167    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
63168                                       p_header_num   => 0); -- 4262811
63169    --
63170    -- set accounting line options
63171    --
63172    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
63173            p_natural_side_code          => 'C'
63174          , p_gain_or_loss_flag          => 'N'
63175          , p_gl_transfer_mode_code      => 'S'
63176          , p_acct_entry_type_code       => 'E'
63177          , p_switch_side_flag           => 'Y'
63178          , p_merge_duplicate_code       => 'A'
63179          );
63180    --
63181    l_acc_rev_natural_side_code := 'D';  -- 4262811
63182    -- 
63183    --
63184    -- set accounting line type info
63185    --
63186    xla_ae_lines_pkg.SetAcctLineType
63187       (p_component_type             => l_component_type
63188       ,p_event_type_code            => l_event_type_code
63189       ,p_line_definition_owner_code => l_line_definition_owner_code
63190       ,p_line_definition_code       => l_line_definition_code
63191       ,p_accounting_line_code       => l_component_code
63192       ,p_accounting_line_type_code  => l_component_type_code
63193       ,p_accounting_line_appl_id    => l_component_appl_id
63194       ,p_amb_context_code           => l_amb_context_code
63195       ,p_entity_code                => l_entity_code
63196       ,p_event_class_code           => l_event_class_code);
63197    --
63198    -- set accounting class
63199    --
63200    xla_ae_lines_pkg.SetAcctClass(
63201            p_accounting_class_code  => 'FREIGHT'
63202          , p_ae_header_id           => l_ae_header_id
63203          );
63204 
63205    --
63206    -- set rounding class
63207    --
63208    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63209                       'FREIGHT';
63210 
63211    --
63212    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63213    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63214    --
63215    -- bulk performance
63216    --
63217    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63218 
63219    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63220       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63221 
63222    -- 4955764
63226    -- 4458381 Public Sector Enh
63223    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63224       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63225 
63227    
63228    --
63229    -- set accounting attributes for the line type
63230    --
63231    l_entered_amt_idx := 23;
63232    l_accted_amt_idx  := 25;
63233    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
63234    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
63235    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
63236    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
63237    l_rec_acct_attrs.array_num_value(2)  := 
63238 xla_ae_sources_pkg.GetSystemSourceNum(
63239    p_source_code           => 'XLA_EVENT_APPL_ID'
63240  , p_source_type_code      => 'Y'
63241  , p_source_application_id =>  602
63242 );
63243    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
63244    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
63245    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
63246    l_rec_acct_attrs.array_char_value(4)  := 
63247 xla_ae_sources_pkg.GetSystemSourceChar(
63248    p_source_code           => 'XLA_ENTITY_CODE'
63249  , p_source_type_code      => 'Y'
63250  , p_source_application_id =>  602
63251 );
63252    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
63253    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
63254    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
63255    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
63256    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
63257    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
63258    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63259    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
63260    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
63261    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
63262    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
63263    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
63264    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63265    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
63266    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
63267    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
63268    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
63269    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
63270    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
63271    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
63272    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
63273    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
63274    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
63275    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
63276    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
63277    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
63278    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
63279    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
63280    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
63281    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
63282    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
63283    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
63284    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
63285    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
63286    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
63287    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
63288    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
63289    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
63290    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
63291    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
63292    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
63293    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
63294    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
63295    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
63296    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
63297    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
63298    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
63299    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
63300    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
63301    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
63302    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
63303    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
63304    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
63305    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
63306    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
63307    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
63308    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
63309    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
63310    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
63311    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
63312    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
63313    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
63314    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
63315    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
63316    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
63317    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
63318    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
63322    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63319    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
63320 
63321    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63323 
63324    ---------------------------------------------------------------------------------------------------------------
63325    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63326    ---------------------------------------------------------------------------------------------------------------
63327    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63328 
63329    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63330    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63331 
63332    IF xla_accounting_cache_pkg.GetValueChar
63333          (p_source_code         => 'LEDGER_CATEGORY_CODE'
63334          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63335    AND l_bflow_method_code = 'PRIOR_ENTRY'
63336 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63337    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63338          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63339        )
63340    THEN
63341          xla_ae_lines_pkg.BflowUpgEntry
63342            (p_business_method_code    => l_bflow_method_code
63343            ,p_business_class_code     => l_bflow_class_code
63344            ,p_balance_type            => l_balance_type_code);
63345    ELSE
63346       NULL;
63347 XLA_AE_LINES_PKG.business_flow_validation(
63348                                 p_business_method_code     => l_bflow_method_code
63349                                ,p_business_class_code      => l_bflow_class_code
63350                                ,p_inherit_description_flag => l_inherit_desc_flag);
63351    END IF;
63352 
63353    --
63354    -- call analytical criteria
63355    --
63356    -- Inherited Analytical Criteria for business flow method of Prior Entry.
63357    --
63358    -- call description
63359    --
63360    -- No description or it is inherited.
63361    --
63362    -- call ADRs
63363    -- Bug 4922099
63364    --
63365    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63366         (NVL(l_actual_upg_option, 'N') = 'O') OR
63367         (NVL(l_enc_upg_option, 'N') = 'O')
63368       )
63369    THEN
63370    NULL;
63371    --
63372    --
63373    
63374    --
63375    --
63376    END IF;
63377    --
63378    -- Bug 4922099
63379    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63380           (NVL(l_enc_upg_option, 'N') = 'O')
63381         ) AND
63382         (l_bflow_method_code = 'PRIOR_ENTRY')
63383       )
63384    THEN
63385       IF
63386       --
63387       1 = 1
63388       --
63389       THEN
63390       xla_accounting_err_pkg.build_message
63391                                     (p_appli_s_name            => 'XLA'
63392                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63393                                     ,p_token_1                 => 'LINE_NUMBER'
63394                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
63395                                     ,p_token_2                 => 'LINE_TYPE_NAME'
63396                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
63397                                                                              l_component_type
63398                                                                             ,l_component_code
63399                                                                             ,l_component_type_code
63400                                                                             ,l_component_appl_id
63401                                                                             ,l_amb_context_code
63402                                                                             ,l_entity_code
63403                                                                             ,l_event_class_code
63404                                                                            )
63405                                     ,p_token_3                 => 'OWNER'
63406                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
63407                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
63408                                                                           ,p_lookup_code    => l_component_type_code
63409                                                                          )
63410                                     ,p_token_4                 => 'PRODUCT_NAME'
63411                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63412                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63413                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63414                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63415                                     ,p_ae_header_id            =>  NULL
63416                                        );
63417 
63418         IF (C_LEVEL_ERROR>= g_log_level) THEN
63419                  trace
63420                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63421                       ,p_level    => C_LEVEL_ERROR
63422                       ,p_module   => l_log_module);
63423         END IF;
63427    --
63424       END IF;
63425    END IF;
63426    --
63428    ------------------------------------------------------------------------------------------------
63429    -- 4219869 Business Flow
63430    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63431    -- Prior Entry.  Currently, the following code is always generated.
63432    ------------------------------------------------------------------------------------------------
63433    -- No ValidateCurrentLine for business flow method of Prior Entry
63434 
63435    ------------------------------------------------------------------------------------
63436    -- 4219869 Business Flow
63437    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63438    ------------------------------------------------------------------------------------
63439    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63440 
63441    ----------------------------------------------------------------------------------
63442    -- 4219869 Business Flow
63443    -- Update journal entry status -- Need to generate this within IF <condition>
63444    ----------------------------------------------------------------------------------
63445    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63446          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63447          ,p_balance_type_code => l_balance_type_code
63448          );
63449 
63450    -------------------------------------------------------------------------------------------
63451    -- 4262811 - Generate the Accrual Reversal lines
63452    -------------------------------------------------------------------------------------------
63453    BEGIN
63454       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
63455                               (g_array_event(p_event_id).array_value_num('header_index'));
63456       IF l_acc_rev_flag IS NULL THEN
63457          l_acc_rev_flag := 'N';
63458       END IF;
63459    EXCEPTION
63460       WHEN OTHERS THEN
63461          l_acc_rev_flag := 'N';
63462    END;
63463    --
63464    IF (l_acc_rev_flag = 'Y') THEN
63465 
63466        -- 4645092  ------------------------------------------------------------------------------
63467        -- To allow MPA report to determine if it should generate report process
63468        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63469        ------------------------------------------------------------------------------------------
63470 
63471        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63472        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63473    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
63474    -- call ADRs
63475    -- Bug 4922099
63476    --
63477    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63478         (NVL(l_actual_upg_option, 'N') = 'O') OR
63479         (NVL(l_enc_upg_option, 'N') = 'O')
63480       )
63481    THEN
63482    NULL;
63483    --
63484    --
63485    
63486    --
63487    --
63488    END IF;
63489 
63490        --
63491        -- Update the line information that should be overwritten
63492        --
63493        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63494                                          p_header_num   => 1);
63495        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
63496 
63497        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63498 
63499        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
63500           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63501        END IF;
63502 
63503       --
63504       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63505       --
63506       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63507           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
63508       ELSE
63509           ---------------------------------------------------------------------------------------------------
63510           -- 4262811a Switch Sign
63511           ---------------------------------------------------------------------------------------------------
63512           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
63513           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63514                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63515           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63516                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63517           -- 5132302
63518           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63519                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63520 
63521       END IF;
63522 
63523       -- 4955764
63524       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63525       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63526 
63527 
63528       XLA_AE_LINES_PKG.ValidateCurrentLine;
63529       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63530 
63531       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63532                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63536 
63533                ,p_balance_type_code => l_balance_type_code);
63534 
63535    END IF;
63537    -----------------------------------------------------------------------------------------
63538    -- 4262811 Multiperiod Accounting
63539    -----------------------------------------------------------------------------------------
63540      -- No MPA option is assigned.
63541 
63542 
63543 END IF;
63544 END IF;
63545 --
63546 
63547 --
63548 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63549    trace
63550       (p_msg      => 'END of AcctLineType_125'
63551       ,p_level    => C_LEVEL_PROCEDURE
63552       ,p_module   => l_log_module);
63553 END IF;
63554 --
63555 EXCEPTION
63556   WHEN xla_exceptions_pkg.application_exception THEN
63557       RAISE;
63558   WHEN OTHERS THEN
63559        xla_exceptions_pkg.raise_message
63560            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_125');
63561 END AcctLineType_125;
63562 --
63563 
63564 ---------------------------------------
63565 --
63566 -- PRIVATE FUNCTION
63567 --         AcctLineType_126
63568 --
63569 ---------------------------------------
63570 PROCEDURE AcctLineType_126 (
63571   p_application_id        IN NUMBER
63572  ,p_event_id              IN NUMBER
63573  ,p_calculate_acctd_flag  IN VARCHAR2
63574  ,p_calculate_g_l_flag    IN VARCHAR2
63575  ,p_actual_flag           IN OUT VARCHAR2
63576  ,p_balance_type_code     OUT VARCHAR2
63577  ,p_gain_or_loss_ref      OUT VARCHAR2
63578  
63579 --Invoice Distribution Description
63580  , p_source_1            IN VARCHAR2
63581 --Invoice Distribution Ledger Amount
63582  , p_source_9            IN NUMBER
63583 --Invoice Distribution Account
63584  , p_source_18            IN NUMBER
63585 --Invoice Distribution Type
63586  , p_source_21            IN VARCHAR2
63587  , p_source_21_meaning    IN VARCHAR2
63588 --Accounting Reversal Indicator
63589  , p_source_41            IN VARCHAR2
63590 --Distribution Link Type
63591  , p_source_43            IN VARCHAR2
63592 --Allocation to Main Distribution Identifier
63593  , p_source_45            IN NUMBER
63594 --Invoice Identifier
63595  , p_source_46            IN NUMBER
63596 --Invoice Distribution Identifier
63597  , p_source_52            IN NUMBER
63598 --Payables Encumbrance Upgrade Credit Account
63599  , p_source_53            IN NUMBER
63600 --Payables Encumbrance Upgrade Credit Amount
63601  , p_source_54            IN NUMBER
63602 --Invoice Currency Code
63603  , p_source_55            IN VARCHAR2
63604 --Payables Encumbrance Upgrade Credit Base Amount
63605  , p_source_56            IN NUMBER
63606 --Payables Encumbrance Upgrade Debit Account
63607  , p_source_57            IN NUMBER
63608 --Payables Encumbrance Upgrade Debit Amount
63609  , p_source_58            IN NUMBER
63610 --Payables Encumbrance Upgrade Debit Base Amount
63611  , p_source_59            IN NUMBER
63612 --Payables Encumbrance Upgrade Option
63613  , p_source_60            IN VARCHAR2
63614 --Invoice Distribution Amount
63615  , p_source_61            IN NUMBER
63616 --Deferred Accounting End Date
63617  , p_source_65            IN DATE
63618 --Deferred Accounting Option
63619  , p_source_66            IN VARCHAR2
63620 --Deferred Accounting Start Date
63621  , p_source_67            IN DATE
63622 --Override Accounted Amount Indicator
63623  , p_source_68            IN VARCHAR2
63624  , p_source_68_meaning    IN VARCHAR2
63625 --Invoice Supplier Identifier
63626  , p_source_69            IN NUMBER
63627 --Invoice Supplier Site Identifier
63628  , p_source_70            IN NUMBER
63629 --Third Party Type
63630  , p_source_71            IN VARCHAR2
63631 --Parent Reversal Identifier
63632  , p_source_72            IN NUMBER
63633 --Invoice Distribution Tax Line Identifier
63634  , p_source_74            IN NUMBER
63635 --Invoice Distribution Tax Distribution Identifier from Tax
63636  , p_source_75            IN NUMBER
63637 --Invoice Distribution Summary Tax Line Identifier
63638  , p_source_76            IN NUMBER
63639 --Payables Upgrade Credit Encumbrance Type Identifier
63640  , p_source_77            IN NUMBER
63641 --Payables Upgrade Debit Encumbrance Type Identifier
63642  , p_source_78            IN NUMBER
63643 --Business Flow Accounts Payable Application Identifier
63644  , p_source_79            IN NUMBER
63645 --Business Flow Invoice Distribution Type
63646  , p_source_80            IN VARCHAR2
63647 --Business Flow Invoice Entity Code
63648  , p_source_81            IN VARCHAR2
63649 --Business Flow Invoice Distribution Identifier
63650  , p_source_82            IN NUMBER
63651 --Business Flow Invoice Identifier
63652  , p_source_83            IN NUMBER
63653 --Invoice Exchange Date
63654  , p_source_136            IN DATE
63655 --Invoice Exchange Rate
63656  , p_source_137            IN NUMBER
63657 --Invoice Exchange Rate Type
63658  , p_source_138            IN VARCHAR2
63659 )
63660 IS
63661 
63662 l_component_type              VARCHAR2(80);
63663 l_component_code              VARCHAR2(30);
63664 l_component_type_code         VARCHAR2(1);
63665 l_component_appl_id           INTEGER;
63666 l_amb_context_code            VARCHAR2(30);
63667 l_entity_code                 VARCHAR2(30);
63668 l_event_class_code            VARCHAR2(30);
63669 l_ae_header_id                NUMBER;
63670 l_event_type_code             VARCHAR2(30);
63671 l_line_definition_code        VARCHAR2(30);
63672 l_line_definition_owner_code  VARCHAR2(1);
63673 --
63674 -- adr variables
63675 l_segment                     VARCHAR2(30);
63676 l_ccid                        NUMBER;
63677 l_adr_transaction_coa_id      NUMBER;
63681 l_adr_value_type_code         VARCHAR2(30);
63678 l_adr_accounting_coa_id       NUMBER;
63679 l_adr_flexfield_segment_code  VARCHAR2(30);
63680 l_adr_flex_value_set_id       NUMBER;
63682 l_adr_value_combination_id    NUMBER;
63683 l_adr_value_segment_code      VARCHAR2(30);
63684 
63685 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
63686 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
63687 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
63688 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
63689 
63690 -- 4262811 Variables ------------------------------------------------------------------------------------------
63691 l_entered_amt_idx             NUMBER;
63692 l_accted_amt_idx              NUMBER;
63693 l_acc_rev_flag                VARCHAR2(1);
63694 l_accrual_line_num            NUMBER;
63695 l_tmp_amt                     NUMBER;
63696 l_acc_rev_natural_side_code   VARCHAR2(1);
63697 
63698 l_num_entries                 NUMBER;
63699 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
63700 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
63701 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
63702 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
63703 l_recog_line_1                NUMBER;
63704 l_recog_line_2                NUMBER;
63705 
63706 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
63707 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
63708 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
63709 
63710 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
63711 
63712 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
63713 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
63714 
63715 ---------------------------------------------------------------------------------------------------------------
63716 
63717 
63718 --
63719 -- bulk performance
63720 --
63721 l_balance_type_code           VARCHAR2(1);
63722 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
63723 l_log_module                  VARCHAR2(240);
63724 
63725 --
63726 -- Upgrade strategy
63727 --
63728 l_actual_upg_option           VARCHAR2(1);
63729 l_enc_upg_option           VARCHAR2(1);
63730 
63731 --
63732 BEGIN
63733 --
63734 IF g_log_enabled THEN
63735       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_126';
63736 END IF;
63737 --
63738 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63739 
63740       trace
63741          (p_msg      => 'BEGIN of AcctLineType_126'
63742          ,p_level    => C_LEVEL_PROCEDURE
63743          ,p_module   => l_log_module);
63744 
63745 END IF;
63746 --
63747 l_component_type             := 'AMB_JLT';
63748 l_component_code             := 'AP_FREIGHT_EXPENSE_DM';
63749 l_component_type_code        := 'S';
63750 l_component_appl_id          :=  200;
63751 l_amb_context_code           := 'DEFAULT';
63752 l_entity_code                := 'AP_INVOICES';
63753 l_event_class_code           := 'DEBIT MEMOS';
63754 l_event_type_code            := 'DEBIT MEMOS_ALL';
63755 l_line_definition_owner_code := 'S';
63756 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
63757 --
63758 l_balance_type_code          := 'A';
63759 l_segment                     := NULL;
63760 l_ccid                        := NULL;
63761 l_adr_transaction_coa_id      := NULL;
63762 l_adr_accounting_coa_id       := NULL;
63763 l_adr_flexfield_segment_code  := NULL;
63764 l_adr_flex_value_set_id       := NULL;
63765 l_adr_value_type_code         := NULL;
63766 l_adr_value_combination_id    := NULL;
63767 l_adr_value_segment_code      := NULL;
63768 
63769 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
63770 l_bflow_class_code           := '';    -- 4219869 Business Flow
63771 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
63772 l_budgetary_control_flag     := 'N';
63773 
63774 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
63775 l_bflow_applied_to_amt       := NULL; -- 5132302
63776 l_entered_amt_idx            := NULL;          -- 4262811
63777 l_accted_amt_idx             := NULL;          -- 4262811
63778 l_acc_rev_flag               := NULL;          -- 4262811
63779 l_accrual_line_num           := NULL;          -- 4262811
63780 l_tmp_amt                    := NULL;          -- 4262811
63781 --
63782  
63783 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
63784     l_balance_type_code <> 'B' THEN
63785 IF NVL(p_source_21,'
63786 ') =  'FREIGHT'
63787  THEN 
63788 
63789    --
63790    XLA_AE_LINES_PKG.SetNewLine;
63791 
63792    p_balance_type_code          := l_balance_type_code;
63793    -- set the flag so later we will know whether the gain loss line needs to be created
63794    
63795    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
63796      p_actual_flag :='A';
63797    END IF;
63798 
63799    --
63800    -- bulk performance
63801    --
63802    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
63803                                       p_header_num   => 0); -- 4262811
63804    --
63805    -- set accounting line options
63806    --
63807    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
63808            p_natural_side_code          => 'D'
63809          , p_gain_or_loss_flag          => 'N'
63810          , p_gl_transfer_mode_code      => 'S'
63811          , p_acct_entry_type_code       => 'A'
63812          , p_switch_side_flag           => 'Y'
63816    l_acc_rev_natural_side_code := 'C';  -- 4262811
63813          , p_merge_duplicate_code       => 'A'
63814          );
63815    --
63817    -- 
63818    --
63819    -- set accounting line type info
63820    --
63821    xla_ae_lines_pkg.SetAcctLineType
63822       (p_component_type             => l_component_type
63823       ,p_event_type_code            => l_event_type_code
63824       ,p_line_definition_owner_code => l_line_definition_owner_code
63825       ,p_line_definition_code       => l_line_definition_code
63826       ,p_accounting_line_code       => l_component_code
63827       ,p_accounting_line_type_code  => l_component_type_code
63828       ,p_accounting_line_appl_id    => l_component_appl_id
63829       ,p_amb_context_code           => l_amb_context_code
63830       ,p_entity_code                => l_entity_code
63831       ,p_event_class_code           => l_event_class_code);
63832    --
63833    -- set accounting class
63834    --
63835    xla_ae_lines_pkg.SetAcctClass(
63836            p_accounting_class_code  => 'FREIGHT'
63837          , p_ae_header_id           => l_ae_header_id
63838          );
63839 
63840    --
63841    -- set rounding class
63842    --
63843    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63844                       'FREIGHT';
63845 
63846    --
63847    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63848    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63849    --
63850    -- bulk performance
63851    --
63852    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63853 
63854    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63855       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63856 
63857    -- 4955764
63858    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63859       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63860 
63861    -- 4458381 Public Sector Enh
63862    
63863    --
63864    -- set accounting attributes for the line type
63865    --
63866    l_entered_amt_idx := 23;
63867    l_accted_amt_idx  := 28;
63868    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
63869    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
63870    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
63871    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
63872    l_rec_acct_attrs.array_num_value(2)  := 
63873 xla_ae_sources_pkg.GetSystemSourceNum(
63874    p_source_code           => 'XLA_EVENT_APPL_ID'
63875  , p_source_type_code      => 'Y'
63876  , p_source_application_id =>  602
63877 );
63878    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
63879    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
63880    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
63881    l_rec_acct_attrs.array_char_value(4)  := 
63882 xla_ae_sources_pkg.GetSystemSourceChar(
63883    p_source_code           => 'XLA_ENTITY_CODE'
63884  , p_source_type_code      => 'Y'
63885  , p_source_application_id =>  602
63886 );
63887    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
63888    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
63889    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
63890    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
63891    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
63892    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
63893    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63894    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
63895    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
63896    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
63897    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
63898    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
63899    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63900    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
63901    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
63902    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
63903    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
63904    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
63905    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
63906    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
63907    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
63908    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
63909    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
63910    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
63911    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
63912    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
63913    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
63914    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
63915    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
63916    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
63917    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
63918    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
63919    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
63920    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
63921    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
63922    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
63923    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
63927    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
63924    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
63925    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
63926    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
63928    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
63929    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
63930    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
63931    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
63932    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
63933    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
63934    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
63935    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
63936    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
63937    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
63938    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
63939    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
63940    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
63941    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
63942    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
63943    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
63944    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
63945    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
63946    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
63947    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
63948    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
63949    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
63950    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
63951    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
63952    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
63953    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
63954    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
63955    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
63956    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
63957    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
63958    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
63959    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
63960    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
63961    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
63962    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
63963 
63964    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63965    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63966 
63967    ---------------------------------------------------------------------------------------------------------------
63968    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63969    ---------------------------------------------------------------------------------------------------------------
63970    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63971 
63972    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63973    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63974 
63975    IF xla_accounting_cache_pkg.GetValueChar
63976          (p_source_code         => 'LEDGER_CATEGORY_CODE'
63977          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63978    AND l_bflow_method_code = 'PRIOR_ENTRY'
63979 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63980    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63981          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63982        )
63983    THEN
63984          xla_ae_lines_pkg.BflowUpgEntry
63985            (p_business_method_code    => l_bflow_method_code
63986            ,p_business_class_code     => l_bflow_class_code
63987            ,p_balance_type            => l_balance_type_code);
63988    ELSE
63989       NULL;
63990 -- No business flow processing for business flow method of NONE.
63991    END IF;
63992 
63993    --
63994    -- call analytical criteria
63995    --
63996    
63997    --
63998    -- call description
63999    --
64000    
64001 xla_ae_lines_pkg.SetLineDescription(
64002    p_ae_header_id => l_ae_header_id
64003   ,p_description  => Description_2 (
64004      p_application_id         => p_application_id
64005    , p_ae_header_id           => l_ae_header_id 
64006 , p_source_1 => p_source_1
64007    )
64008 );
64009 
64010 
64011    --
64012    -- call ADRs
64013    -- Bug 4922099
64014    --
64015    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64016         (NVL(l_actual_upg_option, 'N') = 'O') OR
64017         (NVL(l_enc_upg_option, 'N') = 'O')
64018       )
64019    THEN
64020    NULL;
64021    --
64022    --
64023    
64024   l_ccid := AcctDerRule_32(
64025            p_application_id           => p_application_id
64026          , p_ae_header_id             => l_ae_header_id 
64027 , p_source_18 => p_source_18
64028          , x_transaction_coa_id       => l_adr_transaction_coa_id
64029          , x_accounting_coa_id        => l_adr_accounting_coa_id
64030          , x_value_type_code          => l_adr_value_type_code
64031          , p_side                     => 'NA'
64032    );
64033 
64034    xla_ae_lines_pkg.set_ccid(
64035     p_code_combination_id          => l_ccid
64036   , p_value_type_code              => l_adr_value_type_code
64037   , p_transaction_coa_id           => l_adr_transaction_coa_id
64041   , p_component_type               => l_component_type
64038   , p_accounting_coa_id            => l_adr_accounting_coa_id
64039   , p_adr_code                     => 'AP_INVOICE_DIST'
64040   , p_adr_type_code                => 'S'
64042   , p_component_code               => l_component_code
64043   , p_component_type_code          => l_component_type_code
64044   , p_component_appl_id            => l_component_appl_id
64045   , p_amb_context_code             => l_amb_context_code
64046   , p_side                         => 'NA'
64047   );
64048 
64049 
64050    --
64051    --
64052    END IF;
64053    --
64054    -- Bug 4922099
64055    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
64056           (NVL(l_enc_upg_option, 'N') = 'O')
64057         ) AND
64058         (l_bflow_method_code = 'PRIOR_ENTRY')
64059       )
64060    THEN
64061       IF
64062       --
64063       1 = 2
64064       --
64065       THEN
64066       xla_accounting_err_pkg.build_message
64067                                     (p_appli_s_name            => 'XLA'
64068                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64069                                     ,p_token_1                 => 'LINE_NUMBER'
64070                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
64071                                     ,p_token_2                 => 'LINE_TYPE_NAME'
64072                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
64073                                                                              l_component_type
64074                                                                             ,l_component_code
64075                                                                             ,l_component_type_code
64076                                                                             ,l_component_appl_id
64077                                                                             ,l_amb_context_code
64078                                                                             ,l_entity_code
64079                                                                             ,l_event_class_code
64080                                                                            )
64081                                     ,p_token_3                 => 'OWNER'
64082                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
64083                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
64084                                                                           ,p_lookup_code    => l_component_type_code
64085                                                                          )
64086                                     ,p_token_4                 => 'PRODUCT_NAME'
64087                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
64088                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
64089                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
64090                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
64091                                     ,p_ae_header_id            =>  NULL
64092                                        );
64093 
64094         IF (C_LEVEL_ERROR>= g_log_level) THEN
64095                  trace
64096                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64097                       ,p_level    => C_LEVEL_ERROR
64098                       ,p_module   => l_log_module);
64099         END IF;
64100       END IF;
64101    END IF;
64102    --
64103    --
64104    ------------------------------------------------------------------------------------------------
64105    -- 4219869 Business Flow
64106    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
64107    -- Prior Entry.  Currently, the following code is always generated.
64108    ------------------------------------------------------------------------------------------------
64109    XLA_AE_LINES_PKG.ValidateCurrentLine;
64110 
64111    ------------------------------------------------------------------------------------
64112    -- 4219869 Business Flow
64113    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
64114    ------------------------------------------------------------------------------------
64115    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64116 
64117    ----------------------------------------------------------------------------------
64118    -- 4219869 Business Flow
64119    -- Update journal entry status -- Need to generate this within IF <condition>
64120    ----------------------------------------------------------------------------------
64121    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64122          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
64123          ,p_balance_type_code => l_balance_type_code
64124          );
64125 
64126    -------------------------------------------------------------------------------------------
64127    -- 4262811 - Generate the Accrual Reversal lines
64128    -------------------------------------------------------------------------------------------
64129    BEGIN
64130       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
64131                               (g_array_event(p_event_id).array_value_num('header_index'));
64132       IF l_acc_rev_flag IS NULL THEN
64133          l_acc_rev_flag := 'N';
64134       END IF;
64135    EXCEPTION
64136       WHEN OTHERS THEN
64137          l_acc_rev_flag := 'N';
64138    END;
64139    --
64140    IF (l_acc_rev_flag = 'Y') THEN
64141 
64145        ------------------------------------------------------------------------------------------
64142        -- 4645092  ------------------------------------------------------------------------------
64143        -- To allow MPA report to determine if it should generate report process
64144        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
64146 
64147        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
64148        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
64149    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
64150    -- call ADRs
64151    -- Bug 4922099
64152    --
64153    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64154         (NVL(l_actual_upg_option, 'N') = 'O') OR
64155         (NVL(l_enc_upg_option, 'N') = 'O')
64156       )
64157    THEN
64158    NULL;
64159    --
64160    --
64161    
64162   l_ccid := AcctDerRule_32(
64163            p_application_id           => p_application_id
64164          , p_ae_header_id             => l_ae_header_id 
64165 , p_source_18 => p_source_18
64166          , x_transaction_coa_id       => l_adr_transaction_coa_id
64167          , x_accounting_coa_id        => l_adr_accounting_coa_id
64168          , x_value_type_code          => l_adr_value_type_code
64169          , p_side                     => 'NA'
64170    );
64171 
64172    xla_ae_lines_pkg.set_ccid(
64173     p_code_combination_id          => l_ccid
64174   , p_value_type_code              => l_adr_value_type_code
64175   , p_transaction_coa_id           => l_adr_transaction_coa_id
64176   , p_accounting_coa_id            => l_adr_accounting_coa_id
64177   , p_adr_code                     => 'AP_INVOICE_DIST'
64178   , p_adr_type_code                => 'S'
64179   , p_component_type               => l_component_type
64180   , p_component_code               => l_component_code
64181   , p_component_type_code          => l_component_type_code
64182   , p_component_appl_id            => l_component_appl_id
64183   , p_amb_context_code             => l_amb_context_code
64184   , p_side                         => 'NA'
64185   );
64186 
64187 
64188    --
64189    --
64190    END IF;
64191 
64192        --
64193        -- Update the line information that should be overwritten
64194        --
64195        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
64196                                          p_header_num   => 1);
64197        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
64198 
64199        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
64200 
64201        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
64202           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
64203        END IF;
64204 
64205       --
64206       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
64207       --
64208       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
64209           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
64210       ELSE
64211           ---------------------------------------------------------------------------------------------------
64212           -- 4262811a Switch Sign
64213           ---------------------------------------------------------------------------------------------------
64214           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
64215           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64216                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64217           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64218                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64219           -- 5132302
64220           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
64221                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64222 
64223       END IF;
64224 
64225       -- 4955764
64226       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64227       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64228 
64229 
64230       XLA_AE_LINES_PKG.ValidateCurrentLine;
64231       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64232 
64233       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64234                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64235                ,p_balance_type_code => l_balance_type_code);
64236 
64237    END IF;
64238 
64239    -----------------------------------------------------------------------------------------
64240    -- 4262811 Multiperiod Accounting
64241    -----------------------------------------------------------------------------------------
64242      -- No MPA option is assigned.
64243 
64244 
64245 END IF;
64246 END IF;
64247 --
64248 
64249 --
64250 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64251    trace
64252       (p_msg      => 'END of AcctLineType_126'
64253       ,p_level    => C_LEVEL_PROCEDURE
64254       ,p_module   => l_log_module);
64255 END IF;
64256 --
64257 EXCEPTION
64258   WHEN xla_exceptions_pkg.application_exception THEN
64259       RAISE;
64260   WHEN OTHERS THEN
64261        xla_exceptions_pkg.raise_message
64262            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_126');
64263 END AcctLineType_126;
64264 --
64265 
64269 --         AcctLineType_127
64266 ---------------------------------------
64267 --
64268 -- PRIVATE FUNCTION
64270 --
64271 ---------------------------------------
64272 PROCEDURE AcctLineType_127 (
64273   p_application_id        IN NUMBER
64274  ,p_event_id              IN NUMBER
64275  ,p_calculate_acctd_flag  IN VARCHAR2
64276  ,p_calculate_g_l_flag    IN VARCHAR2
64277  ,p_actual_flag           IN OUT VARCHAR2
64278  ,p_balance_type_code     OUT VARCHAR2
64279  ,p_gain_or_loss_ref      OUT VARCHAR2
64280  
64281 --Invoice Distribution Type
64282  , p_source_21            IN VARCHAR2
64283  , p_source_21_meaning    IN VARCHAR2
64284 --Accounting Reversal Indicator
64285  , p_source_41            IN VARCHAR2
64286 --Distribution Link Type
64287  , p_source_43            IN VARCHAR2
64288 --Allocation to Main Distribution Identifier
64289  , p_source_45            IN NUMBER
64290 --Invoice Identifier
64291  , p_source_46            IN NUMBER
64292 --Invoice Distribution Identifier
64293  , p_source_52            IN NUMBER
64294 --Payables Encumbrance Upgrade Credit Account
64295  , p_source_53            IN NUMBER
64296 --Payables Encumbrance Upgrade Credit Amount
64297  , p_source_54            IN NUMBER
64298 --Invoice Currency Code
64299  , p_source_55            IN VARCHAR2
64300 --Payables Encumbrance Upgrade Credit Base Amount
64301  , p_source_56            IN NUMBER
64302 --Payables Encumbrance Upgrade Debit Account
64303  , p_source_57            IN NUMBER
64304 --Payables Encumbrance Upgrade Debit Amount
64305  , p_source_58            IN NUMBER
64306 --Payables Encumbrance Upgrade Debit Base Amount
64307  , p_source_59            IN NUMBER
64308 --Payables Encumbrance Upgrade Option
64309  , p_source_60            IN VARCHAR2
64310 --Deferred Accounting End Date
64311  , p_source_65            IN DATE
64312 --Deferred Accounting Option
64313  , p_source_66            IN VARCHAR2
64314 --Deferred Accounting Start Date
64315  , p_source_67            IN DATE
64316 --Override Accounted Amount Indicator
64317  , p_source_68            IN VARCHAR2
64318  , p_source_68_meaning    IN VARCHAR2
64319 --Third Party Type
64320  , p_source_71            IN VARCHAR2
64321 --Parent Reversal Identifier
64322  , p_source_72            IN NUMBER
64323 --Invoice Distribution Tax Line Identifier
64324  , p_source_74            IN NUMBER
64325 --Invoice Distribution Tax Distribution Identifier from Tax
64326  , p_source_75            IN NUMBER
64327 --Invoice Distribution Summary Tax Line Identifier
64328  , p_source_76            IN NUMBER
64329 --Payables Upgrade Credit Encumbrance Type Identifier
64330  , p_source_77            IN NUMBER
64331 --Payables Upgrade Debit Encumbrance Type Identifier
64332  , p_source_78            IN NUMBER
64333 --Business Flow Accounts Payable Application Identifier
64334  , p_source_79            IN NUMBER
64335 --Business Flow Invoice Distribution Type
64336  , p_source_80            IN VARCHAR2
64337 --Business Flow Invoice Entity Code
64338  , p_source_81            IN VARCHAR2
64339 --Business Flow Invoice Distribution Identifier
64340  , p_source_82            IN NUMBER
64341 --Business Flow Invoice Identifier
64342  , p_source_83            IN NUMBER
64343 --Purchasing Encumbrance Option
64344  , p_source_86            IN VARCHAR2
64345  , p_source_86_meaning    IN VARCHAR2
64346 --Invoice Encumbered Option
64347  , p_source_87            IN VARCHAR2
64348  , p_source_87_meaning    IN VARCHAR2
64349 --Invoice Distribution Encumbrance Amount
64350  , p_source_143            IN NUMBER
64351 --Invoice Distribution Encumbrance Ledger Amount
64352  , p_source_144            IN NUMBER
64353 )
64354 IS
64355 
64356 l_component_type              VARCHAR2(80);
64357 l_component_code              VARCHAR2(30);
64358 l_component_type_code         VARCHAR2(1);
64359 l_component_appl_id           INTEGER;
64360 l_amb_context_code            VARCHAR2(30);
64361 l_entity_code                 VARCHAR2(30);
64362 l_event_class_code            VARCHAR2(30);
64363 l_ae_header_id                NUMBER;
64364 l_event_type_code             VARCHAR2(30);
64365 l_line_definition_code        VARCHAR2(30);
64366 l_line_definition_owner_code  VARCHAR2(1);
64367 --
64368 -- adr variables
64369 l_segment                     VARCHAR2(30);
64370 l_ccid                        NUMBER;
64371 l_adr_transaction_coa_id      NUMBER;
64372 l_adr_accounting_coa_id       NUMBER;
64373 l_adr_flexfield_segment_code  VARCHAR2(30);
64374 l_adr_flex_value_set_id       NUMBER;
64375 l_adr_value_type_code         VARCHAR2(30);
64376 l_adr_value_combination_id    NUMBER;
64377 l_adr_value_segment_code      VARCHAR2(30);
64378 
64379 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
64380 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
64381 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
64382 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
64383 
64384 -- 4262811 Variables ------------------------------------------------------------------------------------------
64385 l_entered_amt_idx             NUMBER;
64386 l_accted_amt_idx              NUMBER;
64387 l_acc_rev_flag                VARCHAR2(1);
64388 l_accrual_line_num            NUMBER;
64389 l_tmp_amt                     NUMBER;
64390 l_acc_rev_natural_side_code   VARCHAR2(1);
64391 
64392 l_num_entries                 NUMBER;
64393 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
64397 l_recog_line_1                NUMBER;
64394 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
64395 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
64396 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
64398 l_recog_line_2                NUMBER;
64399 
64400 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
64401 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
64402 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
64403 
64404 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
64405 
64406 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
64407 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
64408 
64409 ---------------------------------------------------------------------------------------------------------------
64410 
64411 
64412 --
64413 -- bulk performance
64414 --
64415 l_balance_type_code           VARCHAR2(1);
64416 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
64417 l_log_module                  VARCHAR2(240);
64418 
64419 --
64420 -- Upgrade strategy
64421 --
64422 l_actual_upg_option           VARCHAR2(1);
64423 l_enc_upg_option           VARCHAR2(1);
64424 
64425 --
64426 BEGIN
64427 --
64428 IF g_log_enabled THEN
64429       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_127';
64430 END IF;
64431 --
64432 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64433 
64434       trace
64435          (p_msg      => 'BEGIN of AcctLineType_127'
64436          ,p_level    => C_LEVEL_PROCEDURE
64437          ,p_module   => l_log_module);
64438 
64439 END IF;
64440 --
64441 l_component_type             := 'AMB_JLT';
64442 l_component_code             := 'AP_FREIGHT_EXPENSE_DM_ENC';
64443 l_component_type_code        := 'S';
64444 l_component_appl_id          :=  200;
64445 l_amb_context_code           := 'DEFAULT';
64446 l_entity_code                := 'AP_INVOICES';
64447 l_event_class_code           := 'DEBIT MEMOS';
64448 l_event_type_code            := 'DEBIT MEMOS_ALL';
64449 l_line_definition_owner_code := 'S';
64450 l_line_definition_code       := 'ENC_REV_DM_ALL';
64451 --
64452 l_balance_type_code          := 'E';
64453 l_segment                     := NULL;
64454 l_ccid                        := NULL;
64455 l_adr_transaction_coa_id      := NULL;
64456 l_adr_accounting_coa_id       := NULL;
64457 l_adr_flexfield_segment_code  := NULL;
64458 l_adr_flex_value_set_id       := NULL;
64459 l_adr_value_type_code         := NULL;
64460 l_adr_value_combination_id    := NULL;
64461 l_adr_value_segment_code      := NULL;
64462 
64463 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
64464 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
64465 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
64466 l_budgetary_control_flag     := 'N';
64467 
64468 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
64469 l_bflow_applied_to_amt       := NULL; -- 5132302
64470 l_entered_amt_idx            := NULL;          -- 4262811
64471 l_accted_amt_idx             := NULL;          -- 4262811
64472 l_acc_rev_flag               := NULL;          -- 4262811
64473 l_accrual_line_num           := NULL;          -- 4262811
64474 l_tmp_amt                    := NULL;          -- 4262811
64475 --
64476  
64477 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
64478     l_balance_type_code <> 'B' THEN
64479 IF NVL(p_source_21,'
64480 ') =  'FREIGHT' AND 
64481 NVL(p_source_86,'
64482 ') =  'Y' AND 
64483 NVL(p_source_87,'
64484 ') =  'Y'
64485  THEN 
64486 
64487    --
64488    XLA_AE_LINES_PKG.SetNewLine;
64489 
64490    p_balance_type_code          := l_balance_type_code;
64491    -- set the flag so later we will know whether the gain loss line needs to be created
64492    
64493    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
64494      p_actual_flag :='A';
64495    END IF;
64496 
64497    --
64498    -- bulk performance
64499    --
64500    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
64501                                       p_header_num   => 0); -- 4262811
64502    --
64503    -- set accounting line options
64504    --
64505    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
64506            p_natural_side_code          => 'C'
64507          , p_gain_or_loss_flag          => 'N'
64508          , p_gl_transfer_mode_code      => 'S'
64509          , p_acct_entry_type_code       => 'E'
64510          , p_switch_side_flag           => 'Y'
64511          , p_merge_duplicate_code       => 'A'
64512          );
64513    --
64514    l_acc_rev_natural_side_code := 'D';  -- 4262811
64515    -- 
64516    --
64517    -- set accounting line type info
64518    --
64519    xla_ae_lines_pkg.SetAcctLineType
64520       (p_component_type             => l_component_type
64521       ,p_event_type_code            => l_event_type_code
64522       ,p_line_definition_owner_code => l_line_definition_owner_code
64523       ,p_line_definition_code       => l_line_definition_code
64524       ,p_accounting_line_code       => l_component_code
64525       ,p_accounting_line_type_code  => l_component_type_code
64526       ,p_accounting_line_appl_id    => l_component_appl_id
64527       ,p_amb_context_code           => l_amb_context_code
64528       ,p_entity_code                => l_entity_code
64529       ,p_event_class_code           => l_event_class_code);
64530    --
64531    -- set accounting class
64532    --
64536          );
64533    xla_ae_lines_pkg.SetAcctClass(
64534            p_accounting_class_code  => 'FREIGHT'
64535          , p_ae_header_id           => l_ae_header_id
64537 
64538    --
64539    -- set rounding class
64540    --
64541    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
64542                       'FREIGHT';
64543 
64544    --
64545    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
64546    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
64547    --
64548    -- bulk performance
64549    --
64550    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
64551 
64552    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
64553       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
64554 
64555    -- 4955764
64556    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64557       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
64558 
64559    -- 4458381 Public Sector Enh
64560    
64561    --
64562    -- set accounting attributes for the line type
64563    --
64564    l_entered_amt_idx := 23;
64565    l_accted_amt_idx  := 25;
64566    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
64567    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
64568    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
64569    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
64570    l_rec_acct_attrs.array_num_value(2)  := 
64571 xla_ae_sources_pkg.GetSystemSourceNum(
64572    p_source_code           => 'XLA_EVENT_APPL_ID'
64573  , p_source_type_code      => 'Y'
64574  , p_source_application_id =>  602
64575 );
64576    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
64577    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
64578    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
64579    l_rec_acct_attrs.array_char_value(4)  := 
64580 xla_ae_sources_pkg.GetSystemSourceChar(
64581    p_source_code           => 'XLA_ENTITY_CODE'
64582  , p_source_type_code      => 'Y'
64583  , p_source_application_id =>  602
64584 );
64585    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
64586    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
64587    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
64588    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
64589    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
64590    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
64591    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
64592    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
64593    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
64594    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
64595    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
64596    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
64597    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
64598    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
64599    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
64600    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
64601    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
64602    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
64603    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
64604    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
64605    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
64606    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
64607    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
64608    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
64609    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
64610    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
64611    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
64612    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
64613    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
64614    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
64615    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
64616    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
64617    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
64618    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
64619    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
64620    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
64621    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
64622    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
64623    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
64624    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
64625    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
64626    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
64627    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
64628    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
64629    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
64630    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
64631    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
64632    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
64633    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
64634    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
64635    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
64636    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
64640    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
64637    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
64638    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
64639    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
64641    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
64642    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
64643    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
64644    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
64645    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
64646    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
64647    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
64648    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
64649    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
64650    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
64651 
64652    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
64653    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
64654 
64655    ---------------------------------------------------------------------------------------------------------------
64656    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
64657    ---------------------------------------------------------------------------------------------------------------
64658    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
64659 
64660    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64661    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64662 
64663    IF xla_accounting_cache_pkg.GetValueChar
64664          (p_source_code         => 'LEDGER_CATEGORY_CODE'
64665          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
64666    AND l_bflow_method_code = 'PRIOR_ENTRY'
64667 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
64668    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
64669          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
64670        )
64671    THEN
64672          xla_ae_lines_pkg.BflowUpgEntry
64673            (p_business_method_code    => l_bflow_method_code
64674            ,p_business_class_code     => l_bflow_class_code
64675            ,p_balance_type            => l_balance_type_code);
64676    ELSE
64677       NULL;
64678 XLA_AE_LINES_PKG.business_flow_validation(
64679                                 p_business_method_code     => l_bflow_method_code
64680                                ,p_business_class_code      => l_bflow_class_code
64681                                ,p_inherit_description_flag => l_inherit_desc_flag);
64682    END IF;
64683 
64684    --
64685    -- call analytical criteria
64686    --
64687    -- Inherited Analytical Criteria for business flow method of Prior Entry.
64688    --
64689    -- call description
64690    --
64691    -- No description or it is inherited.
64692    --
64693    -- call ADRs
64694    -- Bug 4922099
64695    --
64696    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64697         (NVL(l_actual_upg_option, 'N') = 'O') OR
64698         (NVL(l_enc_upg_option, 'N') = 'O')
64699       )
64700    THEN
64701    NULL;
64702    --
64703    --
64704    
64705    --
64706    --
64707    END IF;
64708    --
64709    -- Bug 4922099
64710    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
64711           (NVL(l_enc_upg_option, 'N') = 'O')
64712         ) AND
64713         (l_bflow_method_code = 'PRIOR_ENTRY')
64714       )
64715    THEN
64716       IF
64717       --
64718       1 = 1
64719       --
64720       THEN
64721       xla_accounting_err_pkg.build_message
64722                                     (p_appli_s_name            => 'XLA'
64723                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64724                                     ,p_token_1                 => 'LINE_NUMBER'
64725                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
64726                                     ,p_token_2                 => 'LINE_TYPE_NAME'
64727                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
64728                                                                              l_component_type
64729                                                                             ,l_component_code
64730                                                                             ,l_component_type_code
64731                                                                             ,l_component_appl_id
64732                                                                             ,l_amb_context_code
64733                                                                             ,l_entity_code
64734                                                                             ,l_event_class_code
64735                                                                            )
64736                                     ,p_token_3                 => 'OWNER'
64737                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
64738                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
64739                                                                           ,p_lookup_code    => l_component_type_code
64740                                                                          )
64741                                     ,p_token_4                 => 'PRODUCT_NAME'
64742                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
64746                                     ,p_ae_header_id            =>  NULL
64743                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
64744                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
64745                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
64747                                        );
64748 
64749         IF (C_LEVEL_ERROR>= g_log_level) THEN
64750                  trace
64751                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64752                       ,p_level    => C_LEVEL_ERROR
64753                       ,p_module   => l_log_module);
64754         END IF;
64755       END IF;
64756    END IF;
64757    --
64758    --
64759    ------------------------------------------------------------------------------------------------
64760    -- 4219869 Business Flow
64761    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
64762    -- Prior Entry.  Currently, the following code is always generated.
64763    ------------------------------------------------------------------------------------------------
64764    -- No ValidateCurrentLine for business flow method of Prior Entry
64765 
64766    ------------------------------------------------------------------------------------
64767    -- 4219869 Business Flow
64768    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
64769    ------------------------------------------------------------------------------------
64770    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64771 
64772    ----------------------------------------------------------------------------------
64773    -- 4219869 Business Flow
64774    -- Update journal entry status -- Need to generate this within IF <condition>
64775    ----------------------------------------------------------------------------------
64776    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64777          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
64778          ,p_balance_type_code => l_balance_type_code
64779          );
64780 
64781    -------------------------------------------------------------------------------------------
64782    -- 4262811 - Generate the Accrual Reversal lines
64783    -------------------------------------------------------------------------------------------
64784    BEGIN
64785       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
64786                               (g_array_event(p_event_id).array_value_num('header_index'));
64787       IF l_acc_rev_flag IS NULL THEN
64788          l_acc_rev_flag := 'N';
64789       END IF;
64790    EXCEPTION
64791       WHEN OTHERS THEN
64792          l_acc_rev_flag := 'N';
64793    END;
64794    --
64795    IF (l_acc_rev_flag = 'Y') THEN
64796 
64797        -- 4645092  ------------------------------------------------------------------------------
64798        -- To allow MPA report to determine if it should generate report process
64799        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
64800        ------------------------------------------------------------------------------------------
64801 
64802        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
64803        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
64804    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
64805    -- call ADRs
64806    -- Bug 4922099
64807    --
64808    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64809         (NVL(l_actual_upg_option, 'N') = 'O') OR
64810         (NVL(l_enc_upg_option, 'N') = 'O')
64811       )
64812    THEN
64813    NULL;
64814    --
64815    --
64816    
64817    --
64818    --
64819    END IF;
64820 
64821        --
64822        -- Update the line information that should be overwritten
64823        --
64824        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
64825                                          p_header_num   => 1);
64826        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
64827 
64828        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
64829 
64830        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
64831           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
64832        END IF;
64833 
64834       --
64835       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
64836       --
64837       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
64838           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
64839       ELSE
64840           ---------------------------------------------------------------------------------------------------
64841           -- 4262811a Switch Sign
64842           ---------------------------------------------------------------------------------------------------
64843           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
64844           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64845                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64846           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64847                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64848           -- 5132302
64849           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
64853 
64850                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64851 
64852       END IF;
64854       -- 4955764
64855       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64856       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64857 
64858 
64859       XLA_AE_LINES_PKG.ValidateCurrentLine;
64860       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64861 
64862       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64863                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64864                ,p_balance_type_code => l_balance_type_code);
64865 
64866    END IF;
64867 
64868    -----------------------------------------------------------------------------------------
64869    -- 4262811 Multiperiod Accounting
64870    -----------------------------------------------------------------------------------------
64871      -- No MPA option is assigned.
64872 
64873 
64874 END IF;
64875 END IF;
64876 --
64877 
64878 --
64879 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64880    trace
64881       (p_msg      => 'END of AcctLineType_127'
64882       ,p_level    => C_LEVEL_PROCEDURE
64883       ,p_module   => l_log_module);
64884 END IF;
64885 --
64886 EXCEPTION
64887   WHEN xla_exceptions_pkg.application_exception THEN
64888       RAISE;
64889   WHEN OTHERS THEN
64890        xla_exceptions_pkg.raise_message
64891            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_127');
64892 END AcctLineType_127;
64893 --
64894 
64895 ---------------------------------------
64896 --
64897 -- PRIVATE FUNCTION
64898 --         AcctLineType_128
64899 --
64900 ---------------------------------------
64901 PROCEDURE AcctLineType_128 (
64902   p_application_id        IN NUMBER
64903  ,p_event_id              IN NUMBER
64904  ,p_calculate_acctd_flag  IN VARCHAR2
64905  ,p_calculate_g_l_flag    IN VARCHAR2
64906  ,p_actual_flag           IN OUT VARCHAR2
64907  ,p_balance_type_code     OUT VARCHAR2
64908  ,p_gain_or_loss_ref      OUT VARCHAR2
64909  
64910 --Invoice Distribution Description
64911  , p_source_1            IN VARCHAR2
64912 --Invoice Distribution Ledger Amount
64913  , p_source_9            IN NUMBER
64914 --Invoice Distribution Account
64915  , p_source_18            IN NUMBER
64916 --Invoice Distribution Type
64917  , p_source_21            IN VARCHAR2
64918  , p_source_21_meaning    IN VARCHAR2
64919 --Accounting Reversal Indicator
64920  , p_source_41            IN VARCHAR2
64921 --Distribution Link Type
64922  , p_source_43            IN VARCHAR2
64923 --Allocation to Main Distribution Identifier
64924  , p_source_45            IN NUMBER
64925 --Invoice Identifier
64926  , p_source_46            IN NUMBER
64927 --Invoice Distribution Identifier
64928  , p_source_52            IN NUMBER
64929 --Payables Encumbrance Upgrade Credit Account
64930  , p_source_53            IN NUMBER
64931 --Payables Encumbrance Upgrade Credit Amount
64932  , p_source_54            IN NUMBER
64933 --Invoice Currency Code
64934  , p_source_55            IN VARCHAR2
64935 --Payables Encumbrance Upgrade Credit Base Amount
64936  , p_source_56            IN NUMBER
64937 --Payables Encumbrance Upgrade Debit Account
64938  , p_source_57            IN NUMBER
64939 --Payables Encumbrance Upgrade Debit Amount
64940  , p_source_58            IN NUMBER
64941 --Payables Encumbrance Upgrade Debit Base Amount
64942  , p_source_59            IN NUMBER
64943 --Payables Encumbrance Upgrade Option
64944  , p_source_60            IN VARCHAR2
64945 --Invoice Distribution Amount
64946  , p_source_61            IN NUMBER
64947 --Deferred Accounting End Date
64948  , p_source_65            IN DATE
64949 --Deferred Accounting Option
64950  , p_source_66            IN VARCHAR2
64951 --Deferred Accounting Start Date
64952  , p_source_67            IN DATE
64953 --Override Accounted Amount Indicator
64954  , p_source_68            IN VARCHAR2
64955  , p_source_68_meaning    IN VARCHAR2
64956 --Invoice Supplier Identifier
64957  , p_source_69            IN NUMBER
64958 --Invoice Supplier Site Identifier
64959  , p_source_70            IN NUMBER
64960 --Third Party Type
64961  , p_source_71            IN VARCHAR2
64962 --Parent Reversal Identifier
64963  , p_source_72            IN NUMBER
64964 --Invoice Distribution Statistical Amount
64965  , p_source_73            IN NUMBER
64966 --Invoice Distribution Tax Line Identifier
64967  , p_source_74            IN NUMBER
64968 --Invoice Distribution Tax Distribution Identifier from Tax
64969  , p_source_75            IN NUMBER
64970 --Invoice Distribution Summary Tax Line Identifier
64971  , p_source_76            IN NUMBER
64972 --Payables Upgrade Credit Encumbrance Type Identifier
64973  , p_source_77            IN NUMBER
64974 --Payables Upgrade Debit Encumbrance Type Identifier
64975  , p_source_78            IN NUMBER
64976 --Business Flow Accounts Payable Application Identifier
64977  , p_source_79            IN NUMBER
64978 --Business Flow Invoice Distribution Type
64979  , p_source_80            IN VARCHAR2
64980 --Business Flow Invoice Entity Code
64981  , p_source_81            IN VARCHAR2
64982 --Business Flow Invoice Distribution Identifier
64983  , p_source_82            IN NUMBER
64984 --Business Flow Invoice Identifier
64985  , p_source_83            IN NUMBER
64986 --Invoice Exchange Date
64987  , p_source_136            IN DATE
64988 --Invoice Exchange Rate
64989  , p_source_137            IN NUMBER
64993 IS
64990 --Invoice Exchange Rate Type
64991  , p_source_138            IN VARCHAR2
64992 )
64994 
64995 l_component_type              VARCHAR2(80);
64996 l_component_code              VARCHAR2(30);
64997 l_component_type_code         VARCHAR2(1);
64998 l_component_appl_id           INTEGER;
64999 l_amb_context_code            VARCHAR2(30);
65000 l_entity_code                 VARCHAR2(30);
65001 l_event_class_code            VARCHAR2(30);
65002 l_ae_header_id                NUMBER;
65003 l_event_type_code             VARCHAR2(30);
65004 l_line_definition_code        VARCHAR2(30);
65005 l_line_definition_owner_code  VARCHAR2(1);
65006 --
65007 -- adr variables
65008 l_segment                     VARCHAR2(30);
65009 l_ccid                        NUMBER;
65010 l_adr_transaction_coa_id      NUMBER;
65011 l_adr_accounting_coa_id       NUMBER;
65012 l_adr_flexfield_segment_code  VARCHAR2(30);
65013 l_adr_flex_value_set_id       NUMBER;
65014 l_adr_value_type_code         VARCHAR2(30);
65015 l_adr_value_combination_id    NUMBER;
65016 l_adr_value_segment_code      VARCHAR2(30);
65017 
65018 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
65019 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
65020 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
65021 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
65022 
65023 -- 4262811 Variables ------------------------------------------------------------------------------------------
65024 l_entered_amt_idx             NUMBER;
65025 l_accted_amt_idx              NUMBER;
65026 l_acc_rev_flag                VARCHAR2(1);
65027 l_accrual_line_num            NUMBER;
65028 l_tmp_amt                     NUMBER;
65029 l_acc_rev_natural_side_code   VARCHAR2(1);
65030 
65031 l_num_entries                 NUMBER;
65032 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
65033 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
65034 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
65035 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
65036 l_recog_line_1                NUMBER;
65037 l_recog_line_2                NUMBER;
65038 
65039 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
65040 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
65041 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
65042 
65043 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
65044 
65045 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
65046 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
65047 
65048 ---------------------------------------------------------------------------------------------------------------
65049 
65050 
65051 --
65052 -- bulk performance
65053 --
65054 l_balance_type_code           VARCHAR2(1);
65055 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
65056 l_log_module                  VARCHAR2(240);
65057 
65058 --
65059 -- Upgrade strategy
65060 --
65061 l_actual_upg_option           VARCHAR2(1);
65062 l_enc_upg_option           VARCHAR2(1);
65063 
65064 --
65065 BEGIN
65066 --
65067 IF g_log_enabled THEN
65068       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_128';
65069 END IF;
65070 --
65071 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65072 
65073       trace
65074          (p_msg      => 'BEGIN of AcctLineType_128'
65075          ,p_level    => C_LEVEL_PROCEDURE
65076          ,p_module   => l_log_module);
65077 
65078 END IF;
65079 --
65080 l_component_type             := 'AMB_JLT';
65081 l_component_code             := 'AP_FREIGHT_EXPENSE_INV';
65082 l_component_type_code        := 'S';
65083 l_component_appl_id          :=  200;
65084 l_amb_context_code           := 'DEFAULT';
65085 l_entity_code                := 'AP_INVOICES';
65086 l_event_class_code           := 'INVOICES';
65087 l_event_type_code            := 'INVOICES_ALL';
65088 l_line_definition_owner_code := 'S';
65089 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
65090 --
65091 l_balance_type_code          := 'A';
65092 l_segment                     := NULL;
65093 l_ccid                        := NULL;
65094 l_adr_transaction_coa_id      := NULL;
65095 l_adr_accounting_coa_id       := NULL;
65096 l_adr_flexfield_segment_code  := NULL;
65097 l_adr_flex_value_set_id       := NULL;
65098 l_adr_value_type_code         := NULL;
65099 l_adr_value_combination_id    := NULL;
65100 l_adr_value_segment_code      := NULL;
65101 
65102 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
65103 l_bflow_class_code           := '';    -- 4219869 Business Flow
65104 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
65105 l_budgetary_control_flag     := 'N';
65106 
65107 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
65108 l_bflow_applied_to_amt       := NULL; -- 5132302
65109 l_entered_amt_idx            := NULL;          -- 4262811
65110 l_accted_amt_idx             := NULL;          -- 4262811
65111 l_acc_rev_flag               := NULL;          -- 4262811
65112 l_accrual_line_num           := NULL;          -- 4262811
65113 l_tmp_amt                    := NULL;          -- 4262811
65114 --
65115  
65116 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
65117     l_balance_type_code <> 'B' THEN
65118 IF NVL(p_source_21,'
65119 ') =  'FREIGHT'
65120  THEN 
65121 
65125    p_balance_type_code          := l_balance_type_code;
65122    --
65123    XLA_AE_LINES_PKG.SetNewLine;
65124 
65126    -- set the flag so later we will know whether the gain loss line needs to be created
65127    
65128    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
65129      p_actual_flag :='A';
65130    END IF;
65131 
65132    --
65133    -- bulk performance
65134    --
65135    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
65136                                       p_header_num   => 0); -- 4262811
65137    --
65138    -- set accounting line options
65139    --
65140    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
65141            p_natural_side_code          => 'D'
65142          , p_gain_or_loss_flag          => 'N'
65143          , p_gl_transfer_mode_code      => 'S'
65144          , p_acct_entry_type_code       => 'A'
65145          , p_switch_side_flag           => 'Y'
65146          , p_merge_duplicate_code       => 'A'
65147          );
65148    --
65149    l_acc_rev_natural_side_code := 'C';  -- 4262811
65150    -- 
65151    --
65152    -- set accounting line type info
65153    --
65154    xla_ae_lines_pkg.SetAcctLineType
65155       (p_component_type             => l_component_type
65156       ,p_event_type_code            => l_event_type_code
65157       ,p_line_definition_owner_code => l_line_definition_owner_code
65158       ,p_line_definition_code       => l_line_definition_code
65159       ,p_accounting_line_code       => l_component_code
65160       ,p_accounting_line_type_code  => l_component_type_code
65161       ,p_accounting_line_appl_id    => l_component_appl_id
65162       ,p_amb_context_code           => l_amb_context_code
65163       ,p_entity_code                => l_entity_code
65164       ,p_event_class_code           => l_event_class_code);
65165    --
65166    -- set accounting class
65167    --
65168    xla_ae_lines_pkg.SetAcctClass(
65169            p_accounting_class_code  => 'FREIGHT'
65170          , p_ae_header_id           => l_ae_header_id
65171          );
65172 
65173    --
65174    -- set rounding class
65175    --
65176    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
65177                       'FREIGHT';
65178 
65179    --
65180    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
65181    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
65182    --
65183    -- bulk performance
65184    --
65185    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
65186 
65187    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
65188       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
65189 
65190    -- 4955764
65191    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65192       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
65193 
65194    -- 4458381 Public Sector Enh
65195    
65196    --
65197    -- set accounting attributes for the line type
65198    --
65199    l_entered_amt_idx := 24;
65200    l_accted_amt_idx  := 29;
65201    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
65202    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
65203    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
65204    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
65205    l_rec_acct_attrs.array_num_value(2)  := 
65206 xla_ae_sources_pkg.GetSystemSourceNum(
65207    p_source_code           => 'XLA_EVENT_APPL_ID'
65208  , p_source_type_code      => 'Y'
65209  , p_source_application_id =>  602
65210 );
65211    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
65212    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
65213    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
65214    l_rec_acct_attrs.array_char_value(4)  := 
65215 xla_ae_sources_pkg.GetSystemSourceChar(
65216    p_source_code           => 'XLA_ENTITY_CODE'
65217  , p_source_type_code      => 'Y'
65218  , p_source_application_id =>  602
65219 );
65220    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
65221    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
65222    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
65223    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
65224    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
65225    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
65226    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
65227    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
65228    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
65229    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
65230    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
65231    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
65232    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
65233    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
65234    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
65235    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
65236    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
65237    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
65238    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
65242    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
65239    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
65240    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
65241    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
65243    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
65244    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
65245    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
65246    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
65247    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
65248    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
65249    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
65250    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
65251    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
65252    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
65253    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
65254    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
65255    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
65256    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
65257    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
65258    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
65259    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
65260    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
65261    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
65262    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
65263    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
65264    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
65265    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
65266    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
65267    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
65268    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
65269    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
65270    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
65271    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
65272    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
65273    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
65274    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
65275    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
65276    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
65277    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
65278    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
65279    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
65280    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
65281    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
65282    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
65283    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
65284    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
65285    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
65286    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
65287    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
65288    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
65289    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
65290    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
65291    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
65292    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
65293    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
65294    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
65295    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
65296    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
65297    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
65298    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
65299    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
65300 
65301    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
65302    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
65303 
65304    ---------------------------------------------------------------------------------------------------------------
65305    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
65306    ---------------------------------------------------------------------------------------------------------------
65307    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
65308 
65309    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65310    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65311 
65312    IF xla_accounting_cache_pkg.GetValueChar
65313          (p_source_code         => 'LEDGER_CATEGORY_CODE'
65314          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
65315    AND l_bflow_method_code = 'PRIOR_ENTRY'
65316 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
65317    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
65318          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
65319        )
65320    THEN
65321          xla_ae_lines_pkg.BflowUpgEntry
65322            (p_business_method_code    => l_bflow_method_code
65323            ,p_business_class_code     => l_bflow_class_code
65324            ,p_balance_type            => l_balance_type_code);
65325    ELSE
65326       NULL;
65327 -- No business flow processing for business flow method of NONE.
65328    END IF;
65329 
65330    --
65331    -- call analytical criteria
65332    --
65333    
65334    --
65335    -- call description
65336    --
65340   ,p_description  => Description_2 (
65337    
65338 xla_ae_lines_pkg.SetLineDescription(
65339    p_ae_header_id => l_ae_header_id
65341      p_application_id         => p_application_id
65342    , p_ae_header_id           => l_ae_header_id 
65343 , p_source_1 => p_source_1
65344    )
65345 );
65346 
65347 
65348    --
65349    -- call ADRs
65350    -- Bug 4922099
65351    --
65352    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65353         (NVL(l_actual_upg_option, 'N') = 'O') OR
65354         (NVL(l_enc_upg_option, 'N') = 'O')
65355       )
65356    THEN
65357    NULL;
65358    --
65359    --
65360    
65361   l_ccid := AcctDerRule_32(
65362            p_application_id           => p_application_id
65363          , p_ae_header_id             => l_ae_header_id 
65364 , p_source_18 => p_source_18
65365          , x_transaction_coa_id       => l_adr_transaction_coa_id
65366          , x_accounting_coa_id        => l_adr_accounting_coa_id
65367          , x_value_type_code          => l_adr_value_type_code
65368          , p_side                     => 'NA'
65369    );
65370 
65371    xla_ae_lines_pkg.set_ccid(
65372     p_code_combination_id          => l_ccid
65373   , p_value_type_code              => l_adr_value_type_code
65374   , p_transaction_coa_id           => l_adr_transaction_coa_id
65375   , p_accounting_coa_id            => l_adr_accounting_coa_id
65376   , p_adr_code                     => 'AP_INVOICE_DIST'
65377   , p_adr_type_code                => 'S'
65378   , p_component_type               => l_component_type
65379   , p_component_code               => l_component_code
65380   , p_component_type_code          => l_component_type_code
65381   , p_component_appl_id            => l_component_appl_id
65382   , p_amb_context_code             => l_amb_context_code
65383   , p_side                         => 'NA'
65384   );
65385 
65386 
65387    --
65388    --
65389    END IF;
65390    --
65391    -- Bug 4922099
65392    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
65393           (NVL(l_enc_upg_option, 'N') = 'O')
65394         ) AND
65395         (l_bflow_method_code = 'PRIOR_ENTRY')
65396       )
65397    THEN
65398       IF
65399       --
65400       1 = 2
65401       --
65402       THEN
65403       xla_accounting_err_pkg.build_message
65404                                     (p_appli_s_name            => 'XLA'
65405                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65406                                     ,p_token_1                 => 'LINE_NUMBER'
65407                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
65408                                     ,p_token_2                 => 'LINE_TYPE_NAME'
65409                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
65410                                                                              l_component_type
65411                                                                             ,l_component_code
65412                                                                             ,l_component_type_code
65413                                                                             ,l_component_appl_id
65414                                                                             ,l_amb_context_code
65415                                                                             ,l_entity_code
65416                                                                             ,l_event_class_code
65417                                                                            )
65418                                     ,p_token_3                 => 'OWNER'
65419                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
65420                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
65421                                                                           ,p_lookup_code    => l_component_type_code
65422                                                                          )
65423                                     ,p_token_4                 => 'PRODUCT_NAME'
65424                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
65425                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
65426                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
65427                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
65428                                     ,p_ae_header_id            =>  NULL
65429                                        );
65430 
65431         IF (C_LEVEL_ERROR>= g_log_level) THEN
65432                  trace
65433                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65434                       ,p_level    => C_LEVEL_ERROR
65435                       ,p_module   => l_log_module);
65436         END IF;
65437       END IF;
65438    END IF;
65439    --
65440    --
65441    ------------------------------------------------------------------------------------------------
65442    -- 4219869 Business Flow
65443    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
65444    -- Prior Entry.  Currently, the following code is always generated.
65445    ------------------------------------------------------------------------------------------------
65446    XLA_AE_LINES_PKG.ValidateCurrentLine;
65447 
65448    ------------------------------------------------------------------------------------
65449    -- 4219869 Business Flow
65450    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
65454    ----------------------------------------------------------------------------------
65451    ------------------------------------------------------------------------------------
65452    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65453 
65455    -- 4219869 Business Flow
65456    -- Update journal entry status -- Need to generate this within IF <condition>
65457    ----------------------------------------------------------------------------------
65458    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65459          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
65460          ,p_balance_type_code => l_balance_type_code
65461          );
65462 
65463    -------------------------------------------------------------------------------------------
65464    -- 4262811 - Generate the Accrual Reversal lines
65465    -------------------------------------------------------------------------------------------
65466    BEGIN
65467       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
65468                               (g_array_event(p_event_id).array_value_num('header_index'));
65469       IF l_acc_rev_flag IS NULL THEN
65470          l_acc_rev_flag := 'N';
65471       END IF;
65472    EXCEPTION
65473       WHEN OTHERS THEN
65474          l_acc_rev_flag := 'N';
65475    END;
65476    --
65477    IF (l_acc_rev_flag = 'Y') THEN
65478 
65479        -- 4645092  ------------------------------------------------------------------------------
65480        -- To allow MPA report to determine if it should generate report process
65481        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
65482        ------------------------------------------------------------------------------------------
65483 
65484        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
65485        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
65486    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
65487    -- call ADRs
65488    -- Bug 4922099
65489    --
65490    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65491         (NVL(l_actual_upg_option, 'N') = 'O') OR
65492         (NVL(l_enc_upg_option, 'N') = 'O')
65493       )
65494    THEN
65495    NULL;
65496    --
65497    --
65498    
65499   l_ccid := AcctDerRule_32(
65500            p_application_id           => p_application_id
65501          , p_ae_header_id             => l_ae_header_id 
65502 , p_source_18 => p_source_18
65503          , x_transaction_coa_id       => l_adr_transaction_coa_id
65504          , x_accounting_coa_id        => l_adr_accounting_coa_id
65505          , x_value_type_code          => l_adr_value_type_code
65506          , p_side                     => 'NA'
65507    );
65508 
65509    xla_ae_lines_pkg.set_ccid(
65510     p_code_combination_id          => l_ccid
65511   , p_value_type_code              => l_adr_value_type_code
65512   , p_transaction_coa_id           => l_adr_transaction_coa_id
65513   , p_accounting_coa_id            => l_adr_accounting_coa_id
65514   , p_adr_code                     => 'AP_INVOICE_DIST'
65515   , p_adr_type_code                => 'S'
65516   , p_component_type               => l_component_type
65517   , p_component_code               => l_component_code
65518   , p_component_type_code          => l_component_type_code
65519   , p_component_appl_id            => l_component_appl_id
65520   , p_amb_context_code             => l_amb_context_code
65521   , p_side                         => 'NA'
65522   );
65523 
65524 
65525    --
65526    --
65527    END IF;
65528 
65529        --
65530        -- Update the line information that should be overwritten
65531        --
65532        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
65533                                          p_header_num   => 1);
65534        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
65535 
65536        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
65537 
65538        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
65539           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
65540        END IF;
65541 
65542       --
65543       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
65544       --
65545       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
65546           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
65547       ELSE
65548           ---------------------------------------------------------------------------------------------------
65549           -- 4262811a Switch Sign
65550           ---------------------------------------------------------------------------------------------------
65551           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
65552           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65553                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65554           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65555                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65556           -- 5132302
65557           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
65558                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65559 
65560       END IF;
65561 
65562       -- 4955764
65563       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65567       XLA_AE_LINES_PKG.ValidateCurrentLine;
65564       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
65565 
65566 
65568       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65569 
65570       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65571                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
65572                ,p_balance_type_code => l_balance_type_code);
65573 
65574    END IF;
65575 
65576    -----------------------------------------------------------------------------------------
65577    -- 4262811 Multiperiod Accounting
65578    -----------------------------------------------------------------------------------------
65579      -- No MPA option is assigned.
65580 
65581 
65582 END IF;
65583 END IF;
65584 --
65585 
65586 --
65587 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65588    trace
65589       (p_msg      => 'END of AcctLineType_128'
65590       ,p_level    => C_LEVEL_PROCEDURE
65591       ,p_module   => l_log_module);
65592 END IF;
65593 --
65594 EXCEPTION
65595   WHEN xla_exceptions_pkg.application_exception THEN
65596       RAISE;
65597   WHEN OTHERS THEN
65598        xla_exceptions_pkg.raise_message
65599            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_128');
65600 END AcctLineType_128;
65601 --
65602 
65603 ---------------------------------------
65604 --
65605 -- PRIVATE FUNCTION
65606 --         AcctLineType_129
65607 --
65608 ---------------------------------------
65609 PROCEDURE AcctLineType_129 (
65610   p_application_id        IN NUMBER
65611  ,p_event_id              IN NUMBER
65612  ,p_calculate_acctd_flag  IN VARCHAR2
65613  ,p_calculate_g_l_flag    IN VARCHAR2
65614  ,p_actual_flag           IN OUT VARCHAR2
65615  ,p_balance_type_code     OUT VARCHAR2
65616  ,p_gain_or_loss_ref      OUT VARCHAR2
65617  
65618 --Invoice Distribution Type
65619  , p_source_21            IN VARCHAR2
65620  , p_source_21_meaning    IN VARCHAR2
65621 --Accounting Reversal Indicator
65622  , p_source_41            IN VARCHAR2
65623 --Distribution Link Type
65624  , p_source_43            IN VARCHAR2
65625 --Allocation to Main Distribution Identifier
65626  , p_source_45            IN NUMBER
65627 --Invoice Identifier
65628  , p_source_46            IN NUMBER
65629 --Invoice Distribution Identifier
65630  , p_source_52            IN NUMBER
65631 --Payables Encumbrance Upgrade Credit Account
65632  , p_source_53            IN NUMBER
65633 --Payables Encumbrance Upgrade Credit Amount
65634  , p_source_54            IN NUMBER
65635 --Invoice Currency Code
65636  , p_source_55            IN VARCHAR2
65637 --Payables Encumbrance Upgrade Credit Base Amount
65638  , p_source_56            IN NUMBER
65639 --Payables Encumbrance Upgrade Debit Account
65640  , p_source_57            IN NUMBER
65641 --Payables Encumbrance Upgrade Debit Amount
65642  , p_source_58            IN NUMBER
65643 --Payables Encumbrance Upgrade Debit Base Amount
65644  , p_source_59            IN NUMBER
65645 --Payables Encumbrance Upgrade Option
65646  , p_source_60            IN VARCHAR2
65647 --Invoice Distribution Amount
65648  , p_source_61            IN NUMBER
65649 --Deferred Accounting End Date
65650  , p_source_65            IN DATE
65651 --Deferred Accounting Option
65652  , p_source_66            IN VARCHAR2
65653 --Deferred Accounting Start Date
65654  , p_source_67            IN DATE
65655 --Override Accounted Amount Indicator
65656  , p_source_68            IN VARCHAR2
65657  , p_source_68_meaning    IN VARCHAR2
65658 --Third Party Type
65659  , p_source_71            IN VARCHAR2
65660 --Parent Reversal Identifier
65661  , p_source_72            IN NUMBER
65662 --Invoice Distribution Statistical Amount
65663  , p_source_73            IN NUMBER
65664 --Invoice Distribution Tax Line Identifier
65665  , p_source_74            IN NUMBER
65666 --Invoice Distribution Tax Distribution Identifier from Tax
65667  , p_source_75            IN NUMBER
65668 --Invoice Distribution Summary Tax Line Identifier
65669  , p_source_76            IN NUMBER
65670 --Payables Upgrade Credit Encumbrance Type Identifier
65671  , p_source_77            IN NUMBER
65672 --Payables Upgrade Debit Encumbrance Type Identifier
65673  , p_source_78            IN NUMBER
65674 --Business Flow Accounts Payable Application Identifier
65675  , p_source_79            IN NUMBER
65676 --Business Flow Invoice Distribution Type
65677  , p_source_80            IN VARCHAR2
65678 --Business Flow Invoice Entity Code
65679  , p_source_81            IN VARCHAR2
65680 --Business Flow Invoice Distribution Identifier
65681  , p_source_82            IN NUMBER
65682 --Business Flow Invoice Identifier
65683  , p_source_83            IN NUMBER
65684 --Purchasing Encumbrance Option
65685  , p_source_86            IN VARCHAR2
65686  , p_source_86_meaning    IN VARCHAR2
65687 --Invoice Encumbered Option
65688  , p_source_87            IN VARCHAR2
65689  , p_source_87_meaning    IN VARCHAR2
65690 --Invoice Distribution Encumbrance Amount
65691  , p_source_143            IN NUMBER
65692 --Invoice Distribution Encumbrance Ledger Amount
65693  , p_source_144            IN NUMBER
65694 )
65695 IS
65696 
65697 l_component_type              VARCHAR2(80);
65698 l_component_code              VARCHAR2(30);
65699 l_component_type_code         VARCHAR2(1);
65700 l_component_appl_id           INTEGER;
65701 l_amb_context_code            VARCHAR2(30);
65702 l_entity_code                 VARCHAR2(30);
65703 l_event_class_code            VARCHAR2(30);
65704 l_ae_header_id                NUMBER;
65705 l_event_type_code             VARCHAR2(30);
65709 -- adr variables
65706 l_line_definition_code        VARCHAR2(30);
65707 l_line_definition_owner_code  VARCHAR2(1);
65708 --
65710 l_segment                     VARCHAR2(30);
65711 l_ccid                        NUMBER;
65712 l_adr_transaction_coa_id      NUMBER;
65713 l_adr_accounting_coa_id       NUMBER;
65714 l_adr_flexfield_segment_code  VARCHAR2(30);
65715 l_adr_flex_value_set_id       NUMBER;
65716 l_adr_value_type_code         VARCHAR2(30);
65717 l_adr_value_combination_id    NUMBER;
65718 l_adr_value_segment_code      VARCHAR2(30);
65719 
65720 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
65721 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
65722 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
65723 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
65724 
65725 -- 4262811 Variables ------------------------------------------------------------------------------------------
65726 l_entered_amt_idx             NUMBER;
65727 l_accted_amt_idx              NUMBER;
65728 l_acc_rev_flag                VARCHAR2(1);
65729 l_accrual_line_num            NUMBER;
65730 l_tmp_amt                     NUMBER;
65731 l_acc_rev_natural_side_code   VARCHAR2(1);
65732 
65733 l_num_entries                 NUMBER;
65734 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
65735 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
65736 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
65737 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
65738 l_recog_line_1                NUMBER;
65739 l_recog_line_2                NUMBER;
65740 
65741 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
65742 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
65743 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
65744 
65745 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
65746 
65747 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
65748 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
65749 
65750 ---------------------------------------------------------------------------------------------------------------
65751 
65752 
65753 --
65754 -- bulk performance
65755 --
65756 l_balance_type_code           VARCHAR2(1);
65757 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
65758 l_log_module                  VARCHAR2(240);
65759 
65760 --
65761 -- Upgrade strategy
65762 --
65763 l_actual_upg_option           VARCHAR2(1);
65764 l_enc_upg_option           VARCHAR2(1);
65765 
65766 --
65767 BEGIN
65768 --
65769 IF g_log_enabled THEN
65770       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_129';
65771 END IF;
65772 --
65773 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65774 
65775       trace
65776          (p_msg      => 'BEGIN of AcctLineType_129'
65777          ,p_level    => C_LEVEL_PROCEDURE
65778          ,p_module   => l_log_module);
65779 
65780 END IF;
65781 --
65782 l_component_type             := 'AMB_JLT';
65783 l_component_code             := 'AP_FREIGHT_EXPENSE_INV_ENC';
65784 l_component_type_code        := 'S';
65785 l_component_appl_id          :=  200;
65786 l_amb_context_code           := 'DEFAULT';
65787 l_entity_code                := 'AP_INVOICES';
65788 l_event_class_code           := 'INVOICES';
65789 l_event_type_code            := 'INVOICES_ALL';
65790 l_line_definition_owner_code := 'S';
65791 l_line_definition_code       := 'ENC_REV_INVOICES_ALL';
65792 --
65793 l_balance_type_code          := 'E';
65794 l_segment                     := NULL;
65795 l_ccid                        := NULL;
65796 l_adr_transaction_coa_id      := NULL;
65797 l_adr_accounting_coa_id       := NULL;
65798 l_adr_flexfield_segment_code  := NULL;
65799 l_adr_flex_value_set_id       := NULL;
65800 l_adr_value_type_code         := NULL;
65801 l_adr_value_combination_id    := NULL;
65802 l_adr_value_segment_code      := NULL;
65803 
65804 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
65805 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
65806 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
65807 l_budgetary_control_flag     := 'N';
65808 
65809 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
65810 l_bflow_applied_to_amt       := NULL; -- 5132302
65811 l_entered_amt_idx            := NULL;          -- 4262811
65812 l_accted_amt_idx             := NULL;          -- 4262811
65813 l_acc_rev_flag               := NULL;          -- 4262811
65814 l_accrual_line_num           := NULL;          -- 4262811
65815 l_tmp_amt                    := NULL;          -- 4262811
65816 --
65817  
65818 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
65819     l_balance_type_code <> 'B' THEN
65820 IF NVL(p_source_21,'
65821 ') =  'FREIGHT' AND 
65822 NVL(p_source_86,'
65823 ') =  'Y' AND 
65824 NVL(p_source_87,'
65825 ') =  'Y'
65826  THEN 
65827 
65828    --
65829    XLA_AE_LINES_PKG.SetNewLine;
65830 
65831    p_balance_type_code          := l_balance_type_code;
65832    -- set the flag so later we will know whether the gain loss line needs to be created
65833    
65834    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
65835      p_actual_flag :='A';
65836    END IF;
65837 
65838    --
65839    -- bulk performance
65840    --
65841    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
65842                                       p_header_num   => 0); -- 4262811
65846    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
65843    --
65844    -- set accounting line options
65845    --
65847            p_natural_side_code          => 'C'
65848          , p_gain_or_loss_flag          => 'N'
65849          , p_gl_transfer_mode_code      => 'S'
65850          , p_acct_entry_type_code       => 'E'
65851          , p_switch_side_flag           => 'Y'
65852          , p_merge_duplicate_code       => 'A'
65853          );
65854    --
65855    l_acc_rev_natural_side_code := 'D';  -- 4262811
65856    -- 
65857    --
65858    -- set accounting line type info
65859    --
65860    xla_ae_lines_pkg.SetAcctLineType
65861       (p_component_type             => l_component_type
65862       ,p_event_type_code            => l_event_type_code
65863       ,p_line_definition_owner_code => l_line_definition_owner_code
65864       ,p_line_definition_code       => l_line_definition_code
65865       ,p_accounting_line_code       => l_component_code
65866       ,p_accounting_line_type_code  => l_component_type_code
65867       ,p_accounting_line_appl_id    => l_component_appl_id
65868       ,p_amb_context_code           => l_amb_context_code
65869       ,p_entity_code                => l_entity_code
65870       ,p_event_class_code           => l_event_class_code);
65871    --
65872    -- set accounting class
65873    --
65874    xla_ae_lines_pkg.SetAcctClass(
65875            p_accounting_class_code  => 'FREIGHT'
65876          , p_ae_header_id           => l_ae_header_id
65877          );
65878 
65879    --
65880    -- set rounding class
65881    --
65882    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
65883                       'FREIGHT';
65884 
65885    --
65886    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
65887    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
65888    --
65889    -- bulk performance
65890    --
65891    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
65892 
65893    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
65894       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
65895 
65896    -- 4955764
65897    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65898       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
65899 
65900    -- 4458381 Public Sector Enh
65901    
65902    --
65903    -- set accounting attributes for the line type
65904    --
65905    l_entered_amt_idx := 24;
65906    l_accted_amt_idx  := 26;
65907    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
65908    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
65909    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
65910    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
65911    l_rec_acct_attrs.array_num_value(2)  := 
65912 xla_ae_sources_pkg.GetSystemSourceNum(
65913    p_source_code           => 'XLA_EVENT_APPL_ID'
65914  , p_source_type_code      => 'Y'
65915  , p_source_application_id =>  602
65916 );
65917    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
65918    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
65919    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
65920    l_rec_acct_attrs.array_char_value(4)  := 
65921 xla_ae_sources_pkg.GetSystemSourceChar(
65922    p_source_code           => 'XLA_ENTITY_CODE'
65923  , p_source_type_code      => 'Y'
65924  , p_source_application_id =>  602
65925 );
65926    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
65927    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
65928    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
65929    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
65930    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
65931    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
65932    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
65933    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
65934    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
65935    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
65936    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
65937    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
65938    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
65939    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
65940    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
65941    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
65942    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
65943    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
65944    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
65945    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
65946    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
65947    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
65948    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
65949    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
65950    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
65951    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
65952    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
65953    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
65957    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
65954    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
65955    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
65956    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
65958    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
65959    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
65960    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
65961    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
65962    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
65963    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
65964    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
65965    l_rec_acct_attrs.array_num_value(24)  := p_source_143;
65966    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
65967    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
65968    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
65969    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
65970    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
65971    l_rec_acct_attrs.array_date_value(27)  := p_source_65;
65972    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
65973    l_rec_acct_attrs.array_char_value(28)  := p_source_66;
65974    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
65975    l_rec_acct_attrs.array_date_value(29)  := p_source_67;
65976    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
65977    l_rec_acct_attrs.array_char_value(30)  := p_source_68;
65978    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
65979    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
65980    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
65981    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
65982    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
65983    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
65984    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
65985    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
65986    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
65987    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
65988    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
65989    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
65990    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
65991    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
65992    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
65993    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
65994    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
65995    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
65996 
65997    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
65998    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
65999 
66000    ---------------------------------------------------------------------------------------------------------------
66001    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
66002    ---------------------------------------------------------------------------------------------------------------
66003    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
66004 
66005    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66006    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66007 
66008    IF xla_accounting_cache_pkg.GetValueChar
66009          (p_source_code         => 'LEDGER_CATEGORY_CODE'
66010          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
66011    AND l_bflow_method_code = 'PRIOR_ENTRY'
66012 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
66013    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
66014          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
66015        )
66016    THEN
66017          xla_ae_lines_pkg.BflowUpgEntry
66018            (p_business_method_code    => l_bflow_method_code
66019            ,p_business_class_code     => l_bflow_class_code
66020            ,p_balance_type            => l_balance_type_code);
66021    ELSE
66022       NULL;
66023 XLA_AE_LINES_PKG.business_flow_validation(
66024                                 p_business_method_code     => l_bflow_method_code
66025                                ,p_business_class_code      => l_bflow_class_code
66026                                ,p_inherit_description_flag => l_inherit_desc_flag);
66027    END IF;
66028 
66029    --
66030    -- call analytical criteria
66031    --
66032    -- Inherited Analytical Criteria for business flow method of Prior Entry.
66033    --
66034    -- call description
66035    --
66036    -- No description or it is inherited.
66037    --
66038    -- call ADRs
66039    -- Bug 4922099
66040    --
66041    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66042         (NVL(l_actual_upg_option, 'N') = 'O') OR
66043         (NVL(l_enc_upg_option, 'N') = 'O')
66044       )
66045    THEN
66046    NULL;
66047    --
66048    --
66049    
66050    --
66051    --
66052    END IF;
66053    --
66054    -- Bug 4922099
66055    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
66056           (NVL(l_enc_upg_option, 'N') = 'O')
66057         ) AND
66058         (l_bflow_method_code = 'PRIOR_ENTRY')
66059       )
66060    THEN
66061       IF
66062       --
66066       xla_accounting_err_pkg.build_message
66063       1 = 1
66064       --
66065       THEN
66067                                     (p_appli_s_name            => 'XLA'
66068                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66069                                     ,p_token_1                 => 'LINE_NUMBER'
66070                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
66071                                     ,p_token_2                 => 'LINE_TYPE_NAME'
66072                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
66073                                                                              l_component_type
66074                                                                             ,l_component_code
66075                                                                             ,l_component_type_code
66076                                                                             ,l_component_appl_id
66077                                                                             ,l_amb_context_code
66078                                                                             ,l_entity_code
66079                                                                             ,l_event_class_code
66080                                                                            )
66081                                     ,p_token_3                 => 'OWNER'
66082                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
66083                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
66084                                                                           ,p_lookup_code    => l_component_type_code
66085                                                                          )
66086                                     ,p_token_4                 => 'PRODUCT_NAME'
66087                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
66088                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
66089                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
66090                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
66091                                     ,p_ae_header_id            =>  NULL
66092                                        );
66093 
66094         IF (C_LEVEL_ERROR>= g_log_level) THEN
66095                  trace
66096                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66097                       ,p_level    => C_LEVEL_ERROR
66098                       ,p_module   => l_log_module);
66099         END IF;
66100       END IF;
66101    END IF;
66102    --
66103    --
66104    ------------------------------------------------------------------------------------------------
66105    -- 4219869 Business Flow
66106    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
66107    -- Prior Entry.  Currently, the following code is always generated.
66108    ------------------------------------------------------------------------------------------------
66109    -- No ValidateCurrentLine for business flow method of Prior Entry
66110 
66111    ------------------------------------------------------------------------------------
66112    -- 4219869 Business Flow
66113    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
66114    ------------------------------------------------------------------------------------
66115    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66116 
66117    ----------------------------------------------------------------------------------
66118    -- 4219869 Business Flow
66119    -- Update journal entry status -- Need to generate this within IF <condition>
66120    ----------------------------------------------------------------------------------
66121    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66122          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
66123          ,p_balance_type_code => l_balance_type_code
66124          );
66125 
66126    -------------------------------------------------------------------------------------------
66127    -- 4262811 - Generate the Accrual Reversal lines
66128    -------------------------------------------------------------------------------------------
66129    BEGIN
66130       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
66131                               (g_array_event(p_event_id).array_value_num('header_index'));
66132       IF l_acc_rev_flag IS NULL THEN
66133          l_acc_rev_flag := 'N';
66134       END IF;
66135    EXCEPTION
66136       WHEN OTHERS THEN
66137          l_acc_rev_flag := 'N';
66138    END;
66139    --
66140    IF (l_acc_rev_flag = 'Y') THEN
66141 
66142        -- 4645092  ------------------------------------------------------------------------------
66143        -- To allow MPA report to determine if it should generate report process
66144        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
66145        ------------------------------------------------------------------------------------------
66146 
66147        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
66148        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
66149    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
66150    -- call ADRs
66151    -- Bug 4922099
66152    --
66153    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66154         (NVL(l_actual_upg_option, 'N') = 'O') OR
66155         (NVL(l_enc_upg_option, 'N') = 'O')
66156       )
66157    THEN
66158    NULL;
66159    --
66160    --
66161    
66162    --
66163    --
66164    END IF;
66165 
66166        --
66170                                          p_header_num   => 1);
66167        -- Update the line information that should be overwritten
66168        --
66169        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
66171        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
66172 
66173        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
66174 
66175        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
66176           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
66177        END IF;
66178 
66179       --
66180       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
66181       --
66182       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
66183           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
66184       ELSE
66185           ---------------------------------------------------------------------------------------------------
66186           -- 4262811a Switch Sign
66187           ---------------------------------------------------------------------------------------------------
66188           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
66189           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66190                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66191           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66192                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66193           -- 5132302
66194           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
66195                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66196 
66197       END IF;
66198 
66199       -- 4955764
66200       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66201       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
66202 
66203 
66204       XLA_AE_LINES_PKG.ValidateCurrentLine;
66205       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66206 
66207       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66208                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
66209                ,p_balance_type_code => l_balance_type_code);
66210 
66211    END IF;
66212 
66213    -----------------------------------------------------------------------------------------
66214    -- 4262811 Multiperiod Accounting
66215    -----------------------------------------------------------------------------------------
66216      -- No MPA option is assigned.
66217 
66218 
66219 END IF;
66220 END IF;
66221 --
66222 
66223 --
66224 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66225    trace
66226       (p_msg      => 'END of AcctLineType_129'
66227       ,p_level    => C_LEVEL_PROCEDURE
66228       ,p_module   => l_log_module);
66229 END IF;
66230 --
66231 EXCEPTION
66232   WHEN xla_exceptions_pkg.application_exception THEN
66233       RAISE;
66234   WHEN OTHERS THEN
66235        xla_exceptions_pkg.raise_message
66236            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_129');
66237 END AcctLineType_129;
66238 --
66239 
66240 ---------------------------------------
66241 --
66242 -- PRIVATE FUNCTION
66243 --         AcctLineType_130
66244 --
66245 ---------------------------------------
66246 PROCEDURE AcctLineType_130 (
66247   p_application_id        IN NUMBER
66248  ,p_event_id              IN NUMBER
66249  ,p_calculate_acctd_flag  IN VARCHAR2
66250  ,p_calculate_g_l_flag    IN VARCHAR2
66251  ,p_actual_flag           IN OUT VARCHAR2
66252  ,p_balance_type_code     OUT VARCHAR2
66253  ,p_gain_or_loss_ref      OUT VARCHAR2
66254  
66255 --Invoice Distribution Type
66256  , p_source_21            IN VARCHAR2
66257  , p_source_21_meaning    IN VARCHAR2
66258 --Accounting Reversal Indicator
66259  , p_source_41            IN VARCHAR2
66260 --Distribution Link Type
66261  , p_source_43            IN VARCHAR2
66262 --Allocation to Main Distribution Identifier
66263  , p_source_45            IN NUMBER
66264 --Invoice Identifier
66265  , p_source_46            IN NUMBER
66266 --Invoice Distribution Identifier
66267  , p_source_52            IN NUMBER
66268 --Payables Encumbrance Upgrade Credit Account
66269  , p_source_53            IN NUMBER
66270 --Payables Encumbrance Upgrade Credit Amount
66271  , p_source_54            IN NUMBER
66272 --Invoice Currency Code
66273  , p_source_55            IN VARCHAR2
66274 --Payables Encumbrance Upgrade Credit Base Amount
66275  , p_source_56            IN NUMBER
66276 --Payables Encumbrance Upgrade Debit Account
66277  , p_source_57            IN NUMBER
66278 --Payables Encumbrance Upgrade Debit Amount
66279  , p_source_58            IN NUMBER
66280 --Payables Encumbrance Upgrade Debit Base Amount
66281  , p_source_59            IN NUMBER
66282 --Payables Encumbrance Upgrade Option
66283  , p_source_60            IN VARCHAR2
66284 --Deferred Accounting End Date
66285  , p_source_65            IN DATE
66286 --Deferred Accounting Option
66287  , p_source_66            IN VARCHAR2
66288 --Deferred Accounting Start Date
66289  , p_source_67            IN DATE
66290 --Override Accounted Amount Indicator
66291  , p_source_68            IN VARCHAR2
66292  , p_source_68_meaning    IN VARCHAR2
66293 --Third Party Type
66297 --Invoice Distribution Statistical Amount
66294  , p_source_71            IN VARCHAR2
66295 --Parent Reversal Identifier
66296  , p_source_72            IN NUMBER
66298  , p_source_73            IN NUMBER
66299 --Invoice Distribution Tax Line Identifier
66300  , p_source_74            IN NUMBER
66301 --Invoice Distribution Tax Distribution Identifier from Tax
66302  , p_source_75            IN NUMBER
66303 --Invoice Distribution Summary Tax Line Identifier
66304  , p_source_76            IN NUMBER
66305 --Payables Upgrade Credit Encumbrance Type Identifier
66306  , p_source_77            IN NUMBER
66307 --Payables Upgrade Debit Encumbrance Type Identifier
66308  , p_source_78            IN NUMBER
66309 --Business Flow Accounts Payable Application Identifier
66310  , p_source_79            IN NUMBER
66311 --Business Flow Invoice Distribution Type
66312  , p_source_80            IN VARCHAR2
66313 --Business Flow Invoice Entity Code
66314  , p_source_81            IN VARCHAR2
66315 --Business Flow Invoice Distribution Identifier
66316  , p_source_82            IN NUMBER
66317 --Business Flow Invoice Identifier
66318  , p_source_83            IN NUMBER
66319 --Purchasing Encumbrance Option
66320  , p_source_86            IN VARCHAR2
66321  , p_source_86_meaning    IN VARCHAR2
66322 --Invoice Encumbered Option
66323  , p_source_87            IN VARCHAR2
66324  , p_source_87_meaning    IN VARCHAR2
66325 --Invoice Distribution Encumbrance Amount
66326  , p_source_143            IN NUMBER
66327 --Invoice Distribution Encumbrance Ledger Amount
66328  , p_source_144            IN NUMBER
66329 )
66330 IS
66331 
66332 l_component_type              VARCHAR2(80);
66333 l_component_code              VARCHAR2(30);
66334 l_component_type_code         VARCHAR2(1);
66335 l_component_appl_id           INTEGER;
66336 l_amb_context_code            VARCHAR2(30);
66337 l_entity_code                 VARCHAR2(30);
66338 l_event_class_code            VARCHAR2(30);
66339 l_ae_header_id                NUMBER;
66340 l_event_type_code             VARCHAR2(30);
66341 l_line_definition_code        VARCHAR2(30);
66342 l_line_definition_owner_code  VARCHAR2(1);
66343 --
66344 -- adr variables
66345 l_segment                     VARCHAR2(30);
66346 l_ccid                        NUMBER;
66347 l_adr_transaction_coa_id      NUMBER;
66348 l_adr_accounting_coa_id       NUMBER;
66349 l_adr_flexfield_segment_code  VARCHAR2(30);
66350 l_adr_flex_value_set_id       NUMBER;
66351 l_adr_value_type_code         VARCHAR2(30);
66352 l_adr_value_combination_id    NUMBER;
66353 l_adr_value_segment_code      VARCHAR2(30);
66354 
66355 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
66356 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
66357 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
66358 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
66359 
66360 -- 4262811 Variables ------------------------------------------------------------------------------------------
66361 l_entered_amt_idx             NUMBER;
66362 l_accted_amt_idx              NUMBER;
66363 l_acc_rev_flag                VARCHAR2(1);
66364 l_accrual_line_num            NUMBER;
66365 l_tmp_amt                     NUMBER;
66366 l_acc_rev_natural_side_code   VARCHAR2(1);
66367 
66368 l_num_entries                 NUMBER;
66369 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
66370 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
66371 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
66372 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
66373 l_recog_line_1                NUMBER;
66374 l_recog_line_2                NUMBER;
66375 
66376 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
66377 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
66378 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
66379 
66380 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
66381 
66382 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
66383 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
66384 
66385 ---------------------------------------------------------------------------------------------------------------
66386 
66387 
66388 --
66389 -- bulk performance
66390 --
66391 l_balance_type_code           VARCHAR2(1);
66392 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
66393 l_log_module                  VARCHAR2(240);
66394 
66395 --
66396 -- Upgrade strategy
66397 --
66398 l_actual_upg_option           VARCHAR2(1);
66399 l_enc_upg_option           VARCHAR2(1);
66400 
66401 --
66402 BEGIN
66403 --
66404 IF g_log_enabled THEN
66405       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_130';
66406 END IF;
66407 --
66408 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66409 
66410       trace
66411          (p_msg      => 'BEGIN of AcctLineType_130'
66412          ,p_level    => C_LEVEL_PROCEDURE
66413          ,p_module   => l_log_module);
66414 
66415 END IF;
66416 --
66417 l_component_type             := 'AMB_JLT';
66418 l_component_code             := 'AP_FREIGHT_EXPENSE_PP_ENC';
66419 l_component_type_code        := 'S';
66420 l_component_appl_id          :=  200;
66421 l_amb_context_code           := 'DEFAULT';
66422 l_entity_code                := 'AP_INVOICES';
66423 l_event_class_code           := 'PREPAYMENTS';
66424 l_event_type_code            := 'PREPAYMENTS_ALL';
66425 l_line_definition_owner_code := 'S';
66426 l_line_definition_code       := 'ENC_REV_PREPAY_ALL';
66427 --
66431 l_adr_transaction_coa_id      := NULL;
66428 l_balance_type_code          := 'E';
66429 l_segment                     := NULL;
66430 l_ccid                        := NULL;
66432 l_adr_accounting_coa_id       := NULL;
66433 l_adr_flexfield_segment_code  := NULL;
66434 l_adr_flex_value_set_id       := NULL;
66435 l_adr_value_type_code         := NULL;
66436 l_adr_value_combination_id    := NULL;
66437 l_adr_value_segment_code      := NULL;
66438 
66439 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
66440 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
66441 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
66442 l_budgetary_control_flag     := 'N';
66443 
66444 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
66445 l_bflow_applied_to_amt       := NULL; -- 5132302
66446 l_entered_amt_idx            := NULL;          -- 4262811
66447 l_accted_amt_idx             := NULL;          -- 4262811
66448 l_acc_rev_flag               := NULL;          -- 4262811
66449 l_accrual_line_num           := NULL;          -- 4262811
66450 l_tmp_amt                    := NULL;          -- 4262811
66451 --
66452  
66453 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
66454     l_balance_type_code <> 'B' THEN
66455 IF NVL(p_source_21,'
66456 ') =  'FREIGHT' AND 
66457 NVL(p_source_86,'
66458 ') =  'Y' AND 
66459 NVL(p_source_87,'
66460 ') =  'Y'
66461  THEN 
66462 
66463    --
66464    XLA_AE_LINES_PKG.SetNewLine;
66465 
66466    p_balance_type_code          := l_balance_type_code;
66467    -- set the flag so later we will know whether the gain loss line needs to be created
66468    
66469    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
66470      p_actual_flag :='A';
66471    END IF;
66472 
66473    --
66474    -- bulk performance
66475    --
66476    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
66477                                       p_header_num   => 0); -- 4262811
66478    --
66479    -- set accounting line options
66480    --
66481    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
66482            p_natural_side_code          => 'C'
66483          , p_gain_or_loss_flag          => 'N'
66484          , p_gl_transfer_mode_code      => 'S'
66485          , p_acct_entry_type_code       => 'E'
66486          , p_switch_side_flag           => 'Y'
66487          , p_merge_duplicate_code       => 'A'
66488          );
66489    --
66490    l_acc_rev_natural_side_code := 'D';  -- 4262811
66491    -- 
66492    --
66493    -- set accounting line type info
66494    --
66495    xla_ae_lines_pkg.SetAcctLineType
66496       (p_component_type             => l_component_type
66497       ,p_event_type_code            => l_event_type_code
66498       ,p_line_definition_owner_code => l_line_definition_owner_code
66499       ,p_line_definition_code       => l_line_definition_code
66500       ,p_accounting_line_code       => l_component_code
66501       ,p_accounting_line_type_code  => l_component_type_code
66502       ,p_accounting_line_appl_id    => l_component_appl_id
66503       ,p_amb_context_code           => l_amb_context_code
66504       ,p_entity_code                => l_entity_code
66505       ,p_event_class_code           => l_event_class_code);
66506    --
66507    -- set accounting class
66508    --
66509    xla_ae_lines_pkg.SetAcctClass(
66510            p_accounting_class_code  => 'FREIGHT'
66511          , p_ae_header_id           => l_ae_header_id
66512          );
66513 
66514    --
66515    -- set rounding class
66516    --
66517    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
66518                       'FREIGHT';
66519 
66520    --
66521    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
66522    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
66523    --
66524    -- bulk performance
66525    --
66526    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
66527 
66528    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
66529       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
66530 
66531    -- 4955764
66532    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66533       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
66534 
66535    -- 4458381 Public Sector Enh
66536    
66537    --
66538    -- set accounting attributes for the line type
66539    --
66540    l_entered_amt_idx := 23;
66541    l_accted_amt_idx  := 25;
66542    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
66543    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
66544    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
66545    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
66546    l_rec_acct_attrs.array_num_value(2)  := 
66547 xla_ae_sources_pkg.GetSystemSourceNum(
66548    p_source_code           => 'XLA_EVENT_APPL_ID'
66549  , p_source_type_code      => 'Y'
66550  , p_source_application_id =>  602
66551 );
66552    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
66553    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
66554    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
66555    l_rec_acct_attrs.array_char_value(4)  := 
66556 xla_ae_sources_pkg.GetSystemSourceChar(
66557    p_source_code           => 'XLA_ENTITY_CODE'
66558  , p_source_type_code      => 'Y'
66559  , p_source_application_id =>  602
66560 );
66564    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
66561    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
66562    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
66563    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
66565    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
66566    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
66567    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
66568    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
66569    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
66570    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
66571    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
66572    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
66573    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
66574    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
66575    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
66576    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
66577    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
66578    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
66579    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
66580    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
66581    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
66582    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
66583    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
66584    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
66585    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
66586    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
66587    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
66588    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
66589    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
66590    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
66591    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
66592    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
66593    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
66594    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
66595    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
66596    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
66597    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
66598    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
66599    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
66600    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
66601    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
66602    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
66603    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
66604    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
66605    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
66606    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
66607    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
66608    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
66609    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
66610    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
66611    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
66612    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
66613    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
66614    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
66615    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
66616    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
66617    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
66618    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
66619    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
66620    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
66621    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
66622    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
66623    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
66624    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
66625    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
66626    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
66627    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
66628    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
66629 
66630    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
66631    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
66632 
66633    ---------------------------------------------------------------------------------------------------------------
66634    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
66635    ---------------------------------------------------------------------------------------------------------------
66636    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
66637 
66638    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66639    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66640 
66641    IF xla_accounting_cache_pkg.GetValueChar
66642          (p_source_code         => 'LEDGER_CATEGORY_CODE'
66643          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
66644    AND l_bflow_method_code = 'PRIOR_ENTRY'
66645 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
66646    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
66647          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
66648        )
66649    THEN
66653            ,p_balance_type            => l_balance_type_code);
66650          xla_ae_lines_pkg.BflowUpgEntry
66651            (p_business_method_code    => l_bflow_method_code
66652            ,p_business_class_code     => l_bflow_class_code
66654    ELSE
66655       NULL;
66656 XLA_AE_LINES_PKG.business_flow_validation(
66657                                 p_business_method_code     => l_bflow_method_code
66658                                ,p_business_class_code      => l_bflow_class_code
66659                                ,p_inherit_description_flag => l_inherit_desc_flag);
66660    END IF;
66661 
66662    --
66663    -- call analytical criteria
66664    --
66665    -- Inherited Analytical Criteria for business flow method of Prior Entry.
66666    --
66667    -- call description
66668    --
66669    -- No description or it is inherited.
66670    --
66671    -- call ADRs
66672    -- Bug 4922099
66673    --
66674    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66675         (NVL(l_actual_upg_option, 'N') = 'O') OR
66676         (NVL(l_enc_upg_option, 'N') = 'O')
66677       )
66678    THEN
66679    NULL;
66680    --
66681    --
66682    
66683    --
66684    --
66685    END IF;
66686    --
66687    -- Bug 4922099
66688    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
66689           (NVL(l_enc_upg_option, 'N') = 'O')
66690         ) AND
66691         (l_bflow_method_code = 'PRIOR_ENTRY')
66692       )
66693    THEN
66694       IF
66695       --
66696       1 = 1
66697       --
66698       THEN
66699       xla_accounting_err_pkg.build_message
66700                                     (p_appli_s_name            => 'XLA'
66701                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66702                                     ,p_token_1                 => 'LINE_NUMBER'
66703                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
66704                                     ,p_token_2                 => 'LINE_TYPE_NAME'
66705                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
66706                                                                              l_component_type
66707                                                                             ,l_component_code
66708                                                                             ,l_component_type_code
66709                                                                             ,l_component_appl_id
66710                                                                             ,l_amb_context_code
66711                                                                             ,l_entity_code
66712                                                                             ,l_event_class_code
66713                                                                            )
66714                                     ,p_token_3                 => 'OWNER'
66715                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
66716                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
66717                                                                           ,p_lookup_code    => l_component_type_code
66718                                                                          )
66719                                     ,p_token_4                 => 'PRODUCT_NAME'
66720                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
66721                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
66722                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
66723                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
66724                                     ,p_ae_header_id            =>  NULL
66725                                        );
66726 
66727         IF (C_LEVEL_ERROR>= g_log_level) THEN
66728                  trace
66729                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66730                       ,p_level    => C_LEVEL_ERROR
66731                       ,p_module   => l_log_module);
66732         END IF;
66733       END IF;
66734    END IF;
66735    --
66736    --
66737    ------------------------------------------------------------------------------------------------
66738    -- 4219869 Business Flow
66739    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
66740    -- Prior Entry.  Currently, the following code is always generated.
66741    ------------------------------------------------------------------------------------------------
66742    -- No ValidateCurrentLine for business flow method of Prior Entry
66743 
66744    ------------------------------------------------------------------------------------
66745    -- 4219869 Business Flow
66746    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
66747    ------------------------------------------------------------------------------------
66748    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66749 
66750    ----------------------------------------------------------------------------------
66751    -- 4219869 Business Flow
66752    -- Update journal entry status -- Need to generate this within IF <condition>
66753    ----------------------------------------------------------------------------------
66754    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66755          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
66756          ,p_balance_type_code => l_balance_type_code
66757          );
66758 
66759    -------------------------------------------------------------------------------------------
66763       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
66760    -- 4262811 - Generate the Accrual Reversal lines
66761    -------------------------------------------------------------------------------------------
66762    BEGIN
66764                               (g_array_event(p_event_id).array_value_num('header_index'));
66765       IF l_acc_rev_flag IS NULL THEN
66766          l_acc_rev_flag := 'N';
66767       END IF;
66768    EXCEPTION
66769       WHEN OTHERS THEN
66770          l_acc_rev_flag := 'N';
66771    END;
66772    --
66773    IF (l_acc_rev_flag = 'Y') THEN
66774 
66775        -- 4645092  ------------------------------------------------------------------------------
66776        -- To allow MPA report to determine if it should generate report process
66777        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
66778        ------------------------------------------------------------------------------------------
66779 
66780        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
66781        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
66782    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
66783    -- call ADRs
66784    -- Bug 4922099
66785    --
66786    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66787         (NVL(l_actual_upg_option, 'N') = 'O') OR
66788         (NVL(l_enc_upg_option, 'N') = 'O')
66789       )
66790    THEN
66791    NULL;
66792    --
66793    --
66794    
66795    --
66796    --
66797    END IF;
66798 
66799        --
66800        -- Update the line information that should be overwritten
66801        --
66802        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
66803                                          p_header_num   => 1);
66804        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
66805 
66806        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
66807 
66808        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
66809           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
66810        END IF;
66811 
66812       --
66813       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
66814       --
66815       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
66816           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
66817       ELSE
66818           ---------------------------------------------------------------------------------------------------
66819           -- 4262811a Switch Sign
66820           ---------------------------------------------------------------------------------------------------
66821           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
66822           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66823                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66824           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66825                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66826           -- 5132302
66827           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
66828                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66829 
66830       END IF;
66831 
66832       -- 4955764
66833       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66834       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
66835 
66836 
66837       XLA_AE_LINES_PKG.ValidateCurrentLine;
66838       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66839 
66840       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66841                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
66842                ,p_balance_type_code => l_balance_type_code);
66843 
66844    END IF;
66845 
66846    -----------------------------------------------------------------------------------------
66847    -- 4262811 Multiperiod Accounting
66848    -----------------------------------------------------------------------------------------
66849      -- No MPA option is assigned.
66850 
66851 
66852 END IF;
66853 END IF;
66854 --
66855 
66856 --
66857 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66858    trace
66859       (p_msg      => 'END of AcctLineType_130'
66860       ,p_level    => C_LEVEL_PROCEDURE
66861       ,p_module   => l_log_module);
66862 END IF;
66863 --
66864 EXCEPTION
66865   WHEN xla_exceptions_pkg.application_exception THEN
66866       RAISE;
66867   WHEN OTHERS THEN
66868        xla_exceptions_pkg.raise_message
66869            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_130');
66870 END AcctLineType_130;
66871 --
66872 
66873 ---------------------------------------
66874 --
66875 -- PRIVATE FUNCTION
66876 --         AcctLineType_131
66877 --
66878 ---------------------------------------
66879 PROCEDURE AcctLineType_131 (
66880   p_application_id        IN NUMBER
66881  ,p_event_id              IN NUMBER
66882  ,p_calculate_acctd_flag  IN VARCHAR2
66883  ,p_calculate_g_l_flag    IN VARCHAR2
66884  ,p_actual_flag           IN OUT VARCHAR2
66888 --Invoice Distribution Description
66885  ,p_balance_type_code     OUT VARCHAR2
66886  ,p_gain_or_loss_ref      OUT VARCHAR2
66887  
66889  , p_source_1            IN VARCHAR2
66890 --Invoice Distribution Ledger Amount
66891  , p_source_9            IN NUMBER
66892 --Invoice Distribution Account
66893  , p_source_18            IN NUMBER
66894 --Invoice Distribution Type
66895  , p_source_21            IN VARCHAR2
66896  , p_source_21_meaning    IN VARCHAR2
66897 --Accounting Reversal Indicator
66898  , p_source_41            IN VARCHAR2
66899 --Distribution Link Type
66900  , p_source_43            IN VARCHAR2
66901 --Allocation to Main Distribution Identifier
66902  , p_source_45            IN NUMBER
66903 --Invoice Identifier
66904  , p_source_46            IN NUMBER
66905 --Invoice Distribution Identifier
66906  , p_source_52            IN NUMBER
66907 --Payables Encumbrance Upgrade Credit Account
66908  , p_source_53            IN NUMBER
66909 --Payables Encumbrance Upgrade Credit Amount
66910  , p_source_54            IN NUMBER
66911 --Invoice Currency Code
66912  , p_source_55            IN VARCHAR2
66913 --Payables Encumbrance Upgrade Credit Base Amount
66914  , p_source_56            IN NUMBER
66915 --Payables Encumbrance Upgrade Debit Account
66916  , p_source_57            IN NUMBER
66917 --Payables Encumbrance Upgrade Debit Amount
66918  , p_source_58            IN NUMBER
66919 --Payables Encumbrance Upgrade Debit Base Amount
66920  , p_source_59            IN NUMBER
66921 --Payables Encumbrance Upgrade Option
66922  , p_source_60            IN VARCHAR2
66923 --Invoice Distribution Amount
66924  , p_source_61            IN NUMBER
66925 --Deferred Accounting End Date
66926  , p_source_65            IN DATE
66927 --Deferred Accounting Option
66928  , p_source_66            IN VARCHAR2
66929 --Deferred Accounting Start Date
66930  , p_source_67            IN DATE
66931 --Override Accounted Amount Indicator
66932  , p_source_68            IN VARCHAR2
66933  , p_source_68_meaning    IN VARCHAR2
66934 --Invoice Supplier Identifier
66935  , p_source_69            IN NUMBER
66936 --Invoice Supplier Site Identifier
66937  , p_source_70            IN NUMBER
66938 --Third Party Type
66939  , p_source_71            IN VARCHAR2
66940 --Parent Reversal Identifier
66941  , p_source_72            IN NUMBER
66942 --Invoice Distribution Statistical Amount
66943  , p_source_73            IN NUMBER
66944 --Invoice Distribution Tax Line Identifier
66945  , p_source_74            IN NUMBER
66946 --Invoice Distribution Tax Distribution Identifier from Tax
66947  , p_source_75            IN NUMBER
66948 --Invoice Distribution Summary Tax Line Identifier
66949  , p_source_76            IN NUMBER
66950 --Payables Upgrade Credit Encumbrance Type Identifier
66951  , p_source_77            IN NUMBER
66952 --Payables Upgrade Debit Encumbrance Type Identifier
66953  , p_source_78            IN NUMBER
66954 --Business Flow Accounts Payable Application Identifier
66955  , p_source_79            IN NUMBER
66956 --Business Flow Invoice Distribution Type
66957  , p_source_80            IN VARCHAR2
66958 --Business Flow Invoice Entity Code
66959  , p_source_81            IN VARCHAR2
66960 --Business Flow Invoice Distribution Identifier
66961  , p_source_82            IN NUMBER
66962 --Business Flow Invoice Identifier
66963  , p_source_83            IN NUMBER
66964 --Invoice Exchange Date
66965  , p_source_136            IN DATE
66966 --Invoice Exchange Rate
66967  , p_source_137            IN NUMBER
66968 --Invoice Exchange Rate Type
66969  , p_source_138            IN VARCHAR2
66970 )
66971 IS
66972 
66973 l_component_type              VARCHAR2(80);
66974 l_component_code              VARCHAR2(30);
66975 l_component_type_code         VARCHAR2(1);
66976 l_component_appl_id           INTEGER;
66977 l_amb_context_code            VARCHAR2(30);
66978 l_entity_code                 VARCHAR2(30);
66979 l_event_class_code            VARCHAR2(30);
66980 l_ae_header_id                NUMBER;
66981 l_event_type_code             VARCHAR2(30);
66982 l_line_definition_code        VARCHAR2(30);
66983 l_line_definition_owner_code  VARCHAR2(1);
66984 --
66985 -- adr variables
66986 l_segment                     VARCHAR2(30);
66987 l_ccid                        NUMBER;
66988 l_adr_transaction_coa_id      NUMBER;
66989 l_adr_accounting_coa_id       NUMBER;
66990 l_adr_flexfield_segment_code  VARCHAR2(30);
66991 l_adr_flex_value_set_id       NUMBER;
66992 l_adr_value_type_code         VARCHAR2(30);
66993 l_adr_value_combination_id    NUMBER;
66994 l_adr_value_segment_code      VARCHAR2(30);
66995 
66996 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
66997 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
66998 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
66999 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
67000 
67001 -- 4262811 Variables ------------------------------------------------------------------------------------------
67002 l_entered_amt_idx             NUMBER;
67003 l_accted_amt_idx              NUMBER;
67004 l_acc_rev_flag                VARCHAR2(1);
67005 l_accrual_line_num            NUMBER;
67006 l_tmp_amt                     NUMBER;
67007 l_acc_rev_natural_side_code   VARCHAR2(1);
67008 
67009 l_num_entries                 NUMBER;
67010 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
67011 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
67012 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
67013 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
67014 l_recog_line_1                NUMBER;
67015 l_recog_line_2                NUMBER;
67016 
67020 
67017 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
67018 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
67019 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
67021 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
67022 
67023 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
67024 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
67025 
67026 ---------------------------------------------------------------------------------------------------------------
67027 
67028 
67029 --
67030 -- bulk performance
67031 --
67032 l_balance_type_code           VARCHAR2(1);
67033 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
67034 l_log_module                  VARCHAR2(240);
67035 
67036 --
67037 -- Upgrade strategy
67038 --
67039 l_actual_upg_option           VARCHAR2(1);
67040 l_enc_upg_option           VARCHAR2(1);
67041 
67042 --
67043 BEGIN
67044 --
67045 IF g_log_enabled THEN
67046       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_131';
67047 END IF;
67048 --
67049 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67050 
67051       trace
67052          (p_msg      => 'BEGIN of AcctLineType_131'
67053          ,p_level    => C_LEVEL_PROCEDURE
67054          ,p_module   => l_log_module);
67055 
67056 END IF;
67057 --
67058 l_component_type             := 'AMB_JLT';
67059 l_component_code             := 'AP_FREIGHT_EXPENSE_PREPAY';
67060 l_component_type_code        := 'S';
67061 l_component_appl_id          :=  200;
67062 l_amb_context_code           := 'DEFAULT';
67063 l_entity_code                := 'AP_INVOICES';
67064 l_event_class_code           := 'PREPAYMENTS';
67065 l_event_type_code            := 'PREPAYMENTS_ALL';
67066 l_line_definition_owner_code := 'S';
67067 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
67068 --
67069 l_balance_type_code          := 'A';
67070 l_segment                     := NULL;
67071 l_ccid                        := NULL;
67072 l_adr_transaction_coa_id      := NULL;
67073 l_adr_accounting_coa_id       := NULL;
67074 l_adr_flexfield_segment_code  := NULL;
67075 l_adr_flex_value_set_id       := NULL;
67076 l_adr_value_type_code         := NULL;
67077 l_adr_value_combination_id    := NULL;
67078 l_adr_value_segment_code      := NULL;
67079 
67080 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
67081 l_bflow_class_code           := '';    -- 4219869 Business Flow
67082 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
67083 l_budgetary_control_flag     := 'N';
67084 
67085 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
67086 l_bflow_applied_to_amt       := NULL; -- 5132302
67087 l_entered_amt_idx            := NULL;          -- 4262811
67088 l_accted_amt_idx             := NULL;          -- 4262811
67089 l_acc_rev_flag               := NULL;          -- 4262811
67090 l_accrual_line_num           := NULL;          -- 4262811
67091 l_tmp_amt                    := NULL;          -- 4262811
67092 --
67093  
67094 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
67095     l_balance_type_code <> 'B' THEN
67096 IF NVL(p_source_21,'
67097 ') =  'FREIGHT'
67098  THEN 
67099 
67100    --
67101    XLA_AE_LINES_PKG.SetNewLine;
67102 
67103    p_balance_type_code          := l_balance_type_code;
67104    -- set the flag so later we will know whether the gain loss line needs to be created
67105    
67106    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
67107      p_actual_flag :='A';
67108    END IF;
67109 
67110    --
67111    -- bulk performance
67112    --
67113    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
67114                                       p_header_num   => 0); -- 4262811
67115    --
67116    -- set accounting line options
67117    --
67118    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
67119            p_natural_side_code          => 'D'
67120          , p_gain_or_loss_flag          => 'N'
67121          , p_gl_transfer_mode_code      => 'S'
67122          , p_acct_entry_type_code       => 'A'
67123          , p_switch_side_flag           => 'Y'
67124          , p_merge_duplicate_code       => 'A'
67125          );
67126    --
67127    l_acc_rev_natural_side_code := 'C';  -- 4262811
67128    -- 
67129    --
67130    -- set accounting line type info
67131    --
67132    xla_ae_lines_pkg.SetAcctLineType
67133       (p_component_type             => l_component_type
67134       ,p_event_type_code            => l_event_type_code
67135       ,p_line_definition_owner_code => l_line_definition_owner_code
67136       ,p_line_definition_code       => l_line_definition_code
67137       ,p_accounting_line_code       => l_component_code
67138       ,p_accounting_line_type_code  => l_component_type_code
67139       ,p_accounting_line_appl_id    => l_component_appl_id
67140       ,p_amb_context_code           => l_amb_context_code
67141       ,p_entity_code                => l_entity_code
67142       ,p_event_class_code           => l_event_class_code);
67143    --
67144    -- set accounting class
67145    --
67146    xla_ae_lines_pkg.SetAcctClass(
67147            p_accounting_class_code  => 'FREIGHT'
67148          , p_ae_header_id           => l_ae_header_id
67149          );
67150 
67151    --
67152    -- set rounding class
67153    --
67154    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
67155                       'FREIGHT';
67156 
67157    --
67161    -- bulk performance
67158    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
67159    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
67160    --
67162    --
67163    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
67164 
67165    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
67166       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
67167 
67168    -- 4955764
67169    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67170       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
67171 
67172    -- 4458381 Public Sector Enh
67173    
67174    --
67175    -- set accounting attributes for the line type
67176    --
67177    l_entered_amt_idx := 23;
67178    l_accted_amt_idx  := 28;
67179    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
67180    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
67181    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
67182    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
67183    l_rec_acct_attrs.array_num_value(2)  := 
67184 xla_ae_sources_pkg.GetSystemSourceNum(
67185    p_source_code           => 'XLA_EVENT_APPL_ID'
67186  , p_source_type_code      => 'Y'
67187  , p_source_application_id =>  602
67188 );
67189    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
67190    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
67191    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
67192    l_rec_acct_attrs.array_char_value(4)  := 
67193 xla_ae_sources_pkg.GetSystemSourceChar(
67194    p_source_code           => 'XLA_ENTITY_CODE'
67195  , p_source_type_code      => 'Y'
67196  , p_source_application_id =>  602
67197 );
67198    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
67199    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
67200    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
67201    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
67202    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
67203    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
67204    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
67205    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
67206    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
67207    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
67208    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
67209    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
67210    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
67211    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
67212    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
67213    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
67214    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
67215    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
67216    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
67217    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
67218    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
67219    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
67220    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
67221    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
67222    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
67223    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
67224    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
67225    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
67226    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
67227    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
67228    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
67229    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
67230    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
67231    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
67232    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
67233    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
67234    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
67235    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
67236    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
67237    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
67238    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
67239    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
67240    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
67241    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
67242    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
67243    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
67244    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
67245    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
67246    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
67247    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
67248    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
67249    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
67250    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
67251    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
67252    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
67253    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
67254    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
67255    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
67259    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
67256    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
67257    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
67258    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
67260    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
67261    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
67262    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
67263    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
67264    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
67265    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
67266    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
67267    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
67268    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
67269    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
67270    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
67271    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
67272    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
67273    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
67274    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
67275    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
67276 
67277    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
67278    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
67279 
67280    ---------------------------------------------------------------------------------------------------------------
67281    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
67282    ---------------------------------------------------------------------------------------------------------------
67283    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
67284 
67285    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67286    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67287 
67288    IF xla_accounting_cache_pkg.GetValueChar
67289          (p_source_code         => 'LEDGER_CATEGORY_CODE'
67290          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
67291    AND l_bflow_method_code = 'PRIOR_ENTRY'
67292 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
67293    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
67294          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
67295        )
67296    THEN
67297          xla_ae_lines_pkg.BflowUpgEntry
67298            (p_business_method_code    => l_bflow_method_code
67299            ,p_business_class_code     => l_bflow_class_code
67300            ,p_balance_type            => l_balance_type_code);
67301    ELSE
67302       NULL;
67303 -- No business flow processing for business flow method of NONE.
67304    END IF;
67305 
67306    --
67307    -- call analytical criteria
67308    --
67309    
67310    --
67311    -- call description
67312    --
67313    
67314 xla_ae_lines_pkg.SetLineDescription(
67315    p_ae_header_id => l_ae_header_id
67316   ,p_description  => Description_2 (
67317      p_application_id         => p_application_id
67318    , p_ae_header_id           => l_ae_header_id 
67319 , p_source_1 => p_source_1
67320    )
67321 );
67322 
67323 
67324    --
67325    -- call ADRs
67326    -- Bug 4922099
67327    --
67328    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67329         (NVL(l_actual_upg_option, 'N') = 'O') OR
67330         (NVL(l_enc_upg_option, 'N') = 'O')
67331       )
67332    THEN
67333    NULL;
67334    --
67335    --
67336    
67337   l_ccid := AcctDerRule_32(
67338            p_application_id           => p_application_id
67339          , p_ae_header_id             => l_ae_header_id 
67340 , p_source_18 => p_source_18
67341          , x_transaction_coa_id       => l_adr_transaction_coa_id
67342          , x_accounting_coa_id        => l_adr_accounting_coa_id
67343          , x_value_type_code          => l_adr_value_type_code
67344          , p_side                     => 'NA'
67345    );
67346 
67347    xla_ae_lines_pkg.set_ccid(
67348     p_code_combination_id          => l_ccid
67349   , p_value_type_code              => l_adr_value_type_code
67350   , p_transaction_coa_id           => l_adr_transaction_coa_id
67351   , p_accounting_coa_id            => l_adr_accounting_coa_id
67352   , p_adr_code                     => 'AP_INVOICE_DIST'
67353   , p_adr_type_code                => 'S'
67354   , p_component_type               => l_component_type
67355   , p_component_code               => l_component_code
67356   , p_component_type_code          => l_component_type_code
67357   , p_component_appl_id            => l_component_appl_id
67358   , p_amb_context_code             => l_amb_context_code
67359   , p_side                         => 'NA'
67360   );
67361 
67362 
67363    --
67364    --
67365    END IF;
67366    --
67367    -- Bug 4922099
67368    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
67369           (NVL(l_enc_upg_option, 'N') = 'O')
67370         ) AND
67371         (l_bflow_method_code = 'PRIOR_ENTRY')
67372       )
67373    THEN
67374       IF
67375       --
67376       1 = 2
67377       --
67378       THEN
67379       xla_accounting_err_pkg.build_message
67380                                     (p_appli_s_name            => 'XLA'
67381                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67385                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
67382                                     ,p_token_1                 => 'LINE_NUMBER'
67383                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
67384                                     ,p_token_2                 => 'LINE_TYPE_NAME'
67386                                                                              l_component_type
67387                                                                             ,l_component_code
67388                                                                             ,l_component_type_code
67389                                                                             ,l_component_appl_id
67390                                                                             ,l_amb_context_code
67391                                                                             ,l_entity_code
67392                                                                             ,l_event_class_code
67393                                                                            )
67394                                     ,p_token_3                 => 'OWNER'
67395                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
67396                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
67397                                                                           ,p_lookup_code    => l_component_type_code
67398                                                                          )
67399                                     ,p_token_4                 => 'PRODUCT_NAME'
67400                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
67401                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
67402                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
67403                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
67404                                     ,p_ae_header_id            =>  NULL
67405                                        );
67406 
67407         IF (C_LEVEL_ERROR>= g_log_level) THEN
67408                  trace
67409                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67410                       ,p_level    => C_LEVEL_ERROR
67411                       ,p_module   => l_log_module);
67412         END IF;
67413       END IF;
67414    END IF;
67415    --
67416    --
67417    ------------------------------------------------------------------------------------------------
67418    -- 4219869 Business Flow
67419    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
67420    -- Prior Entry.  Currently, the following code is always generated.
67421    ------------------------------------------------------------------------------------------------
67422    XLA_AE_LINES_PKG.ValidateCurrentLine;
67423 
67424    ------------------------------------------------------------------------------------
67425    -- 4219869 Business Flow
67426    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
67427    ------------------------------------------------------------------------------------
67428    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67429 
67430    ----------------------------------------------------------------------------------
67431    -- 4219869 Business Flow
67432    -- Update journal entry status -- Need to generate this within IF <condition>
67433    ----------------------------------------------------------------------------------
67434    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67435          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
67436          ,p_balance_type_code => l_balance_type_code
67437          );
67438 
67439    -------------------------------------------------------------------------------------------
67440    -- 4262811 - Generate the Accrual Reversal lines
67441    -------------------------------------------------------------------------------------------
67442    BEGIN
67443       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
67444                               (g_array_event(p_event_id).array_value_num('header_index'));
67445       IF l_acc_rev_flag IS NULL THEN
67446          l_acc_rev_flag := 'N';
67447       END IF;
67448    EXCEPTION
67449       WHEN OTHERS THEN
67450          l_acc_rev_flag := 'N';
67451    END;
67452    --
67453    IF (l_acc_rev_flag = 'Y') THEN
67454 
67455        -- 4645092  ------------------------------------------------------------------------------
67456        -- To allow MPA report to determine if it should generate report process
67457        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
67458        ------------------------------------------------------------------------------------------
67459 
67460        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
67461        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
67462    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
67463    -- call ADRs
67464    -- Bug 4922099
67465    --
67466    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67467         (NVL(l_actual_upg_option, 'N') = 'O') OR
67468         (NVL(l_enc_upg_option, 'N') = 'O')
67469       )
67470    THEN
67471    NULL;
67472    --
67473    --
67474    
67475   l_ccid := AcctDerRule_32(
67476            p_application_id           => p_application_id
67477          , p_ae_header_id             => l_ae_header_id 
67478 , p_source_18 => p_source_18
67479          , x_transaction_coa_id       => l_adr_transaction_coa_id
67480          , x_accounting_coa_id        => l_adr_accounting_coa_id
67481          , x_value_type_code          => l_adr_value_type_code
67485    xla_ae_lines_pkg.set_ccid(
67482          , p_side                     => 'NA'
67483    );
67484 
67486     p_code_combination_id          => l_ccid
67487   , p_value_type_code              => l_adr_value_type_code
67488   , p_transaction_coa_id           => l_adr_transaction_coa_id
67489   , p_accounting_coa_id            => l_adr_accounting_coa_id
67490   , p_adr_code                     => 'AP_INVOICE_DIST'
67491   , p_adr_type_code                => 'S'
67492   , p_component_type               => l_component_type
67493   , p_component_code               => l_component_code
67494   , p_component_type_code          => l_component_type_code
67495   , p_component_appl_id            => l_component_appl_id
67496   , p_amb_context_code             => l_amb_context_code
67497   , p_side                         => 'NA'
67498   );
67499 
67500 
67501    --
67502    --
67503    END IF;
67504 
67505        --
67506        -- Update the line information that should be overwritten
67507        --
67508        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
67509                                          p_header_num   => 1);
67510        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
67511 
67512        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
67513 
67514        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
67515           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
67516        END IF;
67517 
67518       --
67519       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
67520       --
67521       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
67522           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
67523       ELSE
67524           ---------------------------------------------------------------------------------------------------
67525           -- 4262811a Switch Sign
67526           ---------------------------------------------------------------------------------------------------
67527           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
67528           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67529                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67530           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67531                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67532           -- 5132302
67533           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
67534                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67535 
67536       END IF;
67537 
67538       -- 4955764
67539       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67540       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
67541 
67542 
67543       XLA_AE_LINES_PKG.ValidateCurrentLine;
67544       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67545 
67546       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67547                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
67548                ,p_balance_type_code => l_balance_type_code);
67549 
67550    END IF;
67551 
67552    -----------------------------------------------------------------------------------------
67553    -- 4262811 Multiperiod Accounting
67554    -----------------------------------------------------------------------------------------
67555      -- No MPA option is assigned.
67556 
67557 
67558 END IF;
67559 END IF;
67560 --
67561 
67562 --
67563 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67564    trace
67565       (p_msg      => 'END of AcctLineType_131'
67566       ,p_level    => C_LEVEL_PROCEDURE
67567       ,p_module   => l_log_module);
67568 END IF;
67569 --
67570 EXCEPTION
67571   WHEN xla_exceptions_pkg.application_exception THEN
67572       RAISE;
67573   WHEN OTHERS THEN
67574        xla_exceptions_pkg.raise_message
67575            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_131');
67576 END AcctLineType_131;
67577 --
67578 
67579 ---------------------------------------
67580 --
67581 -- PRIVATE FUNCTION
67582 --         AcctLineType_132
67583 --
67584 ---------------------------------------
67585 PROCEDURE AcctLineType_132 (
67586   p_application_id        IN NUMBER
67587  ,p_event_id              IN NUMBER
67588  ,p_calculate_acctd_flag  IN VARCHAR2
67589  ,p_calculate_g_l_flag    IN VARCHAR2
67590  ,p_actual_flag           IN OUT VARCHAR2
67591  ,p_balance_type_code     OUT VARCHAR2
67592  ,p_gain_or_loss_ref      OUT VARCHAR2
67593  
67594 --Automatic Offsets Value
67595  , p_source_3            IN VARCHAR2
67596  , p_source_3_meaning    IN VARCHAR2
67597 --Bank Future Dated Payment Account
67598  , p_source_12            IN NUMBER
67599 --Future Dated Payment Account Source Option
67600  , p_source_13            IN VARCHAR2
67601  , p_source_13_meaning    IN VARCHAR2
67602 --Financials Options Future Dated Payment Account
67603  , p_source_14            IN NUMBER
67604 --Supplier Site Future Dated Payment Account
67605  , p_source_15            IN NUMBER
67606 --Invoice Distribution Account
67607  , p_source_18            IN NUMBER
67611  , p_source_43            IN VARCHAR2
67608 --Accounting Reversal Indicator
67609  , p_source_41            IN VARCHAR2
67610 --Distribution Link Type
67612 --Override Accounted Amount Indicator
67613  , p_source_68            IN VARCHAR2
67614  , p_source_68_meaning    IN VARCHAR2
67615 --Third Party Type
67616  , p_source_71            IN VARCHAR2
67617 --Invoice Distribution Tax Line Identifier
67618  , p_source_74            IN NUMBER
67619 --Invoice Distribution Tax Distribution Identifier from Tax
67620  , p_source_75            IN NUMBER
67621 --Invoice Distribution Summary Tax Line Identifier
67622  , p_source_76            IN NUMBER
67623 --Business Flow Accounts Payable Application Identifier
67624  , p_source_79            IN NUMBER
67625 --Business Flow Invoice Distribution Type
67626  , p_source_80            IN VARCHAR2
67627 --Business Flow Invoice Entity Code
67628  , p_source_81            IN VARCHAR2
67629 --Business Flow Invoice Distribution Identifier
67630  , p_source_82            IN NUMBER
67631 --Business Flow Invoice Identifier
67632  , p_source_83            IN NUMBER
67633 --When to Account for Payment Option
67634  , p_source_89            IN VARCHAR2
67635 --Payment Distribution Type
67636  , p_source_90            IN VARCHAR2
67637  , p_source_90_meaning    IN VARCHAR2
67638 --Payment Distribution Amount
67639  , p_source_91            IN NUMBER
67640 --Payment Distribution Identifier
67641  , p_source_96            IN NUMBER
67642 --Payment Supplier Identifier
67643  , p_source_102            IN NUMBER
67644 --Payment Supplier Site Identifier
67645  , p_source_103            IN NUMBER
67646 --Payment Distribution Reversed Identifier
67647  , p_source_104            IN NUMBER
67648 --Payment Currency Code
67649  , p_source_106            IN VARCHAR2
67650 --Payment Maturity Date
67651  , p_source_107            IN DATE
67652 --Payment Distribution (Payment Rate) Ledger Amount
67653  , p_source_108            IN NUMBER
67654 --Payment Exchange Date
67655  , p_source_110            IN DATE
67656 --Payment Exchange Rate
67657  , p_source_111            IN NUMBER
67658 --Payment Exchange Rate Type
67659  , p_source_112            IN VARCHAR2
67660 --Payment Processing Type
67661  , p_source_116            IN VARCHAR2
67662 --Invoice Distribution Amount of the Payment Distribution
67663  , p_source_117            IN NUMBER
67664 )
67665 IS
67666 
67667 l_component_type              VARCHAR2(80);
67668 l_component_code              VARCHAR2(30);
67669 l_component_type_code         VARCHAR2(1);
67670 l_component_appl_id           INTEGER;
67671 l_amb_context_code            VARCHAR2(30);
67672 l_entity_code                 VARCHAR2(30);
67673 l_event_class_code            VARCHAR2(30);
67674 l_ae_header_id                NUMBER;
67675 l_event_type_code             VARCHAR2(30);
67676 l_line_definition_code        VARCHAR2(30);
67677 l_line_definition_owner_code  VARCHAR2(1);
67678 --
67679 -- adr variables
67680 l_segment                     VARCHAR2(30);
67681 l_ccid                        NUMBER;
67682 l_adr_transaction_coa_id      NUMBER;
67683 l_adr_accounting_coa_id       NUMBER;
67684 l_adr_flexfield_segment_code  VARCHAR2(30);
67685 l_adr_flex_value_set_id       NUMBER;
67686 l_adr_value_type_code         VARCHAR2(30);
67687 l_adr_value_combination_id    NUMBER;
67688 l_adr_value_segment_code      VARCHAR2(30);
67689 
67690 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
67691 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
67692 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
67693 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
67694 
67695 -- 4262811 Variables ------------------------------------------------------------------------------------------
67696 l_entered_amt_idx             NUMBER;
67697 l_accted_amt_idx              NUMBER;
67698 l_acc_rev_flag                VARCHAR2(1);
67699 l_accrual_line_num            NUMBER;
67700 l_tmp_amt                     NUMBER;
67701 l_acc_rev_natural_side_code   VARCHAR2(1);
67702 
67703 l_num_entries                 NUMBER;
67704 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
67705 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
67706 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
67707 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
67708 l_recog_line_1                NUMBER;
67709 l_recog_line_2                NUMBER;
67710 
67711 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
67712 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
67713 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
67714 
67715 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
67716 
67717 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
67718 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
67719 
67720 ---------------------------------------------------------------------------------------------------------------
67721 
67722 
67723 --
67724 -- bulk performance
67725 --
67726 l_balance_type_code           VARCHAR2(1);
67727 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
67728 l_log_module                  VARCHAR2(240);
67729 
67730 --
67731 -- Upgrade strategy
67732 --
67733 l_actual_upg_option           VARCHAR2(1);
67734 l_enc_upg_option           VARCHAR2(1);
67735 
67736 --
67737 BEGIN
67738 --
67739 IF g_log_enabled THEN
67740       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_132';
67741 END IF;
67745       trace
67742 --
67743 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67744 
67746          (p_msg      => 'BEGIN of AcctLineType_132'
67747          ,p_level    => C_LEVEL_PROCEDURE
67748          ,p_module   => l_log_module);
67749 
67750 END IF;
67751 --
67752 l_component_type             := 'AMB_JLT';
67753 l_component_code             := 'AP_FUTURE_DATED_PMT';
67754 l_component_type_code        := 'S';
67755 l_component_appl_id          :=  200;
67756 l_amb_context_code           := 'DEFAULT';
67757 l_entity_code                := 'AP_PAYMENTS';
67758 l_event_class_code           := 'PAYMENTS';
67759 l_event_type_code            := 'PAYMENTS_ALL';
67760 l_line_definition_owner_code := 'S';
67761 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
67762 --
67763 l_balance_type_code          := 'A';
67764 l_segment                     := NULL;
67765 l_ccid                        := NULL;
67766 l_adr_transaction_coa_id      := NULL;
67767 l_adr_accounting_coa_id       := NULL;
67768 l_adr_flexfield_segment_code  := NULL;
67769 l_adr_flex_value_set_id       := NULL;
67770 l_adr_value_type_code         := NULL;
67771 l_adr_value_combination_id    := NULL;
67772 l_adr_value_segment_code      := NULL;
67773 
67774 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
67775 l_bflow_class_code           := 'AP_FUTURE_DTD_PMT';    -- 4219869 Business Flow
67776 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
67777 l_budgetary_control_flag     := 'N';
67778 
67779 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
67780 l_bflow_applied_to_amt       := NULL; -- 5132302
67781 l_entered_amt_idx            := NULL;          -- 4262811
67782 l_accted_amt_idx             := NULL;          -- 4262811
67783 l_acc_rev_flag               := NULL;          -- 4262811
67784 l_accrual_line_num           := NULL;          -- 4262811
67785 l_tmp_amt                    := NULL;          -- 4262811
67786 --
67787  
67788 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
67789     l_balance_type_code <> 'B' THEN
67790 IF NVL(p_source_89,'
67791 ') <>  'CLEAR_CLEAR' AND 
67792 NVL(p_source_89,'
67793 ') <>  'ALWAYS_CLEAR' AND 
67794 NVL(p_source_90,'
67795 ') =  'CASH' AND 
67796 p_source_107 IS NOT NULL AND 
67797 NVL(p_source_116,'
67798 ') <>  'PAYMENTCARD'
67799  THEN 
67800 
67801    --
67802    XLA_AE_LINES_PKG.SetNewLine;
67803 
67804    p_balance_type_code          := l_balance_type_code;
67805    -- set the flag so later we will know whether the gain loss line needs to be created
67806    
67807    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
67808      p_actual_flag :='A';
67809    END IF;
67810 
67811    --
67812    -- bulk performance
67813    --
67814    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
67815                                       p_header_num   => 0); -- 4262811
67816    --
67817    -- set accounting line options
67818    --
67819    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
67820            p_natural_side_code          => 'C'
67821          , p_gain_or_loss_flag          => 'N'
67822          , p_gl_transfer_mode_code      => 'S'
67823          , p_acct_entry_type_code       => 'A'
67824          , p_switch_side_flag           => 'Y'
67825          , p_merge_duplicate_code       => 'A'
67826          );
67827    --
67828    l_acc_rev_natural_side_code := 'D';  -- 4262811
67829    -- 
67830    --
67831    -- set accounting line type info
67832    --
67833    xla_ae_lines_pkg.SetAcctLineType
67834       (p_component_type             => l_component_type
67835       ,p_event_type_code            => l_event_type_code
67836       ,p_line_definition_owner_code => l_line_definition_owner_code
67837       ,p_line_definition_code       => l_line_definition_code
67838       ,p_accounting_line_code       => l_component_code
67839       ,p_accounting_line_type_code  => l_component_type_code
67840       ,p_accounting_line_appl_id    => l_component_appl_id
67841       ,p_amb_context_code           => l_amb_context_code
67842       ,p_entity_code                => l_entity_code
67843       ,p_event_class_code           => l_event_class_code);
67844    --
67845    -- set accounting class
67846    --
67847    xla_ae_lines_pkg.SetAcctClass(
67848            p_accounting_class_code  => 'FUTURE_DATED_PMT'
67849          , p_ae_header_id           => l_ae_header_id
67850          );
67851 
67852    --
67853    -- set rounding class
67854    --
67855    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
67856                       'FUTURE_DATED_PMT';
67857 
67858    --
67859    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
67860    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
67861    --
67862    -- bulk performance
67863    --
67864    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
67865 
67866    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
67867       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
67868 
67869    -- 4955764
67870    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67871       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
67872 
67873    -- 4458381 Public Sector Enh
67874    
67875    --
67876    -- set accounting attributes for the line type
67877    --
67878    l_entered_amt_idx := 10;
67879    l_accted_amt_idx  := 15;
67883    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
67880    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
67881    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
67882    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
67884    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
67885    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
67886    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
67887    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
67888    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
67889    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
67890    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
67891    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
67892    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
67893    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
67894    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
67895    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
67896    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
67897    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
67898    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
67899    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
67900    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
67901    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
67902    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
67903    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
67904    l_rec_acct_attrs.array_date_value(12)  := p_source_110;
67905    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
67906    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
67907    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
67908    l_rec_acct_attrs.array_char_value(14)  := p_source_112;
67909    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
67910    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
67911    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
67912    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
67913    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
67914    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
67915    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
67916    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
67917    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
67918    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
67919    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
67920    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
67921    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
67922    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
67923    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
67924    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
67925    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
67926    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
67927    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
67928    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
67929 
67930    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
67931    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
67932 
67933    ---------------------------------------------------------------------------------------------------------------
67934    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
67935    ---------------------------------------------------------------------------------------------------------------
67936    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
67937 
67938    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67939    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67940 
67941    IF xla_accounting_cache_pkg.GetValueChar
67942          (p_source_code         => 'LEDGER_CATEGORY_CODE'
67943          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
67944    AND l_bflow_method_code = 'PRIOR_ENTRY'
67945 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
67946    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
67947          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
67948        )
67949    THEN
67950          xla_ae_lines_pkg.BflowUpgEntry
67951            (p_business_method_code    => l_bflow_method_code
67952            ,p_business_class_code     => l_bflow_class_code
67953            ,p_balance_type            => l_balance_type_code);
67954    ELSE
67955       NULL;
67956 -- No business flow processing for business flow method of NONE.
67957    END IF;
67958 
67959    --
67960    -- call analytical criteria
67961    --
67962    
67963    --
67964    -- call description
67965    --
67966    -- No description or it is inherited.
67967    --
67968    -- call ADRs
67969    -- Bug 4922099
67970    --
67971    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67972         (NVL(l_actual_upg_option, 'N') = 'O') OR
67973         (NVL(l_enc_upg_option, 'N') = 'O')
67974       )
67975    THEN
67976    NULL;
67977    --
67978    --
67979    
67980   l_ccid := AcctDerRule_30(
67981            p_application_id           => p_application_id
67982          , p_ae_header_id             => l_ae_header_id 
67983 , p_source_3 => p_source_3
67984 , p_source_3_meaning => p_source_3_meaning
67985 , p_source_12 => p_source_12
67986 , p_source_13 => p_source_13
67990 , p_source_18 => p_source_18
67987 , p_source_13_meaning => p_source_13_meaning
67988 , p_source_14 => p_source_14
67989 , p_source_15 => p_source_15
67991          , x_transaction_coa_id       => l_adr_transaction_coa_id
67992          , x_accounting_coa_id        => l_adr_accounting_coa_id
67993          , x_value_type_code          => l_adr_value_type_code
67994          , p_side                     => 'NA'
67995    );
67996 
67997    xla_ae_lines_pkg.set_ccid(
67998     p_code_combination_id          => l_ccid
67999   , p_value_type_code              => l_adr_value_type_code
68000   , p_transaction_coa_id           => l_adr_transaction_coa_id
68001   , p_accounting_coa_id            => l_adr_accounting_coa_id
68002   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
68003   , p_adr_type_code                => 'S'
68004   , p_component_type               => l_component_type
68005   , p_component_code               => l_component_code
68006   , p_component_type_code          => l_component_type_code
68007   , p_component_appl_id            => l_component_appl_id
68008   , p_amb_context_code             => l_amb_context_code
68009   , p_side                         => 'NA'
68010   );
68011 
68012 
68013    l_segment := AcctDerRule_10(
68014            p_application_id           => p_application_id
68015          , p_ae_header_id             => l_ae_header_id 
68016 , p_source_3 => p_source_3
68017 , p_source_3_meaning => p_source_3_meaning
68018 , p_source_12 => p_source_12
68019 , p_source_13 => p_source_13
68020 , p_source_13_meaning => p_source_13_meaning
68021 , p_source_14 => p_source_14
68022 , p_source_15 => p_source_15
68023          , x_transaction_coa_id       => l_adr_transaction_coa_id
68024          , x_accounting_coa_id        => l_adr_accounting_coa_id
68025          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68026          , x_flex_value_set_id        => l_adr_flex_value_set_id
68027          , x_value_type_code          => l_adr_value_type_code
68028          , x_value_combination_id     => l_adr_value_combination_id
68029          , x_value_segment_code       => l_adr_value_segment_code
68030          , p_side                     => 'NA'
68031          , p_override_seg_flag        => 'Y'
68032    );
68033 
68034    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68035 
68036       xla_ae_lines_pkg.set_segment(
68037           p_to_segment_code         => 'GL_ACCOUNT'
68038         , p_segment_value           => l_segment
68039         , p_from_segment_code       => l_adr_value_segment_code
68040         , p_from_combination_id     => l_adr_value_combination_id
68041         , p_value_type_code         => l_adr_value_type_code
68042         , p_transaction_coa_id      => l_adr_transaction_coa_id
68043         , p_accounting_coa_id       => l_adr_accounting_coa_id
68044         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68045         , p_flex_value_set_id       => l_adr_flex_value_set_id
68046         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
68047         , p_adr_type_code           => 'S'
68048         , p_component_type          => l_component_type
68049         , p_component_code          => l_component_code
68050         , p_component_type_code     => l_component_type_code
68051         , p_component_appl_id       => l_component_appl_id
68052         , p_amb_context_code        => l_amb_context_code
68053         , p_entity_code             => 'AP_PAYMENTS'
68054         , p_event_class_code        => 'PAYMENTS'
68055         , p_side                    => 'NA'
68056         );
68057 
68058   END IF;
68059 
68060    l_segment := AcctDerRule_21(
68061            p_application_id           => p_application_id
68062          , p_ae_header_id             => l_ae_header_id 
68063 , p_source_3 => p_source_3
68064 , p_source_3_meaning => p_source_3_meaning
68065 , p_source_18 => p_source_18
68066          , x_transaction_coa_id       => l_adr_transaction_coa_id
68067          , x_accounting_coa_id        => l_adr_accounting_coa_id
68068          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68069          , x_flex_value_set_id        => l_adr_flex_value_set_id
68070          , x_value_type_code          => l_adr_value_type_code
68071          , x_value_combination_id     => l_adr_value_combination_id
68072          , x_value_segment_code       => l_adr_value_segment_code
68073          , p_side                     => 'NA'
68074          , p_override_seg_flag        => 'Y'
68075    );
68076 
68077    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68078 
68079       xla_ae_lines_pkg.set_segment(
68080           p_to_segment_code         => 'GL_BALANCING'
68081         , p_segment_value           => l_segment
68082         , p_from_segment_code       => l_adr_value_segment_code
68083         , p_from_combination_id     => l_adr_value_combination_id
68084         , p_value_type_code         => l_adr_value_type_code
68085         , p_transaction_coa_id      => l_adr_transaction_coa_id
68086         , p_accounting_coa_id       => l_adr_accounting_coa_id
68087         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68088         , p_flex_value_set_id       => l_adr_flex_value_set_id
68089         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
68090         , p_adr_type_code           => 'S'
68091         , p_component_type          => l_component_type
68092         , p_component_code          => l_component_code
68093         , p_component_type_code     => l_component_type_code
68094         , p_component_appl_id       => l_component_appl_id
68095         , p_amb_context_code        => l_amb_context_code
68096         , p_entity_code             => 'AP_PAYMENTS'
68097         , p_event_class_code        => 'PAYMENTS'
68098         , p_side                    => 'NA'
68099         );
68100 
68101   END IF;
68102 
68103    --
68107    -- Bug 4922099
68104    --
68105    END IF;
68106    --
68108    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
68109           (NVL(l_enc_upg_option, 'N') = 'O')
68110         ) AND
68111         (l_bflow_method_code = 'PRIOR_ENTRY')
68112       )
68113    THEN
68114       IF
68115       --
68116       1 = 2
68117       --
68118       THEN
68119       xla_accounting_err_pkg.build_message
68120                                     (p_appli_s_name            => 'XLA'
68121                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68122                                     ,p_token_1                 => 'LINE_NUMBER'
68123                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
68124                                     ,p_token_2                 => 'LINE_TYPE_NAME'
68125                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
68126                                                                              l_component_type
68127                                                                             ,l_component_code
68128                                                                             ,l_component_type_code
68129                                                                             ,l_component_appl_id
68130                                                                             ,l_amb_context_code
68131                                                                             ,l_entity_code
68132                                                                             ,l_event_class_code
68133                                                                            )
68134                                     ,p_token_3                 => 'OWNER'
68135                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
68136                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
68137                                                                           ,p_lookup_code    => l_component_type_code
68138                                                                          )
68139                                     ,p_token_4                 => 'PRODUCT_NAME'
68140                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
68141                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
68142                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
68143                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
68144                                     ,p_ae_header_id            =>  NULL
68145                                        );
68146 
68147         IF (C_LEVEL_ERROR>= g_log_level) THEN
68148                  trace
68149                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68150                       ,p_level    => C_LEVEL_ERROR
68151                       ,p_module   => l_log_module);
68152         END IF;
68153       END IF;
68154    END IF;
68155    --
68156    --
68157    ------------------------------------------------------------------------------------------------
68158    -- 4219869 Business Flow
68159    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
68160    -- Prior Entry.  Currently, the following code is always generated.
68161    ------------------------------------------------------------------------------------------------
68162    XLA_AE_LINES_PKG.ValidateCurrentLine;
68163 
68164    ------------------------------------------------------------------------------------
68165    -- 4219869 Business Flow
68166    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
68167    ------------------------------------------------------------------------------------
68168    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68169 
68170    ----------------------------------------------------------------------------------
68171    -- 4219869 Business Flow
68172    -- Update journal entry status -- Need to generate this within IF <condition>
68173    ----------------------------------------------------------------------------------
68174    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68175          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
68176          ,p_balance_type_code => l_balance_type_code
68177          );
68178 
68179    -------------------------------------------------------------------------------------------
68180    -- 4262811 - Generate the Accrual Reversal lines
68181    -------------------------------------------------------------------------------------------
68182    BEGIN
68183       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
68184                               (g_array_event(p_event_id).array_value_num('header_index'));
68185       IF l_acc_rev_flag IS NULL THEN
68186          l_acc_rev_flag := 'N';
68187       END IF;
68188    EXCEPTION
68189       WHEN OTHERS THEN
68190          l_acc_rev_flag := 'N';
68191    END;
68192    --
68193    IF (l_acc_rev_flag = 'Y') THEN
68194 
68195        -- 4645092  ------------------------------------------------------------------------------
68196        -- To allow MPA report to determine if it should generate report process
68197        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
68198        ------------------------------------------------------------------------------------------
68199 
68200        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
68201        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
68202    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
68203    -- call ADRs
68204    -- Bug 4922099
68205    --
68209       )
68206    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68207         (NVL(l_actual_upg_option, 'N') = 'O') OR
68208         (NVL(l_enc_upg_option, 'N') = 'O')
68210    THEN
68211    NULL;
68212    --
68213    --
68214    
68215   l_ccid := AcctDerRule_30(
68216            p_application_id           => p_application_id
68217          , p_ae_header_id             => l_ae_header_id 
68218 , p_source_3 => p_source_3
68219 , p_source_3_meaning => p_source_3_meaning
68220 , p_source_12 => p_source_12
68221 , p_source_13 => p_source_13
68222 , p_source_13_meaning => p_source_13_meaning
68223 , p_source_14 => p_source_14
68224 , p_source_15 => p_source_15
68225 , p_source_18 => p_source_18
68226          , x_transaction_coa_id       => l_adr_transaction_coa_id
68227          , x_accounting_coa_id        => l_adr_accounting_coa_id
68228          , x_value_type_code          => l_adr_value_type_code
68229          , p_side                     => 'NA'
68230    );
68231 
68232    xla_ae_lines_pkg.set_ccid(
68233     p_code_combination_id          => l_ccid
68234   , p_value_type_code              => l_adr_value_type_code
68235   , p_transaction_coa_id           => l_adr_transaction_coa_id
68236   , p_accounting_coa_id            => l_adr_accounting_coa_id
68237   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
68238   , p_adr_type_code                => 'S'
68239   , p_component_type               => l_component_type
68240   , p_component_code               => l_component_code
68241   , p_component_type_code          => l_component_type_code
68242   , p_component_appl_id            => l_component_appl_id
68243   , p_amb_context_code             => l_amb_context_code
68244   , p_side                         => 'NA'
68245   );
68246 
68247 
68248    l_segment := AcctDerRule_10(
68249            p_application_id           => p_application_id
68250          , p_ae_header_id             => l_ae_header_id 
68251 , p_source_3 => p_source_3
68252 , p_source_3_meaning => p_source_3_meaning
68253 , p_source_12 => p_source_12
68254 , p_source_13 => p_source_13
68255 , p_source_13_meaning => p_source_13_meaning
68256 , p_source_14 => p_source_14
68257 , p_source_15 => p_source_15
68258          , x_transaction_coa_id       => l_adr_transaction_coa_id
68259          , x_accounting_coa_id        => l_adr_accounting_coa_id
68260          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68261          , x_flex_value_set_id        => l_adr_flex_value_set_id
68262          , x_value_type_code          => l_adr_value_type_code
68263          , x_value_combination_id     => l_adr_value_combination_id
68264          , x_value_segment_code       => l_adr_value_segment_code
68265          , p_side                     => 'NA'
68266          , p_override_seg_flag        => 'Y'
68267    );
68268 
68269    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68270 
68271       xla_ae_lines_pkg.set_segment(
68272           p_to_segment_code         => 'GL_ACCOUNT'
68273         , p_segment_value           => l_segment
68274         , p_from_segment_code       => l_adr_value_segment_code
68275         , p_from_combination_id     => l_adr_value_combination_id
68276         , p_value_type_code         => l_adr_value_type_code
68277         , p_transaction_coa_id      => l_adr_transaction_coa_id
68278         , p_accounting_coa_id       => l_adr_accounting_coa_id
68279         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68280         , p_flex_value_set_id       => l_adr_flex_value_set_id
68281         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
68282         , p_adr_type_code           => 'S'
68283         , p_component_type          => l_component_type
68284         , p_component_code          => l_component_code
68285         , p_component_type_code     => l_component_type_code
68286         , p_component_appl_id       => l_component_appl_id
68287         , p_amb_context_code        => l_amb_context_code
68288         , p_entity_code             => 'AP_PAYMENTS'
68289         , p_event_class_code        => 'PAYMENTS'
68290         , p_side                    => 'NA'
68291         );
68292 
68293   END IF;
68294 
68295    l_segment := AcctDerRule_21(
68296            p_application_id           => p_application_id
68297          , p_ae_header_id             => l_ae_header_id 
68298 , p_source_3 => p_source_3
68299 , p_source_3_meaning => p_source_3_meaning
68300 , p_source_18 => p_source_18
68301          , x_transaction_coa_id       => l_adr_transaction_coa_id
68302          , x_accounting_coa_id        => l_adr_accounting_coa_id
68303          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68304          , x_flex_value_set_id        => l_adr_flex_value_set_id
68305          , x_value_type_code          => l_adr_value_type_code
68306          , x_value_combination_id     => l_adr_value_combination_id
68307          , x_value_segment_code       => l_adr_value_segment_code
68308          , p_side                     => 'NA'
68309          , p_override_seg_flag        => 'Y'
68310    );
68311 
68312    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68313 
68314       xla_ae_lines_pkg.set_segment(
68315           p_to_segment_code         => 'GL_BALANCING'
68316         , p_segment_value           => l_segment
68317         , p_from_segment_code       => l_adr_value_segment_code
68318         , p_from_combination_id     => l_adr_value_combination_id
68319         , p_value_type_code         => l_adr_value_type_code
68320         , p_transaction_coa_id      => l_adr_transaction_coa_id
68321         , p_accounting_coa_id       => l_adr_accounting_coa_id
68322         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68323         , p_flex_value_set_id       => l_adr_flex_value_set_id
68324         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
68328         , p_component_type_code     => l_component_type_code
68325         , p_adr_type_code           => 'S'
68326         , p_component_type          => l_component_type
68327         , p_component_code          => l_component_code
68329         , p_component_appl_id       => l_component_appl_id
68330         , p_amb_context_code        => l_amb_context_code
68331         , p_entity_code             => 'AP_PAYMENTS'
68332         , p_event_class_code        => 'PAYMENTS'
68333         , p_side                    => 'NA'
68334         );
68335 
68336   END IF;
68337 
68338    --
68339    --
68340    END IF;
68341 
68342        --
68343        -- Update the line information that should be overwritten
68344        --
68345        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
68346                                          p_header_num   => 1);
68347        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
68348 
68349        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
68350 
68351        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
68352           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
68353        END IF;
68354 
68355       --
68356       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
68357       --
68358       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
68359           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
68360       ELSE
68361           ---------------------------------------------------------------------------------------------------
68362           -- 4262811a Switch Sign
68363           ---------------------------------------------------------------------------------------------------
68364           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
68365           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68366                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68367           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68368                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68369           -- 5132302
68370           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
68371                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68372 
68373       END IF;
68374 
68375       -- 4955764
68376       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68377       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
68378 
68379 
68380       XLA_AE_LINES_PKG.ValidateCurrentLine;
68381       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68382 
68383       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68384                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
68385                ,p_balance_type_code => l_balance_type_code);
68386 
68387    END IF;
68388 
68389    -----------------------------------------------------------------------------------------
68390    -- 4262811 Multiperiod Accounting
68391    -----------------------------------------------------------------------------------------
68392      -- No MPA option is assigned.
68393 
68394 
68395 END IF;
68396 END IF;
68397 --
68398 
68399 --
68400 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68401    trace
68402       (p_msg      => 'END of AcctLineType_132'
68403       ,p_level    => C_LEVEL_PROCEDURE
68404       ,p_module   => l_log_module);
68405 END IF;
68406 --
68407 EXCEPTION
68408   WHEN xla_exceptions_pkg.application_exception THEN
68409       RAISE;
68410   WHEN OTHERS THEN
68411        xla_exceptions_pkg.raise_message
68412            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_132');
68413 END AcctLineType_132;
68414 --
68415 
68416 ---------------------------------------
68417 --
68418 -- PRIVATE FUNCTION
68419 --         AcctLineType_133
68420 --
68421 ---------------------------------------
68422 PROCEDURE AcctLineType_133 (
68423   p_application_id        IN NUMBER
68424  ,p_event_id              IN NUMBER
68425  ,p_calculate_acctd_flag  IN VARCHAR2
68426  ,p_calculate_g_l_flag    IN VARCHAR2
68427  ,p_actual_flag           IN OUT VARCHAR2
68428  ,p_balance_type_code     OUT VARCHAR2
68429  ,p_gain_or_loss_ref      OUT VARCHAR2
68430  
68431 --Automatic Offsets Value
68432  , p_source_3            IN VARCHAR2
68433  , p_source_3_meaning    IN VARCHAR2
68434 --Bank Future Dated Payment Account
68435  , p_source_12            IN NUMBER
68436 --Future Dated Payment Account Source Option
68437  , p_source_13            IN VARCHAR2
68438  , p_source_13_meaning    IN VARCHAR2
68439 --Financials Options Future Dated Payment Account
68440  , p_source_14            IN NUMBER
68441 --Supplier Site Future Dated Payment Account
68442  , p_source_15            IN NUMBER
68443 --Invoice Distribution Account
68444  , p_source_18            IN NUMBER
68445 --Accounting Reversal Indicator
68446  , p_source_41            IN VARCHAR2
68447 --Distribution Link Type
68448  , p_source_43            IN VARCHAR2
68449 --Override Accounted Amount Indicator
68450  , p_source_68            IN VARCHAR2
68451  , p_source_68_meaning    IN VARCHAR2
68452 --Third Party Type
68453  , p_source_71            IN VARCHAR2
68457  , p_source_75            IN NUMBER
68454 --Invoice Distribution Tax Line Identifier
68455  , p_source_74            IN NUMBER
68456 --Invoice Distribution Tax Distribution Identifier from Tax
68458 --Invoice Distribution Summary Tax Line Identifier
68459  , p_source_76            IN NUMBER
68460 --Business Flow Accounts Payable Application Identifier
68461  , p_source_79            IN NUMBER
68462 --Business Flow Invoice Distribution Type
68463  , p_source_80            IN VARCHAR2
68464 --Business Flow Invoice Entity Code
68465  , p_source_81            IN VARCHAR2
68466 --Business Flow Invoice Distribution Identifier
68467  , p_source_82            IN NUMBER
68468 --Business Flow Invoice Identifier
68469  , p_source_83            IN NUMBER
68470 --When to Account for Payment Option
68471  , p_source_89            IN VARCHAR2
68472 --Payment Distribution Type
68473  , p_source_90            IN VARCHAR2
68474  , p_source_90_meaning    IN VARCHAR2
68475 --Payment Distribution Amount
68476  , p_source_91            IN NUMBER
68477 --Payment Distribution Identifier
68478  , p_source_96            IN NUMBER
68479 --Payment Supplier Identifier
68480  , p_source_102            IN NUMBER
68481 --Payment Supplier Site Identifier
68482  , p_source_103            IN NUMBER
68483 --Payment Distribution Reversed Identifier
68484  , p_source_104            IN NUMBER
68485 --Payment Currency Code
68486  , p_source_106            IN VARCHAR2
68487 --Payment Maturity Date
68488  , p_source_107            IN DATE
68489 --Payment Distribution (Invoice Rate) Ledger Amount
68490  , p_source_109            IN NUMBER
68491 --Payment Exchange Date
68492  , p_source_110            IN DATE
68493 --Payment Exchange Rate
68494  , p_source_111            IN NUMBER
68495 --Payment Exchange Rate Type
68496  , p_source_112            IN VARCHAR2
68497 --Payment Processing Type
68498  , p_source_116            IN VARCHAR2
68499 --Invoice Distribution Amount of the Payment Distribution
68500  , p_source_117            IN NUMBER
68501 )
68502 IS
68503 
68504 l_component_type              VARCHAR2(80);
68505 l_component_code              VARCHAR2(30);
68506 l_component_type_code         VARCHAR2(1);
68507 l_component_appl_id           INTEGER;
68508 l_amb_context_code            VARCHAR2(30);
68509 l_entity_code                 VARCHAR2(30);
68510 l_event_class_code            VARCHAR2(30);
68511 l_ae_header_id                NUMBER;
68512 l_event_type_code             VARCHAR2(30);
68513 l_line_definition_code        VARCHAR2(30);
68514 l_line_definition_owner_code  VARCHAR2(1);
68515 --
68516 -- adr variables
68517 l_segment                     VARCHAR2(30);
68518 l_ccid                        NUMBER;
68519 l_adr_transaction_coa_id      NUMBER;
68520 l_adr_accounting_coa_id       NUMBER;
68521 l_adr_flexfield_segment_code  VARCHAR2(30);
68522 l_adr_flex_value_set_id       NUMBER;
68523 l_adr_value_type_code         VARCHAR2(30);
68524 l_adr_value_combination_id    NUMBER;
68525 l_adr_value_segment_code      VARCHAR2(30);
68526 
68527 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
68528 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
68529 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
68530 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
68531 
68532 -- 4262811 Variables ------------------------------------------------------------------------------------------
68533 l_entered_amt_idx             NUMBER;
68534 l_accted_amt_idx              NUMBER;
68535 l_acc_rev_flag                VARCHAR2(1);
68536 l_accrual_line_num            NUMBER;
68537 l_tmp_amt                     NUMBER;
68538 l_acc_rev_natural_side_code   VARCHAR2(1);
68539 
68540 l_num_entries                 NUMBER;
68541 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
68542 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
68543 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
68544 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
68545 l_recog_line_1                NUMBER;
68546 l_recog_line_2                NUMBER;
68547 
68548 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
68549 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
68550 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
68551 
68552 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
68553 
68554 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
68555 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
68556 
68557 ---------------------------------------------------------------------------------------------------------------
68558 
68559 
68560 --
68561 -- bulk performance
68562 --
68563 l_balance_type_code           VARCHAR2(1);
68564 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
68565 l_log_module                  VARCHAR2(240);
68566 
68567 --
68568 -- Upgrade strategy
68569 --
68570 l_actual_upg_option           VARCHAR2(1);
68571 l_enc_upg_option           VARCHAR2(1);
68572 
68573 --
68574 BEGIN
68575 --
68576 IF g_log_enabled THEN
68577       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_133';
68578 END IF;
68579 --
68580 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68581 
68582       trace
68583          (p_msg      => 'BEGIN of AcctLineType_133'
68584          ,p_level    => C_LEVEL_PROCEDURE
68585          ,p_module   => l_log_module);
68586 
68587 END IF;
68588 --
68589 l_component_type             := 'AMB_JLT';
68593 l_amb_context_code           := 'DEFAULT';
68590 l_component_code             := 'AP_FUTURE_DATED_PMT_INVXRATE';
68591 l_component_type_code        := 'S';
68592 l_component_appl_id          :=  200;
68594 l_entity_code                := 'AP_PAYMENTS';
68595 l_event_class_code           := 'PAYMENTS';
68596 l_event_type_code            := 'PAYMENTS_ALL';
68597 l_line_definition_owner_code := 'S';
68598 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
68599 --
68600 l_balance_type_code          := 'A';
68601 l_segment                     := NULL;
68602 l_ccid                        := NULL;
68603 l_adr_transaction_coa_id      := NULL;
68604 l_adr_accounting_coa_id       := NULL;
68605 l_adr_flexfield_segment_code  := NULL;
68606 l_adr_flex_value_set_id       := NULL;
68607 l_adr_value_type_code         := NULL;
68608 l_adr_value_combination_id    := NULL;
68609 l_adr_value_segment_code      := NULL;
68610 
68611 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
68612 l_bflow_class_code           := 'AP_FUTURE_DTD_PMT';    -- 4219869 Business Flow
68613 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
68614 l_budgetary_control_flag     := 'N';
68615 
68616 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
68617 l_bflow_applied_to_amt       := NULL; -- 5132302
68618 l_entered_amt_idx            := NULL;          -- 4262811
68619 l_accted_amt_idx             := NULL;          -- 4262811
68620 l_acc_rev_flag               := NULL;          -- 4262811
68621 l_accrual_line_num           := NULL;          -- 4262811
68622 l_tmp_amt                    := NULL;          -- 4262811
68623 --
68624  
68625 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
68626     l_balance_type_code <> 'B' THEN
68627 IF NVL(p_source_89,'
68628 ') =  'ALWAYS_CLEAR' AND 
68629 NVL(p_source_90,'
68630 ') =  'CASH' AND 
68631 p_source_107 IS NOT NULL AND 
68632 NVL(p_source_116,'
68633 ') <>  'PAYMENTCARD'
68634  THEN 
68635 
68636    --
68637    XLA_AE_LINES_PKG.SetNewLine;
68638 
68639    p_balance_type_code          := l_balance_type_code;
68640    -- set the flag so later we will know whether the gain loss line needs to be created
68641    
68642    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
68643      p_actual_flag :='A';
68644    END IF;
68645 
68646    --
68647    -- bulk performance
68648    --
68649    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
68650                                       p_header_num   => 0); -- 4262811
68651    --
68652    -- set accounting line options
68653    --
68654    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
68655            p_natural_side_code          => 'C'
68656          , p_gain_or_loss_flag          => 'N'
68657          , p_gl_transfer_mode_code      => 'S'
68658          , p_acct_entry_type_code       => 'A'
68659          , p_switch_side_flag           => 'Y'
68660          , p_merge_duplicate_code       => 'A'
68661          );
68662    --
68663    l_acc_rev_natural_side_code := 'D';  -- 4262811
68664    -- 
68665    --
68666    -- set accounting line type info
68667    --
68668    xla_ae_lines_pkg.SetAcctLineType
68669       (p_component_type             => l_component_type
68670       ,p_event_type_code            => l_event_type_code
68671       ,p_line_definition_owner_code => l_line_definition_owner_code
68672       ,p_line_definition_code       => l_line_definition_code
68673       ,p_accounting_line_code       => l_component_code
68674       ,p_accounting_line_type_code  => l_component_type_code
68675       ,p_accounting_line_appl_id    => l_component_appl_id
68676       ,p_amb_context_code           => l_amb_context_code
68677       ,p_entity_code                => l_entity_code
68678       ,p_event_class_code           => l_event_class_code);
68679    --
68680    -- set accounting class
68681    --
68682    xla_ae_lines_pkg.SetAcctClass(
68683            p_accounting_class_code  => 'FUTURE_DATED_PMT'
68684          , p_ae_header_id           => l_ae_header_id
68685          );
68686 
68687    --
68688    -- set rounding class
68689    --
68690    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
68691                       'FUTURE_DATED_PMT';
68692 
68693    --
68694    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
68695    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
68696    --
68697    -- bulk performance
68698    --
68699    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
68700 
68701    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
68702       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
68703 
68704    -- 4955764
68705    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68706       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
68707 
68708    -- 4458381 Public Sector Enh
68709    
68710    --
68711    -- set accounting attributes for the line type
68712    --
68713    l_entered_amt_idx := 10;
68714    l_accted_amt_idx  := 15;
68715    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
68716    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
68717    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
68718    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
68719    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
68720    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
68724    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
68721    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
68722    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
68723    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
68725    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
68726    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
68727    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
68728    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
68729    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
68730    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
68731    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
68732    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
68733    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
68734    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
68735    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
68736    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
68737    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
68738    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
68739    l_rec_acct_attrs.array_date_value(12)  := p_source_110;
68740    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
68741    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
68742    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
68743    l_rec_acct_attrs.array_char_value(14)  := p_source_112;
68744    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
68745    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
68746    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
68747    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
68748    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
68749    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
68750    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
68751    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
68752    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
68753    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
68754    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
68755    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
68756    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
68757    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
68758    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
68759    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
68760    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
68761    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
68762    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
68763    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
68764 
68765    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
68766    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
68767 
68768    ---------------------------------------------------------------------------------------------------------------
68769    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
68770    ---------------------------------------------------------------------------------------------------------------
68771    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
68772 
68773    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68774    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68775 
68776    IF xla_accounting_cache_pkg.GetValueChar
68777          (p_source_code         => 'LEDGER_CATEGORY_CODE'
68778          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
68779    AND l_bflow_method_code = 'PRIOR_ENTRY'
68780 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
68781    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
68782          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
68783        )
68784    THEN
68785          xla_ae_lines_pkg.BflowUpgEntry
68786            (p_business_method_code    => l_bflow_method_code
68787            ,p_business_class_code     => l_bflow_class_code
68788            ,p_balance_type            => l_balance_type_code);
68789    ELSE
68790       NULL;
68791 -- No business flow processing for business flow method of NONE.
68792    END IF;
68793 
68794    --
68795    -- call analytical criteria
68796    --
68797    
68798    --
68799    -- call description
68800    --
68801    -- No description or it is inherited.
68802    --
68803    -- call ADRs
68804    -- Bug 4922099
68805    --
68806    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68807         (NVL(l_actual_upg_option, 'N') = 'O') OR
68808         (NVL(l_enc_upg_option, 'N') = 'O')
68809       )
68810    THEN
68811    NULL;
68812    --
68813    --
68814    
68815   l_ccid := AcctDerRule_30(
68816            p_application_id           => p_application_id
68817          , p_ae_header_id             => l_ae_header_id 
68818 , p_source_3 => p_source_3
68819 , p_source_3_meaning => p_source_3_meaning
68820 , p_source_12 => p_source_12
68821 , p_source_13 => p_source_13
68822 , p_source_13_meaning => p_source_13_meaning
68823 , p_source_14 => p_source_14
68824 , p_source_15 => p_source_15
68825 , p_source_18 => p_source_18
68826          , x_transaction_coa_id       => l_adr_transaction_coa_id
68827          , x_accounting_coa_id        => l_adr_accounting_coa_id
68828          , x_value_type_code          => l_adr_value_type_code
68829          , p_side                     => 'NA'
68833     p_code_combination_id          => l_ccid
68830    );
68831 
68832    xla_ae_lines_pkg.set_ccid(
68834   , p_value_type_code              => l_adr_value_type_code
68835   , p_transaction_coa_id           => l_adr_transaction_coa_id
68836   , p_accounting_coa_id            => l_adr_accounting_coa_id
68837   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
68838   , p_adr_type_code                => 'S'
68839   , p_component_type               => l_component_type
68840   , p_component_code               => l_component_code
68841   , p_component_type_code          => l_component_type_code
68842   , p_component_appl_id            => l_component_appl_id
68843   , p_amb_context_code             => l_amb_context_code
68844   , p_side                         => 'NA'
68845   );
68846 
68847 
68848    l_segment := AcctDerRule_10(
68849            p_application_id           => p_application_id
68850          , p_ae_header_id             => l_ae_header_id 
68851 , p_source_3 => p_source_3
68852 , p_source_3_meaning => p_source_3_meaning
68853 , p_source_12 => p_source_12
68854 , p_source_13 => p_source_13
68855 , p_source_13_meaning => p_source_13_meaning
68856 , p_source_14 => p_source_14
68857 , p_source_15 => p_source_15
68858          , x_transaction_coa_id       => l_adr_transaction_coa_id
68859          , x_accounting_coa_id        => l_adr_accounting_coa_id
68860          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68861          , x_flex_value_set_id        => l_adr_flex_value_set_id
68862          , x_value_type_code          => l_adr_value_type_code
68863          , x_value_combination_id     => l_adr_value_combination_id
68864          , x_value_segment_code       => l_adr_value_segment_code
68865          , p_side                     => 'NA'
68866          , p_override_seg_flag        => 'Y'
68867    );
68868 
68869    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68870 
68871       xla_ae_lines_pkg.set_segment(
68872           p_to_segment_code         => 'GL_ACCOUNT'
68873         , p_segment_value           => l_segment
68874         , p_from_segment_code       => l_adr_value_segment_code
68875         , p_from_combination_id     => l_adr_value_combination_id
68876         , p_value_type_code         => l_adr_value_type_code
68877         , p_transaction_coa_id      => l_adr_transaction_coa_id
68878         , p_accounting_coa_id       => l_adr_accounting_coa_id
68879         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68880         , p_flex_value_set_id       => l_adr_flex_value_set_id
68881         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
68882         , p_adr_type_code           => 'S'
68883         , p_component_type          => l_component_type
68884         , p_component_code          => l_component_code
68885         , p_component_type_code     => l_component_type_code
68886         , p_component_appl_id       => l_component_appl_id
68887         , p_amb_context_code        => l_amb_context_code
68888         , p_entity_code             => 'AP_PAYMENTS'
68889         , p_event_class_code        => 'PAYMENTS'
68890         , p_side                    => 'NA'
68891         );
68892 
68893   END IF;
68894 
68895    l_segment := AcctDerRule_21(
68896            p_application_id           => p_application_id
68897          , p_ae_header_id             => l_ae_header_id 
68898 , p_source_3 => p_source_3
68899 , p_source_3_meaning => p_source_3_meaning
68900 , p_source_18 => p_source_18
68901          , x_transaction_coa_id       => l_adr_transaction_coa_id
68902          , x_accounting_coa_id        => l_adr_accounting_coa_id
68903          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68904          , x_flex_value_set_id        => l_adr_flex_value_set_id
68905          , x_value_type_code          => l_adr_value_type_code
68906          , x_value_combination_id     => l_adr_value_combination_id
68907          , x_value_segment_code       => l_adr_value_segment_code
68908          , p_side                     => 'NA'
68909          , p_override_seg_flag        => 'Y'
68910    );
68911 
68912    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68913 
68914       xla_ae_lines_pkg.set_segment(
68915           p_to_segment_code         => 'GL_BALANCING'
68916         , p_segment_value           => l_segment
68917         , p_from_segment_code       => l_adr_value_segment_code
68918         , p_from_combination_id     => l_adr_value_combination_id
68919         , p_value_type_code         => l_adr_value_type_code
68920         , p_transaction_coa_id      => l_adr_transaction_coa_id
68921         , p_accounting_coa_id       => l_adr_accounting_coa_id
68922         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68923         , p_flex_value_set_id       => l_adr_flex_value_set_id
68924         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
68925         , p_adr_type_code           => 'S'
68926         , p_component_type          => l_component_type
68927         , p_component_code          => l_component_code
68928         , p_component_type_code     => l_component_type_code
68929         , p_component_appl_id       => l_component_appl_id
68930         , p_amb_context_code        => l_amb_context_code
68931         , p_entity_code             => 'AP_PAYMENTS'
68932         , p_event_class_code        => 'PAYMENTS'
68933         , p_side                    => 'NA'
68934         );
68935 
68936   END IF;
68937 
68938    --
68939    --
68940    END IF;
68941    --
68942    -- Bug 4922099
68943    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
68944           (NVL(l_enc_upg_option, 'N') = 'O')
68945         ) AND
68946         (l_bflow_method_code = 'PRIOR_ENTRY')
68947       )
68948    THEN
68949       IF
68950       --
68951       1 = 2
68952       --
68956                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68953       THEN
68954       xla_accounting_err_pkg.build_message
68955                                     (p_appli_s_name            => 'XLA'
68957                                     ,p_token_1                 => 'LINE_NUMBER'
68958                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
68959                                     ,p_token_2                 => 'LINE_TYPE_NAME'
68960                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
68961                                                                              l_component_type
68962                                                                             ,l_component_code
68963                                                                             ,l_component_type_code
68964                                                                             ,l_component_appl_id
68965                                                                             ,l_amb_context_code
68966                                                                             ,l_entity_code
68967                                                                             ,l_event_class_code
68968                                                                            )
68969                                     ,p_token_3                 => 'OWNER'
68970                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
68971                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
68972                                                                           ,p_lookup_code    => l_component_type_code
68973                                                                          )
68974                                     ,p_token_4                 => 'PRODUCT_NAME'
68975                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
68976                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
68977                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
68978                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
68979                                     ,p_ae_header_id            =>  NULL
68980                                        );
68981 
68982         IF (C_LEVEL_ERROR>= g_log_level) THEN
68983                  trace
68984                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68985                       ,p_level    => C_LEVEL_ERROR
68986                       ,p_module   => l_log_module);
68987         END IF;
68988       END IF;
68989    END IF;
68990    --
68991    --
68992    ------------------------------------------------------------------------------------------------
68993    -- 4219869 Business Flow
68994    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
68995    -- Prior Entry.  Currently, the following code is always generated.
68996    ------------------------------------------------------------------------------------------------
68997    XLA_AE_LINES_PKG.ValidateCurrentLine;
68998 
68999    ------------------------------------------------------------------------------------
69000    -- 4219869 Business Flow
69001    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
69002    ------------------------------------------------------------------------------------
69003    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69004 
69005    ----------------------------------------------------------------------------------
69006    -- 4219869 Business Flow
69007    -- Update journal entry status -- Need to generate this within IF <condition>
69008    ----------------------------------------------------------------------------------
69009    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69010          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
69011          ,p_balance_type_code => l_balance_type_code
69012          );
69013 
69014    -------------------------------------------------------------------------------------------
69015    -- 4262811 - Generate the Accrual Reversal lines
69016    -------------------------------------------------------------------------------------------
69017    BEGIN
69018       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
69019                               (g_array_event(p_event_id).array_value_num('header_index'));
69020       IF l_acc_rev_flag IS NULL THEN
69021          l_acc_rev_flag := 'N';
69022       END IF;
69023    EXCEPTION
69024       WHEN OTHERS THEN
69025          l_acc_rev_flag := 'N';
69026    END;
69027    --
69028    IF (l_acc_rev_flag = 'Y') THEN
69029 
69030        -- 4645092  ------------------------------------------------------------------------------
69031        -- To allow MPA report to determine if it should generate report process
69032        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
69033        ------------------------------------------------------------------------------------------
69034 
69035        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
69036        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
69037    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
69038    -- call ADRs
69039    -- Bug 4922099
69040    --
69041    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69042         (NVL(l_actual_upg_option, 'N') = 'O') OR
69043         (NVL(l_enc_upg_option, 'N') = 'O')
69044       )
69045    THEN
69046    NULL;
69047    --
69048    --
69049    
69050   l_ccid := AcctDerRule_30(
69051            p_application_id           => p_application_id
69055 , p_source_12 => p_source_12
69052          , p_ae_header_id             => l_ae_header_id 
69053 , p_source_3 => p_source_3
69054 , p_source_3_meaning => p_source_3_meaning
69056 , p_source_13 => p_source_13
69057 , p_source_13_meaning => p_source_13_meaning
69058 , p_source_14 => p_source_14
69059 , p_source_15 => p_source_15
69060 , p_source_18 => p_source_18
69061          , x_transaction_coa_id       => l_adr_transaction_coa_id
69062          , x_accounting_coa_id        => l_adr_accounting_coa_id
69063          , x_value_type_code          => l_adr_value_type_code
69064          , p_side                     => 'NA'
69065    );
69066 
69067    xla_ae_lines_pkg.set_ccid(
69068     p_code_combination_id          => l_ccid
69069   , p_value_type_code              => l_adr_value_type_code
69070   , p_transaction_coa_id           => l_adr_transaction_coa_id
69071   , p_accounting_coa_id            => l_adr_accounting_coa_id
69072   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
69073   , p_adr_type_code                => 'S'
69074   , p_component_type               => l_component_type
69075   , p_component_code               => l_component_code
69076   , p_component_type_code          => l_component_type_code
69077   , p_component_appl_id            => l_component_appl_id
69078   , p_amb_context_code             => l_amb_context_code
69079   , p_side                         => 'NA'
69080   );
69081 
69082 
69083    l_segment := AcctDerRule_10(
69084            p_application_id           => p_application_id
69085          , p_ae_header_id             => l_ae_header_id 
69086 , p_source_3 => p_source_3
69087 , p_source_3_meaning => p_source_3_meaning
69088 , p_source_12 => p_source_12
69089 , p_source_13 => p_source_13
69090 , p_source_13_meaning => p_source_13_meaning
69091 , p_source_14 => p_source_14
69092 , p_source_15 => p_source_15
69093          , x_transaction_coa_id       => l_adr_transaction_coa_id
69094          , x_accounting_coa_id        => l_adr_accounting_coa_id
69095          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69096          , x_flex_value_set_id        => l_adr_flex_value_set_id
69097          , x_value_type_code          => l_adr_value_type_code
69098          , x_value_combination_id     => l_adr_value_combination_id
69099          , x_value_segment_code       => l_adr_value_segment_code
69100          , p_side                     => 'NA'
69101          , p_override_seg_flag        => 'Y'
69102    );
69103 
69104    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69105 
69106       xla_ae_lines_pkg.set_segment(
69107           p_to_segment_code         => 'GL_ACCOUNT'
69108         , p_segment_value           => l_segment
69109         , p_from_segment_code       => l_adr_value_segment_code
69110         , p_from_combination_id     => l_adr_value_combination_id
69111         , p_value_type_code         => l_adr_value_type_code
69112         , p_transaction_coa_id      => l_adr_transaction_coa_id
69113         , p_accounting_coa_id       => l_adr_accounting_coa_id
69114         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69115         , p_flex_value_set_id       => l_adr_flex_value_set_id
69116         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
69117         , p_adr_type_code           => 'S'
69118         , p_component_type          => l_component_type
69119         , p_component_code          => l_component_code
69120         , p_component_type_code     => l_component_type_code
69121         , p_component_appl_id       => l_component_appl_id
69122         , p_amb_context_code        => l_amb_context_code
69123         , p_entity_code             => 'AP_PAYMENTS'
69124         , p_event_class_code        => 'PAYMENTS'
69125         , p_side                    => 'NA'
69126         );
69127 
69128   END IF;
69129 
69130    l_segment := AcctDerRule_21(
69131            p_application_id           => p_application_id
69132          , p_ae_header_id             => l_ae_header_id 
69133 , p_source_3 => p_source_3
69134 , p_source_3_meaning => p_source_3_meaning
69135 , p_source_18 => p_source_18
69136          , x_transaction_coa_id       => l_adr_transaction_coa_id
69137          , x_accounting_coa_id        => l_adr_accounting_coa_id
69138          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69139          , x_flex_value_set_id        => l_adr_flex_value_set_id
69140          , x_value_type_code          => l_adr_value_type_code
69141          , x_value_combination_id     => l_adr_value_combination_id
69142          , x_value_segment_code       => l_adr_value_segment_code
69143          , p_side                     => 'NA'
69144          , p_override_seg_flag        => 'Y'
69145    );
69146 
69147    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69148 
69149       xla_ae_lines_pkg.set_segment(
69150           p_to_segment_code         => 'GL_BALANCING'
69151         , p_segment_value           => l_segment
69152         , p_from_segment_code       => l_adr_value_segment_code
69153         , p_from_combination_id     => l_adr_value_combination_id
69154         , p_value_type_code         => l_adr_value_type_code
69155         , p_transaction_coa_id      => l_adr_transaction_coa_id
69156         , p_accounting_coa_id       => l_adr_accounting_coa_id
69157         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69158         , p_flex_value_set_id       => l_adr_flex_value_set_id
69159         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
69160         , p_adr_type_code           => 'S'
69161         , p_component_type          => l_component_type
69162         , p_component_code          => l_component_code
69163         , p_component_type_code     => l_component_type_code
69164         , p_component_appl_id       => l_component_appl_id
69165         , p_amb_context_code        => l_amb_context_code
69169         );
69166         , p_entity_code             => 'AP_PAYMENTS'
69167         , p_event_class_code        => 'PAYMENTS'
69168         , p_side                    => 'NA'
69170 
69171   END IF;
69172 
69173    --
69174    --
69175    END IF;
69176 
69177        --
69178        -- Update the line information that should be overwritten
69179        --
69180        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
69181                                          p_header_num   => 1);
69182        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
69183 
69184        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
69185 
69186        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
69187           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
69188        END IF;
69189 
69190       --
69191       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
69192       --
69193       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
69194           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
69195       ELSE
69196           ---------------------------------------------------------------------------------------------------
69197           -- 4262811a Switch Sign
69198           ---------------------------------------------------------------------------------------------------
69199           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
69200           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69201                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69202           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69203                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69204           -- 5132302
69205           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
69206                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69207 
69208       END IF;
69209 
69210       -- 4955764
69211       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69212       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
69213 
69214 
69215       XLA_AE_LINES_PKG.ValidateCurrentLine;
69216       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69217 
69218       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69219                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
69220                ,p_balance_type_code => l_balance_type_code);
69221 
69222    END IF;
69223 
69224    -----------------------------------------------------------------------------------------
69225    -- 4262811 Multiperiod Accounting
69226    -----------------------------------------------------------------------------------------
69227      -- No MPA option is assigned.
69228 
69229 
69230 END IF;
69231 END IF;
69232 --
69233 
69234 --
69235 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69236    trace
69237       (p_msg      => 'END of AcctLineType_133'
69238       ,p_level    => C_LEVEL_PROCEDURE
69239       ,p_module   => l_log_module);
69240 END IF;
69241 --
69242 EXCEPTION
69243   WHEN xla_exceptions_pkg.application_exception THEN
69244       RAISE;
69245   WHEN OTHERS THEN
69246        xla_exceptions_pkg.raise_message
69247            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_133');
69248 END AcctLineType_133;
69249 --
69250 
69251 ---------------------------------------
69252 --
69253 -- PRIVATE FUNCTION
69254 --         AcctLineType_134
69255 --
69256 ---------------------------------------
69257 PROCEDURE AcctLineType_134 (
69258   p_application_id        IN NUMBER
69259  ,p_event_id              IN NUMBER
69260  ,p_calculate_acctd_flag  IN VARCHAR2
69261  ,p_calculate_g_l_flag    IN VARCHAR2
69262  ,p_actual_flag           IN OUT VARCHAR2
69263  ,p_balance_type_code     OUT VARCHAR2
69264  ,p_gain_or_loss_ref      OUT VARCHAR2
69265  
69266 --Accounting Reversal Indicator
69267  , p_source_41            IN VARCHAR2
69268 --Distribution Link Type
69269  , p_source_43            IN VARCHAR2
69270 --Override Accounted Amount Indicator
69271  , p_source_68            IN VARCHAR2
69272  , p_source_68_meaning    IN VARCHAR2
69273 --Third Party Type
69274  , p_source_71            IN VARCHAR2
69275 --Business Flow Accounts Payable Application Identifier
69276  , p_source_79            IN NUMBER
69277 --When to Account for Payment Option
69278  , p_source_89            IN VARCHAR2
69279 --Payment Distribution Type
69280  , p_source_90            IN VARCHAR2
69281  , p_source_90_meaning    IN VARCHAR2
69282 --Payment Distribution Amount
69283  , p_source_91            IN NUMBER
69284 --Business Flow Payment Distribution Type
69285  , p_source_92            IN VARCHAR2
69286 --Business Flow Payment Entity Code
69287  , p_source_93            IN VARCHAR2
69288 --Business Flow Payment Distribution Identifier
69289  , p_source_94            IN NUMBER
69290 --Business Flow Payment Identifier
69291  , p_source_95            IN NUMBER
69292 --Payment Distribution Identifier
69293  , p_source_96            IN NUMBER
69294 --Payment Distribution Reversed Identifier
69295  , p_source_104            IN NUMBER
69296 --Payment Currency Code
69300 --Payment Distribution (Payment Rate) Ledger Amount
69297  , p_source_106            IN VARCHAR2
69298 --Payment Maturity Date
69299  , p_source_107            IN DATE
69301  , p_source_108            IN NUMBER
69302 )
69303 IS
69304 
69305 l_component_type              VARCHAR2(80);
69306 l_component_code              VARCHAR2(30);
69307 l_component_type_code         VARCHAR2(1);
69308 l_component_appl_id           INTEGER;
69309 l_amb_context_code            VARCHAR2(30);
69310 l_entity_code                 VARCHAR2(30);
69311 l_event_class_code            VARCHAR2(30);
69312 l_ae_header_id                NUMBER;
69313 l_event_type_code             VARCHAR2(30);
69314 l_line_definition_code        VARCHAR2(30);
69315 l_line_definition_owner_code  VARCHAR2(1);
69316 --
69317 -- adr variables
69318 l_segment                     VARCHAR2(30);
69319 l_ccid                        NUMBER;
69320 l_adr_transaction_coa_id      NUMBER;
69321 l_adr_accounting_coa_id       NUMBER;
69322 l_adr_flexfield_segment_code  VARCHAR2(30);
69323 l_adr_flex_value_set_id       NUMBER;
69324 l_adr_value_type_code         VARCHAR2(30);
69325 l_adr_value_combination_id    NUMBER;
69326 l_adr_value_segment_code      VARCHAR2(30);
69327 
69328 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
69329 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
69330 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
69331 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
69332 
69333 -- 4262811 Variables ------------------------------------------------------------------------------------------
69334 l_entered_amt_idx             NUMBER;
69335 l_accted_amt_idx              NUMBER;
69336 l_acc_rev_flag                VARCHAR2(1);
69337 l_accrual_line_num            NUMBER;
69338 l_tmp_amt                     NUMBER;
69339 l_acc_rev_natural_side_code   VARCHAR2(1);
69340 
69341 l_num_entries                 NUMBER;
69342 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
69343 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
69344 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
69345 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
69346 l_recog_line_1                NUMBER;
69347 l_recog_line_2                NUMBER;
69348 
69349 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
69350 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
69351 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
69352 
69353 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
69354 
69355 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
69356 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
69357 
69358 ---------------------------------------------------------------------------------------------------------------
69359 
69360 
69361 --
69362 -- bulk performance
69363 --
69364 l_balance_type_code           VARCHAR2(1);
69365 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
69366 l_log_module                  VARCHAR2(240);
69367 
69368 --
69369 -- Upgrade strategy
69370 --
69371 l_actual_upg_option           VARCHAR2(1);
69372 l_enc_upg_option           VARCHAR2(1);
69373 
69374 --
69375 BEGIN
69376 --
69377 IF g_log_enabled THEN
69378       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_134';
69379 END IF;
69380 --
69381 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69382 
69383       trace
69384          (p_msg      => 'BEGIN of AcctLineType_134'
69385          ,p_level    => C_LEVEL_PROCEDURE
69386          ,p_module   => l_log_module);
69387 
69388 END IF;
69389 --
69390 l_component_type             := 'AMB_JLT';
69391 l_component_code             := 'AP_FUTURE_DATED_PMT_MAT';
69392 l_component_type_code        := 'S';
69393 l_component_appl_id          :=  200;
69394 l_amb_context_code           := 'DEFAULT';
69395 l_entity_code                := 'AP_PAYMENTS';
69396 l_event_class_code           := 'FUTURE DATED PAYMENTS';
69397 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
69398 l_line_definition_owner_code := 'S';
69399 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
69400 --
69401 l_balance_type_code          := 'A';
69402 l_segment                     := NULL;
69403 l_ccid                        := NULL;
69404 l_adr_transaction_coa_id      := NULL;
69405 l_adr_accounting_coa_id       := NULL;
69406 l_adr_flexfield_segment_code  := NULL;
69407 l_adr_flex_value_set_id       := NULL;
69408 l_adr_value_type_code         := NULL;
69409 l_adr_value_combination_id    := NULL;
69410 l_adr_value_segment_code      := NULL;
69411 
69412 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
69413 l_bflow_class_code           := 'AP_FUTURE_DTD_PMT';    -- 4219869 Business Flow
69414 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
69415 l_budgetary_control_flag     := 'N';
69416 
69417 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
69418 l_bflow_applied_to_amt       := NULL; -- 5132302
69419 l_entered_amt_idx            := NULL;          -- 4262811
69420 l_accted_amt_idx             := NULL;          -- 4262811
69421 l_acc_rev_flag               := NULL;          -- 4262811
69422 l_accrual_line_num           := NULL;          -- 4262811
69423 l_tmp_amt                    := NULL;          -- 4262811
69424 --
69425  
69429 ') <>  'CLEAR_CLEAR' AND 
69426 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
69427     l_balance_type_code <> 'B' THEN
69428 IF NVL(p_source_89,'
69430 p_source_107 IS NOT NULL AND 
69431 (NVL(p_source_90,'
69432 ') =  'CASH' OR 
69433 NVL(p_source_90,'
69434 ') =  'ROUNDING')
69435  THEN 
69436 
69437    --
69438    XLA_AE_LINES_PKG.SetNewLine;
69439 
69440    p_balance_type_code          := l_balance_type_code;
69441    -- set the flag so later we will know whether the gain loss line needs to be created
69442    
69443    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
69444      p_actual_flag :='A';
69445    END IF;
69446 
69447    --
69448    -- bulk performance
69449    --
69450    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
69451                                       p_header_num   => 0); -- 4262811
69452    --
69453    -- set accounting line options
69454    --
69455    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
69456            p_natural_side_code          => 'D'
69457          , p_gain_or_loss_flag          => 'N'
69458          , p_gl_transfer_mode_code      => 'S'
69459          , p_acct_entry_type_code       => 'A'
69460          , p_switch_side_flag           => 'Y'
69461          , p_merge_duplicate_code       => 'A'
69462          );
69463    --
69464    l_acc_rev_natural_side_code := 'C';  -- 4262811
69465    -- 
69466    --
69467    -- set accounting line type info
69468    --
69469    xla_ae_lines_pkg.SetAcctLineType
69470       (p_component_type             => l_component_type
69471       ,p_event_type_code            => l_event_type_code
69472       ,p_line_definition_owner_code => l_line_definition_owner_code
69473       ,p_line_definition_code       => l_line_definition_code
69474       ,p_accounting_line_code       => l_component_code
69475       ,p_accounting_line_type_code  => l_component_type_code
69476       ,p_accounting_line_appl_id    => l_component_appl_id
69477       ,p_amb_context_code           => l_amb_context_code
69478       ,p_entity_code                => l_entity_code
69479       ,p_event_class_code           => l_event_class_code);
69480    --
69481    -- set accounting class
69482    --
69483    xla_ae_lines_pkg.SetAcctClass(
69484            p_accounting_class_code  => 'FUTURE_DATED_PMT'
69485          , p_ae_header_id           => l_ae_header_id
69486          );
69487 
69488    --
69489    -- set rounding class
69490    --
69491    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
69492                       'FUTURE_DATED_PMT';
69493 
69494    --
69495    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
69496    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
69497    --
69498    -- bulk performance
69499    --
69500    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
69501 
69502    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
69503       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
69504 
69505    -- 4955764
69506    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69507       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
69508 
69509    -- 4458381 Public Sector Enh
69510    
69511    --
69512    -- set accounting attributes for the line type
69513    --
69514    l_entered_amt_idx := 9;
69515    l_accted_amt_idx  := 11;
69516    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
69517    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
69518    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
69519    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
69520    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
69521    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
69522    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
69523    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
69524    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
69525    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
69526    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
69527    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
69528    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
69529    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
69530    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
69531    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
69532    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
69533    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
69534    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
69535    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
69536    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
69537    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
69538    l_rec_acct_attrs.array_num_value(11)  := p_source_108;
69539    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
69540    l_rec_acct_attrs.array_char_value(12)  := p_source_68;
69541    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
69542    l_rec_acct_attrs.array_char_value(13)  := p_source_71;
69543    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
69544    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_104);
69545    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
69546    l_rec_acct_attrs.array_char_value(15)  := p_source_43;
69547 
69551    ---------------------------------------------------------------------------------------------------------------
69548    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
69549    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
69550 
69552    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
69553    ---------------------------------------------------------------------------------------------------------------
69554    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
69555 
69556    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69557    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69558 
69559    IF xla_accounting_cache_pkg.GetValueChar
69560          (p_source_code         => 'LEDGER_CATEGORY_CODE'
69561          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
69562    AND l_bflow_method_code = 'PRIOR_ENTRY'
69563 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
69564    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
69565          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
69566        )
69567    THEN
69568          xla_ae_lines_pkg.BflowUpgEntry
69569            (p_business_method_code    => l_bflow_method_code
69570            ,p_business_class_code     => l_bflow_class_code
69571            ,p_balance_type            => l_balance_type_code);
69572    ELSE
69573       NULL;
69574 XLA_AE_LINES_PKG.business_flow_validation(
69575                                 p_business_method_code     => l_bflow_method_code
69576                                ,p_business_class_code      => l_bflow_class_code
69577                                ,p_inherit_description_flag => l_inherit_desc_flag);
69578    END IF;
69579 
69580    --
69581    -- call analytical criteria
69582    --
69583    -- Inherited Analytical Criteria for business flow method of Prior Entry.
69584    --
69585    -- call description
69586    --
69587    -- No description or it is inherited.
69588    --
69589    -- call ADRs
69590    -- Bug 4922099
69591    --
69592    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69593         (NVL(l_actual_upg_option, 'N') = 'O') OR
69594         (NVL(l_enc_upg_option, 'N') = 'O')
69595       )
69596    THEN
69597    NULL;
69598    --
69599    --
69600    
69601    --
69602    --
69603    END IF;
69604    --
69605    -- Bug 4922099
69606    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
69607           (NVL(l_enc_upg_option, 'N') = 'O')
69608         ) AND
69609         (l_bflow_method_code = 'PRIOR_ENTRY')
69610       )
69611    THEN
69612       IF
69613       --
69614       1 = 1
69615       --
69616       THEN
69617       xla_accounting_err_pkg.build_message
69618                                     (p_appli_s_name            => 'XLA'
69619                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69620                                     ,p_token_1                 => 'LINE_NUMBER'
69621                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
69622                                     ,p_token_2                 => 'LINE_TYPE_NAME'
69623                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
69624                                                                              l_component_type
69625                                                                             ,l_component_code
69626                                                                             ,l_component_type_code
69627                                                                             ,l_component_appl_id
69628                                                                             ,l_amb_context_code
69629                                                                             ,l_entity_code
69630                                                                             ,l_event_class_code
69631                                                                            )
69632                                     ,p_token_3                 => 'OWNER'
69633                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
69634                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
69635                                                                           ,p_lookup_code    => l_component_type_code
69636                                                                          )
69637                                     ,p_token_4                 => 'PRODUCT_NAME'
69638                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
69639                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
69640                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
69641                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
69642                                     ,p_ae_header_id            =>  NULL
69643                                        );
69644 
69645         IF (C_LEVEL_ERROR>= g_log_level) THEN
69646                  trace
69647                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69648                       ,p_level    => C_LEVEL_ERROR
69649                       ,p_module   => l_log_module);
69650         END IF;
69651       END IF;
69652    END IF;
69653    --
69654    --
69655    ------------------------------------------------------------------------------------------------
69656    -- 4219869 Business Flow
69660    -- No ValidateCurrentLine for business flow method of Prior Entry
69657    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
69658    -- Prior Entry.  Currently, the following code is always generated.
69659    ------------------------------------------------------------------------------------------------
69661 
69662    ------------------------------------------------------------------------------------
69663    -- 4219869 Business Flow
69664    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
69665    ------------------------------------------------------------------------------------
69666    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69667 
69668    ----------------------------------------------------------------------------------
69669    -- 4219869 Business Flow
69670    -- Update journal entry status -- Need to generate this within IF <condition>
69671    ----------------------------------------------------------------------------------
69672    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69673          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
69674          ,p_balance_type_code => l_balance_type_code
69675          );
69676 
69677    -------------------------------------------------------------------------------------------
69678    -- 4262811 - Generate the Accrual Reversal lines
69679    -------------------------------------------------------------------------------------------
69680    BEGIN
69681       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
69682                               (g_array_event(p_event_id).array_value_num('header_index'));
69683       IF l_acc_rev_flag IS NULL THEN
69684          l_acc_rev_flag := 'N';
69685       END IF;
69686    EXCEPTION
69687       WHEN OTHERS THEN
69688          l_acc_rev_flag := 'N';
69689    END;
69690    --
69691    IF (l_acc_rev_flag = 'Y') THEN
69692 
69693        -- 4645092  ------------------------------------------------------------------------------
69694        -- To allow MPA report to determine if it should generate report process
69695        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
69696        ------------------------------------------------------------------------------------------
69697 
69698        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
69699        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
69700    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
69701    -- call ADRs
69702    -- Bug 4922099
69703    --
69704    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69705         (NVL(l_actual_upg_option, 'N') = 'O') OR
69706         (NVL(l_enc_upg_option, 'N') = 'O')
69707       )
69708    THEN
69709    NULL;
69710    --
69711    --
69712    
69713    --
69714    --
69715    END IF;
69716 
69717        --
69718        -- Update the line information that should be overwritten
69719        --
69720        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
69721                                          p_header_num   => 1);
69722        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
69723 
69724        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
69725 
69726        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
69727           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
69728        END IF;
69729 
69730       --
69731       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
69732       --
69733       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
69734           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
69735       ELSE
69736           ---------------------------------------------------------------------------------------------------
69737           -- 4262811a Switch Sign
69738           ---------------------------------------------------------------------------------------------------
69739           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
69740           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69741                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69742           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69743                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69744           -- 5132302
69745           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
69746                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69747 
69748       END IF;
69749 
69750       -- 4955764
69751       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69752       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
69753 
69754 
69755       XLA_AE_LINES_PKG.ValidateCurrentLine;
69756       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69757 
69758       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69759                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
69760                ,p_balance_type_code => l_balance_type_code);
69761 
69762    END IF;
69763 
69764    -----------------------------------------------------------------------------------------
69765    -- 4262811 Multiperiod Accounting
69766    -----------------------------------------------------------------------------------------
69767      -- No MPA option is assigned.
69771 END IF;
69768 
69769 
69770 END IF;
69772 --
69773 
69774 --
69775 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69776    trace
69777       (p_msg      => 'END of AcctLineType_134'
69778       ,p_level    => C_LEVEL_PROCEDURE
69779       ,p_module   => l_log_module);
69780 END IF;
69781 --
69782 EXCEPTION
69783   WHEN xla_exceptions_pkg.application_exception THEN
69784       RAISE;
69785   WHEN OTHERS THEN
69786        xla_exceptions_pkg.raise_message
69787            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_134');
69788 END AcctLineType_134;
69789 --
69790 
69791 ---------------------------------------
69792 --
69793 -- PRIVATE FUNCTION
69794 --         AcctLineType_135
69795 --
69796 ---------------------------------------
69797 PROCEDURE AcctLineType_135 (
69798   p_application_id        IN NUMBER
69799  ,p_event_id              IN NUMBER
69800  ,p_calculate_acctd_flag  IN VARCHAR2
69801  ,p_calculate_g_l_flag    IN VARCHAR2
69802  ,p_actual_flag           IN OUT VARCHAR2
69803  ,p_balance_type_code     OUT VARCHAR2
69804  ,p_gain_or_loss_ref      OUT VARCHAR2
69805  
69806 --Automatic Offsets Value
69807  , p_source_3            IN VARCHAR2
69808  , p_source_3_meaning    IN VARCHAR2
69809 --Invoice Distribution Account
69810  , p_source_18            IN NUMBER
69811 --Payables Options Rounding Account
69812  , p_source_37            IN NUMBER
69813 --Accounting Reversal Indicator
69814  , p_source_41            IN VARCHAR2
69815 --Distribution Link Type
69816  , p_source_43            IN VARCHAR2
69817 --Override Accounted Amount Indicator
69818  , p_source_68            IN VARCHAR2
69819  , p_source_68_meaning    IN VARCHAR2
69820 --Third Party Type
69821  , p_source_71            IN VARCHAR2
69822 --Business Flow Accounts Payable Application Identifier
69823  , p_source_79            IN NUMBER
69824 --When to Account for Payment Option
69825  , p_source_89            IN VARCHAR2
69826 --Payment Distribution Type
69827  , p_source_90            IN VARCHAR2
69828  , p_source_90_meaning    IN VARCHAR2
69829 --Payment Distribution Amount
69830  , p_source_91            IN NUMBER
69831 --Business Flow Payment Distribution Type
69832  , p_source_92            IN VARCHAR2
69833 --Business Flow Payment Entity Code
69834  , p_source_93            IN VARCHAR2
69835 --Business Flow Payment Distribution Identifier
69836  , p_source_94            IN NUMBER
69837 --Business Flow Payment Identifier
69838  , p_source_95            IN NUMBER
69839 --Payment Distribution Identifier
69840  , p_source_96            IN NUMBER
69841 --Payment Supplier Identifier
69842  , p_source_102            IN NUMBER
69843 --Payment Supplier Site Identifier
69844  , p_source_103            IN NUMBER
69845 --Payment Distribution Reversed Identifier
69846  , p_source_104            IN NUMBER
69847 --Payment Currency Code
69848  , p_source_106            IN VARCHAR2
69849 --Payment Distribution (Payment Rate) Ledger Amount
69850  , p_source_108            IN NUMBER
69851 --Payment Exchange Date
69852  , p_source_110            IN DATE
69853 --Payment Exchange Rate
69854  , p_source_111            IN NUMBER
69855 --Payment Exchange Rate Type
69856  , p_source_112            IN VARCHAR2
69857 )
69858 IS
69859 
69860 l_component_type              VARCHAR2(80);
69861 l_component_code              VARCHAR2(30);
69862 l_component_type_code         VARCHAR2(1);
69863 l_component_appl_id           INTEGER;
69864 l_amb_context_code            VARCHAR2(30);
69865 l_entity_code                 VARCHAR2(30);
69866 l_event_class_code            VARCHAR2(30);
69867 l_ae_header_id                NUMBER;
69868 l_event_type_code             VARCHAR2(30);
69869 l_line_definition_code        VARCHAR2(30);
69870 l_line_definition_owner_code  VARCHAR2(1);
69871 --
69872 -- adr variables
69873 l_segment                     VARCHAR2(30);
69874 l_ccid                        NUMBER;
69875 l_adr_transaction_coa_id      NUMBER;
69876 l_adr_accounting_coa_id       NUMBER;
69877 l_adr_flexfield_segment_code  VARCHAR2(30);
69878 l_adr_flex_value_set_id       NUMBER;
69879 l_adr_value_type_code         VARCHAR2(30);
69880 l_adr_value_combination_id    NUMBER;
69881 l_adr_value_segment_code      VARCHAR2(30);
69882 
69883 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
69884 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
69885 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
69886 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
69887 
69888 -- 4262811 Variables ------------------------------------------------------------------------------------------
69889 l_entered_amt_idx             NUMBER;
69890 l_accted_amt_idx              NUMBER;
69891 l_acc_rev_flag                VARCHAR2(1);
69892 l_accrual_line_num            NUMBER;
69893 l_tmp_amt                     NUMBER;
69894 l_acc_rev_natural_side_code   VARCHAR2(1);
69895 
69896 l_num_entries                 NUMBER;
69897 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
69898 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
69899 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
69900 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
69901 l_recog_line_1                NUMBER;
69902 l_recog_line_2                NUMBER;
69903 
69904 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
69905 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
69906 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
69907 
69911 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
69908 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
69909 
69910 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
69912 
69913 ---------------------------------------------------------------------------------------------------------------
69914 
69915 
69916 --
69917 -- bulk performance
69918 --
69919 l_balance_type_code           VARCHAR2(1);
69920 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
69921 l_log_module                  VARCHAR2(240);
69922 
69923 --
69924 -- Upgrade strategy
69925 --
69926 l_actual_upg_option           VARCHAR2(1);
69927 l_enc_upg_option           VARCHAR2(1);
69928 
69929 --
69930 BEGIN
69931 --
69932 IF g_log_enabled THEN
69933       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_135';
69934 END IF;
69935 --
69936 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69937 
69938       trace
69939          (p_msg      => 'BEGIN of AcctLineType_135'
69940          ,p_level    => C_LEVEL_PROCEDURE
69941          ,p_module   => l_log_module);
69942 
69943 END IF;
69944 --
69945 l_component_type             := 'AMB_JLT';
69946 l_component_code             := 'AP_FUTURE_PMT_ROUNDING_MAT';
69947 l_component_type_code        := 'S';
69948 l_component_appl_id          :=  200;
69949 l_amb_context_code           := 'DEFAULT';
69950 l_entity_code                := 'AP_PAYMENTS';
69951 l_event_class_code           := 'FUTURE DATED PAYMENTS';
69952 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
69953 l_line_definition_owner_code := 'S';
69954 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
69955 --
69956 l_balance_type_code          := 'A';
69957 l_segment                     := NULL;
69958 l_ccid                        := NULL;
69959 l_adr_transaction_coa_id      := NULL;
69960 l_adr_accounting_coa_id       := NULL;
69961 l_adr_flexfield_segment_code  := NULL;
69962 l_adr_flex_value_set_id       := NULL;
69963 l_adr_value_type_code         := NULL;
69964 l_adr_value_combination_id    := NULL;
69965 l_adr_value_segment_code      := NULL;
69966 
69967 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
69968 l_bflow_class_code           := '';    -- 4219869 Business Flow
69969 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
69970 l_budgetary_control_flag     := 'N';
69971 
69972 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
69973 l_bflow_applied_to_amt       := NULL; -- 5132302
69974 l_entered_amt_idx            := NULL;          -- 4262811
69975 l_accted_amt_idx             := NULL;          -- 4262811
69976 l_acc_rev_flag               := NULL;          -- 4262811
69977 l_accrual_line_num           := NULL;          -- 4262811
69978 l_tmp_amt                    := NULL;          -- 4262811
69979 --
69980  
69981 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
69982     l_balance_type_code <> 'B' THEN
69983 IF NVL(p_source_89,'
69984 ') <>  'CLEAR_CLEAR' AND 
69985 NVL(p_source_90,'
69986 ') =  'FUTURE PAYMENT ROUNDING'
69987  THEN 
69988 
69989    --
69990    XLA_AE_LINES_PKG.SetNewLine;
69991 
69992    p_balance_type_code          := l_balance_type_code;
69993    -- set the flag so later we will know whether the gain loss line needs to be created
69994    
69995    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
69996      p_actual_flag :='A';
69997    END IF;
69998 
69999    --
70000    -- bulk performance
70001    --
70002    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
70003                                       p_header_num   => 0); -- 4262811
70004    --
70005    -- set accounting line options
70006    --
70007    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
70008            p_natural_side_code          => 'D'
70009          , p_gain_or_loss_flag          => 'N'
70010          , p_gl_transfer_mode_code      => 'S'
70011          , p_acct_entry_type_code       => 'A'
70012          , p_switch_side_flag           => 'Y'
70013          , p_merge_duplicate_code       => 'A'
70014          );
70015    --
70016    l_acc_rev_natural_side_code := 'C';  -- 4262811
70017    -- 
70018    --
70019    -- set accounting line type info
70020    --
70021    xla_ae_lines_pkg.SetAcctLineType
70022       (p_component_type             => l_component_type
70023       ,p_event_type_code            => l_event_type_code
70024       ,p_line_definition_owner_code => l_line_definition_owner_code
70025       ,p_line_definition_code       => l_line_definition_code
70026       ,p_accounting_line_code       => l_component_code
70027       ,p_accounting_line_type_code  => l_component_type_code
70028       ,p_accounting_line_appl_id    => l_component_appl_id
70029       ,p_amb_context_code           => l_amb_context_code
70030       ,p_entity_code                => l_entity_code
70031       ,p_event_class_code           => l_event_class_code);
70032    --
70033    -- set accounting class
70034    --
70035    xla_ae_lines_pkg.SetAcctClass(
70036            p_accounting_class_code  => 'ROUNDING'
70037          , p_ae_header_id           => l_ae_header_id
70038          );
70039 
70040    --
70041    -- set rounding class
70042    --
70043    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
70044                       'ROUNDING';
70045 
70046    --
70047    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
70051    --
70048    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
70049    --
70050    -- bulk performance
70052    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
70053 
70054    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
70055       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
70056 
70057    -- 4955764
70058    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70059       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
70060 
70061    -- 4458381 Public Sector Enh
70062    
70063    --
70064    -- set accounting attributes for the line type
70065    --
70066    l_entered_amt_idx := 9;
70067    l_accted_amt_idx  := 14;
70068    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
70069    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
70070    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
70071    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
70072    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
70073    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
70074    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
70075    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
70076    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
70077    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
70078    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
70079    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
70080    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
70081    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
70082    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
70083    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
70084    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
70085    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
70086    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
70087    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
70088    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
70089    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
70090    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
70091    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
70092    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
70093    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
70094    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
70095    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
70096    l_rec_acct_attrs.array_num_value(14)  := p_source_108;
70097    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
70098    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
70099    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
70100    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
70101    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
70102    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
70103    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
70104    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
70105    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
70106    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
70107    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
70108    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
70109 
70110    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
70111    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
70112 
70113    ---------------------------------------------------------------------------------------------------------------
70114    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
70115    ---------------------------------------------------------------------------------------------------------------
70116    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
70117 
70118    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70119    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70120 
70121    IF xla_accounting_cache_pkg.GetValueChar
70122          (p_source_code         => 'LEDGER_CATEGORY_CODE'
70123          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
70124    AND l_bflow_method_code = 'PRIOR_ENTRY'
70125 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
70126    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
70127          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
70128        )
70129    THEN
70130          xla_ae_lines_pkg.BflowUpgEntry
70131            (p_business_method_code    => l_bflow_method_code
70132            ,p_business_class_code     => l_bflow_class_code
70133            ,p_balance_type            => l_balance_type_code);
70134    ELSE
70135       NULL;
70136 -- No business flow processing for business flow method of NONE.
70137    END IF;
70138 
70139    --
70140    -- call analytical criteria
70141    --
70142    
70143    --
70144    -- call description
70145    --
70146    -- No description or it is inherited.
70147    --
70148    -- call ADRs
70149    -- Bug 4922099
70150    --
70151    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70152         (NVL(l_actual_upg_option, 'N') = 'O') OR
70153         (NVL(l_enc_upg_option, 'N') = 'O')
70154       )
70155    THEN
70156    NULL;
70157    --
70161            p_application_id           => p_application_id
70158    --
70159    
70160   l_ccid := AcctDerRule_40(
70162          , p_ae_header_id             => l_ae_header_id 
70163 , p_source_3 => p_source_3
70164 , p_source_3_meaning => p_source_3_meaning
70165 , p_source_18 => p_source_18
70166 , p_source_37 => p_source_37
70167          , x_transaction_coa_id       => l_adr_transaction_coa_id
70168          , x_accounting_coa_id        => l_adr_accounting_coa_id
70169          , x_value_type_code          => l_adr_value_type_code
70170          , p_side                     => 'NA'
70171    );
70172 
70173    xla_ae_lines_pkg.set_ccid(
70174     p_code_combination_id          => l_ccid
70175   , p_value_type_code              => l_adr_value_type_code
70176   , p_transaction_coa_id           => l_adr_transaction_coa_id
70177   , p_accounting_coa_id            => l_adr_accounting_coa_id
70178   , p_adr_code                     => 'AP_ROUNDING'
70179   , p_adr_type_code                => 'S'
70180   , p_component_type               => l_component_type
70181   , p_component_code               => l_component_code
70182   , p_component_type_code          => l_component_type_code
70183   , p_component_appl_id            => l_component_appl_id
70184   , p_amb_context_code             => l_amb_context_code
70185   , p_side                         => 'NA'
70186   );
70187 
70188 
70189    --
70190    --
70191    END IF;
70192    --
70193    -- Bug 4922099
70194    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
70195           (NVL(l_enc_upg_option, 'N') = 'O')
70196         ) AND
70197         (l_bflow_method_code = 'PRIOR_ENTRY')
70198       )
70199    THEN
70200       IF
70201       --
70202       1 = 2
70203       --
70204       THEN
70205       xla_accounting_err_pkg.build_message
70206                                     (p_appli_s_name            => 'XLA'
70207                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70208                                     ,p_token_1                 => 'LINE_NUMBER'
70209                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
70210                                     ,p_token_2                 => 'LINE_TYPE_NAME'
70211                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
70212                                                                              l_component_type
70213                                                                             ,l_component_code
70214                                                                             ,l_component_type_code
70215                                                                             ,l_component_appl_id
70216                                                                             ,l_amb_context_code
70217                                                                             ,l_entity_code
70218                                                                             ,l_event_class_code
70219                                                                            )
70220                                     ,p_token_3                 => 'OWNER'
70221                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
70222                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
70223                                                                           ,p_lookup_code    => l_component_type_code
70224                                                                          )
70225                                     ,p_token_4                 => 'PRODUCT_NAME'
70226                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
70227                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
70228                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
70229                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
70230                                     ,p_ae_header_id            =>  NULL
70231                                        );
70232 
70233         IF (C_LEVEL_ERROR>= g_log_level) THEN
70234                  trace
70235                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70236                       ,p_level    => C_LEVEL_ERROR
70237                       ,p_module   => l_log_module);
70238         END IF;
70239       END IF;
70240    END IF;
70241    --
70242    --
70243    ------------------------------------------------------------------------------------------------
70244    -- 4219869 Business Flow
70245    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
70246    -- Prior Entry.  Currently, the following code is always generated.
70247    ------------------------------------------------------------------------------------------------
70248    XLA_AE_LINES_PKG.ValidateCurrentLine;
70249 
70250    ------------------------------------------------------------------------------------
70251    -- 4219869 Business Flow
70252    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
70253    ------------------------------------------------------------------------------------
70254    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70255 
70256    ----------------------------------------------------------------------------------
70257    -- 4219869 Business Flow
70258    -- Update journal entry status -- Need to generate this within IF <condition>
70259    ----------------------------------------------------------------------------------
70263          );
70260    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70261          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
70262          ,p_balance_type_code => l_balance_type_code
70264 
70265    -------------------------------------------------------------------------------------------
70266    -- 4262811 - Generate the Accrual Reversal lines
70267    -------------------------------------------------------------------------------------------
70268    BEGIN
70269       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
70270                               (g_array_event(p_event_id).array_value_num('header_index'));
70271       IF l_acc_rev_flag IS NULL THEN
70272          l_acc_rev_flag := 'N';
70273       END IF;
70274    EXCEPTION
70275       WHEN OTHERS THEN
70276          l_acc_rev_flag := 'N';
70277    END;
70278    --
70279    IF (l_acc_rev_flag = 'Y') THEN
70280 
70281        -- 4645092  ------------------------------------------------------------------------------
70282        -- To allow MPA report to determine if it should generate report process
70283        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
70284        ------------------------------------------------------------------------------------------
70285 
70286        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
70287        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
70288    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
70289    -- call ADRs
70290    -- Bug 4922099
70291    --
70292    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70293         (NVL(l_actual_upg_option, 'N') = 'O') OR
70294         (NVL(l_enc_upg_option, 'N') = 'O')
70295       )
70296    THEN
70297    NULL;
70298    --
70299    --
70300    
70301   l_ccid := AcctDerRule_40(
70302            p_application_id           => p_application_id
70303          , p_ae_header_id             => l_ae_header_id 
70304 , p_source_3 => p_source_3
70305 , p_source_3_meaning => p_source_3_meaning
70306 , p_source_18 => p_source_18
70307 , p_source_37 => p_source_37
70308          , x_transaction_coa_id       => l_adr_transaction_coa_id
70309          , x_accounting_coa_id        => l_adr_accounting_coa_id
70310          , x_value_type_code          => l_adr_value_type_code
70311          , p_side                     => 'NA'
70312    );
70313 
70314    xla_ae_lines_pkg.set_ccid(
70315     p_code_combination_id          => l_ccid
70316   , p_value_type_code              => l_adr_value_type_code
70317   , p_transaction_coa_id           => l_adr_transaction_coa_id
70318   , p_accounting_coa_id            => l_adr_accounting_coa_id
70319   , p_adr_code                     => 'AP_ROUNDING'
70320   , p_adr_type_code                => 'S'
70321   , p_component_type               => l_component_type
70322   , p_component_code               => l_component_code
70323   , p_component_type_code          => l_component_type_code
70324   , p_component_appl_id            => l_component_appl_id
70325   , p_amb_context_code             => l_amb_context_code
70326   , p_side                         => 'NA'
70327   );
70328 
70329 
70330    --
70331    --
70332    END IF;
70333 
70334        --
70335        -- Update the line information that should be overwritten
70336        --
70337        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
70338                                          p_header_num   => 1);
70339        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
70340 
70341        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
70342 
70343        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
70344           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
70345        END IF;
70346 
70347       --
70348       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
70349       --
70350       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
70351           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
70352       ELSE
70353           ---------------------------------------------------------------------------------------------------
70354           -- 4262811a Switch Sign
70355           ---------------------------------------------------------------------------------------------------
70356           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
70357           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70358                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70359           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70360                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70361           -- 5132302
70362           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
70363                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70364 
70365       END IF;
70366 
70367       -- 4955764
70368       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70369       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
70370 
70371 
70372       XLA_AE_LINES_PKG.ValidateCurrentLine;
70373       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70374 
70375       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70379    END IF;
70376                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
70377                ,p_balance_type_code => l_balance_type_code);
70378 
70380 
70381    -----------------------------------------------------------------------------------------
70382    -- 4262811 Multiperiod Accounting
70383    -----------------------------------------------------------------------------------------
70384      -- No MPA option is assigned.
70385 
70386 
70387 END IF;
70388 END IF;
70389 --
70390 
70391 --
70392 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70393    trace
70394       (p_msg      => 'END of AcctLineType_135'
70395       ,p_level    => C_LEVEL_PROCEDURE
70396       ,p_module   => l_log_module);
70397 END IF;
70398 --
70399 EXCEPTION
70400   WHEN xla_exceptions_pkg.application_exception THEN
70401       RAISE;
70402   WHEN OTHERS THEN
70403        xla_exceptions_pkg.raise_message
70404            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_135');
70405 END AcctLineType_135;
70406 --
70407 
70408 ---------------------------------------
70409 --
70410 -- PRIVATE FUNCTION
70411 --         AcctLineType_136
70412 --
70413 ---------------------------------------
70414 PROCEDURE AcctLineType_136 (
70415   p_application_id        IN NUMBER
70416  ,p_event_id              IN NUMBER
70417  ,p_calculate_acctd_flag  IN VARCHAR2
70418  ,p_calculate_g_l_flag    IN VARCHAR2
70419  ,p_actual_flag           IN OUT VARCHAR2
70420  ,p_balance_type_code     OUT VARCHAR2
70421  ,p_gain_or_loss_ref      OUT VARCHAR2
70422  
70423 --Automatic Offsets Value
70424  , p_source_3            IN VARCHAR2
70425  , p_source_3_meaning    IN VARCHAR2
70426 --Invoice Distribution Account
70427  , p_source_18            IN NUMBER
70428 --Internal Realized Gain Account
70429  , p_source_24            IN NUMBER
70430 --Bank Gain Account
70431  , p_source_25            IN NUMBER
70432 --Accounting Reversal Indicator
70433  , p_source_41            IN VARCHAR2
70434 --Distribution Link Type
70435  , p_source_43            IN VARCHAR2
70436 --Override Accounted Amount Indicator
70437  , p_source_68            IN VARCHAR2
70438  , p_source_68_meaning    IN VARCHAR2
70439 --Third Party Type
70440  , p_source_71            IN VARCHAR2
70441 --Invoice Distribution Tax Line Identifier
70442  , p_source_74            IN NUMBER
70443 --Invoice Distribution Summary Tax Line Identifier
70444  , p_source_76            IN NUMBER
70445 --Business Flow Accounts Payable Application Identifier
70446  , p_source_79            IN NUMBER
70447 --When to Account for Payment Option
70448  , p_source_89            IN VARCHAR2
70449 --Payment Distribution Type
70450  , p_source_90            IN VARCHAR2
70451  , p_source_90_meaning    IN VARCHAR2
70452 --Payment Distribution Amount
70453  , p_source_91            IN NUMBER
70454 --Business Flow Payment Distribution Type
70455  , p_source_92            IN VARCHAR2
70456 --Business Flow Payment Entity Code
70457  , p_source_93            IN VARCHAR2
70458 --Business Flow Payment Distribution Identifier
70459  , p_source_94            IN NUMBER
70460 --Business Flow Payment Identifier
70461  , p_source_95            IN NUMBER
70462 --Payment Distribution Identifier
70463  , p_source_96            IN NUMBER
70464 --Cleared Exchange Date
70465  , p_source_98            IN DATE
70466 --Cleared Exchange Rate
70467  , p_source_99            IN NUMBER
70468 --Cleared Exchange Rate Type
70469  , p_source_100            IN VARCHAR2
70470 --Payment Supplier Identifier
70471  , p_source_102            IN NUMBER
70472 --Payment Supplier Site Identifier
70473  , p_source_103            IN NUMBER
70474 --Payment Distribution Reversed Identifier
70475  , p_source_104            IN NUMBER
70476 --Payment Currency Code
70477  , p_source_106            IN VARCHAR2
70478 --Gain or Loss Indicator between Invoice and Clearing
70479  , p_source_146            IN VARCHAR2
70480 --Invoice/Clearing Ledger Amount Difference
70481  , p_source_147            IN NUMBER
70482 )
70483 IS
70484 
70485 l_component_type              VARCHAR2(80);
70486 l_component_code              VARCHAR2(30);
70487 l_component_type_code         VARCHAR2(1);
70488 l_component_appl_id           INTEGER;
70489 l_amb_context_code            VARCHAR2(30);
70490 l_entity_code                 VARCHAR2(30);
70491 l_event_class_code            VARCHAR2(30);
70492 l_ae_header_id                NUMBER;
70493 l_event_type_code             VARCHAR2(30);
70494 l_line_definition_code        VARCHAR2(30);
70495 l_line_definition_owner_code  VARCHAR2(1);
70496 --
70497 -- adr variables
70498 l_segment                     VARCHAR2(30);
70499 l_ccid                        NUMBER;
70500 l_adr_transaction_coa_id      NUMBER;
70501 l_adr_accounting_coa_id       NUMBER;
70502 l_adr_flexfield_segment_code  VARCHAR2(30);
70503 l_adr_flex_value_set_id       NUMBER;
70504 l_adr_value_type_code         VARCHAR2(30);
70505 l_adr_value_combination_id    NUMBER;
70506 l_adr_value_segment_code      VARCHAR2(30);
70507 
70508 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
70509 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
70510 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
70511 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
70512 
70513 -- 4262811 Variables ------------------------------------------------------------------------------------------
70514 l_entered_amt_idx             NUMBER;
70515 l_accted_amt_idx              NUMBER;
70516 l_acc_rev_flag                VARCHAR2(1);
70517 l_accrual_line_num            NUMBER;
70521 l_num_entries                 NUMBER;
70518 l_tmp_amt                     NUMBER;
70519 l_acc_rev_natural_side_code   VARCHAR2(1);
70520 
70522 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
70523 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
70524 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
70525 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
70526 l_recog_line_1                NUMBER;
70527 l_recog_line_2                NUMBER;
70528 
70529 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
70530 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
70531 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
70532 
70533 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
70534 
70535 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
70536 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
70537 
70538 ---------------------------------------------------------------------------------------------------------------
70539 
70540 
70541 --
70542 -- bulk performance
70543 --
70544 l_balance_type_code           VARCHAR2(1);
70545 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
70546 l_log_module                  VARCHAR2(240);
70547 
70548 --
70549 -- Upgrade strategy
70550 --
70551 l_actual_upg_option           VARCHAR2(1);
70552 l_enc_upg_option           VARCHAR2(1);
70553 
70554 --
70555 BEGIN
70556 --
70557 IF g_log_enabled THEN
70558       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_136';
70559 END IF;
70560 --
70561 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70562 
70563       trace
70564          (p_msg      => 'BEGIN of AcctLineType_136'
70565          ,p_level    => C_LEVEL_PROCEDURE
70566          ,p_module   => l_log_module);
70567 
70568 END IF;
70569 --
70570 l_component_type             := 'AMB_JLT';
70571 l_component_code             := 'AP_GAIN_INV_CLEAR_BY_PMT_CLEAR';
70572 l_component_type_code        := 'S';
70573 l_component_appl_id          :=  200;
70574 l_amb_context_code           := 'DEFAULT';
70575 l_entity_code                := 'AP_PAYMENTS';
70576 l_event_class_code           := 'RECONCILED PAYMENTS';
70577 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
70578 l_line_definition_owner_code := 'S';
70579 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
70580 --
70581 l_balance_type_code          := 'A';
70582 l_segment                     := NULL;
70583 l_ccid                        := NULL;
70584 l_adr_transaction_coa_id      := NULL;
70585 l_adr_accounting_coa_id       := NULL;
70586 l_adr_flexfield_segment_code  := NULL;
70587 l_adr_flex_value_set_id       := NULL;
70588 l_adr_value_type_code         := NULL;
70589 l_adr_value_combination_id    := NULL;
70590 l_adr_value_segment_code      := NULL;
70591 
70592 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
70593 l_bflow_class_code           := '';    -- 4219869 Business Flow
70594 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
70595 l_budgetary_control_flag     := 'N';
70596 
70597 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
70598 l_bflow_applied_to_amt       := NULL; -- 5132302
70599 l_entered_amt_idx            := NULL;          -- 4262811
70600 l_accted_amt_idx             := NULL;          -- 4262811
70601 l_acc_rev_flag               := NULL;          -- 4262811
70602 l_accrual_line_num           := NULL;          -- 4262811
70603 l_tmp_amt                    := NULL;          -- 4262811
70604 --
70605 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
70606             (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
70607                return;
70608   END IF;
70609   
70610 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
70611     l_balance_type_code <> 'B' THEN
70612 IF (NVL(p_source_89,'
70613 ') =  'CLEAR_CLEAR' OR 
70614 NVL(p_source_89,'
70615 ') =  'ALWAYS_CLEAR') AND 
70616 NVL(p_source_90,'
70617 ') <>  'EXCHANGE RATE VARIANCE' AND 
70618 NVL(p_source_90,'
70619 ') <>  'BANK CHARGE' AND 
70620 NVL(p_source_90,'
70621 ') <>  'BANK ERROR' AND 
70622 NVL(p_source_90,'
70623 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
70624 NVL(p_source_146,'
70625 ') =  'GAIN' AND 
70626 NVL(p_source_90,'
70627 ') <>  'AWT'
70628  THEN 
70629 
70630    --
70631    XLA_AE_LINES_PKG.SetNewLine;
70632 
70633    p_balance_type_code          := l_balance_type_code;
70634    -- set the flag so later we will know whether the gain loss line needs to be created
70635    
70636    IF(l_balance_type_code = 'A' ) THEN
70637      p_actual_flag :='G';
70638    END IF;
70639 
70640    --
70641    -- bulk performance
70642    --
70643    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
70644                                       p_header_num   => 0); -- 4262811
70645    --
70646    -- set accounting line options
70647    --
70648    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
70649            p_natural_side_code          => 'C'
70650          , p_gain_or_loss_flag          => 'Y'
70651          , p_gl_transfer_mode_code      => 'S'
70652          , p_acct_entry_type_code       => 'A'
70653          , p_switch_side_flag           => 'Y'
70654          , p_merge_duplicate_code       => 'A'
70655          );
70656    --
70660    -- set accounting line type info
70657    l_acc_rev_natural_side_code := 'D';  -- 4262811
70658    -- 
70659    --
70661    --
70662    xla_ae_lines_pkg.SetAcctLineType
70663       (p_component_type             => l_component_type
70664       ,p_event_type_code            => l_event_type_code
70665       ,p_line_definition_owner_code => l_line_definition_owner_code
70666       ,p_line_definition_code       => l_line_definition_code
70667       ,p_accounting_line_code       => l_component_code
70668       ,p_accounting_line_type_code  => l_component_type_code
70669       ,p_accounting_line_appl_id    => l_component_appl_id
70670       ,p_amb_context_code           => l_amb_context_code
70671       ,p_entity_code                => l_entity_code
70672       ,p_event_class_code           => l_event_class_code);
70673    --
70674    -- set accounting class
70675    --
70676    xla_ae_lines_pkg.SetAcctClass(
70677            p_accounting_class_code  => 'GAIN'
70678          , p_ae_header_id           => l_ae_header_id
70679          );
70680 
70681    --
70682    -- set rounding class
70683    --
70684    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
70685                       'GAIN';
70686 
70687    --
70688    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
70689    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
70690    --
70691    -- bulk performance
70692    --
70693    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
70694 
70695    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
70696       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
70697 
70698    -- 4955764
70699    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70700       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
70701 
70702    -- 4458381 Public Sector Enh
70703    
70704    --
70705    -- set accounting attributes for the line type
70706    --
70707    l_entered_amt_idx := 10;
70708    l_accted_amt_idx  := 15;
70709    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
70710    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
70711    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
70712    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
70713    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
70714    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
70715    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
70716    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
70717    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
70718    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
70719    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
70720    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
70721    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
70722    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
70723    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
70724    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
70725    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
70726    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
70727    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
70728    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
70729    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
70730    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
70731    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
70732    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
70733    l_rec_acct_attrs.array_date_value(12)  := p_source_98;
70734    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
70735    l_rec_acct_attrs.array_num_value(13)  := p_source_99;
70736    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
70737    l_rec_acct_attrs.array_char_value(14)  := p_source_100;
70738    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
70739    l_rec_acct_attrs.array_num_value(15)  := p_source_147;
70740    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
70741    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
70742    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
70743    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
70744    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
70745    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
70746    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
70747    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
70748    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
70749    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
70750    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
70751    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
70752    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
70753    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
70754    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
70755    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
70756    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
70757    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
70758 
70759    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
70760    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
70761 
70762    ---------------------------------------------------------------------------------------------------------------
70766 
70763    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
70764    ---------------------------------------------------------------------------------------------------------------
70765    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
70767    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70768    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70769 
70770    IF xla_accounting_cache_pkg.GetValueChar
70771          (p_source_code         => 'LEDGER_CATEGORY_CODE'
70772          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
70773    AND l_bflow_method_code = 'PRIOR_ENTRY'
70774 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
70775    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
70776          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
70777        )
70778    THEN
70779          xla_ae_lines_pkg.BflowUpgEntry
70780            (p_business_method_code    => l_bflow_method_code
70781            ,p_business_class_code     => l_bflow_class_code
70782            ,p_balance_type            => l_balance_type_code);
70783    ELSE
70784       NULL;
70785 -- No business flow processing for business flow method of NONE.
70786    END IF;
70787 
70788    --
70789    -- call analytical criteria
70790    --
70791    
70792    --
70793    -- call description
70794    --
70795    -- No description or it is inherited.
70796    --
70797    -- call ADRs
70798    -- Bug 4922099
70799    --
70800    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70801         (NVL(l_actual_upg_option, 'N') = 'O') OR
70802         (NVL(l_enc_upg_option, 'N') = 'O')
70803       )
70804    THEN
70805    NULL;
70806    --
70807    --
70808    
70809   l_ccid := AcctDerRule_37(
70810            p_application_id           => p_application_id
70811          , p_ae_header_id             => l_ae_header_id 
70812 , p_source_3 => p_source_3
70813 , p_source_3_meaning => p_source_3_meaning
70814 , p_source_18 => p_source_18
70815 , p_source_24 => p_source_24
70816 , p_source_25 => p_source_25
70817          , x_transaction_coa_id       => l_adr_transaction_coa_id
70818          , x_accounting_coa_id        => l_adr_accounting_coa_id
70819          , x_value_type_code          => l_adr_value_type_code
70820          , p_side                     => 'NA'
70821    );
70822 
70823    xla_ae_lines_pkg.set_ccid(
70824     p_code_combination_id          => l_ccid
70825   , p_value_type_code              => l_adr_value_type_code
70826   , p_transaction_coa_id           => l_adr_transaction_coa_id
70827   , p_accounting_coa_id            => l_adr_accounting_coa_id
70828   , p_adr_code                     => 'AP_REAL_GAIN'
70829   , p_adr_type_code                => 'S'
70830   , p_component_type               => l_component_type
70831   , p_component_code               => l_component_code
70832   , p_component_type_code          => l_component_type_code
70833   , p_component_appl_id            => l_component_appl_id
70834   , p_amb_context_code             => l_amb_context_code
70835   , p_side                         => 'NA'
70836   );
70837 
70838 
70839    l_segment := AcctDerRule_21(
70840            p_application_id           => p_application_id
70841          , p_ae_header_id             => l_ae_header_id 
70842 , p_source_3 => p_source_3
70843 , p_source_3_meaning => p_source_3_meaning
70844 , p_source_18 => p_source_18
70845          , x_transaction_coa_id       => l_adr_transaction_coa_id
70846          , x_accounting_coa_id        => l_adr_accounting_coa_id
70847          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
70848          , x_flex_value_set_id        => l_adr_flex_value_set_id
70849          , x_value_type_code          => l_adr_value_type_code
70850          , x_value_combination_id     => l_adr_value_combination_id
70851          , x_value_segment_code       => l_adr_value_segment_code
70852          , p_side                     => 'NA'
70853          , p_override_seg_flag        => 'Y'
70854    );
70855 
70856    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
70857 
70858       xla_ae_lines_pkg.set_segment(
70859           p_to_segment_code         => 'GL_BALANCING'
70860         , p_segment_value           => l_segment
70861         , p_from_segment_code       => l_adr_value_segment_code
70862         , p_from_combination_id     => l_adr_value_combination_id
70863         , p_value_type_code         => l_adr_value_type_code
70864         , p_transaction_coa_id      => l_adr_transaction_coa_id
70865         , p_accounting_coa_id       => l_adr_accounting_coa_id
70866         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
70867         , p_flex_value_set_id       => l_adr_flex_value_set_id
70868         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
70869         , p_adr_type_code           => 'S'
70870         , p_component_type          => l_component_type
70871         , p_component_code          => l_component_code
70872         , p_component_type_code     => l_component_type_code
70873         , p_component_appl_id       => l_component_appl_id
70874         , p_amb_context_code        => l_amb_context_code
70875         , p_entity_code             => 'AP_PAYMENTS'
70876         , p_event_class_code        => 'RECONCILED PAYMENTS'
70877         , p_side                    => 'NA'
70878         );
70879 
70880   END IF;
70881 
70882    l_segment := AcctDerRule_16(
70883            p_application_id           => p_application_id
70884          , p_ae_header_id             => l_ae_header_id 
70885 , p_source_3 => p_source_3
70889          , x_transaction_coa_id       => l_adr_transaction_coa_id
70886 , p_source_3_meaning => p_source_3_meaning
70887 , p_source_24 => p_source_24
70888 , p_source_25 => p_source_25
70890          , x_accounting_coa_id        => l_adr_accounting_coa_id
70891          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
70892          , x_flex_value_set_id        => l_adr_flex_value_set_id
70893          , x_value_type_code          => l_adr_value_type_code
70894          , x_value_combination_id     => l_adr_value_combination_id
70895          , x_value_segment_code       => l_adr_value_segment_code
70896          , p_side                     => 'NA'
70897          , p_override_seg_flag        => 'Y'
70898    );
70899 
70900    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
70901 
70902       xla_ae_lines_pkg.set_segment(
70903           p_to_segment_code         => 'GL_ACCOUNT'
70904         , p_segment_value           => l_segment
70905         , p_from_segment_code       => l_adr_value_segment_code
70906         , p_from_combination_id     => l_adr_value_combination_id
70907         , p_value_type_code         => l_adr_value_type_code
70908         , p_transaction_coa_id      => l_adr_transaction_coa_id
70909         , p_accounting_coa_id       => l_adr_accounting_coa_id
70910         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
70911         , p_flex_value_set_id       => l_adr_flex_value_set_id
70912         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
70913         , p_adr_type_code           => 'S'
70914         , p_component_type          => l_component_type
70915         , p_component_code          => l_component_code
70916         , p_component_type_code     => l_component_type_code
70917         , p_component_appl_id       => l_component_appl_id
70918         , p_amb_context_code        => l_amb_context_code
70919         , p_entity_code             => 'AP_PAYMENTS'
70920         , p_event_class_code        => 'RECONCILED PAYMENTS'
70921         , p_side                    => 'NA'
70922         );
70923 
70924   END IF;
70925 
70926    --
70927    --
70928    END IF;
70929    --
70930    -- Bug 4922099
70931    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
70932           (NVL(l_enc_upg_option, 'N') = 'O')
70933         ) AND
70934         (l_bflow_method_code = 'PRIOR_ENTRY')
70935       )
70936    THEN
70937       IF
70938       --
70939       1 = 2
70940       --
70941       THEN
70942       xla_accounting_err_pkg.build_message
70943                                     (p_appli_s_name            => 'XLA'
70944                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70945                                     ,p_token_1                 => 'LINE_NUMBER'
70946                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
70947                                     ,p_token_2                 => 'LINE_TYPE_NAME'
70948                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
70949                                                                              l_component_type
70950                                                                             ,l_component_code
70951                                                                             ,l_component_type_code
70952                                                                             ,l_component_appl_id
70953                                                                             ,l_amb_context_code
70954                                                                             ,l_entity_code
70955                                                                             ,l_event_class_code
70956                                                                            )
70957                                     ,p_token_3                 => 'OWNER'
70958                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
70959                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
70960                                                                           ,p_lookup_code    => l_component_type_code
70961                                                                          )
70962                                     ,p_token_4                 => 'PRODUCT_NAME'
70963                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
70964                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
70965                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
70966                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
70967                                     ,p_ae_header_id            =>  NULL
70968                                        );
70969 
70970         IF (C_LEVEL_ERROR>= g_log_level) THEN
70971                  trace
70972                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70973                       ,p_level    => C_LEVEL_ERROR
70974                       ,p_module   => l_log_module);
70975         END IF;
70976       END IF;
70977    END IF;
70978    --
70979    --
70980    ------------------------------------------------------------------------------------------------
70981    -- 4219869 Business Flow
70982    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
70983    -- Prior Entry.  Currently, the following code is always generated.
70984    ------------------------------------------------------------------------------------------------
70988    -- 4219869 Business Flow
70985    XLA_AE_LINES_PKG.ValidateCurrentLine;
70986 
70987    ------------------------------------------------------------------------------------
70989    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
70990    ------------------------------------------------------------------------------------
70991    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70992 
70993    ----------------------------------------------------------------------------------
70994    -- 4219869 Business Flow
70995    -- Update journal entry status -- Need to generate this within IF <condition>
70996    ----------------------------------------------------------------------------------
70997    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70998          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
70999          ,p_balance_type_code => l_balance_type_code
71000          );
71001 
71002    -------------------------------------------------------------------------------------------
71003    -- 4262811 - Generate the Accrual Reversal lines
71004    -------------------------------------------------------------------------------------------
71005    BEGIN
71006       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
71007                               (g_array_event(p_event_id).array_value_num('header_index'));
71008       IF l_acc_rev_flag IS NULL THEN
71009          l_acc_rev_flag := 'N';
71010       END IF;
71011    EXCEPTION
71012       WHEN OTHERS THEN
71013          l_acc_rev_flag := 'N';
71014    END;
71015    --
71016    IF (l_acc_rev_flag = 'Y') THEN
71017 
71018        -- 4645092  ------------------------------------------------------------------------------
71019        -- To allow MPA report to determine if it should generate report process
71020        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
71021        ------------------------------------------------------------------------------------------
71022 
71023        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
71024        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
71025    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
71026    -- call ADRs
71027    -- Bug 4922099
71028    --
71029    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71030         (NVL(l_actual_upg_option, 'N') = 'O') OR
71031         (NVL(l_enc_upg_option, 'N') = 'O')
71032       )
71033    THEN
71034    NULL;
71035    --
71036    --
71037    
71038   l_ccid := AcctDerRule_37(
71039            p_application_id           => p_application_id
71040          , p_ae_header_id             => l_ae_header_id 
71041 , p_source_3 => p_source_3
71042 , p_source_3_meaning => p_source_3_meaning
71043 , p_source_18 => p_source_18
71044 , p_source_24 => p_source_24
71045 , p_source_25 => p_source_25
71046          , x_transaction_coa_id       => l_adr_transaction_coa_id
71047          , x_accounting_coa_id        => l_adr_accounting_coa_id
71048          , x_value_type_code          => l_adr_value_type_code
71049          , p_side                     => 'NA'
71050    );
71051 
71052    xla_ae_lines_pkg.set_ccid(
71053     p_code_combination_id          => l_ccid
71054   , p_value_type_code              => l_adr_value_type_code
71055   , p_transaction_coa_id           => l_adr_transaction_coa_id
71056   , p_accounting_coa_id            => l_adr_accounting_coa_id
71057   , p_adr_code                     => 'AP_REAL_GAIN'
71058   , p_adr_type_code                => 'S'
71059   , p_component_type               => l_component_type
71060   , p_component_code               => l_component_code
71061   , p_component_type_code          => l_component_type_code
71062   , p_component_appl_id            => l_component_appl_id
71063   , p_amb_context_code             => l_amb_context_code
71064   , p_side                         => 'NA'
71065   );
71066 
71067 
71068    l_segment := AcctDerRule_21(
71069            p_application_id           => p_application_id
71070          , p_ae_header_id             => l_ae_header_id 
71071 , p_source_3 => p_source_3
71072 , p_source_3_meaning => p_source_3_meaning
71073 , p_source_18 => p_source_18
71074          , x_transaction_coa_id       => l_adr_transaction_coa_id
71075          , x_accounting_coa_id        => l_adr_accounting_coa_id
71076          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71077          , x_flex_value_set_id        => l_adr_flex_value_set_id
71078          , x_value_type_code          => l_adr_value_type_code
71079          , x_value_combination_id     => l_adr_value_combination_id
71080          , x_value_segment_code       => l_adr_value_segment_code
71081          , p_side                     => 'NA'
71082          , p_override_seg_flag        => 'Y'
71083    );
71084 
71085    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71086 
71087       xla_ae_lines_pkg.set_segment(
71088           p_to_segment_code         => 'GL_BALANCING'
71089         , p_segment_value           => l_segment
71090         , p_from_segment_code       => l_adr_value_segment_code
71091         , p_from_combination_id     => l_adr_value_combination_id
71092         , p_value_type_code         => l_adr_value_type_code
71093         , p_transaction_coa_id      => l_adr_transaction_coa_id
71094         , p_accounting_coa_id       => l_adr_accounting_coa_id
71095         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71096         , p_flex_value_set_id       => l_adr_flex_value_set_id
71097         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
71098         , p_adr_type_code           => 'S'
71099         , p_component_type          => l_component_type
71100         , p_component_code          => l_component_code
71101         , p_component_type_code     => l_component_type_code
71105         , p_event_class_code        => 'RECONCILED PAYMENTS'
71102         , p_component_appl_id       => l_component_appl_id
71103         , p_amb_context_code        => l_amb_context_code
71104         , p_entity_code             => 'AP_PAYMENTS'
71106         , p_side                    => 'NA'
71107         );
71108 
71109   END IF;
71110 
71111    l_segment := AcctDerRule_16(
71112            p_application_id           => p_application_id
71113          , p_ae_header_id             => l_ae_header_id 
71114 , p_source_3 => p_source_3
71115 , p_source_3_meaning => p_source_3_meaning
71116 , p_source_24 => p_source_24
71117 , p_source_25 => p_source_25
71118          , x_transaction_coa_id       => l_adr_transaction_coa_id
71119          , x_accounting_coa_id        => l_adr_accounting_coa_id
71120          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71121          , x_flex_value_set_id        => l_adr_flex_value_set_id
71122          , x_value_type_code          => l_adr_value_type_code
71123          , x_value_combination_id     => l_adr_value_combination_id
71124          , x_value_segment_code       => l_adr_value_segment_code
71125          , p_side                     => 'NA'
71126          , p_override_seg_flag        => 'Y'
71127    );
71128 
71129    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71130 
71131       xla_ae_lines_pkg.set_segment(
71132           p_to_segment_code         => 'GL_ACCOUNT'
71133         , p_segment_value           => l_segment
71134         , p_from_segment_code       => l_adr_value_segment_code
71135         , p_from_combination_id     => l_adr_value_combination_id
71136         , p_value_type_code         => l_adr_value_type_code
71137         , p_transaction_coa_id      => l_adr_transaction_coa_id
71138         , p_accounting_coa_id       => l_adr_accounting_coa_id
71139         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71140         , p_flex_value_set_id       => l_adr_flex_value_set_id
71141         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
71142         , p_adr_type_code           => 'S'
71143         , p_component_type          => l_component_type
71144         , p_component_code          => l_component_code
71145         , p_component_type_code     => l_component_type_code
71146         , p_component_appl_id       => l_component_appl_id
71147         , p_amb_context_code        => l_amb_context_code
71148         , p_entity_code             => 'AP_PAYMENTS'
71149         , p_event_class_code        => 'RECONCILED PAYMENTS'
71150         , p_side                    => 'NA'
71151         );
71152 
71153   END IF;
71154 
71155    --
71156    --
71157    END IF;
71158 
71159        --
71160        -- Update the line information that should be overwritten
71161        --
71162        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
71163                                          p_header_num   => 1);
71164        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
71165 
71166        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
71167 
71168        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
71169           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
71170        END IF;
71171 
71172       --
71173       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
71174       --
71175       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
71176           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
71177       ELSE
71178           ---------------------------------------------------------------------------------------------------
71179           -- 4262811a Switch Sign
71180           ---------------------------------------------------------------------------------------------------
71181           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
71182           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71183                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71184           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71185                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71186           -- 5132302
71187           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
71188                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71189 
71190       END IF;
71191 
71192       -- 4955764
71193       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71194       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
71195 
71196 
71197       XLA_AE_LINES_PKG.ValidateCurrentLine;
71198       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71199 
71200       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71201                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
71202                ,p_balance_type_code => l_balance_type_code);
71203 
71204    END IF;
71205 
71206    -----------------------------------------------------------------------------------------
71207    -- 4262811 Multiperiod Accounting
71208    -----------------------------------------------------------------------------------------
71209      -- No MPA option is assigned.
71210 
71211 
71212 END IF;
71213 END IF;
71214 --
71215 
71216 --
71217 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71218    trace
71222 END IF;
71219       (p_msg      => 'END of AcctLineType_136'
71220       ,p_level    => C_LEVEL_PROCEDURE
71221       ,p_module   => l_log_module);
71223 --
71224 EXCEPTION
71225   WHEN xla_exceptions_pkg.application_exception THEN
71226       RAISE;
71227   WHEN OTHERS THEN
71228        xla_exceptions_pkg.raise_message
71229            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_136');
71230 END AcctLineType_136;
71231 --
71232 
71233 ---------------------------------------
71234 --
71235 -- PRIVATE FUNCTION
71236 --         AcctLineType_137
71237 --
71238 ---------------------------------------
71239 PROCEDURE AcctLineType_137 (
71240   p_application_id        IN NUMBER
71241  ,p_event_id              IN NUMBER
71242  ,p_calculate_acctd_flag  IN VARCHAR2
71243  ,p_calculate_g_l_flag    IN VARCHAR2
71244  ,p_actual_flag           IN OUT VARCHAR2
71245  ,p_balance_type_code     OUT VARCHAR2
71246  ,p_gain_or_loss_ref      OUT VARCHAR2
71247  
71248 --Automatic Offsets Value
71249  , p_source_3            IN VARCHAR2
71250  , p_source_3_meaning    IN VARCHAR2
71251 --Invoice Distribution Account
71252  , p_source_18            IN NUMBER
71253 --Internal Realized Gain Account
71254  , p_source_24            IN NUMBER
71255 --Bank Gain Account
71256  , p_source_25            IN NUMBER
71257 --Internal Realized Loss Account
71258  , p_source_26            IN NUMBER
71259 --Bank Loss Account
71260  , p_source_27            IN NUMBER
71261 --Accounting Reversal Indicator
71262  , p_source_41            IN VARCHAR2
71263 --Distribution Link Type
71264  , p_source_43            IN VARCHAR2
71265 --Override Accounted Amount Indicator
71266  , p_source_68            IN VARCHAR2
71267  , p_source_68_meaning    IN VARCHAR2
71268 --Third Party Type
71269  , p_source_71            IN VARCHAR2
71270 --Invoice Distribution Tax Line Identifier
71271  , p_source_74            IN NUMBER
71272 --Invoice Distribution Summary Tax Line Identifier
71273  , p_source_76            IN NUMBER
71274 --Business Flow Accounts Payable Application Identifier
71275  , p_source_79            IN NUMBER
71276 --When to Account for Payment Option
71277  , p_source_89            IN VARCHAR2
71278 --Payment Distribution Type
71279  , p_source_90            IN VARCHAR2
71280  , p_source_90_meaning    IN VARCHAR2
71281 --Payment Distribution Amount
71282  , p_source_91            IN NUMBER
71283 --Business Flow Payment Distribution Type
71284  , p_source_92            IN VARCHAR2
71285 --Business Flow Payment Entity Code
71286  , p_source_93            IN VARCHAR2
71287 --Business Flow Payment Distribution Identifier
71288  , p_source_94            IN NUMBER
71289 --Business Flow Payment Identifier
71290  , p_source_95            IN NUMBER
71291 --Payment Distribution Identifier
71292  , p_source_96            IN NUMBER
71293 --Payment Supplier Identifier
71294  , p_source_102            IN NUMBER
71295 --Payment Supplier Site Identifier
71296  , p_source_103            IN NUMBER
71297 --Payment Distribution Reversed Identifier
71298  , p_source_104            IN NUMBER
71299 --Payment Maturity Date
71300  , p_source_107            IN DATE
71301 --Invoice/Clearing Ledger Amount Difference
71302  , p_source_147            IN NUMBER
71303 )
71304 IS
71305 
71306 l_component_type              VARCHAR2(80);
71307 l_component_code              VARCHAR2(30);
71308 l_component_type_code         VARCHAR2(1);
71309 l_component_appl_id           INTEGER;
71310 l_amb_context_code            VARCHAR2(30);
71311 l_entity_code                 VARCHAR2(30);
71312 l_event_class_code            VARCHAR2(30);
71313 l_ae_header_id                NUMBER;
71314 l_event_type_code             VARCHAR2(30);
71315 l_line_definition_code        VARCHAR2(30);
71316 l_line_definition_owner_code  VARCHAR2(1);
71317 --
71318 -- adr variables
71319 l_segment                     VARCHAR2(30);
71320 l_ccid                        NUMBER;
71321 l_adr_transaction_coa_id      NUMBER;
71322 l_adr_accounting_coa_id       NUMBER;
71323 l_adr_flexfield_segment_code  VARCHAR2(30);
71324 l_adr_flex_value_set_id       NUMBER;
71325 l_adr_value_type_code         VARCHAR2(30);
71326 l_adr_value_combination_id    NUMBER;
71327 l_adr_value_segment_code      VARCHAR2(30);
71328 
71329 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
71330 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
71331 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
71332 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
71333 
71334 -- 4262811 Variables ------------------------------------------------------------------------------------------
71335 l_entered_amt_idx             NUMBER;
71336 l_accted_amt_idx              NUMBER;
71337 l_acc_rev_flag                VARCHAR2(1);
71338 l_accrual_line_num            NUMBER;
71339 l_tmp_amt                     NUMBER;
71340 l_acc_rev_natural_side_code   VARCHAR2(1);
71341 
71342 l_num_entries                 NUMBER;
71343 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
71344 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
71345 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
71346 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
71347 l_recog_line_1                NUMBER;
71348 l_recog_line_2                NUMBER;
71349 
71350 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
71351 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
71352 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
71353 
71357 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
71354 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
71355 
71356 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
71358 
71359 ---------------------------------------------------------------------------------------------------------------
71360 
71361 
71362 --
71363 -- bulk performance
71364 --
71365 l_balance_type_code           VARCHAR2(1);
71366 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
71367 l_log_module                  VARCHAR2(240);
71368 
71369 --
71370 -- Upgrade strategy
71371 --
71372 l_actual_upg_option           VARCHAR2(1);
71373 l_enc_upg_option           VARCHAR2(1);
71374 
71375 --
71376 BEGIN
71377 --
71378 IF g_log_enabled THEN
71379       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_137';
71380 END IF;
71381 --
71382 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71383 
71384       trace
71385          (p_msg      => 'BEGIN of AcctLineType_137'
71386          ,p_level    => C_LEVEL_PROCEDURE
71387          ,p_module   => l_log_module);
71388 
71389 END IF;
71390 --
71391 l_component_type             := 'AMB_JLT';
71392 l_component_code             := 'AP_GAIN_LOSS_PAY_CLEAR';
71393 l_component_type_code        := 'S';
71394 l_component_appl_id          :=  200;
71395 l_amb_context_code           := 'DEFAULT';
71396 l_entity_code                := 'AP_PAYMENTS';
71397 l_event_class_code           := 'RECONCILED PAYMENTS';
71398 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
71399 l_line_definition_owner_code := 'S';
71400 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
71401 --
71402 l_balance_type_code          := 'A';
71403 l_segment                     := NULL;
71404 l_ccid                        := NULL;
71405 l_adr_transaction_coa_id      := NULL;
71406 l_adr_accounting_coa_id       := NULL;
71407 l_adr_flexfield_segment_code  := NULL;
71408 l_adr_flex_value_set_id       := NULL;
71409 l_adr_value_type_code         := NULL;
71410 l_adr_value_combination_id    := NULL;
71411 l_adr_value_segment_code      := NULL;
71412 
71413 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
71414 l_bflow_class_code           := '';    -- 4219869 Business Flow
71415 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
71416 l_budgetary_control_flag     := 'N';
71417 
71418 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
71419 l_bflow_applied_to_amt       := NULL; -- 5132302
71420 l_entered_amt_idx            := NULL;          -- 4262811
71421 l_accted_amt_idx             := NULL;          -- 4262811
71422 l_acc_rev_flag               := NULL;          -- 4262811
71423 l_accrual_line_num           := NULL;          -- 4262811
71424 l_tmp_amt                    := NULL;          -- 4262811
71425 --
71426 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
71427             (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
71428                return;
71429   END IF;
71430   
71431 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
71432     l_balance_type_code <> 'B' THEN
71433 IF (NVL(p_source_89,'
71434 ') =  'CLEAR_CLEAR' OR 
71435 NVL(p_source_89,'
71436 ') =  'ALWAYS_CLEAR' OR 
71437 NVL(p_source_89,'
71438 ') =  'ALWAYS_ALWAYS') AND 
71439 p_source_107 IS NULL AND 
71440 NVL(p_source_90,'
71441 ') <>  'EXCHANGE RATE VARIANCE' AND 
71442 NVL(p_source_90,'
71443 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
71444 NVL(p_source_90,'
71445 ') <>  'BANK CHARGE' AND 
71446 NVL(p_source_90,'
71447 ') <>  'BANK ERROR'
71448  THEN 
71449 
71450    --
71451    XLA_AE_LINES_PKG.SetNewLine;
71452 
71453    p_balance_type_code          := l_balance_type_code;
71454    -- set the flag so later we will know whether the gain loss line needs to be created
71455    
71456    IF(l_balance_type_code = 'A' ) THEN
71457      p_actual_flag :='G';
71458    END IF;
71459 
71460    --
71461    -- bulk performance
71462    --
71463    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
71464                                       p_header_num   => 0); -- 4262811
71465    --
71466    -- set accounting line options
71467    --
71468    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
71469            p_natural_side_code          => 'G'
71470          , p_gain_or_loss_flag          => 'N'
71471          , p_gl_transfer_mode_code      => 'S'
71472          , p_acct_entry_type_code       => 'A'
71473          , p_switch_side_flag           => ''
71474          , p_merge_duplicate_code       => 'A'
71475          );
71476    --
71477    l_acc_rev_natural_side_code := 'C';  -- 4262811
71478    -- 
71479    --
71480    -- set accounting line type info
71481    --
71482    xla_ae_lines_pkg.SetAcctLineType
71483       (p_component_type             => l_component_type
71484       ,p_event_type_code            => l_event_type_code
71485       ,p_line_definition_owner_code => l_line_definition_owner_code
71486       ,p_line_definition_code       => l_line_definition_code
71487       ,p_accounting_line_code       => l_component_code
71488       ,p_accounting_line_type_code  => l_component_type_code
71489       ,p_accounting_line_appl_id    => l_component_appl_id
71490       ,p_amb_context_code           => l_amb_context_code
71491       ,p_entity_code                => l_entity_code
71492       ,p_event_class_code           => l_event_class_code);
71496    xla_ae_lines_pkg.SetAcctClass(
71493    --
71494    -- set accounting class
71495    --
71497            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
71498          , p_ae_header_id           => l_ae_header_id
71499          );
71500 
71501    --
71502    -- set rounding class
71503    --
71504    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
71505                       'EXCHANGE_GAIN_LOSS';
71506 
71507    --
71508    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
71509    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
71510    --
71511    -- bulk performance
71512    --
71513    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
71514 
71515    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
71516       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
71517 
71518    -- 4955764
71519    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71520       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
71521 
71522    -- 4458381 Public Sector Enh
71523    
71524    --
71525    -- set accounting attributes for the line type
71526    --
71527    l_entered_amt_idx := NULL;
71528    l_accted_amt_idx  := 10;
71529    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
71530    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
71531    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
71532    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
71533    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
71534    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
71535    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
71536    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
71537    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
71538    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
71539    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
71540    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
71541    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
71542    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
71543    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
71544    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
71545    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
71546    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
71547    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
71548    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
71549    l_rec_acct_attrs.array_num_value(10)  := p_source_147;
71550    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
71551    l_rec_acct_attrs.array_char_value(11)  := p_source_68;
71552    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
71553    l_rec_acct_attrs.array_num_value(12)  := p_source_102;
71554    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
71555    l_rec_acct_attrs.array_num_value(13)  := p_source_103;
71556    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
71557    l_rec_acct_attrs.array_char_value(14)  := p_source_71;
71558    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
71559    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_104);
71560    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
71561    l_rec_acct_attrs.array_char_value(16)  := p_source_43;
71562    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
71563    l_rec_acct_attrs.array_num_value(17)  := p_source_74;
71564    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
71565    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
71566    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
71567    l_rec_acct_attrs.array_num_value(19)  := p_source_76;
71568 
71569    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
71570    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
71571 
71572    ---------------------------------------------------------------------------------------------------------------
71573    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
71574    ---------------------------------------------------------------------------------------------------------------
71575    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
71576 
71577    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71578    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71579 
71580    IF xla_accounting_cache_pkg.GetValueChar
71581          (p_source_code         => 'LEDGER_CATEGORY_CODE'
71582          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
71583    AND l_bflow_method_code = 'PRIOR_ENTRY'
71584 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
71585    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
71586          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
71587        )
71588    THEN
71589          xla_ae_lines_pkg.BflowUpgEntry
71590            (p_business_method_code    => l_bflow_method_code
71591            ,p_business_class_code     => l_bflow_class_code
71592            ,p_balance_type            => l_balance_type_code);
71593    ELSE
71594       NULL;
71595 -- No business flow processing for business flow method of NONE.
71596    END IF;
71597 
71598    --
71599    -- call analytical criteria
71603    -- call description
71600    --
71601    
71602    --
71604    --
71605    -- No description or it is inherited.
71606    --
71607    -- call ADRs
71608    -- Bug 4922099
71609    --
71610    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71611         (NVL(l_actual_upg_option, 'N') = 'O') OR
71612         (NVL(l_enc_upg_option, 'N') = 'O')
71613       )
71614    THEN
71615    NULL;
71616    --
71617    --
71618    
71619   l_ccid := AcctDerRule_37(
71620            p_application_id           => p_application_id
71621          , p_ae_header_id             => l_ae_header_id 
71622 , p_source_3 => p_source_3
71623 , p_source_3_meaning => p_source_3_meaning
71624 , p_source_18 => p_source_18
71625 , p_source_24 => p_source_24
71626 , p_source_25 => p_source_25
71627          , x_transaction_coa_id       => l_adr_transaction_coa_id
71628          , x_accounting_coa_id        => l_adr_accounting_coa_id
71629          , x_value_type_code          => l_adr_value_type_code
71630          , p_side                     => 'CREDIT'
71631    );
71632 
71633    xla_ae_lines_pkg.set_ccid(
71634     p_code_combination_id          => l_ccid
71635   , p_value_type_code              => l_adr_value_type_code
71636   , p_transaction_coa_id           => l_adr_transaction_coa_id
71637   , p_accounting_coa_id            => l_adr_accounting_coa_id
71638   , p_adr_code                     => 'AP_REAL_GAIN'
71639   , p_adr_type_code                => 'S'
71640   , p_component_type               => l_component_type
71641   , p_component_code               => l_component_code
71642   , p_component_type_code          => l_component_type_code
71643   , p_component_appl_id            => l_component_appl_id
71644   , p_amb_context_code             => l_amb_context_code
71645   , p_side                         => 'CREDIT'
71646   );
71647 
71648 
71649   l_ccid := AcctDerRule_38(
71650            p_application_id           => p_application_id
71651          , p_ae_header_id             => l_ae_header_id 
71652 , p_source_3 => p_source_3
71653 , p_source_3_meaning => p_source_3_meaning
71654 , p_source_18 => p_source_18
71655 , p_source_26 => p_source_26
71656 , p_source_27 => p_source_27
71657          , x_transaction_coa_id       => l_adr_transaction_coa_id
71658          , x_accounting_coa_id        => l_adr_accounting_coa_id
71659          , x_value_type_code          => l_adr_value_type_code
71660          , p_side                     => 'DEBIT'
71661    );
71662 
71663    xla_ae_lines_pkg.set_ccid(
71664     p_code_combination_id          => l_ccid
71665   , p_value_type_code              => l_adr_value_type_code
71666   , p_transaction_coa_id           => l_adr_transaction_coa_id
71667   , p_accounting_coa_id            => l_adr_accounting_coa_id
71668   , p_adr_code                     => 'AP_REAL_LOSS'
71669   , p_adr_type_code                => 'S'
71670   , p_component_type               => l_component_type
71671   , p_component_code               => l_component_code
71672   , p_component_type_code          => l_component_type_code
71673   , p_component_appl_id            => l_component_appl_id
71674   , p_amb_context_code             => l_amb_context_code
71675   , p_side                         => 'DEBIT'
71676   );
71677 
71678 
71679    l_segment := AcctDerRule_21(
71680            p_application_id           => p_application_id
71681          , p_ae_header_id             => l_ae_header_id 
71682 , p_source_3 => p_source_3
71683 , p_source_3_meaning => p_source_3_meaning
71684 , p_source_18 => p_source_18
71685          , x_transaction_coa_id       => l_adr_transaction_coa_id
71686          , x_accounting_coa_id        => l_adr_accounting_coa_id
71687          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71688          , x_flex_value_set_id        => l_adr_flex_value_set_id
71689          , x_value_type_code          => l_adr_value_type_code
71690          , x_value_combination_id     => l_adr_value_combination_id
71691          , x_value_segment_code       => l_adr_value_segment_code
71692          , p_side                     => 'ALL'
71693          , p_override_seg_flag        => 'Y'
71694    );
71695 
71696    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71697 
71698       xla_ae_lines_pkg.set_segment(
71699           p_to_segment_code         => 'GL_BALANCING'
71700         , p_segment_value           => l_segment
71701         , p_from_segment_code       => l_adr_value_segment_code
71702         , p_from_combination_id     => l_adr_value_combination_id
71703         , p_value_type_code         => l_adr_value_type_code
71704         , p_transaction_coa_id      => l_adr_transaction_coa_id
71705         , p_accounting_coa_id       => l_adr_accounting_coa_id
71706         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71707         , p_flex_value_set_id       => l_adr_flex_value_set_id
71708         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
71709         , p_adr_type_code           => 'S'
71710         , p_component_type          => l_component_type
71711         , p_component_code          => l_component_code
71712         , p_component_type_code     => l_component_type_code
71713         , p_component_appl_id       => l_component_appl_id
71714         , p_amb_context_code        => l_amb_context_code
71715         , p_entity_code             => 'AP_PAYMENTS'
71716         , p_event_class_code        => 'RECONCILED PAYMENTS'
71717         , p_side                    => 'ALL'
71718         );
71719 
71720   END IF;
71721 
71722    l_segment := AcctDerRule_16(
71723            p_application_id           => p_application_id
71724          , p_ae_header_id             => l_ae_header_id 
71725 , p_source_3 => p_source_3
71726 , p_source_3_meaning => p_source_3_meaning
71727 , p_source_24 => p_source_24
71731          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71728 , p_source_25 => p_source_25
71729          , x_transaction_coa_id       => l_adr_transaction_coa_id
71730          , x_accounting_coa_id        => l_adr_accounting_coa_id
71732          , x_flex_value_set_id        => l_adr_flex_value_set_id
71733          , x_value_type_code          => l_adr_value_type_code
71734          , x_value_combination_id     => l_adr_value_combination_id
71735          , x_value_segment_code       => l_adr_value_segment_code
71736          , p_side                     => 'CREDIT'
71737          , p_override_seg_flag        => 'Y'
71738    );
71739 
71740    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71741 
71742       xla_ae_lines_pkg.set_segment(
71743           p_to_segment_code         => 'GL_ACCOUNT'
71744         , p_segment_value           => l_segment
71745         , p_from_segment_code       => l_adr_value_segment_code
71746         , p_from_combination_id     => l_adr_value_combination_id
71747         , p_value_type_code         => l_adr_value_type_code
71748         , p_transaction_coa_id      => l_adr_transaction_coa_id
71749         , p_accounting_coa_id       => l_adr_accounting_coa_id
71750         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71751         , p_flex_value_set_id       => l_adr_flex_value_set_id
71752         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
71753         , p_adr_type_code           => 'S'
71754         , p_component_type          => l_component_type
71755         , p_component_code          => l_component_code
71756         , p_component_type_code     => l_component_type_code
71757         , p_component_appl_id       => l_component_appl_id
71758         , p_amb_context_code        => l_amb_context_code
71759         , p_entity_code             => 'AP_PAYMENTS'
71760         , p_event_class_code        => 'RECONCILED PAYMENTS'
71761         , p_side                    => 'CREDIT'
71762         );
71763 
71764   END IF;
71765 
71766    l_segment := AcctDerRule_17(
71767            p_application_id           => p_application_id
71768          , p_ae_header_id             => l_ae_header_id 
71769 , p_source_3 => p_source_3
71770 , p_source_3_meaning => p_source_3_meaning
71771 , p_source_26 => p_source_26
71772 , p_source_27 => p_source_27
71773          , x_transaction_coa_id       => l_adr_transaction_coa_id
71774          , x_accounting_coa_id        => l_adr_accounting_coa_id
71775          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71776          , x_flex_value_set_id        => l_adr_flex_value_set_id
71777          , x_value_type_code          => l_adr_value_type_code
71778          , x_value_combination_id     => l_adr_value_combination_id
71779          , x_value_segment_code       => l_adr_value_segment_code
71780          , p_side                     => 'DEBIT'
71781          , p_override_seg_flag        => 'Y'
71782    );
71783 
71784    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71785 
71786       xla_ae_lines_pkg.set_segment(
71787           p_to_segment_code         => 'GL_ACCOUNT'
71788         , p_segment_value           => l_segment
71789         , p_from_segment_code       => l_adr_value_segment_code
71790         , p_from_combination_id     => l_adr_value_combination_id
71791         , p_value_type_code         => l_adr_value_type_code
71792         , p_transaction_coa_id      => l_adr_transaction_coa_id
71793         , p_accounting_coa_id       => l_adr_accounting_coa_id
71794         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71795         , p_flex_value_set_id       => l_adr_flex_value_set_id
71796         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
71797         , p_adr_type_code           => 'S'
71798         , p_component_type          => l_component_type
71799         , p_component_code          => l_component_code
71800         , p_component_type_code     => l_component_type_code
71801         , p_component_appl_id       => l_component_appl_id
71802         , p_amb_context_code        => l_amb_context_code
71803         , p_entity_code             => 'AP_PAYMENTS'
71804         , p_event_class_code        => 'RECONCILED PAYMENTS'
71805         , p_side                    => 'DEBIT'
71806         );
71807 
71808   END IF;
71809 
71810    --
71811    --
71812    END IF;
71813    --
71814    -- Bug 4922099
71815    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
71816           (NVL(l_enc_upg_option, 'N') = 'O')
71817         ) AND
71818         (l_bflow_method_code = 'PRIOR_ENTRY')
71819       )
71820    THEN
71821       IF
71822       --
71823       1 = 2
71824       --
71825       THEN
71826       xla_accounting_err_pkg.build_message
71827                                     (p_appli_s_name            => 'XLA'
71828                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71829                                     ,p_token_1                 => 'LINE_NUMBER'
71830                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
71831                                     ,p_token_2                 => 'LINE_TYPE_NAME'
71832                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
71833                                                                              l_component_type
71834                                                                             ,l_component_code
71835                                                                             ,l_component_type_code
71836                                                                             ,l_component_appl_id
71837                                                                             ,l_amb_context_code
71838                                                                             ,l_entity_code
71842                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
71839                                                                             ,l_event_class_code
71840                                                                            )
71841                                     ,p_token_3                 => 'OWNER'
71843                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
71844                                                                           ,p_lookup_code    => l_component_type_code
71845                                                                          )
71846                                     ,p_token_4                 => 'PRODUCT_NAME'
71847                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
71848                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
71849                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
71850                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
71851                                     ,p_ae_header_id            =>  NULL
71852                                        );
71853 
71854         IF (C_LEVEL_ERROR>= g_log_level) THEN
71855                  trace
71856                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71857                       ,p_level    => C_LEVEL_ERROR
71858                       ,p_module   => l_log_module);
71859         END IF;
71860       END IF;
71861    END IF;
71862    --
71863    --
71864    ------------------------------------------------------------------------------------------------
71865    -- 4219869 Business Flow
71866    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
71867    -- Prior Entry.  Currently, the following code is always generated.
71868    ------------------------------------------------------------------------------------------------
71869    XLA_AE_LINES_PKG.ValidateCurrentLine;
71870 
71871    ------------------------------------------------------------------------------------
71872    -- 4219869 Business Flow
71873    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
71874    ------------------------------------------------------------------------------------
71875    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71876 
71877    ----------------------------------------------------------------------------------
71878    -- 4219869 Business Flow
71879    -- Update journal entry status -- Need to generate this within IF <condition>
71880    ----------------------------------------------------------------------------------
71881    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71882          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
71883          ,p_balance_type_code => l_balance_type_code
71884          );
71885 
71886    -------------------------------------------------------------------------------------------
71887    -- 4262811 - Generate the Accrual Reversal lines
71888    -------------------------------------------------------------------------------------------
71889    BEGIN
71890       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
71891                               (g_array_event(p_event_id).array_value_num('header_index'));
71892       IF l_acc_rev_flag IS NULL THEN
71893          l_acc_rev_flag := 'N';
71894       END IF;
71895    EXCEPTION
71896       WHEN OTHERS THEN
71897          l_acc_rev_flag := 'N';
71898    END;
71899    --
71900    IF (l_acc_rev_flag = 'Y') THEN
71901 
71902        -- 4645092  ------------------------------------------------------------------------------
71903        -- To allow MPA report to determine if it should generate report process
71904        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
71905        ------------------------------------------------------------------------------------------
71906 
71907        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
71908        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
71909    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
71910    -- call ADRs
71911    -- Bug 4922099
71912    --
71913    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71914         (NVL(l_actual_upg_option, 'N') = 'O') OR
71915         (NVL(l_enc_upg_option, 'N') = 'O')
71916       )
71917    THEN
71918    NULL;
71919    --
71920    --
71921    
71922   l_ccid := AcctDerRule_37(
71923            p_application_id           => p_application_id
71924          , p_ae_header_id             => l_ae_header_id 
71925 , p_source_3 => p_source_3
71926 , p_source_3_meaning => p_source_3_meaning
71927 , p_source_18 => p_source_18
71928 , p_source_24 => p_source_24
71929 , p_source_25 => p_source_25
71930          , x_transaction_coa_id       => l_adr_transaction_coa_id
71931          , x_accounting_coa_id        => l_adr_accounting_coa_id
71932          , x_value_type_code          => l_adr_value_type_code
71933          , p_side                     => 'CREDIT'
71934    );
71935 
71936    xla_ae_lines_pkg.set_ccid(
71937     p_code_combination_id          => l_ccid
71938   , p_value_type_code              => l_adr_value_type_code
71939   , p_transaction_coa_id           => l_adr_transaction_coa_id
71940   , p_accounting_coa_id            => l_adr_accounting_coa_id
71941   , p_adr_code                     => 'AP_REAL_GAIN'
71942   , p_adr_type_code                => 'S'
71943   , p_component_type               => l_component_type
71944   , p_component_code               => l_component_code
71945   , p_component_type_code          => l_component_type_code
71949   );
71946   , p_component_appl_id            => l_component_appl_id
71947   , p_amb_context_code             => l_amb_context_code
71948   , p_side                         => 'CREDIT'
71950 
71951 
71952   l_ccid := AcctDerRule_38(
71953            p_application_id           => p_application_id
71954          , p_ae_header_id             => l_ae_header_id 
71955 , p_source_3 => p_source_3
71956 , p_source_3_meaning => p_source_3_meaning
71957 , p_source_18 => p_source_18
71958 , p_source_26 => p_source_26
71959 , p_source_27 => p_source_27
71960          , x_transaction_coa_id       => l_adr_transaction_coa_id
71961          , x_accounting_coa_id        => l_adr_accounting_coa_id
71962          , x_value_type_code          => l_adr_value_type_code
71963          , p_side                     => 'DEBIT'
71964    );
71965 
71966    xla_ae_lines_pkg.set_ccid(
71967     p_code_combination_id          => l_ccid
71968   , p_value_type_code              => l_adr_value_type_code
71969   , p_transaction_coa_id           => l_adr_transaction_coa_id
71970   , p_accounting_coa_id            => l_adr_accounting_coa_id
71971   , p_adr_code                     => 'AP_REAL_LOSS'
71972   , p_adr_type_code                => 'S'
71973   , p_component_type               => l_component_type
71974   , p_component_code               => l_component_code
71975   , p_component_type_code          => l_component_type_code
71976   , p_component_appl_id            => l_component_appl_id
71977   , p_amb_context_code             => l_amb_context_code
71978   , p_side                         => 'DEBIT'
71979   );
71980 
71981 
71982    l_segment := AcctDerRule_21(
71983            p_application_id           => p_application_id
71984          , p_ae_header_id             => l_ae_header_id 
71985 , p_source_3 => p_source_3
71986 , p_source_3_meaning => p_source_3_meaning
71987 , p_source_18 => p_source_18
71988          , x_transaction_coa_id       => l_adr_transaction_coa_id
71989          , x_accounting_coa_id        => l_adr_accounting_coa_id
71990          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71991          , x_flex_value_set_id        => l_adr_flex_value_set_id
71992          , x_value_type_code          => l_adr_value_type_code
71993          , x_value_combination_id     => l_adr_value_combination_id
71994          , x_value_segment_code       => l_adr_value_segment_code
71995          , p_side                     => 'ALL'
71996          , p_override_seg_flag        => 'Y'
71997    );
71998 
71999    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72000 
72001       xla_ae_lines_pkg.set_segment(
72002           p_to_segment_code         => 'GL_BALANCING'
72003         , p_segment_value           => l_segment
72004         , p_from_segment_code       => l_adr_value_segment_code
72005         , p_from_combination_id     => l_adr_value_combination_id
72006         , p_value_type_code         => l_adr_value_type_code
72007         , p_transaction_coa_id      => l_adr_transaction_coa_id
72008         , p_accounting_coa_id       => l_adr_accounting_coa_id
72009         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72010         , p_flex_value_set_id       => l_adr_flex_value_set_id
72011         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
72012         , p_adr_type_code           => 'S'
72013         , p_component_type          => l_component_type
72014         , p_component_code          => l_component_code
72015         , p_component_type_code     => l_component_type_code
72016         , p_component_appl_id       => l_component_appl_id
72017         , p_amb_context_code        => l_amb_context_code
72018         , p_entity_code             => 'AP_PAYMENTS'
72019         , p_event_class_code        => 'RECONCILED PAYMENTS'
72020         , p_side                    => 'ALL'
72021         );
72022 
72023   END IF;
72024 
72025    l_segment := AcctDerRule_16(
72026            p_application_id           => p_application_id
72027          , p_ae_header_id             => l_ae_header_id 
72028 , p_source_3 => p_source_3
72029 , p_source_3_meaning => p_source_3_meaning
72030 , p_source_24 => p_source_24
72031 , p_source_25 => p_source_25
72032          , x_transaction_coa_id       => l_adr_transaction_coa_id
72033          , x_accounting_coa_id        => l_adr_accounting_coa_id
72034          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72035          , x_flex_value_set_id        => l_adr_flex_value_set_id
72036          , x_value_type_code          => l_adr_value_type_code
72037          , x_value_combination_id     => l_adr_value_combination_id
72038          , x_value_segment_code       => l_adr_value_segment_code
72039          , p_side                     => 'CREDIT'
72040          , p_override_seg_flag        => 'Y'
72041    );
72042 
72043    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72044 
72045       xla_ae_lines_pkg.set_segment(
72046           p_to_segment_code         => 'GL_ACCOUNT'
72047         , p_segment_value           => l_segment
72048         , p_from_segment_code       => l_adr_value_segment_code
72049         , p_from_combination_id     => l_adr_value_combination_id
72050         , p_value_type_code         => l_adr_value_type_code
72051         , p_transaction_coa_id      => l_adr_transaction_coa_id
72052         , p_accounting_coa_id       => l_adr_accounting_coa_id
72053         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72054         , p_flex_value_set_id       => l_adr_flex_value_set_id
72055         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
72056         , p_adr_type_code           => 'S'
72057         , p_component_type          => l_component_type
72058         , p_component_code          => l_component_code
72059         , p_component_type_code     => l_component_type_code
72060         , p_component_appl_id       => l_component_appl_id
72064         , p_side                    => 'CREDIT'
72061         , p_amb_context_code        => l_amb_context_code
72062         , p_entity_code             => 'AP_PAYMENTS'
72063         , p_event_class_code        => 'RECONCILED PAYMENTS'
72065         );
72066 
72067   END IF;
72068 
72069    l_segment := AcctDerRule_17(
72070            p_application_id           => p_application_id
72071          , p_ae_header_id             => l_ae_header_id 
72072 , p_source_3 => p_source_3
72073 , p_source_3_meaning => p_source_3_meaning
72074 , p_source_26 => p_source_26
72075 , p_source_27 => p_source_27
72076          , x_transaction_coa_id       => l_adr_transaction_coa_id
72077          , x_accounting_coa_id        => l_adr_accounting_coa_id
72078          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72079          , x_flex_value_set_id        => l_adr_flex_value_set_id
72080          , x_value_type_code          => l_adr_value_type_code
72081          , x_value_combination_id     => l_adr_value_combination_id
72082          , x_value_segment_code       => l_adr_value_segment_code
72083          , p_side                     => 'DEBIT'
72084          , p_override_seg_flag        => 'Y'
72085    );
72086 
72087    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72088 
72089       xla_ae_lines_pkg.set_segment(
72090           p_to_segment_code         => 'GL_ACCOUNT'
72091         , p_segment_value           => l_segment
72092         , p_from_segment_code       => l_adr_value_segment_code
72093         , p_from_combination_id     => l_adr_value_combination_id
72094         , p_value_type_code         => l_adr_value_type_code
72095         , p_transaction_coa_id      => l_adr_transaction_coa_id
72096         , p_accounting_coa_id       => l_adr_accounting_coa_id
72097         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72098         , p_flex_value_set_id       => l_adr_flex_value_set_id
72099         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
72100         , p_adr_type_code           => 'S'
72101         , p_component_type          => l_component_type
72102         , p_component_code          => l_component_code
72103         , p_component_type_code     => l_component_type_code
72104         , p_component_appl_id       => l_component_appl_id
72105         , p_amb_context_code        => l_amb_context_code
72106         , p_entity_code             => 'AP_PAYMENTS'
72107         , p_event_class_code        => 'RECONCILED PAYMENTS'
72108         , p_side                    => 'DEBIT'
72109         );
72110 
72111   END IF;
72112 
72113    --
72114    --
72115    END IF;
72116 
72117        --
72118        -- Update the line information that should be overwritten
72119        --
72120        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
72121                                          p_header_num   => 1);
72122        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
72123 
72124        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
72125 
72126        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
72127           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
72128        END IF;
72129 
72130       --
72131       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
72132       --
72133       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
72134           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
72135       ELSE
72136           ---------------------------------------------------------------------------------------------------
72137           -- 4262811a Switch Sign
72138           ---------------------------------------------------------------------------------------------------
72139           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
72140           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72141                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72142           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72143                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72144           -- 5132302
72145           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
72146                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72147 
72148       END IF;
72149 
72150       -- 4955764
72151       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72152       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
72153 
72154 
72155       XLA_AE_LINES_PKG.ValidateCurrentLine;
72156       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72157 
72158       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72159                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
72160                ,p_balance_type_code => l_balance_type_code);
72161 
72162    END IF;
72163 
72164    -----------------------------------------------------------------------------------------
72165    -- 4262811 Multiperiod Accounting
72166    -----------------------------------------------------------------------------------------
72167      -- No MPA option is assigned.
72168 
72169 
72170 END IF;
72171 END IF;
72172 --
72173 
72174 --
72175 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72176    trace
72180 END IF;
72177       (p_msg      => 'END of AcctLineType_137'
72178       ,p_level    => C_LEVEL_PROCEDURE
72179       ,p_module   => l_log_module);
72181 --
72182 EXCEPTION
72183   WHEN xla_exceptions_pkg.application_exception THEN
72184       RAISE;
72185   WHEN OTHERS THEN
72186        xla_exceptions_pkg.raise_message
72187            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_137');
72188 END AcctLineType_137;
72189 --
72190 
72191 ---------------------------------------
72192 --
72193 -- PRIVATE FUNCTION
72194 --         AcctLineType_138
72195 --
72196 ---------------------------------------
72197 PROCEDURE AcctLineType_138 (
72198   p_application_id        IN NUMBER
72199  ,p_event_id              IN NUMBER
72200  ,p_calculate_acctd_flag  IN VARCHAR2
72201  ,p_calculate_g_l_flag    IN VARCHAR2
72202  ,p_actual_flag           IN OUT VARCHAR2
72203  ,p_balance_type_code     OUT VARCHAR2
72204  ,p_gain_or_loss_ref      OUT VARCHAR2
72205  
72206 --Automatic Offsets Value
72207  , p_source_3            IN VARCHAR2
72208  , p_source_3_meaning    IN VARCHAR2
72209 --Invoice Distribution Account
72210  , p_source_18            IN NUMBER
72211 --Internal Realized Gain Account
72212  , p_source_24            IN NUMBER
72213 --Bank Gain Account
72214  , p_source_25            IN NUMBER
72215 --Internal Realized Loss Account
72216  , p_source_26            IN NUMBER
72217 --Bank Loss Account
72218  , p_source_27            IN NUMBER
72219 --Accounting Reversal Indicator
72220  , p_source_41            IN VARCHAR2
72221 --Distribution Link Type
72222  , p_source_43            IN VARCHAR2
72223 --Override Accounted Amount Indicator
72224  , p_source_68            IN VARCHAR2
72225  , p_source_68_meaning    IN VARCHAR2
72226 --Third Party Type
72227  , p_source_71            IN VARCHAR2
72228 --Invoice Distribution Tax Line Identifier
72229  , p_source_74            IN NUMBER
72230 --Invoice Distribution Tax Distribution Identifier from Tax
72231  , p_source_75            IN NUMBER
72232 --Invoice Distribution Summary Tax Line Identifier
72233  , p_source_76            IN NUMBER
72234 --Business Flow Accounts Payable Application Identifier
72235  , p_source_79            IN NUMBER
72236 --Business Flow Invoice Distribution Type
72237  , p_source_80            IN VARCHAR2
72238 --Business Flow Invoice Entity Code
72239  , p_source_81            IN VARCHAR2
72240 --Business Flow Invoice Distribution Identifier
72241  , p_source_82            IN NUMBER
72242 --Business Flow Invoice Identifier
72243  , p_source_83            IN NUMBER
72244 --When to Account for Payment Option
72245  , p_source_89            IN VARCHAR2
72246 --Payment Distribution Type
72247  , p_source_90            IN VARCHAR2
72248  , p_source_90_meaning    IN VARCHAR2
72249 --Payment Distribution Identifier
72250  , p_source_96            IN NUMBER
72251 --Payment Supplier Identifier
72252  , p_source_102            IN NUMBER
72253 --Payment Supplier Site Identifier
72254  , p_source_103            IN NUMBER
72255 --Payment Distribution Reversed Identifier
72256  , p_source_104            IN NUMBER
72257 --Payment Type
72258  , p_source_115            IN VARCHAR2
72259  , p_source_115_meaning    IN VARCHAR2
72260 --Invoice Distribution Amount of the Payment Distribution
72261  , p_source_117            IN NUMBER
72262 --Invoice/Payment Ledger Amount Difference
72263  , p_source_148            IN NUMBER
72264 )
72265 IS
72266 
72267 l_component_type              VARCHAR2(80);
72268 l_component_code              VARCHAR2(30);
72269 l_component_type_code         VARCHAR2(1);
72270 l_component_appl_id           INTEGER;
72271 l_amb_context_code            VARCHAR2(30);
72272 l_entity_code                 VARCHAR2(30);
72273 l_event_class_code            VARCHAR2(30);
72274 l_ae_header_id                NUMBER;
72275 l_event_type_code             VARCHAR2(30);
72276 l_line_definition_code        VARCHAR2(30);
72277 l_line_definition_owner_code  VARCHAR2(1);
72278 --
72279 -- adr variables
72280 l_segment                     VARCHAR2(30);
72281 l_ccid                        NUMBER;
72282 l_adr_transaction_coa_id      NUMBER;
72283 l_adr_accounting_coa_id       NUMBER;
72284 l_adr_flexfield_segment_code  VARCHAR2(30);
72285 l_adr_flex_value_set_id       NUMBER;
72286 l_adr_value_type_code         VARCHAR2(30);
72287 l_adr_value_combination_id    NUMBER;
72288 l_adr_value_segment_code      VARCHAR2(30);
72289 
72290 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
72291 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
72292 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
72293 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
72294 
72295 -- 4262811 Variables ------------------------------------------------------------------------------------------
72296 l_entered_amt_idx             NUMBER;
72297 l_accted_amt_idx              NUMBER;
72298 l_acc_rev_flag                VARCHAR2(1);
72299 l_accrual_line_num            NUMBER;
72300 l_tmp_amt                     NUMBER;
72301 l_acc_rev_natural_side_code   VARCHAR2(1);
72302 
72303 l_num_entries                 NUMBER;
72304 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
72305 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
72306 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
72307 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
72308 l_recog_line_1                NUMBER;
72309 l_recog_line_2                NUMBER;
72310 
72314 
72311 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
72312 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
72313 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
72315 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
72316 
72317 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
72318 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
72319 
72320 ---------------------------------------------------------------------------------------------------------------
72321 
72322 
72323 --
72324 -- bulk performance
72325 --
72326 l_balance_type_code           VARCHAR2(1);
72327 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
72328 l_log_module                  VARCHAR2(240);
72329 
72330 --
72331 -- Upgrade strategy
72332 --
72333 l_actual_upg_option           VARCHAR2(1);
72334 l_enc_upg_option           VARCHAR2(1);
72335 
72336 --
72337 BEGIN
72338 --
72339 IF g_log_enabled THEN
72340       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_138';
72341 END IF;
72342 --
72343 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72344 
72345       trace
72346          (p_msg      => 'BEGIN of AcctLineType_138'
72347          ,p_level    => C_LEVEL_PROCEDURE
72348          ,p_module   => l_log_module);
72349 
72350 END IF;
72351 --
72352 l_component_type             := 'AMB_JLT';
72353 l_component_code             := 'AP_GAIN_LOSS_PMT';
72354 l_component_type_code        := 'S';
72355 l_component_appl_id          :=  200;
72356 l_amb_context_code           := 'DEFAULT';
72357 l_entity_code                := 'AP_PAYMENTS';
72358 l_event_class_code           := 'PAYMENTS';
72359 l_event_type_code            := 'PAYMENTS_ALL';
72360 l_line_definition_owner_code := 'S';
72361 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
72362 --
72363 l_balance_type_code          := 'A';
72364 l_segment                     := NULL;
72365 l_ccid                        := NULL;
72366 l_adr_transaction_coa_id      := NULL;
72367 l_adr_accounting_coa_id       := NULL;
72368 l_adr_flexfield_segment_code  := NULL;
72369 l_adr_flex_value_set_id       := NULL;
72370 l_adr_value_type_code         := NULL;
72371 l_adr_value_combination_id    := NULL;
72372 l_adr_value_segment_code      := NULL;
72373 
72374 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
72375 l_bflow_class_code           := '';    -- 4219869 Business Flow
72376 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
72377 l_budgetary_control_flag     := 'N';
72378 
72379 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
72380 l_bflow_applied_to_amt       := NULL; -- 5132302
72381 l_entered_amt_idx            := NULL;          -- 4262811
72382 l_accted_amt_idx             := NULL;          -- 4262811
72383 l_acc_rev_flag               := NULL;          -- 4262811
72384 l_accrual_line_num           := NULL;          -- 4262811
72385 l_tmp_amt                    := NULL;          -- 4262811
72386 --
72387 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
72388             (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
72389                return;
72390   END IF;
72391   
72392 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
72393     l_balance_type_code <> 'B' THEN
72394 IF (NVL(p_source_89,'
72395 ') <>  'CLEAR_CLEAR' AND 
72396 NVL(p_source_89,'
72397 ') <>  'ALWAYS_CLEAR') AND 
72398 NVL(p_source_90,'
72399 ') <>  'EXCHANGE RATE VARIANCE' AND 
72400 NVL(p_source_90,'
72401 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
72402 NVL(p_source_90,'
72403 ') <>  'BANK CHARGE' AND 
72404 NVL(p_source_90,'
72405 ') <>  'BANK ERROR' AND 
72406 NVL(p_source_115,'
72407 ') <>  'R'
72408  THEN 
72409 
72410    --
72411    XLA_AE_LINES_PKG.SetNewLine;
72412 
72413    p_balance_type_code          := l_balance_type_code;
72414    -- set the flag so later we will know whether the gain loss line needs to be created
72415    
72416    IF(l_balance_type_code = 'A' ) THEN
72417      p_actual_flag :='G';
72418    END IF;
72419 
72420    --
72421    -- bulk performance
72422    --
72423    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
72424                                       p_header_num   => 0); -- 4262811
72425    --
72426    -- set accounting line options
72427    --
72428    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
72429            p_natural_side_code          => 'G'
72430          , p_gain_or_loss_flag          => 'N'
72431          , p_gl_transfer_mode_code      => 'S'
72432          , p_acct_entry_type_code       => 'A'
72433          , p_switch_side_flag           => ''
72434          , p_merge_duplicate_code       => 'A'
72435          );
72436    --
72437    l_acc_rev_natural_side_code := 'C';  -- 4262811
72438    -- 
72439    --
72440    -- set accounting line type info
72441    --
72442    xla_ae_lines_pkg.SetAcctLineType
72443       (p_component_type             => l_component_type
72444       ,p_event_type_code            => l_event_type_code
72445       ,p_line_definition_owner_code => l_line_definition_owner_code
72446       ,p_line_definition_code       => l_line_definition_code
72447       ,p_accounting_line_code       => l_component_code
72451       ,p_entity_code                => l_entity_code
72448       ,p_accounting_line_type_code  => l_component_type_code
72449       ,p_accounting_line_appl_id    => l_component_appl_id
72450       ,p_amb_context_code           => l_amb_context_code
72452       ,p_event_class_code           => l_event_class_code);
72453    --
72454    -- set accounting class
72455    --
72456    xla_ae_lines_pkg.SetAcctClass(
72457            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
72458          , p_ae_header_id           => l_ae_header_id
72459          );
72460 
72461    --
72462    -- set rounding class
72463    --
72464    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
72465                       'EXCHANGE_GAIN_LOSS';
72466 
72467    --
72468    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
72469    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
72470    --
72471    -- bulk performance
72472    --
72473    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
72474 
72475    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
72476       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
72477 
72478    -- 4955764
72479    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72480       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
72481 
72482    -- 4458381 Public Sector Enh
72483    
72484    --
72485    -- set accounting attributes for the line type
72486    --
72487    l_entered_amt_idx := NULL;
72488    l_accted_amt_idx  := 10;
72489    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
72490    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
72491    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
72492    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
72493    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
72494    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
72495    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
72496    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
72497    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
72498    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
72499    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
72500    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
72501    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
72502    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
72503    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
72504    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
72505    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
72506    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
72507    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
72508    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
72509    l_rec_acct_attrs.array_num_value(10)  := p_source_148;
72510    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
72511    l_rec_acct_attrs.array_char_value(11)  := p_source_68;
72512    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
72513    l_rec_acct_attrs.array_num_value(12)  := p_source_102;
72514    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
72515    l_rec_acct_attrs.array_num_value(13)  := p_source_103;
72516    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
72517    l_rec_acct_attrs.array_char_value(14)  := p_source_71;
72518    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
72519    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_104);
72520    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
72521    l_rec_acct_attrs.array_char_value(16)  := p_source_43;
72522    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
72523    l_rec_acct_attrs.array_num_value(17)  := p_source_74;
72524    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
72525    l_rec_acct_attrs.array_num_value(18)  := p_source_75;
72526    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
72527    l_rec_acct_attrs.array_num_value(19)  := p_source_76;
72528 
72529    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
72530    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
72531 
72532    ---------------------------------------------------------------------------------------------------------------
72533    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
72534    ---------------------------------------------------------------------------------------------------------------
72535    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
72536 
72537    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72538    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72539 
72540    IF xla_accounting_cache_pkg.GetValueChar
72541          (p_source_code         => 'LEDGER_CATEGORY_CODE'
72542          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
72543    AND l_bflow_method_code = 'PRIOR_ENTRY'
72544 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
72545    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
72546          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
72550            (p_business_method_code    => l_bflow_method_code
72547        )
72548    THEN
72549          xla_ae_lines_pkg.BflowUpgEntry
72551            ,p_business_class_code     => l_bflow_class_code
72552            ,p_balance_type            => l_balance_type_code);
72553    ELSE
72554       NULL;
72555 -- No business flow processing for business flow method of NONE.
72556    END IF;
72557 
72558    --
72559    -- call analytical criteria
72560    --
72561    
72562    --
72563    -- call description
72564    --
72565    -- No description or it is inherited.
72566    --
72567    -- call ADRs
72568    -- Bug 4922099
72569    --
72570    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72571         (NVL(l_actual_upg_option, 'N') = 'O') OR
72572         (NVL(l_enc_upg_option, 'N') = 'O')
72573       )
72574    THEN
72575    NULL;
72576    --
72577    --
72578    
72579   l_ccid := AcctDerRule_37(
72580            p_application_id           => p_application_id
72581          , p_ae_header_id             => l_ae_header_id 
72582 , p_source_3 => p_source_3
72583 , p_source_3_meaning => p_source_3_meaning
72584 , p_source_18 => p_source_18
72585 , p_source_24 => p_source_24
72586 , p_source_25 => p_source_25
72587          , x_transaction_coa_id       => l_adr_transaction_coa_id
72588          , x_accounting_coa_id        => l_adr_accounting_coa_id
72589          , x_value_type_code          => l_adr_value_type_code
72590          , p_side                     => 'CREDIT'
72591    );
72592 
72593    xla_ae_lines_pkg.set_ccid(
72594     p_code_combination_id          => l_ccid
72595   , p_value_type_code              => l_adr_value_type_code
72596   , p_transaction_coa_id           => l_adr_transaction_coa_id
72597   , p_accounting_coa_id            => l_adr_accounting_coa_id
72598   , p_adr_code                     => 'AP_REAL_GAIN'
72599   , p_adr_type_code                => 'S'
72600   , p_component_type               => l_component_type
72601   , p_component_code               => l_component_code
72602   , p_component_type_code          => l_component_type_code
72603   , p_component_appl_id            => l_component_appl_id
72604   , p_amb_context_code             => l_amb_context_code
72605   , p_side                         => 'CREDIT'
72606   );
72607 
72608 
72609   l_ccid := AcctDerRule_38(
72610            p_application_id           => p_application_id
72611          , p_ae_header_id             => l_ae_header_id 
72612 , p_source_3 => p_source_3
72613 , p_source_3_meaning => p_source_3_meaning
72614 , p_source_18 => p_source_18
72615 , p_source_26 => p_source_26
72616 , p_source_27 => p_source_27
72617          , x_transaction_coa_id       => l_adr_transaction_coa_id
72618          , x_accounting_coa_id        => l_adr_accounting_coa_id
72619          , x_value_type_code          => l_adr_value_type_code
72620          , p_side                     => 'DEBIT'
72621    );
72622 
72623    xla_ae_lines_pkg.set_ccid(
72624     p_code_combination_id          => l_ccid
72625   , p_value_type_code              => l_adr_value_type_code
72626   , p_transaction_coa_id           => l_adr_transaction_coa_id
72627   , p_accounting_coa_id            => l_adr_accounting_coa_id
72628   , p_adr_code                     => 'AP_REAL_LOSS'
72629   , p_adr_type_code                => 'S'
72630   , p_component_type               => l_component_type
72631   , p_component_code               => l_component_code
72632   , p_component_type_code          => l_component_type_code
72633   , p_component_appl_id            => l_component_appl_id
72634   , p_amb_context_code             => l_amb_context_code
72635   , p_side                         => 'DEBIT'
72636   );
72637 
72638 
72639    l_segment := AcctDerRule_21(
72640            p_application_id           => p_application_id
72641          , p_ae_header_id             => l_ae_header_id 
72642 , p_source_3 => p_source_3
72643 , p_source_3_meaning => p_source_3_meaning
72644 , p_source_18 => p_source_18
72645          , x_transaction_coa_id       => l_adr_transaction_coa_id
72646          , x_accounting_coa_id        => l_adr_accounting_coa_id
72647          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72648          , x_flex_value_set_id        => l_adr_flex_value_set_id
72649          , x_value_type_code          => l_adr_value_type_code
72650          , x_value_combination_id     => l_adr_value_combination_id
72651          , x_value_segment_code       => l_adr_value_segment_code
72652          , p_side                     => 'ALL'
72653          , p_override_seg_flag        => 'Y'
72654    );
72655 
72656    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72657 
72658       xla_ae_lines_pkg.set_segment(
72659           p_to_segment_code         => 'GL_BALANCING'
72660         , p_segment_value           => l_segment
72661         , p_from_segment_code       => l_adr_value_segment_code
72662         , p_from_combination_id     => l_adr_value_combination_id
72663         , p_value_type_code         => l_adr_value_type_code
72664         , p_transaction_coa_id      => l_adr_transaction_coa_id
72665         , p_accounting_coa_id       => l_adr_accounting_coa_id
72666         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72667         , p_flex_value_set_id       => l_adr_flex_value_set_id
72668         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
72669         , p_adr_type_code           => 'S'
72670         , p_component_type          => l_component_type
72671         , p_component_code          => l_component_code
72675         , p_entity_code             => 'AP_PAYMENTS'
72672         , p_component_type_code     => l_component_type_code
72673         , p_component_appl_id       => l_component_appl_id
72674         , p_amb_context_code        => l_amb_context_code
72676         , p_event_class_code        => 'PAYMENTS'
72677         , p_side                    => 'ALL'
72678         );
72679 
72680   END IF;
72681 
72682    l_segment := AcctDerRule_16(
72683            p_application_id           => p_application_id
72684          , p_ae_header_id             => l_ae_header_id 
72685 , p_source_3 => p_source_3
72686 , p_source_3_meaning => p_source_3_meaning
72687 , p_source_24 => p_source_24
72688 , p_source_25 => p_source_25
72689          , x_transaction_coa_id       => l_adr_transaction_coa_id
72690          , x_accounting_coa_id        => l_adr_accounting_coa_id
72691          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72692          , x_flex_value_set_id        => l_adr_flex_value_set_id
72693          , x_value_type_code          => l_adr_value_type_code
72694          , x_value_combination_id     => l_adr_value_combination_id
72695          , x_value_segment_code       => l_adr_value_segment_code
72696          , p_side                     => 'CREDIT'
72697          , p_override_seg_flag        => 'Y'
72698    );
72699 
72700    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72701 
72702       xla_ae_lines_pkg.set_segment(
72703           p_to_segment_code         => 'GL_ACCOUNT'
72704         , p_segment_value           => l_segment
72705         , p_from_segment_code       => l_adr_value_segment_code
72706         , p_from_combination_id     => l_adr_value_combination_id
72707         , p_value_type_code         => l_adr_value_type_code
72708         , p_transaction_coa_id      => l_adr_transaction_coa_id
72709         , p_accounting_coa_id       => l_adr_accounting_coa_id
72710         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72711         , p_flex_value_set_id       => l_adr_flex_value_set_id
72712         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
72713         , p_adr_type_code           => 'S'
72714         , p_component_type          => l_component_type
72715         , p_component_code          => l_component_code
72716         , p_component_type_code     => l_component_type_code
72717         , p_component_appl_id       => l_component_appl_id
72718         , p_amb_context_code        => l_amb_context_code
72719         , p_entity_code             => 'AP_PAYMENTS'
72720         , p_event_class_code        => 'PAYMENTS'
72721         , p_side                    => 'CREDIT'
72722         );
72723 
72724   END IF;
72725 
72726    l_segment := AcctDerRule_17(
72727            p_application_id           => p_application_id
72728          , p_ae_header_id             => l_ae_header_id 
72729 , p_source_3 => p_source_3
72730 , p_source_3_meaning => p_source_3_meaning
72731 , p_source_26 => p_source_26
72732 , p_source_27 => p_source_27
72733          , x_transaction_coa_id       => l_adr_transaction_coa_id
72734          , x_accounting_coa_id        => l_adr_accounting_coa_id
72735          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72736          , x_flex_value_set_id        => l_adr_flex_value_set_id
72737          , x_value_type_code          => l_adr_value_type_code
72738          , x_value_combination_id     => l_adr_value_combination_id
72739          , x_value_segment_code       => l_adr_value_segment_code
72740          , p_side                     => 'DEBIT'
72741          , p_override_seg_flag        => 'Y'
72742    );
72743 
72744    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72745 
72746       xla_ae_lines_pkg.set_segment(
72747           p_to_segment_code         => 'GL_ACCOUNT'
72748         , p_segment_value           => l_segment
72749         , p_from_segment_code       => l_adr_value_segment_code
72750         , p_from_combination_id     => l_adr_value_combination_id
72751         , p_value_type_code         => l_adr_value_type_code
72752         , p_transaction_coa_id      => l_adr_transaction_coa_id
72753         , p_accounting_coa_id       => l_adr_accounting_coa_id
72754         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72755         , p_flex_value_set_id       => l_adr_flex_value_set_id
72756         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
72757         , p_adr_type_code           => 'S'
72758         , p_component_type          => l_component_type
72759         , p_component_code          => l_component_code
72760         , p_component_type_code     => l_component_type_code
72761         , p_component_appl_id       => l_component_appl_id
72762         , p_amb_context_code        => l_amb_context_code
72763         , p_entity_code             => 'AP_PAYMENTS'
72764         , p_event_class_code        => 'PAYMENTS'
72765         , p_side                    => 'DEBIT'
72766         );
72767 
72768   END IF;
72769 
72770    --
72771    --
72772    END IF;
72773    --
72774    -- Bug 4922099
72775    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
72776           (NVL(l_enc_upg_option, 'N') = 'O')
72777         ) AND
72778         (l_bflow_method_code = 'PRIOR_ENTRY')
72779       )
72780    THEN
72781       IF
72782       --
72783       1 = 2
72784       --
72785       THEN
72786       xla_accounting_err_pkg.build_message
72787                                     (p_appli_s_name            => 'XLA'
72788                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72792                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
72789                                     ,p_token_1                 => 'LINE_NUMBER'
72790                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
72791                                     ,p_token_2                 => 'LINE_TYPE_NAME'
72793                                                                              l_component_type
72794                                                                             ,l_component_code
72795                                                                             ,l_component_type_code
72796                                                                             ,l_component_appl_id
72797                                                                             ,l_amb_context_code
72798                                                                             ,l_entity_code
72799                                                                             ,l_event_class_code
72800                                                                            )
72801                                     ,p_token_3                 => 'OWNER'
72802                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
72803                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
72804                                                                           ,p_lookup_code    => l_component_type_code
72805                                                                          )
72806                                     ,p_token_4                 => 'PRODUCT_NAME'
72807                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
72808                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
72809                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
72810                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
72811                                     ,p_ae_header_id            =>  NULL
72812                                        );
72813 
72814         IF (C_LEVEL_ERROR>= g_log_level) THEN
72815                  trace
72816                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72817                       ,p_level    => C_LEVEL_ERROR
72818                       ,p_module   => l_log_module);
72819         END IF;
72820       END IF;
72821    END IF;
72822    --
72823    --
72824    ------------------------------------------------------------------------------------------------
72825    -- 4219869 Business Flow
72826    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
72827    -- Prior Entry.  Currently, the following code is always generated.
72828    ------------------------------------------------------------------------------------------------
72829    XLA_AE_LINES_PKG.ValidateCurrentLine;
72830 
72831    ------------------------------------------------------------------------------------
72832    -- 4219869 Business Flow
72833    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
72834    ------------------------------------------------------------------------------------
72835    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72836 
72837    ----------------------------------------------------------------------------------
72838    -- 4219869 Business Flow
72839    -- Update journal entry status -- Need to generate this within IF <condition>
72840    ----------------------------------------------------------------------------------
72841    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72842          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
72843          ,p_balance_type_code => l_balance_type_code
72844          );
72845 
72846    -------------------------------------------------------------------------------------------
72847    -- 4262811 - Generate the Accrual Reversal lines
72848    -------------------------------------------------------------------------------------------
72849    BEGIN
72850       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
72851                               (g_array_event(p_event_id).array_value_num('header_index'));
72852       IF l_acc_rev_flag IS NULL THEN
72853          l_acc_rev_flag := 'N';
72854       END IF;
72855    EXCEPTION
72856       WHEN OTHERS THEN
72857          l_acc_rev_flag := 'N';
72858    END;
72859    --
72860    IF (l_acc_rev_flag = 'Y') THEN
72861 
72862        -- 4645092  ------------------------------------------------------------------------------
72863        -- To allow MPA report to determine if it should generate report process
72864        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
72865        ------------------------------------------------------------------------------------------
72866 
72867        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
72868        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
72869    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
72870    -- call ADRs
72871    -- Bug 4922099
72872    --
72873    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72874         (NVL(l_actual_upg_option, 'N') = 'O') OR
72875         (NVL(l_enc_upg_option, 'N') = 'O')
72876       )
72877    THEN
72878    NULL;
72879    --
72880    --
72881    
72885 , p_source_3 => p_source_3
72882   l_ccid := AcctDerRule_37(
72883            p_application_id           => p_application_id
72884          , p_ae_header_id             => l_ae_header_id 
72886 , p_source_3_meaning => p_source_3_meaning
72887 , p_source_18 => p_source_18
72888 , p_source_24 => p_source_24
72889 , p_source_25 => p_source_25
72890          , x_transaction_coa_id       => l_adr_transaction_coa_id
72891          , x_accounting_coa_id        => l_adr_accounting_coa_id
72892          , x_value_type_code          => l_adr_value_type_code
72893          , p_side                     => 'CREDIT'
72894    );
72895 
72896    xla_ae_lines_pkg.set_ccid(
72897     p_code_combination_id          => l_ccid
72898   , p_value_type_code              => l_adr_value_type_code
72899   , p_transaction_coa_id           => l_adr_transaction_coa_id
72900   , p_accounting_coa_id            => l_adr_accounting_coa_id
72901   , p_adr_code                     => 'AP_REAL_GAIN'
72902   , p_adr_type_code                => 'S'
72903   , p_component_type               => l_component_type
72904   , p_component_code               => l_component_code
72905   , p_component_type_code          => l_component_type_code
72906   , p_component_appl_id            => l_component_appl_id
72907   , p_amb_context_code             => l_amb_context_code
72908   , p_side                         => 'CREDIT'
72909   );
72910 
72911 
72912   l_ccid := AcctDerRule_38(
72913            p_application_id           => p_application_id
72914          , p_ae_header_id             => l_ae_header_id 
72915 , p_source_3 => p_source_3
72916 , p_source_3_meaning => p_source_3_meaning
72917 , p_source_18 => p_source_18
72918 , p_source_26 => p_source_26
72919 , p_source_27 => p_source_27
72920          , x_transaction_coa_id       => l_adr_transaction_coa_id
72921          , x_accounting_coa_id        => l_adr_accounting_coa_id
72922          , x_value_type_code          => l_adr_value_type_code
72923          , p_side                     => 'DEBIT'
72924    );
72925 
72926    xla_ae_lines_pkg.set_ccid(
72927     p_code_combination_id          => l_ccid
72928   , p_value_type_code              => l_adr_value_type_code
72929   , p_transaction_coa_id           => l_adr_transaction_coa_id
72930   , p_accounting_coa_id            => l_adr_accounting_coa_id
72931   , p_adr_code                     => 'AP_REAL_LOSS'
72932   , p_adr_type_code                => 'S'
72933   , p_component_type               => l_component_type
72934   , p_component_code               => l_component_code
72935   , p_component_type_code          => l_component_type_code
72936   , p_component_appl_id            => l_component_appl_id
72937   , p_amb_context_code             => l_amb_context_code
72938   , p_side                         => 'DEBIT'
72939   );
72940 
72941 
72942    l_segment := AcctDerRule_21(
72943            p_application_id           => p_application_id
72944          , p_ae_header_id             => l_ae_header_id 
72945 , p_source_3 => p_source_3
72946 , p_source_3_meaning => p_source_3_meaning
72947 , p_source_18 => p_source_18
72948          , x_transaction_coa_id       => l_adr_transaction_coa_id
72949          , x_accounting_coa_id        => l_adr_accounting_coa_id
72950          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72951          , x_flex_value_set_id        => l_adr_flex_value_set_id
72952          , x_value_type_code          => l_adr_value_type_code
72953          , x_value_combination_id     => l_adr_value_combination_id
72954          , x_value_segment_code       => l_adr_value_segment_code
72955          , p_side                     => 'ALL'
72956          , p_override_seg_flag        => 'Y'
72957    );
72958 
72959    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72960 
72961       xla_ae_lines_pkg.set_segment(
72962           p_to_segment_code         => 'GL_BALANCING'
72963         , p_segment_value           => l_segment
72964         , p_from_segment_code       => l_adr_value_segment_code
72965         , p_from_combination_id     => l_adr_value_combination_id
72966         , p_value_type_code         => l_adr_value_type_code
72967         , p_transaction_coa_id      => l_adr_transaction_coa_id
72968         , p_accounting_coa_id       => l_adr_accounting_coa_id
72969         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72970         , p_flex_value_set_id       => l_adr_flex_value_set_id
72971         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
72972         , p_adr_type_code           => 'S'
72973         , p_component_type          => l_component_type
72974         , p_component_code          => l_component_code
72975         , p_component_type_code     => l_component_type_code
72976         , p_component_appl_id       => l_component_appl_id
72977         , p_amb_context_code        => l_amb_context_code
72978         , p_entity_code             => 'AP_PAYMENTS'
72979         , p_event_class_code        => 'PAYMENTS'
72980         , p_side                    => 'ALL'
72981         );
72982 
72983   END IF;
72984 
72985    l_segment := AcctDerRule_16(
72986            p_application_id           => p_application_id
72987          , p_ae_header_id             => l_ae_header_id 
72988 , p_source_3 => p_source_3
72989 , p_source_3_meaning => p_source_3_meaning
72990 , p_source_24 => p_source_24
72991 , p_source_25 => p_source_25
72992          , x_transaction_coa_id       => l_adr_transaction_coa_id
72993          , x_accounting_coa_id        => l_adr_accounting_coa_id
72994          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72995          , x_flex_value_set_id        => l_adr_flex_value_set_id
72996          , x_value_type_code          => l_adr_value_type_code
72997          , x_value_combination_id     => l_adr_value_combination_id
72998          , x_value_segment_code       => l_adr_value_segment_code
73002 
72999          , p_side                     => 'CREDIT'
73000          , p_override_seg_flag        => 'Y'
73001    );
73003    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73004 
73005       xla_ae_lines_pkg.set_segment(
73006           p_to_segment_code         => 'GL_ACCOUNT'
73007         , p_segment_value           => l_segment
73008         , p_from_segment_code       => l_adr_value_segment_code
73009         , p_from_combination_id     => l_adr_value_combination_id
73010         , p_value_type_code         => l_adr_value_type_code
73011         , p_transaction_coa_id      => l_adr_transaction_coa_id
73012         , p_accounting_coa_id       => l_adr_accounting_coa_id
73013         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73014         , p_flex_value_set_id       => l_adr_flex_value_set_id
73015         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
73016         , p_adr_type_code           => 'S'
73017         , p_component_type          => l_component_type
73018         , p_component_code          => l_component_code
73019         , p_component_type_code     => l_component_type_code
73020         , p_component_appl_id       => l_component_appl_id
73021         , p_amb_context_code        => l_amb_context_code
73022         , p_entity_code             => 'AP_PAYMENTS'
73023         , p_event_class_code        => 'PAYMENTS'
73024         , p_side                    => 'CREDIT'
73025         );
73026 
73027   END IF;
73028 
73029    l_segment := AcctDerRule_17(
73030            p_application_id           => p_application_id
73031          , p_ae_header_id             => l_ae_header_id 
73032 , p_source_3 => p_source_3
73033 , p_source_3_meaning => p_source_3_meaning
73034 , p_source_26 => p_source_26
73035 , p_source_27 => p_source_27
73036          , x_transaction_coa_id       => l_adr_transaction_coa_id
73037          , x_accounting_coa_id        => l_adr_accounting_coa_id
73038          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73039          , x_flex_value_set_id        => l_adr_flex_value_set_id
73040          , x_value_type_code          => l_adr_value_type_code
73041          , x_value_combination_id     => l_adr_value_combination_id
73042          , x_value_segment_code       => l_adr_value_segment_code
73043          , p_side                     => 'DEBIT'
73044          , p_override_seg_flag        => 'Y'
73045    );
73046 
73047    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73048 
73049       xla_ae_lines_pkg.set_segment(
73050           p_to_segment_code         => 'GL_ACCOUNT'
73051         , p_segment_value           => l_segment
73052         , p_from_segment_code       => l_adr_value_segment_code
73053         , p_from_combination_id     => l_adr_value_combination_id
73054         , p_value_type_code         => l_adr_value_type_code
73055         , p_transaction_coa_id      => l_adr_transaction_coa_id
73056         , p_accounting_coa_id       => l_adr_accounting_coa_id
73057         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73058         , p_flex_value_set_id       => l_adr_flex_value_set_id
73059         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
73060         , p_adr_type_code           => 'S'
73061         , p_component_type          => l_component_type
73062         , p_component_code          => l_component_code
73063         , p_component_type_code     => l_component_type_code
73064         , p_component_appl_id       => l_component_appl_id
73065         , p_amb_context_code        => l_amb_context_code
73066         , p_entity_code             => 'AP_PAYMENTS'
73067         , p_event_class_code        => 'PAYMENTS'
73068         , p_side                    => 'DEBIT'
73069         );
73070 
73071   END IF;
73072 
73073    --
73074    --
73075    END IF;
73076 
73077        --
73078        -- Update the line information that should be overwritten
73079        --
73080        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
73081                                          p_header_num   => 1);
73082        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
73083 
73084        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
73085 
73086        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
73087           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
73088        END IF;
73089 
73090       --
73091       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
73092       --
73093       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
73094           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
73095       ELSE
73096           ---------------------------------------------------------------------------------------------------
73097           -- 4262811a Switch Sign
73098           ---------------------------------------------------------------------------------------------------
73099           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
73100           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73101                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73102           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73103                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73104           -- 5132302
73105           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
73109 
73106                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73107 
73108       END IF;
73110       -- 4955764
73111       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73112       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
73113 
73114 
73115       XLA_AE_LINES_PKG.ValidateCurrentLine;
73116       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73117 
73118       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73119                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
73120                ,p_balance_type_code => l_balance_type_code);
73121 
73122    END IF;
73123 
73124    -----------------------------------------------------------------------------------------
73125    -- 4262811 Multiperiod Accounting
73126    -----------------------------------------------------------------------------------------
73127      -- No MPA option is assigned.
73128 
73129 
73130 END IF;
73131 END IF;
73132 --
73133 
73134 --
73135 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73136    trace
73137       (p_msg      => 'END of AcctLineType_138'
73138       ,p_level    => C_LEVEL_PROCEDURE
73139       ,p_module   => l_log_module);
73140 END IF;
73141 --
73142 EXCEPTION
73143   WHEN xla_exceptions_pkg.application_exception THEN
73144       RAISE;
73145   WHEN OTHERS THEN
73146        xla_exceptions_pkg.raise_message
73147            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_138');
73148 END AcctLineType_138;
73149 --
73150 
73151 ---------------------------------------
73152 --
73153 -- PRIVATE FUNCTION
73154 --         AcctLineType_139
73155 --
73156 ---------------------------------------
73157 PROCEDURE AcctLineType_139 (
73158   p_application_id        IN NUMBER
73159  ,p_event_id              IN NUMBER
73160  ,p_calculate_acctd_flag  IN VARCHAR2
73161  ,p_calculate_g_l_flag    IN VARCHAR2
73162  ,p_actual_flag           IN OUT VARCHAR2
73163  ,p_balance_type_code     OUT VARCHAR2
73164  ,p_gain_or_loss_ref      OUT VARCHAR2
73165  
73166 --Automatic Offsets Value
73167  , p_source_3            IN VARCHAR2
73168  , p_source_3_meaning    IN VARCHAR2
73169 --Invoice Distribution Account
73170  , p_source_18            IN NUMBER
73171 --Internal Realized Gain Account
73172  , p_source_24            IN NUMBER
73173 --Bank Gain Account
73174  , p_source_25            IN NUMBER
73175 --Internal Realized Loss Account
73176  , p_source_26            IN NUMBER
73177 --Bank Loss Account
73178  , p_source_27            IN NUMBER
73179 --Accounting Reversal Indicator
73180  , p_source_41            IN VARCHAR2
73181 --Distribution Link Type
73182  , p_source_43            IN VARCHAR2
73183 --Override Accounted Amount Indicator
73184  , p_source_68            IN VARCHAR2
73185  , p_source_68_meaning    IN VARCHAR2
73186 --Third Party Type
73187  , p_source_71            IN VARCHAR2
73188 --Business Flow Accounts Payable Application Identifier
73189  , p_source_79            IN NUMBER
73190 --When to Account for Payment Option
73191  , p_source_89            IN VARCHAR2
73192 --Payment Distribution Type
73193  , p_source_90            IN VARCHAR2
73194  , p_source_90_meaning    IN VARCHAR2
73195 --Business Flow Payment Distribution Type
73196  , p_source_92            IN VARCHAR2
73197 --Business Flow Payment Entity Code
73198  , p_source_93            IN VARCHAR2
73199 --Business Flow Payment Distribution Identifier
73200  , p_source_94            IN NUMBER
73201 --Business Flow Payment Identifier
73202  , p_source_95            IN NUMBER
73203 --Payment Distribution Identifier
73204  , p_source_96            IN NUMBER
73205 --Payment Supplier Identifier
73206  , p_source_102            IN NUMBER
73207 --Payment Supplier Site Identifier
73208  , p_source_103            IN NUMBER
73209 --Payment Distribution Reversed Identifier
73210  , p_source_104            IN NUMBER
73211 --Payment Maturity Date
73212  , p_source_107            IN DATE
73213 --Payment/Maturity Ledger Amount Difference
73214  , p_source_149            IN NUMBER
73215 )
73216 IS
73217 
73218 l_component_type              VARCHAR2(80);
73219 l_component_code              VARCHAR2(30);
73220 l_component_type_code         VARCHAR2(1);
73221 l_component_appl_id           INTEGER;
73222 l_amb_context_code            VARCHAR2(30);
73223 l_entity_code                 VARCHAR2(30);
73224 l_event_class_code            VARCHAR2(30);
73225 l_ae_header_id                NUMBER;
73226 l_event_type_code             VARCHAR2(30);
73227 l_line_definition_code        VARCHAR2(30);
73228 l_line_definition_owner_code  VARCHAR2(1);
73229 --
73230 -- adr variables
73231 l_segment                     VARCHAR2(30);
73232 l_ccid                        NUMBER;
73233 l_adr_transaction_coa_id      NUMBER;
73234 l_adr_accounting_coa_id       NUMBER;
73235 l_adr_flexfield_segment_code  VARCHAR2(30);
73236 l_adr_flex_value_set_id       NUMBER;
73237 l_adr_value_type_code         VARCHAR2(30);
73238 l_adr_value_combination_id    NUMBER;
73239 l_adr_value_segment_code      VARCHAR2(30);
73240 
73241 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
73242 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
73243 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
73244 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
73245 
73249 l_acc_rev_flag                VARCHAR2(1);
73246 -- 4262811 Variables ------------------------------------------------------------------------------------------
73247 l_entered_amt_idx             NUMBER;
73248 l_accted_amt_idx              NUMBER;
73250 l_accrual_line_num            NUMBER;
73251 l_tmp_amt                     NUMBER;
73252 l_acc_rev_natural_side_code   VARCHAR2(1);
73253 
73254 l_num_entries                 NUMBER;
73255 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
73256 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
73257 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
73258 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
73259 l_recog_line_1                NUMBER;
73260 l_recog_line_2                NUMBER;
73261 
73262 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
73263 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
73264 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
73265 
73266 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
73267 
73268 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
73269 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
73270 
73271 ---------------------------------------------------------------------------------------------------------------
73272 
73273 
73274 --
73275 -- bulk performance
73276 --
73277 l_balance_type_code           VARCHAR2(1);
73278 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
73279 l_log_module                  VARCHAR2(240);
73280 
73281 --
73282 -- Upgrade strategy
73283 --
73284 l_actual_upg_option           VARCHAR2(1);
73285 l_enc_upg_option           VARCHAR2(1);
73286 
73287 --
73288 BEGIN
73289 --
73290 IF g_log_enabled THEN
73291       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_139';
73292 END IF;
73293 --
73294 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73295 
73296       trace
73297          (p_msg      => 'BEGIN of AcctLineType_139'
73298          ,p_level    => C_LEVEL_PROCEDURE
73299          ,p_module   => l_log_module);
73300 
73301 END IF;
73302 --
73303 l_component_type             := 'AMB_JLT';
73304 l_component_code             := 'AP_GAIN_LOSS_PMT_MAT';
73305 l_component_type_code        := 'S';
73306 l_component_appl_id          :=  200;
73307 l_amb_context_code           := 'DEFAULT';
73308 l_entity_code                := 'AP_PAYMENTS';
73309 l_event_class_code           := 'FUTURE DATED PAYMENTS';
73310 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
73311 l_line_definition_owner_code := 'S';
73312 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
73313 --
73314 l_balance_type_code          := 'A';
73315 l_segment                     := NULL;
73316 l_ccid                        := NULL;
73317 l_adr_transaction_coa_id      := NULL;
73318 l_adr_accounting_coa_id       := NULL;
73319 l_adr_flexfield_segment_code  := NULL;
73320 l_adr_flex_value_set_id       := NULL;
73321 l_adr_value_type_code         := NULL;
73322 l_adr_value_combination_id    := NULL;
73323 l_adr_value_segment_code      := NULL;
73324 
73325 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
73326 l_bflow_class_code           := '';    -- 4219869 Business Flow
73327 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
73328 l_budgetary_control_flag     := 'N';
73329 
73330 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
73331 l_bflow_applied_to_amt       := NULL; -- 5132302
73332 l_entered_amt_idx            := NULL;          -- 4262811
73333 l_accted_amt_idx             := NULL;          -- 4262811
73334 l_acc_rev_flag               := NULL;          -- 4262811
73335 l_accrual_line_num           := NULL;          -- 4262811
73336 l_tmp_amt                    := NULL;          -- 4262811
73337 --
73338 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
73339             (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
73340                return;
73341   END IF;
73342   
73343 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
73344     l_balance_type_code <> 'B' THEN
73345 IF (NVL(p_source_89,'
73346 ') =  'ALWAYS_ALWAYS' OR 
73347 NVL(p_source_89,'
73348 ') =  'ALWAYS_ISSUE') AND 
73349 p_source_107 IS NOT NULL AND 
73350 NVL(p_source_90,'
73351 ') <>  'EXCHANGE RATE VARIANCE' AND 
73352 NVL(p_source_90,'
73353 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
73354 NVL(p_source_90,'
73355 ') <>  'BANK CHARGE' AND 
73356 NVL(p_source_90,'
73357 ') <>  'BANK ERROR'
73358  THEN 
73359 
73360    --
73361    XLA_AE_LINES_PKG.SetNewLine;
73362 
73363    p_balance_type_code          := l_balance_type_code;
73364    -- set the flag so later we will know whether the gain loss line needs to be created
73365    
73366    IF(l_balance_type_code = 'A' ) THEN
73367      p_actual_flag :='G';
73368    END IF;
73369 
73370    --
73371    -- bulk performance
73372    --
73373    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
73374                                       p_header_num   => 0); -- 4262811
73375    --
73376    -- set accounting line options
73377    --
73378    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
73382          , p_acct_entry_type_code       => 'A'
73379            p_natural_side_code          => 'G'
73380          , p_gain_or_loss_flag          => 'N'
73381          , p_gl_transfer_mode_code      => 'S'
73383          , p_switch_side_flag           => ''
73384          , p_merge_duplicate_code       => 'A'
73385          );
73386    --
73387    l_acc_rev_natural_side_code := 'C';  -- 4262811
73388    -- 
73389    --
73390    -- set accounting line type info
73391    --
73392    xla_ae_lines_pkg.SetAcctLineType
73393       (p_component_type             => l_component_type
73394       ,p_event_type_code            => l_event_type_code
73395       ,p_line_definition_owner_code => l_line_definition_owner_code
73396       ,p_line_definition_code       => l_line_definition_code
73397       ,p_accounting_line_code       => l_component_code
73398       ,p_accounting_line_type_code  => l_component_type_code
73399       ,p_accounting_line_appl_id    => l_component_appl_id
73400       ,p_amb_context_code           => l_amb_context_code
73401       ,p_entity_code                => l_entity_code
73402       ,p_event_class_code           => l_event_class_code);
73403    --
73404    -- set accounting class
73405    --
73406    xla_ae_lines_pkg.SetAcctClass(
73407            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
73408          , p_ae_header_id           => l_ae_header_id
73409          );
73410 
73411    --
73412    -- set rounding class
73413    --
73414    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
73415                       'EXCHANGE_GAIN_LOSS';
73416 
73417    --
73418    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
73419    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
73420    --
73421    -- bulk performance
73422    --
73423    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
73424 
73425    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
73426       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
73427 
73428    -- 4955764
73429    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73430       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
73431 
73432    -- 4458381 Public Sector Enh
73433    
73434    --
73435    -- set accounting attributes for the line type
73436    --
73437    l_entered_amt_idx := NULL;
73438    l_accted_amt_idx  := 9;
73439    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
73440    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
73441    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
73442    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
73443    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
73444    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
73445    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
73446    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
73447    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
73448    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
73449    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
73450    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
73451    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
73452    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
73453    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
73454    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
73455    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
73456    l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
73457    l_rec_acct_attrs.array_num_value(9)  := p_source_149;
73458    l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
73459    l_rec_acct_attrs.array_char_value(10)  := p_source_68;
73460    l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
73461    l_rec_acct_attrs.array_num_value(11)  := p_source_102;
73462    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
73463    l_rec_acct_attrs.array_num_value(12)  := p_source_103;
73464    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
73465    l_rec_acct_attrs.array_char_value(13)  := p_source_71;
73466    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
73467    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_104);
73468    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
73469    l_rec_acct_attrs.array_char_value(15)  := p_source_43;
73470 
73471    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
73472    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
73473 
73474    ---------------------------------------------------------------------------------------------------------------
73475    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
73476    ---------------------------------------------------------------------------------------------------------------
73477    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
73478 
73479    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73480    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73481 
73482    IF xla_accounting_cache_pkg.GetValueChar
73483          (p_source_code         => 'LEDGER_CATEGORY_CODE'
73487    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
73484          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
73485    AND l_bflow_method_code = 'PRIOR_ENTRY'
73486 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
73488          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
73489        )
73490    THEN
73491          xla_ae_lines_pkg.BflowUpgEntry
73492            (p_business_method_code    => l_bflow_method_code
73493            ,p_business_class_code     => l_bflow_class_code
73494            ,p_balance_type            => l_balance_type_code);
73495    ELSE
73496       NULL;
73497 -- No business flow processing for business flow method of NONE.
73498    END IF;
73499 
73500    --
73501    -- call analytical criteria
73502    --
73503    
73504    --
73505    -- call description
73506    --
73507    -- No description or it is inherited.
73508    --
73509    -- call ADRs
73510    -- Bug 4922099
73511    --
73512    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73513         (NVL(l_actual_upg_option, 'N') = 'O') OR
73514         (NVL(l_enc_upg_option, 'N') = 'O')
73515       )
73516    THEN
73517    NULL;
73518    --
73519    --
73520    
73521   l_ccid := AcctDerRule_37(
73522            p_application_id           => p_application_id
73523          , p_ae_header_id             => l_ae_header_id 
73524 , p_source_3 => p_source_3
73525 , p_source_3_meaning => p_source_3_meaning
73526 , p_source_18 => p_source_18
73527 , p_source_24 => p_source_24
73528 , p_source_25 => p_source_25
73529          , x_transaction_coa_id       => l_adr_transaction_coa_id
73530          , x_accounting_coa_id        => l_adr_accounting_coa_id
73531          , x_value_type_code          => l_adr_value_type_code
73532          , p_side                     => 'CREDIT'
73533    );
73534 
73535    xla_ae_lines_pkg.set_ccid(
73536     p_code_combination_id          => l_ccid
73537   , p_value_type_code              => l_adr_value_type_code
73538   , p_transaction_coa_id           => l_adr_transaction_coa_id
73539   , p_accounting_coa_id            => l_adr_accounting_coa_id
73540   , p_adr_code                     => 'AP_REAL_GAIN'
73541   , p_adr_type_code                => 'S'
73542   , p_component_type               => l_component_type
73543   , p_component_code               => l_component_code
73544   , p_component_type_code          => l_component_type_code
73545   , p_component_appl_id            => l_component_appl_id
73546   , p_amb_context_code             => l_amb_context_code
73547   , p_side                         => 'CREDIT'
73548   );
73549 
73550 
73551   l_ccid := AcctDerRule_38(
73552            p_application_id           => p_application_id
73553          , p_ae_header_id             => l_ae_header_id 
73554 , p_source_3 => p_source_3
73555 , p_source_3_meaning => p_source_3_meaning
73556 , p_source_18 => p_source_18
73557 , p_source_26 => p_source_26
73558 , p_source_27 => p_source_27
73559          , x_transaction_coa_id       => l_adr_transaction_coa_id
73560          , x_accounting_coa_id        => l_adr_accounting_coa_id
73561          , x_value_type_code          => l_adr_value_type_code
73562          , p_side                     => 'DEBIT'
73563    );
73564 
73565    xla_ae_lines_pkg.set_ccid(
73566     p_code_combination_id          => l_ccid
73567   , p_value_type_code              => l_adr_value_type_code
73568   , p_transaction_coa_id           => l_adr_transaction_coa_id
73569   , p_accounting_coa_id            => l_adr_accounting_coa_id
73570   , p_adr_code                     => 'AP_REAL_LOSS'
73571   , p_adr_type_code                => 'S'
73572   , p_component_type               => l_component_type
73573   , p_component_code               => l_component_code
73574   , p_component_type_code          => l_component_type_code
73575   , p_component_appl_id            => l_component_appl_id
73576   , p_amb_context_code             => l_amb_context_code
73577   , p_side                         => 'DEBIT'
73578   );
73579 
73580 
73581    l_segment := AcctDerRule_21(
73582            p_application_id           => p_application_id
73583          , p_ae_header_id             => l_ae_header_id 
73584 , p_source_3 => p_source_3
73585 , p_source_3_meaning => p_source_3_meaning
73586 , p_source_18 => p_source_18
73587          , x_transaction_coa_id       => l_adr_transaction_coa_id
73588          , x_accounting_coa_id        => l_adr_accounting_coa_id
73589          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73590          , x_flex_value_set_id        => l_adr_flex_value_set_id
73591          , x_value_type_code          => l_adr_value_type_code
73592          , x_value_combination_id     => l_adr_value_combination_id
73593          , x_value_segment_code       => l_adr_value_segment_code
73594          , p_side                     => 'ALL'
73595          , p_override_seg_flag        => 'Y'
73596    );
73597 
73598    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73599 
73600       xla_ae_lines_pkg.set_segment(
73601           p_to_segment_code         => 'GL_BALANCING'
73602         , p_segment_value           => l_segment
73603         , p_from_segment_code       => l_adr_value_segment_code
73604         , p_from_combination_id     => l_adr_value_combination_id
73605         , p_value_type_code         => l_adr_value_type_code
73606         , p_transaction_coa_id      => l_adr_transaction_coa_id
73607         , p_accounting_coa_id       => l_adr_accounting_coa_id
73608         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73609         , p_flex_value_set_id       => l_adr_flex_value_set_id
73610         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
73611         , p_adr_type_code           => 'S'
73615         , p_component_appl_id       => l_component_appl_id
73612         , p_component_type          => l_component_type
73613         , p_component_code          => l_component_code
73614         , p_component_type_code     => l_component_type_code
73616         , p_amb_context_code        => l_amb_context_code
73617         , p_entity_code             => 'AP_PAYMENTS'
73618         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
73619         , p_side                    => 'ALL'
73620         );
73621 
73622   END IF;
73623 
73624    l_segment := AcctDerRule_16(
73625            p_application_id           => p_application_id
73626          , p_ae_header_id             => l_ae_header_id 
73627 , p_source_3 => p_source_3
73628 , p_source_3_meaning => p_source_3_meaning
73629 , p_source_24 => p_source_24
73630 , p_source_25 => p_source_25
73631          , x_transaction_coa_id       => l_adr_transaction_coa_id
73632          , x_accounting_coa_id        => l_adr_accounting_coa_id
73633          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73634          , x_flex_value_set_id        => l_adr_flex_value_set_id
73635          , x_value_type_code          => l_adr_value_type_code
73636          , x_value_combination_id     => l_adr_value_combination_id
73637          , x_value_segment_code       => l_adr_value_segment_code
73638          , p_side                     => 'CREDIT'
73639          , p_override_seg_flag        => 'Y'
73640    );
73641 
73642    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73643 
73644       xla_ae_lines_pkg.set_segment(
73645           p_to_segment_code         => 'GL_ACCOUNT'
73646         , p_segment_value           => l_segment
73647         , p_from_segment_code       => l_adr_value_segment_code
73648         , p_from_combination_id     => l_adr_value_combination_id
73649         , p_value_type_code         => l_adr_value_type_code
73650         , p_transaction_coa_id      => l_adr_transaction_coa_id
73651         , p_accounting_coa_id       => l_adr_accounting_coa_id
73652         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73653         , p_flex_value_set_id       => l_adr_flex_value_set_id
73654         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
73655         , p_adr_type_code           => 'S'
73656         , p_component_type          => l_component_type
73657         , p_component_code          => l_component_code
73658         , p_component_type_code     => l_component_type_code
73659         , p_component_appl_id       => l_component_appl_id
73660         , p_amb_context_code        => l_amb_context_code
73661         , p_entity_code             => 'AP_PAYMENTS'
73662         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
73663         , p_side                    => 'CREDIT'
73664         );
73665 
73666   END IF;
73667 
73668    l_segment := AcctDerRule_17(
73669            p_application_id           => p_application_id
73670          , p_ae_header_id             => l_ae_header_id 
73671 , p_source_3 => p_source_3
73672 , p_source_3_meaning => p_source_3_meaning
73673 , p_source_26 => p_source_26
73674 , p_source_27 => p_source_27
73675          , x_transaction_coa_id       => l_adr_transaction_coa_id
73676          , x_accounting_coa_id        => l_adr_accounting_coa_id
73677          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73678          , x_flex_value_set_id        => l_adr_flex_value_set_id
73679          , x_value_type_code          => l_adr_value_type_code
73680          , x_value_combination_id     => l_adr_value_combination_id
73681          , x_value_segment_code       => l_adr_value_segment_code
73682          , p_side                     => 'DEBIT'
73683          , p_override_seg_flag        => 'Y'
73684    );
73685 
73686    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73687 
73688       xla_ae_lines_pkg.set_segment(
73689           p_to_segment_code         => 'GL_ACCOUNT'
73690         , p_segment_value           => l_segment
73691         , p_from_segment_code       => l_adr_value_segment_code
73692         , p_from_combination_id     => l_adr_value_combination_id
73693         , p_value_type_code         => l_adr_value_type_code
73694         , p_transaction_coa_id      => l_adr_transaction_coa_id
73695         , p_accounting_coa_id       => l_adr_accounting_coa_id
73696         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73697         , p_flex_value_set_id       => l_adr_flex_value_set_id
73698         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
73699         , p_adr_type_code           => 'S'
73700         , p_component_type          => l_component_type
73701         , p_component_code          => l_component_code
73702         , p_component_type_code     => l_component_type_code
73703         , p_component_appl_id       => l_component_appl_id
73704         , p_amb_context_code        => l_amb_context_code
73705         , p_entity_code             => 'AP_PAYMENTS'
73706         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
73707         , p_side                    => 'DEBIT'
73708         );
73709 
73710   END IF;
73711 
73712    --
73713    --
73714    END IF;
73715    --
73716    -- Bug 4922099
73717    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
73718           (NVL(l_enc_upg_option, 'N') = 'O')
73719         ) AND
73720         (l_bflow_method_code = 'PRIOR_ENTRY')
73721       )
73722    THEN
73723       IF
73724       --
73725       1 = 2
73726       --
73727       THEN
73728       xla_accounting_err_pkg.build_message
73729                                     (p_appli_s_name            => 'XLA'
73730                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73731                                     ,p_token_1                 => 'LINE_NUMBER'
73735                                                                              l_component_type
73732                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
73733                                     ,p_token_2                 => 'LINE_TYPE_NAME'
73734                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
73736                                                                             ,l_component_code
73737                                                                             ,l_component_type_code
73738                                                                             ,l_component_appl_id
73739                                                                             ,l_amb_context_code
73740                                                                             ,l_entity_code
73741                                                                             ,l_event_class_code
73742                                                                            )
73743                                     ,p_token_3                 => 'OWNER'
73744                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
73745                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
73746                                                                           ,p_lookup_code    => l_component_type_code
73747                                                                          )
73748                                     ,p_token_4                 => 'PRODUCT_NAME'
73749                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
73750                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
73751                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
73752                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
73753                                     ,p_ae_header_id            =>  NULL
73754                                        );
73755 
73756         IF (C_LEVEL_ERROR>= g_log_level) THEN
73757                  trace
73758                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73759                       ,p_level    => C_LEVEL_ERROR
73760                       ,p_module   => l_log_module);
73761         END IF;
73762       END IF;
73763    END IF;
73764    --
73765    --
73766    ------------------------------------------------------------------------------------------------
73767    -- 4219869 Business Flow
73768    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
73769    -- Prior Entry.  Currently, the following code is always generated.
73770    ------------------------------------------------------------------------------------------------
73771    XLA_AE_LINES_PKG.ValidateCurrentLine;
73772 
73773    ------------------------------------------------------------------------------------
73774    -- 4219869 Business Flow
73775    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
73776    ------------------------------------------------------------------------------------
73777    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73778 
73779    ----------------------------------------------------------------------------------
73780    -- 4219869 Business Flow
73781    -- Update journal entry status -- Need to generate this within IF <condition>
73782    ----------------------------------------------------------------------------------
73783    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73784          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
73785          ,p_balance_type_code => l_balance_type_code
73786          );
73787 
73788    -------------------------------------------------------------------------------------------
73789    -- 4262811 - Generate the Accrual Reversal lines
73790    -------------------------------------------------------------------------------------------
73791    BEGIN
73792       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
73793                               (g_array_event(p_event_id).array_value_num('header_index'));
73794       IF l_acc_rev_flag IS NULL THEN
73795          l_acc_rev_flag := 'N';
73796       END IF;
73797    EXCEPTION
73798       WHEN OTHERS THEN
73799          l_acc_rev_flag := 'N';
73800    END;
73801    --
73802    IF (l_acc_rev_flag = 'Y') THEN
73803 
73804        -- 4645092  ------------------------------------------------------------------------------
73805        -- To allow MPA report to determine if it should generate report process
73806        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
73807        ------------------------------------------------------------------------------------------
73808 
73809        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
73810        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
73811    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
73812    -- call ADRs
73813    -- Bug 4922099
73814    --
73815    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73816         (NVL(l_actual_upg_option, 'N') = 'O') OR
73817         (NVL(l_enc_upg_option, 'N') = 'O')
73818       )
73819    THEN
73820    NULL;
73821    --
73822    --
73823    
73824   l_ccid := AcctDerRule_37(
73825            p_application_id           => p_application_id
73826          , p_ae_header_id             => l_ae_header_id 
73827 , p_source_3 => p_source_3
73828 , p_source_3_meaning => p_source_3_meaning
73829 , p_source_18 => p_source_18
73830 , p_source_24 => p_source_24
73831 , p_source_25 => p_source_25
73832          , x_transaction_coa_id       => l_adr_transaction_coa_id
73836    );
73833          , x_accounting_coa_id        => l_adr_accounting_coa_id
73834          , x_value_type_code          => l_adr_value_type_code
73835          , p_side                     => 'CREDIT'
73837 
73838    xla_ae_lines_pkg.set_ccid(
73839     p_code_combination_id          => l_ccid
73840   , p_value_type_code              => l_adr_value_type_code
73841   , p_transaction_coa_id           => l_adr_transaction_coa_id
73842   , p_accounting_coa_id            => l_adr_accounting_coa_id
73843   , p_adr_code                     => 'AP_REAL_GAIN'
73844   , p_adr_type_code                => 'S'
73845   , p_component_type               => l_component_type
73846   , p_component_code               => l_component_code
73847   , p_component_type_code          => l_component_type_code
73848   , p_component_appl_id            => l_component_appl_id
73849   , p_amb_context_code             => l_amb_context_code
73850   , p_side                         => 'CREDIT'
73851   );
73852 
73853 
73854   l_ccid := AcctDerRule_38(
73855            p_application_id           => p_application_id
73856          , p_ae_header_id             => l_ae_header_id 
73857 , p_source_3 => p_source_3
73858 , p_source_3_meaning => p_source_3_meaning
73859 , p_source_18 => p_source_18
73860 , p_source_26 => p_source_26
73861 , p_source_27 => p_source_27
73862          , x_transaction_coa_id       => l_adr_transaction_coa_id
73863          , x_accounting_coa_id        => l_adr_accounting_coa_id
73864          , x_value_type_code          => l_adr_value_type_code
73865          , p_side                     => 'DEBIT'
73866    );
73867 
73868    xla_ae_lines_pkg.set_ccid(
73869     p_code_combination_id          => l_ccid
73870   , p_value_type_code              => l_adr_value_type_code
73871   , p_transaction_coa_id           => l_adr_transaction_coa_id
73872   , p_accounting_coa_id            => l_adr_accounting_coa_id
73873   , p_adr_code                     => 'AP_REAL_LOSS'
73874   , p_adr_type_code                => 'S'
73875   , p_component_type               => l_component_type
73876   , p_component_code               => l_component_code
73877   , p_component_type_code          => l_component_type_code
73878   , p_component_appl_id            => l_component_appl_id
73879   , p_amb_context_code             => l_amb_context_code
73880   , p_side                         => 'DEBIT'
73881   );
73882 
73883 
73884    l_segment := AcctDerRule_21(
73885            p_application_id           => p_application_id
73886          , p_ae_header_id             => l_ae_header_id 
73887 , p_source_3 => p_source_3
73888 , p_source_3_meaning => p_source_3_meaning
73889 , p_source_18 => p_source_18
73890          , x_transaction_coa_id       => l_adr_transaction_coa_id
73891          , x_accounting_coa_id        => l_adr_accounting_coa_id
73892          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73893          , x_flex_value_set_id        => l_adr_flex_value_set_id
73894          , x_value_type_code          => l_adr_value_type_code
73895          , x_value_combination_id     => l_adr_value_combination_id
73896          , x_value_segment_code       => l_adr_value_segment_code
73897          , p_side                     => 'ALL'
73898          , p_override_seg_flag        => 'Y'
73899    );
73900 
73901    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73902 
73903       xla_ae_lines_pkg.set_segment(
73904           p_to_segment_code         => 'GL_BALANCING'
73905         , p_segment_value           => l_segment
73906         , p_from_segment_code       => l_adr_value_segment_code
73907         , p_from_combination_id     => l_adr_value_combination_id
73908         , p_value_type_code         => l_adr_value_type_code
73909         , p_transaction_coa_id      => l_adr_transaction_coa_id
73910         , p_accounting_coa_id       => l_adr_accounting_coa_id
73911         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73912         , p_flex_value_set_id       => l_adr_flex_value_set_id
73913         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
73914         , p_adr_type_code           => 'S'
73915         , p_component_type          => l_component_type
73916         , p_component_code          => l_component_code
73917         , p_component_type_code     => l_component_type_code
73918         , p_component_appl_id       => l_component_appl_id
73919         , p_amb_context_code        => l_amb_context_code
73920         , p_entity_code             => 'AP_PAYMENTS'
73921         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
73922         , p_side                    => 'ALL'
73923         );
73924 
73925   END IF;
73926 
73927    l_segment := AcctDerRule_16(
73928            p_application_id           => p_application_id
73929          , p_ae_header_id             => l_ae_header_id 
73930 , p_source_3 => p_source_3
73931 , p_source_3_meaning => p_source_3_meaning
73932 , p_source_24 => p_source_24
73933 , p_source_25 => p_source_25
73934          , x_transaction_coa_id       => l_adr_transaction_coa_id
73935          , x_accounting_coa_id        => l_adr_accounting_coa_id
73936          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73937          , x_flex_value_set_id        => l_adr_flex_value_set_id
73938          , x_value_type_code          => l_adr_value_type_code
73939          , x_value_combination_id     => l_adr_value_combination_id
73940          , x_value_segment_code       => l_adr_value_segment_code
73941          , p_side                     => 'CREDIT'
73942          , p_override_seg_flag        => 'Y'
73943    );
73944 
73945    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73946 
73947       xla_ae_lines_pkg.set_segment(
73948           p_to_segment_code         => 'GL_ACCOUNT'
73949         , p_segment_value           => l_segment
73950         , p_from_segment_code       => l_adr_value_segment_code
73954         , p_accounting_coa_id       => l_adr_accounting_coa_id
73951         , p_from_combination_id     => l_adr_value_combination_id
73952         , p_value_type_code         => l_adr_value_type_code
73953         , p_transaction_coa_id      => l_adr_transaction_coa_id
73955         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73956         , p_flex_value_set_id       => l_adr_flex_value_set_id
73957         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
73958         , p_adr_type_code           => 'S'
73959         , p_component_type          => l_component_type
73960         , p_component_code          => l_component_code
73961         , p_component_type_code     => l_component_type_code
73962         , p_component_appl_id       => l_component_appl_id
73963         , p_amb_context_code        => l_amb_context_code
73964         , p_entity_code             => 'AP_PAYMENTS'
73965         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
73966         , p_side                    => 'CREDIT'
73967         );
73968 
73969   END IF;
73970 
73971    l_segment := AcctDerRule_17(
73972            p_application_id           => p_application_id
73973          , p_ae_header_id             => l_ae_header_id 
73974 , p_source_3 => p_source_3
73975 , p_source_3_meaning => p_source_3_meaning
73976 , p_source_26 => p_source_26
73977 , p_source_27 => p_source_27
73978          , x_transaction_coa_id       => l_adr_transaction_coa_id
73979          , x_accounting_coa_id        => l_adr_accounting_coa_id
73980          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73981          , x_flex_value_set_id        => l_adr_flex_value_set_id
73982          , x_value_type_code          => l_adr_value_type_code
73983          , x_value_combination_id     => l_adr_value_combination_id
73984          , x_value_segment_code       => l_adr_value_segment_code
73985          , p_side                     => 'DEBIT'
73986          , p_override_seg_flag        => 'Y'
73987    );
73988 
73989    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73990 
73991       xla_ae_lines_pkg.set_segment(
73992           p_to_segment_code         => 'GL_ACCOUNT'
73993         , p_segment_value           => l_segment
73994         , p_from_segment_code       => l_adr_value_segment_code
73995         , p_from_combination_id     => l_adr_value_combination_id
73996         , p_value_type_code         => l_adr_value_type_code
73997         , p_transaction_coa_id      => l_adr_transaction_coa_id
73998         , p_accounting_coa_id       => l_adr_accounting_coa_id
73999         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74000         , p_flex_value_set_id       => l_adr_flex_value_set_id
74001         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
74002         , p_adr_type_code           => 'S'
74003         , p_component_type          => l_component_type
74004         , p_component_code          => l_component_code
74005         , p_component_type_code     => l_component_type_code
74006         , p_component_appl_id       => l_component_appl_id
74007         , p_amb_context_code        => l_amb_context_code
74008         , p_entity_code             => 'AP_PAYMENTS'
74009         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
74010         , p_side                    => 'DEBIT'
74011         );
74012 
74013   END IF;
74014 
74015    --
74016    --
74017    END IF;
74018 
74019        --
74020        -- Update the line information that should be overwritten
74021        --
74022        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
74023                                          p_header_num   => 1);
74024        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
74025 
74026        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
74027 
74028        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
74029           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
74030        END IF;
74031 
74032       --
74033       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
74034       --
74035       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
74036           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
74037       ELSE
74038           ---------------------------------------------------------------------------------------------------
74039           -- 4262811a Switch Sign
74040           ---------------------------------------------------------------------------------------------------
74041           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
74042           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74043                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74044           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74045                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74046           -- 5132302
74047           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
74048                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74049 
74050       END IF;
74051 
74052       -- 4955764
74053       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74054       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
74055 
74056 
74057       XLA_AE_LINES_PKG.ValidateCurrentLine;
74058       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74059 
74063 
74060       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74061                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
74062                ,p_balance_type_code => l_balance_type_code);
74064    END IF;
74065 
74066    -----------------------------------------------------------------------------------------
74067    -- 4262811 Multiperiod Accounting
74068    -----------------------------------------------------------------------------------------
74069      -- No MPA option is assigned.
74070 
74071 
74072 END IF;
74073 END IF;
74074 --
74075 
74076 --
74077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74078    trace
74079       (p_msg      => 'END of AcctLineType_139'
74080       ,p_level    => C_LEVEL_PROCEDURE
74081       ,p_module   => l_log_module);
74082 END IF;
74083 --
74084 EXCEPTION
74085   WHEN xla_exceptions_pkg.application_exception THEN
74086       RAISE;
74087   WHEN OTHERS THEN
74088        xla_exceptions_pkg.raise_message
74089            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_139');
74090 END AcctLineType_139;
74091 --
74092 
74093 ---------------------------------------
74094 --
74095 -- PRIVATE FUNCTION
74096 --         AcctLineType_140
74097 --
74098 ---------------------------------------
74099 PROCEDURE AcctLineType_140 (
74100   p_application_id        IN NUMBER
74101  ,p_event_id              IN NUMBER
74102  ,p_calculate_acctd_flag  IN VARCHAR2
74103  ,p_calculate_g_l_flag    IN VARCHAR2
74104  ,p_actual_flag           IN OUT VARCHAR2
74105  ,p_balance_type_code     OUT VARCHAR2
74106  ,p_gain_or_loss_ref      OUT VARCHAR2
74107  
74108 --Automatic Offsets Value
74109  , p_source_3            IN VARCHAR2
74110  , p_source_3_meaning    IN VARCHAR2
74111 --Invoice Distribution Account
74112  , p_source_18            IN NUMBER
74113 --Internal Realized Gain Account
74114  , p_source_24            IN NUMBER
74115 --Bank Gain Account
74116  , p_source_25            IN NUMBER
74117 --Internal Realized Loss Account
74118  , p_source_26            IN NUMBER
74119 --Bank Loss Account
74120  , p_source_27            IN NUMBER
74121 --Accounting Reversal Indicator
74122  , p_source_41            IN VARCHAR2
74123 --Distribution Link Type
74124  , p_source_43            IN VARCHAR2
74125 --Invoice Identifier
74126  , p_source_46            IN NUMBER
74127 --Payables Encumbrance Upgrade Credit Account
74128  , p_source_53            IN NUMBER
74129 --Payables Encumbrance Upgrade Credit Amount
74130  , p_source_54            IN NUMBER
74131 --Invoice Currency Code
74132  , p_source_55            IN VARCHAR2
74133 --Payables Encumbrance Upgrade Credit Base Amount
74134  , p_source_56            IN NUMBER
74135 --Payables Encumbrance Upgrade Debit Account
74136  , p_source_57            IN NUMBER
74137 --Payables Encumbrance Upgrade Debit Amount
74138  , p_source_58            IN NUMBER
74139 --Payables Encumbrance Upgrade Debit Base Amount
74140  , p_source_59            IN NUMBER
74141 --Payables Encumbrance Upgrade Option
74142  , p_source_60            IN VARCHAR2
74143 --Deferred Accounting End Date
74144  , p_source_65            IN DATE
74145 --Deferred Accounting Option
74146  , p_source_66            IN VARCHAR2
74147 --Deferred Accounting Start Date
74148  , p_source_67            IN DATE
74149 --Override Accounted Amount Indicator
74150  , p_source_68            IN VARCHAR2
74151  , p_source_68_meaning    IN VARCHAR2
74152 --Invoice Supplier Identifier
74153  , p_source_69            IN NUMBER
74154 --Invoice Supplier Site Identifier
74155  , p_source_70            IN NUMBER
74156 --Third Party Type
74157  , p_source_71            IN VARCHAR2
74158 --Invoice Distribution Tax Line Identifier
74159  , p_source_74            IN NUMBER
74160 --Invoice Distribution Tax Distribution Identifier from Tax
74161  , p_source_75            IN NUMBER
74162 --Invoice Distribution Summary Tax Line Identifier
74163  , p_source_76            IN NUMBER
74164 --Payables Upgrade Credit Encumbrance Type Identifier
74165  , p_source_77            IN NUMBER
74166 --Payables Upgrade Debit Encumbrance Type Identifier
74167  , p_source_78            IN NUMBER
74168 --Business Flow Accounts Payable Application Identifier
74169  , p_source_79            IN NUMBER
74170 --Prepayment Distribution Type
74171  , p_source_118            IN VARCHAR2
74172 --Prepayment Application Distribution Identifier
74173  , p_source_120            IN NUMBER
74174 --Upgrade Encumbrance Credit Account Class
74175  , p_source_125            IN VARCHAR2
74176 --Upgrade Encumbrance Debit Account Class
74177  , p_source_126            IN VARCHAR2
74178 --Identifier of the Prepayment Application Reversed
74179  , p_source_129            IN NUMBER
74180 --Business Flow Prepayment Invoice Distribution Type
74181  , p_source_139            IN VARCHAR2
74182 --Business Flow Prepayment Invoice Entity Code
74183  , p_source_140            IN VARCHAR2
74184 --Business Flow Prepayment Invoice Distribution Identifier
74185  , p_source_141            IN NUMBER
74186 --Business Flow Prepayment Invoice Identifier
74187  , p_source_142            IN NUMBER
74188 --Prepayment/Invoice Ledger Amount Difference
74189  , p_source_150            IN NUMBER
74190 )
74191 IS
74192 
74193 l_component_type              VARCHAR2(80);
74194 l_component_code              VARCHAR2(30);
74195 l_component_type_code         VARCHAR2(1);
74196 l_component_appl_id           INTEGER;
74197 l_amb_context_code            VARCHAR2(30);
74201 l_event_type_code             VARCHAR2(30);
74198 l_entity_code                 VARCHAR2(30);
74199 l_event_class_code            VARCHAR2(30);
74200 l_ae_header_id                NUMBER;
74202 l_line_definition_code        VARCHAR2(30);
74203 l_line_definition_owner_code  VARCHAR2(1);
74204 --
74205 -- adr variables
74206 l_segment                     VARCHAR2(30);
74207 l_ccid                        NUMBER;
74208 l_adr_transaction_coa_id      NUMBER;
74209 l_adr_accounting_coa_id       NUMBER;
74210 l_adr_flexfield_segment_code  VARCHAR2(30);
74211 l_adr_flex_value_set_id       NUMBER;
74212 l_adr_value_type_code         VARCHAR2(30);
74213 l_adr_value_combination_id    NUMBER;
74214 l_adr_value_segment_code      VARCHAR2(30);
74215 
74216 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
74217 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
74218 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
74219 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
74220 
74221 -- 4262811 Variables ------------------------------------------------------------------------------------------
74222 l_entered_amt_idx             NUMBER;
74223 l_accted_amt_idx              NUMBER;
74224 l_acc_rev_flag                VARCHAR2(1);
74225 l_accrual_line_num            NUMBER;
74226 l_tmp_amt                     NUMBER;
74227 l_acc_rev_natural_side_code   VARCHAR2(1);
74228 
74229 l_num_entries                 NUMBER;
74230 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
74231 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
74232 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
74233 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
74234 l_recog_line_1                NUMBER;
74235 l_recog_line_2                NUMBER;
74236 
74237 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
74238 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
74239 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
74240 
74241 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
74242 
74243 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
74244 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
74245 
74246 ---------------------------------------------------------------------------------------------------------------
74247 
74248 
74249 --
74250 -- bulk performance
74251 --
74252 l_balance_type_code           VARCHAR2(1);
74253 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
74254 l_log_module                  VARCHAR2(240);
74255 
74256 --
74257 -- Upgrade strategy
74258 --
74259 l_actual_upg_option           VARCHAR2(1);
74260 l_enc_upg_option           VARCHAR2(1);
74261 
74262 --
74263 BEGIN
74264 --
74265 IF g_log_enabled THEN
74266       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_140';
74267 END IF;
74268 --
74269 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74270 
74271       trace
74272          (p_msg      => 'BEGIN of AcctLineType_140'
74273          ,p_level    => C_LEVEL_PROCEDURE
74274          ,p_module   => l_log_module);
74275 
74276 END IF;
74277 --
74278 l_component_type             := 'AMB_JLT';
74279 l_component_code             := 'AP_GAIN_LOSS_PREPAY_APP';
74280 l_component_type_code        := 'S';
74281 l_component_appl_id          :=  200;
74282 l_amb_context_code           := 'DEFAULT';
74283 l_entity_code                := 'AP_INVOICES';
74284 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
74285 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
74286 l_line_definition_owner_code := 'S';
74287 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
74288 --
74289 l_balance_type_code          := 'A';
74290 l_segment                     := NULL;
74291 l_ccid                        := NULL;
74292 l_adr_transaction_coa_id      := NULL;
74293 l_adr_accounting_coa_id       := NULL;
74294 l_adr_flexfield_segment_code  := NULL;
74295 l_adr_flex_value_set_id       := NULL;
74296 l_adr_value_type_code         := NULL;
74297 l_adr_value_combination_id    := NULL;
74298 l_adr_value_segment_code      := NULL;
74299 
74300 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
74301 l_bflow_class_code           := '';    -- 4219869 Business Flow
74302 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
74303 l_budgetary_control_flag     := 'N';
74304 
74305 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
74306 l_bflow_applied_to_amt       := NULL; -- 5132302
74307 l_entered_amt_idx            := NULL;          -- 4262811
74308 l_accted_amt_idx             := NULL;          -- 4262811
74309 l_acc_rev_flag               := NULL;          -- 4262811
74310 l_accrual_line_num           := NULL;          -- 4262811
74311 l_tmp_amt                    := NULL;          -- 4262811
74312 --
74313 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
74314             (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
74315                return;
74316   END IF;
74317   
74318 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
74319     l_balance_type_code <> 'B' THEN
74320 IF NVL(p_source_118,'
74321 ') =  'PREPAY APPL'
74325    XLA_AE_LINES_PKG.SetNewLine;
74322  THEN 
74323 
74324    --
74326 
74327    p_balance_type_code          := l_balance_type_code;
74328    -- set the flag so later we will know whether the gain loss line needs to be created
74329    
74330    IF(l_balance_type_code = 'A' ) THEN
74331      p_actual_flag :='G';
74332    END IF;
74333 
74334    --
74335    -- bulk performance
74336    --
74337    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
74338                                       p_header_num   => 0); -- 4262811
74339    --
74340    -- set accounting line options
74341    --
74342    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
74343            p_natural_side_code          => 'G'
74344          , p_gain_or_loss_flag          => 'N'
74345          , p_gl_transfer_mode_code      => 'S'
74346          , p_acct_entry_type_code       => 'A'
74347          , p_switch_side_flag           => ''
74348          , p_merge_duplicate_code       => 'A'
74349          );
74350    --
74351    l_acc_rev_natural_side_code := 'C';  -- 4262811
74352    -- 
74353    --
74354    -- set accounting line type info
74355    --
74356    xla_ae_lines_pkg.SetAcctLineType
74357       (p_component_type             => l_component_type
74358       ,p_event_type_code            => l_event_type_code
74359       ,p_line_definition_owner_code => l_line_definition_owner_code
74360       ,p_line_definition_code       => l_line_definition_code
74361       ,p_accounting_line_code       => l_component_code
74362       ,p_accounting_line_type_code  => l_component_type_code
74363       ,p_accounting_line_appl_id    => l_component_appl_id
74364       ,p_amb_context_code           => l_amb_context_code
74365       ,p_entity_code                => l_entity_code
74366       ,p_event_class_code           => l_event_class_code);
74367    --
74368    -- set accounting class
74369    --
74370    xla_ae_lines_pkg.SetAcctClass(
74371            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
74372          , p_ae_header_id           => l_ae_header_id
74373          );
74374 
74375    --
74376    -- set rounding class
74377    --
74378    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
74379                       'EXCHANGE_GAIN_LOSS';
74380 
74381    --
74382    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
74383    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
74384    --
74385    -- bulk performance
74386    --
74387    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
74388 
74389    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
74390       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
74391 
74392    -- 4955764
74393    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74394       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
74395 
74396    -- 4458381 Public Sector Enh
74397    
74398    --
74399    -- set accounting attributes for the line type
74400    --
74401    l_entered_amt_idx := NULL;
74402    l_accted_amt_idx  := 25;
74403    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
74404    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
74405    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
74406    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
74407    l_rec_acct_attrs.array_num_value(2)  := 
74408 xla_ae_sources_pkg.GetSystemSourceNum(
74409    p_source_code           => 'XLA_EVENT_APPL_ID'
74410  , p_source_type_code      => 'Y'
74411  , p_source_application_id =>  602
74412 );
74413    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
74414    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
74415    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
74416    l_rec_acct_attrs.array_char_value(4)  := 
74417 xla_ae_sources_pkg.GetSystemSourceChar(
74418    p_source_code           => 'XLA_ENTITY_CODE'
74419  , p_source_type_code      => 'Y'
74420  , p_source_application_id =>  602
74421 );
74422    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
74423    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_120);
74424    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
74425    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
74426    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
74427    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
74428    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
74429    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
74430    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
74431    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
74432    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
74433    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
74434    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
74435    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
74436    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
74437    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_120);
74438    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
74439    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
74440    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
74441    l_rec_acct_attrs.array_char_value(14)  := p_source_125;
74442    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
74446    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
74443    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
74444    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
74445    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
74447    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
74448    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
74449    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
74450    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
74451    l_rec_acct_attrs.array_char_value(19)  := p_source_126;
74452    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
74453    l_rec_acct_attrs.array_num_value(20)  := p_source_57;
74454    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
74455    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
74456    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
74457    l_rec_acct_attrs.array_char_value(22)  := p_source_55;
74458    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
74459    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
74460    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
74461    l_rec_acct_attrs.array_char_value(24)  := p_source_60;
74462    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
74463    l_rec_acct_attrs.array_num_value(25)  := p_source_150;
74464    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
74465    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
74466    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
74467    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
74468    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
74469    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
74470    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
74471    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
74472    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_ID';
74473    l_rec_acct_attrs.array_num_value(30)  := p_source_69;
74474    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_SITE_ID';
74475    l_rec_acct_attrs.array_num_value(31)  := p_source_70;
74476    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
74477    l_rec_acct_attrs.array_char_value(32)  := p_source_71;
74478    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
74479    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_129);
74480    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
74481    l_rec_acct_attrs.array_char_value(34)  := p_source_43;
74482    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
74483    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
74484    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
74485    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
74486    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
74487    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
74488    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
74489    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
74490    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
74491    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
74492 
74493    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
74494    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
74495 
74496    ---------------------------------------------------------------------------------------------------------------
74497    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
74498    ---------------------------------------------------------------------------------------------------------------
74499    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
74500 
74501    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74502    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74503 
74504    IF xla_accounting_cache_pkg.GetValueChar
74505          (p_source_code         => 'LEDGER_CATEGORY_CODE'
74506          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
74507    AND l_bflow_method_code = 'PRIOR_ENTRY'
74508 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
74509    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
74510          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
74511        )
74512    THEN
74513          xla_ae_lines_pkg.BflowUpgEntry
74514            (p_business_method_code    => l_bflow_method_code
74515            ,p_business_class_code     => l_bflow_class_code
74516            ,p_balance_type            => l_balance_type_code);
74517    ELSE
74518       NULL;
74519 -- No business flow processing for business flow method of NONE.
74520    END IF;
74521 
74522    --
74523    -- call analytical criteria
74524    --
74525    
74526    --
74527    -- call description
74528    --
74529    -- No description or it is inherited.
74530    --
74531    -- call ADRs
74532    -- Bug 4922099
74533    --
74534    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74535         (NVL(l_actual_upg_option, 'N') = 'O') OR
74536         (NVL(l_enc_upg_option, 'N') = 'O')
74537       )
74538    THEN
74539    NULL;
74540    --
74541    --
74542    
74543   l_ccid := AcctDerRule_37(
74544            p_application_id           => p_application_id
74545          , p_ae_header_id             => l_ae_header_id 
74546 , p_source_3 => p_source_3
74547 , p_source_3_meaning => p_source_3_meaning
74548 , p_source_18 => p_source_18
74549 , p_source_24 => p_source_24
74550 , p_source_25 => p_source_25
74554          , p_side                     => 'CREDIT'
74551          , x_transaction_coa_id       => l_adr_transaction_coa_id
74552          , x_accounting_coa_id        => l_adr_accounting_coa_id
74553          , x_value_type_code          => l_adr_value_type_code
74555    );
74556 
74557    xla_ae_lines_pkg.set_ccid(
74558     p_code_combination_id          => l_ccid
74559   , p_value_type_code              => l_adr_value_type_code
74560   , p_transaction_coa_id           => l_adr_transaction_coa_id
74561   , p_accounting_coa_id            => l_adr_accounting_coa_id
74562   , p_adr_code                     => 'AP_REAL_GAIN'
74563   , p_adr_type_code                => 'S'
74564   , p_component_type               => l_component_type
74565   , p_component_code               => l_component_code
74566   , p_component_type_code          => l_component_type_code
74567   , p_component_appl_id            => l_component_appl_id
74568   , p_amb_context_code             => l_amb_context_code
74569   , p_side                         => 'CREDIT'
74570   );
74571 
74572 
74573   l_ccid := AcctDerRule_38(
74574            p_application_id           => p_application_id
74575          , p_ae_header_id             => l_ae_header_id 
74576 , p_source_3 => p_source_3
74577 , p_source_3_meaning => p_source_3_meaning
74578 , p_source_18 => p_source_18
74579 , p_source_26 => p_source_26
74580 , p_source_27 => p_source_27
74581          , x_transaction_coa_id       => l_adr_transaction_coa_id
74582          , x_accounting_coa_id        => l_adr_accounting_coa_id
74583          , x_value_type_code          => l_adr_value_type_code
74584          , p_side                     => 'DEBIT'
74585    );
74586 
74587    xla_ae_lines_pkg.set_ccid(
74588     p_code_combination_id          => l_ccid
74589   , p_value_type_code              => l_adr_value_type_code
74590   , p_transaction_coa_id           => l_adr_transaction_coa_id
74591   , p_accounting_coa_id            => l_adr_accounting_coa_id
74592   , p_adr_code                     => 'AP_REAL_LOSS'
74593   , p_adr_type_code                => 'S'
74594   , p_component_type               => l_component_type
74595   , p_component_code               => l_component_code
74596   , p_component_type_code          => l_component_type_code
74597   , p_component_appl_id            => l_component_appl_id
74598   , p_amb_context_code             => l_amb_context_code
74599   , p_side                         => 'DEBIT'
74600   );
74601 
74602 
74603    l_segment := AcctDerRule_21(
74604            p_application_id           => p_application_id
74605          , p_ae_header_id             => l_ae_header_id 
74606 , p_source_3 => p_source_3
74607 , p_source_3_meaning => p_source_3_meaning
74608 , p_source_18 => p_source_18
74609          , x_transaction_coa_id       => l_adr_transaction_coa_id
74610          , x_accounting_coa_id        => l_adr_accounting_coa_id
74611          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
74612          , x_flex_value_set_id        => l_adr_flex_value_set_id
74613          , x_value_type_code          => l_adr_value_type_code
74614          , x_value_combination_id     => l_adr_value_combination_id
74615          , x_value_segment_code       => l_adr_value_segment_code
74616          , p_side                     => 'ALL'
74617          , p_override_seg_flag        => 'Y'
74618    );
74619 
74620    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74621 
74622       xla_ae_lines_pkg.set_segment(
74623           p_to_segment_code         => 'GL_BALANCING'
74624         , p_segment_value           => l_segment
74625         , p_from_segment_code       => l_adr_value_segment_code
74626         , p_from_combination_id     => l_adr_value_combination_id
74627         , p_value_type_code         => l_adr_value_type_code
74628         , p_transaction_coa_id      => l_adr_transaction_coa_id
74629         , p_accounting_coa_id       => l_adr_accounting_coa_id
74630         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74631         , p_flex_value_set_id       => l_adr_flex_value_set_id
74632         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
74633         , p_adr_type_code           => 'S'
74634         , p_component_type          => l_component_type
74635         , p_component_code          => l_component_code
74636         , p_component_type_code     => l_component_type_code
74637         , p_component_appl_id       => l_component_appl_id
74638         , p_amb_context_code        => l_amb_context_code
74639         , p_entity_code             => 'AP_INVOICES'
74640         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
74641         , p_side                    => 'ALL'
74642         );
74643 
74644   END IF;
74645 
74646    l_segment := AcctDerRule_16(
74647            p_application_id           => p_application_id
74648          , p_ae_header_id             => l_ae_header_id 
74649 , p_source_3 => p_source_3
74650 , p_source_3_meaning => p_source_3_meaning
74651 , p_source_24 => p_source_24
74652 , p_source_25 => p_source_25
74653          , x_transaction_coa_id       => l_adr_transaction_coa_id
74654          , x_accounting_coa_id        => l_adr_accounting_coa_id
74655          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
74656          , x_flex_value_set_id        => l_adr_flex_value_set_id
74657          , x_value_type_code          => l_adr_value_type_code
74658          , x_value_combination_id     => l_adr_value_combination_id
74659          , x_value_segment_code       => l_adr_value_segment_code
74660          , p_side                     => 'CREDIT'
74661          , p_override_seg_flag        => 'Y'
74662    );
74663 
74664    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74665 
74666       xla_ae_lines_pkg.set_segment(
74667           p_to_segment_code         => 'GL_ACCOUNT'
74671         , p_value_type_code         => l_adr_value_type_code
74668         , p_segment_value           => l_segment
74669         , p_from_segment_code       => l_adr_value_segment_code
74670         , p_from_combination_id     => l_adr_value_combination_id
74672         , p_transaction_coa_id      => l_adr_transaction_coa_id
74673         , p_accounting_coa_id       => l_adr_accounting_coa_id
74674         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74675         , p_flex_value_set_id       => l_adr_flex_value_set_id
74676         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
74677         , p_adr_type_code           => 'S'
74678         , p_component_type          => l_component_type
74679         , p_component_code          => l_component_code
74680         , p_component_type_code     => l_component_type_code
74681         , p_component_appl_id       => l_component_appl_id
74682         , p_amb_context_code        => l_amb_context_code
74683         , p_entity_code             => 'AP_INVOICES'
74684         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
74685         , p_side                    => 'CREDIT'
74686         );
74687 
74688   END IF;
74689 
74690    l_segment := AcctDerRule_17(
74691            p_application_id           => p_application_id
74692          , p_ae_header_id             => l_ae_header_id 
74693 , p_source_3 => p_source_3
74694 , p_source_3_meaning => p_source_3_meaning
74695 , p_source_26 => p_source_26
74696 , p_source_27 => p_source_27
74697          , x_transaction_coa_id       => l_adr_transaction_coa_id
74698          , x_accounting_coa_id        => l_adr_accounting_coa_id
74699          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
74700          , x_flex_value_set_id        => l_adr_flex_value_set_id
74701          , x_value_type_code          => l_adr_value_type_code
74702          , x_value_combination_id     => l_adr_value_combination_id
74703          , x_value_segment_code       => l_adr_value_segment_code
74704          , p_side                     => 'DEBIT'
74705          , p_override_seg_flag        => 'Y'
74706    );
74707 
74708    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74709 
74710       xla_ae_lines_pkg.set_segment(
74711           p_to_segment_code         => 'GL_ACCOUNT'
74712         , p_segment_value           => l_segment
74713         , p_from_segment_code       => l_adr_value_segment_code
74714         , p_from_combination_id     => l_adr_value_combination_id
74715         , p_value_type_code         => l_adr_value_type_code
74716         , p_transaction_coa_id      => l_adr_transaction_coa_id
74717         , p_accounting_coa_id       => l_adr_accounting_coa_id
74718         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74719         , p_flex_value_set_id       => l_adr_flex_value_set_id
74720         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
74721         , p_adr_type_code           => 'S'
74722         , p_component_type          => l_component_type
74723         , p_component_code          => l_component_code
74724         , p_component_type_code     => l_component_type_code
74725         , p_component_appl_id       => l_component_appl_id
74726         , p_amb_context_code        => l_amb_context_code
74727         , p_entity_code             => 'AP_INVOICES'
74728         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
74729         , p_side                    => 'DEBIT'
74730         );
74731 
74732   END IF;
74733 
74734    --
74735    --
74736    END IF;
74737    --
74738    -- Bug 4922099
74739    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
74740           (NVL(l_enc_upg_option, 'N') = 'O')
74741         ) AND
74742         (l_bflow_method_code = 'PRIOR_ENTRY')
74743       )
74744    THEN
74745       IF
74746       --
74747       1 = 2
74748       --
74749       THEN
74750       xla_accounting_err_pkg.build_message
74751                                     (p_appli_s_name            => 'XLA'
74752                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74753                                     ,p_token_1                 => 'LINE_NUMBER'
74754                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
74755                                     ,p_token_2                 => 'LINE_TYPE_NAME'
74756                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
74757                                                                              l_component_type
74758                                                                             ,l_component_code
74759                                                                             ,l_component_type_code
74760                                                                             ,l_component_appl_id
74761                                                                             ,l_amb_context_code
74762                                                                             ,l_entity_code
74763                                                                             ,l_event_class_code
74764                                                                            )
74765                                     ,p_token_3                 => 'OWNER'
74766                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
74767                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
74768                                                                           ,p_lookup_code    => l_component_type_code
74769                                                                          )
74770                                     ,p_token_4                 => 'PRODUCT_NAME'
74771                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
74775                                     ,p_ae_header_id            =>  NULL
74772                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
74773                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
74774                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
74776                                        );
74777 
74778         IF (C_LEVEL_ERROR>= g_log_level) THEN
74779                  trace
74780                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74781                       ,p_level    => C_LEVEL_ERROR
74782                       ,p_module   => l_log_module);
74783         END IF;
74784       END IF;
74785    END IF;
74786    --
74787    --
74788    ------------------------------------------------------------------------------------------------
74789    -- 4219869 Business Flow
74790    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
74791    -- Prior Entry.  Currently, the following code is always generated.
74792    ------------------------------------------------------------------------------------------------
74793    XLA_AE_LINES_PKG.ValidateCurrentLine;
74794 
74795    ------------------------------------------------------------------------------------
74796    -- 4219869 Business Flow
74797    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
74798    ------------------------------------------------------------------------------------
74799    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74800 
74801    ----------------------------------------------------------------------------------
74802    -- 4219869 Business Flow
74803    -- Update journal entry status -- Need to generate this within IF <condition>
74804    ----------------------------------------------------------------------------------
74805    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74806          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
74807          ,p_balance_type_code => l_balance_type_code
74808          );
74809 
74810    -------------------------------------------------------------------------------------------
74811    -- 4262811 - Generate the Accrual Reversal lines
74812    -------------------------------------------------------------------------------------------
74813    BEGIN
74814       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
74815                               (g_array_event(p_event_id).array_value_num('header_index'));
74816       IF l_acc_rev_flag IS NULL THEN
74817          l_acc_rev_flag := 'N';
74818       END IF;
74819    EXCEPTION
74820       WHEN OTHERS THEN
74821          l_acc_rev_flag := 'N';
74822    END;
74823    --
74824    IF (l_acc_rev_flag = 'Y') THEN
74825 
74826        -- 4645092  ------------------------------------------------------------------------------
74827        -- To allow MPA report to determine if it should generate report process
74828        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
74829        ------------------------------------------------------------------------------------------
74830 
74831        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
74832        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
74833    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
74834    -- call ADRs
74835    -- Bug 4922099
74836    --
74837    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74838         (NVL(l_actual_upg_option, 'N') = 'O') OR
74839         (NVL(l_enc_upg_option, 'N') = 'O')
74840       )
74841    THEN
74842    NULL;
74843    --
74844    --
74845    
74846   l_ccid := AcctDerRule_37(
74847            p_application_id           => p_application_id
74848          , p_ae_header_id             => l_ae_header_id 
74849 , p_source_3 => p_source_3
74850 , p_source_3_meaning => p_source_3_meaning
74851 , p_source_18 => p_source_18
74852 , p_source_24 => p_source_24
74853 , p_source_25 => p_source_25
74854          , x_transaction_coa_id       => l_adr_transaction_coa_id
74855          , x_accounting_coa_id        => l_adr_accounting_coa_id
74856          , x_value_type_code          => l_adr_value_type_code
74857          , p_side                     => 'CREDIT'
74858    );
74859 
74860    xla_ae_lines_pkg.set_ccid(
74861     p_code_combination_id          => l_ccid
74862   , p_value_type_code              => l_adr_value_type_code
74863   , p_transaction_coa_id           => l_adr_transaction_coa_id
74864   , p_accounting_coa_id            => l_adr_accounting_coa_id
74865   , p_adr_code                     => 'AP_REAL_GAIN'
74866   , p_adr_type_code                => 'S'
74867   , p_component_type               => l_component_type
74868   , p_component_code               => l_component_code
74869   , p_component_type_code          => l_component_type_code
74870   , p_component_appl_id            => l_component_appl_id
74871   , p_amb_context_code             => l_amb_context_code
74872   , p_side                         => 'CREDIT'
74873   );
74874 
74875 
74876   l_ccid := AcctDerRule_38(
74877            p_application_id           => p_application_id
74878          , p_ae_header_id             => l_ae_header_id 
74879 , p_source_3 => p_source_3
74880 , p_source_3_meaning => p_source_3_meaning
74881 , p_source_18 => p_source_18
74882 , p_source_26 => p_source_26
74883 , p_source_27 => p_source_27
74884          , x_transaction_coa_id       => l_adr_transaction_coa_id
74885          , x_accounting_coa_id        => l_adr_accounting_coa_id
74886          , x_value_type_code          => l_adr_value_type_code
74887          , p_side                     => 'DEBIT'
74888    );
74889 
74893   , p_transaction_coa_id           => l_adr_transaction_coa_id
74890    xla_ae_lines_pkg.set_ccid(
74891     p_code_combination_id          => l_ccid
74892   , p_value_type_code              => l_adr_value_type_code
74894   , p_accounting_coa_id            => l_adr_accounting_coa_id
74895   , p_adr_code                     => 'AP_REAL_LOSS'
74896   , p_adr_type_code                => 'S'
74897   , p_component_type               => l_component_type
74898   , p_component_code               => l_component_code
74899   , p_component_type_code          => l_component_type_code
74900   , p_component_appl_id            => l_component_appl_id
74901   , p_amb_context_code             => l_amb_context_code
74902   , p_side                         => 'DEBIT'
74903   );
74904 
74905 
74906    l_segment := AcctDerRule_21(
74907            p_application_id           => p_application_id
74908          , p_ae_header_id             => l_ae_header_id 
74909 , p_source_3 => p_source_3
74910 , p_source_3_meaning => p_source_3_meaning
74911 , p_source_18 => p_source_18
74912          , x_transaction_coa_id       => l_adr_transaction_coa_id
74913          , x_accounting_coa_id        => l_adr_accounting_coa_id
74914          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
74915          , x_flex_value_set_id        => l_adr_flex_value_set_id
74916          , x_value_type_code          => l_adr_value_type_code
74917          , x_value_combination_id     => l_adr_value_combination_id
74918          , x_value_segment_code       => l_adr_value_segment_code
74919          , p_side                     => 'ALL'
74920          , p_override_seg_flag        => 'Y'
74921    );
74922 
74923    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74924 
74925       xla_ae_lines_pkg.set_segment(
74926           p_to_segment_code         => 'GL_BALANCING'
74927         , p_segment_value           => l_segment
74928         , p_from_segment_code       => l_adr_value_segment_code
74929         , p_from_combination_id     => l_adr_value_combination_id
74930         , p_value_type_code         => l_adr_value_type_code
74931         , p_transaction_coa_id      => l_adr_transaction_coa_id
74932         , p_accounting_coa_id       => l_adr_accounting_coa_id
74933         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74934         , p_flex_value_set_id       => l_adr_flex_value_set_id
74935         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
74936         , p_adr_type_code           => 'S'
74937         , p_component_type          => l_component_type
74938         , p_component_code          => l_component_code
74939         , p_component_type_code     => l_component_type_code
74940         , p_component_appl_id       => l_component_appl_id
74941         , p_amb_context_code        => l_amb_context_code
74942         , p_entity_code             => 'AP_INVOICES'
74943         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
74944         , p_side                    => 'ALL'
74945         );
74946 
74947   END IF;
74948 
74949    l_segment := AcctDerRule_16(
74950            p_application_id           => p_application_id
74951          , p_ae_header_id             => l_ae_header_id 
74952 , p_source_3 => p_source_3
74953 , p_source_3_meaning => p_source_3_meaning
74954 , p_source_24 => p_source_24
74955 , p_source_25 => p_source_25
74956          , x_transaction_coa_id       => l_adr_transaction_coa_id
74957          , x_accounting_coa_id        => l_adr_accounting_coa_id
74958          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
74959          , x_flex_value_set_id        => l_adr_flex_value_set_id
74960          , x_value_type_code          => l_adr_value_type_code
74961          , x_value_combination_id     => l_adr_value_combination_id
74962          , x_value_segment_code       => l_adr_value_segment_code
74963          , p_side                     => 'CREDIT'
74964          , p_override_seg_flag        => 'Y'
74965    );
74966 
74967    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74968 
74969       xla_ae_lines_pkg.set_segment(
74970           p_to_segment_code         => 'GL_ACCOUNT'
74971         , p_segment_value           => l_segment
74972         , p_from_segment_code       => l_adr_value_segment_code
74973         , p_from_combination_id     => l_adr_value_combination_id
74974         , p_value_type_code         => l_adr_value_type_code
74975         , p_transaction_coa_id      => l_adr_transaction_coa_id
74976         , p_accounting_coa_id       => l_adr_accounting_coa_id
74977         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74978         , p_flex_value_set_id       => l_adr_flex_value_set_id
74979         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
74980         , p_adr_type_code           => 'S'
74981         , p_component_type          => l_component_type
74982         , p_component_code          => l_component_code
74983         , p_component_type_code     => l_component_type_code
74984         , p_component_appl_id       => l_component_appl_id
74985         , p_amb_context_code        => l_amb_context_code
74986         , p_entity_code             => 'AP_INVOICES'
74987         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
74988         , p_side                    => 'CREDIT'
74989         );
74990 
74991   END IF;
74992 
74993    l_segment := AcctDerRule_17(
74994            p_application_id           => p_application_id
74995          , p_ae_header_id             => l_ae_header_id 
74996 , p_source_3 => p_source_3
74997 , p_source_3_meaning => p_source_3_meaning
74998 , p_source_26 => p_source_26
74999 , p_source_27 => p_source_27
75000          , x_transaction_coa_id       => l_adr_transaction_coa_id
75001          , x_accounting_coa_id        => l_adr_accounting_coa_id
75002          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
75006          , x_value_segment_code       => l_adr_value_segment_code
75003          , x_flex_value_set_id        => l_adr_flex_value_set_id
75004          , x_value_type_code          => l_adr_value_type_code
75005          , x_value_combination_id     => l_adr_value_combination_id
75007          , p_side                     => 'DEBIT'
75008          , p_override_seg_flag        => 'Y'
75009    );
75010 
75011    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
75012 
75013       xla_ae_lines_pkg.set_segment(
75014           p_to_segment_code         => 'GL_ACCOUNT'
75015         , p_segment_value           => l_segment
75016         , p_from_segment_code       => l_adr_value_segment_code
75017         , p_from_combination_id     => l_adr_value_combination_id
75018         , p_value_type_code         => l_adr_value_type_code
75019         , p_transaction_coa_id      => l_adr_transaction_coa_id
75020         , p_accounting_coa_id       => l_adr_accounting_coa_id
75021         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
75022         , p_flex_value_set_id       => l_adr_flex_value_set_id
75023         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
75024         , p_adr_type_code           => 'S'
75025         , p_component_type          => l_component_type
75026         , p_component_code          => l_component_code
75027         , p_component_type_code     => l_component_type_code
75028         , p_component_appl_id       => l_component_appl_id
75029         , p_amb_context_code        => l_amb_context_code
75030         , p_entity_code             => 'AP_INVOICES'
75031         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
75032         , p_side                    => 'DEBIT'
75033         );
75034 
75035   END IF;
75036 
75037    --
75038    --
75039    END IF;
75040 
75041        --
75042        -- Update the line information that should be overwritten
75043        --
75044        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
75045                                          p_header_num   => 1);
75046        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
75047 
75048        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
75049 
75050        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
75051           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
75052        END IF;
75053 
75054       --
75055       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
75056       --
75057       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
75058           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
75059       ELSE
75060           ---------------------------------------------------------------------------------------------------
75061           -- 4262811a Switch Sign
75062           ---------------------------------------------------------------------------------------------------
75063           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
75064           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75065                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75066           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75067                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75068           -- 5132302
75069           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
75070                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75071 
75072       END IF;
75073 
75074       -- 4955764
75075       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75076       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
75077 
75078 
75079       XLA_AE_LINES_PKG.ValidateCurrentLine;
75080       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75081 
75082       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75083                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
75084                ,p_balance_type_code => l_balance_type_code);
75085 
75086    END IF;
75087 
75088    -----------------------------------------------------------------------------------------
75089    -- 4262811 Multiperiod Accounting
75090    -----------------------------------------------------------------------------------------
75091      -- No MPA option is assigned.
75092 
75093 
75094 END IF;
75095 END IF;
75096 --
75097 
75098 --
75099 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75100    trace
75101       (p_msg      => 'END of AcctLineType_140'
75102       ,p_level    => C_LEVEL_PROCEDURE
75103       ,p_module   => l_log_module);
75104 END IF;
75105 --
75106 EXCEPTION
75107   WHEN xla_exceptions_pkg.application_exception THEN
75108       RAISE;
75109   WHEN OTHERS THEN
75110        xla_exceptions_pkg.raise_message
75111            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_140');
75112 END AcctLineType_140;
75113 --
75114 
75115 ---------------------------------------
75116 --
75117 -- PRIVATE FUNCTION
75118 --         AcctLineType_141
75119 --
75120 ---------------------------------------
75121 PROCEDURE AcctLineType_141 (
75122   p_application_id        IN NUMBER
75123  ,p_event_id              IN NUMBER
75124  ,p_calculate_acctd_flag  IN VARCHAR2
75128  ,p_gain_or_loss_ref      OUT VARCHAR2
75125  ,p_calculate_g_l_flag    IN VARCHAR2
75126  ,p_actual_flag           IN OUT VARCHAR2
75127  ,p_balance_type_code     OUT VARCHAR2
75129  
75130 --Automatic Offsets Value
75131  , p_source_3            IN VARCHAR2
75132  , p_source_3_meaning    IN VARCHAR2
75133 --Invoice Distribution Account
75134  , p_source_18            IN NUMBER
75135 --Internal Realized Gain Account
75136  , p_source_24            IN NUMBER
75137 --Bank Gain Account
75138  , p_source_25            IN NUMBER
75139 --Internal Realized Loss Account
75140  , p_source_26            IN NUMBER
75141 --Bank Loss Account
75142  , p_source_27            IN NUMBER
75143 --Accounting Reversal Indicator
75144  , p_source_41            IN VARCHAR2
75145 --Distribution Link Type
75146  , p_source_43            IN VARCHAR2
75147 --Override Accounted Amount Indicator
75148  , p_source_68            IN VARCHAR2
75149  , p_source_68_meaning    IN VARCHAR2
75150 --Third Party Type
75151  , p_source_71            IN VARCHAR2
75152 --Invoice Distribution Tax Line Identifier
75153  , p_source_74            IN NUMBER
75154 --Invoice Distribution Tax Distribution Identifier from Tax
75155  , p_source_75            IN NUMBER
75156 --Invoice Distribution Summary Tax Line Identifier
75157  , p_source_76            IN NUMBER
75158 --Business Flow Accounts Payable Application Identifier
75159  , p_source_79            IN NUMBER
75160 --Business Flow Invoice Distribution Type
75161  , p_source_80            IN VARCHAR2
75162 --Business Flow Invoice Entity Code
75163  , p_source_81            IN VARCHAR2
75164 --Business Flow Invoice Distribution Identifier
75165  , p_source_82            IN NUMBER
75166 --Business Flow Invoice Identifier
75167  , p_source_83            IN NUMBER
75168 --When to Account for Payment Option
75169  , p_source_89            IN VARCHAR2
75170 --Payment Distribution Type
75171  , p_source_90            IN VARCHAR2
75172  , p_source_90_meaning    IN VARCHAR2
75173 --Payment Distribution Identifier
75174  , p_source_96            IN NUMBER
75175 --Payment Supplier Identifier
75176  , p_source_102            IN NUMBER
75177 --Payment Supplier Site Identifier
75178  , p_source_103            IN NUMBER
75179 --Payment Distribution Reversed Identifier
75180  , p_source_104            IN NUMBER
75181 --Payment Type
75182  , p_source_115            IN VARCHAR2
75183  , p_source_115_meaning    IN VARCHAR2
75184 --Invoice/Payment Ledger Amount Difference
75185  , p_source_148            IN NUMBER
75186 )
75187 IS
75188 
75189 l_component_type              VARCHAR2(80);
75190 l_component_code              VARCHAR2(30);
75191 l_component_type_code         VARCHAR2(1);
75192 l_component_appl_id           INTEGER;
75193 l_amb_context_code            VARCHAR2(30);
75194 l_entity_code                 VARCHAR2(30);
75195 l_event_class_code            VARCHAR2(30);
75196 l_ae_header_id                NUMBER;
75197 l_event_type_code             VARCHAR2(30);
75198 l_line_definition_code        VARCHAR2(30);
75199 l_line_definition_owner_code  VARCHAR2(1);
75200 --
75201 -- adr variables
75202 l_segment                     VARCHAR2(30);
75203 l_ccid                        NUMBER;
75204 l_adr_transaction_coa_id      NUMBER;
75205 l_adr_accounting_coa_id       NUMBER;
75206 l_adr_flexfield_segment_code  VARCHAR2(30);
75207 l_adr_flex_value_set_id       NUMBER;
75208 l_adr_value_type_code         VARCHAR2(30);
75209 l_adr_value_combination_id    NUMBER;
75210 l_adr_value_segment_code      VARCHAR2(30);
75211 
75212 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
75213 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
75214 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
75215 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
75216 
75217 -- 4262811 Variables ------------------------------------------------------------------------------------------
75218 l_entered_amt_idx             NUMBER;
75219 l_accted_amt_idx              NUMBER;
75220 l_acc_rev_flag                VARCHAR2(1);
75221 l_accrual_line_num            NUMBER;
75222 l_tmp_amt                     NUMBER;
75223 l_acc_rev_natural_side_code   VARCHAR2(1);
75224 
75225 l_num_entries                 NUMBER;
75226 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
75227 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
75228 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
75229 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
75230 l_recog_line_1                NUMBER;
75231 l_recog_line_2                NUMBER;
75232 
75233 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
75234 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
75235 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
75236 
75237 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
75238 
75239 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
75240 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
75241 
75242 ---------------------------------------------------------------------------------------------------------------
75243 
75244 
75245 --
75246 -- bulk performance
75247 --
75248 l_balance_type_code           VARCHAR2(1);
75249 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
75250 l_log_module                  VARCHAR2(240);
75251 
75252 --
75253 -- Upgrade strategy
75254 --
75255 l_actual_upg_option           VARCHAR2(1);
75256 l_enc_upg_option           VARCHAR2(1);
75257 
75258 --
75262       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_141';
75259 BEGIN
75260 --
75261 IF g_log_enabled THEN
75263 END IF;
75264 --
75265 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75266 
75267       trace
75268          (p_msg      => 'BEGIN of AcctLineType_141'
75269          ,p_level    => C_LEVEL_PROCEDURE
75270          ,p_module   => l_log_module);
75271 
75272 END IF;
75273 --
75274 l_component_type             := 'AMB_JLT';
75275 l_component_code             := 'AP_GAIN_LOSS_REF';
75276 l_component_type_code        := 'S';
75277 l_component_appl_id          :=  200;
75278 l_amb_context_code           := 'DEFAULT';
75279 l_entity_code                := 'AP_PAYMENTS';
75280 l_event_class_code           := 'REFUNDS';
75281 l_event_type_code            := 'REFUNDS_ALL';
75282 l_line_definition_owner_code := 'S';
75283 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
75284 --
75285 l_balance_type_code          := 'A';
75286 l_segment                     := NULL;
75287 l_ccid                        := NULL;
75288 l_adr_transaction_coa_id      := NULL;
75289 l_adr_accounting_coa_id       := NULL;
75290 l_adr_flexfield_segment_code  := NULL;
75291 l_adr_flex_value_set_id       := NULL;
75292 l_adr_value_type_code         := NULL;
75293 l_adr_value_combination_id    := NULL;
75294 l_adr_value_segment_code      := NULL;
75295 
75296 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
75297 l_bflow_class_code           := '';    -- 4219869 Business Flow
75298 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
75299 l_budgetary_control_flag     := 'N';
75300 
75301 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
75302 l_bflow_applied_to_amt       := NULL; -- 5132302
75303 l_entered_amt_idx            := NULL;          -- 4262811
75304 l_accted_amt_idx             := NULL;          -- 4262811
75305 l_acc_rev_flag               := NULL;          -- 4262811
75306 l_accrual_line_num           := NULL;          -- 4262811
75307 l_tmp_amt                    := NULL;          -- 4262811
75308 --
75309 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
75310             (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
75311                return;
75312   END IF;
75313   
75314 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
75315     l_balance_type_code <> 'B' THEN
75316 IF (NVL(p_source_89,'
75317 ') <>  'CLEAR_CLEAR' AND 
75318 NVL(p_source_89,'
75319 ') <>  'ALWAYS_CLEAR') AND 
75320 NVL(p_source_115,'
75321 ') =  'R' AND 
75322 NVL(p_source_90,'
75323 ') <>  'EXCHANGE RATE VARIANCE' AND 
75324 NVL(p_source_90,'
75325 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
75326 NVL(p_source_90,'
75327 ') <>  'BANK CHARGE' AND 
75328 NVL(p_source_90,'
75329 ') <>  'BANK ERROR'
75330  THEN 
75331 
75332    --
75333    XLA_AE_LINES_PKG.SetNewLine;
75334 
75335    p_balance_type_code          := l_balance_type_code;
75336    -- set the flag so later we will know whether the gain loss line needs to be created
75337    
75338    IF(l_balance_type_code = 'A' ) THEN
75339      p_actual_flag :='G';
75340    END IF;
75341 
75342    --
75343    -- bulk performance
75344    --
75345    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
75346                                       p_header_num   => 0); -- 4262811
75347    --
75348    -- set accounting line options
75349    --
75350    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
75351            p_natural_side_code          => 'G'
75352          , p_gain_or_loss_flag          => 'N'
75353          , p_gl_transfer_mode_code      => 'S'
75354          , p_acct_entry_type_code       => 'A'
75355          , p_switch_side_flag           => ''
75356          , p_merge_duplicate_code       => 'A'
75357          );
75358    --
75359    l_acc_rev_natural_side_code := 'C';  -- 4262811
75360    -- 
75361    --
75362    -- set accounting line type info
75363    --
75364    xla_ae_lines_pkg.SetAcctLineType
75365       (p_component_type             => l_component_type
75366       ,p_event_type_code            => l_event_type_code
75367       ,p_line_definition_owner_code => l_line_definition_owner_code
75368       ,p_line_definition_code       => l_line_definition_code
75369       ,p_accounting_line_code       => l_component_code
75370       ,p_accounting_line_type_code  => l_component_type_code
75371       ,p_accounting_line_appl_id    => l_component_appl_id
75372       ,p_amb_context_code           => l_amb_context_code
75373       ,p_entity_code                => l_entity_code
75374       ,p_event_class_code           => l_event_class_code);
75375    --
75376    -- set accounting class
75377    --
75378    xla_ae_lines_pkg.SetAcctClass(
75379            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
75380          , p_ae_header_id           => l_ae_header_id
75381          );
75382 
75383    --
75384    -- set rounding class
75385    --
75386    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
75387                       'EXCHANGE_GAIN_LOSS';
75388 
75389    --
75390    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
75391    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
75392    --
75393    -- bulk performance
75394    --
75395    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
75396 
75400    -- 4955764
75397    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
75398       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
75399 
75401    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75402       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
75403 
75404    -- 4458381 Public Sector Enh
75405    
75406    --
75407    -- set accounting attributes for the line type
75408    --
75409    l_entered_amt_idx := NULL;
75410    l_accted_amt_idx  := 9;
75411    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
75412    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
75413    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
75414    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
75415    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
75416    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
75417    l_rec_acct_attrs.array_char_value(3)  := p_source_80;
75418    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
75419    l_rec_acct_attrs.array_char_value(4)  := p_source_81;
75420    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
75421    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
75422    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
75423    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
75424    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
75425    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
75426    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
75427    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
75428    l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
75429    l_rec_acct_attrs.array_num_value(9)  := p_source_148;
75430    l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
75431    l_rec_acct_attrs.array_char_value(10)  := p_source_68;
75432    l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
75433    l_rec_acct_attrs.array_num_value(11)  := p_source_102;
75434    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
75435    l_rec_acct_attrs.array_num_value(12)  := p_source_103;
75436    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
75437    l_rec_acct_attrs.array_char_value(13)  := p_source_71;
75438    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
75439    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_104);
75440    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
75441    l_rec_acct_attrs.array_char_value(15)  := p_source_43;
75442    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
75443    l_rec_acct_attrs.array_num_value(16)  := p_source_74;
75444    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
75445    l_rec_acct_attrs.array_num_value(17)  := p_source_75;
75446    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
75447    l_rec_acct_attrs.array_num_value(18)  := p_source_76;
75448 
75449    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
75450    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
75451 
75452    ---------------------------------------------------------------------------------------------------------------
75453    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
75454    ---------------------------------------------------------------------------------------------------------------
75455    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
75456 
75457    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75458    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75459 
75460    IF xla_accounting_cache_pkg.GetValueChar
75461          (p_source_code         => 'LEDGER_CATEGORY_CODE'
75462          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
75463    AND l_bflow_method_code = 'PRIOR_ENTRY'
75464 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
75465    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
75466          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
75467        )
75468    THEN
75469          xla_ae_lines_pkg.BflowUpgEntry
75470            (p_business_method_code    => l_bflow_method_code
75471            ,p_business_class_code     => l_bflow_class_code
75472            ,p_balance_type            => l_balance_type_code);
75473    ELSE
75474       NULL;
75475 -- No business flow processing for business flow method of NONE.
75476    END IF;
75477 
75478    --
75479    -- call analytical criteria
75480    --
75481    
75482    --
75483    -- call description
75484    --
75485    -- No description or it is inherited.
75486    --
75487    -- call ADRs
75488    -- Bug 4922099
75489    --
75490    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75491         (NVL(l_actual_upg_option, 'N') = 'O') OR
75492         (NVL(l_enc_upg_option, 'N') = 'O')
75493       )
75494    THEN
75495    NULL;
75496    --
75497    --
75498    
75499   l_ccid := AcctDerRule_37(
75500            p_application_id           => p_application_id
75501          , p_ae_header_id             => l_ae_header_id 
75502 , p_source_3 => p_source_3
75503 , p_source_3_meaning => p_source_3_meaning
75504 , p_source_18 => p_source_18
75505 , p_source_24 => p_source_24
75506 , p_source_25 => p_source_25
75507          , x_transaction_coa_id       => l_adr_transaction_coa_id
75508          , x_accounting_coa_id        => l_adr_accounting_coa_id
75512 
75509          , x_value_type_code          => l_adr_value_type_code
75510          , p_side                     => 'CREDIT'
75511    );
75513    xla_ae_lines_pkg.set_ccid(
75514     p_code_combination_id          => l_ccid
75515   , p_value_type_code              => l_adr_value_type_code
75516   , p_transaction_coa_id           => l_adr_transaction_coa_id
75517   , p_accounting_coa_id            => l_adr_accounting_coa_id
75518   , p_adr_code                     => 'AP_REAL_GAIN'
75519   , p_adr_type_code                => 'S'
75520   , p_component_type               => l_component_type
75521   , p_component_code               => l_component_code
75522   , p_component_type_code          => l_component_type_code
75523   , p_component_appl_id            => l_component_appl_id
75524   , p_amb_context_code             => l_amb_context_code
75525   , p_side                         => 'CREDIT'
75526   );
75527 
75528 
75529   l_ccid := AcctDerRule_38(
75530            p_application_id           => p_application_id
75531          , p_ae_header_id             => l_ae_header_id 
75532 , p_source_3 => p_source_3
75533 , p_source_3_meaning => p_source_3_meaning
75534 , p_source_18 => p_source_18
75535 , p_source_26 => p_source_26
75536 , p_source_27 => p_source_27
75537          , x_transaction_coa_id       => l_adr_transaction_coa_id
75538          , x_accounting_coa_id        => l_adr_accounting_coa_id
75539          , x_value_type_code          => l_adr_value_type_code
75540          , p_side                     => 'DEBIT'
75541    );
75542 
75543    xla_ae_lines_pkg.set_ccid(
75544     p_code_combination_id          => l_ccid
75545   , p_value_type_code              => l_adr_value_type_code
75546   , p_transaction_coa_id           => l_adr_transaction_coa_id
75547   , p_accounting_coa_id            => l_adr_accounting_coa_id
75548   , p_adr_code                     => 'AP_REAL_LOSS'
75549   , p_adr_type_code                => 'S'
75550   , p_component_type               => l_component_type
75551   , p_component_code               => l_component_code
75552   , p_component_type_code          => l_component_type_code
75553   , p_component_appl_id            => l_component_appl_id
75554   , p_amb_context_code             => l_amb_context_code
75555   , p_side                         => 'DEBIT'
75556   );
75557 
75558 
75559    l_segment := AcctDerRule_21(
75560            p_application_id           => p_application_id
75561          , p_ae_header_id             => l_ae_header_id 
75562 , p_source_3 => p_source_3
75563 , p_source_3_meaning => p_source_3_meaning
75564 , p_source_18 => p_source_18
75565          , x_transaction_coa_id       => l_adr_transaction_coa_id
75566          , x_accounting_coa_id        => l_adr_accounting_coa_id
75567          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
75568          , x_flex_value_set_id        => l_adr_flex_value_set_id
75569          , x_value_type_code          => l_adr_value_type_code
75570          , x_value_combination_id     => l_adr_value_combination_id
75571          , x_value_segment_code       => l_adr_value_segment_code
75572          , p_side                     => 'ALL'
75573          , p_override_seg_flag        => 'Y'
75574    );
75575 
75576    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
75577 
75578       xla_ae_lines_pkg.set_segment(
75579           p_to_segment_code         => 'GL_BALANCING'
75580         , p_segment_value           => l_segment
75581         , p_from_segment_code       => l_adr_value_segment_code
75582         , p_from_combination_id     => l_adr_value_combination_id
75583         , p_value_type_code         => l_adr_value_type_code
75584         , p_transaction_coa_id      => l_adr_transaction_coa_id
75585         , p_accounting_coa_id       => l_adr_accounting_coa_id
75586         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
75587         , p_flex_value_set_id       => l_adr_flex_value_set_id
75588         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
75589         , p_adr_type_code           => 'S'
75590         , p_component_type          => l_component_type
75591         , p_component_code          => l_component_code
75592         , p_component_type_code     => l_component_type_code
75593         , p_component_appl_id       => l_component_appl_id
75594         , p_amb_context_code        => l_amb_context_code
75595         , p_entity_code             => 'AP_PAYMENTS'
75596         , p_event_class_code        => 'REFUNDS'
75597         , p_side                    => 'ALL'
75598         );
75599 
75600   END IF;
75601 
75602    l_segment := AcctDerRule_16(
75603            p_application_id           => p_application_id
75604          , p_ae_header_id             => l_ae_header_id 
75605 , p_source_3 => p_source_3
75606 , p_source_3_meaning => p_source_3_meaning
75607 , p_source_24 => p_source_24
75608 , p_source_25 => p_source_25
75609          , x_transaction_coa_id       => l_adr_transaction_coa_id
75610          , x_accounting_coa_id        => l_adr_accounting_coa_id
75611          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
75612          , x_flex_value_set_id        => l_adr_flex_value_set_id
75613          , x_value_type_code          => l_adr_value_type_code
75614          , x_value_combination_id     => l_adr_value_combination_id
75615          , x_value_segment_code       => l_adr_value_segment_code
75616          , p_side                     => 'CREDIT'
75617          , p_override_seg_flag        => 'Y'
75618    );
75619 
75620    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
75621 
75622       xla_ae_lines_pkg.set_segment(
75623           p_to_segment_code         => 'GL_ACCOUNT'
75624         , p_segment_value           => l_segment
75628         , p_transaction_coa_id      => l_adr_transaction_coa_id
75625         , p_from_segment_code       => l_adr_value_segment_code
75626         , p_from_combination_id     => l_adr_value_combination_id
75627         , p_value_type_code         => l_adr_value_type_code
75629         , p_accounting_coa_id       => l_adr_accounting_coa_id
75630         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
75631         , p_flex_value_set_id       => l_adr_flex_value_set_id
75632         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
75633         , p_adr_type_code           => 'S'
75634         , p_component_type          => l_component_type
75635         , p_component_code          => l_component_code
75636         , p_component_type_code     => l_component_type_code
75637         , p_component_appl_id       => l_component_appl_id
75638         , p_amb_context_code        => l_amb_context_code
75639         , p_entity_code             => 'AP_PAYMENTS'
75640         , p_event_class_code        => 'REFUNDS'
75641         , p_side                    => 'CREDIT'
75642         );
75643 
75644   END IF;
75645 
75646    l_segment := AcctDerRule_17(
75647            p_application_id           => p_application_id
75648          , p_ae_header_id             => l_ae_header_id 
75649 , p_source_3 => p_source_3
75650 , p_source_3_meaning => p_source_3_meaning
75651 , p_source_26 => p_source_26
75652 , p_source_27 => p_source_27
75653          , x_transaction_coa_id       => l_adr_transaction_coa_id
75654          , x_accounting_coa_id        => l_adr_accounting_coa_id
75655          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
75656          , x_flex_value_set_id        => l_adr_flex_value_set_id
75657          , x_value_type_code          => l_adr_value_type_code
75658          , x_value_combination_id     => l_adr_value_combination_id
75659          , x_value_segment_code       => l_adr_value_segment_code
75660          , p_side                     => 'DEBIT'
75661          , p_override_seg_flag        => 'Y'
75662    );
75663 
75664    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
75665 
75666       xla_ae_lines_pkg.set_segment(
75667           p_to_segment_code         => 'GL_ACCOUNT'
75668         , p_segment_value           => l_segment
75669         , p_from_segment_code       => l_adr_value_segment_code
75670         , p_from_combination_id     => l_adr_value_combination_id
75671         , p_value_type_code         => l_adr_value_type_code
75672         , p_transaction_coa_id      => l_adr_transaction_coa_id
75673         , p_accounting_coa_id       => l_adr_accounting_coa_id
75674         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
75675         , p_flex_value_set_id       => l_adr_flex_value_set_id
75676         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
75677         , p_adr_type_code           => 'S'
75678         , p_component_type          => l_component_type
75679         , p_component_code          => l_component_code
75680         , p_component_type_code     => l_component_type_code
75681         , p_component_appl_id       => l_component_appl_id
75682         , p_amb_context_code        => l_amb_context_code
75683         , p_entity_code             => 'AP_PAYMENTS'
75684         , p_event_class_code        => 'REFUNDS'
75685         , p_side                    => 'DEBIT'
75686         );
75687 
75688   END IF;
75689 
75690    --
75691    --
75692    END IF;
75693    --
75694    -- Bug 4922099
75695    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
75696           (NVL(l_enc_upg_option, 'N') = 'O')
75697         ) AND
75698         (l_bflow_method_code = 'PRIOR_ENTRY')
75699       )
75700    THEN
75701       IF
75702       --
75703       1 = 2
75704       --
75705       THEN
75706       xla_accounting_err_pkg.build_message
75707                                     (p_appli_s_name            => 'XLA'
75708                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75709                                     ,p_token_1                 => 'LINE_NUMBER'
75710                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
75711                                     ,p_token_2                 => 'LINE_TYPE_NAME'
75712                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
75713                                                                              l_component_type
75714                                                                             ,l_component_code
75715                                                                             ,l_component_type_code
75716                                                                             ,l_component_appl_id
75717                                                                             ,l_amb_context_code
75718                                                                             ,l_entity_code
75719                                                                             ,l_event_class_code
75720                                                                            )
75721                                     ,p_token_3                 => 'OWNER'
75722                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
75723                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
75724                                                                           ,p_lookup_code    => l_component_type_code
75725                                                                          )
75726                                     ,p_token_4                 => 'PRODUCT_NAME'
75730                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
75727                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
75728                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
75729                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
75731                                     ,p_ae_header_id            =>  NULL
75732                                        );
75733 
75734         IF (C_LEVEL_ERROR>= g_log_level) THEN
75735                  trace
75736                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75737                       ,p_level    => C_LEVEL_ERROR
75738                       ,p_module   => l_log_module);
75739         END IF;
75740       END IF;
75741    END IF;
75742    --
75743    --
75744    ------------------------------------------------------------------------------------------------
75745    -- 4219869 Business Flow
75746    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
75747    -- Prior Entry.  Currently, the following code is always generated.
75748    ------------------------------------------------------------------------------------------------
75749    XLA_AE_LINES_PKG.ValidateCurrentLine;
75750 
75751    ------------------------------------------------------------------------------------
75752    -- 4219869 Business Flow
75753    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
75754    ------------------------------------------------------------------------------------
75755    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75756 
75757    ----------------------------------------------------------------------------------
75758    -- 4219869 Business Flow
75759    -- Update journal entry status -- Need to generate this within IF <condition>
75760    ----------------------------------------------------------------------------------
75761    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75762          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
75763          ,p_balance_type_code => l_balance_type_code
75764          );
75765 
75766    -------------------------------------------------------------------------------------------
75767    -- 4262811 - Generate the Accrual Reversal lines
75768    -------------------------------------------------------------------------------------------
75769    BEGIN
75770       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
75771                               (g_array_event(p_event_id).array_value_num('header_index'));
75772       IF l_acc_rev_flag IS NULL THEN
75773          l_acc_rev_flag := 'N';
75774       END IF;
75775    EXCEPTION
75776       WHEN OTHERS THEN
75777          l_acc_rev_flag := 'N';
75778    END;
75779    --
75780    IF (l_acc_rev_flag = 'Y') THEN
75781 
75782        -- 4645092  ------------------------------------------------------------------------------
75783        -- To allow MPA report to determine if it should generate report process
75784        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
75785        ------------------------------------------------------------------------------------------
75786 
75787        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
75788        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
75789    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
75790    -- call ADRs
75791    -- Bug 4922099
75792    --
75793    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75794         (NVL(l_actual_upg_option, 'N') = 'O') OR
75795         (NVL(l_enc_upg_option, 'N') = 'O')
75796       )
75797    THEN
75798    NULL;
75799    --
75800    --
75801    
75802   l_ccid := AcctDerRule_37(
75803            p_application_id           => p_application_id
75804          , p_ae_header_id             => l_ae_header_id 
75805 , p_source_3 => p_source_3
75806 , p_source_3_meaning => p_source_3_meaning
75807 , p_source_18 => p_source_18
75808 , p_source_24 => p_source_24
75809 , p_source_25 => p_source_25
75810          , x_transaction_coa_id       => l_adr_transaction_coa_id
75811          , x_accounting_coa_id        => l_adr_accounting_coa_id
75812          , x_value_type_code          => l_adr_value_type_code
75813          , p_side                     => 'CREDIT'
75814    );
75815 
75816    xla_ae_lines_pkg.set_ccid(
75817     p_code_combination_id          => l_ccid
75818   , p_value_type_code              => l_adr_value_type_code
75819   , p_transaction_coa_id           => l_adr_transaction_coa_id
75820   , p_accounting_coa_id            => l_adr_accounting_coa_id
75821   , p_adr_code                     => 'AP_REAL_GAIN'
75822   , p_adr_type_code                => 'S'
75823   , p_component_type               => l_component_type
75824   , p_component_code               => l_component_code
75825   , p_component_type_code          => l_component_type_code
75826   , p_component_appl_id            => l_component_appl_id
75827   , p_amb_context_code             => l_amb_context_code
75828   , p_side                         => 'CREDIT'
75829   );
75830 
75831 
75832   l_ccid := AcctDerRule_38(
75833            p_application_id           => p_application_id
75834          , p_ae_header_id             => l_ae_header_id 
75835 , p_source_3 => p_source_3
75836 , p_source_3_meaning => p_source_3_meaning
75837 , p_source_18 => p_source_18
75838 , p_source_26 => p_source_26
75839 , p_source_27 => p_source_27
75840          , x_transaction_coa_id       => l_adr_transaction_coa_id
75841          , x_accounting_coa_id        => l_adr_accounting_coa_id
75842          , x_value_type_code          => l_adr_value_type_code
75846    xla_ae_lines_pkg.set_ccid(
75843          , p_side                     => 'DEBIT'
75844    );
75845 
75847     p_code_combination_id          => l_ccid
75848   , p_value_type_code              => l_adr_value_type_code
75849   , p_transaction_coa_id           => l_adr_transaction_coa_id
75850   , p_accounting_coa_id            => l_adr_accounting_coa_id
75851   , p_adr_code                     => 'AP_REAL_LOSS'
75852   , p_adr_type_code                => 'S'
75853   , p_component_type               => l_component_type
75854   , p_component_code               => l_component_code
75855   , p_component_type_code          => l_component_type_code
75856   , p_component_appl_id            => l_component_appl_id
75857   , p_amb_context_code             => l_amb_context_code
75858   , p_side                         => 'DEBIT'
75859   );
75860 
75861 
75862    l_segment := AcctDerRule_21(
75863            p_application_id           => p_application_id
75864          , p_ae_header_id             => l_ae_header_id 
75865 , p_source_3 => p_source_3
75866 , p_source_3_meaning => p_source_3_meaning
75867 , p_source_18 => p_source_18
75868          , x_transaction_coa_id       => l_adr_transaction_coa_id
75869          , x_accounting_coa_id        => l_adr_accounting_coa_id
75870          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
75871          , x_flex_value_set_id        => l_adr_flex_value_set_id
75872          , x_value_type_code          => l_adr_value_type_code
75873          , x_value_combination_id     => l_adr_value_combination_id
75874          , x_value_segment_code       => l_adr_value_segment_code
75875          , p_side                     => 'ALL'
75876          , p_override_seg_flag        => 'Y'
75877    );
75878 
75879    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
75880 
75881       xla_ae_lines_pkg.set_segment(
75882           p_to_segment_code         => 'GL_BALANCING'
75883         , p_segment_value           => l_segment
75884         , p_from_segment_code       => l_adr_value_segment_code
75885         , p_from_combination_id     => l_adr_value_combination_id
75886         , p_value_type_code         => l_adr_value_type_code
75887         , p_transaction_coa_id      => l_adr_transaction_coa_id
75888         , p_accounting_coa_id       => l_adr_accounting_coa_id
75889         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
75890         , p_flex_value_set_id       => l_adr_flex_value_set_id
75891         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
75892         , p_adr_type_code           => 'S'
75893         , p_component_type          => l_component_type
75894         , p_component_code          => l_component_code
75895         , p_component_type_code     => l_component_type_code
75896         , p_component_appl_id       => l_component_appl_id
75897         , p_amb_context_code        => l_amb_context_code
75898         , p_entity_code             => 'AP_PAYMENTS'
75899         , p_event_class_code        => 'REFUNDS'
75900         , p_side                    => 'ALL'
75901         );
75902 
75903   END IF;
75904 
75905    l_segment := AcctDerRule_16(
75906            p_application_id           => p_application_id
75907          , p_ae_header_id             => l_ae_header_id 
75908 , p_source_3 => p_source_3
75909 , p_source_3_meaning => p_source_3_meaning
75910 , p_source_24 => p_source_24
75911 , p_source_25 => p_source_25
75912          , x_transaction_coa_id       => l_adr_transaction_coa_id
75913          , x_accounting_coa_id        => l_adr_accounting_coa_id
75914          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
75915          , x_flex_value_set_id        => l_adr_flex_value_set_id
75916          , x_value_type_code          => l_adr_value_type_code
75917          , x_value_combination_id     => l_adr_value_combination_id
75918          , x_value_segment_code       => l_adr_value_segment_code
75919          , p_side                     => 'CREDIT'
75920          , p_override_seg_flag        => 'Y'
75921    );
75922 
75923    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
75924 
75925       xla_ae_lines_pkg.set_segment(
75926           p_to_segment_code         => 'GL_ACCOUNT'
75927         , p_segment_value           => l_segment
75928         , p_from_segment_code       => l_adr_value_segment_code
75929         , p_from_combination_id     => l_adr_value_combination_id
75930         , p_value_type_code         => l_adr_value_type_code
75931         , p_transaction_coa_id      => l_adr_transaction_coa_id
75932         , p_accounting_coa_id       => l_adr_accounting_coa_id
75933         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
75934         , p_flex_value_set_id       => l_adr_flex_value_set_id
75935         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
75936         , p_adr_type_code           => 'S'
75937         , p_component_type          => l_component_type
75938         , p_component_code          => l_component_code
75939         , p_component_type_code     => l_component_type_code
75940         , p_component_appl_id       => l_component_appl_id
75941         , p_amb_context_code        => l_amb_context_code
75942         , p_entity_code             => 'AP_PAYMENTS'
75943         , p_event_class_code        => 'REFUNDS'
75944         , p_side                    => 'CREDIT'
75945         );
75946 
75947   END IF;
75948 
75949    l_segment := AcctDerRule_17(
75950            p_application_id           => p_application_id
75951          , p_ae_header_id             => l_ae_header_id 
75952 , p_source_3 => p_source_3
75953 , p_source_3_meaning => p_source_3_meaning
75954 , p_source_26 => p_source_26
75955 , p_source_27 => p_source_27
75959          , x_flex_value_set_id        => l_adr_flex_value_set_id
75956          , x_transaction_coa_id       => l_adr_transaction_coa_id
75957          , x_accounting_coa_id        => l_adr_accounting_coa_id
75958          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
75960          , x_value_type_code          => l_adr_value_type_code
75961          , x_value_combination_id     => l_adr_value_combination_id
75962          , x_value_segment_code       => l_adr_value_segment_code
75963          , p_side                     => 'DEBIT'
75964          , p_override_seg_flag        => 'Y'
75965    );
75966 
75967    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
75968 
75969       xla_ae_lines_pkg.set_segment(
75970           p_to_segment_code         => 'GL_ACCOUNT'
75971         , p_segment_value           => l_segment
75972         , p_from_segment_code       => l_adr_value_segment_code
75973         , p_from_combination_id     => l_adr_value_combination_id
75974         , p_value_type_code         => l_adr_value_type_code
75975         , p_transaction_coa_id      => l_adr_transaction_coa_id
75976         , p_accounting_coa_id       => l_adr_accounting_coa_id
75977         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
75978         , p_flex_value_set_id       => l_adr_flex_value_set_id
75979         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
75980         , p_adr_type_code           => 'S'
75981         , p_component_type          => l_component_type
75982         , p_component_code          => l_component_code
75983         , p_component_type_code     => l_component_type_code
75984         , p_component_appl_id       => l_component_appl_id
75985         , p_amb_context_code        => l_amb_context_code
75986         , p_entity_code             => 'AP_PAYMENTS'
75987         , p_event_class_code        => 'REFUNDS'
75988         , p_side                    => 'DEBIT'
75989         );
75990 
75991   END IF;
75992 
75993    --
75994    --
75995    END IF;
75996 
75997        --
75998        -- Update the line information that should be overwritten
75999        --
76000        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
76001                                          p_header_num   => 1);
76002        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
76003 
76004        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
76005 
76006        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
76007           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
76008        END IF;
76009 
76010       --
76011       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
76012       --
76013       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
76014           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
76015       ELSE
76016           ---------------------------------------------------------------------------------------------------
76017           -- 4262811a Switch Sign
76018           ---------------------------------------------------------------------------------------------------
76019           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
76020           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76021                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76022           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76023                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76024           -- 5132302
76025           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
76026                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76027 
76028       END IF;
76029 
76030       -- 4955764
76031       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76032       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
76033 
76034 
76035       XLA_AE_LINES_PKG.ValidateCurrentLine;
76036       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76037 
76038       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76039                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
76040                ,p_balance_type_code => l_balance_type_code);
76041 
76042    END IF;
76043 
76044    -----------------------------------------------------------------------------------------
76045    -- 4262811 Multiperiod Accounting
76046    -----------------------------------------------------------------------------------------
76047      -- No MPA option is assigned.
76048 
76049 
76050 END IF;
76051 END IF;
76052 --
76053 
76054 --
76055 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76056    trace
76057       (p_msg      => 'END of AcctLineType_141'
76058       ,p_level    => C_LEVEL_PROCEDURE
76059       ,p_module   => l_log_module);
76060 END IF;
76061 --
76062 EXCEPTION
76063   WHEN xla_exceptions_pkg.application_exception THEN
76064       RAISE;
76065   WHEN OTHERS THEN
76066        xla_exceptions_pkg.raise_message
76067            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_141');
76068 END AcctLineType_141;
76069 --
76070 
76071 ---------------------------------------
76072 --
76073 -- PRIVATE FUNCTION
76074 --         AcctLineType_142
76075 --
76076 ---------------------------------------
76080  ,p_calculate_acctd_flag  IN VARCHAR2
76077 PROCEDURE AcctLineType_142 (
76078   p_application_id        IN NUMBER
76079  ,p_event_id              IN NUMBER
76081  ,p_calculate_g_l_flag    IN VARCHAR2
76082  ,p_actual_flag           IN OUT VARCHAR2
76083  ,p_balance_type_code     OUT VARCHAR2
76084  ,p_gain_or_loss_ref      OUT VARCHAR2
76085  
76086 --Automatic Offsets Value
76087  , p_source_3            IN VARCHAR2
76088  , p_source_3_meaning    IN VARCHAR2
76089 --Invoice Distribution Account
76090  , p_source_18            IN NUMBER
76091 --Internal Realized Gain Account
76092  , p_source_24            IN NUMBER
76093 --Bank Gain Account
76094  , p_source_25            IN NUMBER
76095 --Accounting Reversal Indicator
76096  , p_source_41            IN VARCHAR2
76097 --Distribution Link Type
76098  , p_source_43            IN VARCHAR2
76099 --Override Accounted Amount Indicator
76100  , p_source_68            IN VARCHAR2
76101  , p_source_68_meaning    IN VARCHAR2
76102 --Third Party Type
76103  , p_source_71            IN VARCHAR2
76104 --Invoice Distribution Tax Line Identifier
76105  , p_source_74            IN NUMBER
76106 --Invoice Distribution Summary Tax Line Identifier
76107  , p_source_76            IN NUMBER
76108 --Business Flow Accounts Payable Application Identifier
76109  , p_source_79            IN NUMBER
76110 --When to Account for Payment Option
76111  , p_source_89            IN VARCHAR2
76112 --Payment Distribution Type
76113  , p_source_90            IN VARCHAR2
76114  , p_source_90_meaning    IN VARCHAR2
76115 --Payment Distribution Amount
76116  , p_source_91            IN NUMBER
76117 --Business Flow Payment Distribution Type
76118  , p_source_92            IN VARCHAR2
76119 --Business Flow Payment Entity Code
76120  , p_source_93            IN VARCHAR2
76121 --Business Flow Payment Distribution Identifier
76122  , p_source_94            IN NUMBER
76123 --Business Flow Payment Identifier
76124  , p_source_95            IN NUMBER
76125 --Payment Distribution Identifier
76126  , p_source_96            IN NUMBER
76127 --Cleared Exchange Date
76128  , p_source_98            IN DATE
76129 --Cleared Exchange Rate
76130  , p_source_99            IN NUMBER
76131 --Cleared Exchange Rate Type
76132  , p_source_100            IN VARCHAR2
76133 --Payment Supplier Identifier
76134  , p_source_102            IN NUMBER
76135 --Payment Supplier Site Identifier
76136  , p_source_103            IN NUMBER
76137 --Payment Distribution Reversed Identifier
76138  , p_source_104            IN NUMBER
76139 --Payment Currency Code
76140  , p_source_106            IN VARCHAR2
76141 --Payment Maturity Date
76142  , p_source_107            IN DATE
76143 --Gain or Loss Indicator between Maturity and Clearing
76144  , p_source_151            IN VARCHAR2
76145 --Maturity/Clearing Ledger Amount Difference
76146  , p_source_152            IN NUMBER
76147 )
76148 IS
76149 
76150 l_component_type              VARCHAR2(80);
76151 l_component_code              VARCHAR2(30);
76152 l_component_type_code         VARCHAR2(1);
76153 l_component_appl_id           INTEGER;
76154 l_amb_context_code            VARCHAR2(30);
76155 l_entity_code                 VARCHAR2(30);
76156 l_event_class_code            VARCHAR2(30);
76157 l_ae_header_id                NUMBER;
76158 l_event_type_code             VARCHAR2(30);
76159 l_line_definition_code        VARCHAR2(30);
76160 l_line_definition_owner_code  VARCHAR2(1);
76161 --
76162 -- adr variables
76163 l_segment                     VARCHAR2(30);
76164 l_ccid                        NUMBER;
76165 l_adr_transaction_coa_id      NUMBER;
76166 l_adr_accounting_coa_id       NUMBER;
76167 l_adr_flexfield_segment_code  VARCHAR2(30);
76168 l_adr_flex_value_set_id       NUMBER;
76169 l_adr_value_type_code         VARCHAR2(30);
76170 l_adr_value_combination_id    NUMBER;
76171 l_adr_value_segment_code      VARCHAR2(30);
76172 
76173 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
76174 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
76175 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
76176 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
76177 
76178 -- 4262811 Variables ------------------------------------------------------------------------------------------
76179 l_entered_amt_idx             NUMBER;
76180 l_accted_amt_idx              NUMBER;
76181 l_acc_rev_flag                VARCHAR2(1);
76182 l_accrual_line_num            NUMBER;
76183 l_tmp_amt                     NUMBER;
76184 l_acc_rev_natural_side_code   VARCHAR2(1);
76185 
76186 l_num_entries                 NUMBER;
76187 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
76188 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
76189 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
76190 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
76191 l_recog_line_1                NUMBER;
76192 l_recog_line_2                NUMBER;
76193 
76194 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
76195 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
76196 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
76197 
76198 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
76199 
76200 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
76201 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
76202 
76203 ---------------------------------------------------------------------------------------------------------------
76204 
76205 
76206 --
76207 -- bulk performance
76208 --
76212 
76209 l_balance_type_code           VARCHAR2(1);
76210 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
76211 l_log_module                  VARCHAR2(240);
76213 --
76214 -- Upgrade strategy
76215 --
76216 l_actual_upg_option           VARCHAR2(1);
76217 l_enc_upg_option           VARCHAR2(1);
76218 
76219 --
76220 BEGIN
76221 --
76222 IF g_log_enabled THEN
76223       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_142';
76224 END IF;
76225 --
76226 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76227 
76228       trace
76229          (p_msg      => 'BEGIN of AcctLineType_142'
76230          ,p_level    => C_LEVEL_PROCEDURE
76231          ,p_module   => l_log_module);
76232 
76233 END IF;
76234 --
76235 l_component_type             := 'AMB_JLT';
76236 l_component_code             := 'AP_GAIN_MAT_CLEAR';
76237 l_component_type_code        := 'S';
76238 l_component_appl_id          :=  200;
76239 l_amb_context_code           := 'DEFAULT';
76240 l_entity_code                := 'AP_PAYMENTS';
76241 l_event_class_code           := 'RECONCILED PAYMENTS';
76242 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
76243 l_line_definition_owner_code := 'S';
76244 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
76245 --
76246 l_balance_type_code          := 'A';
76247 l_segment                     := NULL;
76248 l_ccid                        := NULL;
76249 l_adr_transaction_coa_id      := NULL;
76250 l_adr_accounting_coa_id       := NULL;
76251 l_adr_flexfield_segment_code  := NULL;
76252 l_adr_flex_value_set_id       := NULL;
76253 l_adr_value_type_code         := NULL;
76254 l_adr_value_combination_id    := NULL;
76255 l_adr_value_segment_code      := NULL;
76256 
76257 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
76258 l_bflow_class_code           := '';    -- 4219869 Business Flow
76259 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
76260 l_budgetary_control_flag     := 'N';
76261 
76262 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
76263 l_bflow_applied_to_amt       := NULL; -- 5132302
76264 l_entered_amt_idx            := NULL;          -- 4262811
76265 l_accted_amt_idx             := NULL;          -- 4262811
76266 l_acc_rev_flag               := NULL;          -- 4262811
76267 l_accrual_line_num           := NULL;          -- 4262811
76268 l_tmp_amt                    := NULL;          -- 4262811
76269 --
76270 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
76271             (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
76272                return;
76273   END IF;
76274   
76275 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
76276     l_balance_type_code <> 'B' THEN
76277 IF NVL(p_source_89,'
76278 ') =  'ALWAYS_ALWAYS' AND 
76279 p_source_107 IS NOT NULL AND 
76280 NVL(p_source_151,'
76281 ') =  'GAIN' AND 
76282 NVL(p_source_90,'
76283 ') <>  'EXCHANGE RATE VARIANCE' AND 
76284 NVL(p_source_90,'
76285 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
76286 NVL(p_source_90,'
76287 ') <>  'BANK CHARGE' AND 
76288 NVL(p_source_90,'
76289 ') <>  'BANK ERROR'
76290  THEN 
76291 
76292    --
76293    XLA_AE_LINES_PKG.SetNewLine;
76294 
76295    p_balance_type_code          := l_balance_type_code;
76296    -- set the flag so later we will know whether the gain loss line needs to be created
76297    
76298    IF(l_balance_type_code = 'A' ) THEN
76299      p_actual_flag :='G';
76300    END IF;
76301 
76302    --
76303    -- bulk performance
76304    --
76305    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
76306                                       p_header_num   => 0); -- 4262811
76307    --
76308    -- set accounting line options
76309    --
76310    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
76311            p_natural_side_code          => 'C'
76312          , p_gain_or_loss_flag          => 'Y'
76313          , p_gl_transfer_mode_code      => 'S'
76314          , p_acct_entry_type_code       => 'A'
76315          , p_switch_side_flag           => 'Y'
76316          , p_merge_duplicate_code       => 'A'
76317          );
76318    --
76319    l_acc_rev_natural_side_code := 'D';  -- 4262811
76320    -- 
76321    --
76322    -- set accounting line type info
76323    --
76324    xla_ae_lines_pkg.SetAcctLineType
76325       (p_component_type             => l_component_type
76326       ,p_event_type_code            => l_event_type_code
76327       ,p_line_definition_owner_code => l_line_definition_owner_code
76328       ,p_line_definition_code       => l_line_definition_code
76329       ,p_accounting_line_code       => l_component_code
76330       ,p_accounting_line_type_code  => l_component_type_code
76331       ,p_accounting_line_appl_id    => l_component_appl_id
76332       ,p_amb_context_code           => l_amb_context_code
76333       ,p_entity_code                => l_entity_code
76334       ,p_event_class_code           => l_event_class_code);
76335    --
76336    -- set accounting class
76337    --
76338    xla_ae_lines_pkg.SetAcctClass(
76339            p_accounting_class_code  => 'GAIN'
76340          , p_ae_header_id           => l_ae_header_id
76341          );
76342 
76343    --
76344    -- set rounding class
76345    --
76346    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
76347                       'GAIN';
76348 
76349    --
76353    -- bulk performance
76350    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
76351    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
76352    --
76354    --
76355    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
76356 
76357    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
76358       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
76359 
76360    -- 4955764
76361    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76362       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
76363 
76364    -- 4458381 Public Sector Enh
76365    
76366    --
76367    -- set accounting attributes for the line type
76368    --
76369    l_entered_amt_idx := 10;
76370    l_accted_amt_idx  := 15;
76371    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
76372    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
76373    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
76374    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
76375    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
76376    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
76377    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
76378    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
76379    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
76380    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
76381    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
76382    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
76383    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
76384    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
76385    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
76386    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
76387    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
76388    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
76389    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
76390    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
76391    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
76392    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
76393    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
76394    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
76395    l_rec_acct_attrs.array_date_value(12)  := p_source_98;
76396    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
76397    l_rec_acct_attrs.array_num_value(13)  := p_source_99;
76398    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
76399    l_rec_acct_attrs.array_char_value(14)  := p_source_100;
76400    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
76401    l_rec_acct_attrs.array_num_value(15)  := p_source_152;
76402    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
76403    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
76404    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
76405    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
76406    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
76407    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
76408    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
76409    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
76410    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
76411    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
76412    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
76413    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
76414    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
76415    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
76416    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
76417    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
76418    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
76419    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
76420 
76421    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
76422    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
76423 
76424    ---------------------------------------------------------------------------------------------------------------
76425    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
76426    ---------------------------------------------------------------------------------------------------------------
76427    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
76428 
76429    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76430    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76431 
76432    IF xla_accounting_cache_pkg.GetValueChar
76433          (p_source_code         => 'LEDGER_CATEGORY_CODE'
76434          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
76435    AND l_bflow_method_code = 'PRIOR_ENTRY'
76436 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
76437    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
76438          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
76439        )
76440    THEN
76441          xla_ae_lines_pkg.BflowUpgEntry
76442            (p_business_method_code    => l_bflow_method_code
76443            ,p_business_class_code     => l_bflow_class_code
76444            ,p_balance_type            => l_balance_type_code);
76445    ELSE
76446       NULL;
76450    --
76447 -- No business flow processing for business flow method of NONE.
76448    END IF;
76449 
76451    -- call analytical criteria
76452    --
76453    
76454    --
76455    -- call description
76456    --
76457    -- No description or it is inherited.
76458    --
76459    -- call ADRs
76460    -- Bug 4922099
76461    --
76462    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76463         (NVL(l_actual_upg_option, 'N') = 'O') OR
76464         (NVL(l_enc_upg_option, 'N') = 'O')
76465       )
76466    THEN
76467    NULL;
76468    --
76469    --
76470    
76471   l_ccid := AcctDerRule_37(
76472            p_application_id           => p_application_id
76473          , p_ae_header_id             => l_ae_header_id 
76474 , p_source_3 => p_source_3
76475 , p_source_3_meaning => p_source_3_meaning
76476 , p_source_18 => p_source_18
76477 , p_source_24 => p_source_24
76478 , p_source_25 => p_source_25
76479          , x_transaction_coa_id       => l_adr_transaction_coa_id
76480          , x_accounting_coa_id        => l_adr_accounting_coa_id
76481          , x_value_type_code          => l_adr_value_type_code
76482          , p_side                     => 'NA'
76483    );
76484 
76485    xla_ae_lines_pkg.set_ccid(
76486     p_code_combination_id          => l_ccid
76487   , p_value_type_code              => l_adr_value_type_code
76488   , p_transaction_coa_id           => l_adr_transaction_coa_id
76489   , p_accounting_coa_id            => l_adr_accounting_coa_id
76490   , p_adr_code                     => 'AP_REAL_GAIN'
76491   , p_adr_type_code                => 'S'
76492   , p_component_type               => l_component_type
76493   , p_component_code               => l_component_code
76494   , p_component_type_code          => l_component_type_code
76495   , p_component_appl_id            => l_component_appl_id
76496   , p_amb_context_code             => l_amb_context_code
76497   , p_side                         => 'NA'
76498   );
76499 
76500 
76501    l_segment := AcctDerRule_21(
76502            p_application_id           => p_application_id
76503          , p_ae_header_id             => l_ae_header_id 
76504 , p_source_3 => p_source_3
76505 , p_source_3_meaning => p_source_3_meaning
76506 , p_source_18 => p_source_18
76507          , x_transaction_coa_id       => l_adr_transaction_coa_id
76508          , x_accounting_coa_id        => l_adr_accounting_coa_id
76509          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
76510          , x_flex_value_set_id        => l_adr_flex_value_set_id
76511          , x_value_type_code          => l_adr_value_type_code
76512          , x_value_combination_id     => l_adr_value_combination_id
76513          , x_value_segment_code       => l_adr_value_segment_code
76514          , p_side                     => 'NA'
76515          , p_override_seg_flag        => 'Y'
76516    );
76517 
76518    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
76519 
76520       xla_ae_lines_pkg.set_segment(
76521           p_to_segment_code         => 'GL_BALANCING'
76522         , p_segment_value           => l_segment
76523         , p_from_segment_code       => l_adr_value_segment_code
76524         , p_from_combination_id     => l_adr_value_combination_id
76525         , p_value_type_code         => l_adr_value_type_code
76526         , p_transaction_coa_id      => l_adr_transaction_coa_id
76527         , p_accounting_coa_id       => l_adr_accounting_coa_id
76528         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
76529         , p_flex_value_set_id       => l_adr_flex_value_set_id
76530         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
76531         , p_adr_type_code           => 'S'
76532         , p_component_type          => l_component_type
76533         , p_component_code          => l_component_code
76534         , p_component_type_code     => l_component_type_code
76535         , p_component_appl_id       => l_component_appl_id
76536         , p_amb_context_code        => l_amb_context_code
76537         , p_entity_code             => 'AP_PAYMENTS'
76538         , p_event_class_code        => 'RECONCILED PAYMENTS'
76539         , p_side                    => 'NA'
76540         );
76541 
76542   END IF;
76543 
76544    l_segment := AcctDerRule_16(
76545            p_application_id           => p_application_id
76546          , p_ae_header_id             => l_ae_header_id 
76547 , p_source_3 => p_source_3
76548 , p_source_3_meaning => p_source_3_meaning
76549 , p_source_24 => p_source_24
76550 , p_source_25 => p_source_25
76551          , x_transaction_coa_id       => l_adr_transaction_coa_id
76552          , x_accounting_coa_id        => l_adr_accounting_coa_id
76553          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
76554          , x_flex_value_set_id        => l_adr_flex_value_set_id
76555          , x_value_type_code          => l_adr_value_type_code
76556          , x_value_combination_id     => l_adr_value_combination_id
76557          , x_value_segment_code       => l_adr_value_segment_code
76558          , p_side                     => 'NA'
76559          , p_override_seg_flag        => 'Y'
76560    );
76561 
76562    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
76563 
76564       xla_ae_lines_pkg.set_segment(
76565           p_to_segment_code         => 'GL_ACCOUNT'
76566         , p_segment_value           => l_segment
76567         , p_from_segment_code       => l_adr_value_segment_code
76568         , p_from_combination_id     => l_adr_value_combination_id
76569         , p_value_type_code         => l_adr_value_type_code
76570         , p_transaction_coa_id      => l_adr_transaction_coa_id
76571         , p_accounting_coa_id       => l_adr_accounting_coa_id
76572         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
76576         , p_component_type          => l_component_type
76573         , p_flex_value_set_id       => l_adr_flex_value_set_id
76574         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
76575         , p_adr_type_code           => 'S'
76577         , p_component_code          => l_component_code
76578         , p_component_type_code     => l_component_type_code
76579         , p_component_appl_id       => l_component_appl_id
76580         , p_amb_context_code        => l_amb_context_code
76581         , p_entity_code             => 'AP_PAYMENTS'
76582         , p_event_class_code        => 'RECONCILED PAYMENTS'
76583         , p_side                    => 'NA'
76584         );
76585 
76586   END IF;
76587 
76588    --
76589    --
76590    END IF;
76591    --
76592    -- Bug 4922099
76593    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
76594           (NVL(l_enc_upg_option, 'N') = 'O')
76595         ) AND
76596         (l_bflow_method_code = 'PRIOR_ENTRY')
76597       )
76598    THEN
76599       IF
76600       --
76601       1 = 2
76602       --
76603       THEN
76604       xla_accounting_err_pkg.build_message
76605                                     (p_appli_s_name            => 'XLA'
76606                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76607                                     ,p_token_1                 => 'LINE_NUMBER'
76608                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
76609                                     ,p_token_2                 => 'LINE_TYPE_NAME'
76610                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
76611                                                                              l_component_type
76612                                                                             ,l_component_code
76613                                                                             ,l_component_type_code
76614                                                                             ,l_component_appl_id
76615                                                                             ,l_amb_context_code
76616                                                                             ,l_entity_code
76617                                                                             ,l_event_class_code
76618                                                                            )
76619                                     ,p_token_3                 => 'OWNER'
76620                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
76621                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
76622                                                                           ,p_lookup_code    => l_component_type_code
76623                                                                          )
76624                                     ,p_token_4                 => 'PRODUCT_NAME'
76625                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
76626                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
76627                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
76628                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
76629                                     ,p_ae_header_id            =>  NULL
76630                                        );
76631 
76632         IF (C_LEVEL_ERROR>= g_log_level) THEN
76633                  trace
76634                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76635                       ,p_level    => C_LEVEL_ERROR
76636                       ,p_module   => l_log_module);
76637         END IF;
76638       END IF;
76639    END IF;
76640    --
76641    --
76642    ------------------------------------------------------------------------------------------------
76643    -- 4219869 Business Flow
76644    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
76645    -- Prior Entry.  Currently, the following code is always generated.
76646    ------------------------------------------------------------------------------------------------
76647    XLA_AE_LINES_PKG.ValidateCurrentLine;
76648 
76649    ------------------------------------------------------------------------------------
76650    -- 4219869 Business Flow
76651    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
76652    ------------------------------------------------------------------------------------
76653    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76654 
76655    ----------------------------------------------------------------------------------
76656    -- 4219869 Business Flow
76657    -- Update journal entry status -- Need to generate this within IF <condition>
76658    ----------------------------------------------------------------------------------
76659    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76660          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
76661          ,p_balance_type_code => l_balance_type_code
76662          );
76663 
76664    -------------------------------------------------------------------------------------------
76665    -- 4262811 - Generate the Accrual Reversal lines
76666    -------------------------------------------------------------------------------------------
76667    BEGIN
76668       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
76669                               (g_array_event(p_event_id).array_value_num('header_index'));
76670       IF l_acc_rev_flag IS NULL THEN
76671          l_acc_rev_flag := 'N';
76672       END IF;
76673    EXCEPTION
76674       WHEN OTHERS THEN
76675          l_acc_rev_flag := 'N';
76676    END;
76680        -- 4645092  ------------------------------------------------------------------------------
76677    --
76678    IF (l_acc_rev_flag = 'Y') THEN
76679 
76681        -- To allow MPA report to determine if it should generate report process
76682        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
76683        ------------------------------------------------------------------------------------------
76684 
76685        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
76686        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
76687    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
76688    -- call ADRs
76689    -- Bug 4922099
76690    --
76691    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76692         (NVL(l_actual_upg_option, 'N') = 'O') OR
76693         (NVL(l_enc_upg_option, 'N') = 'O')
76694       )
76695    THEN
76696    NULL;
76697    --
76698    --
76699    
76700   l_ccid := AcctDerRule_37(
76701            p_application_id           => p_application_id
76702          , p_ae_header_id             => l_ae_header_id 
76703 , p_source_3 => p_source_3
76704 , p_source_3_meaning => p_source_3_meaning
76705 , p_source_18 => p_source_18
76706 , p_source_24 => p_source_24
76707 , p_source_25 => p_source_25
76708          , x_transaction_coa_id       => l_adr_transaction_coa_id
76709          , x_accounting_coa_id        => l_adr_accounting_coa_id
76710          , x_value_type_code          => l_adr_value_type_code
76711          , p_side                     => 'NA'
76712    );
76713 
76714    xla_ae_lines_pkg.set_ccid(
76715     p_code_combination_id          => l_ccid
76716   , p_value_type_code              => l_adr_value_type_code
76717   , p_transaction_coa_id           => l_adr_transaction_coa_id
76718   , p_accounting_coa_id            => l_adr_accounting_coa_id
76719   , p_adr_code                     => 'AP_REAL_GAIN'
76720   , p_adr_type_code                => 'S'
76721   , p_component_type               => l_component_type
76722   , p_component_code               => l_component_code
76723   , p_component_type_code          => l_component_type_code
76724   , p_component_appl_id            => l_component_appl_id
76725   , p_amb_context_code             => l_amb_context_code
76726   , p_side                         => 'NA'
76727   );
76728 
76729 
76730    l_segment := AcctDerRule_21(
76731            p_application_id           => p_application_id
76732          , p_ae_header_id             => l_ae_header_id 
76733 , p_source_3 => p_source_3
76734 , p_source_3_meaning => p_source_3_meaning
76735 , p_source_18 => p_source_18
76736          , x_transaction_coa_id       => l_adr_transaction_coa_id
76737          , x_accounting_coa_id        => l_adr_accounting_coa_id
76738          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
76739          , x_flex_value_set_id        => l_adr_flex_value_set_id
76740          , x_value_type_code          => l_adr_value_type_code
76741          , x_value_combination_id     => l_adr_value_combination_id
76742          , x_value_segment_code       => l_adr_value_segment_code
76743          , p_side                     => 'NA'
76744          , p_override_seg_flag        => 'Y'
76745    );
76746 
76747    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
76748 
76749       xla_ae_lines_pkg.set_segment(
76750           p_to_segment_code         => 'GL_BALANCING'
76751         , p_segment_value           => l_segment
76752         , p_from_segment_code       => l_adr_value_segment_code
76753         , p_from_combination_id     => l_adr_value_combination_id
76754         , p_value_type_code         => l_adr_value_type_code
76755         , p_transaction_coa_id      => l_adr_transaction_coa_id
76756         , p_accounting_coa_id       => l_adr_accounting_coa_id
76757         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
76758         , p_flex_value_set_id       => l_adr_flex_value_set_id
76759         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
76760         , p_adr_type_code           => 'S'
76761         , p_component_type          => l_component_type
76762         , p_component_code          => l_component_code
76763         , p_component_type_code     => l_component_type_code
76764         , p_component_appl_id       => l_component_appl_id
76765         , p_amb_context_code        => l_amb_context_code
76766         , p_entity_code             => 'AP_PAYMENTS'
76767         , p_event_class_code        => 'RECONCILED PAYMENTS'
76768         , p_side                    => 'NA'
76769         );
76770 
76771   END IF;
76772 
76773    l_segment := AcctDerRule_16(
76774            p_application_id           => p_application_id
76775          , p_ae_header_id             => l_ae_header_id 
76776 , p_source_3 => p_source_3
76777 , p_source_3_meaning => p_source_3_meaning
76778 , p_source_24 => p_source_24
76779 , p_source_25 => p_source_25
76780          , x_transaction_coa_id       => l_adr_transaction_coa_id
76781          , x_accounting_coa_id        => l_adr_accounting_coa_id
76782          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
76783          , x_flex_value_set_id        => l_adr_flex_value_set_id
76784          , x_value_type_code          => l_adr_value_type_code
76785          , x_value_combination_id     => l_adr_value_combination_id
76786          , x_value_segment_code       => l_adr_value_segment_code
76787          , p_side                     => 'NA'
76788          , p_override_seg_flag        => 'Y'
76789    );
76790 
76791    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
76792 
76793       xla_ae_lines_pkg.set_segment(
76794           p_to_segment_code         => 'GL_ACCOUNT'
76795         , p_segment_value           => l_segment
76796         , p_from_segment_code       => l_adr_value_segment_code
76800         , p_accounting_coa_id       => l_adr_accounting_coa_id
76797         , p_from_combination_id     => l_adr_value_combination_id
76798         , p_value_type_code         => l_adr_value_type_code
76799         , p_transaction_coa_id      => l_adr_transaction_coa_id
76801         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
76802         , p_flex_value_set_id       => l_adr_flex_value_set_id
76803         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
76804         , p_adr_type_code           => 'S'
76805         , p_component_type          => l_component_type
76806         , p_component_code          => l_component_code
76807         , p_component_type_code     => l_component_type_code
76808         , p_component_appl_id       => l_component_appl_id
76809         , p_amb_context_code        => l_amb_context_code
76810         , p_entity_code             => 'AP_PAYMENTS'
76811         , p_event_class_code        => 'RECONCILED PAYMENTS'
76812         , p_side                    => 'NA'
76813         );
76814 
76815   END IF;
76816 
76817    --
76818    --
76819    END IF;
76820 
76821        --
76822        -- Update the line information that should be overwritten
76823        --
76824        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
76825                                          p_header_num   => 1);
76826        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
76827 
76828        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
76829 
76830        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
76831           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
76832        END IF;
76833 
76834       --
76835       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
76836       --
76837       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
76838           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
76839       ELSE
76840           ---------------------------------------------------------------------------------------------------
76841           -- 4262811a Switch Sign
76842           ---------------------------------------------------------------------------------------------------
76843           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
76844           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76845                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76846           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76847                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76848           -- 5132302
76849           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
76850                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76851 
76852       END IF;
76853 
76854       -- 4955764
76855       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76856       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
76857 
76858 
76859       XLA_AE_LINES_PKG.ValidateCurrentLine;
76860       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76861 
76862       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76863                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
76864                ,p_balance_type_code => l_balance_type_code);
76865 
76866    END IF;
76867 
76868    -----------------------------------------------------------------------------------------
76869    -- 4262811 Multiperiod Accounting
76870    -----------------------------------------------------------------------------------------
76871      -- No MPA option is assigned.
76872 
76873 
76874 END IF;
76875 END IF;
76876 --
76877 
76878 --
76879 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76880    trace
76881       (p_msg      => 'END of AcctLineType_142'
76882       ,p_level    => C_LEVEL_PROCEDURE
76883       ,p_module   => l_log_module);
76884 END IF;
76885 --
76886 EXCEPTION
76887   WHEN xla_exceptions_pkg.application_exception THEN
76888       RAISE;
76889   WHEN OTHERS THEN
76890        xla_exceptions_pkg.raise_message
76891            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_142');
76892 END AcctLineType_142;
76893 --
76894 
76895 ---------------------------------------
76896 --
76897 -- PRIVATE FUNCTION
76898 --         AcctLineType_143
76899 --
76900 ---------------------------------------
76901 PROCEDURE AcctLineType_143 (
76902   p_application_id        IN NUMBER
76903  ,p_event_id              IN NUMBER
76904  ,p_calculate_acctd_flag  IN VARCHAR2
76905  ,p_calculate_g_l_flag    IN VARCHAR2
76906  ,p_actual_flag           IN OUT VARCHAR2
76907  ,p_balance_type_code     OUT VARCHAR2
76908  ,p_gain_or_loss_ref      OUT VARCHAR2
76909  
76910 --Automatic Offsets Value
76911  , p_source_3            IN VARCHAR2
76912  , p_source_3_meaning    IN VARCHAR2
76913 --Invoice Distribution Account
76914  , p_source_18            IN NUMBER
76915 --Internal Realized Gain Account
76916  , p_source_24            IN NUMBER
76917 --Bank Gain Account
76918  , p_source_25            IN NUMBER
76919 --Accounting Reversal Indicator
76920  , p_source_41            IN VARCHAR2
76921 --Distribution Link Type
76922  , p_source_43            IN VARCHAR2
76926 --Third Party Type
76923 --Override Accounted Amount Indicator
76924  , p_source_68            IN VARCHAR2
76925  , p_source_68_meaning    IN VARCHAR2
76927  , p_source_71            IN VARCHAR2
76928 --Invoice Distribution Tax Line Identifier
76929  , p_source_74            IN NUMBER
76930 --Invoice Distribution Tax Distribution Identifier from Tax
76931  , p_source_75            IN NUMBER
76932 --Invoice Distribution Summary Tax Line Identifier
76933  , p_source_76            IN NUMBER
76934 --Business Flow Accounts Payable Application Identifier
76935  , p_source_79            IN NUMBER
76936 --Business Flow Invoice Distribution Type
76937  , p_source_80            IN VARCHAR2
76938 --Business Flow Invoice Entity Code
76939  , p_source_81            IN VARCHAR2
76940 --Business Flow Invoice Distribution Identifier
76941  , p_source_82            IN NUMBER
76942 --Business Flow Invoice Identifier
76943  , p_source_83            IN NUMBER
76944 --When to Account for Payment Option
76945  , p_source_89            IN VARCHAR2
76946 --Payment Distribution Type
76947  , p_source_90            IN VARCHAR2
76948  , p_source_90_meaning    IN VARCHAR2
76949 --Payment Distribution Amount
76950  , p_source_91            IN NUMBER
76951 --Payment Distribution Identifier
76952  , p_source_96            IN NUMBER
76953 --Payment Supplier Identifier
76954  , p_source_102            IN NUMBER
76955 --Payment Supplier Site Identifier
76956  , p_source_103            IN NUMBER
76957 --Payment Distribution Reversed Identifier
76958  , p_source_104            IN NUMBER
76959 --Payment Currency Code
76960  , p_source_106            IN VARCHAR2
76961 --Payment Exchange Date
76962  , p_source_110            IN DATE
76963 --Payment Exchange Rate
76964  , p_source_111            IN NUMBER
76965 --Payment Exchange Rate Type
76966  , p_source_112            IN VARCHAR2
76967 --Payment Type
76968  , p_source_115            IN VARCHAR2
76969  , p_source_115_meaning    IN VARCHAR2
76970 --Invoice Distribution Amount of the Payment Distribution
76971  , p_source_117            IN NUMBER
76972 --Invoice/Payment Ledger Amount Difference
76973  , p_source_148            IN NUMBER
76974 --Gain or Loss Indicator between Invoice and Payment
76975  , p_source_153            IN VARCHAR2
76976 )
76977 IS
76978 
76979 l_component_type              VARCHAR2(80);
76980 l_component_code              VARCHAR2(30);
76981 l_component_type_code         VARCHAR2(1);
76982 l_component_appl_id           INTEGER;
76983 l_amb_context_code            VARCHAR2(30);
76984 l_entity_code                 VARCHAR2(30);
76985 l_event_class_code            VARCHAR2(30);
76986 l_ae_header_id                NUMBER;
76987 l_event_type_code             VARCHAR2(30);
76988 l_line_definition_code        VARCHAR2(30);
76989 l_line_definition_owner_code  VARCHAR2(1);
76990 --
76991 -- adr variables
76992 l_segment                     VARCHAR2(30);
76993 l_ccid                        NUMBER;
76994 l_adr_transaction_coa_id      NUMBER;
76995 l_adr_accounting_coa_id       NUMBER;
76996 l_adr_flexfield_segment_code  VARCHAR2(30);
76997 l_adr_flex_value_set_id       NUMBER;
76998 l_adr_value_type_code         VARCHAR2(30);
76999 l_adr_value_combination_id    NUMBER;
77000 l_adr_value_segment_code      VARCHAR2(30);
77001 
77002 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
77003 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
77004 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
77005 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
77006 
77007 -- 4262811 Variables ------------------------------------------------------------------------------------------
77008 l_entered_amt_idx             NUMBER;
77009 l_accted_amt_idx              NUMBER;
77010 l_acc_rev_flag                VARCHAR2(1);
77011 l_accrual_line_num            NUMBER;
77012 l_tmp_amt                     NUMBER;
77013 l_acc_rev_natural_side_code   VARCHAR2(1);
77014 
77015 l_num_entries                 NUMBER;
77016 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
77017 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
77018 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
77019 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
77020 l_recog_line_1                NUMBER;
77021 l_recog_line_2                NUMBER;
77022 
77023 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
77024 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
77025 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
77026 
77027 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
77028 
77029 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
77030 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
77031 
77032 ---------------------------------------------------------------------------------------------------------------
77033 
77034 
77035 --
77036 -- bulk performance
77037 --
77038 l_balance_type_code           VARCHAR2(1);
77039 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
77040 l_log_module                  VARCHAR2(240);
77041 
77042 --
77043 -- Upgrade strategy
77044 --
77045 l_actual_upg_option           VARCHAR2(1);
77046 l_enc_upg_option           VARCHAR2(1);
77047 
77048 --
77049 BEGIN
77050 --
77051 IF g_log_enabled THEN
77052       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_143';
77053 END IF;
77054 --
77055 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77056 
77057       trace
77061 
77058          (p_msg      => 'BEGIN of AcctLineType_143'
77059          ,p_level    => C_LEVEL_PROCEDURE
77060          ,p_module   => l_log_module);
77062 END IF;
77063 --
77064 l_component_type             := 'AMB_JLT';
77065 l_component_code             := 'AP_GAIN_PMT';
77066 l_component_type_code        := 'S';
77067 l_component_appl_id          :=  200;
77068 l_amb_context_code           := 'DEFAULT';
77069 l_entity_code                := 'AP_PAYMENTS';
77070 l_event_class_code           := 'PAYMENTS';
77071 l_event_type_code            := 'PAYMENTS_ALL';
77072 l_line_definition_owner_code := 'S';
77073 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
77074 --
77075 l_balance_type_code          := 'A';
77076 l_segment                     := NULL;
77077 l_ccid                        := NULL;
77078 l_adr_transaction_coa_id      := NULL;
77079 l_adr_accounting_coa_id       := NULL;
77080 l_adr_flexfield_segment_code  := NULL;
77081 l_adr_flex_value_set_id       := NULL;
77082 l_adr_value_type_code         := NULL;
77083 l_adr_value_combination_id    := NULL;
77084 l_adr_value_segment_code      := NULL;
77085 
77086 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
77087 l_bflow_class_code           := '';    -- 4219869 Business Flow
77088 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
77089 l_budgetary_control_flag     := 'N';
77090 
77091 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
77092 l_bflow_applied_to_amt       := NULL; -- 5132302
77093 l_entered_amt_idx            := NULL;          -- 4262811
77094 l_accted_amt_idx             := NULL;          -- 4262811
77095 l_acc_rev_flag               := NULL;          -- 4262811
77096 l_accrual_line_num           := NULL;          -- 4262811
77097 l_tmp_amt                    := NULL;          -- 4262811
77098 --
77099 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
77100             (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
77101                return;
77102   END IF;
77103   
77104 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
77105     l_balance_type_code <> 'B' THEN
77106 IF (NVL(p_source_89,'
77107 ') <>  'CLEAR_CLEAR' AND 
77108 NVL(p_source_89,'
77109 ') <>  'ALWAYS_CLEAR') AND 
77110 NVL(p_source_153,'
77111 ') =  'GAIN' AND 
77112 NVL(p_source_90,'
77113 ') <>  'EXCHANGE RATE VARIANCE' AND 
77114 NVL(p_source_90,'
77115 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
77116 NVL(p_source_90,'
77117 ') <>  'BANK ERROR' AND 
77118 NVL(p_source_90,'
77119 ') <>  'BANK CHARGE' AND 
77120 NVL(p_source_90,'
77121 ') <>  'AWT' AND 
77122 NVL(p_source_115,'
77123 ') <>  'R'
77124  THEN 
77125 
77126    --
77127    XLA_AE_LINES_PKG.SetNewLine;
77128 
77129    p_balance_type_code          := l_balance_type_code;
77130    -- set the flag so later we will know whether the gain loss line needs to be created
77131    
77132    IF(l_balance_type_code = 'A' ) THEN
77133      p_actual_flag :='G';
77134    END IF;
77135 
77136    --
77137    -- bulk performance
77138    --
77139    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
77140                                       p_header_num   => 0); -- 4262811
77141    --
77142    -- set accounting line options
77143    --
77144    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
77145            p_natural_side_code          => 'C'
77146          , p_gain_or_loss_flag          => 'Y'
77147          , p_gl_transfer_mode_code      => 'S'
77148          , p_acct_entry_type_code       => 'A'
77149          , p_switch_side_flag           => 'Y'
77150          , p_merge_duplicate_code       => 'A'
77151          );
77152    --
77153    l_acc_rev_natural_side_code := 'D';  -- 4262811
77154    -- 
77155    --
77156    -- set accounting line type info
77157    --
77158    xla_ae_lines_pkg.SetAcctLineType
77159       (p_component_type             => l_component_type
77160       ,p_event_type_code            => l_event_type_code
77161       ,p_line_definition_owner_code => l_line_definition_owner_code
77162       ,p_line_definition_code       => l_line_definition_code
77163       ,p_accounting_line_code       => l_component_code
77164       ,p_accounting_line_type_code  => l_component_type_code
77165       ,p_accounting_line_appl_id    => l_component_appl_id
77166       ,p_amb_context_code           => l_amb_context_code
77167       ,p_entity_code                => l_entity_code
77168       ,p_event_class_code           => l_event_class_code);
77169    --
77170    -- set accounting class
77171    --
77172    xla_ae_lines_pkg.SetAcctClass(
77173            p_accounting_class_code  => 'GAIN'
77174          , p_ae_header_id           => l_ae_header_id
77175          );
77176 
77177    --
77178    -- set rounding class
77179    --
77180    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
77181                       'GAIN';
77182 
77183    --
77184    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
77185    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
77186    --
77187    -- bulk performance
77188    --
77189    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
77190 
77191    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
77192       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
77193 
77194    -- 4955764
77198    -- 4458381 Public Sector Enh
77195    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77196       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
77197 
77199    
77200    --
77201    -- set accounting attributes for the line type
77202    --
77203    l_entered_amt_idx := 10;
77204    l_accted_amt_idx  := 15;
77205    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
77206    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
77207    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
77208    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
77209    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
77210    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
77211    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
77212    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
77213    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
77214    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
77215    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
77216    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
77217    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
77218    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
77219    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
77220    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
77221    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
77222    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
77223    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
77224    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
77225    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
77226    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
77227    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
77228    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
77229    l_rec_acct_attrs.array_date_value(12)  := p_source_110;
77230    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
77231    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
77232    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
77233    l_rec_acct_attrs.array_char_value(14)  := p_source_112;
77234    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
77235    l_rec_acct_attrs.array_num_value(15)  := p_source_148;
77236    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
77237    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
77238    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
77239    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
77240    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
77241    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
77242    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
77243    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
77244    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
77245    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
77246    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
77247    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
77248    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
77249    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
77250    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
77251    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
77252    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
77253    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
77254 
77255    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
77256    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
77257 
77258    ---------------------------------------------------------------------------------------------------------------
77259    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
77260    ---------------------------------------------------------------------------------------------------------------
77261    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
77262 
77263    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77264    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77265 
77266    IF xla_accounting_cache_pkg.GetValueChar
77267          (p_source_code         => 'LEDGER_CATEGORY_CODE'
77268          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
77269    AND l_bflow_method_code = 'PRIOR_ENTRY'
77270 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
77271    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
77272          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
77273        )
77274    THEN
77275          xla_ae_lines_pkg.BflowUpgEntry
77276            (p_business_method_code    => l_bflow_method_code
77277            ,p_business_class_code     => l_bflow_class_code
77278            ,p_balance_type            => l_balance_type_code);
77279    ELSE
77280       NULL;
77281 -- No business flow processing for business flow method of NONE.
77282    END IF;
77283 
77284    --
77285    -- call analytical criteria
77286    --
77287    
77288    --
77289    -- call description
77290    --
77291    -- No description or it is inherited.
77292    --
77293    -- call ADRs
77294    -- Bug 4922099
77295    --
77296    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77297         (NVL(l_actual_upg_option, 'N') = 'O') OR
77298         (NVL(l_enc_upg_option, 'N') = 'O')
77299       )
77300    THEN
77304    
77301    NULL;
77302    --
77303    --
77305   l_ccid := AcctDerRule_37(
77306            p_application_id           => p_application_id
77307          , p_ae_header_id             => l_ae_header_id 
77308 , p_source_3 => p_source_3
77309 , p_source_3_meaning => p_source_3_meaning
77310 , p_source_18 => p_source_18
77311 , p_source_24 => p_source_24
77312 , p_source_25 => p_source_25
77313          , x_transaction_coa_id       => l_adr_transaction_coa_id
77314          , x_accounting_coa_id        => l_adr_accounting_coa_id
77315          , x_value_type_code          => l_adr_value_type_code
77316          , p_side                     => 'NA'
77317    );
77318 
77319    xla_ae_lines_pkg.set_ccid(
77320     p_code_combination_id          => l_ccid
77321   , p_value_type_code              => l_adr_value_type_code
77322   , p_transaction_coa_id           => l_adr_transaction_coa_id
77323   , p_accounting_coa_id            => l_adr_accounting_coa_id
77324   , p_adr_code                     => 'AP_REAL_GAIN'
77325   , p_adr_type_code                => 'S'
77326   , p_component_type               => l_component_type
77327   , p_component_code               => l_component_code
77328   , p_component_type_code          => l_component_type_code
77329   , p_component_appl_id            => l_component_appl_id
77330   , p_amb_context_code             => l_amb_context_code
77331   , p_side                         => 'NA'
77332   );
77333 
77334 
77335    l_segment := AcctDerRule_21(
77336            p_application_id           => p_application_id
77337          , p_ae_header_id             => l_ae_header_id 
77338 , p_source_3 => p_source_3
77339 , p_source_3_meaning => p_source_3_meaning
77340 , p_source_18 => p_source_18
77341          , x_transaction_coa_id       => l_adr_transaction_coa_id
77342          , x_accounting_coa_id        => l_adr_accounting_coa_id
77343          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
77344          , x_flex_value_set_id        => l_adr_flex_value_set_id
77345          , x_value_type_code          => l_adr_value_type_code
77346          , x_value_combination_id     => l_adr_value_combination_id
77347          , x_value_segment_code       => l_adr_value_segment_code
77348          , p_side                     => 'NA'
77349          , p_override_seg_flag        => 'Y'
77350    );
77351 
77352    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
77353 
77354       xla_ae_lines_pkg.set_segment(
77355           p_to_segment_code         => 'GL_BALANCING'
77356         , p_segment_value           => l_segment
77357         , p_from_segment_code       => l_adr_value_segment_code
77358         , p_from_combination_id     => l_adr_value_combination_id
77359         , p_value_type_code         => l_adr_value_type_code
77360         , p_transaction_coa_id      => l_adr_transaction_coa_id
77361         , p_accounting_coa_id       => l_adr_accounting_coa_id
77362         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
77363         , p_flex_value_set_id       => l_adr_flex_value_set_id
77364         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
77365         , p_adr_type_code           => 'S'
77366         , p_component_type          => l_component_type
77367         , p_component_code          => l_component_code
77368         , p_component_type_code     => l_component_type_code
77369         , p_component_appl_id       => l_component_appl_id
77370         , p_amb_context_code        => l_amb_context_code
77371         , p_entity_code             => 'AP_PAYMENTS'
77372         , p_event_class_code        => 'PAYMENTS'
77373         , p_side                    => 'NA'
77374         );
77375 
77376   END IF;
77377 
77378    l_segment := AcctDerRule_16(
77379            p_application_id           => p_application_id
77380          , p_ae_header_id             => l_ae_header_id 
77381 , p_source_3 => p_source_3
77382 , p_source_3_meaning => p_source_3_meaning
77383 , p_source_24 => p_source_24
77384 , p_source_25 => p_source_25
77385          , x_transaction_coa_id       => l_adr_transaction_coa_id
77386          , x_accounting_coa_id        => l_adr_accounting_coa_id
77387          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
77388          , x_flex_value_set_id        => l_adr_flex_value_set_id
77389          , x_value_type_code          => l_adr_value_type_code
77390          , x_value_combination_id     => l_adr_value_combination_id
77391          , x_value_segment_code       => l_adr_value_segment_code
77392          , p_side                     => 'NA'
77393          , p_override_seg_flag        => 'Y'
77394    );
77395 
77396    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
77397 
77398       xla_ae_lines_pkg.set_segment(
77399           p_to_segment_code         => 'GL_ACCOUNT'
77400         , p_segment_value           => l_segment
77401         , p_from_segment_code       => l_adr_value_segment_code
77402         , p_from_combination_id     => l_adr_value_combination_id
77403         , p_value_type_code         => l_adr_value_type_code
77404         , p_transaction_coa_id      => l_adr_transaction_coa_id
77405         , p_accounting_coa_id       => l_adr_accounting_coa_id
77406         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
77407         , p_flex_value_set_id       => l_adr_flex_value_set_id
77408         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
77409         , p_adr_type_code           => 'S'
77410         , p_component_type          => l_component_type
77411         , p_component_code          => l_component_code
77412         , p_component_type_code     => l_component_type_code
77413         , p_component_appl_id       => l_component_appl_id
77414         , p_amb_context_code        => l_amb_context_code
77415         , p_entity_code             => 'AP_PAYMENTS'
77416         , p_event_class_code        => 'PAYMENTS'
77420   END IF;
77417         , p_side                    => 'NA'
77418         );
77419 
77421 
77422    --
77423    --
77424    END IF;
77425    --
77426    -- Bug 4922099
77427    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
77428           (NVL(l_enc_upg_option, 'N') = 'O')
77429         ) AND
77430         (l_bflow_method_code = 'PRIOR_ENTRY')
77431       )
77432    THEN
77433       IF
77434       --
77435       1 = 2
77436       --
77437       THEN
77438       xla_accounting_err_pkg.build_message
77439                                     (p_appli_s_name            => 'XLA'
77440                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77441                                     ,p_token_1                 => 'LINE_NUMBER'
77442                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
77443                                     ,p_token_2                 => 'LINE_TYPE_NAME'
77444                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
77445                                                                              l_component_type
77446                                                                             ,l_component_code
77447                                                                             ,l_component_type_code
77448                                                                             ,l_component_appl_id
77449                                                                             ,l_amb_context_code
77450                                                                             ,l_entity_code
77451                                                                             ,l_event_class_code
77452                                                                            )
77453                                     ,p_token_3                 => 'OWNER'
77454                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
77455                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
77456                                                                           ,p_lookup_code    => l_component_type_code
77457                                                                          )
77458                                     ,p_token_4                 => 'PRODUCT_NAME'
77459                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
77460                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
77461                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
77462                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
77463                                     ,p_ae_header_id            =>  NULL
77464                                        );
77465 
77466         IF (C_LEVEL_ERROR>= g_log_level) THEN
77467                  trace
77468                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77469                       ,p_level    => C_LEVEL_ERROR
77470                       ,p_module   => l_log_module);
77471         END IF;
77472       END IF;
77473    END IF;
77474    --
77475    --
77476    ------------------------------------------------------------------------------------------------
77477    -- 4219869 Business Flow
77478    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
77479    -- Prior Entry.  Currently, the following code is always generated.
77480    ------------------------------------------------------------------------------------------------
77481    XLA_AE_LINES_PKG.ValidateCurrentLine;
77482 
77483    ------------------------------------------------------------------------------------
77484    -- 4219869 Business Flow
77485    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
77486    ------------------------------------------------------------------------------------
77487    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77488 
77489    ----------------------------------------------------------------------------------
77490    -- 4219869 Business Flow
77491    -- Update journal entry status -- Need to generate this within IF <condition>
77492    ----------------------------------------------------------------------------------
77493    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77494          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
77495          ,p_balance_type_code => l_balance_type_code
77496          );
77497 
77498    -------------------------------------------------------------------------------------------
77499    -- 4262811 - Generate the Accrual Reversal lines
77500    -------------------------------------------------------------------------------------------
77501    BEGIN
77502       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
77503                               (g_array_event(p_event_id).array_value_num('header_index'));
77504       IF l_acc_rev_flag IS NULL THEN
77505          l_acc_rev_flag := 'N';
77506       END IF;
77507    EXCEPTION
77508       WHEN OTHERS THEN
77509          l_acc_rev_flag := 'N';
77510    END;
77511    --
77512    IF (l_acc_rev_flag = 'Y') THEN
77513 
77514        -- 4645092  ------------------------------------------------------------------------------
77515        -- To allow MPA report to determine if it should generate report process
77516        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
77517        ------------------------------------------------------------------------------------------
77518 
77519        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
77520        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
77524    --
77521    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
77522    -- call ADRs
77523    -- Bug 4922099
77525    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77526         (NVL(l_actual_upg_option, 'N') = 'O') OR
77527         (NVL(l_enc_upg_option, 'N') = 'O')
77528       )
77529    THEN
77530    NULL;
77531    --
77532    --
77533    
77534   l_ccid := AcctDerRule_37(
77535            p_application_id           => p_application_id
77536          , p_ae_header_id             => l_ae_header_id 
77537 , p_source_3 => p_source_3
77538 , p_source_3_meaning => p_source_3_meaning
77539 , p_source_18 => p_source_18
77540 , p_source_24 => p_source_24
77541 , p_source_25 => p_source_25
77542          , x_transaction_coa_id       => l_adr_transaction_coa_id
77543          , x_accounting_coa_id        => l_adr_accounting_coa_id
77544          , x_value_type_code          => l_adr_value_type_code
77545          , p_side                     => 'NA'
77546    );
77547 
77548    xla_ae_lines_pkg.set_ccid(
77549     p_code_combination_id          => l_ccid
77550   , p_value_type_code              => l_adr_value_type_code
77551   , p_transaction_coa_id           => l_adr_transaction_coa_id
77552   , p_accounting_coa_id            => l_adr_accounting_coa_id
77553   , p_adr_code                     => 'AP_REAL_GAIN'
77554   , p_adr_type_code                => 'S'
77555   , p_component_type               => l_component_type
77556   , p_component_code               => l_component_code
77557   , p_component_type_code          => l_component_type_code
77558   , p_component_appl_id            => l_component_appl_id
77559   , p_amb_context_code             => l_amb_context_code
77560   , p_side                         => 'NA'
77561   );
77562 
77563 
77564    l_segment := AcctDerRule_21(
77565            p_application_id           => p_application_id
77566          , p_ae_header_id             => l_ae_header_id 
77567 , p_source_3 => p_source_3
77568 , p_source_3_meaning => p_source_3_meaning
77569 , p_source_18 => p_source_18
77570          , x_transaction_coa_id       => l_adr_transaction_coa_id
77571          , x_accounting_coa_id        => l_adr_accounting_coa_id
77572          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
77573          , x_flex_value_set_id        => l_adr_flex_value_set_id
77574          , x_value_type_code          => l_adr_value_type_code
77575          , x_value_combination_id     => l_adr_value_combination_id
77576          , x_value_segment_code       => l_adr_value_segment_code
77577          , p_side                     => 'NA'
77578          , p_override_seg_flag        => 'Y'
77579    );
77580 
77581    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
77582 
77583       xla_ae_lines_pkg.set_segment(
77584           p_to_segment_code         => 'GL_BALANCING'
77585         , p_segment_value           => l_segment
77586         , p_from_segment_code       => l_adr_value_segment_code
77587         , p_from_combination_id     => l_adr_value_combination_id
77588         , p_value_type_code         => l_adr_value_type_code
77589         , p_transaction_coa_id      => l_adr_transaction_coa_id
77590         , p_accounting_coa_id       => l_adr_accounting_coa_id
77591         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
77592         , p_flex_value_set_id       => l_adr_flex_value_set_id
77593         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
77594         , p_adr_type_code           => 'S'
77595         , p_component_type          => l_component_type
77596         , p_component_code          => l_component_code
77597         , p_component_type_code     => l_component_type_code
77598         , p_component_appl_id       => l_component_appl_id
77599         , p_amb_context_code        => l_amb_context_code
77600         , p_entity_code             => 'AP_PAYMENTS'
77601         , p_event_class_code        => 'PAYMENTS'
77602         , p_side                    => 'NA'
77603         );
77604 
77605   END IF;
77606 
77607    l_segment := AcctDerRule_16(
77608            p_application_id           => p_application_id
77609          , p_ae_header_id             => l_ae_header_id 
77610 , p_source_3 => p_source_3
77611 , p_source_3_meaning => p_source_3_meaning
77612 , p_source_24 => p_source_24
77613 , p_source_25 => p_source_25
77614          , x_transaction_coa_id       => l_adr_transaction_coa_id
77615          , x_accounting_coa_id        => l_adr_accounting_coa_id
77616          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
77617          , x_flex_value_set_id        => l_adr_flex_value_set_id
77618          , x_value_type_code          => l_adr_value_type_code
77619          , x_value_combination_id     => l_adr_value_combination_id
77620          , x_value_segment_code       => l_adr_value_segment_code
77621          , p_side                     => 'NA'
77622          , p_override_seg_flag        => 'Y'
77623    );
77624 
77625    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
77626 
77627       xla_ae_lines_pkg.set_segment(
77628           p_to_segment_code         => 'GL_ACCOUNT'
77629         , p_segment_value           => l_segment
77630         , p_from_segment_code       => l_adr_value_segment_code
77631         , p_from_combination_id     => l_adr_value_combination_id
77632         , p_value_type_code         => l_adr_value_type_code
77633         , p_transaction_coa_id      => l_adr_transaction_coa_id
77634         , p_accounting_coa_id       => l_adr_accounting_coa_id
77635         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
77636         , p_flex_value_set_id       => l_adr_flex_value_set_id
77637         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
77638         , p_adr_type_code           => 'S'
77639         , p_component_type          => l_component_type
77643         , p_amb_context_code        => l_amb_context_code
77640         , p_component_code          => l_component_code
77641         , p_component_type_code     => l_component_type_code
77642         , p_component_appl_id       => l_component_appl_id
77644         , p_entity_code             => 'AP_PAYMENTS'
77645         , p_event_class_code        => 'PAYMENTS'
77646         , p_side                    => 'NA'
77647         );
77648 
77649   END IF;
77650 
77651    --
77652    --
77653    END IF;
77654 
77655        --
77656        -- Update the line information that should be overwritten
77657        --
77658        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
77659                                          p_header_num   => 1);
77660        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
77661 
77662        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
77663 
77664        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
77665           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
77666        END IF;
77667 
77668       --
77669       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
77670       --
77671       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
77672           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
77673       ELSE
77674           ---------------------------------------------------------------------------------------------------
77675           -- 4262811a Switch Sign
77676           ---------------------------------------------------------------------------------------------------
77677           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
77678           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77679                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77680           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77681                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77682           -- 5132302
77683           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
77684                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77685 
77686       END IF;
77687 
77688       -- 4955764
77689       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77690       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
77691 
77692 
77693       XLA_AE_LINES_PKG.ValidateCurrentLine;
77694       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77695 
77696       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77697                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
77698                ,p_balance_type_code => l_balance_type_code);
77699 
77700    END IF;
77701 
77702    -----------------------------------------------------------------------------------------
77703    -- 4262811 Multiperiod Accounting
77704    -----------------------------------------------------------------------------------------
77705      -- No MPA option is assigned.
77706 
77707 
77708 END IF;
77709 END IF;
77710 --
77711 
77712 --
77713 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77714    trace
77715       (p_msg      => 'END of AcctLineType_143'
77716       ,p_level    => C_LEVEL_PROCEDURE
77717       ,p_module   => l_log_module);
77718 END IF;
77719 --
77720 EXCEPTION
77721   WHEN xla_exceptions_pkg.application_exception THEN
77722       RAISE;
77723   WHEN OTHERS THEN
77724        xla_exceptions_pkg.raise_message
77725            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_143');
77726 END AcctLineType_143;
77727 --
77728 
77729 ---------------------------------------
77730 --
77731 -- PRIVATE FUNCTION
77732 --         AcctLineType_144
77733 --
77734 ---------------------------------------
77735 PROCEDURE AcctLineType_144 (
77736   p_application_id        IN NUMBER
77737  ,p_event_id              IN NUMBER
77738  ,p_calculate_acctd_flag  IN VARCHAR2
77739  ,p_calculate_g_l_flag    IN VARCHAR2
77740  ,p_actual_flag           IN OUT VARCHAR2
77741  ,p_balance_type_code     OUT VARCHAR2
77742  ,p_gain_or_loss_ref      OUT VARCHAR2
77743  
77744 --Automatic Offsets Value
77745  , p_source_3            IN VARCHAR2
77746  , p_source_3_meaning    IN VARCHAR2
77747 --Invoice Distribution Account
77748  , p_source_18            IN NUMBER
77749 --Internal Realized Gain Account
77750  , p_source_24            IN NUMBER
77751 --Bank Gain Account
77752  , p_source_25            IN NUMBER
77753 --Accounting Reversal Indicator
77754  , p_source_41            IN VARCHAR2
77755 --Distribution Link Type
77756  , p_source_43            IN VARCHAR2
77757 --Override Accounted Amount Indicator
77758  , p_source_68            IN VARCHAR2
77759  , p_source_68_meaning    IN VARCHAR2
77760 --Third Party Type
77761  , p_source_71            IN VARCHAR2
77762 --Invoice Distribution Tax Line Identifier
77763  , p_source_74            IN NUMBER
77764 --Invoice Distribution Summary Tax Line Identifier
77765  , p_source_76            IN NUMBER
77766 --Business Flow Accounts Payable Application Identifier
77767  , p_source_79            IN NUMBER
77768 --When to Account for Payment Option
77769  , p_source_89            IN VARCHAR2
77773 --Payment Distribution Amount
77770 --Payment Distribution Type
77771  , p_source_90            IN VARCHAR2
77772  , p_source_90_meaning    IN VARCHAR2
77774  , p_source_91            IN NUMBER
77775 --Business Flow Payment Distribution Type
77776  , p_source_92            IN VARCHAR2
77777 --Business Flow Payment Entity Code
77778  , p_source_93            IN VARCHAR2
77779 --Business Flow Payment Distribution Identifier
77780  , p_source_94            IN NUMBER
77781 --Business Flow Payment Identifier
77782  , p_source_95            IN NUMBER
77783 --Payment Distribution Identifier
77784  , p_source_96            IN NUMBER
77785 --Cleared Exchange Date
77786  , p_source_98            IN DATE
77787 --Cleared Exchange Rate
77788  , p_source_99            IN NUMBER
77789 --Cleared Exchange Rate Type
77790  , p_source_100            IN VARCHAR2
77791 --Payment Supplier Identifier
77792  , p_source_102            IN NUMBER
77793 --Payment Supplier Site Identifier
77794  , p_source_103            IN NUMBER
77795 --Payment Distribution Reversed Identifier
77796  , p_source_104            IN NUMBER
77797 --Payment Currency Code
77798  , p_source_106            IN VARCHAR2
77799 --Payment Maturity Date
77800  , p_source_107            IN DATE
77801 --Gain or Loss Indicator between Payment and Clearing
77802  , p_source_154            IN VARCHAR2
77803 --Payment/Clearing Ledger Amount Difference
77804  , p_source_155            IN NUMBER
77805 )
77806 IS
77807 
77808 l_component_type              VARCHAR2(80);
77809 l_component_code              VARCHAR2(30);
77810 l_component_type_code         VARCHAR2(1);
77811 l_component_appl_id           INTEGER;
77812 l_amb_context_code            VARCHAR2(30);
77813 l_entity_code                 VARCHAR2(30);
77814 l_event_class_code            VARCHAR2(30);
77815 l_ae_header_id                NUMBER;
77816 l_event_type_code             VARCHAR2(30);
77817 l_line_definition_code        VARCHAR2(30);
77818 l_line_definition_owner_code  VARCHAR2(1);
77819 --
77820 -- adr variables
77821 l_segment                     VARCHAR2(30);
77822 l_ccid                        NUMBER;
77823 l_adr_transaction_coa_id      NUMBER;
77824 l_adr_accounting_coa_id       NUMBER;
77825 l_adr_flexfield_segment_code  VARCHAR2(30);
77826 l_adr_flex_value_set_id       NUMBER;
77827 l_adr_value_type_code         VARCHAR2(30);
77828 l_adr_value_combination_id    NUMBER;
77829 l_adr_value_segment_code      VARCHAR2(30);
77830 
77831 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
77832 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
77833 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
77834 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
77835 
77836 -- 4262811 Variables ------------------------------------------------------------------------------------------
77837 l_entered_amt_idx             NUMBER;
77838 l_accted_amt_idx              NUMBER;
77839 l_acc_rev_flag                VARCHAR2(1);
77840 l_accrual_line_num            NUMBER;
77841 l_tmp_amt                     NUMBER;
77842 l_acc_rev_natural_side_code   VARCHAR2(1);
77843 
77844 l_num_entries                 NUMBER;
77845 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
77846 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
77847 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
77848 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
77849 l_recog_line_1                NUMBER;
77850 l_recog_line_2                NUMBER;
77851 
77852 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
77853 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
77854 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
77855 
77856 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
77857 
77858 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
77859 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
77860 
77861 ---------------------------------------------------------------------------------------------------------------
77862 
77863 
77864 --
77865 -- bulk performance
77866 --
77867 l_balance_type_code           VARCHAR2(1);
77868 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
77869 l_log_module                  VARCHAR2(240);
77870 
77871 --
77872 -- Upgrade strategy
77873 --
77874 l_actual_upg_option           VARCHAR2(1);
77875 l_enc_upg_option           VARCHAR2(1);
77876 
77877 --
77878 BEGIN
77879 --
77880 IF g_log_enabled THEN
77881       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_144';
77882 END IF;
77883 --
77884 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77885 
77886       trace
77887          (p_msg      => 'BEGIN of AcctLineType_144'
77888          ,p_level    => C_LEVEL_PROCEDURE
77889          ,p_module   => l_log_module);
77890 
77891 END IF;
77892 --
77893 l_component_type             := 'AMB_JLT';
77894 l_component_code             := 'AP_GAIN_PMT_CLEAR';
77895 l_component_type_code        := 'S';
77896 l_component_appl_id          :=  200;
77897 l_amb_context_code           := 'DEFAULT';
77898 l_entity_code                := 'AP_PAYMENTS';
77899 l_event_class_code           := 'RECONCILED PAYMENTS';
77900 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
77901 l_line_definition_owner_code := 'S';
77902 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
77903 --
77904 l_balance_type_code          := 'A';
77905 l_segment                     := NULL;
77906 l_ccid                        := NULL;
77910 l_adr_flex_value_set_id       := NULL;
77907 l_adr_transaction_coa_id      := NULL;
77908 l_adr_accounting_coa_id       := NULL;
77909 l_adr_flexfield_segment_code  := NULL;
77911 l_adr_value_type_code         := NULL;
77912 l_adr_value_combination_id    := NULL;
77913 l_adr_value_segment_code      := NULL;
77914 
77915 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
77916 l_bflow_class_code           := '';    -- 4219869 Business Flow
77917 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
77918 l_budgetary_control_flag     := 'N';
77919 
77920 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
77921 l_bflow_applied_to_amt       := NULL; -- 5132302
77922 l_entered_amt_idx            := NULL;          -- 4262811
77923 l_accted_amt_idx             := NULL;          -- 4262811
77924 l_acc_rev_flag               := NULL;          -- 4262811
77925 l_accrual_line_num           := NULL;          -- 4262811
77926 l_tmp_amt                    := NULL;          -- 4262811
77927 --
77928 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
77929             (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
77930                return;
77931   END IF;
77932   
77933 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
77934     l_balance_type_code <> 'B' THEN
77935 IF NVL(p_source_89,'
77936 ') =  'ALWAYS_ALWAYS' AND 
77937 p_source_107 IS NULL AND 
77938 NVL(p_source_154,'
77939 ') =  'GAIN' AND 
77940 NVL(p_source_90,'
77941 ') <>  'EXCHANGE RATE VARIANCE' AND 
77942 NVL(p_source_90,'
77943 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
77944 NVL(p_source_90,'
77945 ') <>  'BANK CHARGE' AND 
77946 NVL(p_source_90,'
77947 ') <>  'BANK ERROR' AND 
77948 NVL(p_source_90,'
77949 ') <>  'AWT'
77950  THEN 
77951 
77952    --
77953    XLA_AE_LINES_PKG.SetNewLine;
77954 
77955    p_balance_type_code          := l_balance_type_code;
77956    -- set the flag so later we will know whether the gain loss line needs to be created
77957    
77958    IF(l_balance_type_code = 'A' ) THEN
77959      p_actual_flag :='G';
77960    END IF;
77961 
77962    --
77963    -- bulk performance
77964    --
77965    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
77966                                       p_header_num   => 0); -- 4262811
77967    --
77968    -- set accounting line options
77969    --
77970    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
77971            p_natural_side_code          => 'C'
77972          , p_gain_or_loss_flag          => 'Y'
77973          , p_gl_transfer_mode_code      => 'S'
77974          , p_acct_entry_type_code       => 'A'
77975          , p_switch_side_flag           => 'Y'
77976          , p_merge_duplicate_code       => 'A'
77977          );
77978    --
77979    l_acc_rev_natural_side_code := 'D';  -- 4262811
77980    -- 
77981    --
77982    -- set accounting line type info
77983    --
77984    xla_ae_lines_pkg.SetAcctLineType
77985       (p_component_type             => l_component_type
77986       ,p_event_type_code            => l_event_type_code
77987       ,p_line_definition_owner_code => l_line_definition_owner_code
77988       ,p_line_definition_code       => l_line_definition_code
77989       ,p_accounting_line_code       => l_component_code
77990       ,p_accounting_line_type_code  => l_component_type_code
77991       ,p_accounting_line_appl_id    => l_component_appl_id
77992       ,p_amb_context_code           => l_amb_context_code
77993       ,p_entity_code                => l_entity_code
77994       ,p_event_class_code           => l_event_class_code);
77995    --
77996    -- set accounting class
77997    --
77998    xla_ae_lines_pkg.SetAcctClass(
77999            p_accounting_class_code  => 'GAIN'
78000          , p_ae_header_id           => l_ae_header_id
78001          );
78002 
78003    --
78004    -- set rounding class
78005    --
78006    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
78007                       'GAIN';
78008 
78009    --
78010    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
78011    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
78012    --
78013    -- bulk performance
78014    --
78015    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
78016 
78017    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
78018       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
78019 
78020    -- 4955764
78021    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78022       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
78023 
78024    -- 4458381 Public Sector Enh
78025    
78026    --
78027    -- set accounting attributes for the line type
78028    --
78029    l_entered_amt_idx := 10;
78030    l_accted_amt_idx  := 15;
78031    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
78032    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
78033    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
78034    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
78035    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
78036    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
78037    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
78041    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
78038    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
78039    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
78040    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
78042    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
78043    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
78044    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
78045    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
78046    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
78047    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
78048    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
78049    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
78050    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
78051    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
78052    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
78053    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
78054    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
78055    l_rec_acct_attrs.array_date_value(12)  := p_source_98;
78056    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
78057    l_rec_acct_attrs.array_num_value(13)  := p_source_99;
78058    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
78059    l_rec_acct_attrs.array_char_value(14)  := p_source_100;
78060    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
78061    l_rec_acct_attrs.array_num_value(15)  := p_source_155;
78062    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
78063    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
78064    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
78065    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
78066    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
78067    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
78068    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
78069    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
78070    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
78071    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
78072    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
78073    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
78074    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
78075    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
78076    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
78077    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
78078    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
78079    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
78080 
78081    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
78082    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
78083 
78084    ---------------------------------------------------------------------------------------------------------------
78085    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
78086    ---------------------------------------------------------------------------------------------------------------
78087    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
78088 
78089    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78090    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78091 
78092    IF xla_accounting_cache_pkg.GetValueChar
78093          (p_source_code         => 'LEDGER_CATEGORY_CODE'
78094          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
78095    AND l_bflow_method_code = 'PRIOR_ENTRY'
78096 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
78097    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
78098          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
78099        )
78100    THEN
78101          xla_ae_lines_pkg.BflowUpgEntry
78102            (p_business_method_code    => l_bflow_method_code
78103            ,p_business_class_code     => l_bflow_class_code
78104            ,p_balance_type            => l_balance_type_code);
78105    ELSE
78106       NULL;
78107 -- No business flow processing for business flow method of NONE.
78108    END IF;
78109 
78110    --
78111    -- call analytical criteria
78112    --
78113    
78114    --
78115    -- call description
78116    --
78117    -- No description or it is inherited.
78118    --
78119    -- call ADRs
78120    -- Bug 4922099
78121    --
78122    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78123         (NVL(l_actual_upg_option, 'N') = 'O') OR
78124         (NVL(l_enc_upg_option, 'N') = 'O')
78125       )
78126    THEN
78127    NULL;
78128    --
78129    --
78130    
78131   l_ccid := AcctDerRule_37(
78132            p_application_id           => p_application_id
78133          , p_ae_header_id             => l_ae_header_id 
78134 , p_source_3 => p_source_3
78135 , p_source_3_meaning => p_source_3_meaning
78136 , p_source_18 => p_source_18
78137 , p_source_24 => p_source_24
78138 , p_source_25 => p_source_25
78139          , x_transaction_coa_id       => l_adr_transaction_coa_id
78140          , x_accounting_coa_id        => l_adr_accounting_coa_id
78141          , x_value_type_code          => l_adr_value_type_code
78142          , p_side                     => 'NA'
78143    );
78144 
78145    xla_ae_lines_pkg.set_ccid(
78146     p_code_combination_id          => l_ccid
78147   , p_value_type_code              => l_adr_value_type_code
78151   , p_adr_type_code                => 'S'
78148   , p_transaction_coa_id           => l_adr_transaction_coa_id
78149   , p_accounting_coa_id            => l_adr_accounting_coa_id
78150   , p_adr_code                     => 'AP_REAL_GAIN'
78152   , p_component_type               => l_component_type
78153   , p_component_code               => l_component_code
78154   , p_component_type_code          => l_component_type_code
78155   , p_component_appl_id            => l_component_appl_id
78156   , p_amb_context_code             => l_amb_context_code
78157   , p_side                         => 'NA'
78158   );
78159 
78160 
78161    l_segment := AcctDerRule_21(
78162            p_application_id           => p_application_id
78163          , p_ae_header_id             => l_ae_header_id 
78164 , p_source_3 => p_source_3
78165 , p_source_3_meaning => p_source_3_meaning
78166 , p_source_18 => p_source_18
78167          , x_transaction_coa_id       => l_adr_transaction_coa_id
78168          , x_accounting_coa_id        => l_adr_accounting_coa_id
78169          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
78170          , x_flex_value_set_id        => l_adr_flex_value_set_id
78171          , x_value_type_code          => l_adr_value_type_code
78172          , x_value_combination_id     => l_adr_value_combination_id
78173          , x_value_segment_code       => l_adr_value_segment_code
78174          , p_side                     => 'NA'
78175          , p_override_seg_flag        => 'Y'
78176    );
78177 
78178    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
78179 
78180       xla_ae_lines_pkg.set_segment(
78181           p_to_segment_code         => 'GL_BALANCING'
78182         , p_segment_value           => l_segment
78183         , p_from_segment_code       => l_adr_value_segment_code
78184         , p_from_combination_id     => l_adr_value_combination_id
78185         , p_value_type_code         => l_adr_value_type_code
78186         , p_transaction_coa_id      => l_adr_transaction_coa_id
78187         , p_accounting_coa_id       => l_adr_accounting_coa_id
78188         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
78189         , p_flex_value_set_id       => l_adr_flex_value_set_id
78190         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
78191         , p_adr_type_code           => 'S'
78192         , p_component_type          => l_component_type
78193         , p_component_code          => l_component_code
78194         , p_component_type_code     => l_component_type_code
78195         , p_component_appl_id       => l_component_appl_id
78196         , p_amb_context_code        => l_amb_context_code
78197         , p_entity_code             => 'AP_PAYMENTS'
78198         , p_event_class_code        => 'RECONCILED PAYMENTS'
78199         , p_side                    => 'NA'
78200         );
78201 
78202   END IF;
78203 
78204    l_segment := AcctDerRule_16(
78205            p_application_id           => p_application_id
78206          , p_ae_header_id             => l_ae_header_id 
78207 , p_source_3 => p_source_3
78208 , p_source_3_meaning => p_source_3_meaning
78209 , p_source_24 => p_source_24
78210 , p_source_25 => p_source_25
78211          , x_transaction_coa_id       => l_adr_transaction_coa_id
78212          , x_accounting_coa_id        => l_adr_accounting_coa_id
78213          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
78214          , x_flex_value_set_id        => l_adr_flex_value_set_id
78215          , x_value_type_code          => l_adr_value_type_code
78216          , x_value_combination_id     => l_adr_value_combination_id
78217          , x_value_segment_code       => l_adr_value_segment_code
78218          , p_side                     => 'NA'
78219          , p_override_seg_flag        => 'Y'
78220    );
78221 
78222    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
78223 
78224       xla_ae_lines_pkg.set_segment(
78225           p_to_segment_code         => 'GL_ACCOUNT'
78226         , p_segment_value           => l_segment
78227         , p_from_segment_code       => l_adr_value_segment_code
78228         , p_from_combination_id     => l_adr_value_combination_id
78229         , p_value_type_code         => l_adr_value_type_code
78230         , p_transaction_coa_id      => l_adr_transaction_coa_id
78231         , p_accounting_coa_id       => l_adr_accounting_coa_id
78232         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
78233         , p_flex_value_set_id       => l_adr_flex_value_set_id
78234         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
78235         , p_adr_type_code           => 'S'
78236         , p_component_type          => l_component_type
78237         , p_component_code          => l_component_code
78238         , p_component_type_code     => l_component_type_code
78239         , p_component_appl_id       => l_component_appl_id
78240         , p_amb_context_code        => l_amb_context_code
78241         , p_entity_code             => 'AP_PAYMENTS'
78242         , p_event_class_code        => 'RECONCILED PAYMENTS'
78243         , p_side                    => 'NA'
78244         );
78245 
78246   END IF;
78247 
78248    --
78249    --
78250    END IF;
78251    --
78252    -- Bug 4922099
78253    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
78254           (NVL(l_enc_upg_option, 'N') = 'O')
78255         ) AND
78256         (l_bflow_method_code = 'PRIOR_ENTRY')
78257       )
78258    THEN
78259       IF
78260       --
78261       1 = 2
78262       --
78263       THEN
78264       xla_accounting_err_pkg.build_message
78265                                     (p_appli_s_name            => 'XLA'
78266                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78267                                     ,p_token_1                 => 'LINE_NUMBER'
78271                                                                              l_component_type
78268                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
78269                                     ,p_token_2                 => 'LINE_TYPE_NAME'
78270                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
78272                                                                             ,l_component_code
78273                                                                             ,l_component_type_code
78274                                                                             ,l_component_appl_id
78275                                                                             ,l_amb_context_code
78276                                                                             ,l_entity_code
78277                                                                             ,l_event_class_code
78278                                                                            )
78279                                     ,p_token_3                 => 'OWNER'
78280                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
78281                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
78282                                                                           ,p_lookup_code    => l_component_type_code
78283                                                                          )
78284                                     ,p_token_4                 => 'PRODUCT_NAME'
78285                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
78286                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
78287                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
78288                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
78289                                     ,p_ae_header_id            =>  NULL
78290                                        );
78291 
78292         IF (C_LEVEL_ERROR>= g_log_level) THEN
78293                  trace
78294                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78295                       ,p_level    => C_LEVEL_ERROR
78296                       ,p_module   => l_log_module);
78297         END IF;
78298       END IF;
78299    END IF;
78300    --
78301    --
78302    ------------------------------------------------------------------------------------------------
78303    -- 4219869 Business Flow
78304    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
78305    -- Prior Entry.  Currently, the following code is always generated.
78306    ------------------------------------------------------------------------------------------------
78307    XLA_AE_LINES_PKG.ValidateCurrentLine;
78308 
78309    ------------------------------------------------------------------------------------
78310    -- 4219869 Business Flow
78311    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
78312    ------------------------------------------------------------------------------------
78313    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78314 
78315    ----------------------------------------------------------------------------------
78316    -- 4219869 Business Flow
78317    -- Update journal entry status -- Need to generate this within IF <condition>
78318    ----------------------------------------------------------------------------------
78319    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78320          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
78321          ,p_balance_type_code => l_balance_type_code
78322          );
78323 
78324    -------------------------------------------------------------------------------------------
78325    -- 4262811 - Generate the Accrual Reversal lines
78326    -------------------------------------------------------------------------------------------
78327    BEGIN
78328       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
78329                               (g_array_event(p_event_id).array_value_num('header_index'));
78330       IF l_acc_rev_flag IS NULL THEN
78331          l_acc_rev_flag := 'N';
78332       END IF;
78333    EXCEPTION
78334       WHEN OTHERS THEN
78335          l_acc_rev_flag := 'N';
78336    END;
78337    --
78338    IF (l_acc_rev_flag = 'Y') THEN
78339 
78340        -- 4645092  ------------------------------------------------------------------------------
78341        -- To allow MPA report to determine if it should generate report process
78342        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
78343        ------------------------------------------------------------------------------------------
78344 
78345        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
78346        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
78347    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
78348    -- call ADRs
78349    -- Bug 4922099
78350    --
78351    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78352         (NVL(l_actual_upg_option, 'N') = 'O') OR
78353         (NVL(l_enc_upg_option, 'N') = 'O')
78354       )
78355    THEN
78356    NULL;
78357    --
78358    --
78359    
78360   l_ccid := AcctDerRule_37(
78361            p_application_id           => p_application_id
78362          , p_ae_header_id             => l_ae_header_id 
78363 , p_source_3 => p_source_3
78364 , p_source_3_meaning => p_source_3_meaning
78365 , p_source_18 => p_source_18
78366 , p_source_24 => p_source_24
78367 , p_source_25 => p_source_25
78368          , x_transaction_coa_id       => l_adr_transaction_coa_id
78372    );
78369          , x_accounting_coa_id        => l_adr_accounting_coa_id
78370          , x_value_type_code          => l_adr_value_type_code
78371          , p_side                     => 'NA'
78373 
78374    xla_ae_lines_pkg.set_ccid(
78375     p_code_combination_id          => l_ccid
78376   , p_value_type_code              => l_adr_value_type_code
78377   , p_transaction_coa_id           => l_adr_transaction_coa_id
78378   , p_accounting_coa_id            => l_adr_accounting_coa_id
78379   , p_adr_code                     => 'AP_REAL_GAIN'
78380   , p_adr_type_code                => 'S'
78381   , p_component_type               => l_component_type
78382   , p_component_code               => l_component_code
78383   , p_component_type_code          => l_component_type_code
78384   , p_component_appl_id            => l_component_appl_id
78385   , p_amb_context_code             => l_amb_context_code
78386   , p_side                         => 'NA'
78387   );
78388 
78389 
78390    l_segment := AcctDerRule_21(
78391            p_application_id           => p_application_id
78392          , p_ae_header_id             => l_ae_header_id 
78393 , p_source_3 => p_source_3
78394 , p_source_3_meaning => p_source_3_meaning
78395 , p_source_18 => p_source_18
78396          , x_transaction_coa_id       => l_adr_transaction_coa_id
78397          , x_accounting_coa_id        => l_adr_accounting_coa_id
78398          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
78399          , x_flex_value_set_id        => l_adr_flex_value_set_id
78400          , x_value_type_code          => l_adr_value_type_code
78401          , x_value_combination_id     => l_adr_value_combination_id
78402          , x_value_segment_code       => l_adr_value_segment_code
78403          , p_side                     => 'NA'
78404          , p_override_seg_flag        => 'Y'
78405    );
78406 
78407    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
78408 
78409       xla_ae_lines_pkg.set_segment(
78410           p_to_segment_code         => 'GL_BALANCING'
78411         , p_segment_value           => l_segment
78412         , p_from_segment_code       => l_adr_value_segment_code
78413         , p_from_combination_id     => l_adr_value_combination_id
78414         , p_value_type_code         => l_adr_value_type_code
78415         , p_transaction_coa_id      => l_adr_transaction_coa_id
78416         , p_accounting_coa_id       => l_adr_accounting_coa_id
78417         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
78418         , p_flex_value_set_id       => l_adr_flex_value_set_id
78419         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
78420         , p_adr_type_code           => 'S'
78421         , p_component_type          => l_component_type
78422         , p_component_code          => l_component_code
78423         , p_component_type_code     => l_component_type_code
78424         , p_component_appl_id       => l_component_appl_id
78425         , p_amb_context_code        => l_amb_context_code
78426         , p_entity_code             => 'AP_PAYMENTS'
78427         , p_event_class_code        => 'RECONCILED PAYMENTS'
78428         , p_side                    => 'NA'
78429         );
78430 
78431   END IF;
78432 
78433    l_segment := AcctDerRule_16(
78434            p_application_id           => p_application_id
78435          , p_ae_header_id             => l_ae_header_id 
78436 , p_source_3 => p_source_3
78437 , p_source_3_meaning => p_source_3_meaning
78438 , p_source_24 => p_source_24
78439 , p_source_25 => p_source_25
78440          , x_transaction_coa_id       => l_adr_transaction_coa_id
78441          , x_accounting_coa_id        => l_adr_accounting_coa_id
78442          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
78443          , x_flex_value_set_id        => l_adr_flex_value_set_id
78444          , x_value_type_code          => l_adr_value_type_code
78445          , x_value_combination_id     => l_adr_value_combination_id
78446          , x_value_segment_code       => l_adr_value_segment_code
78447          , p_side                     => 'NA'
78448          , p_override_seg_flag        => 'Y'
78449    );
78450 
78451    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
78452 
78453       xla_ae_lines_pkg.set_segment(
78454           p_to_segment_code         => 'GL_ACCOUNT'
78455         , p_segment_value           => l_segment
78456         , p_from_segment_code       => l_adr_value_segment_code
78457         , p_from_combination_id     => l_adr_value_combination_id
78458         , p_value_type_code         => l_adr_value_type_code
78459         , p_transaction_coa_id      => l_adr_transaction_coa_id
78460         , p_accounting_coa_id       => l_adr_accounting_coa_id
78461         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
78462         , p_flex_value_set_id       => l_adr_flex_value_set_id
78463         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
78464         , p_adr_type_code           => 'S'
78465         , p_component_type          => l_component_type
78466         , p_component_code          => l_component_code
78467         , p_component_type_code     => l_component_type_code
78468         , p_component_appl_id       => l_component_appl_id
78469         , p_amb_context_code        => l_amb_context_code
78470         , p_entity_code             => 'AP_PAYMENTS'
78471         , p_event_class_code        => 'RECONCILED PAYMENTS'
78472         , p_side                    => 'NA'
78473         );
78474 
78475   END IF;
78476 
78477    --
78478    --
78479    END IF;
78480 
78481        --
78482        -- Update the line information that should be overwritten
78483        --
78487 
78484        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
78485                                          p_header_num   => 1);
78486        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
78488        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
78489 
78490        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
78491           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
78492        END IF;
78493 
78494       --
78495       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
78496       --
78497       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
78498           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
78499       ELSE
78500           ---------------------------------------------------------------------------------------------------
78501           -- 4262811a Switch Sign
78502           ---------------------------------------------------------------------------------------------------
78503           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
78504           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78505                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78506           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78507                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78508           -- 5132302
78509           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
78510                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78511 
78512       END IF;
78513 
78514       -- 4955764
78515       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78516       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
78517 
78518 
78519       XLA_AE_LINES_PKG.ValidateCurrentLine;
78520       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78521 
78522       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78523                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
78524                ,p_balance_type_code => l_balance_type_code);
78525 
78526    END IF;
78527 
78528    -----------------------------------------------------------------------------------------
78529    -- 4262811 Multiperiod Accounting
78530    -----------------------------------------------------------------------------------------
78531      -- No MPA option is assigned.
78532 
78533 
78534 END IF;
78535 END IF;
78536 --
78537 
78538 --
78539 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78540    trace
78541       (p_msg      => 'END of AcctLineType_144'
78542       ,p_level    => C_LEVEL_PROCEDURE
78543       ,p_module   => l_log_module);
78544 END IF;
78545 --
78546 EXCEPTION
78547   WHEN xla_exceptions_pkg.application_exception THEN
78548       RAISE;
78549   WHEN OTHERS THEN
78550        xla_exceptions_pkg.raise_message
78551            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_144');
78552 END AcctLineType_144;
78553 --
78554 
78555 ---------------------------------------
78556 --
78557 -- PRIVATE FUNCTION
78558 --         AcctLineType_145
78559 --
78560 ---------------------------------------
78561 PROCEDURE AcctLineType_145 (
78562   p_application_id        IN NUMBER
78563  ,p_event_id              IN NUMBER
78564  ,p_calculate_acctd_flag  IN VARCHAR2
78565  ,p_calculate_g_l_flag    IN VARCHAR2
78566  ,p_actual_flag           IN OUT VARCHAR2
78567  ,p_balance_type_code     OUT VARCHAR2
78568  ,p_gain_or_loss_ref      OUT VARCHAR2
78569  
78570 --Automatic Offsets Value
78571  , p_source_3            IN VARCHAR2
78572  , p_source_3_meaning    IN VARCHAR2
78573 --Invoice Distribution Account
78574  , p_source_18            IN NUMBER
78575 --Internal Realized Gain Account
78576  , p_source_24            IN NUMBER
78577 --Bank Gain Account
78578  , p_source_25            IN NUMBER
78579 --Accounting Reversal Indicator
78580  , p_source_41            IN VARCHAR2
78581 --Distribution Link Type
78582  , p_source_43            IN VARCHAR2
78583 --Override Accounted Amount Indicator
78584  , p_source_68            IN VARCHAR2
78585  , p_source_68_meaning    IN VARCHAR2
78586 --Third Party Type
78587  , p_source_71            IN VARCHAR2
78588 --Business Flow Accounts Payable Application Identifier
78589  , p_source_79            IN NUMBER
78590 --When to Account for Payment Option
78591  , p_source_89            IN VARCHAR2
78592 --Payment Distribution Type
78593  , p_source_90            IN VARCHAR2
78594  , p_source_90_meaning    IN VARCHAR2
78595 --Payment Distribution Amount
78596  , p_source_91            IN NUMBER
78597 --Business Flow Payment Distribution Type
78598  , p_source_92            IN VARCHAR2
78599 --Business Flow Payment Entity Code
78600  , p_source_93            IN VARCHAR2
78601 --Business Flow Payment Distribution Identifier
78602  , p_source_94            IN NUMBER
78603 --Business Flow Payment Identifier
78604  , p_source_95            IN NUMBER
78605 --Payment Distribution Identifier
78606  , p_source_96            IN NUMBER
78607 --Payment Supplier Identifier
78608  , p_source_102            IN NUMBER
78609 --Payment Supplier Site Identifier
78610  , p_source_103            IN NUMBER
78611 --Payment Distribution Reversed Identifier
78615 --Payment Maturity Date
78612  , p_source_104            IN NUMBER
78613 --Payment Currency Code
78614  , p_source_106            IN VARCHAR2
78616  , p_source_107            IN DATE
78617 --Payment Exchange Date
78618  , p_source_110            IN DATE
78619 --Payment Exchange Rate
78620  , p_source_111            IN NUMBER
78621 --Payment Exchange Rate Type
78622  , p_source_112            IN VARCHAR2
78623 --Payment/Maturity Ledger Amount Difference
78624  , p_source_149            IN NUMBER
78625 --Gain or Loss Indicator between Payment and Maturity
78626  , p_source_156            IN VARCHAR2
78627 )
78628 IS
78629 
78630 l_component_type              VARCHAR2(80);
78631 l_component_code              VARCHAR2(30);
78632 l_component_type_code         VARCHAR2(1);
78633 l_component_appl_id           INTEGER;
78634 l_amb_context_code            VARCHAR2(30);
78635 l_entity_code                 VARCHAR2(30);
78636 l_event_class_code            VARCHAR2(30);
78637 l_ae_header_id                NUMBER;
78638 l_event_type_code             VARCHAR2(30);
78639 l_line_definition_code        VARCHAR2(30);
78640 l_line_definition_owner_code  VARCHAR2(1);
78641 --
78642 -- adr variables
78643 l_segment                     VARCHAR2(30);
78644 l_ccid                        NUMBER;
78645 l_adr_transaction_coa_id      NUMBER;
78646 l_adr_accounting_coa_id       NUMBER;
78647 l_adr_flexfield_segment_code  VARCHAR2(30);
78648 l_adr_flex_value_set_id       NUMBER;
78649 l_adr_value_type_code         VARCHAR2(30);
78650 l_adr_value_combination_id    NUMBER;
78651 l_adr_value_segment_code      VARCHAR2(30);
78652 
78653 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
78654 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
78655 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
78656 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
78657 
78658 -- 4262811 Variables ------------------------------------------------------------------------------------------
78659 l_entered_amt_idx             NUMBER;
78660 l_accted_amt_idx              NUMBER;
78661 l_acc_rev_flag                VARCHAR2(1);
78662 l_accrual_line_num            NUMBER;
78663 l_tmp_amt                     NUMBER;
78664 l_acc_rev_natural_side_code   VARCHAR2(1);
78665 
78666 l_num_entries                 NUMBER;
78667 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
78668 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
78669 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
78670 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
78671 l_recog_line_1                NUMBER;
78672 l_recog_line_2                NUMBER;
78673 
78674 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
78675 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
78676 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
78677 
78678 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
78679 
78680 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
78681 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
78682 
78683 ---------------------------------------------------------------------------------------------------------------
78684 
78685 
78686 --
78687 -- bulk performance
78688 --
78689 l_balance_type_code           VARCHAR2(1);
78690 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
78691 l_log_module                  VARCHAR2(240);
78692 
78693 --
78694 -- Upgrade strategy
78695 --
78696 l_actual_upg_option           VARCHAR2(1);
78697 l_enc_upg_option           VARCHAR2(1);
78698 
78699 --
78700 BEGIN
78701 --
78702 IF g_log_enabled THEN
78703       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_145';
78704 END IF;
78705 --
78706 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78707 
78708       trace
78709          (p_msg      => 'BEGIN of AcctLineType_145'
78710          ,p_level    => C_LEVEL_PROCEDURE
78711          ,p_module   => l_log_module);
78712 
78713 END IF;
78714 --
78715 l_component_type             := 'AMB_JLT';
78716 l_component_code             := 'AP_GAIN_PMT_MAT';
78717 l_component_type_code        := 'S';
78718 l_component_appl_id          :=  200;
78719 l_amb_context_code           := 'DEFAULT';
78720 l_entity_code                := 'AP_PAYMENTS';
78721 l_event_class_code           := 'FUTURE DATED PAYMENTS';
78722 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
78723 l_line_definition_owner_code := 'S';
78724 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
78725 --
78726 l_balance_type_code          := 'A';
78727 l_segment                     := NULL;
78728 l_ccid                        := NULL;
78729 l_adr_transaction_coa_id      := NULL;
78730 l_adr_accounting_coa_id       := NULL;
78731 l_adr_flexfield_segment_code  := NULL;
78732 l_adr_flex_value_set_id       := NULL;
78733 l_adr_value_type_code         := NULL;
78734 l_adr_value_combination_id    := NULL;
78735 l_adr_value_segment_code      := NULL;
78736 
78737 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
78738 l_bflow_class_code           := '';    -- 4219869 Business Flow
78739 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
78740 l_budgetary_control_flag     := 'N';
78741 
78742 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
78743 l_bflow_applied_to_amt       := NULL; -- 5132302
78744 l_entered_amt_idx            := NULL;          -- 4262811
78745 l_accted_amt_idx             := NULL;          -- 4262811
78749 --
78746 l_acc_rev_flag               := NULL;          -- 4262811
78747 l_accrual_line_num           := NULL;          -- 4262811
78748 l_tmp_amt                    := NULL;          -- 4262811
78750 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
78751             (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
78752                return;
78753   END IF;
78754   
78755 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
78756     l_balance_type_code <> 'B' THEN
78757 IF (NVL(p_source_89,'
78758 ') =  'ALWAYS_ALWAYS' OR 
78759 NVL(p_source_89,'
78760 ') =  'ISSUE_ISSUE') AND 
78761 p_source_107 IS NOT NULL AND 
78762 NVL(p_source_156,'
78763 ') =  'GAIN' AND 
78764 NVL(p_source_90,'
78765 ') <>  'EXCHANGE RATE VARIANCE' AND 
78766 NVL(p_source_90,'
78767 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
78768 NVL(p_source_90,'
78769 ') <>  'BANK CHARGE' AND 
78770 NVL(p_source_90,'
78771 ') <>  'BANK ERROR' AND 
78772 NVL(p_source_90,'
78773 ') <>  'AWT'
78774  THEN 
78775 
78776    --
78777    XLA_AE_LINES_PKG.SetNewLine;
78778 
78779    p_balance_type_code          := l_balance_type_code;
78780    -- set the flag so later we will know whether the gain loss line needs to be created
78781    
78782    IF(l_balance_type_code = 'A' ) THEN
78783      p_actual_flag :='G';
78784    END IF;
78785 
78786    --
78787    -- bulk performance
78788    --
78789    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
78790                                       p_header_num   => 0); -- 4262811
78791    --
78792    -- set accounting line options
78793    --
78794    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
78795            p_natural_side_code          => 'C'
78796          , p_gain_or_loss_flag          => 'Y'
78797          , p_gl_transfer_mode_code      => 'S'
78798          , p_acct_entry_type_code       => 'A'
78799          , p_switch_side_flag           => 'Y'
78800          , p_merge_duplicate_code       => 'A'
78801          );
78802    --
78803    l_acc_rev_natural_side_code := 'D';  -- 4262811
78804    -- 
78805    --
78806    -- set accounting line type info
78807    --
78808    xla_ae_lines_pkg.SetAcctLineType
78809       (p_component_type             => l_component_type
78810       ,p_event_type_code            => l_event_type_code
78811       ,p_line_definition_owner_code => l_line_definition_owner_code
78812       ,p_line_definition_code       => l_line_definition_code
78813       ,p_accounting_line_code       => l_component_code
78814       ,p_accounting_line_type_code  => l_component_type_code
78815       ,p_accounting_line_appl_id    => l_component_appl_id
78816       ,p_amb_context_code           => l_amb_context_code
78817       ,p_entity_code                => l_entity_code
78818       ,p_event_class_code           => l_event_class_code);
78819    --
78820    -- set accounting class
78821    --
78822    xla_ae_lines_pkg.SetAcctClass(
78823            p_accounting_class_code  => 'GAIN'
78824          , p_ae_header_id           => l_ae_header_id
78825          );
78826 
78827    --
78828    -- set rounding class
78829    --
78830    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
78831                       'GAIN';
78832 
78833    --
78834    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
78835    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
78836    --
78837    -- bulk performance
78838    --
78839    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
78840 
78841    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
78842       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
78843 
78844    -- 4955764
78845    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78846       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
78847 
78848    -- 4458381 Public Sector Enh
78849    
78850    --
78851    -- set accounting attributes for the line type
78852    --
78853    l_entered_amt_idx := 9;
78854    l_accted_amt_idx  := 14;
78855    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
78856    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
78857    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
78858    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
78859    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
78860    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
78861    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
78862    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
78863    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
78864    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
78865    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
78866    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
78867    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
78868    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
78869    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
78870    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
78871    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
78872    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
78876    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
78873    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
78874    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
78875    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
78877    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
78878    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
78879    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
78880    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
78881    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
78882    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
78883    l_rec_acct_attrs.array_num_value(14)  := p_source_149;
78884    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
78885    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
78886    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
78887    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
78888    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
78889    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
78890    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
78891    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
78892    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
78893    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
78894    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
78895    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
78896 
78897    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
78898    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
78899 
78900    ---------------------------------------------------------------------------------------------------------------
78901    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
78902    ---------------------------------------------------------------------------------------------------------------
78903    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
78904 
78905    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78906    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78907 
78908    IF xla_accounting_cache_pkg.GetValueChar
78909          (p_source_code         => 'LEDGER_CATEGORY_CODE'
78910          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
78911    AND l_bflow_method_code = 'PRIOR_ENTRY'
78912 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
78913    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
78914          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
78915        )
78916    THEN
78917          xla_ae_lines_pkg.BflowUpgEntry
78918            (p_business_method_code    => l_bflow_method_code
78919            ,p_business_class_code     => l_bflow_class_code
78920            ,p_balance_type            => l_balance_type_code);
78921    ELSE
78922       NULL;
78923 -- No business flow processing for business flow method of NONE.
78924    END IF;
78925 
78926    --
78927    -- call analytical criteria
78928    --
78929    
78930    --
78931    -- call description
78932    --
78933    -- No description or it is inherited.
78934    --
78935    -- call ADRs
78936    -- Bug 4922099
78937    --
78938    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78939         (NVL(l_actual_upg_option, 'N') = 'O') OR
78940         (NVL(l_enc_upg_option, 'N') = 'O')
78941       )
78942    THEN
78943    NULL;
78944    --
78945    --
78946    
78947   l_ccid := AcctDerRule_37(
78948            p_application_id           => p_application_id
78949          , p_ae_header_id             => l_ae_header_id 
78950 , p_source_3 => p_source_3
78951 , p_source_3_meaning => p_source_3_meaning
78952 , p_source_18 => p_source_18
78953 , p_source_24 => p_source_24
78954 , p_source_25 => p_source_25
78955          , x_transaction_coa_id       => l_adr_transaction_coa_id
78956          , x_accounting_coa_id        => l_adr_accounting_coa_id
78957          , x_value_type_code          => l_adr_value_type_code
78958          , p_side                     => 'NA'
78959    );
78960 
78961    xla_ae_lines_pkg.set_ccid(
78962     p_code_combination_id          => l_ccid
78963   , p_value_type_code              => l_adr_value_type_code
78964   , p_transaction_coa_id           => l_adr_transaction_coa_id
78965   , p_accounting_coa_id            => l_adr_accounting_coa_id
78966   , p_adr_code                     => 'AP_REAL_GAIN'
78967   , p_adr_type_code                => 'S'
78968   , p_component_type               => l_component_type
78969   , p_component_code               => l_component_code
78970   , p_component_type_code          => l_component_type_code
78971   , p_component_appl_id            => l_component_appl_id
78972   , p_amb_context_code             => l_amb_context_code
78973   , p_side                         => 'NA'
78974   );
78975 
78976 
78977    l_segment := AcctDerRule_21(
78978            p_application_id           => p_application_id
78979          , p_ae_header_id             => l_ae_header_id 
78980 , p_source_3 => p_source_3
78981 , p_source_3_meaning => p_source_3_meaning
78982 , p_source_18 => p_source_18
78983          , x_transaction_coa_id       => l_adr_transaction_coa_id
78984          , x_accounting_coa_id        => l_adr_accounting_coa_id
78985          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
78986          , x_flex_value_set_id        => l_adr_flex_value_set_id
78987          , x_value_type_code          => l_adr_value_type_code
78988          , x_value_combination_id     => l_adr_value_combination_id
78992    );
78989          , x_value_segment_code       => l_adr_value_segment_code
78990          , p_side                     => 'NA'
78991          , p_override_seg_flag        => 'Y'
78993 
78994    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
78995 
78996       xla_ae_lines_pkg.set_segment(
78997           p_to_segment_code         => 'GL_BALANCING'
78998         , p_segment_value           => l_segment
78999         , p_from_segment_code       => l_adr_value_segment_code
79000         , p_from_combination_id     => l_adr_value_combination_id
79001         , p_value_type_code         => l_adr_value_type_code
79002         , p_transaction_coa_id      => l_adr_transaction_coa_id
79003         , p_accounting_coa_id       => l_adr_accounting_coa_id
79004         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
79005         , p_flex_value_set_id       => l_adr_flex_value_set_id
79006         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
79007         , p_adr_type_code           => 'S'
79008         , p_component_type          => l_component_type
79009         , p_component_code          => l_component_code
79010         , p_component_type_code     => l_component_type_code
79011         , p_component_appl_id       => l_component_appl_id
79012         , p_amb_context_code        => l_amb_context_code
79013         , p_entity_code             => 'AP_PAYMENTS'
79014         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
79015         , p_side                    => 'NA'
79016         );
79017 
79018   END IF;
79019 
79020    l_segment := AcctDerRule_16(
79021            p_application_id           => p_application_id
79022          , p_ae_header_id             => l_ae_header_id 
79023 , p_source_3 => p_source_3
79024 , p_source_3_meaning => p_source_3_meaning
79025 , p_source_24 => p_source_24
79026 , p_source_25 => p_source_25
79027          , x_transaction_coa_id       => l_adr_transaction_coa_id
79028          , x_accounting_coa_id        => l_adr_accounting_coa_id
79029          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
79030          , x_flex_value_set_id        => l_adr_flex_value_set_id
79031          , x_value_type_code          => l_adr_value_type_code
79032          , x_value_combination_id     => l_adr_value_combination_id
79033          , x_value_segment_code       => l_adr_value_segment_code
79034          , p_side                     => 'NA'
79035          , p_override_seg_flag        => 'Y'
79036    );
79037 
79038    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
79039 
79040       xla_ae_lines_pkg.set_segment(
79041           p_to_segment_code         => 'GL_ACCOUNT'
79042         , p_segment_value           => l_segment
79043         , p_from_segment_code       => l_adr_value_segment_code
79044         , p_from_combination_id     => l_adr_value_combination_id
79045         , p_value_type_code         => l_adr_value_type_code
79046         , p_transaction_coa_id      => l_adr_transaction_coa_id
79047         , p_accounting_coa_id       => l_adr_accounting_coa_id
79048         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
79049         , p_flex_value_set_id       => l_adr_flex_value_set_id
79050         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
79051         , p_adr_type_code           => 'S'
79052         , p_component_type          => l_component_type
79053         , p_component_code          => l_component_code
79054         , p_component_type_code     => l_component_type_code
79055         , p_component_appl_id       => l_component_appl_id
79056         , p_amb_context_code        => l_amb_context_code
79057         , p_entity_code             => 'AP_PAYMENTS'
79058         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
79059         , p_side                    => 'NA'
79060         );
79061 
79062   END IF;
79063 
79064    --
79065    --
79066    END IF;
79067    --
79068    -- Bug 4922099
79069    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
79070           (NVL(l_enc_upg_option, 'N') = 'O')
79071         ) AND
79072         (l_bflow_method_code = 'PRIOR_ENTRY')
79073       )
79074    THEN
79075       IF
79076       --
79077       1 = 2
79078       --
79079       THEN
79080       xla_accounting_err_pkg.build_message
79081                                     (p_appli_s_name            => 'XLA'
79082                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79083                                     ,p_token_1                 => 'LINE_NUMBER'
79084                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
79085                                     ,p_token_2                 => 'LINE_TYPE_NAME'
79086                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
79087                                                                              l_component_type
79088                                                                             ,l_component_code
79089                                                                             ,l_component_type_code
79090                                                                             ,l_component_appl_id
79091                                                                             ,l_amb_context_code
79092                                                                             ,l_entity_code
79093                                                                             ,l_event_class_code
79094                                                                            )
79095                                     ,p_token_3                 => 'OWNER'
79096                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
79097                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
79101                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
79098                                                                           ,p_lookup_code    => l_component_type_code
79099                                                                          )
79100                                     ,p_token_4                 => 'PRODUCT_NAME'
79102                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
79103                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
79104                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
79105                                     ,p_ae_header_id            =>  NULL
79106                                        );
79107 
79108         IF (C_LEVEL_ERROR>= g_log_level) THEN
79109                  trace
79110                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79111                       ,p_level    => C_LEVEL_ERROR
79112                       ,p_module   => l_log_module);
79113         END IF;
79114       END IF;
79115    END IF;
79116    --
79117    --
79118    ------------------------------------------------------------------------------------------------
79119    -- 4219869 Business Flow
79120    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
79121    -- Prior Entry.  Currently, the following code is always generated.
79122    ------------------------------------------------------------------------------------------------
79123    XLA_AE_LINES_PKG.ValidateCurrentLine;
79124 
79125    ------------------------------------------------------------------------------------
79126    -- 4219869 Business Flow
79127    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
79128    ------------------------------------------------------------------------------------
79129    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79130 
79131    ----------------------------------------------------------------------------------
79132    -- 4219869 Business Flow
79133    -- Update journal entry status -- Need to generate this within IF <condition>
79134    ----------------------------------------------------------------------------------
79135    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79136          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
79137          ,p_balance_type_code => l_balance_type_code
79138          );
79139 
79140    -------------------------------------------------------------------------------------------
79141    -- 4262811 - Generate the Accrual Reversal lines
79142    -------------------------------------------------------------------------------------------
79143    BEGIN
79144       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
79145                               (g_array_event(p_event_id).array_value_num('header_index'));
79146       IF l_acc_rev_flag IS NULL THEN
79147          l_acc_rev_flag := 'N';
79148       END IF;
79149    EXCEPTION
79150       WHEN OTHERS THEN
79151          l_acc_rev_flag := 'N';
79152    END;
79153    --
79154    IF (l_acc_rev_flag = 'Y') THEN
79155 
79156        -- 4645092  ------------------------------------------------------------------------------
79157        -- To allow MPA report to determine if it should generate report process
79158        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
79159        ------------------------------------------------------------------------------------------
79160 
79161        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
79162        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
79163    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
79164    -- call ADRs
79165    -- Bug 4922099
79166    --
79167    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79168         (NVL(l_actual_upg_option, 'N') = 'O') OR
79169         (NVL(l_enc_upg_option, 'N') = 'O')
79170       )
79171    THEN
79172    NULL;
79173    --
79174    --
79175    
79176   l_ccid := AcctDerRule_37(
79177            p_application_id           => p_application_id
79178          , p_ae_header_id             => l_ae_header_id 
79179 , p_source_3 => p_source_3
79180 , p_source_3_meaning => p_source_3_meaning
79181 , p_source_18 => p_source_18
79182 , p_source_24 => p_source_24
79183 , p_source_25 => p_source_25
79184          , x_transaction_coa_id       => l_adr_transaction_coa_id
79185          , x_accounting_coa_id        => l_adr_accounting_coa_id
79186          , x_value_type_code          => l_adr_value_type_code
79187          , p_side                     => 'NA'
79188    );
79189 
79190    xla_ae_lines_pkg.set_ccid(
79191     p_code_combination_id          => l_ccid
79192   , p_value_type_code              => l_adr_value_type_code
79193   , p_transaction_coa_id           => l_adr_transaction_coa_id
79194   , p_accounting_coa_id            => l_adr_accounting_coa_id
79195   , p_adr_code                     => 'AP_REAL_GAIN'
79196   , p_adr_type_code                => 'S'
79197   , p_component_type               => l_component_type
79198   , p_component_code               => l_component_code
79199   , p_component_type_code          => l_component_type_code
79200   , p_component_appl_id            => l_component_appl_id
79201   , p_amb_context_code             => l_amb_context_code
79202   , p_side                         => 'NA'
79203   );
79204 
79205 
79206    l_segment := AcctDerRule_21(
79207            p_application_id           => p_application_id
79208          , p_ae_header_id             => l_ae_header_id 
79209 , p_source_3 => p_source_3
79210 , p_source_3_meaning => p_source_3_meaning
79211 , p_source_18 => p_source_18
79215          , x_flex_value_set_id        => l_adr_flex_value_set_id
79212          , x_transaction_coa_id       => l_adr_transaction_coa_id
79213          , x_accounting_coa_id        => l_adr_accounting_coa_id
79214          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
79216          , x_value_type_code          => l_adr_value_type_code
79217          , x_value_combination_id     => l_adr_value_combination_id
79218          , x_value_segment_code       => l_adr_value_segment_code
79219          , p_side                     => 'NA'
79220          , p_override_seg_flag        => 'Y'
79221    );
79222 
79223    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
79224 
79225       xla_ae_lines_pkg.set_segment(
79226           p_to_segment_code         => 'GL_BALANCING'
79227         , p_segment_value           => l_segment
79228         , p_from_segment_code       => l_adr_value_segment_code
79229         , p_from_combination_id     => l_adr_value_combination_id
79230         , p_value_type_code         => l_adr_value_type_code
79231         , p_transaction_coa_id      => l_adr_transaction_coa_id
79232         , p_accounting_coa_id       => l_adr_accounting_coa_id
79233         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
79234         , p_flex_value_set_id       => l_adr_flex_value_set_id
79235         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
79236         , p_adr_type_code           => 'S'
79237         , p_component_type          => l_component_type
79238         , p_component_code          => l_component_code
79239         , p_component_type_code     => l_component_type_code
79240         , p_component_appl_id       => l_component_appl_id
79241         , p_amb_context_code        => l_amb_context_code
79242         , p_entity_code             => 'AP_PAYMENTS'
79243         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
79244         , p_side                    => 'NA'
79245         );
79246 
79247   END IF;
79248 
79249    l_segment := AcctDerRule_16(
79250            p_application_id           => p_application_id
79251          , p_ae_header_id             => l_ae_header_id 
79252 , p_source_3 => p_source_3
79253 , p_source_3_meaning => p_source_3_meaning
79254 , p_source_24 => p_source_24
79255 , p_source_25 => p_source_25
79256          , x_transaction_coa_id       => l_adr_transaction_coa_id
79257          , x_accounting_coa_id        => l_adr_accounting_coa_id
79258          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
79259          , x_flex_value_set_id        => l_adr_flex_value_set_id
79260          , x_value_type_code          => l_adr_value_type_code
79261          , x_value_combination_id     => l_adr_value_combination_id
79262          , x_value_segment_code       => l_adr_value_segment_code
79263          , p_side                     => 'NA'
79264          , p_override_seg_flag        => 'Y'
79265    );
79266 
79267    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
79268 
79269       xla_ae_lines_pkg.set_segment(
79270           p_to_segment_code         => 'GL_ACCOUNT'
79271         , p_segment_value           => l_segment
79272         , p_from_segment_code       => l_adr_value_segment_code
79273         , p_from_combination_id     => l_adr_value_combination_id
79274         , p_value_type_code         => l_adr_value_type_code
79275         , p_transaction_coa_id      => l_adr_transaction_coa_id
79276         , p_accounting_coa_id       => l_adr_accounting_coa_id
79277         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
79278         , p_flex_value_set_id       => l_adr_flex_value_set_id
79279         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
79280         , p_adr_type_code           => 'S'
79281         , p_component_type          => l_component_type
79282         , p_component_code          => l_component_code
79283         , p_component_type_code     => l_component_type_code
79284         , p_component_appl_id       => l_component_appl_id
79285         , p_amb_context_code        => l_amb_context_code
79286         , p_entity_code             => 'AP_PAYMENTS'
79287         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
79288         , p_side                    => 'NA'
79289         );
79290 
79291   END IF;
79292 
79293    --
79294    --
79295    END IF;
79296 
79297        --
79298        -- Update the line information that should be overwritten
79299        --
79300        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
79301                                          p_header_num   => 1);
79302        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
79303 
79304        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
79305 
79306        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
79307           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
79308        END IF;
79309 
79310       --
79311       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
79312       --
79313       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
79314           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
79318           ---------------------------------------------------------------------------------------------------
79315       ELSE
79316           ---------------------------------------------------------------------------------------------------
79317           -- 4262811a Switch Sign
79319           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
79320           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79321                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79322           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79323                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79324           -- 5132302
79325           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
79326                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79327 
79328       END IF;
79329 
79330       -- 4955764
79331       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79332       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
79333 
79334 
79335       XLA_AE_LINES_PKG.ValidateCurrentLine;
79336       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79337 
79338       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79339                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
79340                ,p_balance_type_code => l_balance_type_code);
79341 
79342    END IF;
79343 
79344    -----------------------------------------------------------------------------------------
79345    -- 4262811 Multiperiod Accounting
79346    -----------------------------------------------------------------------------------------
79347      -- No MPA option is assigned.
79348 
79349 
79350 END IF;
79351 END IF;
79352 --
79353 
79354 --
79355 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79356    trace
79357       (p_msg      => 'END of AcctLineType_145'
79358       ,p_level    => C_LEVEL_PROCEDURE
79359       ,p_module   => l_log_module);
79360 END IF;
79361 --
79362 EXCEPTION
79363   WHEN xla_exceptions_pkg.application_exception THEN
79364       RAISE;
79365   WHEN OTHERS THEN
79366        xla_exceptions_pkg.raise_message
79367            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_145');
79368 END AcctLineType_145;
79369 --
79370 
79371 ---------------------------------------
79372 --
79373 -- PRIVATE FUNCTION
79374 --         AcctLineType_146
79375 --
79376 ---------------------------------------
79377 PROCEDURE AcctLineType_146 (
79378   p_application_id        IN NUMBER
79379  ,p_event_id              IN NUMBER
79380  ,p_calculate_acctd_flag  IN VARCHAR2
79381  ,p_calculate_g_l_flag    IN VARCHAR2
79382  ,p_actual_flag           IN OUT VARCHAR2
79383  ,p_balance_type_code     OUT VARCHAR2
79384  ,p_gain_or_loss_ref      OUT VARCHAR2
79385  
79386 --Automatic Offsets Value
79387  , p_source_3            IN VARCHAR2
79388  , p_source_3_meaning    IN VARCHAR2
79389 --Invoice Distribution Account
79390  , p_source_18            IN NUMBER
79391 --Internal Realized Gain Account
79392  , p_source_24            IN NUMBER
79393 --Bank Gain Account
79394  , p_source_25            IN NUMBER
79395 --Accounting Reversal Indicator
79396  , p_source_41            IN VARCHAR2
79397 --Distribution Link Type
79398  , p_source_43            IN VARCHAR2
79399 --Invoice Identifier
79400  , p_source_46            IN NUMBER
79401 --Payables Encumbrance Upgrade Credit Account
79402  , p_source_53            IN NUMBER
79403 --Payables Encumbrance Upgrade Credit Amount
79404  , p_source_54            IN NUMBER
79405 --Invoice Currency Code
79406  , p_source_55            IN VARCHAR2
79407 --Payables Encumbrance Upgrade Credit Base Amount
79408  , p_source_56            IN NUMBER
79409 --Payables Encumbrance Upgrade Debit Account
79410  , p_source_57            IN NUMBER
79411 --Payables Encumbrance Upgrade Debit Amount
79412  , p_source_58            IN NUMBER
79413 --Payables Encumbrance Upgrade Debit Base Amount
79414  , p_source_59            IN NUMBER
79415 --Payables Encumbrance Upgrade Option
79416  , p_source_60            IN VARCHAR2
79417 --Deferred Accounting End Date
79418  , p_source_65            IN DATE
79419 --Deferred Accounting Option
79420  , p_source_66            IN VARCHAR2
79421 --Deferred Accounting Start Date
79422  , p_source_67            IN DATE
79423 --Override Accounted Amount Indicator
79424  , p_source_68            IN VARCHAR2
79425  , p_source_68_meaning    IN VARCHAR2
79426 --Invoice Supplier Identifier
79427  , p_source_69            IN NUMBER
79428 --Invoice Supplier Site Identifier
79429  , p_source_70            IN NUMBER
79430 --Third Party Type
79431  , p_source_71            IN VARCHAR2
79432 --Invoice Distribution Tax Line Identifier
79433  , p_source_74            IN NUMBER
79434 --Invoice Distribution Tax Distribution Identifier from Tax
79435  , p_source_75            IN NUMBER
79436 --Invoice Distribution Summary Tax Line Identifier
79437  , p_source_76            IN NUMBER
79438 --Payables Upgrade Credit Encumbrance Type Identifier
79439  , p_source_77            IN NUMBER
79440 --Payables Upgrade Debit Encumbrance Type Identifier
79441  , p_source_78            IN NUMBER
79442 --Business Flow Accounts Payable Application Identifier
79443  , p_source_79            IN NUMBER
79444 --Prepayment Distribution Type
79445  , p_source_118            IN VARCHAR2
79446 --Prepayment Application Distribution Identifier
79450 --Upgrade Encumbrance Debit Account Class
79447  , p_source_120            IN NUMBER
79448 --Upgrade Encumbrance Credit Account Class
79449  , p_source_125            IN VARCHAR2
79451  , p_source_126            IN VARCHAR2
79452 --Prepayment Distribution Amount
79453  , p_source_127            IN NUMBER
79454 --Identifier of the Prepayment Application Reversed
79455  , p_source_129            IN NUMBER
79456 --Invoice Exchange Date
79457  , p_source_136            IN DATE
79458 --Invoice Exchange Rate
79459  , p_source_137            IN NUMBER
79460 --Invoice Exchange Rate Type
79461  , p_source_138            IN VARCHAR2
79462 --Business Flow Prepayment Invoice Distribution Type
79463  , p_source_139            IN VARCHAR2
79464 --Business Flow Prepayment Invoice Entity Code
79465  , p_source_140            IN VARCHAR2
79466 --Business Flow Prepayment Invoice Distribution Identifier
79467  , p_source_141            IN NUMBER
79468 --Business Flow Prepayment Invoice Identifier
79469  , p_source_142            IN NUMBER
79470 --Prepayment/Invoice Ledger Amount Difference
79471  , p_source_150            IN NUMBER
79472 --Gain or Loss Indicator between Prepayment and Invoice
79473  , p_source_157            IN VARCHAR2
79474 )
79475 IS
79476 
79477 l_component_type              VARCHAR2(80);
79478 l_component_code              VARCHAR2(30);
79479 l_component_type_code         VARCHAR2(1);
79480 l_component_appl_id           INTEGER;
79481 l_amb_context_code            VARCHAR2(30);
79482 l_entity_code                 VARCHAR2(30);
79483 l_event_class_code            VARCHAR2(30);
79484 l_ae_header_id                NUMBER;
79485 l_event_type_code             VARCHAR2(30);
79486 l_line_definition_code        VARCHAR2(30);
79487 l_line_definition_owner_code  VARCHAR2(1);
79488 --
79489 -- adr variables
79490 l_segment                     VARCHAR2(30);
79491 l_ccid                        NUMBER;
79492 l_adr_transaction_coa_id      NUMBER;
79493 l_adr_accounting_coa_id       NUMBER;
79494 l_adr_flexfield_segment_code  VARCHAR2(30);
79495 l_adr_flex_value_set_id       NUMBER;
79496 l_adr_value_type_code         VARCHAR2(30);
79497 l_adr_value_combination_id    NUMBER;
79498 l_adr_value_segment_code      VARCHAR2(30);
79499 
79500 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
79501 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
79502 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
79503 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
79504 
79505 -- 4262811 Variables ------------------------------------------------------------------------------------------
79506 l_entered_amt_idx             NUMBER;
79507 l_accted_amt_idx              NUMBER;
79508 l_acc_rev_flag                VARCHAR2(1);
79509 l_accrual_line_num            NUMBER;
79510 l_tmp_amt                     NUMBER;
79511 l_acc_rev_natural_side_code   VARCHAR2(1);
79512 
79513 l_num_entries                 NUMBER;
79514 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
79515 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
79516 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
79517 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
79518 l_recog_line_1                NUMBER;
79519 l_recog_line_2                NUMBER;
79520 
79521 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
79522 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
79523 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
79524 
79525 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
79526 
79527 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
79528 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
79529 
79530 ---------------------------------------------------------------------------------------------------------------
79531 
79532 
79533 --
79534 -- bulk performance
79535 --
79536 l_balance_type_code           VARCHAR2(1);
79537 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
79538 l_log_module                  VARCHAR2(240);
79539 
79540 --
79541 -- Upgrade strategy
79542 --
79543 l_actual_upg_option           VARCHAR2(1);
79544 l_enc_upg_option           VARCHAR2(1);
79545 
79546 --
79547 BEGIN
79548 --
79549 IF g_log_enabled THEN
79550       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_146';
79551 END IF;
79552 --
79553 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79554 
79555       trace
79556          (p_msg      => 'BEGIN of AcctLineType_146'
79557          ,p_level    => C_LEVEL_PROCEDURE
79558          ,p_module   => l_log_module);
79559 
79560 END IF;
79561 --
79562 l_component_type             := 'AMB_JLT';
79563 l_component_code             := 'AP_GAIN_PREPAY_APP';
79564 l_component_type_code        := 'S';
79565 l_component_appl_id          :=  200;
79566 l_amb_context_code           := 'DEFAULT';
79567 l_entity_code                := 'AP_INVOICES';
79568 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
79569 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
79570 l_line_definition_owner_code := 'S';
79571 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
79572 --
79573 l_balance_type_code          := 'A';
79574 l_segment                     := NULL;
79575 l_ccid                        := NULL;
79576 l_adr_transaction_coa_id      := NULL;
79577 l_adr_accounting_coa_id       := NULL;
79578 l_adr_flexfield_segment_code  := NULL;
79582 l_adr_value_segment_code      := NULL;
79579 l_adr_flex_value_set_id       := NULL;
79580 l_adr_value_type_code         := NULL;
79581 l_adr_value_combination_id    := NULL;
79583 
79584 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
79585 l_bflow_class_code           := '';    -- 4219869 Business Flow
79586 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
79587 l_budgetary_control_flag     := 'N';
79588 
79589 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
79590 l_bflow_applied_to_amt       := NULL; -- 5132302
79591 l_entered_amt_idx            := NULL;          -- 4262811
79592 l_accted_amt_idx             := NULL;          -- 4262811
79593 l_acc_rev_flag               := NULL;          -- 4262811
79594 l_accrual_line_num           := NULL;          -- 4262811
79595 l_tmp_amt                    := NULL;          -- 4262811
79596 --
79597 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
79598             (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
79599                return;
79600   END IF;
79601   
79602 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
79603     l_balance_type_code <> 'B' THEN
79604 IF NVL(p_source_118,'
79605 ') =  'PREPAY APPL' AND 
79606 NVL(p_source_157,'
79607 ') =  'GAIN'
79608  THEN 
79609 
79610    --
79611    XLA_AE_LINES_PKG.SetNewLine;
79612 
79613    p_balance_type_code          := l_balance_type_code;
79614    -- set the flag so later we will know whether the gain loss line needs to be created
79615    
79616    IF(l_balance_type_code = 'A' ) THEN
79617      p_actual_flag :='G';
79618    END IF;
79619 
79620    --
79621    -- bulk performance
79622    --
79623    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
79624                                       p_header_num   => 0); -- 4262811
79625    --
79626    -- set accounting line options
79627    --
79628    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
79629            p_natural_side_code          => 'D'
79630          , p_gain_or_loss_flag          => 'Y'
79631          , p_gl_transfer_mode_code      => 'S'
79632          , p_acct_entry_type_code       => 'A'
79633          , p_switch_side_flag           => 'Y'
79634          , p_merge_duplicate_code       => 'A'
79635          );
79636    --
79637    l_acc_rev_natural_side_code := 'C';  -- 4262811
79638    -- 
79639    --
79640    -- set accounting line type info
79641    --
79642    xla_ae_lines_pkg.SetAcctLineType
79643       (p_component_type             => l_component_type
79644       ,p_event_type_code            => l_event_type_code
79645       ,p_line_definition_owner_code => l_line_definition_owner_code
79646       ,p_line_definition_code       => l_line_definition_code
79647       ,p_accounting_line_code       => l_component_code
79648       ,p_accounting_line_type_code  => l_component_type_code
79649       ,p_accounting_line_appl_id    => l_component_appl_id
79650       ,p_amb_context_code           => l_amb_context_code
79651       ,p_entity_code                => l_entity_code
79652       ,p_event_class_code           => l_event_class_code);
79653    --
79654    -- set accounting class
79655    --
79656    xla_ae_lines_pkg.SetAcctClass(
79657            p_accounting_class_code  => 'GAIN'
79658          , p_ae_header_id           => l_ae_header_id
79659          );
79660 
79661    --
79662    -- set rounding class
79663    --
79664    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
79665                       'GAIN';
79666 
79667    --
79668    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
79669    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
79670    --
79671    -- bulk performance
79672    --
79673    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
79674 
79675    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
79676       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
79677 
79678    -- 4955764
79679    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79680       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
79681 
79682    -- 4458381 Public Sector Enh
79683    
79684    --
79685    -- set accounting attributes for the line type
79686    --
79687    l_entered_amt_idx := 25;
79688    l_accted_amt_idx  := 30;
79689    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
79690    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
79691    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
79692    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
79693    l_rec_acct_attrs.array_num_value(2)  := 
79694 xla_ae_sources_pkg.GetSystemSourceNum(
79695    p_source_code           => 'XLA_EVENT_APPL_ID'
79696  , p_source_type_code      => 'Y'
79697  , p_source_application_id =>  602
79698 );
79699    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
79700    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
79701    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
79702    l_rec_acct_attrs.array_char_value(4)  := 
79703 xla_ae_sources_pkg.GetSystemSourceChar(
79707 );
79704    p_source_code           => 'XLA_ENTITY_CODE'
79705  , p_source_type_code      => 'Y'
79706  , p_source_application_id =>  602
79708    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
79709    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_120);
79710    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
79711    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
79712    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
79713    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
79714    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
79715    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
79716    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
79717    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
79718    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
79719    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
79720    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
79721    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
79722    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
79723    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_120);
79724    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
79725    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
79726    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
79727    l_rec_acct_attrs.array_char_value(14)  := p_source_125;
79728    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
79729    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
79730    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
79731    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
79732    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
79733    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
79734    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
79735    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
79736    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
79737    l_rec_acct_attrs.array_char_value(19)  := p_source_126;
79738    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
79739    l_rec_acct_attrs.array_num_value(20)  := p_source_57;
79740    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
79741    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
79742    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
79743    l_rec_acct_attrs.array_char_value(22)  := p_source_55;
79744    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
79745    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
79746    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
79747    l_rec_acct_attrs.array_char_value(24)  := p_source_60;
79748    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
79749    l_rec_acct_attrs.array_num_value(25)  := p_source_127;
79750    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
79751    l_rec_acct_attrs.array_char_value(26)  := p_source_55;
79752    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
79753    l_rec_acct_attrs.array_date_value(27)  := p_source_136;
79754    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
79755    l_rec_acct_attrs.array_num_value(28)  := p_source_137;
79756    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
79757    l_rec_acct_attrs.array_char_value(29)  := p_source_138;
79758    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
79759    l_rec_acct_attrs.array_num_value(30)  := p_source_150;
79760    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
79761    l_rec_acct_attrs.array_date_value(31)  := p_source_65;
79762    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
79763    l_rec_acct_attrs.array_char_value(32)  := p_source_66;
79764    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
79765    l_rec_acct_attrs.array_date_value(33)  := p_source_67;
79766    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
79767    l_rec_acct_attrs.array_char_value(34)  := p_source_68;
79768    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
79769    l_rec_acct_attrs.array_num_value(35)  := p_source_69;
79770    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
79771    l_rec_acct_attrs.array_num_value(36)  := p_source_70;
79772    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
79773    l_rec_acct_attrs.array_char_value(37)  := p_source_71;
79774    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
79775    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_129);
79776    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
79777    l_rec_acct_attrs.array_char_value(39)  := p_source_43;
79778    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
79779    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
79780    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
79781    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
79782    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
79783    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
79784    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
79785    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
79786    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
79787    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
79788 
79789    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
79790    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
79791 
79792    ---------------------------------------------------------------------------------------------------------------
79796 
79793    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
79794    ---------------------------------------------------------------------------------------------------------------
79795    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
79797    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79798    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79799 
79800    IF xla_accounting_cache_pkg.GetValueChar
79801          (p_source_code         => 'LEDGER_CATEGORY_CODE'
79802          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
79803    AND l_bflow_method_code = 'PRIOR_ENTRY'
79804 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
79805    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
79806          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
79807        )
79808    THEN
79809          xla_ae_lines_pkg.BflowUpgEntry
79810            (p_business_method_code    => l_bflow_method_code
79811            ,p_business_class_code     => l_bflow_class_code
79812            ,p_balance_type            => l_balance_type_code);
79813    ELSE
79814       NULL;
79815 -- No business flow processing for business flow method of NONE.
79816    END IF;
79817 
79818    --
79819    -- call analytical criteria
79820    --
79821    
79822    --
79823    -- call description
79824    --
79825    -- No description or it is inherited.
79826    --
79827    -- call ADRs
79828    -- Bug 4922099
79829    --
79830    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79831         (NVL(l_actual_upg_option, 'N') = 'O') OR
79832         (NVL(l_enc_upg_option, 'N') = 'O')
79833       )
79834    THEN
79835    NULL;
79836    --
79837    --
79838    
79839   l_ccid := AcctDerRule_37(
79840            p_application_id           => p_application_id
79841          , p_ae_header_id             => l_ae_header_id 
79842 , p_source_3 => p_source_3
79843 , p_source_3_meaning => p_source_3_meaning
79844 , p_source_18 => p_source_18
79845 , p_source_24 => p_source_24
79846 , p_source_25 => p_source_25
79847          , x_transaction_coa_id       => l_adr_transaction_coa_id
79848          , x_accounting_coa_id        => l_adr_accounting_coa_id
79849          , x_value_type_code          => l_adr_value_type_code
79850          , p_side                     => 'NA'
79851    );
79852 
79853    xla_ae_lines_pkg.set_ccid(
79854     p_code_combination_id          => l_ccid
79855   , p_value_type_code              => l_adr_value_type_code
79856   , p_transaction_coa_id           => l_adr_transaction_coa_id
79857   , p_accounting_coa_id            => l_adr_accounting_coa_id
79858   , p_adr_code                     => 'AP_REAL_GAIN'
79859   , p_adr_type_code                => 'S'
79860   , p_component_type               => l_component_type
79861   , p_component_code               => l_component_code
79862   , p_component_type_code          => l_component_type_code
79863   , p_component_appl_id            => l_component_appl_id
79864   , p_amb_context_code             => l_amb_context_code
79865   , p_side                         => 'NA'
79866   );
79867 
79868 
79869    l_segment := AcctDerRule_21(
79870            p_application_id           => p_application_id
79871          , p_ae_header_id             => l_ae_header_id 
79872 , p_source_3 => p_source_3
79873 , p_source_3_meaning => p_source_3_meaning
79874 , p_source_18 => p_source_18
79875          , x_transaction_coa_id       => l_adr_transaction_coa_id
79876          , x_accounting_coa_id        => l_adr_accounting_coa_id
79877          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
79878          , x_flex_value_set_id        => l_adr_flex_value_set_id
79879          , x_value_type_code          => l_adr_value_type_code
79880          , x_value_combination_id     => l_adr_value_combination_id
79881          , x_value_segment_code       => l_adr_value_segment_code
79882          , p_side                     => 'NA'
79883          , p_override_seg_flag        => 'Y'
79884    );
79885 
79886    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
79887 
79888       xla_ae_lines_pkg.set_segment(
79889           p_to_segment_code         => 'GL_BALANCING'
79890         , p_segment_value           => l_segment
79891         , p_from_segment_code       => l_adr_value_segment_code
79892         , p_from_combination_id     => l_adr_value_combination_id
79893         , p_value_type_code         => l_adr_value_type_code
79894         , p_transaction_coa_id      => l_adr_transaction_coa_id
79895         , p_accounting_coa_id       => l_adr_accounting_coa_id
79896         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
79897         , p_flex_value_set_id       => l_adr_flex_value_set_id
79898         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
79899         , p_adr_type_code           => 'S'
79900         , p_component_type          => l_component_type
79901         , p_component_code          => l_component_code
79902         , p_component_type_code     => l_component_type_code
79903         , p_component_appl_id       => l_component_appl_id
79904         , p_amb_context_code        => l_amb_context_code
79905         , p_entity_code             => 'AP_INVOICES'
79906         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
79907         , p_side                    => 'NA'
79908         );
79909 
79910   END IF;
79911 
79912    l_segment := AcctDerRule_16(
79913            p_application_id           => p_application_id
79914          , p_ae_header_id             => l_ae_header_id 
79915 , p_source_3 => p_source_3
79919          , x_transaction_coa_id       => l_adr_transaction_coa_id
79916 , p_source_3_meaning => p_source_3_meaning
79917 , p_source_24 => p_source_24
79918 , p_source_25 => p_source_25
79920          , x_accounting_coa_id        => l_adr_accounting_coa_id
79921          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
79922          , x_flex_value_set_id        => l_adr_flex_value_set_id
79923          , x_value_type_code          => l_adr_value_type_code
79924          , x_value_combination_id     => l_adr_value_combination_id
79925          , x_value_segment_code       => l_adr_value_segment_code
79926          , p_side                     => 'NA'
79927          , p_override_seg_flag        => 'Y'
79928    );
79929 
79930    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
79931 
79932       xla_ae_lines_pkg.set_segment(
79933           p_to_segment_code         => 'GL_ACCOUNT'
79934         , p_segment_value           => l_segment
79935         , p_from_segment_code       => l_adr_value_segment_code
79936         , p_from_combination_id     => l_adr_value_combination_id
79937         , p_value_type_code         => l_adr_value_type_code
79938         , p_transaction_coa_id      => l_adr_transaction_coa_id
79939         , p_accounting_coa_id       => l_adr_accounting_coa_id
79940         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
79941         , p_flex_value_set_id       => l_adr_flex_value_set_id
79942         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
79943         , p_adr_type_code           => 'S'
79944         , p_component_type          => l_component_type
79945         , p_component_code          => l_component_code
79946         , p_component_type_code     => l_component_type_code
79947         , p_component_appl_id       => l_component_appl_id
79948         , p_amb_context_code        => l_amb_context_code
79949         , p_entity_code             => 'AP_INVOICES'
79950         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
79951         , p_side                    => 'NA'
79952         );
79953 
79954   END IF;
79955 
79956    --
79957    --
79958    END IF;
79959    --
79960    -- Bug 4922099
79961    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
79962           (NVL(l_enc_upg_option, 'N') = 'O')
79963         ) AND
79964         (l_bflow_method_code = 'PRIOR_ENTRY')
79965       )
79966    THEN
79967       IF
79968       --
79969       1 = 2
79970       --
79971       THEN
79972       xla_accounting_err_pkg.build_message
79973                                     (p_appli_s_name            => 'XLA'
79974                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79975                                     ,p_token_1                 => 'LINE_NUMBER'
79976                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
79977                                     ,p_token_2                 => 'LINE_TYPE_NAME'
79978                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
79979                                                                              l_component_type
79980                                                                             ,l_component_code
79981                                                                             ,l_component_type_code
79982                                                                             ,l_component_appl_id
79983                                                                             ,l_amb_context_code
79984                                                                             ,l_entity_code
79985                                                                             ,l_event_class_code
79986                                                                            )
79987                                     ,p_token_3                 => 'OWNER'
79988                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
79989                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
79990                                                                           ,p_lookup_code    => l_component_type_code
79991                                                                          )
79992                                     ,p_token_4                 => 'PRODUCT_NAME'
79993                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
79994                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
79995                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
79996                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
79997                                     ,p_ae_header_id            =>  NULL
79998                                        );
79999 
80000         IF (C_LEVEL_ERROR>= g_log_level) THEN
80001                  trace
80002                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80003                       ,p_level    => C_LEVEL_ERROR
80004                       ,p_module   => l_log_module);
80005         END IF;
80006       END IF;
80007    END IF;
80008    --
80009    --
80010    ------------------------------------------------------------------------------------------------
80011    -- 4219869 Business Flow
80012    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
80013    -- Prior Entry.  Currently, the following code is always generated.
80014    ------------------------------------------------------------------------------------------------
80015    XLA_AE_LINES_PKG.ValidateCurrentLine;
80016 
80017    ------------------------------------------------------------------------------------
80018    -- 4219869 Business Flow
80022 
80019    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
80020    ------------------------------------------------------------------------------------
80021    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80023    ----------------------------------------------------------------------------------
80024    -- 4219869 Business Flow
80025    -- Update journal entry status -- Need to generate this within IF <condition>
80026    ----------------------------------------------------------------------------------
80027    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80028          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
80029          ,p_balance_type_code => l_balance_type_code
80030          );
80031 
80032    -------------------------------------------------------------------------------------------
80033    -- 4262811 - Generate the Accrual Reversal lines
80034    -------------------------------------------------------------------------------------------
80035    BEGIN
80036       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
80037                               (g_array_event(p_event_id).array_value_num('header_index'));
80038       IF l_acc_rev_flag IS NULL THEN
80039          l_acc_rev_flag := 'N';
80040       END IF;
80041    EXCEPTION
80042       WHEN OTHERS THEN
80043          l_acc_rev_flag := 'N';
80044    END;
80045    --
80046    IF (l_acc_rev_flag = 'Y') THEN
80047 
80048        -- 4645092  ------------------------------------------------------------------------------
80049        -- To allow MPA report to determine if it should generate report process
80050        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
80051        ------------------------------------------------------------------------------------------
80052 
80053        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
80054        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
80055    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
80056    -- call ADRs
80057    -- Bug 4922099
80058    --
80059    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80060         (NVL(l_actual_upg_option, 'N') = 'O') OR
80061         (NVL(l_enc_upg_option, 'N') = 'O')
80062       )
80063    THEN
80064    NULL;
80065    --
80066    --
80067    
80068   l_ccid := AcctDerRule_37(
80069            p_application_id           => p_application_id
80070          , p_ae_header_id             => l_ae_header_id 
80071 , p_source_3 => p_source_3
80072 , p_source_3_meaning => p_source_3_meaning
80073 , p_source_18 => p_source_18
80074 , p_source_24 => p_source_24
80075 , p_source_25 => p_source_25
80076          , x_transaction_coa_id       => l_adr_transaction_coa_id
80077          , x_accounting_coa_id        => l_adr_accounting_coa_id
80078          , x_value_type_code          => l_adr_value_type_code
80079          , p_side                     => 'NA'
80080    );
80081 
80082    xla_ae_lines_pkg.set_ccid(
80083     p_code_combination_id          => l_ccid
80084   , p_value_type_code              => l_adr_value_type_code
80085   , p_transaction_coa_id           => l_adr_transaction_coa_id
80086   , p_accounting_coa_id            => l_adr_accounting_coa_id
80087   , p_adr_code                     => 'AP_REAL_GAIN'
80088   , p_adr_type_code                => 'S'
80089   , p_component_type               => l_component_type
80090   , p_component_code               => l_component_code
80091   , p_component_type_code          => l_component_type_code
80092   , p_component_appl_id            => l_component_appl_id
80093   , p_amb_context_code             => l_amb_context_code
80094   , p_side                         => 'NA'
80095   );
80096 
80097 
80098    l_segment := AcctDerRule_21(
80099            p_application_id           => p_application_id
80100          , p_ae_header_id             => l_ae_header_id 
80101 , p_source_3 => p_source_3
80102 , p_source_3_meaning => p_source_3_meaning
80103 , p_source_18 => p_source_18
80104          , x_transaction_coa_id       => l_adr_transaction_coa_id
80105          , x_accounting_coa_id        => l_adr_accounting_coa_id
80106          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
80107          , x_flex_value_set_id        => l_adr_flex_value_set_id
80108          , x_value_type_code          => l_adr_value_type_code
80109          , x_value_combination_id     => l_adr_value_combination_id
80110          , x_value_segment_code       => l_adr_value_segment_code
80111          , p_side                     => 'NA'
80112          , p_override_seg_flag        => 'Y'
80113    );
80114 
80115    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
80116 
80117       xla_ae_lines_pkg.set_segment(
80118           p_to_segment_code         => 'GL_BALANCING'
80119         , p_segment_value           => l_segment
80120         , p_from_segment_code       => l_adr_value_segment_code
80121         , p_from_combination_id     => l_adr_value_combination_id
80122         , p_value_type_code         => l_adr_value_type_code
80123         , p_transaction_coa_id      => l_adr_transaction_coa_id
80124         , p_accounting_coa_id       => l_adr_accounting_coa_id
80125         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
80126         , p_flex_value_set_id       => l_adr_flex_value_set_id
80127         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
80128         , p_adr_type_code           => 'S'
80129         , p_component_type          => l_component_type
80130         , p_component_code          => l_component_code
80131         , p_component_type_code     => l_component_type_code
80132         , p_component_appl_id       => l_component_appl_id
80133         , p_amb_context_code        => l_amb_context_code
80134         , p_entity_code             => 'AP_INVOICES'
80138 
80135         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
80136         , p_side                    => 'NA'
80137         );
80139   END IF;
80140 
80141    l_segment := AcctDerRule_16(
80142            p_application_id           => p_application_id
80143          , p_ae_header_id             => l_ae_header_id 
80144 , p_source_3 => p_source_3
80145 , p_source_3_meaning => p_source_3_meaning
80146 , p_source_24 => p_source_24
80147 , p_source_25 => p_source_25
80148          , x_transaction_coa_id       => l_adr_transaction_coa_id
80149          , x_accounting_coa_id        => l_adr_accounting_coa_id
80150          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
80151          , x_flex_value_set_id        => l_adr_flex_value_set_id
80152          , x_value_type_code          => l_adr_value_type_code
80153          , x_value_combination_id     => l_adr_value_combination_id
80154          , x_value_segment_code       => l_adr_value_segment_code
80155          , p_side                     => 'NA'
80156          , p_override_seg_flag        => 'Y'
80157    );
80158 
80159    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
80160 
80161       xla_ae_lines_pkg.set_segment(
80162           p_to_segment_code         => 'GL_ACCOUNT'
80163         , p_segment_value           => l_segment
80164         , p_from_segment_code       => l_adr_value_segment_code
80165         , p_from_combination_id     => l_adr_value_combination_id
80166         , p_value_type_code         => l_adr_value_type_code
80167         , p_transaction_coa_id      => l_adr_transaction_coa_id
80168         , p_accounting_coa_id       => l_adr_accounting_coa_id
80169         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
80170         , p_flex_value_set_id       => l_adr_flex_value_set_id
80171         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
80172         , p_adr_type_code           => 'S'
80173         , p_component_type          => l_component_type
80174         , p_component_code          => l_component_code
80175         , p_component_type_code     => l_component_type_code
80176         , p_component_appl_id       => l_component_appl_id
80177         , p_amb_context_code        => l_amb_context_code
80178         , p_entity_code             => 'AP_INVOICES'
80179         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
80180         , p_side                    => 'NA'
80181         );
80182 
80183   END IF;
80184 
80185    --
80186    --
80187    END IF;
80188 
80189        --
80190        -- Update the line information that should be overwritten
80191        --
80192        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
80193                                          p_header_num   => 1);
80194        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
80195 
80196        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
80197 
80198        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
80199           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
80200        END IF;
80201 
80202       --
80203       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
80204       --
80205       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
80206           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
80207       ELSE
80208           ---------------------------------------------------------------------------------------------------
80209           -- 4262811a Switch Sign
80210           ---------------------------------------------------------------------------------------------------
80211           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
80212           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80213                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80214           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80215                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80216           -- 5132302
80217           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
80218                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80219 
80220       END IF;
80221 
80222       -- 4955764
80223       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80224       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
80225 
80226 
80227       XLA_AE_LINES_PKG.ValidateCurrentLine;
80228       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80229 
80230       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80231                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
80232                ,p_balance_type_code => l_balance_type_code);
80233 
80234    END IF;
80235 
80236    -----------------------------------------------------------------------------------------
80237    -- 4262811 Multiperiod Accounting
80238    -----------------------------------------------------------------------------------------
80239      -- No MPA option is assigned.
80240 
80241 
80242 END IF;
80243 END IF;
80244 --
80245 
80246 --
80247 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80248    trace
80249       (p_msg      => 'END of AcctLineType_146'
80250       ,p_level    => C_LEVEL_PROCEDURE
80251       ,p_module   => l_log_module);
80252 END IF;
80253 --
80257   WHEN OTHERS THEN
80254 EXCEPTION
80255   WHEN xla_exceptions_pkg.application_exception THEN
80256       RAISE;
80258        xla_exceptions_pkg.raise_message
80259            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_146');
80260 END AcctLineType_146;
80261 --
80262 
80263 ---------------------------------------
80264 --
80265 -- PRIVATE FUNCTION
80266 --         AcctLineType_147
80267 --
80268 ---------------------------------------
80269 PROCEDURE AcctLineType_147 (
80270   p_application_id        IN NUMBER
80271  ,p_event_id              IN NUMBER
80272  ,p_calculate_acctd_flag  IN VARCHAR2
80273  ,p_calculate_g_l_flag    IN VARCHAR2
80274  ,p_actual_flag           IN OUT VARCHAR2
80275  ,p_balance_type_code     OUT VARCHAR2
80276  ,p_gain_or_loss_ref      OUT VARCHAR2
80277  
80278 --Automatic Offsets Value
80279  , p_source_3            IN VARCHAR2
80280  , p_source_3_meaning    IN VARCHAR2
80281 --Invoice Distribution Account
80282  , p_source_18            IN NUMBER
80283 --Internal Realized Gain Account
80284  , p_source_24            IN NUMBER
80285 --Bank Gain Account
80286  , p_source_25            IN NUMBER
80287 --Accounting Reversal Indicator
80288  , p_source_41            IN VARCHAR2
80289 --Distribution Link Type
80290  , p_source_43            IN VARCHAR2
80291 --Override Accounted Amount Indicator
80292  , p_source_68            IN VARCHAR2
80293  , p_source_68_meaning    IN VARCHAR2
80294 --Third Party Type
80295  , p_source_71            IN VARCHAR2
80296 --Invoice Distribution Tax Line Identifier
80297  , p_source_74            IN NUMBER
80298 --Invoice Distribution Tax Distribution Identifier from Tax
80299  , p_source_75            IN NUMBER
80300 --Invoice Distribution Summary Tax Line Identifier
80301  , p_source_76            IN NUMBER
80302 --Business Flow Accounts Payable Application Identifier
80303  , p_source_79            IN NUMBER
80304 --Business Flow Invoice Distribution Type
80305  , p_source_80            IN VARCHAR2
80306 --Business Flow Invoice Entity Code
80307  , p_source_81            IN VARCHAR2
80308 --Business Flow Invoice Distribution Identifier
80309  , p_source_82            IN NUMBER
80310 --Business Flow Invoice Identifier
80311  , p_source_83            IN NUMBER
80312 --When to Account for Payment Option
80313  , p_source_89            IN VARCHAR2
80314 --Payment Distribution Type
80315  , p_source_90            IN VARCHAR2
80316  , p_source_90_meaning    IN VARCHAR2
80317 --Payment Distribution Amount
80318  , p_source_91            IN NUMBER
80319 --Payment Distribution Identifier
80320  , p_source_96            IN NUMBER
80321 --Payment Supplier Identifier
80322  , p_source_102            IN NUMBER
80323 --Payment Supplier Site Identifier
80324  , p_source_103            IN NUMBER
80325 --Payment Distribution Reversed Identifier
80326  , p_source_104            IN NUMBER
80327 --Payment Currency Code
80328  , p_source_106            IN VARCHAR2
80329 --Payment Exchange Date
80330  , p_source_110            IN DATE
80331 --Payment Exchange Rate
80332  , p_source_111            IN NUMBER
80333 --Payment Exchange Rate Type
80334  , p_source_112            IN VARCHAR2
80335 --Payment Type
80336  , p_source_115            IN VARCHAR2
80337  , p_source_115_meaning    IN VARCHAR2
80338 --Invoice/Payment Ledger Amount Difference
80339  , p_source_148            IN NUMBER
80340 --Gain or Loss Indicator between Invoice and Payment
80341  , p_source_153            IN VARCHAR2
80342 )
80343 IS
80344 
80345 l_component_type              VARCHAR2(80);
80346 l_component_code              VARCHAR2(30);
80347 l_component_type_code         VARCHAR2(1);
80348 l_component_appl_id           INTEGER;
80349 l_amb_context_code            VARCHAR2(30);
80350 l_entity_code                 VARCHAR2(30);
80351 l_event_class_code            VARCHAR2(30);
80352 l_ae_header_id                NUMBER;
80353 l_event_type_code             VARCHAR2(30);
80354 l_line_definition_code        VARCHAR2(30);
80355 l_line_definition_owner_code  VARCHAR2(1);
80356 --
80357 -- adr variables
80358 l_segment                     VARCHAR2(30);
80359 l_ccid                        NUMBER;
80360 l_adr_transaction_coa_id      NUMBER;
80361 l_adr_accounting_coa_id       NUMBER;
80362 l_adr_flexfield_segment_code  VARCHAR2(30);
80363 l_adr_flex_value_set_id       NUMBER;
80364 l_adr_value_type_code         VARCHAR2(30);
80365 l_adr_value_combination_id    NUMBER;
80366 l_adr_value_segment_code      VARCHAR2(30);
80367 
80368 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
80369 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
80370 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
80371 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
80372 
80373 -- 4262811 Variables ------------------------------------------------------------------------------------------
80374 l_entered_amt_idx             NUMBER;
80375 l_accted_amt_idx              NUMBER;
80376 l_acc_rev_flag                VARCHAR2(1);
80377 l_accrual_line_num            NUMBER;
80378 l_tmp_amt                     NUMBER;
80379 l_acc_rev_natural_side_code   VARCHAR2(1);
80380 
80381 l_num_entries                 NUMBER;
80382 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
80383 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
80384 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
80385 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
80386 l_recog_line_1                NUMBER;
80387 l_recog_line_2                NUMBER;
80388 
80392 
80389 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
80390 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
80391 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
80393 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
80394 
80395 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
80396 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
80397 
80398 ---------------------------------------------------------------------------------------------------------------
80399 
80400 
80401 --
80402 -- bulk performance
80403 --
80404 l_balance_type_code           VARCHAR2(1);
80405 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
80406 l_log_module                  VARCHAR2(240);
80407 
80408 --
80409 -- Upgrade strategy
80410 --
80411 l_actual_upg_option           VARCHAR2(1);
80412 l_enc_upg_option           VARCHAR2(1);
80413 
80414 --
80415 BEGIN
80416 --
80417 IF g_log_enabled THEN
80418       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_147';
80419 END IF;
80420 --
80421 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80422 
80423       trace
80424          (p_msg      => 'BEGIN of AcctLineType_147'
80425          ,p_level    => C_LEVEL_PROCEDURE
80426          ,p_module   => l_log_module);
80427 
80428 END IF;
80429 --
80430 l_component_type             := 'AMB_JLT';
80431 l_component_code             := 'AP_GAIN_REF';
80432 l_component_type_code        := 'S';
80433 l_component_appl_id          :=  200;
80434 l_amb_context_code           := 'DEFAULT';
80435 l_entity_code                := 'AP_PAYMENTS';
80436 l_event_class_code           := 'REFUNDS';
80437 l_event_type_code            := 'REFUNDS_ALL';
80438 l_line_definition_owner_code := 'S';
80439 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
80440 --
80441 l_balance_type_code          := 'A';
80442 l_segment                     := NULL;
80443 l_ccid                        := NULL;
80444 l_adr_transaction_coa_id      := NULL;
80445 l_adr_accounting_coa_id       := NULL;
80446 l_adr_flexfield_segment_code  := NULL;
80447 l_adr_flex_value_set_id       := NULL;
80448 l_adr_value_type_code         := NULL;
80449 l_adr_value_combination_id    := NULL;
80450 l_adr_value_segment_code      := NULL;
80451 
80452 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
80453 l_bflow_class_code           := '';    -- 4219869 Business Flow
80454 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
80455 l_budgetary_control_flag     := 'N';
80456 
80457 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
80458 l_bflow_applied_to_amt       := NULL; -- 5132302
80459 l_entered_amt_idx            := NULL;          -- 4262811
80460 l_accted_amt_idx             := NULL;          -- 4262811
80461 l_acc_rev_flag               := NULL;          -- 4262811
80462 l_accrual_line_num           := NULL;          -- 4262811
80463 l_tmp_amt                    := NULL;          -- 4262811
80464 --
80465 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
80466             (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
80467                return;
80468   END IF;
80469   
80470 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
80471     l_balance_type_code <> 'B' THEN
80472 IF (NVL(p_source_89,'
80473 ') <>  'CLEAR_CLEAR' AND 
80474 NVL(p_source_89,'
80475 ') <>  'ALWAYS_CLEAR') AND 
80476 NVL(p_source_153,'
80477 ') =  'GAIN' AND 
80478 NVL(p_source_115,'
80479 ') =  'R' AND 
80480 NVL(p_source_90,'
80481 ') <>  'EXCHANGE RATE VARIANCE' AND 
80482 NVL(p_source_90,'
80483 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
80484 NVL(p_source_90,'
80485 ') <>  'BANK CHARGE' AND 
80486 NVL(p_source_90,'
80487 ') <>  'BANK ERROR'
80488  THEN 
80489 
80490    --
80491    XLA_AE_LINES_PKG.SetNewLine;
80492 
80493    p_balance_type_code          := l_balance_type_code;
80494    -- set the flag so later we will know whether the gain loss line needs to be created
80495    
80496    IF(l_balance_type_code = 'A' ) THEN
80497      p_actual_flag :='G';
80498    END IF;
80499 
80500    --
80501    -- bulk performance
80502    --
80503    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
80504                                       p_header_num   => 0); -- 4262811
80505    --
80506    -- set accounting line options
80507    --
80508    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
80509            p_natural_side_code          => 'C'
80510          , p_gain_or_loss_flag          => 'Y'
80511          , p_gl_transfer_mode_code      => 'S'
80512          , p_acct_entry_type_code       => 'A'
80513          , p_switch_side_flag           => 'Y'
80514          , p_merge_duplicate_code       => 'A'
80515          );
80516    --
80517    l_acc_rev_natural_side_code := 'D';  -- 4262811
80518    -- 
80519    --
80520    -- set accounting line type info
80521    --
80522    xla_ae_lines_pkg.SetAcctLineType
80523       (p_component_type             => l_component_type
80524       ,p_event_type_code            => l_event_type_code
80525       ,p_line_definition_owner_code => l_line_definition_owner_code
80526       ,p_line_definition_code       => l_line_definition_code
80527       ,p_accounting_line_code       => l_component_code
80531       ,p_entity_code                => l_entity_code
80528       ,p_accounting_line_type_code  => l_component_type_code
80529       ,p_accounting_line_appl_id    => l_component_appl_id
80530       ,p_amb_context_code           => l_amb_context_code
80532       ,p_event_class_code           => l_event_class_code);
80533    --
80534    -- set accounting class
80535    --
80536    xla_ae_lines_pkg.SetAcctClass(
80537            p_accounting_class_code  => 'GAIN'
80538          , p_ae_header_id           => l_ae_header_id
80539          );
80540 
80541    --
80542    -- set rounding class
80543    --
80544    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
80545                       'GAIN';
80546 
80547    --
80548    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
80549    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
80550    --
80551    -- bulk performance
80552    --
80553    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
80554 
80555    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
80556       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
80557 
80558    -- 4955764
80559    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80560       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
80561 
80562    -- 4458381 Public Sector Enh
80563    
80564    --
80565    -- set accounting attributes for the line type
80566    --
80567    l_entered_amt_idx := 9;
80568    l_accted_amt_idx  := 14;
80569    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
80570    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
80571    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
80572    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
80573    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
80574    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
80575    l_rec_acct_attrs.array_char_value(3)  := p_source_80;
80576    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
80577    l_rec_acct_attrs.array_char_value(4)  := p_source_81;
80578    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
80579    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
80580    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
80581    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
80582    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
80583    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
80584    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
80585    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
80586    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
80587    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
80588    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
80589    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
80590    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
80591    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
80592    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
80593    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
80594    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
80595    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
80596    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
80597    l_rec_acct_attrs.array_num_value(14)  := p_source_148;
80598    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
80599    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
80600    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
80601    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
80602    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
80603    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
80604    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
80605    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
80606    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
80607    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
80608    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
80609    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
80610    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
80611    l_rec_acct_attrs.array_num_value(21)  := p_source_74;
80612    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
80613    l_rec_acct_attrs.array_num_value(22)  := p_source_75;
80614    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
80615    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
80616 
80617    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
80618    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
80619 
80620    ---------------------------------------------------------------------------------------------------------------
80621    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
80622    ---------------------------------------------------------------------------------------------------------------
80623    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
80624 
80625    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80626    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80627 
80631    AND l_bflow_method_code = 'PRIOR_ENTRY'
80628    IF xla_accounting_cache_pkg.GetValueChar
80629          (p_source_code         => 'LEDGER_CATEGORY_CODE'
80630          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
80632 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
80633    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
80634          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
80635        )
80636    THEN
80637          xla_ae_lines_pkg.BflowUpgEntry
80638            (p_business_method_code    => l_bflow_method_code
80639            ,p_business_class_code     => l_bflow_class_code
80640            ,p_balance_type            => l_balance_type_code);
80641    ELSE
80642       NULL;
80643 -- No business flow processing for business flow method of NONE.
80644    END IF;
80645 
80646    --
80647    -- call analytical criteria
80648    --
80649    
80650    --
80651    -- call description
80652    --
80653    -- No description or it is inherited.
80654    --
80655    -- call ADRs
80656    -- Bug 4922099
80657    --
80658    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80659         (NVL(l_actual_upg_option, 'N') = 'O') OR
80660         (NVL(l_enc_upg_option, 'N') = 'O')
80661       )
80662    THEN
80663    NULL;
80664    --
80665    --
80666    
80667   l_ccid := AcctDerRule_37(
80668            p_application_id           => p_application_id
80669          , p_ae_header_id             => l_ae_header_id 
80670 , p_source_3 => p_source_3
80671 , p_source_3_meaning => p_source_3_meaning
80672 , p_source_18 => p_source_18
80673 , p_source_24 => p_source_24
80674 , p_source_25 => p_source_25
80675          , x_transaction_coa_id       => l_adr_transaction_coa_id
80676          , x_accounting_coa_id        => l_adr_accounting_coa_id
80677          , x_value_type_code          => l_adr_value_type_code
80678          , p_side                     => 'NA'
80679    );
80680 
80681    xla_ae_lines_pkg.set_ccid(
80682     p_code_combination_id          => l_ccid
80683   , p_value_type_code              => l_adr_value_type_code
80684   , p_transaction_coa_id           => l_adr_transaction_coa_id
80685   , p_accounting_coa_id            => l_adr_accounting_coa_id
80686   , p_adr_code                     => 'AP_REAL_GAIN'
80687   , p_adr_type_code                => 'S'
80688   , p_component_type               => l_component_type
80689   , p_component_code               => l_component_code
80690   , p_component_type_code          => l_component_type_code
80691   , p_component_appl_id            => l_component_appl_id
80692   , p_amb_context_code             => l_amb_context_code
80693   , p_side                         => 'NA'
80694   );
80695 
80696 
80697    l_segment := AcctDerRule_21(
80698            p_application_id           => p_application_id
80699          , p_ae_header_id             => l_ae_header_id 
80700 , p_source_3 => p_source_3
80701 , p_source_3_meaning => p_source_3_meaning
80702 , p_source_18 => p_source_18
80703          , x_transaction_coa_id       => l_adr_transaction_coa_id
80704          , x_accounting_coa_id        => l_adr_accounting_coa_id
80705          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
80706          , x_flex_value_set_id        => l_adr_flex_value_set_id
80707          , x_value_type_code          => l_adr_value_type_code
80708          , x_value_combination_id     => l_adr_value_combination_id
80709          , x_value_segment_code       => l_adr_value_segment_code
80710          , p_side                     => 'NA'
80711          , p_override_seg_flag        => 'Y'
80712    );
80713 
80714    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
80715 
80716       xla_ae_lines_pkg.set_segment(
80717           p_to_segment_code         => 'GL_BALANCING'
80718         , p_segment_value           => l_segment
80719         , p_from_segment_code       => l_adr_value_segment_code
80720         , p_from_combination_id     => l_adr_value_combination_id
80721         , p_value_type_code         => l_adr_value_type_code
80722         , p_transaction_coa_id      => l_adr_transaction_coa_id
80723         , p_accounting_coa_id       => l_adr_accounting_coa_id
80724         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
80725         , p_flex_value_set_id       => l_adr_flex_value_set_id
80726         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
80727         , p_adr_type_code           => 'S'
80728         , p_component_type          => l_component_type
80729         , p_component_code          => l_component_code
80730         , p_component_type_code     => l_component_type_code
80731         , p_component_appl_id       => l_component_appl_id
80732         , p_amb_context_code        => l_amb_context_code
80733         , p_entity_code             => 'AP_PAYMENTS'
80734         , p_event_class_code        => 'REFUNDS'
80735         , p_side                    => 'NA'
80736         );
80737 
80738   END IF;
80739 
80740    l_segment := AcctDerRule_16(
80741            p_application_id           => p_application_id
80742          , p_ae_header_id             => l_ae_header_id 
80743 , p_source_3 => p_source_3
80744 , p_source_3_meaning => p_source_3_meaning
80745 , p_source_24 => p_source_24
80746 , p_source_25 => p_source_25
80747          , x_transaction_coa_id       => l_adr_transaction_coa_id
80748          , x_accounting_coa_id        => l_adr_accounting_coa_id
80749          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
80750          , x_flex_value_set_id        => l_adr_flex_value_set_id
80751          , x_value_type_code          => l_adr_value_type_code
80752          , x_value_combination_id     => l_adr_value_combination_id
80756    );
80753          , x_value_segment_code       => l_adr_value_segment_code
80754          , p_side                     => 'NA'
80755          , p_override_seg_flag        => 'Y'
80757 
80758    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
80759 
80760       xla_ae_lines_pkg.set_segment(
80761           p_to_segment_code         => 'GL_ACCOUNT'
80762         , p_segment_value           => l_segment
80763         , p_from_segment_code       => l_adr_value_segment_code
80764         , p_from_combination_id     => l_adr_value_combination_id
80765         , p_value_type_code         => l_adr_value_type_code
80766         , p_transaction_coa_id      => l_adr_transaction_coa_id
80767         , p_accounting_coa_id       => l_adr_accounting_coa_id
80768         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
80769         , p_flex_value_set_id       => l_adr_flex_value_set_id
80770         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
80771         , p_adr_type_code           => 'S'
80772         , p_component_type          => l_component_type
80773         , p_component_code          => l_component_code
80774         , p_component_type_code     => l_component_type_code
80775         , p_component_appl_id       => l_component_appl_id
80776         , p_amb_context_code        => l_amb_context_code
80777         , p_entity_code             => 'AP_PAYMENTS'
80778         , p_event_class_code        => 'REFUNDS'
80779         , p_side                    => 'NA'
80780         );
80781 
80782   END IF;
80783 
80784    --
80785    --
80786    END IF;
80787    --
80788    -- Bug 4922099
80789    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
80790           (NVL(l_enc_upg_option, 'N') = 'O')
80791         ) AND
80792         (l_bflow_method_code = 'PRIOR_ENTRY')
80793       )
80794    THEN
80795       IF
80796       --
80797       1 = 2
80798       --
80799       THEN
80800       xla_accounting_err_pkg.build_message
80801                                     (p_appli_s_name            => 'XLA'
80802                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80803                                     ,p_token_1                 => 'LINE_NUMBER'
80804                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
80805                                     ,p_token_2                 => 'LINE_TYPE_NAME'
80806                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
80807                                                                              l_component_type
80808                                                                             ,l_component_code
80809                                                                             ,l_component_type_code
80810                                                                             ,l_component_appl_id
80811                                                                             ,l_amb_context_code
80812                                                                             ,l_entity_code
80813                                                                             ,l_event_class_code
80814                                                                            )
80815                                     ,p_token_3                 => 'OWNER'
80816                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
80817                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
80818                                                                           ,p_lookup_code    => l_component_type_code
80819                                                                          )
80820                                     ,p_token_4                 => 'PRODUCT_NAME'
80821                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
80822                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
80823                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
80824                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
80825                                     ,p_ae_header_id            =>  NULL
80826                                        );
80827 
80828         IF (C_LEVEL_ERROR>= g_log_level) THEN
80829                  trace
80830                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80831                       ,p_level    => C_LEVEL_ERROR
80832                       ,p_module   => l_log_module);
80833         END IF;
80834       END IF;
80835    END IF;
80836    --
80837    --
80838    ------------------------------------------------------------------------------------------------
80839    -- 4219869 Business Flow
80840    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
80841    -- Prior Entry.  Currently, the following code is always generated.
80842    ------------------------------------------------------------------------------------------------
80843    XLA_AE_LINES_PKG.ValidateCurrentLine;
80844 
80845    ------------------------------------------------------------------------------------
80846    -- 4219869 Business Flow
80847    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
80848    ------------------------------------------------------------------------------------
80849    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80850 
80851    ----------------------------------------------------------------------------------
80852    -- 4219869 Business Flow
80856          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
80853    -- Update journal entry status -- Need to generate this within IF <condition>
80854    ----------------------------------------------------------------------------------
80855    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80857          ,p_balance_type_code => l_balance_type_code
80858          );
80859 
80860    -------------------------------------------------------------------------------------------
80861    -- 4262811 - Generate the Accrual Reversal lines
80862    -------------------------------------------------------------------------------------------
80863    BEGIN
80864       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
80865                               (g_array_event(p_event_id).array_value_num('header_index'));
80866       IF l_acc_rev_flag IS NULL THEN
80867          l_acc_rev_flag := 'N';
80868       END IF;
80869    EXCEPTION
80870       WHEN OTHERS THEN
80871          l_acc_rev_flag := 'N';
80872    END;
80873    --
80874    IF (l_acc_rev_flag = 'Y') THEN
80875 
80876        -- 4645092  ------------------------------------------------------------------------------
80877        -- To allow MPA report to determine if it should generate report process
80878        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
80879        ------------------------------------------------------------------------------------------
80880 
80881        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
80882        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
80883    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
80884    -- call ADRs
80885    -- Bug 4922099
80886    --
80887    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80888         (NVL(l_actual_upg_option, 'N') = 'O') OR
80889         (NVL(l_enc_upg_option, 'N') = 'O')
80890       )
80891    THEN
80892    NULL;
80893    --
80894    --
80895    
80896   l_ccid := AcctDerRule_37(
80897            p_application_id           => p_application_id
80898          , p_ae_header_id             => l_ae_header_id 
80899 , p_source_3 => p_source_3
80900 , p_source_3_meaning => p_source_3_meaning
80901 , p_source_18 => p_source_18
80902 , p_source_24 => p_source_24
80903 , p_source_25 => p_source_25
80904          , x_transaction_coa_id       => l_adr_transaction_coa_id
80905          , x_accounting_coa_id        => l_adr_accounting_coa_id
80906          , x_value_type_code          => l_adr_value_type_code
80907          , p_side                     => 'NA'
80908    );
80909 
80910    xla_ae_lines_pkg.set_ccid(
80911     p_code_combination_id          => l_ccid
80912   , p_value_type_code              => l_adr_value_type_code
80913   , p_transaction_coa_id           => l_adr_transaction_coa_id
80914   , p_accounting_coa_id            => l_adr_accounting_coa_id
80915   , p_adr_code                     => 'AP_REAL_GAIN'
80916   , p_adr_type_code                => 'S'
80917   , p_component_type               => l_component_type
80918   , p_component_code               => l_component_code
80919   , p_component_type_code          => l_component_type_code
80920   , p_component_appl_id            => l_component_appl_id
80921   , p_amb_context_code             => l_amb_context_code
80922   , p_side                         => 'NA'
80923   );
80924 
80925 
80926    l_segment := AcctDerRule_21(
80927            p_application_id           => p_application_id
80928          , p_ae_header_id             => l_ae_header_id 
80929 , p_source_3 => p_source_3
80930 , p_source_3_meaning => p_source_3_meaning
80931 , p_source_18 => p_source_18
80932          , x_transaction_coa_id       => l_adr_transaction_coa_id
80933          , x_accounting_coa_id        => l_adr_accounting_coa_id
80934          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
80935          , x_flex_value_set_id        => l_adr_flex_value_set_id
80936          , x_value_type_code          => l_adr_value_type_code
80937          , x_value_combination_id     => l_adr_value_combination_id
80938          , x_value_segment_code       => l_adr_value_segment_code
80939          , p_side                     => 'NA'
80940          , p_override_seg_flag        => 'Y'
80941    );
80942 
80943    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
80944 
80945       xla_ae_lines_pkg.set_segment(
80946           p_to_segment_code         => 'GL_BALANCING'
80947         , p_segment_value           => l_segment
80948         , p_from_segment_code       => l_adr_value_segment_code
80949         , p_from_combination_id     => l_adr_value_combination_id
80950         , p_value_type_code         => l_adr_value_type_code
80951         , p_transaction_coa_id      => l_adr_transaction_coa_id
80952         , p_accounting_coa_id       => l_adr_accounting_coa_id
80953         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
80954         , p_flex_value_set_id       => l_adr_flex_value_set_id
80955         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
80956         , p_adr_type_code           => 'S'
80957         , p_component_type          => l_component_type
80958         , p_component_code          => l_component_code
80959         , p_component_type_code     => l_component_type_code
80960         , p_component_appl_id       => l_component_appl_id
80961         , p_amb_context_code        => l_amb_context_code
80962         , p_entity_code             => 'AP_PAYMENTS'
80963         , p_event_class_code        => 'REFUNDS'
80964         , p_side                    => 'NA'
80965         );
80966 
80967   END IF;
80968 
80969    l_segment := AcctDerRule_16(
80973 , p_source_3_meaning => p_source_3_meaning
80970            p_application_id           => p_application_id
80971          , p_ae_header_id             => l_ae_header_id 
80972 , p_source_3 => p_source_3
80974 , p_source_24 => p_source_24
80975 , p_source_25 => p_source_25
80976          , x_transaction_coa_id       => l_adr_transaction_coa_id
80977          , x_accounting_coa_id        => l_adr_accounting_coa_id
80978          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
80979          , x_flex_value_set_id        => l_adr_flex_value_set_id
80980          , x_value_type_code          => l_adr_value_type_code
80981          , x_value_combination_id     => l_adr_value_combination_id
80982          , x_value_segment_code       => l_adr_value_segment_code
80983          , p_side                     => 'NA'
80984          , p_override_seg_flag        => 'Y'
80985    );
80986 
80987    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
80988 
80989       xla_ae_lines_pkg.set_segment(
80990           p_to_segment_code         => 'GL_ACCOUNT'
80991         , p_segment_value           => l_segment
80992         , p_from_segment_code       => l_adr_value_segment_code
80993         , p_from_combination_id     => l_adr_value_combination_id
80994         , p_value_type_code         => l_adr_value_type_code
80995         , p_transaction_coa_id      => l_adr_transaction_coa_id
80996         , p_accounting_coa_id       => l_adr_accounting_coa_id
80997         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
80998         , p_flex_value_set_id       => l_adr_flex_value_set_id
80999         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
81000         , p_adr_type_code           => 'S'
81001         , p_component_type          => l_component_type
81002         , p_component_code          => l_component_code
81003         , p_component_type_code     => l_component_type_code
81004         , p_component_appl_id       => l_component_appl_id
81005         , p_amb_context_code        => l_amb_context_code
81006         , p_entity_code             => 'AP_PAYMENTS'
81007         , p_event_class_code        => 'REFUNDS'
81008         , p_side                    => 'NA'
81009         );
81010 
81011   END IF;
81012 
81013    --
81014    --
81015    END IF;
81016 
81017        --
81018        -- Update the line information that should be overwritten
81019        --
81020        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
81021                                          p_header_num   => 1);
81022        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
81023 
81024        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
81025 
81026        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
81027           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
81028        END IF;
81029 
81030       --
81031       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
81032       --
81033       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
81034           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
81035       ELSE
81036           ---------------------------------------------------------------------------------------------------
81037           -- 4262811a Switch Sign
81038           ---------------------------------------------------------------------------------------------------
81039           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
81040           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81041                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81042           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81043                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81044           -- 5132302
81045           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
81046                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81047 
81048       END IF;
81049 
81050       -- 4955764
81051       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81052       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
81053 
81054 
81055       XLA_AE_LINES_PKG.ValidateCurrentLine;
81056       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81057 
81058       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81059                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
81060                ,p_balance_type_code => l_balance_type_code);
81061 
81062    END IF;
81063 
81064    -----------------------------------------------------------------------------------------
81065    -- 4262811 Multiperiod Accounting
81066    -----------------------------------------------------------------------------------------
81067      -- No MPA option is assigned.
81068 
81069 
81070 END IF;
81071 END IF;
81072 --
81073 
81074 --
81075 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81076    trace
81077       (p_msg      => 'END of AcctLineType_147'
81078       ,p_level    => C_LEVEL_PROCEDURE
81079       ,p_module   => l_log_module);
81080 END IF;
81081 --
81082 EXCEPTION
81083   WHEN xla_exceptions_pkg.application_exception THEN
81084       RAISE;
81085   WHEN OTHERS THEN
81086        xla_exceptions_pkg.raise_message
81090 
81087            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_147');
81088 END AcctLineType_147;
81089 --
81091 ---------------------------------------
81092 --
81093 -- PRIVATE FUNCTION
81094 --         AcctLineType_148
81095 --
81096 ---------------------------------------
81097 PROCEDURE AcctLineType_148 (
81098   p_application_id        IN NUMBER
81099  ,p_event_id              IN NUMBER
81100  ,p_calculate_acctd_flag  IN VARCHAR2
81101  ,p_calculate_g_l_flag    IN VARCHAR2
81102  ,p_actual_flag           IN OUT VARCHAR2
81103  ,p_balance_type_code     OUT VARCHAR2
81104  ,p_gain_or_loss_ref      OUT VARCHAR2
81105  
81106 --Interest Account
81107  , p_source_16            IN NUMBER
81108 --Prorate Interest Invoice Across Distributions Option
81109  , p_source_17            IN VARCHAR2
81110 --Invoice Distribution Account
81111  , p_source_18            IN NUMBER
81112 --Invoice Distribution Type
81113  , p_source_21            IN VARCHAR2
81114  , p_source_21_meaning    IN VARCHAR2
81115 --Accounting Reversal Indicator
81116  , p_source_41            IN VARCHAR2
81117 --Distribution Link Type
81118  , p_source_43            IN VARCHAR2
81119 --Override Accounted Amount Indicator
81120  , p_source_68            IN VARCHAR2
81121  , p_source_68_meaning    IN VARCHAR2
81122 --Third Party Type
81123  , p_source_71            IN VARCHAR2
81124 --Invoice Distribution Tax Line Identifier
81125  , p_source_74            IN NUMBER
81126 --Invoice Distribution Summary Tax Line Identifier
81127  , p_source_76            IN NUMBER
81128 --Business Flow Accounts Payable Application Identifier
81129  , p_source_79            IN NUMBER
81130 --When to Account for Payment Option
81131  , p_source_89            IN VARCHAR2
81132 --Payment Distribution Type
81133  , p_source_90            IN VARCHAR2
81134  , p_source_90_meaning    IN VARCHAR2
81135 --Payment Distribution Amount
81136  , p_source_91            IN NUMBER
81137 --Business Flow Payment Distribution Type
81138  , p_source_92            IN VARCHAR2
81139 --Business Flow Payment Entity Code
81140  , p_source_93            IN VARCHAR2
81141 --Business Flow Payment Distribution Identifier
81142  , p_source_94            IN NUMBER
81143 --Business Flow Payment Identifier
81144  , p_source_95            IN NUMBER
81145 --Payment Distribution Identifier
81146  , p_source_96            IN NUMBER
81147 --Cleared Exchange Date
81148  , p_source_98            IN DATE
81149 --Cleared Exchange Rate
81150  , p_source_99            IN NUMBER
81151 --Cleared Exchange Rate Type
81152  , p_source_100            IN VARCHAR2
81153 --Payment Distribution (Cleared Rate) Ledger Amount
81154  , p_source_101            IN NUMBER
81155 --Payment Supplier Identifier
81156  , p_source_102            IN NUMBER
81157 --Payment Supplier Site Identifier
81158  , p_source_103            IN NUMBER
81159 --Payment Distribution Reversed Identifier
81160  , p_source_104            IN NUMBER
81161 --Payment Currency Code
81162  , p_source_106            IN VARCHAR2
81163 --Payment Type
81164  , p_source_115            IN VARCHAR2
81165  , p_source_115_meaning    IN VARCHAR2
81166 --Invoice Type Paid
81167  , p_source_158            IN VARCHAR2
81168  , p_source_158_meaning    IN VARCHAR2
81169 )
81170 IS
81171 
81172 l_component_type              VARCHAR2(80);
81173 l_component_code              VARCHAR2(30);
81174 l_component_type_code         VARCHAR2(1);
81175 l_component_appl_id           INTEGER;
81176 l_amb_context_code            VARCHAR2(30);
81177 l_entity_code                 VARCHAR2(30);
81178 l_event_class_code            VARCHAR2(30);
81179 l_ae_header_id                NUMBER;
81180 l_event_type_code             VARCHAR2(30);
81181 l_line_definition_code        VARCHAR2(30);
81182 l_line_definition_owner_code  VARCHAR2(1);
81183 --
81184 -- adr variables
81185 l_segment                     VARCHAR2(30);
81186 l_ccid                        NUMBER;
81187 l_adr_transaction_coa_id      NUMBER;
81188 l_adr_accounting_coa_id       NUMBER;
81189 l_adr_flexfield_segment_code  VARCHAR2(30);
81190 l_adr_flex_value_set_id       NUMBER;
81191 l_adr_value_type_code         VARCHAR2(30);
81192 l_adr_value_combination_id    NUMBER;
81193 l_adr_value_segment_code      VARCHAR2(30);
81194 
81195 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
81196 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
81197 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
81198 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
81199 
81200 -- 4262811 Variables ------------------------------------------------------------------------------------------
81201 l_entered_amt_idx             NUMBER;
81202 l_accted_amt_idx              NUMBER;
81203 l_acc_rev_flag                VARCHAR2(1);
81204 l_accrual_line_num            NUMBER;
81205 l_tmp_amt                     NUMBER;
81206 l_acc_rev_natural_side_code   VARCHAR2(1);
81207 
81208 l_num_entries                 NUMBER;
81209 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
81210 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
81211 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
81212 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
81213 l_recog_line_1                NUMBER;
81214 l_recog_line_2                NUMBER;
81215 
81216 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
81217 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
81218 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
81219 
81223 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
81220 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
81221 
81222 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
81224 
81225 ---------------------------------------------------------------------------------------------------------------
81226 
81227 
81228 --
81229 -- bulk performance
81230 --
81231 l_balance_type_code           VARCHAR2(1);
81232 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
81233 l_log_module                  VARCHAR2(240);
81234 
81235 --
81236 -- Upgrade strategy
81237 --
81238 l_actual_upg_option           VARCHAR2(1);
81239 l_enc_upg_option           VARCHAR2(1);
81240 
81241 --
81242 BEGIN
81243 --
81244 IF g_log_enabled THEN
81245       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_148';
81246 END IF;
81247 --
81248 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81249 
81250       trace
81251          (p_msg      => 'BEGIN of AcctLineType_148'
81252          ,p_level    => C_LEVEL_PROCEDURE
81253          ,p_module   => l_log_module);
81254 
81255 END IF;
81256 --
81257 l_component_type             := 'AMB_JLT';
81258 l_component_code             := 'AP_INTEREST_EXPENSE_CLEAR';
81259 l_component_type_code        := 'S';
81260 l_component_appl_id          :=  200;
81261 l_amb_context_code           := 'DEFAULT';
81262 l_entity_code                := 'AP_PAYMENTS';
81263 l_event_class_code           := 'RECONCILED PAYMENTS';
81264 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
81265 l_line_definition_owner_code := 'S';
81266 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
81267 --
81268 l_balance_type_code          := 'A';
81269 l_segment                     := NULL;
81270 l_ccid                        := NULL;
81271 l_adr_transaction_coa_id      := NULL;
81272 l_adr_accounting_coa_id       := NULL;
81273 l_adr_flexfield_segment_code  := NULL;
81274 l_adr_flex_value_set_id       := NULL;
81275 l_adr_value_type_code         := NULL;
81276 l_adr_value_combination_id    := NULL;
81277 l_adr_value_segment_code      := NULL;
81278 
81279 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
81280 l_bflow_class_code           := '';    -- 4219869 Business Flow
81281 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
81282 l_budgetary_control_flag     := 'N';
81283 
81284 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
81285 l_bflow_applied_to_amt       := NULL; -- 5132302
81286 l_entered_amt_idx            := NULL;          -- 4262811
81287 l_accted_amt_idx             := NULL;          -- 4262811
81288 l_acc_rev_flag               := NULL;          -- 4262811
81289 l_accrual_line_num           := NULL;          -- 4262811
81290 l_tmp_amt                    := NULL;          -- 4262811
81291 --
81292  
81293 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
81294     l_balance_type_code <> 'B' THEN
81295 IF NVL(p_source_89,'
81296 ') =  'CLEAR_CLEAR' AND 
81297 NVL(p_source_21,'
81298 ') =  'ITEM' AND 
81299 NVL(p_source_158,'
81300 ') =  'INTEREST' AND 
81301 (NVL(p_source_90,'
81302 ') =  'CASH' OR 
81303 NVL(p_source_90,'
81304 ') =  'DISCOUNT') AND 
81305 NVL(p_source_115,'
81306 ') <>  'R'
81307  THEN 
81308 
81309    --
81310    XLA_AE_LINES_PKG.SetNewLine;
81311 
81312    p_balance_type_code          := l_balance_type_code;
81313    -- set the flag so later we will know whether the gain loss line needs to be created
81314    
81315    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
81316      p_actual_flag :='A';
81317    END IF;
81318 
81319    --
81320    -- bulk performance
81321    --
81322    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
81323                                       p_header_num   => 0); -- 4262811
81324    --
81325    -- set accounting line options
81326    --
81327    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
81328            p_natural_side_code          => 'D'
81329          , p_gain_or_loss_flag          => 'N'
81330          , p_gl_transfer_mode_code      => 'S'
81331          , p_acct_entry_type_code       => 'A'
81332          , p_switch_side_flag           => 'Y'
81333          , p_merge_duplicate_code       => 'A'
81334          );
81335    --
81336    l_acc_rev_natural_side_code := 'C';  -- 4262811
81337    -- 
81338    --
81339    -- set accounting line type info
81340    --
81341    xla_ae_lines_pkg.SetAcctLineType
81342       (p_component_type             => l_component_type
81343       ,p_event_type_code            => l_event_type_code
81344       ,p_line_definition_owner_code => l_line_definition_owner_code
81345       ,p_line_definition_code       => l_line_definition_code
81346       ,p_accounting_line_code       => l_component_code
81347       ,p_accounting_line_type_code  => l_component_type_code
81348       ,p_accounting_line_appl_id    => l_component_appl_id
81349       ,p_amb_context_code           => l_amb_context_code
81350       ,p_entity_code                => l_entity_code
81351       ,p_event_class_code           => l_event_class_code);
81352    --
81353    -- set accounting class
81354    --
81355    xla_ae_lines_pkg.SetAcctClass(
81356            p_accounting_class_code  => 'INTEREST_EXPENSE'
81357          , p_ae_header_id           => l_ae_header_id
81358          );
81359 
81360    --
81361    -- set rounding class
81362    --
81363    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
81367    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
81364                       'INTEREST_EXPENSE';
81365 
81366    --
81368    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
81369    --
81370    -- bulk performance
81371    --
81372    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
81373 
81374    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
81375       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
81376 
81377    -- 4955764
81378    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81379       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
81380 
81381    -- 4458381 Public Sector Enh
81382    
81383    --
81384    -- set accounting attributes for the line type
81385    --
81386    l_entered_amt_idx := 10;
81387    l_accted_amt_idx  := 15;
81388    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
81389    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
81390    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
81391    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
81392    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
81393    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
81394    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
81395    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
81396    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
81397    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
81398    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
81399    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
81400    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
81401    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
81402    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
81403    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
81404    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
81405    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
81406    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
81407    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
81408    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
81409    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
81410    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
81411    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
81412    l_rec_acct_attrs.array_date_value(12)  := p_source_98;
81413    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
81414    l_rec_acct_attrs.array_num_value(13)  := p_source_99;
81415    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
81416    l_rec_acct_attrs.array_char_value(14)  := p_source_100;
81417    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
81418    l_rec_acct_attrs.array_num_value(15)  := p_source_101;
81419    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
81420    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
81421    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
81422    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
81423    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
81424    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
81425    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
81426    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
81427    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
81428    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
81429    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
81430    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
81431    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
81432    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
81433    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
81434    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
81435    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
81436    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
81437 
81438    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
81439    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
81440 
81441    ---------------------------------------------------------------------------------------------------------------
81442    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
81443    ---------------------------------------------------------------------------------------------------------------
81444    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
81445 
81446    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81447    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81448 
81449    IF xla_accounting_cache_pkg.GetValueChar
81450          (p_source_code         => 'LEDGER_CATEGORY_CODE'
81451          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
81452    AND l_bflow_method_code = 'PRIOR_ENTRY'
81453 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
81454    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
81455          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
81456        )
81457    THEN
81458          xla_ae_lines_pkg.BflowUpgEntry
81459            (p_business_method_code    => l_bflow_method_code
81460            ,p_business_class_code     => l_bflow_class_code
81464 -- No business flow processing for business flow method of NONE.
81461            ,p_balance_type            => l_balance_type_code);
81462    ELSE
81463       NULL;
81465    END IF;
81466 
81467    --
81468    -- call analytical criteria
81469    --
81470    
81471    --
81472    -- call description
81473    --
81474    -- No description or it is inherited.
81475    --
81476    -- call ADRs
81477    -- Bug 4922099
81478    --
81479    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81480         (NVL(l_actual_upg_option, 'N') = 'O') OR
81481         (NVL(l_enc_upg_option, 'N') = 'O')
81482       )
81483    THEN
81484    NULL;
81485    --
81486    --
81487    
81488   l_ccid := AcctDerRule_31(
81489            p_application_id           => p_application_id
81490          , p_ae_header_id             => l_ae_header_id 
81491 , p_source_16 => p_source_16
81492 , p_source_17 => p_source_17
81493 , p_source_18 => p_source_18
81494          , x_transaction_coa_id       => l_adr_transaction_coa_id
81495          , x_accounting_coa_id        => l_adr_accounting_coa_id
81496          , x_value_type_code          => l_adr_value_type_code
81497          , p_side                     => 'NA'
81498    );
81499 
81500    xla_ae_lines_pkg.set_ccid(
81501     p_code_combination_id          => l_ccid
81502   , p_value_type_code              => l_adr_value_type_code
81503   , p_transaction_coa_id           => l_adr_transaction_coa_id
81504   , p_accounting_coa_id            => l_adr_accounting_coa_id
81505   , p_adr_code                     => 'AP_INTEREST'
81506   , p_adr_type_code                => 'S'
81507   , p_component_type               => l_component_type
81508   , p_component_code               => l_component_code
81509   , p_component_type_code          => l_component_type_code
81510   , p_component_appl_id            => l_component_appl_id
81511   , p_amb_context_code             => l_amb_context_code
81512   , p_side                         => 'NA'
81513   );
81514 
81515 
81516    l_segment := AcctDerRule_11(
81517            p_application_id           => p_application_id
81518          , p_ae_header_id             => l_ae_header_id 
81519 , p_source_16 => p_source_16
81520 , p_source_17 => p_source_17
81521          , x_transaction_coa_id       => l_adr_transaction_coa_id
81522          , x_accounting_coa_id        => l_adr_accounting_coa_id
81523          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
81524          , x_flex_value_set_id        => l_adr_flex_value_set_id
81525          , x_value_type_code          => l_adr_value_type_code
81526          , x_value_combination_id     => l_adr_value_combination_id
81527          , x_value_segment_code       => l_adr_value_segment_code
81528          , p_side                     => 'NA'
81529          , p_override_seg_flag        => 'Y'
81530    );
81531 
81532    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
81533 
81534       xla_ae_lines_pkg.set_segment(
81535           p_to_segment_code         => 'GL_ACCOUNT'
81536         , p_segment_value           => l_segment
81537         , p_from_segment_code       => l_adr_value_segment_code
81538         , p_from_combination_id     => l_adr_value_combination_id
81539         , p_value_type_code         => l_adr_value_type_code
81540         , p_transaction_coa_id      => l_adr_transaction_coa_id
81541         , p_accounting_coa_id       => l_adr_accounting_coa_id
81542         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
81543         , p_flex_value_set_id       => l_adr_flex_value_set_id
81544         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
81545         , p_adr_type_code           => 'S'
81546         , p_component_type          => l_component_type
81547         , p_component_code          => l_component_code
81548         , p_component_type_code     => l_component_type_code
81549         , p_component_appl_id       => l_component_appl_id
81550         , p_amb_context_code        => l_amb_context_code
81551         , p_entity_code             => 'AP_PAYMENTS'
81552         , p_event_class_code        => 'RECONCILED PAYMENTS'
81553         , p_side                    => 'NA'
81554         );
81555 
81556   END IF;
81557 
81558    --
81559    --
81560    END IF;
81561    --
81562    -- Bug 4922099
81563    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
81564           (NVL(l_enc_upg_option, 'N') = 'O')
81565         ) AND
81566         (l_bflow_method_code = 'PRIOR_ENTRY')
81567       )
81568    THEN
81569       IF
81570       --
81571       1 = 2
81572       --
81573       THEN
81574       xla_accounting_err_pkg.build_message
81575                                     (p_appli_s_name            => 'XLA'
81576                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81577                                     ,p_token_1                 => 'LINE_NUMBER'
81578                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
81579                                     ,p_token_2                 => 'LINE_TYPE_NAME'
81580                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
81581                                                                              l_component_type
81582                                                                             ,l_component_code
81583                                                                             ,l_component_type_code
81584                                                                             ,l_component_appl_id
81588                                                                            )
81585                                                                             ,l_amb_context_code
81586                                                                             ,l_entity_code
81587                                                                             ,l_event_class_code
81589                                     ,p_token_3                 => 'OWNER'
81590                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
81591                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
81592                                                                           ,p_lookup_code    => l_component_type_code
81593                                                                          )
81594                                     ,p_token_4                 => 'PRODUCT_NAME'
81595                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
81596                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
81597                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
81598                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
81599                                     ,p_ae_header_id            =>  NULL
81600                                        );
81601 
81602         IF (C_LEVEL_ERROR>= g_log_level) THEN
81603                  trace
81604                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81605                       ,p_level    => C_LEVEL_ERROR
81606                       ,p_module   => l_log_module);
81607         END IF;
81608       END IF;
81609    END IF;
81610    --
81611    --
81612    ------------------------------------------------------------------------------------------------
81613    -- 4219869 Business Flow
81614    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
81615    -- Prior Entry.  Currently, the following code is always generated.
81616    ------------------------------------------------------------------------------------------------
81617    XLA_AE_LINES_PKG.ValidateCurrentLine;
81618 
81619    ------------------------------------------------------------------------------------
81620    -- 4219869 Business Flow
81621    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
81622    ------------------------------------------------------------------------------------
81623    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81624 
81625    ----------------------------------------------------------------------------------
81626    -- 4219869 Business Flow
81627    -- Update journal entry status -- Need to generate this within IF <condition>
81628    ----------------------------------------------------------------------------------
81629    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81630          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
81631          ,p_balance_type_code => l_balance_type_code
81632          );
81633 
81634    -------------------------------------------------------------------------------------------
81635    -- 4262811 - Generate the Accrual Reversal lines
81636    -------------------------------------------------------------------------------------------
81637    BEGIN
81638       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
81639                               (g_array_event(p_event_id).array_value_num('header_index'));
81640       IF l_acc_rev_flag IS NULL THEN
81641          l_acc_rev_flag := 'N';
81642       END IF;
81643    EXCEPTION
81644       WHEN OTHERS THEN
81645          l_acc_rev_flag := 'N';
81646    END;
81647    --
81648    IF (l_acc_rev_flag = 'Y') THEN
81649 
81650        -- 4645092  ------------------------------------------------------------------------------
81651        -- To allow MPA report to determine if it should generate report process
81652        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
81653        ------------------------------------------------------------------------------------------
81654 
81655        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
81656        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
81657    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
81658    -- call ADRs
81659    -- Bug 4922099
81660    --
81661    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81662         (NVL(l_actual_upg_option, 'N') = 'O') OR
81663         (NVL(l_enc_upg_option, 'N') = 'O')
81664       )
81665    THEN
81666    NULL;
81667    --
81668    --
81669    
81670   l_ccid := AcctDerRule_31(
81671            p_application_id           => p_application_id
81672          , p_ae_header_id             => l_ae_header_id 
81673 , p_source_16 => p_source_16
81674 , p_source_17 => p_source_17
81675 , p_source_18 => p_source_18
81676          , x_transaction_coa_id       => l_adr_transaction_coa_id
81677          , x_accounting_coa_id        => l_adr_accounting_coa_id
81678          , x_value_type_code          => l_adr_value_type_code
81679          , p_side                     => 'NA'
81680    );
81681 
81682    xla_ae_lines_pkg.set_ccid(
81683     p_code_combination_id          => l_ccid
81684   , p_value_type_code              => l_adr_value_type_code
81685   , p_transaction_coa_id           => l_adr_transaction_coa_id
81686   , p_accounting_coa_id            => l_adr_accounting_coa_id
81687   , p_adr_code                     => 'AP_INTEREST'
81688   , p_adr_type_code                => 'S'
81692   , p_component_appl_id            => l_component_appl_id
81689   , p_component_type               => l_component_type
81690   , p_component_code               => l_component_code
81691   , p_component_type_code          => l_component_type_code
81693   , p_amb_context_code             => l_amb_context_code
81694   , p_side                         => 'NA'
81695   );
81696 
81697 
81698    l_segment := AcctDerRule_11(
81699            p_application_id           => p_application_id
81700          , p_ae_header_id             => l_ae_header_id 
81701 , p_source_16 => p_source_16
81702 , p_source_17 => p_source_17
81703          , x_transaction_coa_id       => l_adr_transaction_coa_id
81704          , x_accounting_coa_id        => l_adr_accounting_coa_id
81705          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
81706          , x_flex_value_set_id        => l_adr_flex_value_set_id
81707          , x_value_type_code          => l_adr_value_type_code
81708          , x_value_combination_id     => l_adr_value_combination_id
81709          , x_value_segment_code       => l_adr_value_segment_code
81710          , p_side                     => 'NA'
81711          , p_override_seg_flag        => 'Y'
81712    );
81713 
81714    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
81715 
81716       xla_ae_lines_pkg.set_segment(
81717           p_to_segment_code         => 'GL_ACCOUNT'
81718         , p_segment_value           => l_segment
81719         , p_from_segment_code       => l_adr_value_segment_code
81720         , p_from_combination_id     => l_adr_value_combination_id
81721         , p_value_type_code         => l_adr_value_type_code
81722         , p_transaction_coa_id      => l_adr_transaction_coa_id
81723         , p_accounting_coa_id       => l_adr_accounting_coa_id
81724         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
81725         , p_flex_value_set_id       => l_adr_flex_value_set_id
81726         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
81727         , p_adr_type_code           => 'S'
81728         , p_component_type          => l_component_type
81729         , p_component_code          => l_component_code
81730         , p_component_type_code     => l_component_type_code
81731         , p_component_appl_id       => l_component_appl_id
81732         , p_amb_context_code        => l_amb_context_code
81733         , p_entity_code             => 'AP_PAYMENTS'
81734         , p_event_class_code        => 'RECONCILED PAYMENTS'
81735         , p_side                    => 'NA'
81736         );
81737 
81738   END IF;
81739 
81740    --
81741    --
81742    END IF;
81743 
81744        --
81745        -- Update the line information that should be overwritten
81746        --
81747        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
81748                                          p_header_num   => 1);
81749        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
81750 
81751        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
81752 
81753        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
81754           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
81755        END IF;
81756 
81757       --
81758       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
81759       --
81760       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
81761           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
81762       ELSE
81763           ---------------------------------------------------------------------------------------------------
81764           -- 4262811a Switch Sign
81765           ---------------------------------------------------------------------------------------------------
81766           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
81767           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81768                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81769           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81770                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81771           -- 5132302
81772           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
81773                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81774 
81775       END IF;
81776 
81777       -- 4955764
81778       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81779       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
81780 
81781 
81782       XLA_AE_LINES_PKG.ValidateCurrentLine;
81783       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81784 
81785       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81786                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
81787                ,p_balance_type_code => l_balance_type_code);
81788 
81789    END IF;
81790 
81791    -----------------------------------------------------------------------------------------
81792    -- 4262811 Multiperiod Accounting
81793    -----------------------------------------------------------------------------------------
81794      -- No MPA option is assigned.
81795 
81796 
81797 END IF;
81798 END IF;
81799 --
81800 
81801 --
81802 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81803    trace
81804       (p_msg      => 'END of AcctLineType_148'
81808 --
81805       ,p_level    => C_LEVEL_PROCEDURE
81806       ,p_module   => l_log_module);
81807 END IF;
81809 EXCEPTION
81810   WHEN xla_exceptions_pkg.application_exception THEN
81811       RAISE;
81812   WHEN OTHERS THEN
81813        xla_exceptions_pkg.raise_message
81814            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_148');
81815 END AcctLineType_148;
81816 --
81817 
81818 ---------------------------------------
81819 --
81820 -- PRIVATE FUNCTION
81821 --         AcctLineType_149
81822 --
81823 ---------------------------------------
81824 PROCEDURE AcctLineType_149 (
81825   p_application_id        IN NUMBER
81826  ,p_event_id              IN NUMBER
81827  ,p_calculate_acctd_flag  IN VARCHAR2
81828  ,p_calculate_g_l_flag    IN VARCHAR2
81829  ,p_actual_flag           IN OUT VARCHAR2
81830  ,p_balance_type_code     OUT VARCHAR2
81831  ,p_gain_or_loss_ref      OUT VARCHAR2
81832  
81833 --Interest Account
81834  , p_source_16            IN NUMBER
81835 --Prorate Interest Invoice Across Distributions Option
81836  , p_source_17            IN VARCHAR2
81837 --Invoice Distribution Account
81838  , p_source_18            IN NUMBER
81839 --Invoice Distribution Type
81840  , p_source_21            IN VARCHAR2
81841  , p_source_21_meaning    IN VARCHAR2
81842 --Accounting Reversal Indicator
81843  , p_source_41            IN VARCHAR2
81844 --Distribution Link Type
81845  , p_source_43            IN VARCHAR2
81846 --Override Accounted Amount Indicator
81847  , p_source_68            IN VARCHAR2
81848  , p_source_68_meaning    IN VARCHAR2
81849 --Third Party Type
81850  , p_source_71            IN VARCHAR2
81851 --Invoice Distribution Tax Line Identifier
81852  , p_source_74            IN NUMBER
81853 --Invoice Distribution Tax Distribution Identifier from Tax
81854  , p_source_75            IN NUMBER
81855 --Invoice Distribution Summary Tax Line Identifier
81856  , p_source_76            IN NUMBER
81857 --Business Flow Accounts Payable Application Identifier
81858  , p_source_79            IN NUMBER
81859 --Business Flow Invoice Distribution Type
81860  , p_source_80            IN VARCHAR2
81861 --Business Flow Invoice Entity Code
81862  , p_source_81            IN VARCHAR2
81863 --Business Flow Invoice Distribution Identifier
81864  , p_source_82            IN NUMBER
81865 --Business Flow Invoice Identifier
81866  , p_source_83            IN NUMBER
81867 --When to Account for Payment Option
81868  , p_source_89            IN VARCHAR2
81869 --Payment Distribution Type
81870  , p_source_90            IN VARCHAR2
81871  , p_source_90_meaning    IN VARCHAR2
81872 --Payment Distribution Amount
81873  , p_source_91            IN NUMBER
81874 --Payment Distribution Identifier
81875  , p_source_96            IN NUMBER
81876 --Payment Supplier Identifier
81877  , p_source_102            IN NUMBER
81878 --Payment Supplier Site Identifier
81879  , p_source_103            IN NUMBER
81880 --Payment Distribution Reversed Identifier
81881  , p_source_104            IN NUMBER
81882 --Payment Currency Code
81883  , p_source_106            IN VARCHAR2
81884 --Payment Distribution (Payment Rate) Ledger Amount
81885  , p_source_108            IN NUMBER
81886 --Payment Exchange Date
81887  , p_source_110            IN DATE
81888 --Payment Exchange Rate
81889  , p_source_111            IN NUMBER
81890 --Payment Exchange Rate Type
81891  , p_source_112            IN VARCHAR2
81892 --Payment Processing Type
81893  , p_source_116            IN VARCHAR2
81894 --Invoice Distribution Amount of the Payment Distribution
81895  , p_source_117            IN NUMBER
81896 --Invoice Type Paid
81897  , p_source_158            IN VARCHAR2
81898  , p_source_158_meaning    IN VARCHAR2
81899 )
81900 IS
81901 
81902 l_component_type              VARCHAR2(80);
81903 l_component_code              VARCHAR2(30);
81904 l_component_type_code         VARCHAR2(1);
81905 l_component_appl_id           INTEGER;
81906 l_amb_context_code            VARCHAR2(30);
81907 l_entity_code                 VARCHAR2(30);
81908 l_event_class_code            VARCHAR2(30);
81909 l_ae_header_id                NUMBER;
81910 l_event_type_code             VARCHAR2(30);
81911 l_line_definition_code        VARCHAR2(30);
81912 l_line_definition_owner_code  VARCHAR2(1);
81913 --
81914 -- adr variables
81915 l_segment                     VARCHAR2(30);
81916 l_ccid                        NUMBER;
81917 l_adr_transaction_coa_id      NUMBER;
81918 l_adr_accounting_coa_id       NUMBER;
81919 l_adr_flexfield_segment_code  VARCHAR2(30);
81920 l_adr_flex_value_set_id       NUMBER;
81921 l_adr_value_type_code         VARCHAR2(30);
81922 l_adr_value_combination_id    NUMBER;
81923 l_adr_value_segment_code      VARCHAR2(30);
81924 
81925 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
81926 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
81927 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
81928 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
81929 
81930 -- 4262811 Variables ------------------------------------------------------------------------------------------
81931 l_entered_amt_idx             NUMBER;
81932 l_accted_amt_idx              NUMBER;
81933 l_acc_rev_flag                VARCHAR2(1);
81934 l_accrual_line_num            NUMBER;
81935 l_tmp_amt                     NUMBER;
81936 l_acc_rev_natural_side_code   VARCHAR2(1);
81937 
81938 l_num_entries                 NUMBER;
81939 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
81940 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
81941 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
81945 
81942 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
81943 l_recog_line_1                NUMBER;
81944 l_recog_line_2                NUMBER;
81946 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
81947 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
81948 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
81949 
81950 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
81951 
81952 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
81953 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
81954 
81955 ---------------------------------------------------------------------------------------------------------------
81956 
81957 
81958 --
81959 -- bulk performance
81960 --
81961 l_balance_type_code           VARCHAR2(1);
81962 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
81963 l_log_module                  VARCHAR2(240);
81964 
81965 --
81966 -- Upgrade strategy
81967 --
81968 l_actual_upg_option           VARCHAR2(1);
81969 l_enc_upg_option           VARCHAR2(1);
81970 
81971 --
81972 BEGIN
81973 --
81974 IF g_log_enabled THEN
81975       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_149';
81976 END IF;
81977 --
81978 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81979 
81980       trace
81981          (p_msg      => 'BEGIN of AcctLineType_149'
81982          ,p_level    => C_LEVEL_PROCEDURE
81983          ,p_module   => l_log_module);
81984 
81985 END IF;
81986 --
81987 l_component_type             := 'AMB_JLT';
81988 l_component_code             := 'AP_INTEREST_EXPENSE_PMT';
81989 l_component_type_code        := 'S';
81990 l_component_appl_id          :=  200;
81991 l_amb_context_code           := 'DEFAULT';
81992 l_entity_code                := 'AP_PAYMENTS';
81993 l_event_class_code           := 'PAYMENTS';
81994 l_event_type_code            := 'PAYMENTS_ALL';
81995 l_line_definition_owner_code := 'S';
81996 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
81997 --
81998 l_balance_type_code          := 'A';
81999 l_segment                     := NULL;
82000 l_ccid                        := NULL;
82001 l_adr_transaction_coa_id      := NULL;
82002 l_adr_accounting_coa_id       := NULL;
82003 l_adr_flexfield_segment_code  := NULL;
82004 l_adr_flex_value_set_id       := NULL;
82005 l_adr_value_type_code         := NULL;
82006 l_adr_value_combination_id    := NULL;
82007 l_adr_value_segment_code      := NULL;
82008 
82009 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
82010 l_bflow_class_code           := '';    -- 4219869 Business Flow
82011 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
82012 l_budgetary_control_flag     := 'N';
82013 
82014 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
82015 l_bflow_applied_to_amt       := NULL; -- 5132302
82016 l_entered_amt_idx            := NULL;          -- 4262811
82017 l_accted_amt_idx             := NULL;          -- 4262811
82018 l_acc_rev_flag               := NULL;          -- 4262811
82019 l_accrual_line_num           := NULL;          -- 4262811
82020 l_tmp_amt                    := NULL;          -- 4262811
82021 --
82022  
82023 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
82024     l_balance_type_code <> 'B' THEN
82025 IF NVL(p_source_89,'
82026 ') <>  'CLEAR_CLEAR' AND 
82027 NVL(p_source_158,'
82028 ') =  'INTEREST' AND 
82029 NVL(p_source_21,'
82030 ') =  'ITEM' AND 
82031 (NVL(p_source_90,'
82032 ') =  'CASH' OR 
82033 NVL(p_source_90,'
82034 ') =  'DISCOUNT') AND 
82035 NVL(p_source_116,'
82036 ') <>  'PAYMENTCARD'
82037  THEN 
82038 
82039    --
82040    XLA_AE_LINES_PKG.SetNewLine;
82041 
82042    p_balance_type_code          := l_balance_type_code;
82043    -- set the flag so later we will know whether the gain loss line needs to be created
82044    
82045    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
82046      p_actual_flag :='A';
82047    END IF;
82048 
82049    --
82050    -- bulk performance
82051    --
82052    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
82053                                       p_header_num   => 0); -- 4262811
82054    --
82055    -- set accounting line options
82056    --
82057    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
82058            p_natural_side_code          => 'D'
82059          , p_gain_or_loss_flag          => 'N'
82060          , p_gl_transfer_mode_code      => 'S'
82061          , p_acct_entry_type_code       => 'A'
82062          , p_switch_side_flag           => 'Y'
82063          , p_merge_duplicate_code       => 'A'
82064          );
82065    --
82066    l_acc_rev_natural_side_code := 'C';  -- 4262811
82067    -- 
82068    --
82069    -- set accounting line type info
82070    --
82071    xla_ae_lines_pkg.SetAcctLineType
82072       (p_component_type             => l_component_type
82073       ,p_event_type_code            => l_event_type_code
82074       ,p_line_definition_owner_code => l_line_definition_owner_code
82075       ,p_line_definition_code       => l_line_definition_code
82076       ,p_accounting_line_code       => l_component_code
82077       ,p_accounting_line_type_code  => l_component_type_code
82078       ,p_accounting_line_appl_id    => l_component_appl_id
82079       ,p_amb_context_code           => l_amb_context_code
82080       ,p_entity_code                => l_entity_code
82081       ,p_event_class_code           => l_event_class_code);
82082    --
82083    -- set accounting class
82087          , p_ae_header_id           => l_ae_header_id
82084    --
82085    xla_ae_lines_pkg.SetAcctClass(
82086            p_accounting_class_code  => 'INTEREST_EXPENSE'
82088          );
82089 
82090    --
82091    -- set rounding class
82092    --
82093    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
82094                       'INTEREST_EXPENSE';
82095 
82096    --
82097    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
82098    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
82099    --
82100    -- bulk performance
82101    --
82102    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
82103 
82104    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
82105       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
82106 
82107    -- 4955764
82108    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82109       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
82110 
82111    -- 4458381 Public Sector Enh
82112    
82113    --
82114    -- set accounting attributes for the line type
82115    --
82116    l_entered_amt_idx := 10;
82117    l_accted_amt_idx  := 15;
82118    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
82119    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
82120    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
82121    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
82122    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
82123    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
82124    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
82125    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
82126    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
82127    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
82128    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
82129    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
82130    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
82131    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
82132    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
82133    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
82134    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
82135    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
82136    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
82137    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
82138    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
82139    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
82140    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
82141    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
82142    l_rec_acct_attrs.array_date_value(12)  := p_source_110;
82143    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
82144    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
82145    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
82146    l_rec_acct_attrs.array_char_value(14)  := p_source_112;
82147    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
82148    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
82149    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
82150    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
82151    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
82152    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
82153    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
82154    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
82155    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
82156    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
82157    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
82158    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
82159    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
82160    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
82161    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
82162    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
82163    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
82164    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
82165    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
82166    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
82167 
82168    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
82169    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
82170 
82171    ---------------------------------------------------------------------------------------------------------------
82172    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
82173    ---------------------------------------------------------------------------------------------------------------
82174    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
82175 
82176    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82177    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82178 
82179    IF xla_accounting_cache_pkg.GetValueChar
82180          (p_source_code         => 'LEDGER_CATEGORY_CODE'
82181          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
82182    AND l_bflow_method_code = 'PRIOR_ENTRY'
82183 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
82187    THEN
82184    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
82185          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
82186        )
82188          xla_ae_lines_pkg.BflowUpgEntry
82189            (p_business_method_code    => l_bflow_method_code
82190            ,p_business_class_code     => l_bflow_class_code
82191            ,p_balance_type            => l_balance_type_code);
82192    ELSE
82193       NULL;
82194 -- No business flow processing for business flow method of NONE.
82195    END IF;
82196 
82197    --
82198    -- call analytical criteria
82199    --
82200    
82201    --
82202    -- call description
82203    --
82204    -- No description or it is inherited.
82205    --
82206    -- call ADRs
82207    -- Bug 4922099
82208    --
82209    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82210         (NVL(l_actual_upg_option, 'N') = 'O') OR
82211         (NVL(l_enc_upg_option, 'N') = 'O')
82212       )
82213    THEN
82214    NULL;
82215    --
82216    --
82217    
82218   l_ccid := AcctDerRule_31(
82219            p_application_id           => p_application_id
82220          , p_ae_header_id             => l_ae_header_id 
82221 , p_source_16 => p_source_16
82222 , p_source_17 => p_source_17
82223 , p_source_18 => p_source_18
82224          , x_transaction_coa_id       => l_adr_transaction_coa_id
82225          , x_accounting_coa_id        => l_adr_accounting_coa_id
82226          , x_value_type_code          => l_adr_value_type_code
82227          , p_side                     => 'NA'
82228    );
82229 
82230    xla_ae_lines_pkg.set_ccid(
82231     p_code_combination_id          => l_ccid
82232   , p_value_type_code              => l_adr_value_type_code
82233   , p_transaction_coa_id           => l_adr_transaction_coa_id
82234   , p_accounting_coa_id            => l_adr_accounting_coa_id
82235   , p_adr_code                     => 'AP_INTEREST'
82236   , p_adr_type_code                => 'S'
82237   , p_component_type               => l_component_type
82238   , p_component_code               => l_component_code
82239   , p_component_type_code          => l_component_type_code
82240   , p_component_appl_id            => l_component_appl_id
82241   , p_amb_context_code             => l_amb_context_code
82242   , p_side                         => 'NA'
82243   );
82244 
82245 
82246    l_segment := AcctDerRule_11(
82247            p_application_id           => p_application_id
82248          , p_ae_header_id             => l_ae_header_id 
82249 , p_source_16 => p_source_16
82250 , p_source_17 => p_source_17
82251          , x_transaction_coa_id       => l_adr_transaction_coa_id
82252          , x_accounting_coa_id        => l_adr_accounting_coa_id
82253          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
82254          , x_flex_value_set_id        => l_adr_flex_value_set_id
82255          , x_value_type_code          => l_adr_value_type_code
82256          , x_value_combination_id     => l_adr_value_combination_id
82257          , x_value_segment_code       => l_adr_value_segment_code
82258          , p_side                     => 'NA'
82259          , p_override_seg_flag        => 'Y'
82260    );
82261 
82262    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
82263 
82264       xla_ae_lines_pkg.set_segment(
82265           p_to_segment_code         => 'GL_ACCOUNT'
82266         , p_segment_value           => l_segment
82267         , p_from_segment_code       => l_adr_value_segment_code
82268         , p_from_combination_id     => l_adr_value_combination_id
82269         , p_value_type_code         => l_adr_value_type_code
82270         , p_transaction_coa_id      => l_adr_transaction_coa_id
82271         , p_accounting_coa_id       => l_adr_accounting_coa_id
82272         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
82273         , p_flex_value_set_id       => l_adr_flex_value_set_id
82274         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
82275         , p_adr_type_code           => 'S'
82276         , p_component_type          => l_component_type
82277         , p_component_code          => l_component_code
82278         , p_component_type_code     => l_component_type_code
82279         , p_component_appl_id       => l_component_appl_id
82280         , p_amb_context_code        => l_amb_context_code
82281         , p_entity_code             => 'AP_PAYMENTS'
82282         , p_event_class_code        => 'PAYMENTS'
82283         , p_side                    => 'NA'
82284         );
82285 
82286   END IF;
82287 
82288    --
82289    --
82290    END IF;
82291    --
82292    -- Bug 4922099
82293    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
82294           (NVL(l_enc_upg_option, 'N') = 'O')
82295         ) AND
82296         (l_bflow_method_code = 'PRIOR_ENTRY')
82297       )
82298    THEN
82299       IF
82300       --
82301       1 = 2
82302       --
82303       THEN
82304       xla_accounting_err_pkg.build_message
82305                                     (p_appli_s_name            => 'XLA'
82306                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82307                                     ,p_token_1                 => 'LINE_NUMBER'
82308                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
82309                                     ,p_token_2                 => 'LINE_TYPE_NAME'
82310                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
82311                                                                              l_component_type
82312                                                                             ,l_component_code
82316                                                                             ,l_entity_code
82313                                                                             ,l_component_type_code
82314                                                                             ,l_component_appl_id
82315                                                                             ,l_amb_context_code
82317                                                                             ,l_event_class_code
82318                                                                            )
82319                                     ,p_token_3                 => 'OWNER'
82320                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
82321                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
82322                                                                           ,p_lookup_code    => l_component_type_code
82323                                                                          )
82324                                     ,p_token_4                 => 'PRODUCT_NAME'
82325                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
82326                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
82327                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
82328                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
82329                                     ,p_ae_header_id            =>  NULL
82330                                        );
82331 
82332         IF (C_LEVEL_ERROR>= g_log_level) THEN
82333                  trace
82334                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82335                       ,p_level    => C_LEVEL_ERROR
82336                       ,p_module   => l_log_module);
82337         END IF;
82338       END IF;
82339    END IF;
82340    --
82341    --
82342    ------------------------------------------------------------------------------------------------
82343    -- 4219869 Business Flow
82344    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
82345    -- Prior Entry.  Currently, the following code is always generated.
82346    ------------------------------------------------------------------------------------------------
82347    XLA_AE_LINES_PKG.ValidateCurrentLine;
82348 
82349    ------------------------------------------------------------------------------------
82350    -- 4219869 Business Flow
82351    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
82352    ------------------------------------------------------------------------------------
82353    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82354 
82355    ----------------------------------------------------------------------------------
82356    -- 4219869 Business Flow
82357    -- Update journal entry status -- Need to generate this within IF <condition>
82358    ----------------------------------------------------------------------------------
82359    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82360          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
82361          ,p_balance_type_code => l_balance_type_code
82362          );
82363 
82364    -------------------------------------------------------------------------------------------
82365    -- 4262811 - Generate the Accrual Reversal lines
82366    -------------------------------------------------------------------------------------------
82367    BEGIN
82368       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
82369                               (g_array_event(p_event_id).array_value_num('header_index'));
82370       IF l_acc_rev_flag IS NULL THEN
82371          l_acc_rev_flag := 'N';
82372       END IF;
82373    EXCEPTION
82374       WHEN OTHERS THEN
82375          l_acc_rev_flag := 'N';
82376    END;
82377    --
82378    IF (l_acc_rev_flag = 'Y') THEN
82379 
82380        -- 4645092  ------------------------------------------------------------------------------
82381        -- To allow MPA report to determine if it should generate report process
82382        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
82383        ------------------------------------------------------------------------------------------
82384 
82385        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
82386        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
82387    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
82388    -- call ADRs
82389    -- Bug 4922099
82390    --
82391    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82392         (NVL(l_actual_upg_option, 'N') = 'O') OR
82393         (NVL(l_enc_upg_option, 'N') = 'O')
82394       )
82395    THEN
82396    NULL;
82397    --
82398    --
82399    
82400   l_ccid := AcctDerRule_31(
82401            p_application_id           => p_application_id
82402          , p_ae_header_id             => l_ae_header_id 
82403 , p_source_16 => p_source_16
82404 , p_source_17 => p_source_17
82405 , p_source_18 => p_source_18
82406          , x_transaction_coa_id       => l_adr_transaction_coa_id
82407          , x_accounting_coa_id        => l_adr_accounting_coa_id
82408          , x_value_type_code          => l_adr_value_type_code
82409          , p_side                     => 'NA'
82410    );
82411 
82412    xla_ae_lines_pkg.set_ccid(
82413     p_code_combination_id          => l_ccid
82414   , p_value_type_code              => l_adr_value_type_code
82415   , p_transaction_coa_id           => l_adr_transaction_coa_id
82416   , p_accounting_coa_id            => l_adr_accounting_coa_id
82417   , p_adr_code                     => 'AP_INTEREST'
82418   , p_adr_type_code                => 'S'
82422   , p_component_appl_id            => l_component_appl_id
82419   , p_component_type               => l_component_type
82420   , p_component_code               => l_component_code
82421   , p_component_type_code          => l_component_type_code
82423   , p_amb_context_code             => l_amb_context_code
82424   , p_side                         => 'NA'
82425   );
82426 
82427 
82428    l_segment := AcctDerRule_11(
82429            p_application_id           => p_application_id
82430          , p_ae_header_id             => l_ae_header_id 
82431 , p_source_16 => p_source_16
82432 , p_source_17 => p_source_17
82433          , x_transaction_coa_id       => l_adr_transaction_coa_id
82434          , x_accounting_coa_id        => l_adr_accounting_coa_id
82435          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
82436          , x_flex_value_set_id        => l_adr_flex_value_set_id
82437          , x_value_type_code          => l_adr_value_type_code
82438          , x_value_combination_id     => l_adr_value_combination_id
82439          , x_value_segment_code       => l_adr_value_segment_code
82440          , p_side                     => 'NA'
82441          , p_override_seg_flag        => 'Y'
82442    );
82443 
82444    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
82445 
82446       xla_ae_lines_pkg.set_segment(
82447           p_to_segment_code         => 'GL_ACCOUNT'
82448         , p_segment_value           => l_segment
82449         , p_from_segment_code       => l_adr_value_segment_code
82450         , p_from_combination_id     => l_adr_value_combination_id
82451         , p_value_type_code         => l_adr_value_type_code
82452         , p_transaction_coa_id      => l_adr_transaction_coa_id
82453         , p_accounting_coa_id       => l_adr_accounting_coa_id
82454         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
82455         , p_flex_value_set_id       => l_adr_flex_value_set_id
82456         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
82457         , p_adr_type_code           => 'S'
82458         , p_component_type          => l_component_type
82459         , p_component_code          => l_component_code
82460         , p_component_type_code     => l_component_type_code
82461         , p_component_appl_id       => l_component_appl_id
82462         , p_amb_context_code        => l_amb_context_code
82463         , p_entity_code             => 'AP_PAYMENTS'
82464         , p_event_class_code        => 'PAYMENTS'
82465         , p_side                    => 'NA'
82466         );
82467 
82468   END IF;
82469 
82470    --
82471    --
82472    END IF;
82473 
82474        --
82475        -- Update the line information that should be overwritten
82476        --
82477        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
82478                                          p_header_num   => 1);
82479        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
82480 
82481        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
82482 
82483        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
82484           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
82485        END IF;
82486 
82487       --
82488       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
82489       --
82490       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
82491           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
82492       ELSE
82493           ---------------------------------------------------------------------------------------------------
82494           -- 4262811a Switch Sign
82495           ---------------------------------------------------------------------------------------------------
82496           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
82497           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82498                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82499           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82500                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82501           -- 5132302
82502           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
82503                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82504 
82505       END IF;
82506 
82507       -- 4955764
82508       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82509       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
82510 
82511 
82512       XLA_AE_LINES_PKG.ValidateCurrentLine;
82513       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82514 
82515       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82516                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
82517                ,p_balance_type_code => l_balance_type_code);
82518 
82519    END IF;
82520 
82521    -----------------------------------------------------------------------------------------
82522    -- 4262811 Multiperiod Accounting
82523    -----------------------------------------------------------------------------------------
82524      -- No MPA option is assigned.
82525 
82526 
82527 END IF;
82528 END IF;
82529 --
82530 
82531 --
82532 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82533    trace
82534       (p_msg      => 'END of AcctLineType_149'
82538 --
82535       ,p_level    => C_LEVEL_PROCEDURE
82536       ,p_module   => l_log_module);
82537 END IF;
82539 EXCEPTION
82540   WHEN xla_exceptions_pkg.application_exception THEN
82541       RAISE;
82542   WHEN OTHERS THEN
82543        xla_exceptions_pkg.raise_message
82544            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_149');
82545 END AcctLineType_149;
82546 --
82547 
82548 ---------------------------------------
82549 --
82550 -- PRIVATE FUNCTION
82551 --         AcctLineType_150
82552 --
82553 ---------------------------------------
82554 PROCEDURE AcctLineType_150 (
82555   p_application_id        IN NUMBER
82556  ,p_event_id              IN NUMBER
82557  ,p_calculate_acctd_flag  IN VARCHAR2
82558  ,p_calculate_g_l_flag    IN VARCHAR2
82559  ,p_actual_flag           IN OUT VARCHAR2
82560  ,p_balance_type_code     OUT VARCHAR2
82561  ,p_gain_or_loss_ref      OUT VARCHAR2
82562  
82563 --Invoice Distribution Description
82564  , p_source_1            IN VARCHAR2
82565 --Invoice Distribution Ledger Amount
82566  , p_source_9            IN NUMBER
82567 --Invoice Distribution Account
82568  , p_source_18            IN NUMBER
82569 --Invoice Distribution Type
82570  , p_source_21            IN VARCHAR2
82571  , p_source_21_meaning    IN VARCHAR2
82572 --Accounting Reversal Indicator
82573  , p_source_41            IN VARCHAR2
82574 --Distribution Link Type
82575  , p_source_43            IN VARCHAR2
82576 --Allocation to Main Distribution Identifier
82577  , p_source_45            IN NUMBER
82578 --Invoice Identifier
82579  , p_source_46            IN NUMBER
82580 --Invoice Distribution Identifier
82581  , p_source_52            IN NUMBER
82582 --Payables Encumbrance Upgrade Credit Account
82583  , p_source_53            IN NUMBER
82584 --Payables Encumbrance Upgrade Credit Amount
82585  , p_source_54            IN NUMBER
82586 --Invoice Currency Code
82587  , p_source_55            IN VARCHAR2
82588 --Payables Encumbrance Upgrade Credit Base Amount
82589  , p_source_56            IN NUMBER
82590 --Payables Encumbrance Upgrade Debit Account
82591  , p_source_57            IN NUMBER
82592 --Payables Encumbrance Upgrade Debit Amount
82593  , p_source_58            IN NUMBER
82594 --Payables Encumbrance Upgrade Debit Base Amount
82595  , p_source_59            IN NUMBER
82596 --Payables Encumbrance Upgrade Option
82597  , p_source_60            IN VARCHAR2
82598 --Invoice Distribution Amount
82599  , p_source_61            IN NUMBER
82600 --Deferred Accounting End Date
82601  , p_source_65            IN DATE
82602 --Deferred Accounting Option
82603  , p_source_66            IN VARCHAR2
82604 --Deferred Accounting Start Date
82605  , p_source_67            IN DATE
82606 --Override Accounted Amount Indicator
82607  , p_source_68            IN VARCHAR2
82608  , p_source_68_meaning    IN VARCHAR2
82609 --Invoice Supplier Identifier
82610  , p_source_69            IN NUMBER
82611 --Invoice Supplier Site Identifier
82612  , p_source_70            IN NUMBER
82613 --Third Party Type
82614  , p_source_71            IN VARCHAR2
82615 --Parent Reversal Identifier
82616  , p_source_72            IN NUMBER
82617 --Invoice Distribution Statistical Amount
82618  , p_source_73            IN NUMBER
82619 --Invoice Distribution Tax Line Identifier
82620  , p_source_74            IN NUMBER
82621 --Invoice Distribution Tax Distribution Identifier from Tax
82622  , p_source_75            IN NUMBER
82623 --Invoice Distribution Summary Tax Line Identifier
82624  , p_source_76            IN NUMBER
82625 --Payables Upgrade Credit Encumbrance Type Identifier
82626  , p_source_77            IN NUMBER
82627 --Payables Upgrade Debit Encumbrance Type Identifier
82628  , p_source_78            IN NUMBER
82629 --Business Flow Accounts Payable Application Identifier
82630  , p_source_79            IN NUMBER
82631 --Business Flow Invoice Distribution Type
82632  , p_source_80            IN VARCHAR2
82633 --Business Flow Invoice Entity Code
82634  , p_source_81            IN VARCHAR2
82635 --Business Flow Invoice Distribution Identifier
82636  , p_source_82            IN NUMBER
82637 --Business Flow Invoice Identifier
82638  , p_source_83            IN NUMBER
82639 --Accrue on Receipt Option
82640  , p_source_84            IN VARCHAR2
82641  , p_source_84_meaning    IN VARCHAR2
82642 --Invoice Exchange Date
82643  , p_source_136            IN DATE
82644 --Invoice Exchange Rate
82645  , p_source_137            IN NUMBER
82646 --Invoice Exchange Rate Type
82647  , p_source_138            IN VARCHAR2
82648 )
82649 IS
82650 
82651 l_component_type              VARCHAR2(80);
82652 l_component_code              VARCHAR2(30);
82653 l_component_type_code         VARCHAR2(1);
82654 l_component_appl_id           INTEGER;
82655 l_amb_context_code            VARCHAR2(30);
82656 l_entity_code                 VARCHAR2(30);
82657 l_event_class_code            VARCHAR2(30);
82658 l_ae_header_id                NUMBER;
82659 l_event_type_code             VARCHAR2(30);
82660 l_line_definition_code        VARCHAR2(30);
82661 l_line_definition_owner_code  VARCHAR2(1);
82662 --
82663 -- adr variables
82664 l_segment                     VARCHAR2(30);
82665 l_ccid                        NUMBER;
82666 l_adr_transaction_coa_id      NUMBER;
82667 l_adr_accounting_coa_id       NUMBER;
82668 l_adr_flexfield_segment_code  VARCHAR2(30);
82669 l_adr_flex_value_set_id       NUMBER;
82670 l_adr_value_type_code         VARCHAR2(30);
82671 l_adr_value_combination_id    NUMBER;
82672 l_adr_value_segment_code      VARCHAR2(30);
82673 
82674 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
82678 
82675 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
82676 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
82677 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
82679 -- 4262811 Variables ------------------------------------------------------------------------------------------
82680 l_entered_amt_idx             NUMBER;
82681 l_accted_amt_idx              NUMBER;
82682 l_acc_rev_flag                VARCHAR2(1);
82683 l_accrual_line_num            NUMBER;
82684 l_tmp_amt                     NUMBER;
82685 l_acc_rev_natural_side_code   VARCHAR2(1);
82686 
82687 l_num_entries                 NUMBER;
82688 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
82689 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
82690 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
82691 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
82692 l_recog_line_1                NUMBER;
82693 l_recog_line_2                NUMBER;
82694 
82695 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
82696 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
82697 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
82698 
82699 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
82700 
82701 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
82702 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
82703 
82704 ---------------------------------------------------------------------------------------------------------------
82705 
82706 
82707 --
82708 -- bulk performance
82709 --
82710 l_balance_type_code           VARCHAR2(1);
82711 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
82712 l_log_module                  VARCHAR2(240);
82713 
82714 --
82715 -- Upgrade strategy
82716 --
82717 l_actual_upg_option           VARCHAR2(1);
82718 l_enc_upg_option           VARCHAR2(1);
82719 
82720 --
82721 BEGIN
82722 --
82723 IF g_log_enabled THEN
82724       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_150';
82725 END IF;
82726 --
82727 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82728 
82729       trace
82730          (p_msg      => 'BEGIN of AcctLineType_150'
82731          ,p_level    => C_LEVEL_PROCEDURE
82732          ,p_module   => l_log_module);
82733 
82734 END IF;
82735 --
82736 l_component_type             := 'AMB_JLT';
82737 l_component_code             := 'AP_INV_PRICE_VAR_CM';
82738 l_component_type_code        := 'S';
82739 l_component_appl_id          :=  200;
82740 l_amb_context_code           := 'DEFAULT';
82741 l_entity_code                := 'AP_INVOICES';
82742 l_event_class_code           := 'CREDIT MEMOS';
82743 l_event_type_code            := 'CREDIT MEMOS_ALL';
82744 l_line_definition_owner_code := 'S';
82745 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
82746 --
82747 l_balance_type_code          := 'A';
82748 l_segment                     := NULL;
82749 l_ccid                        := NULL;
82750 l_adr_transaction_coa_id      := NULL;
82751 l_adr_accounting_coa_id       := NULL;
82752 l_adr_flexfield_segment_code  := NULL;
82753 l_adr_flex_value_set_id       := NULL;
82754 l_adr_value_type_code         := NULL;
82755 l_adr_value_combination_id    := NULL;
82756 l_adr_value_segment_code      := NULL;
82757 
82758 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
82759 l_bflow_class_code           := '';    -- 4219869 Business Flow
82760 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
82761 l_budgetary_control_flag     := 'N';
82762 
82763 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
82764 l_bflow_applied_to_amt       := NULL; -- 5132302
82765 l_entered_amt_idx            := NULL;          -- 4262811
82766 l_accted_amt_idx             := NULL;          -- 4262811
82767 l_acc_rev_flag               := NULL;          -- 4262811
82768 l_accrual_line_num           := NULL;          -- 4262811
82769 l_tmp_amt                    := NULL;          -- 4262811
82770 --
82771  
82772 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
82773     l_balance_type_code <> 'B' THEN
82774 IF NVL(p_source_21,'
82775 ') =  'IPV' AND 
82776 NVL(p_source_84,'
82777 ') =  'Y'
82778  THEN 
82779 
82780    --
82781    XLA_AE_LINES_PKG.SetNewLine;
82782 
82783    p_balance_type_code          := l_balance_type_code;
82784    -- set the flag so later we will know whether the gain loss line needs to be created
82785    
82786    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
82787      p_actual_flag :='A';
82788    END IF;
82789 
82790    --
82791    -- bulk performance
82792    --
82793    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
82794                                       p_header_num   => 0); -- 4262811
82795    --
82796    -- set accounting line options
82797    --
82798    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
82799            p_natural_side_code          => 'D'
82800          , p_gain_or_loss_flag          => 'N'
82801          , p_gl_transfer_mode_code      => 'S'
82802          , p_acct_entry_type_code       => 'A'
82803          , p_switch_side_flag           => 'Y'
82804          , p_merge_duplicate_code       => 'A'
82805          );
82806    --
82807    l_acc_rev_natural_side_code := 'C';  -- 4262811
82808    -- 
82809    --
82810    -- set accounting line type info
82811    --
82812    xla_ae_lines_pkg.SetAcctLineType
82816       ,p_line_definition_code       => l_line_definition_code
82813       (p_component_type             => l_component_type
82814       ,p_event_type_code            => l_event_type_code
82815       ,p_line_definition_owner_code => l_line_definition_owner_code
82817       ,p_accounting_line_code       => l_component_code
82818       ,p_accounting_line_type_code  => l_component_type_code
82819       ,p_accounting_line_appl_id    => l_component_appl_id
82820       ,p_amb_context_code           => l_amb_context_code
82821       ,p_entity_code                => l_entity_code
82822       ,p_event_class_code           => l_event_class_code);
82823    --
82824    -- set accounting class
82825    --
82826    xla_ae_lines_pkg.SetAcctClass(
82827            p_accounting_class_code  => 'IPV'
82828          , p_ae_header_id           => l_ae_header_id
82829          );
82830 
82831    --
82832    -- set rounding class
82833    --
82834    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
82835                       'IPV';
82836 
82837    --
82838    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
82839    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
82840    --
82841    -- bulk performance
82842    --
82843    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
82844 
82845    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
82846       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
82847 
82848    -- 4955764
82849    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82850       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
82851 
82852    -- 4458381 Public Sector Enh
82853    
82854    --
82855    -- set accounting attributes for the line type
82856    --
82857    l_entered_amt_idx := 23;
82858    l_accted_amt_idx  := 28;
82859    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
82860    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
82861    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
82862    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
82863    l_rec_acct_attrs.array_num_value(2)  := 
82864 xla_ae_sources_pkg.GetSystemSourceNum(
82865    p_source_code           => 'XLA_EVENT_APPL_ID'
82866  , p_source_type_code      => 'Y'
82867  , p_source_application_id =>  602
82868 );
82869    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
82870    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
82871    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
82872    l_rec_acct_attrs.array_char_value(4)  := 
82873 xla_ae_sources_pkg.GetSystemSourceChar(
82874    p_source_code           => 'XLA_ENTITY_CODE'
82875  , p_source_type_code      => 'Y'
82876  , p_source_application_id =>  602
82877 );
82878    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
82879    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
82880    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
82881    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
82882    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
82883    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
82884    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
82885    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
82886    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
82887    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
82888    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
82889    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
82890    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
82891    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
82892    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
82893    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
82894    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
82895    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
82896    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
82897    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
82898    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
82899    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
82900    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
82901    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
82902    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
82903    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
82904    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
82905    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
82906    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
82907    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
82908    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
82909    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
82910    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
82911    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
82912    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
82913    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
82914    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
82915    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
82916    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
82917    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
82918    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
82922    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
82919    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
82920    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
82921    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
82923    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
82924    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
82925    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
82926    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
82927    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
82928    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
82929    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
82930    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
82931    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
82932    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
82933    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
82934    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
82935    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
82936    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
82937    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
82938    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
82939    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
82940    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
82941    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
82942    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
82943    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
82944    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
82945    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
82946    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
82947    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
82948    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
82949    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
82950    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
82951    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
82952    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
82953    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
82954    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
82955    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
82956 
82957    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
82958    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
82959 
82960    ---------------------------------------------------------------------------------------------------------------
82961    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
82962    ---------------------------------------------------------------------------------------------------------------
82963    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
82964 
82965    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82966    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82967 
82968    IF xla_accounting_cache_pkg.GetValueChar
82969          (p_source_code         => 'LEDGER_CATEGORY_CODE'
82970          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
82971    AND l_bflow_method_code = 'PRIOR_ENTRY'
82972 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
82973    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
82974          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
82975        )
82976    THEN
82977          xla_ae_lines_pkg.BflowUpgEntry
82978            (p_business_method_code    => l_bflow_method_code
82979            ,p_business_class_code     => l_bflow_class_code
82980            ,p_balance_type            => l_balance_type_code);
82981    ELSE
82982       NULL;
82983 -- No business flow processing for business flow method of NONE.
82984    END IF;
82985 
82986    --
82987    -- call analytical criteria
82988    --
82989    
82990    --
82991    -- call description
82992    --
82993    
82994 xla_ae_lines_pkg.SetLineDescription(
82995    p_ae_header_id => l_ae_header_id
82996   ,p_description  => Description_2 (
82997      p_application_id         => p_application_id
82998    , p_ae_header_id           => l_ae_header_id 
82999 , p_source_1 => p_source_1
83000    )
83001 );
83002 
83003 
83004    --
83005    -- call ADRs
83006    -- Bug 4922099
83007    --
83008    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83009         (NVL(l_actual_upg_option, 'N') = 'O') OR
83010         (NVL(l_enc_upg_option, 'N') = 'O')
83011       )
83012    THEN
83013    NULL;
83014    --
83015    --
83016    
83017   l_ccid := AcctDerRule_32(
83018            p_application_id           => p_application_id
83019          , p_ae_header_id             => l_ae_header_id 
83020 , p_source_18 => p_source_18
83021          , x_transaction_coa_id       => l_adr_transaction_coa_id
83022          , x_accounting_coa_id        => l_adr_accounting_coa_id
83023          , x_value_type_code          => l_adr_value_type_code
83024          , p_side                     => 'NA'
83025    );
83026 
83027    xla_ae_lines_pkg.set_ccid(
83028     p_code_combination_id          => l_ccid
83029   , p_value_type_code              => l_adr_value_type_code
83030   , p_transaction_coa_id           => l_adr_transaction_coa_id
83031   , p_accounting_coa_id            => l_adr_accounting_coa_id
83032   , p_adr_code                     => 'AP_INVOICE_DIST'
83036   , p_component_type_code          => l_component_type_code
83033   , p_adr_type_code                => 'S'
83034   , p_component_type               => l_component_type
83035   , p_component_code               => l_component_code
83037   , p_component_appl_id            => l_component_appl_id
83038   , p_amb_context_code             => l_amb_context_code
83039   , p_side                         => 'NA'
83040   );
83041 
83042 
83043    --
83044    --
83045    END IF;
83046    --
83047    -- Bug 4922099
83048    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
83049           (NVL(l_enc_upg_option, 'N') = 'O')
83050         ) AND
83051         (l_bflow_method_code = 'PRIOR_ENTRY')
83052       )
83053    THEN
83054       IF
83055       --
83056       1 = 2
83057       --
83058       THEN
83059       xla_accounting_err_pkg.build_message
83060                                     (p_appli_s_name            => 'XLA'
83061                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83062                                     ,p_token_1                 => 'LINE_NUMBER'
83063                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
83064                                     ,p_token_2                 => 'LINE_TYPE_NAME'
83065                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
83066                                                                              l_component_type
83067                                                                             ,l_component_code
83068                                                                             ,l_component_type_code
83069                                                                             ,l_component_appl_id
83070                                                                             ,l_amb_context_code
83071                                                                             ,l_entity_code
83072                                                                             ,l_event_class_code
83073                                                                            )
83074                                     ,p_token_3                 => 'OWNER'
83075                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
83076                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
83077                                                                           ,p_lookup_code    => l_component_type_code
83078                                                                          )
83079                                     ,p_token_4                 => 'PRODUCT_NAME'
83080                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
83081                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
83082                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
83083                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
83084                                     ,p_ae_header_id            =>  NULL
83085                                        );
83086 
83087         IF (C_LEVEL_ERROR>= g_log_level) THEN
83088                  trace
83089                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83090                       ,p_level    => C_LEVEL_ERROR
83091                       ,p_module   => l_log_module);
83092         END IF;
83093       END IF;
83094    END IF;
83095    --
83096    --
83097    ------------------------------------------------------------------------------------------------
83098    -- 4219869 Business Flow
83099    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
83100    -- Prior Entry.  Currently, the following code is always generated.
83101    ------------------------------------------------------------------------------------------------
83102    XLA_AE_LINES_PKG.ValidateCurrentLine;
83103 
83104    ------------------------------------------------------------------------------------
83105    -- 4219869 Business Flow
83106    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
83107    ------------------------------------------------------------------------------------
83108    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83109 
83110    ----------------------------------------------------------------------------------
83111    -- 4219869 Business Flow
83112    -- Update journal entry status -- Need to generate this within IF <condition>
83113    ----------------------------------------------------------------------------------
83114    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83115          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
83116          ,p_balance_type_code => l_balance_type_code
83117          );
83118 
83119    -------------------------------------------------------------------------------------------
83120    -- 4262811 - Generate the Accrual Reversal lines
83121    -------------------------------------------------------------------------------------------
83122    BEGIN
83123       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
83124                               (g_array_event(p_event_id).array_value_num('header_index'));
83125       IF l_acc_rev_flag IS NULL THEN
83126          l_acc_rev_flag := 'N';
83127       END IF;
83128    EXCEPTION
83129       WHEN OTHERS THEN
83130          l_acc_rev_flag := 'N';
83131    END;
83132    --
83133    IF (l_acc_rev_flag = 'Y') THEN
83134 
83135        -- 4645092  ------------------------------------------------------------------------------
83136        -- To allow MPA report to determine if it should generate report process
83140        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
83137        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
83138        ------------------------------------------------------------------------------------------
83139 
83141        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
83142    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
83143    -- call ADRs
83144    -- Bug 4922099
83145    --
83146    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83147         (NVL(l_actual_upg_option, 'N') = 'O') OR
83148         (NVL(l_enc_upg_option, 'N') = 'O')
83149       )
83150    THEN
83151    NULL;
83152    --
83153    --
83154    
83155   l_ccid := AcctDerRule_32(
83156            p_application_id           => p_application_id
83157          , p_ae_header_id             => l_ae_header_id 
83158 , p_source_18 => p_source_18
83159          , x_transaction_coa_id       => l_adr_transaction_coa_id
83160          , x_accounting_coa_id        => l_adr_accounting_coa_id
83161          , x_value_type_code          => l_adr_value_type_code
83162          , p_side                     => 'NA'
83163    );
83164 
83165    xla_ae_lines_pkg.set_ccid(
83166     p_code_combination_id          => l_ccid
83167   , p_value_type_code              => l_adr_value_type_code
83168   , p_transaction_coa_id           => l_adr_transaction_coa_id
83169   , p_accounting_coa_id            => l_adr_accounting_coa_id
83170   , p_adr_code                     => 'AP_INVOICE_DIST'
83171   , p_adr_type_code                => 'S'
83172   , p_component_type               => l_component_type
83173   , p_component_code               => l_component_code
83174   , p_component_type_code          => l_component_type_code
83175   , p_component_appl_id            => l_component_appl_id
83176   , p_amb_context_code             => l_amb_context_code
83177   , p_side                         => 'NA'
83178   );
83179 
83180 
83181    --
83182    --
83183    END IF;
83184 
83185        --
83186        -- Update the line information that should be overwritten
83187        --
83188        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
83189                                          p_header_num   => 1);
83190        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
83191 
83192        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
83193 
83194        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
83195           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
83196        END IF;
83197 
83198       --
83199       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
83200       --
83201       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
83202           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
83203       ELSE
83204           ---------------------------------------------------------------------------------------------------
83205           -- 4262811a Switch Sign
83206           ---------------------------------------------------------------------------------------------------
83207           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
83208           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83209                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83210           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83211                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83212           -- 5132302
83213           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
83214                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83215 
83216       END IF;
83217 
83218       -- 4955764
83219       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83220       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
83221 
83222 
83223       XLA_AE_LINES_PKG.ValidateCurrentLine;
83224       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83225 
83226       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83227                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
83228                ,p_balance_type_code => l_balance_type_code);
83229 
83230    END IF;
83231 
83232    -----------------------------------------------------------------------------------------
83233    -- 4262811 Multiperiod Accounting
83234    -----------------------------------------------------------------------------------------
83235      -- No MPA option is assigned.
83236 
83237 
83238 END IF;
83239 END IF;
83240 --
83241 
83242 --
83243 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83244    trace
83245       (p_msg      => 'END of AcctLineType_150'
83246       ,p_level    => C_LEVEL_PROCEDURE
83247       ,p_module   => l_log_module);
83248 END IF;
83249 --
83250 EXCEPTION
83251   WHEN xla_exceptions_pkg.application_exception THEN
83252       RAISE;
83253   WHEN OTHERS THEN
83254        xla_exceptions_pkg.raise_message
83255            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_150');
83256 END AcctLineType_150;
83257 --
83258 
83259 ---------------------------------------
83260 --
83264 ---------------------------------------
83261 -- PRIVATE FUNCTION
83262 --         AcctLineType_151
83263 --
83265 PROCEDURE AcctLineType_151 (
83266   p_application_id        IN NUMBER
83267  ,p_event_id              IN NUMBER
83268  ,p_calculate_acctd_flag  IN VARCHAR2
83269  ,p_calculate_g_l_flag    IN VARCHAR2
83270  ,p_actual_flag           IN OUT VARCHAR2
83271  ,p_balance_type_code     OUT VARCHAR2
83272  ,p_gain_or_loss_ref      OUT VARCHAR2
83273  
83274 --Invoice Distribution Type
83275  , p_source_21            IN VARCHAR2
83276  , p_source_21_meaning    IN VARCHAR2
83277 --Accounting Reversal Indicator
83278  , p_source_41            IN VARCHAR2
83279 --Distribution Link Type
83280  , p_source_43            IN VARCHAR2
83281 --Allocation to Main Distribution Identifier
83282  , p_source_45            IN NUMBER
83283 --Invoice Identifier
83284  , p_source_46            IN NUMBER
83285 --Invoice Distribution Identifier
83286  , p_source_52            IN NUMBER
83287 --Payables Encumbrance Upgrade Credit Account
83288  , p_source_53            IN NUMBER
83289 --Payables Encumbrance Upgrade Credit Amount
83290  , p_source_54            IN NUMBER
83291 --Invoice Currency Code
83292  , p_source_55            IN VARCHAR2
83293 --Payables Encumbrance Upgrade Credit Base Amount
83294  , p_source_56            IN NUMBER
83295 --Payables Encumbrance Upgrade Debit Account
83296  , p_source_57            IN NUMBER
83297 --Payables Encumbrance Upgrade Debit Amount
83298  , p_source_58            IN NUMBER
83299 --Payables Encumbrance Upgrade Debit Base Amount
83300  , p_source_59            IN NUMBER
83301 --Payables Encumbrance Upgrade Option
83302  , p_source_60            IN VARCHAR2
83303 --Deferred Accounting End Date
83304  , p_source_65            IN DATE
83305 --Deferred Accounting Option
83306  , p_source_66            IN VARCHAR2
83307 --Deferred Accounting Start Date
83308  , p_source_67            IN DATE
83309 --Override Accounted Amount Indicator
83310  , p_source_68            IN VARCHAR2
83311  , p_source_68_meaning    IN VARCHAR2
83312 --Third Party Type
83313  , p_source_71            IN VARCHAR2
83314 --Parent Reversal Identifier
83315  , p_source_72            IN NUMBER
83316 --Invoice Distribution Statistical Amount
83317  , p_source_73            IN NUMBER
83318 --Invoice Distribution Tax Line Identifier
83319  , p_source_74            IN NUMBER
83320 --Invoice Distribution Tax Distribution Identifier from Tax
83321  , p_source_75            IN NUMBER
83322 --Invoice Distribution Summary Tax Line Identifier
83323  , p_source_76            IN NUMBER
83324 --Payables Upgrade Credit Encumbrance Type Identifier
83325  , p_source_77            IN NUMBER
83326 --Payables Upgrade Debit Encumbrance Type Identifier
83327  , p_source_78            IN NUMBER
83328 --Business Flow Accounts Payable Application Identifier
83329  , p_source_79            IN NUMBER
83330 --Business Flow Invoice Distribution Type
83331  , p_source_80            IN VARCHAR2
83332 --Business Flow Invoice Entity Code
83333  , p_source_81            IN VARCHAR2
83334 --Business Flow Invoice Distribution Identifier
83335  , p_source_82            IN NUMBER
83336 --Business Flow Invoice Identifier
83337  , p_source_83            IN NUMBER
83338 --Purchasing Encumbrance Option
83339  , p_source_86            IN VARCHAR2
83340  , p_source_86_meaning    IN VARCHAR2
83341 --Invoice Encumbered Option
83342  , p_source_87            IN VARCHAR2
83343  , p_source_87_meaning    IN VARCHAR2
83344 --Invoice Distribution Encumbrance Amount
83345  , p_source_143            IN NUMBER
83346 --Invoice Distribution Encumbrance Ledger Amount
83347  , p_source_144            IN NUMBER
83348 )
83349 IS
83350 
83351 l_component_type              VARCHAR2(80);
83352 l_component_code              VARCHAR2(30);
83353 l_component_type_code         VARCHAR2(1);
83354 l_component_appl_id           INTEGER;
83355 l_amb_context_code            VARCHAR2(30);
83356 l_entity_code                 VARCHAR2(30);
83357 l_event_class_code            VARCHAR2(30);
83358 l_ae_header_id                NUMBER;
83359 l_event_type_code             VARCHAR2(30);
83360 l_line_definition_code        VARCHAR2(30);
83361 l_line_definition_owner_code  VARCHAR2(1);
83362 --
83363 -- adr variables
83364 l_segment                     VARCHAR2(30);
83365 l_ccid                        NUMBER;
83366 l_adr_transaction_coa_id      NUMBER;
83367 l_adr_accounting_coa_id       NUMBER;
83368 l_adr_flexfield_segment_code  VARCHAR2(30);
83369 l_adr_flex_value_set_id       NUMBER;
83370 l_adr_value_type_code         VARCHAR2(30);
83371 l_adr_value_combination_id    NUMBER;
83372 l_adr_value_segment_code      VARCHAR2(30);
83373 
83374 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
83375 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
83376 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
83377 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
83378 
83379 -- 4262811 Variables ------------------------------------------------------------------------------------------
83380 l_entered_amt_idx             NUMBER;
83381 l_accted_amt_idx              NUMBER;
83382 l_acc_rev_flag                VARCHAR2(1);
83383 l_accrual_line_num            NUMBER;
83384 l_tmp_amt                     NUMBER;
83385 l_acc_rev_natural_side_code   VARCHAR2(1);
83386 
83387 l_num_entries                 NUMBER;
83388 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
83389 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
83390 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
83391 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
83395 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
83392 l_recog_line_1                NUMBER;
83393 l_recog_line_2                NUMBER;
83394 
83396 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
83397 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
83398 
83399 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
83400 
83401 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
83402 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
83403 
83404 ---------------------------------------------------------------------------------------------------------------
83405 
83406 
83407 --
83408 -- bulk performance
83409 --
83410 l_balance_type_code           VARCHAR2(1);
83411 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
83412 l_log_module                  VARCHAR2(240);
83413 
83414 --
83415 -- Upgrade strategy
83416 --
83417 l_actual_upg_option           VARCHAR2(1);
83418 l_enc_upg_option           VARCHAR2(1);
83419 
83420 --
83421 BEGIN
83422 --
83423 IF g_log_enabled THEN
83424       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_151';
83425 END IF;
83426 --
83427 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83428 
83429       trace
83430          (p_msg      => 'BEGIN of AcctLineType_151'
83431          ,p_level    => C_LEVEL_PROCEDURE
83432          ,p_module   => l_log_module);
83433 
83434 END IF;
83435 --
83436 l_component_type             := 'AMB_JLT';
83437 l_component_code             := 'AP_INV_PRICE_VAR_CM_ENC';
83438 l_component_type_code        := 'S';
83439 l_component_appl_id          :=  200;
83440 l_amb_context_code           := 'DEFAULT';
83441 l_entity_code                := 'AP_INVOICES';
83442 l_event_class_code           := 'CREDIT MEMOS';
83443 l_event_type_code            := 'CREDIT MEMOS_ALL';
83444 l_line_definition_owner_code := 'S';
83445 l_line_definition_code       := 'ENC_REV_CM_ALL';
83446 --
83447 l_balance_type_code          := 'E';
83448 l_segment                     := NULL;
83449 l_ccid                        := NULL;
83450 l_adr_transaction_coa_id      := NULL;
83451 l_adr_accounting_coa_id       := NULL;
83452 l_adr_flexfield_segment_code  := NULL;
83453 l_adr_flex_value_set_id       := NULL;
83454 l_adr_value_type_code         := NULL;
83455 l_adr_value_combination_id    := NULL;
83456 l_adr_value_segment_code      := NULL;
83457 
83458 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
83459 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
83460 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
83461 l_budgetary_control_flag     := 'N';
83462 
83463 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
83464 l_bflow_applied_to_amt       := NULL; -- 5132302
83465 l_entered_amt_idx            := NULL;          -- 4262811
83466 l_accted_amt_idx             := NULL;          -- 4262811
83467 l_acc_rev_flag               := NULL;          -- 4262811
83468 l_accrual_line_num           := NULL;          -- 4262811
83469 l_tmp_amt                    := NULL;          -- 4262811
83470 --
83471  
83472 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
83473     l_balance_type_code <> 'B' THEN
83474 IF NVL(p_source_21,'
83475 ') =  'IPV' AND 
83476 NVL(p_source_86,'
83477 ') =  'Y' AND 
83478 NVL(p_source_87,'
83479 ') =  'Y'
83480  THEN 
83481 
83482    --
83483    XLA_AE_LINES_PKG.SetNewLine;
83484 
83485    p_balance_type_code          := l_balance_type_code;
83486    -- set the flag so later we will know whether the gain loss line needs to be created
83487    
83488    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
83489      p_actual_flag :='A';
83490    END IF;
83491 
83492    --
83493    -- bulk performance
83494    --
83495    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
83496                                       p_header_num   => 0); -- 4262811
83497    --
83498    -- set accounting line options
83499    --
83500    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
83501            p_natural_side_code          => 'C'
83502          , p_gain_or_loss_flag          => 'N'
83503          , p_gl_transfer_mode_code      => 'S'
83504          , p_acct_entry_type_code       => 'E'
83505          , p_switch_side_flag           => 'Y'
83506          , p_merge_duplicate_code       => 'A'
83507          );
83508    --
83509    l_acc_rev_natural_side_code := 'D';  -- 4262811
83510    -- 
83511    --
83512    -- set accounting line type info
83513    --
83514    xla_ae_lines_pkg.SetAcctLineType
83515       (p_component_type             => l_component_type
83516       ,p_event_type_code            => l_event_type_code
83517       ,p_line_definition_owner_code => l_line_definition_owner_code
83518       ,p_line_definition_code       => l_line_definition_code
83519       ,p_accounting_line_code       => l_component_code
83520       ,p_accounting_line_type_code  => l_component_type_code
83521       ,p_accounting_line_appl_id    => l_component_appl_id
83522       ,p_amb_context_code           => l_amb_context_code
83523       ,p_entity_code                => l_entity_code
83524       ,p_event_class_code           => l_event_class_code);
83525    --
83526    -- set accounting class
83527    --
83528    xla_ae_lines_pkg.SetAcctClass(
83529            p_accounting_class_code  => 'IPV'
83530          , p_ae_header_id           => l_ae_header_id
83531          );
83532 
83533    --
83537                       'IPV';
83534    -- set rounding class
83535    --
83536    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
83538 
83539    --
83540    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
83541    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
83542    --
83543    -- bulk performance
83544    --
83545    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
83546 
83547    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
83548       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
83549 
83550    -- 4955764
83551    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83552       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
83553 
83554    -- 4458381 Public Sector Enh
83555    
83556    --
83557    -- set accounting attributes for the line type
83558    --
83559    l_entered_amt_idx := 23;
83560    l_accted_amt_idx  := 25;
83561    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
83562    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
83563    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
83564    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
83565    l_rec_acct_attrs.array_num_value(2)  := 
83566 xla_ae_sources_pkg.GetSystemSourceNum(
83567    p_source_code           => 'XLA_EVENT_APPL_ID'
83568  , p_source_type_code      => 'Y'
83569  , p_source_application_id =>  602
83570 );
83571    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
83572    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
83573    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
83574    l_rec_acct_attrs.array_char_value(4)  := 
83575 xla_ae_sources_pkg.GetSystemSourceChar(
83576    p_source_code           => 'XLA_ENTITY_CODE'
83577  , p_source_type_code      => 'Y'
83578  , p_source_application_id =>  602
83579 );
83580    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
83581    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
83582    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
83583    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
83584    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
83585    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
83586    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
83587    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
83588    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
83589    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
83590    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
83591    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
83592    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
83593    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
83594    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
83595    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
83596    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
83597    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
83598    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
83599    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
83600    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
83601    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
83602    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
83603    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
83604    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
83605    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
83606    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
83607    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
83608    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
83609    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
83610    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
83611    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
83612    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
83613    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
83614    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
83615    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
83616    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
83617    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
83618    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
83619    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
83620    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
83621    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
83622    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
83623    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
83624    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
83625    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
83626    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
83627    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
83628    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
83629    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
83630    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
83631    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
83632    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
83633    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
83637    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
83634    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
83635    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
83636    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
83638    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
83639    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
83640    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
83641    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
83642    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
83643    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
83644    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
83645    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
83646    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
83647    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
83648 
83649    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
83650    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
83651 
83652    ---------------------------------------------------------------------------------------------------------------
83653    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
83654    ---------------------------------------------------------------------------------------------------------------
83655    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
83656 
83657    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83658    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83659 
83660    IF xla_accounting_cache_pkg.GetValueChar
83661          (p_source_code         => 'LEDGER_CATEGORY_CODE'
83662          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
83663    AND l_bflow_method_code = 'PRIOR_ENTRY'
83664 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
83665    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
83666          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
83667        )
83668    THEN
83669          xla_ae_lines_pkg.BflowUpgEntry
83670            (p_business_method_code    => l_bflow_method_code
83671            ,p_business_class_code     => l_bflow_class_code
83672            ,p_balance_type            => l_balance_type_code);
83673    ELSE
83674       NULL;
83675 XLA_AE_LINES_PKG.business_flow_validation(
83676                                 p_business_method_code     => l_bflow_method_code
83677                                ,p_business_class_code      => l_bflow_class_code
83678                                ,p_inherit_description_flag => l_inherit_desc_flag);
83679    END IF;
83680 
83681    --
83682    -- call analytical criteria
83683    --
83684    -- Inherited Analytical Criteria for business flow method of Prior Entry.
83685    --
83686    -- call description
83687    --
83688    -- No description or it is inherited.
83689    --
83690    -- call ADRs
83691    -- Bug 4922099
83692    --
83693    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83694         (NVL(l_actual_upg_option, 'N') = 'O') OR
83695         (NVL(l_enc_upg_option, 'N') = 'O')
83696       )
83697    THEN
83698    NULL;
83699    --
83700    --
83701    
83702    --
83703    --
83704    END IF;
83705    --
83706    -- Bug 4922099
83707    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
83708           (NVL(l_enc_upg_option, 'N') = 'O')
83709         ) AND
83710         (l_bflow_method_code = 'PRIOR_ENTRY')
83711       )
83712    THEN
83713       IF
83714       --
83715       1 = 1
83716       --
83717       THEN
83718       xla_accounting_err_pkg.build_message
83719                                     (p_appli_s_name            => 'XLA'
83720                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83721                                     ,p_token_1                 => 'LINE_NUMBER'
83722                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
83723                                     ,p_token_2                 => 'LINE_TYPE_NAME'
83724                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
83725                                                                              l_component_type
83726                                                                             ,l_component_code
83727                                                                             ,l_component_type_code
83728                                                                             ,l_component_appl_id
83729                                                                             ,l_amb_context_code
83730                                                                             ,l_entity_code
83731                                                                             ,l_event_class_code
83732                                                                            )
83733                                     ,p_token_3                 => 'OWNER'
83734                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
83735                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
83736                                                                           ,p_lookup_code    => l_component_type_code
83737                                                                          )
83738                                     ,p_token_4                 => 'PRODUCT_NAME'
83742                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
83739                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
83740                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
83741                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
83743                                     ,p_ae_header_id            =>  NULL
83744                                        );
83745 
83746         IF (C_LEVEL_ERROR>= g_log_level) THEN
83747                  trace
83748                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83749                       ,p_level    => C_LEVEL_ERROR
83750                       ,p_module   => l_log_module);
83751         END IF;
83752       END IF;
83753    END IF;
83754    --
83755    --
83756    ------------------------------------------------------------------------------------------------
83757    -- 4219869 Business Flow
83758    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
83759    -- Prior Entry.  Currently, the following code is always generated.
83760    ------------------------------------------------------------------------------------------------
83761    -- No ValidateCurrentLine for business flow method of Prior Entry
83762 
83763    ------------------------------------------------------------------------------------
83764    -- 4219869 Business Flow
83765    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
83766    ------------------------------------------------------------------------------------
83767    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83768 
83769    ----------------------------------------------------------------------------------
83770    -- 4219869 Business Flow
83771    -- Update journal entry status -- Need to generate this within IF <condition>
83772    ----------------------------------------------------------------------------------
83773    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83774          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
83775          ,p_balance_type_code => l_balance_type_code
83776          );
83777 
83778    -------------------------------------------------------------------------------------------
83779    -- 4262811 - Generate the Accrual Reversal lines
83780    -------------------------------------------------------------------------------------------
83781    BEGIN
83782       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
83783                               (g_array_event(p_event_id).array_value_num('header_index'));
83784       IF l_acc_rev_flag IS NULL THEN
83785          l_acc_rev_flag := 'N';
83786       END IF;
83787    EXCEPTION
83788       WHEN OTHERS THEN
83789          l_acc_rev_flag := 'N';
83790    END;
83791    --
83792    IF (l_acc_rev_flag = 'Y') THEN
83793 
83794        -- 4645092  ------------------------------------------------------------------------------
83795        -- To allow MPA report to determine if it should generate report process
83796        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
83797        ------------------------------------------------------------------------------------------
83798 
83799        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
83800        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
83801    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
83802    -- call ADRs
83803    -- Bug 4922099
83804    --
83805    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83806         (NVL(l_actual_upg_option, 'N') = 'O') OR
83807         (NVL(l_enc_upg_option, 'N') = 'O')
83808       )
83809    THEN
83810    NULL;
83811    --
83812    --
83813    
83814    --
83815    --
83816    END IF;
83817 
83818        --
83819        -- Update the line information that should be overwritten
83820        --
83821        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
83822                                          p_header_num   => 1);
83823        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
83824 
83825        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
83826 
83827        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
83828           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
83829        END IF;
83830 
83831       --
83832       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
83833       --
83834       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
83835           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
83836       ELSE
83837           ---------------------------------------------------------------------------------------------------
83838           -- 4262811a Switch Sign
83839           ---------------------------------------------------------------------------------------------------
83840           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
83841           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83842                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83843           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83844                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83848 
83845           -- 5132302
83846           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
83847                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83849       END IF;
83850 
83851       -- 4955764
83852       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83853       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
83854 
83855 
83856       XLA_AE_LINES_PKG.ValidateCurrentLine;
83857       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83858 
83859       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83860                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
83861                ,p_balance_type_code => l_balance_type_code);
83862 
83863    END IF;
83864 
83865    -----------------------------------------------------------------------------------------
83866    -- 4262811 Multiperiod Accounting
83867    -----------------------------------------------------------------------------------------
83868      -- No MPA option is assigned.
83869 
83870 
83871 END IF;
83872 END IF;
83873 --
83874 
83875 --
83876 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83877    trace
83878       (p_msg      => 'END of AcctLineType_151'
83879       ,p_level    => C_LEVEL_PROCEDURE
83880       ,p_module   => l_log_module);
83881 END IF;
83882 --
83883 EXCEPTION
83884   WHEN xla_exceptions_pkg.application_exception THEN
83885       RAISE;
83886   WHEN OTHERS THEN
83887        xla_exceptions_pkg.raise_message
83888            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_151');
83889 END AcctLineType_151;
83890 --
83891 
83892 ---------------------------------------
83893 --
83894 -- PRIVATE FUNCTION
83895 --         AcctLineType_152
83896 --
83897 ---------------------------------------
83898 PROCEDURE AcctLineType_152 (
83899   p_application_id        IN NUMBER
83900  ,p_event_id              IN NUMBER
83901  ,p_calculate_acctd_flag  IN VARCHAR2
83902  ,p_calculate_g_l_flag    IN VARCHAR2
83903  ,p_actual_flag           IN OUT VARCHAR2
83904  ,p_balance_type_code     OUT VARCHAR2
83905  ,p_gain_or_loss_ref      OUT VARCHAR2
83906  
83907 --Invoice Distribution Description
83908  , p_source_1            IN VARCHAR2
83909 --Invoice Distribution Ledger Amount
83910  , p_source_9            IN NUMBER
83911 --Invoice Distribution Account
83912  , p_source_18            IN NUMBER
83913 --Invoice Distribution Type
83914  , p_source_21            IN VARCHAR2
83915  , p_source_21_meaning    IN VARCHAR2
83916 --Accounting Reversal Indicator
83917  , p_source_41            IN VARCHAR2
83918 --Distribution Link Type
83919  , p_source_43            IN VARCHAR2
83920 --Allocation to Main Distribution Identifier
83921  , p_source_45            IN NUMBER
83922 --Invoice Identifier
83923  , p_source_46            IN NUMBER
83924 --Invoice Distribution Identifier
83925  , p_source_52            IN NUMBER
83926 --Payables Encumbrance Upgrade Credit Account
83927  , p_source_53            IN NUMBER
83928 --Payables Encumbrance Upgrade Credit Amount
83929  , p_source_54            IN NUMBER
83930 --Invoice Currency Code
83931  , p_source_55            IN VARCHAR2
83932 --Payables Encumbrance Upgrade Credit Base Amount
83933  , p_source_56            IN NUMBER
83934 --Payables Encumbrance Upgrade Debit Account
83935  , p_source_57            IN NUMBER
83936 --Payables Encumbrance Upgrade Debit Amount
83937  , p_source_58            IN NUMBER
83938 --Payables Encumbrance Upgrade Debit Base Amount
83939  , p_source_59            IN NUMBER
83940 --Payables Encumbrance Upgrade Option
83941  , p_source_60            IN VARCHAR2
83942 --Invoice Distribution Amount
83943  , p_source_61            IN NUMBER
83944 --Deferred Accounting End Date
83945  , p_source_65            IN DATE
83946 --Deferred Accounting Option
83947  , p_source_66            IN VARCHAR2
83948 --Deferred Accounting Start Date
83949  , p_source_67            IN DATE
83950 --Override Accounted Amount Indicator
83951  , p_source_68            IN VARCHAR2
83952  , p_source_68_meaning    IN VARCHAR2
83953 --Invoice Supplier Identifier
83954  , p_source_69            IN NUMBER
83955 --Invoice Supplier Site Identifier
83956  , p_source_70            IN NUMBER
83957 --Third Party Type
83958  , p_source_71            IN VARCHAR2
83959 --Parent Reversal Identifier
83960  , p_source_72            IN NUMBER
83961 --Invoice Distribution Tax Line Identifier
83962  , p_source_74            IN NUMBER
83963 --Invoice Distribution Tax Distribution Identifier from Tax
83964  , p_source_75            IN NUMBER
83965 --Invoice Distribution Summary Tax Line Identifier
83966  , p_source_76            IN NUMBER
83967 --Payables Upgrade Credit Encumbrance Type Identifier
83968  , p_source_77            IN NUMBER
83969 --Payables Upgrade Debit Encumbrance Type Identifier
83970  , p_source_78            IN NUMBER
83971 --Business Flow Accounts Payable Application Identifier
83972  , p_source_79            IN NUMBER
83973 --Business Flow Invoice Distribution Type
83974  , p_source_80            IN VARCHAR2
83975 --Business Flow Invoice Entity Code
83976  , p_source_81            IN VARCHAR2
83977 --Business Flow Invoice Distribution Identifier
83978  , p_source_82            IN NUMBER
83979 --Business Flow Invoice Identifier
83980  , p_source_83            IN NUMBER
83981 --Accrue on Receipt Option
83982  , p_source_84            IN VARCHAR2
83983  , p_source_84_meaning    IN VARCHAR2
83984 --Invoice Exchange Date
83985  , p_source_136            IN DATE
83989  , p_source_138            IN VARCHAR2
83986 --Invoice Exchange Rate
83987  , p_source_137            IN NUMBER
83988 --Invoice Exchange Rate Type
83990 )
83991 IS
83992 
83993 l_component_type              VARCHAR2(80);
83994 l_component_code              VARCHAR2(30);
83995 l_component_type_code         VARCHAR2(1);
83996 l_component_appl_id           INTEGER;
83997 l_amb_context_code            VARCHAR2(30);
83998 l_entity_code                 VARCHAR2(30);
83999 l_event_class_code            VARCHAR2(30);
84000 l_ae_header_id                NUMBER;
84001 l_event_type_code             VARCHAR2(30);
84002 l_line_definition_code        VARCHAR2(30);
84003 l_line_definition_owner_code  VARCHAR2(1);
84004 --
84005 -- adr variables
84006 l_segment                     VARCHAR2(30);
84007 l_ccid                        NUMBER;
84008 l_adr_transaction_coa_id      NUMBER;
84009 l_adr_accounting_coa_id       NUMBER;
84010 l_adr_flexfield_segment_code  VARCHAR2(30);
84011 l_adr_flex_value_set_id       NUMBER;
84012 l_adr_value_type_code         VARCHAR2(30);
84013 l_adr_value_combination_id    NUMBER;
84014 l_adr_value_segment_code      VARCHAR2(30);
84015 
84016 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
84017 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
84018 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
84019 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
84020 
84021 -- 4262811 Variables ------------------------------------------------------------------------------------------
84022 l_entered_amt_idx             NUMBER;
84023 l_accted_amt_idx              NUMBER;
84024 l_acc_rev_flag                VARCHAR2(1);
84025 l_accrual_line_num            NUMBER;
84026 l_tmp_amt                     NUMBER;
84027 l_acc_rev_natural_side_code   VARCHAR2(1);
84028 
84029 l_num_entries                 NUMBER;
84030 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
84031 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
84032 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
84033 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
84034 l_recog_line_1                NUMBER;
84035 l_recog_line_2                NUMBER;
84036 
84037 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
84038 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
84039 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
84040 
84041 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
84042 
84043 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
84044 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
84045 
84046 ---------------------------------------------------------------------------------------------------------------
84047 
84048 
84049 --
84050 -- bulk performance
84051 --
84052 l_balance_type_code           VARCHAR2(1);
84053 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
84054 l_log_module                  VARCHAR2(240);
84055 
84056 --
84057 -- Upgrade strategy
84058 --
84059 l_actual_upg_option           VARCHAR2(1);
84060 l_enc_upg_option           VARCHAR2(1);
84061 
84062 --
84063 BEGIN
84064 --
84065 IF g_log_enabled THEN
84066       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_152';
84067 END IF;
84068 --
84069 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84070 
84071       trace
84072          (p_msg      => 'BEGIN of AcctLineType_152'
84073          ,p_level    => C_LEVEL_PROCEDURE
84074          ,p_module   => l_log_module);
84075 
84076 END IF;
84077 --
84078 l_component_type             := 'AMB_JLT';
84079 l_component_code             := 'AP_INV_PRICE_VAR_DM';
84080 l_component_type_code        := 'S';
84081 l_component_appl_id          :=  200;
84082 l_amb_context_code           := 'DEFAULT';
84083 l_entity_code                := 'AP_INVOICES';
84084 l_event_class_code           := 'DEBIT MEMOS';
84085 l_event_type_code            := 'DEBIT MEMOS_ALL';
84086 l_line_definition_owner_code := 'S';
84087 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
84088 --
84089 l_balance_type_code          := 'A';
84090 l_segment                     := NULL;
84091 l_ccid                        := NULL;
84092 l_adr_transaction_coa_id      := NULL;
84093 l_adr_accounting_coa_id       := NULL;
84094 l_adr_flexfield_segment_code  := NULL;
84095 l_adr_flex_value_set_id       := NULL;
84096 l_adr_value_type_code         := NULL;
84097 l_adr_value_combination_id    := NULL;
84098 l_adr_value_segment_code      := NULL;
84099 
84100 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
84101 l_bflow_class_code           := '';    -- 4219869 Business Flow
84102 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
84103 l_budgetary_control_flag     := 'N';
84104 
84105 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
84106 l_bflow_applied_to_amt       := NULL; -- 5132302
84107 l_entered_amt_idx            := NULL;          -- 4262811
84108 l_accted_amt_idx             := NULL;          -- 4262811
84109 l_acc_rev_flag               := NULL;          -- 4262811
84110 l_accrual_line_num           := NULL;          -- 4262811
84111 l_tmp_amt                    := NULL;          -- 4262811
84112 --
84113  
84114 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
84115     l_balance_type_code <> 'B' THEN
84116 IF NVL(p_source_21,'
84117 ') =  'IPV' AND 
84118 NVL(p_source_84,'
84119 ') =  'Y'
84120  THEN 
84121 
84125    p_balance_type_code          := l_balance_type_code;
84122    --
84123    XLA_AE_LINES_PKG.SetNewLine;
84124 
84126    -- set the flag so later we will know whether the gain loss line needs to be created
84127    
84128    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
84129      p_actual_flag :='A';
84130    END IF;
84131 
84132    --
84133    -- bulk performance
84134    --
84135    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
84136                                       p_header_num   => 0); -- 4262811
84137    --
84138    -- set accounting line options
84139    --
84140    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
84141            p_natural_side_code          => 'D'
84142          , p_gain_or_loss_flag          => 'N'
84143          , p_gl_transfer_mode_code      => 'S'
84144          , p_acct_entry_type_code       => 'A'
84145          , p_switch_side_flag           => 'Y'
84146          , p_merge_duplicate_code       => 'A'
84147          );
84148    --
84149    l_acc_rev_natural_side_code := 'C';  -- 4262811
84150    -- 
84151    --
84152    -- set accounting line type info
84153    --
84154    xla_ae_lines_pkg.SetAcctLineType
84155       (p_component_type             => l_component_type
84156       ,p_event_type_code            => l_event_type_code
84157       ,p_line_definition_owner_code => l_line_definition_owner_code
84158       ,p_line_definition_code       => l_line_definition_code
84159       ,p_accounting_line_code       => l_component_code
84160       ,p_accounting_line_type_code  => l_component_type_code
84161       ,p_accounting_line_appl_id    => l_component_appl_id
84162       ,p_amb_context_code           => l_amb_context_code
84163       ,p_entity_code                => l_entity_code
84164       ,p_event_class_code           => l_event_class_code);
84165    --
84166    -- set accounting class
84167    --
84168    xla_ae_lines_pkg.SetAcctClass(
84169            p_accounting_class_code  => 'IPV'
84170          , p_ae_header_id           => l_ae_header_id
84171          );
84172 
84173    --
84174    -- set rounding class
84175    --
84176    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
84177                       'IPV';
84178 
84179    --
84180    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
84181    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
84182    --
84183    -- bulk performance
84184    --
84185    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
84186 
84187    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
84188       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
84189 
84190    -- 4955764
84191    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84192       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
84193 
84194    -- 4458381 Public Sector Enh
84195    
84196    --
84197    -- set accounting attributes for the line type
84198    --
84199    l_entered_amt_idx := 23;
84200    l_accted_amt_idx  := 28;
84201    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
84202    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
84203    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
84204    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
84205    l_rec_acct_attrs.array_num_value(2)  := 
84206 xla_ae_sources_pkg.GetSystemSourceNum(
84207    p_source_code           => 'XLA_EVENT_APPL_ID'
84208  , p_source_type_code      => 'Y'
84209  , p_source_application_id =>  602
84210 );
84211    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
84212    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
84213    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
84214    l_rec_acct_attrs.array_char_value(4)  := 
84215 xla_ae_sources_pkg.GetSystemSourceChar(
84216    p_source_code           => 'XLA_ENTITY_CODE'
84217  , p_source_type_code      => 'Y'
84218  , p_source_application_id =>  602
84219 );
84220    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
84221    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
84222    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
84223    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
84224    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
84225    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
84226    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
84227    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
84228    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
84229    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
84230    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
84231    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
84232    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
84233    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
84234    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
84235    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
84236    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
84237    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
84238    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
84242    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
84239    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
84240    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
84241    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
84243    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
84244    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
84245    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
84246    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
84247    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
84248    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
84249    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
84250    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
84251    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
84252    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
84253    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
84254    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
84255    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
84256    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
84257    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
84258    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
84259    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
84260    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
84261    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
84262    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
84263    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
84264    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
84265    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
84266    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
84267    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
84268    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
84269    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
84270    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
84271    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
84272    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
84273    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
84274    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
84275    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
84276    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
84277    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
84278    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
84279    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
84280    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
84281    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
84282    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
84283    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
84284    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
84285    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
84286    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
84287    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
84288    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
84289    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
84290    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
84291    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
84292    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
84293    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
84294    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
84295    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
84296 
84297    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
84298    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
84299 
84300    ---------------------------------------------------------------------------------------------------------------
84304 
84301    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
84302    ---------------------------------------------------------------------------------------------------------------
84303    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
84305    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84306    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84307 
84308    IF xla_accounting_cache_pkg.GetValueChar
84309          (p_source_code         => 'LEDGER_CATEGORY_CODE'
84310          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
84311    AND l_bflow_method_code = 'PRIOR_ENTRY'
84312 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
84313    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
84314          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
84315        )
84316    THEN
84317          xla_ae_lines_pkg.BflowUpgEntry
84318            (p_business_method_code    => l_bflow_method_code
84319            ,p_business_class_code     => l_bflow_class_code
84320            ,p_balance_type            => l_balance_type_code);
84321    ELSE
84322       NULL;
84323 -- No business flow processing for business flow method of NONE.
84324    END IF;
84325 
84326    --
84327    -- call analytical criteria
84328    --
84329    
84330    --
84331    -- call description
84332    --
84333    
84334 xla_ae_lines_pkg.SetLineDescription(
84335    p_ae_header_id => l_ae_header_id
84336   ,p_description  => Description_2 (
84337      p_application_id         => p_application_id
84338    , p_ae_header_id           => l_ae_header_id 
84339 , p_source_1 => p_source_1
84340    )
84341 );
84342 
84343 
84344    --
84345    -- call ADRs
84346    -- Bug 4922099
84347    --
84348    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84349         (NVL(l_actual_upg_option, 'N') = 'O') OR
84350         (NVL(l_enc_upg_option, 'N') = 'O')
84351       )
84352    THEN
84353    NULL;
84354    --
84355    --
84356    
84357   l_ccid := AcctDerRule_32(
84358            p_application_id           => p_application_id
84359          , p_ae_header_id             => l_ae_header_id 
84360 , p_source_18 => p_source_18
84361          , x_transaction_coa_id       => l_adr_transaction_coa_id
84362          , x_accounting_coa_id        => l_adr_accounting_coa_id
84363          , x_value_type_code          => l_adr_value_type_code
84364          , p_side                     => 'NA'
84365    );
84366 
84367    xla_ae_lines_pkg.set_ccid(
84368     p_code_combination_id          => l_ccid
84369   , p_value_type_code              => l_adr_value_type_code
84370   , p_transaction_coa_id           => l_adr_transaction_coa_id
84371   , p_accounting_coa_id            => l_adr_accounting_coa_id
84372   , p_adr_code                     => 'AP_INVOICE_DIST'
84373   , p_adr_type_code                => 'S'
84374   , p_component_type               => l_component_type
84375   , p_component_code               => l_component_code
84376   , p_component_type_code          => l_component_type_code
84377   , p_component_appl_id            => l_component_appl_id
84378   , p_amb_context_code             => l_amb_context_code
84379   , p_side                         => 'NA'
84380   );
84381 
84382 
84383    --
84384    --
84385    END IF;
84386    --
84387    -- Bug 4922099
84388    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
84389           (NVL(l_enc_upg_option, 'N') = 'O')
84390         ) AND
84391         (l_bflow_method_code = 'PRIOR_ENTRY')
84392       )
84393    THEN
84394       IF
84395       --
84396       1 = 2
84397       --
84398       THEN
84399       xla_accounting_err_pkg.build_message
84400                                     (p_appli_s_name            => 'XLA'
84401                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84402                                     ,p_token_1                 => 'LINE_NUMBER'
84403                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
84404                                     ,p_token_2                 => 'LINE_TYPE_NAME'
84405                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
84406                                                                              l_component_type
84407                                                                             ,l_component_code
84408                                                                             ,l_component_type_code
84409                                                                             ,l_component_appl_id
84410                                                                             ,l_amb_context_code
84411                                                                             ,l_entity_code
84412                                                                             ,l_event_class_code
84413                                                                            )
84414                                     ,p_token_3                 => 'OWNER'
84415                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
84416                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
84417                                                                           ,p_lookup_code    => l_component_type_code
84418                                                                          )
84419                                     ,p_token_4                 => 'PRODUCT_NAME'
84423                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
84420                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
84421                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
84422                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
84424                                     ,p_ae_header_id            =>  NULL
84425                                        );
84426 
84427         IF (C_LEVEL_ERROR>= g_log_level) THEN
84428                  trace
84429                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84430                       ,p_level    => C_LEVEL_ERROR
84431                       ,p_module   => l_log_module);
84432         END IF;
84433       END IF;
84434    END IF;
84435    --
84436    --
84437    ------------------------------------------------------------------------------------------------
84438    -- 4219869 Business Flow
84439    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
84440    -- Prior Entry.  Currently, the following code is always generated.
84441    ------------------------------------------------------------------------------------------------
84442    XLA_AE_LINES_PKG.ValidateCurrentLine;
84443 
84444    ------------------------------------------------------------------------------------
84445    -- 4219869 Business Flow
84446    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
84447    ------------------------------------------------------------------------------------
84448    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84449 
84450    ----------------------------------------------------------------------------------
84451    -- 4219869 Business Flow
84452    -- Update journal entry status -- Need to generate this within IF <condition>
84453    ----------------------------------------------------------------------------------
84454    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84455          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
84456          ,p_balance_type_code => l_balance_type_code
84457          );
84458 
84459    -------------------------------------------------------------------------------------------
84460    -- 4262811 - Generate the Accrual Reversal lines
84461    -------------------------------------------------------------------------------------------
84462    BEGIN
84463       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
84464                               (g_array_event(p_event_id).array_value_num('header_index'));
84465       IF l_acc_rev_flag IS NULL THEN
84466          l_acc_rev_flag := 'N';
84467       END IF;
84468    EXCEPTION
84469       WHEN OTHERS THEN
84470          l_acc_rev_flag := 'N';
84471    END;
84472    --
84473    IF (l_acc_rev_flag = 'Y') THEN
84474 
84475        -- 4645092  ------------------------------------------------------------------------------
84476        -- To allow MPA report to determine if it should generate report process
84477        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
84478        ------------------------------------------------------------------------------------------
84479 
84480        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
84481        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
84482    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
84483    -- call ADRs
84484    -- Bug 4922099
84485    --
84486    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84487         (NVL(l_actual_upg_option, 'N') = 'O') OR
84488         (NVL(l_enc_upg_option, 'N') = 'O')
84489       )
84490    THEN
84491    NULL;
84492    --
84493    --
84494    
84495   l_ccid := AcctDerRule_32(
84496            p_application_id           => p_application_id
84497          , p_ae_header_id             => l_ae_header_id 
84498 , p_source_18 => p_source_18
84499          , x_transaction_coa_id       => l_adr_transaction_coa_id
84500          , x_accounting_coa_id        => l_adr_accounting_coa_id
84501          , x_value_type_code          => l_adr_value_type_code
84502          , p_side                     => 'NA'
84503    );
84504 
84505    xla_ae_lines_pkg.set_ccid(
84506     p_code_combination_id          => l_ccid
84507   , p_value_type_code              => l_adr_value_type_code
84508   , p_transaction_coa_id           => l_adr_transaction_coa_id
84509   , p_accounting_coa_id            => l_adr_accounting_coa_id
84510   , p_adr_code                     => 'AP_INVOICE_DIST'
84511   , p_adr_type_code                => 'S'
84512   , p_component_type               => l_component_type
84513   , p_component_code               => l_component_code
84514   , p_component_type_code          => l_component_type_code
84515   , p_component_appl_id            => l_component_appl_id
84516   , p_amb_context_code             => l_amb_context_code
84517   , p_side                         => 'NA'
84518   );
84519 
84520 
84521    --
84522    --
84523    END IF;
84524 
84525        --
84526        -- Update the line information that should be overwritten
84527        --
84528        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
84529                                          p_header_num   => 1);
84530        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
84531 
84532        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
84533 
84534        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
84535           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
84539       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
84536        END IF;
84537 
84538       --
84540       --
84541       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
84542           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
84543       ELSE
84544           ---------------------------------------------------------------------------------------------------
84545           -- 4262811a Switch Sign
84546           ---------------------------------------------------------------------------------------------------
84547           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
84548           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84549                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84550           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84551                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84552           -- 5132302
84553           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
84554                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84555 
84556       END IF;
84557 
84558       -- 4955764
84559       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84560       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
84561 
84562 
84563       XLA_AE_LINES_PKG.ValidateCurrentLine;
84564       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84565 
84566       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84567                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
84568                ,p_balance_type_code => l_balance_type_code);
84569 
84570    END IF;
84571 
84572    -----------------------------------------------------------------------------------------
84573    -- 4262811 Multiperiod Accounting
84574    -----------------------------------------------------------------------------------------
84575      -- No MPA option is assigned.
84576 
84577 
84578 END IF;
84579 END IF;
84580 --
84581 
84582 --
84583 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84584    trace
84585       (p_msg      => 'END of AcctLineType_152'
84586       ,p_level    => C_LEVEL_PROCEDURE
84587       ,p_module   => l_log_module);
84588 END IF;
84589 --
84590 EXCEPTION
84591   WHEN xla_exceptions_pkg.application_exception THEN
84592       RAISE;
84593   WHEN OTHERS THEN
84594        xla_exceptions_pkg.raise_message
84595            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_152');
84596 END AcctLineType_152;
84597 --
84598 
84599 ---------------------------------------
84600 --
84601 -- PRIVATE FUNCTION
84602 --         AcctLineType_153
84603 --
84604 ---------------------------------------
84605 PROCEDURE AcctLineType_153 (
84606   p_application_id        IN NUMBER
84607  ,p_event_id              IN NUMBER
84608  ,p_calculate_acctd_flag  IN VARCHAR2
84609  ,p_calculate_g_l_flag    IN VARCHAR2
84610  ,p_actual_flag           IN OUT VARCHAR2
84611  ,p_balance_type_code     OUT VARCHAR2
84612  ,p_gain_or_loss_ref      OUT VARCHAR2
84613  
84614 --Invoice Distribution Type
84615  , p_source_21            IN VARCHAR2
84616  , p_source_21_meaning    IN VARCHAR2
84617 --Accounting Reversal Indicator
84618  , p_source_41            IN VARCHAR2
84619 --Distribution Link Type
84620  , p_source_43            IN VARCHAR2
84621 --Allocation to Main Distribution Identifier
84622  , p_source_45            IN NUMBER
84623 --Invoice Identifier
84624  , p_source_46            IN NUMBER
84625 --Invoice Distribution Identifier
84626  , p_source_52            IN NUMBER
84627 --Payables Encumbrance Upgrade Credit Account
84628  , p_source_53            IN NUMBER
84629 --Payables Encumbrance Upgrade Credit Amount
84630  , p_source_54            IN NUMBER
84631 --Invoice Currency Code
84632  , p_source_55            IN VARCHAR2
84633 --Payables Encumbrance Upgrade Credit Base Amount
84634  , p_source_56            IN NUMBER
84635 --Payables Encumbrance Upgrade Debit Account
84636  , p_source_57            IN NUMBER
84637 --Payables Encumbrance Upgrade Debit Amount
84638  , p_source_58            IN NUMBER
84639 --Payables Encumbrance Upgrade Debit Base Amount
84640  , p_source_59            IN NUMBER
84641 --Payables Encumbrance Upgrade Option
84642  , p_source_60            IN VARCHAR2
84643 --Deferred Accounting End Date
84644  , p_source_65            IN DATE
84645 --Deferred Accounting Option
84646  , p_source_66            IN VARCHAR2
84647 --Deferred Accounting Start Date
84648  , p_source_67            IN DATE
84649 --Override Accounted Amount Indicator
84650  , p_source_68            IN VARCHAR2
84651  , p_source_68_meaning    IN VARCHAR2
84652 --Third Party Type
84653  , p_source_71            IN VARCHAR2
84654 --Parent Reversal Identifier
84655  , p_source_72            IN NUMBER
84656 --Invoice Distribution Tax Line Identifier
84657  , p_source_74            IN NUMBER
84658 --Invoice Distribution Tax Distribution Identifier from Tax
84659  , p_source_75            IN NUMBER
84660 --Invoice Distribution Summary Tax Line Identifier
84661  , p_source_76            IN NUMBER
84662 --Payables Upgrade Credit Encumbrance Type Identifier
84663  , p_source_77            IN NUMBER
84664 --Payables Upgrade Debit Encumbrance Type Identifier
84665  , p_source_78            IN NUMBER
84669  , p_source_80            IN VARCHAR2
84666 --Business Flow Accounts Payable Application Identifier
84667  , p_source_79            IN NUMBER
84668 --Business Flow Invoice Distribution Type
84670 --Business Flow Invoice Entity Code
84671  , p_source_81            IN VARCHAR2
84672 --Business Flow Invoice Distribution Identifier
84673  , p_source_82            IN NUMBER
84674 --Business Flow Invoice Identifier
84675  , p_source_83            IN NUMBER
84676 --Purchasing Encumbrance Option
84677  , p_source_86            IN VARCHAR2
84678  , p_source_86_meaning    IN VARCHAR2
84679 --Invoice Encumbered Option
84680  , p_source_87            IN VARCHAR2
84681  , p_source_87_meaning    IN VARCHAR2
84682 --Invoice Distribution Encumbrance Amount
84683  , p_source_143            IN NUMBER
84684 --Invoice Distribution Encumbrance Ledger Amount
84685  , p_source_144            IN NUMBER
84686 )
84687 IS
84688 
84689 l_component_type              VARCHAR2(80);
84690 l_component_code              VARCHAR2(30);
84691 l_component_type_code         VARCHAR2(1);
84692 l_component_appl_id           INTEGER;
84693 l_amb_context_code            VARCHAR2(30);
84694 l_entity_code                 VARCHAR2(30);
84695 l_event_class_code            VARCHAR2(30);
84696 l_ae_header_id                NUMBER;
84697 l_event_type_code             VARCHAR2(30);
84698 l_line_definition_code        VARCHAR2(30);
84699 l_line_definition_owner_code  VARCHAR2(1);
84700 --
84701 -- adr variables
84702 l_segment                     VARCHAR2(30);
84703 l_ccid                        NUMBER;
84704 l_adr_transaction_coa_id      NUMBER;
84705 l_adr_accounting_coa_id       NUMBER;
84706 l_adr_flexfield_segment_code  VARCHAR2(30);
84707 l_adr_flex_value_set_id       NUMBER;
84708 l_adr_value_type_code         VARCHAR2(30);
84709 l_adr_value_combination_id    NUMBER;
84710 l_adr_value_segment_code      VARCHAR2(30);
84711 
84712 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
84713 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
84714 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
84715 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
84716 
84717 -- 4262811 Variables ------------------------------------------------------------------------------------------
84718 l_entered_amt_idx             NUMBER;
84719 l_accted_amt_idx              NUMBER;
84720 l_acc_rev_flag                VARCHAR2(1);
84721 l_accrual_line_num            NUMBER;
84722 l_tmp_amt                     NUMBER;
84723 l_acc_rev_natural_side_code   VARCHAR2(1);
84724 
84725 l_num_entries                 NUMBER;
84726 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
84727 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
84728 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
84729 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
84730 l_recog_line_1                NUMBER;
84731 l_recog_line_2                NUMBER;
84732 
84733 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
84734 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
84735 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
84736 
84737 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
84738 
84739 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
84740 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
84741 
84742 ---------------------------------------------------------------------------------------------------------------
84743 
84744 
84745 --
84746 -- bulk performance
84747 --
84748 l_balance_type_code           VARCHAR2(1);
84749 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
84750 l_log_module                  VARCHAR2(240);
84751 
84752 --
84753 -- Upgrade strategy
84754 --
84755 l_actual_upg_option           VARCHAR2(1);
84756 l_enc_upg_option           VARCHAR2(1);
84757 
84758 --
84759 BEGIN
84760 --
84761 IF g_log_enabled THEN
84762       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_153';
84763 END IF;
84764 --
84765 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84766 
84767       trace
84768          (p_msg      => 'BEGIN of AcctLineType_153'
84769          ,p_level    => C_LEVEL_PROCEDURE
84770          ,p_module   => l_log_module);
84771 
84772 END IF;
84773 --
84774 l_component_type             := 'AMB_JLT';
84775 l_component_code             := 'AP_INV_PRICE_VAR_DM_ENC';
84776 l_component_type_code        := 'S';
84777 l_component_appl_id          :=  200;
84778 l_amb_context_code           := 'DEFAULT';
84779 l_entity_code                := 'AP_INVOICES';
84780 l_event_class_code           := 'DEBIT MEMOS';
84781 l_event_type_code            := 'DEBIT MEMOS_ALL';
84782 l_line_definition_owner_code := 'S';
84783 l_line_definition_code       := 'ENC_REV_DM_ALL';
84784 --
84785 l_balance_type_code          := 'E';
84786 l_segment                     := NULL;
84787 l_ccid                        := NULL;
84788 l_adr_transaction_coa_id      := NULL;
84789 l_adr_accounting_coa_id       := NULL;
84790 l_adr_flexfield_segment_code  := NULL;
84791 l_adr_flex_value_set_id       := NULL;
84792 l_adr_value_type_code         := NULL;
84793 l_adr_value_combination_id    := NULL;
84794 l_adr_value_segment_code      := NULL;
84795 
84796 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
84800 
84797 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
84798 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
84799 l_budgetary_control_flag     := 'N';
84801 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
84805 l_acc_rev_flag               := NULL;          -- 4262811
84802 l_bflow_applied_to_amt       := NULL; -- 5132302
84803 l_entered_amt_idx            := NULL;          -- 4262811
84804 l_accted_amt_idx             := NULL;          -- 4262811
84806 l_accrual_line_num           := NULL;          -- 4262811
84807 l_tmp_amt                    := NULL;          -- 4262811
84808 --
84809  
84810 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
84811     l_balance_type_code <> 'B' THEN
84812 IF NVL(p_source_21,'
84813 ') =  'IPV' AND 
84814 NVL(p_source_86,'
84815 ') =  'Y' AND 
84816 NVL(p_source_87,'
84817 ') =  'Y'
84818  THEN 
84819 
84820    --
84821    XLA_AE_LINES_PKG.SetNewLine;
84822 
84823    p_balance_type_code          := l_balance_type_code;
84824    -- set the flag so later we will know whether the gain loss line needs to be created
84825    
84826    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
84827      p_actual_flag :='A';
84828    END IF;
84829 
84830    --
84831    -- bulk performance
84832    --
84833    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
84834                                       p_header_num   => 0); -- 4262811
84835    --
84836    -- set accounting line options
84837    --
84838    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
84839            p_natural_side_code          => 'C'
84840          , p_gain_or_loss_flag          => 'N'
84841          , p_gl_transfer_mode_code      => 'S'
84842          , p_acct_entry_type_code       => 'E'
84843          , p_switch_side_flag           => 'Y'
84844          , p_merge_duplicate_code       => 'A'
84845          );
84846    --
84847    l_acc_rev_natural_side_code := 'D';  -- 4262811
84848    -- 
84849    --
84850    -- set accounting line type info
84851    --
84852    xla_ae_lines_pkg.SetAcctLineType
84853       (p_component_type             => l_component_type
84854       ,p_event_type_code            => l_event_type_code
84855       ,p_line_definition_owner_code => l_line_definition_owner_code
84856       ,p_line_definition_code       => l_line_definition_code
84857       ,p_accounting_line_code       => l_component_code
84858       ,p_accounting_line_type_code  => l_component_type_code
84859       ,p_accounting_line_appl_id    => l_component_appl_id
84860       ,p_amb_context_code           => l_amb_context_code
84861       ,p_entity_code                => l_entity_code
84862       ,p_event_class_code           => l_event_class_code);
84863    --
84864    -- set accounting class
84865    --
84866    xla_ae_lines_pkg.SetAcctClass(
84867            p_accounting_class_code  => 'IPV'
84868          , p_ae_header_id           => l_ae_header_id
84869          );
84870 
84871    --
84872    -- set rounding class
84873    --
84874    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
84875                       'IPV';
84876 
84877    --
84878    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
84879    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
84880    --
84881    -- bulk performance
84882    --
84883    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
84884 
84885    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
84886       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
84887 
84888    -- 4955764
84889    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84890       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
84891 
84892    -- 4458381 Public Sector Enh
84893    
84894    --
84895    -- set accounting attributes for the line type
84896    --
84897    l_entered_amt_idx := 23;
84898    l_accted_amt_idx  := 25;
84899    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
84900    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
84901    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
84902    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
84903    l_rec_acct_attrs.array_num_value(2)  := 
84904 xla_ae_sources_pkg.GetSystemSourceNum(
84905    p_source_code           => 'XLA_EVENT_APPL_ID'
84906  , p_source_type_code      => 'Y'
84907  , p_source_application_id =>  602
84908 );
84912    l_rec_acct_attrs.array_char_value(4)  := 
84909    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
84910    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
84911    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
84913 xla_ae_sources_pkg.GetSystemSourceChar(
84914    p_source_code           => 'XLA_ENTITY_CODE'
84915  , p_source_type_code      => 'Y'
84916  , p_source_application_id =>  602
84917 );
84918    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
84919    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
84920    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
84921    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
84922    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
84923    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
84924    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
84925    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
84926    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
84927    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
84928    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
84929    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
84930    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
84931    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
84932    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
84933    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
84934    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
84935    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
84936    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
84937    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
84938    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
84939    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
84940    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
84941    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
84942    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
84946    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
84943    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
84944    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
84945    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
84947    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
84948    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
84949    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
84950    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
84951    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
84952    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
84953    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
84954    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
84955    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
84956    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
84957    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
84958    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
84959    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
84960    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
84961    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
84962    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
84963    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
84964    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
84965    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
84966    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
84967    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
84968    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
84969    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
84970    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
84971    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
84972    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
84973    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
84974    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
84975    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
84976    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
84977    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
84978    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
84979    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
84980    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
84981    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
84982    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
84983    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
84984 
84988    ---------------------------------------------------------------------------------------------------------------
84985    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
84986    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
84987 
84989    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
84990    ---------------------------------------------------------------------------------------------------------------
84991    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
84992 
84993    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84994    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84995 
84996    IF xla_accounting_cache_pkg.GetValueChar
84997          (p_source_code         => 'LEDGER_CATEGORY_CODE'
84998          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
84999    AND l_bflow_method_code = 'PRIOR_ENTRY'
85000 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
85001    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
85002          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
85003        )
85004    THEN
85005          xla_ae_lines_pkg.BflowUpgEntry
85006            (p_business_method_code    => l_bflow_method_code
85007            ,p_business_class_code     => l_bflow_class_code
85008            ,p_balance_type            => l_balance_type_code);
85009    ELSE
85010       NULL;
85011 XLA_AE_LINES_PKG.business_flow_validation(
85012                                 p_business_method_code     => l_bflow_method_code
85013                                ,p_business_class_code      => l_bflow_class_code
85014                                ,p_inherit_description_flag => l_inherit_desc_flag);
85015    END IF;
85016 
85017    --
85018    -- call analytical criteria
85019    --
85020    -- Inherited Analytical Criteria for business flow method of Prior Entry.
85021    --
85022    -- call description
85023    --
85024    -- No description or it is inherited.
85025    --
85026    -- call ADRs
85027    -- Bug 4922099
85028    --
85029    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85030         (NVL(l_actual_upg_option, 'N') = 'O') OR
85031         (NVL(l_enc_upg_option, 'N') = 'O')
85032       )
85033    THEN
85034    NULL;
85035    --
85036    --
85037    
85038    --
85039    --
85040    END IF;
85041    --
85042    -- Bug 4922099
85043    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
85044           (NVL(l_enc_upg_option, 'N') = 'O')
85045         ) AND
85046         (l_bflow_method_code = 'PRIOR_ENTRY')
85047       )
85048    THEN
85049       IF
85050       --
85051       1 = 1
85052       --
85053       THEN
85054       xla_accounting_err_pkg.build_message
85055                                     (p_appli_s_name            => 'XLA'
85056                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85057                                     ,p_token_1                 => 'LINE_NUMBER'
85058                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
85059                                     ,p_token_2                 => 'LINE_TYPE_NAME'
85060                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
85061                                                                              l_component_type
85062                                                                             ,l_component_code
85063                                                                             ,l_component_type_code
85064                                                                             ,l_component_appl_id
85065                                                                             ,l_amb_context_code
85069                                     ,p_token_3                 => 'OWNER'
85066                                                                             ,l_entity_code
85067                                                                             ,l_event_class_code
85068                                                                            )
85070                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
85071                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
85072                                                                           ,p_lookup_code    => l_component_type_code
85073                                                                          )
85074                                     ,p_token_4                 => 'PRODUCT_NAME'
85078                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
85075                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
85076                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
85077                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
85079                                     ,p_ae_header_id            =>  NULL
85080                                        );
85081 
85082         IF (C_LEVEL_ERROR>= g_log_level) THEN
85083                  trace
85084                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85085                       ,p_level    => C_LEVEL_ERROR
85086                       ,p_module   => l_log_module);
85087         END IF;
85088       END IF;
85089    END IF;
85090    --
85091    --
85092    ------------------------------------------------------------------------------------------------
85093    -- 4219869 Business Flow
85094    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
85095    -- Prior Entry.  Currently, the following code is always generated.
85096    ------------------------------------------------------------------------------------------------
85097    -- No ValidateCurrentLine for business flow method of Prior Entry
85098 
85099    ------------------------------------------------------------------------------------
85100    -- 4219869 Business Flow
85101    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
85102    ------------------------------------------------------------------------------------
85103    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85104 
85105    ----------------------------------------------------------------------------------
85106    -- 4219869 Business Flow
85107    -- Update journal entry status -- Need to generate this within IF <condition>
85108    ----------------------------------------------------------------------------------
85109    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85110          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
85111          ,p_balance_type_code => l_balance_type_code
85112          );
85113 
85114    -------------------------------------------------------------------------------------------
85115    -- 4262811 - Generate the Accrual Reversal lines
85116    -------------------------------------------------------------------------------------------
85117    BEGIN
85118       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
85119                               (g_array_event(p_event_id).array_value_num('header_index'));
85120       IF l_acc_rev_flag IS NULL THEN
85121          l_acc_rev_flag := 'N';
85122       END IF;
85123    EXCEPTION
85124       WHEN OTHERS THEN
85125          l_acc_rev_flag := 'N';
85126    END;
85127    --
85128    IF (l_acc_rev_flag = 'Y') THEN
85129 
85130        -- 4645092  ------------------------------------------------------------------------------
85131        -- To allow MPA report to determine if it should generate report process
85132        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
85133        ------------------------------------------------------------------------------------------
85134 
85135        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
85136        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
85137    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
85138    -- call ADRs
85139    -- Bug 4922099
85140    --
85141    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85142         (NVL(l_actual_upg_option, 'N') = 'O') OR
85143         (NVL(l_enc_upg_option, 'N') = 'O')
85144       )
85145    THEN
85146    NULL;
85147    --
85148    --
85149    
85150    --
85151    --
85152    END IF;
85153 
85154        --
85155        -- Update the line information that should be overwritten
85156        --
85157        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
85158                                          p_header_num   => 1);
85159        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
85160 
85161        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
85162 
85163        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
85164           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
85165        END IF;
85166 
85167       --
85168       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
85169       --
85170       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
85171           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
85172       ELSE
85173           ---------------------------------------------------------------------------------------------------
85174           -- 4262811a Switch Sign
85175           ---------------------------------------------------------------------------------------------------
85176           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
85177           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85178                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85179           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85185       END IF;
85180                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85181           -- 5132302
85182           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
85183                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85184 
85186 
85187       -- 4955764
85188       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85189       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
85190 
85191 
85192       XLA_AE_LINES_PKG.ValidateCurrentLine;
85193       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85194 
85195       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85196                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
85197                ,p_balance_type_code => l_balance_type_code);
85198 
85199    END IF;
85200 
85201    -----------------------------------------------------------------------------------------
85202    -- 4262811 Multiperiod Accounting
85203    -----------------------------------------------------------------------------------------
85204      -- No MPA option is assigned.
85205 
85206 
85207 END IF;
85208 END IF;
85209 --
85210 
85211 --
85212 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85213    trace
85214       (p_msg      => 'END of AcctLineType_153'
85215       ,p_level    => C_LEVEL_PROCEDURE
85216       ,p_module   => l_log_module);
85217 END IF;
85218 --
85219 EXCEPTION
85220   WHEN xla_exceptions_pkg.application_exception THEN
85221       RAISE;
85222   WHEN OTHERS THEN
85223        xla_exceptions_pkg.raise_message
85224            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_153');
85225 END AcctLineType_153;
85226 --
85227 
85228 ---------------------------------------
85229 --
85230 -- PRIVATE FUNCTION
85231 --         AcctLineType_154
85232 --
85233 ---------------------------------------
85234 PROCEDURE AcctLineType_154 (
85235   p_application_id        IN NUMBER
85236  ,p_event_id              IN NUMBER
85237  ,p_calculate_acctd_flag  IN VARCHAR2
85238  ,p_calculate_g_l_flag    IN VARCHAR2
85239  ,p_actual_flag           IN OUT VARCHAR2
85240  ,p_balance_type_code     OUT VARCHAR2
85241  ,p_gain_or_loss_ref      OUT VARCHAR2
85242  
85243 --Invoice Distribution Description
85244  , p_source_1            IN VARCHAR2
85245 --Invoice Distribution Ledger Amount
85246  , p_source_9            IN NUMBER
85247 --Invoice Distribution Account
85248  , p_source_18            IN NUMBER
85249 --Invoice Distribution Type
85250  , p_source_21            IN VARCHAR2
85251  , p_source_21_meaning    IN VARCHAR2
85252 --Accounting Reversal Indicator
85253  , p_source_41            IN VARCHAR2
85254 --Distribution Link Type
85255  , p_source_43            IN VARCHAR2
85256 --Allocation to Main Distribution Identifier
85257  , p_source_45            IN NUMBER
85258 --Invoice Identifier
85259  , p_source_46            IN NUMBER
85260 --Invoice Distribution Identifier
85261  , p_source_52            IN NUMBER
85262 --Payables Encumbrance Upgrade Credit Account
85263  , p_source_53            IN NUMBER
85264 --Payables Encumbrance Upgrade Credit Amount
85265  , p_source_54            IN NUMBER
85266 --Invoice Currency Code
85267  , p_source_55            IN VARCHAR2
85268 --Payables Encumbrance Upgrade Credit Base Amount
85269  , p_source_56            IN NUMBER
85270 --Payables Encumbrance Upgrade Debit Account
85271  , p_source_57            IN NUMBER
85272 --Payables Encumbrance Upgrade Debit Amount
85273  , p_source_58            IN NUMBER
85274 --Payables Encumbrance Upgrade Debit Base Amount
85275  , p_source_59            IN NUMBER
85276 --Payables Encumbrance Upgrade Option
85277  , p_source_60            IN VARCHAR2
85278 --Invoice Distribution Amount
85279  , p_source_61            IN NUMBER
85280 --Deferred Accounting End Date
85281  , p_source_65            IN DATE
85282 --Deferred Accounting Option
85283  , p_source_66            IN VARCHAR2
85284 --Deferred Accounting Start Date
85285  , p_source_67            IN DATE
85286 --Override Accounted Amount Indicator
85287  , p_source_68            IN VARCHAR2
85288  , p_source_68_meaning    IN VARCHAR2
85289 --Invoice Supplier Identifier
85290  , p_source_69            IN NUMBER
85291 --Invoice Supplier Site Identifier
85292  , p_source_70            IN NUMBER
85293 --Third Party Type
85294  , p_source_71            IN VARCHAR2
85298  , p_source_73            IN NUMBER
85295 --Parent Reversal Identifier
85296  , p_source_72            IN NUMBER
85297 --Invoice Distribution Statistical Amount
85299 --Invoice Distribution Tax Line Identifier
85300  , p_source_74            IN NUMBER
85301 --Invoice Distribution Tax Distribution Identifier from Tax
85302  , p_source_75            IN NUMBER
85303 --Invoice Distribution Summary Tax Line Identifier
85304  , p_source_76            IN NUMBER
85305 --Payables Upgrade Credit Encumbrance Type Identifier
85306  , p_source_77            IN NUMBER
85307 --Payables Upgrade Debit Encumbrance Type Identifier
85308  , p_source_78            IN NUMBER
85309 --Business Flow Accounts Payable Application Identifier
85310  , p_source_79            IN NUMBER
85311 --Business Flow Invoice Distribution Type
85312  , p_source_80            IN VARCHAR2
85313 --Business Flow Invoice Entity Code
85314  , p_source_81            IN VARCHAR2
85315 --Business Flow Invoice Distribution Identifier
85316  , p_source_82            IN NUMBER
85317 --Business Flow Invoice Identifier
85318  , p_source_83            IN NUMBER
85319 --Accrue on Receipt Option
85320  , p_source_84            IN VARCHAR2
85321  , p_source_84_meaning    IN VARCHAR2
85322 --Invoice Exchange Date
85323  , p_source_136            IN DATE
85324 --Invoice Exchange Rate
85325  , p_source_137            IN NUMBER
85326 --Invoice Exchange Rate Type
85327  , p_source_138            IN VARCHAR2
85328 )
85329 IS
85330 
85331 l_component_type              VARCHAR2(80);
85332 l_component_code              VARCHAR2(30);
85333 l_component_type_code         VARCHAR2(1);
85334 l_component_appl_id           INTEGER;
85335 l_amb_context_code            VARCHAR2(30);
85336 l_entity_code                 VARCHAR2(30);
85337 l_event_class_code            VARCHAR2(30);
85338 l_ae_header_id                NUMBER;
85339 l_event_type_code             VARCHAR2(30);
85340 l_line_definition_code        VARCHAR2(30);
85341 l_line_definition_owner_code  VARCHAR2(1);
85342 --
85343 -- adr variables
85344 l_segment                     VARCHAR2(30);
85345 l_ccid                        NUMBER;
85346 l_adr_transaction_coa_id      NUMBER;
85347 l_adr_accounting_coa_id       NUMBER;
85348 l_adr_flexfield_segment_code  VARCHAR2(30);
85349 l_adr_flex_value_set_id       NUMBER;
85353 
85350 l_adr_value_type_code         VARCHAR2(30);
85351 l_adr_value_combination_id    NUMBER;
85352 l_adr_value_segment_code      VARCHAR2(30);
85354 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
85355 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
85356 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
85357 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
85358 
85359 -- 4262811 Variables ------------------------------------------------------------------------------------------
85360 l_entered_amt_idx             NUMBER;
85361 l_accted_amt_idx              NUMBER;
85362 l_acc_rev_flag                VARCHAR2(1);
85363 l_accrual_line_num            NUMBER;
85364 l_tmp_amt                     NUMBER;
85365 l_acc_rev_natural_side_code   VARCHAR2(1);
85366 
85367 l_num_entries                 NUMBER;
85368 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
85369 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
85370 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
85371 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
85372 l_recog_line_1                NUMBER;
85373 l_recog_line_2                NUMBER;
85374 
85375 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
85376 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
85377 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
85378 
85379 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
85380 
85381 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
85382 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
85383 
85384 ---------------------------------------------------------------------------------------------------------------
85385 
85386 
85387 --
85388 -- bulk performance
85389 --
85390 l_balance_type_code           VARCHAR2(1);
85391 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
85392 l_log_module                  VARCHAR2(240);
85393 
85394 --
85395 -- Upgrade strategy
85396 --
85397 l_actual_upg_option           VARCHAR2(1);
85398 l_enc_upg_option           VARCHAR2(1);
85399 
85400 --
85401 BEGIN
85402 --
85403 IF g_log_enabled THEN
85404       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_154';
85405 END IF;
85406 --
85410          (p_msg      => 'BEGIN of AcctLineType_154'
85407 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85408 
85409       trace
85411          ,p_level    => C_LEVEL_PROCEDURE
85412          ,p_module   => l_log_module);
85413 
85414 END IF;
85415 --
85416 l_component_type             := 'AMB_JLT';
85417 l_component_code             := 'AP_INV_PRICE_VAR_INV';
85418 l_component_type_code        := 'S';
85419 l_component_appl_id          :=  200;
85420 l_amb_context_code           := 'DEFAULT';
85421 l_entity_code                := 'AP_INVOICES';
85422 l_event_class_code           := 'INVOICES';
85423 l_event_type_code            := 'INVOICES_ALL';
85424 l_line_definition_owner_code := 'S';
85425 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
85426 --
85427 l_balance_type_code          := 'A';
85428 l_segment                     := NULL;
85429 l_ccid                        := NULL;
85430 l_adr_transaction_coa_id      := NULL;
85431 l_adr_accounting_coa_id       := NULL;
85432 l_adr_flexfield_segment_code  := NULL;
85433 l_adr_flex_value_set_id       := NULL;
85434 l_adr_value_type_code         := NULL;
85435 l_adr_value_combination_id    := NULL;
85436 l_adr_value_segment_code      := NULL;
85437 
85438 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
85439 l_bflow_class_code           := '';    -- 4219869 Business Flow
85440 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
85441 l_budgetary_control_flag     := 'N';
85442 
85443 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
85444 l_bflow_applied_to_amt       := NULL; -- 5132302
85445 l_entered_amt_idx            := NULL;          -- 4262811
85446 l_accted_amt_idx             := NULL;          -- 4262811
85447 l_acc_rev_flag               := NULL;          -- 4262811
85448 l_accrual_line_num           := NULL;          -- 4262811
85449 l_tmp_amt                    := NULL;          -- 4262811
85450 --
85451  
85452 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
85453     l_balance_type_code <> 'B' THEN
85454 IF NVL(p_source_21,'
85455 ') =  'IPV' AND 
85456 NVL(p_source_84,'
85457 ') =  'Y'
85458  THEN 
85459 
85460    --
85461    XLA_AE_LINES_PKG.SetNewLine;
85462 
85463    p_balance_type_code          := l_balance_type_code;
85464    -- set the flag so later we will know whether the gain loss line needs to be created
85465    
85466    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
85467      p_actual_flag :='A';
85468    END IF;
85469 
85470    --
85471    -- bulk performance
85472    --
85473    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
85474                                       p_header_num   => 0); -- 4262811
85475    --
85476    -- set accounting line options
85477    --
85478    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
85479            p_natural_side_code          => 'D'
85480          , p_gain_or_loss_flag          => 'N'
85481          , p_gl_transfer_mode_code      => 'S'
85482          , p_acct_entry_type_code       => 'A'
85483          , p_switch_side_flag           => 'Y'
85484          , p_merge_duplicate_code       => 'A'
85485          );
85486    --
85487    l_acc_rev_natural_side_code := 'C';  -- 4262811
85488    -- 
85489    --
85490    -- set accounting line type info
85491    --
85492    xla_ae_lines_pkg.SetAcctLineType
85493       (p_component_type             => l_component_type
85494       ,p_event_type_code            => l_event_type_code
85495       ,p_line_definition_owner_code => l_line_definition_owner_code
85496       ,p_line_definition_code       => l_line_definition_code
85497       ,p_accounting_line_code       => l_component_code
85498       ,p_accounting_line_type_code  => l_component_type_code
85499       ,p_accounting_line_appl_id    => l_component_appl_id
85500       ,p_amb_context_code           => l_amb_context_code
85501       ,p_entity_code                => l_entity_code
85502       ,p_event_class_code           => l_event_class_code);
85503    --
85504    -- set accounting class
85505    --
85506    xla_ae_lines_pkg.SetAcctClass(
85510 
85507            p_accounting_class_code  => 'IPV'
85508          , p_ae_header_id           => l_ae_header_id
85509          );
85511    --
85512    -- set rounding class
85513    --
85514    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
85515                       'IPV';
85516 
85517    --
85518    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
85519    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
85520    --
85521    -- bulk performance
85522    --
85523    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
85524 
85525    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
85526       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
85527 
85528    -- 4955764
85529    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85530       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
85531 
85532    -- 4458381 Public Sector Enh
85533    
85534    --
85535    -- set accounting attributes for the line type
85536    --
85537    l_entered_amt_idx := 24;
85538    l_accted_amt_idx  := 29;
85539    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
85540    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
85541    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
85542    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
85543    l_rec_acct_attrs.array_num_value(2)  := 
85544 xla_ae_sources_pkg.GetSystemSourceNum(
85545    p_source_code           => 'XLA_EVENT_APPL_ID'
85546  , p_source_type_code      => 'Y'
85547  , p_source_application_id =>  602
85548 );
85549    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
85550    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
85551    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
85552    l_rec_acct_attrs.array_char_value(4)  := 
85553 xla_ae_sources_pkg.GetSystemSourceChar(
85554    p_source_code           => 'XLA_ENTITY_CODE'
85555  , p_source_type_code      => 'Y'
85556  , p_source_application_id =>  602
85557 );
85558    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
85559    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
85560    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
85561    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
85562    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
85563    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
85564    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
85565    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
85566    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
85567    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
85568    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
85569    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
85570    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
85571    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
85572    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
85573    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
85574    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
85575    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
85576    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
85577    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
85578    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
85579    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
85580    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
85581    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
85582    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
85583    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
85584    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
85585    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
85586    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
85587    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
85588    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
85589    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
85590    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
85591    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
85592    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
85593    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
85594    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
85595    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
85596    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
85597    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
85598    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
85599    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
85600    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
85601    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
85602    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
85603    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
85604    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
85605    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
85606    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
85607    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
85611    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
85608    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
85609    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
85610    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
85612    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
85613    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
85614    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
85615    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
85616    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
85617    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
85618    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
85619    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
85620    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
85621    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
85622    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
85623    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
85627    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
85624    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
85625    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
85626    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
85628    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
85629    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
85630    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
85631    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
85632    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
85633    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
85634    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
85635    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
85636    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
85637    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
85638 
85639    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
85640    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
85641 
85642    ---------------------------------------------------------------------------------------------------------------
85643    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
85644    ---------------------------------------------------------------------------------------------------------------
85645    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
85646 
85647    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85648    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85649 
85650    IF xla_accounting_cache_pkg.GetValueChar
85651          (p_source_code         => 'LEDGER_CATEGORY_CODE'
85652          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
85653    AND l_bflow_method_code = 'PRIOR_ENTRY'
85654 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
85655    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
85656          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
85657        )
85658    THEN
85659          xla_ae_lines_pkg.BflowUpgEntry
85660            (p_business_method_code    => l_bflow_method_code
85661            ,p_business_class_code     => l_bflow_class_code
85662            ,p_balance_type            => l_balance_type_code);
85663    ELSE
85664       NULL;
85665 -- No business flow processing for business flow method of NONE.
85666    END IF;
85667 
85668    --
85669    -- call analytical criteria
85670    --
85671    
85672    --
85673    -- call description
85674    --
85675    
85676 xla_ae_lines_pkg.SetLineDescription(
85677    p_ae_header_id => l_ae_header_id
85678   ,p_description  => Description_2 (
85679      p_application_id         => p_application_id
85680    , p_ae_header_id           => l_ae_header_id 
85681 , p_source_1 => p_source_1
85682    )
85683 );
85684 
85685 
85686    --
85687    -- call ADRs
85688    -- Bug 4922099
85689    --
85690    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85691         (NVL(l_actual_upg_option, 'N') = 'O') OR
85692         (NVL(l_enc_upg_option, 'N') = 'O')
85693       )
85694    THEN
85695    NULL;
85696    --
85697    --
85698    
85699   l_ccid := AcctDerRule_32(
85700            p_application_id           => p_application_id
85701          , p_ae_header_id             => l_ae_header_id 
85702 , p_source_18 => p_source_18
85703          , x_transaction_coa_id       => l_adr_transaction_coa_id
85704          , x_accounting_coa_id        => l_adr_accounting_coa_id
85705          , x_value_type_code          => l_adr_value_type_code
85709    xla_ae_lines_pkg.set_ccid(
85706          , p_side                     => 'NA'
85707    );
85708 
85710     p_code_combination_id          => l_ccid
85711   , p_value_type_code              => l_adr_value_type_code
85712   , p_transaction_coa_id           => l_adr_transaction_coa_id
85713   , p_accounting_coa_id            => l_adr_accounting_coa_id
85714   , p_adr_code                     => 'AP_INVOICE_DIST'
85715   , p_adr_type_code                => 'S'
85716   , p_component_type               => l_component_type
85717   , p_component_code               => l_component_code
85718   , p_component_type_code          => l_component_type_code
85719   , p_component_appl_id            => l_component_appl_id
85720   , p_amb_context_code             => l_amb_context_code
85721   , p_side                         => 'NA'
85722   );
85723 
85724 
85725    --
85726    --
85727    END IF;
85728    --
85729    -- Bug 4922099
85730    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
85731           (NVL(l_enc_upg_option, 'N') = 'O')
85732         ) AND
85733         (l_bflow_method_code = 'PRIOR_ENTRY')
85734       )
85735    THEN
85736       IF
85737       --
85738       1 = 2
85739       --
85740       THEN
85741       xla_accounting_err_pkg.build_message
85742                                     (p_appli_s_name            => 'XLA'
85743                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85744                                     ,p_token_1                 => 'LINE_NUMBER'
85745                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
85746                                     ,p_token_2                 => 'LINE_TYPE_NAME'
85747                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
85748                                                                              l_component_type
85749                                                                             ,l_component_code
85750                                                                             ,l_component_type_code
85751                                                                             ,l_component_appl_id
85752                                                                             ,l_amb_context_code
85753                                                                             ,l_entity_code
85754                                                                             ,l_event_class_code
85755                                                                            )
85756                                     ,p_token_3                 => 'OWNER'
85757                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
85758                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
85762                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
85759                                                                           ,p_lookup_code    => l_component_type_code
85760                                                                          )
85761                                     ,p_token_4                 => 'PRODUCT_NAME'
85763                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
85764                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
85765                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
85766                                     ,p_ae_header_id            =>  NULL
85767                                        );
85768 
85769         IF (C_LEVEL_ERROR>= g_log_level) THEN
85770                  trace
85771                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85772                       ,p_level    => C_LEVEL_ERROR
85773                       ,p_module   => l_log_module);
85774         END IF;
85775       END IF;
85776    END IF;
85777    --
85778    --
85779    ------------------------------------------------------------------------------------------------
85780    -- 4219869 Business Flow
85781    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
85782    -- Prior Entry.  Currently, the following code is always generated.
85783    ------------------------------------------------------------------------------------------------
85784    XLA_AE_LINES_PKG.ValidateCurrentLine;
85785 
85786    ------------------------------------------------------------------------------------
85787    -- 4219869 Business Flow
85788    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
85789    ------------------------------------------------------------------------------------
85790    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85791 
85795    ----------------------------------------------------------------------------------
85792    ----------------------------------------------------------------------------------
85793    -- 4219869 Business Flow
85794    -- Update journal entry status -- Need to generate this within IF <condition>
85796    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85797          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
85798          ,p_balance_type_code => l_balance_type_code
85799          );
85800 
85801    -------------------------------------------------------------------------------------------
85802    -- 4262811 - Generate the Accrual Reversal lines
85803    -------------------------------------------------------------------------------------------
85804    BEGIN
85805       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
85806                               (g_array_event(p_event_id).array_value_num('header_index'));
85807       IF l_acc_rev_flag IS NULL THEN
85808          l_acc_rev_flag := 'N';
85809       END IF;
85810    EXCEPTION
85811       WHEN OTHERS THEN
85812          l_acc_rev_flag := 'N';
85813    END;
85814    --
85815    IF (l_acc_rev_flag = 'Y') THEN
85816 
85817        -- 4645092  ------------------------------------------------------------------------------
85818        -- To allow MPA report to determine if it should generate report process
85819        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
85820        ------------------------------------------------------------------------------------------
85821 
85822        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
85823        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
85824    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
85825    -- call ADRs
85826    -- Bug 4922099
85827    --
85828    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85829         (NVL(l_actual_upg_option, 'N') = 'O') OR
85830         (NVL(l_enc_upg_option, 'N') = 'O')
85831       )
85832    THEN
85833    NULL;
85834    --
85835    --
85836    
85837   l_ccid := AcctDerRule_32(
85838            p_application_id           => p_application_id
85839          , p_ae_header_id             => l_ae_header_id 
85840 , p_source_18 => p_source_18
85841          , x_transaction_coa_id       => l_adr_transaction_coa_id
85842          , x_accounting_coa_id        => l_adr_accounting_coa_id
85843          , x_value_type_code          => l_adr_value_type_code
85844          , p_side                     => 'NA'
85845    );
85846 
85847    xla_ae_lines_pkg.set_ccid(
85848     p_code_combination_id          => l_ccid
85849   , p_value_type_code              => l_adr_value_type_code
85850   , p_transaction_coa_id           => l_adr_transaction_coa_id
85851   , p_accounting_coa_id            => l_adr_accounting_coa_id
85852   , p_adr_code                     => 'AP_INVOICE_DIST'
85853   , p_adr_type_code                => 'S'
85854   , p_component_type               => l_component_type
85855   , p_component_code               => l_component_code
85856   , p_component_type_code          => l_component_type_code
85857   , p_component_appl_id            => l_component_appl_id
85858   , p_amb_context_code             => l_amb_context_code
85859   , p_side                         => 'NA'
85860   );
85861 
85862 
85863    --
85864    --
85865    END IF;
85866 
85867        --
85868        -- Update the line information that should be overwritten
85869        --
85870        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
85871                                          p_header_num   => 1);
85872        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
85873 
85874        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
85875 
85876        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
85877           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
85878        END IF;
85879 
85880       --
85881       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
85882       --
85883       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
85884           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
85885       ELSE
85886           ---------------------------------------------------------------------------------------------------
85887           -- 4262811a Switch Sign
85888           ---------------------------------------------------------------------------------------------------
85892           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85889           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
85890           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85891                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85893                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85894           -- 5132302
85895           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
85896                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85897 
85898       END IF;
85899 
85900       -- 4955764
85901       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85902       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
85903 
85904 
85905       XLA_AE_LINES_PKG.ValidateCurrentLine;
85906       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85907 
85908       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85909                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
85910                ,p_balance_type_code => l_balance_type_code);
85911 
85912    END IF;
85913 
85914    -----------------------------------------------------------------------------------------
85915    -- 4262811 Multiperiod Accounting
85916    -----------------------------------------------------------------------------------------
85917      -- No MPA option is assigned.
85918 
85919 
85920 END IF;
85921 END IF;
85922 --
85923 
85924 --
85925 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85926    trace
85927       (p_msg      => 'END of AcctLineType_154'
85928       ,p_level    => C_LEVEL_PROCEDURE
85929       ,p_module   => l_log_module);
85930 END IF;
85931 --
85932 EXCEPTION
85933   WHEN xla_exceptions_pkg.application_exception THEN
85934       RAISE;
85935   WHEN OTHERS THEN
85936        xla_exceptions_pkg.raise_message
85937            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_154');
85938 END AcctLineType_154;
85939 --
85940 
85941 ---------------------------------------
85942 --
85943 -- PRIVATE FUNCTION
85944 --         AcctLineType_155
85945 --
85946 ---------------------------------------
85947 PROCEDURE AcctLineType_155 (
85948   p_application_id        IN NUMBER
85949  ,p_event_id              IN NUMBER
85950  ,p_calculate_acctd_flag  IN VARCHAR2
85951  ,p_calculate_g_l_flag    IN VARCHAR2
85952  ,p_actual_flag           IN OUT VARCHAR2
85953  ,p_balance_type_code     OUT VARCHAR2
85954  ,p_gain_or_loss_ref      OUT VARCHAR2
85955  
85956 --Invoice Distribution Type
85957  , p_source_21            IN VARCHAR2
85958  , p_source_21_meaning    IN VARCHAR2
85959 --Accounting Reversal Indicator
85960  , p_source_41            IN VARCHAR2
85961 --Distribution Link Type
85962  , p_source_43            IN VARCHAR2
85963 --Allocation to Main Distribution Identifier
85964  , p_source_45            IN NUMBER
85965 --Invoice Identifier
85966  , p_source_46            IN NUMBER
85967 --Invoice Distribution Identifier
85968  , p_source_52            IN NUMBER
85969 --Payables Encumbrance Upgrade Credit Account
85970  , p_source_53            IN NUMBER
85971 --Payables Encumbrance Upgrade Credit Amount
85972  , p_source_54            IN NUMBER
85973 --Invoice Currency Code
85974  , p_source_55            IN VARCHAR2
85975 --Payables Encumbrance Upgrade Credit Base Amount
85976  , p_source_56            IN NUMBER
85977 --Payables Encumbrance Upgrade Debit Account
85978  , p_source_57            IN NUMBER
85979 --Payables Encumbrance Upgrade Debit Amount
85980  , p_source_58            IN NUMBER
85981 --Payables Encumbrance Upgrade Debit Base Amount
85982  , p_source_59            IN NUMBER
85983 --Payables Encumbrance Upgrade Option
85984  , p_source_60            IN VARCHAR2
85985 --Invoice Distribution Amount
85986  , p_source_61            IN NUMBER
85987 --Deferred Accounting End Date
85988  , p_source_65            IN DATE
85989 --Deferred Accounting Option
85990  , p_source_66            IN VARCHAR2
85991 --Deferred Accounting Start Date
85992  , p_source_67            IN DATE
85993 --Override Accounted Amount Indicator
85994  , p_source_68            IN VARCHAR2
85995  , p_source_68_meaning    IN VARCHAR2
85996 --Third Party Type
85997  , p_source_71            IN VARCHAR2
85998 --Parent Reversal Identifier
85999  , p_source_72            IN NUMBER
86000 --Invoice Distribution Statistical Amount
86001  , p_source_73            IN NUMBER
86002 --Invoice Distribution Tax Line Identifier
86003  , p_source_74            IN NUMBER
86004 --Invoice Distribution Tax Distribution Identifier from Tax
86005  , p_source_75            IN NUMBER
86006 --Invoice Distribution Summary Tax Line Identifier
86007  , p_source_76            IN NUMBER
86008 --Payables Upgrade Credit Encumbrance Type Identifier
86009  , p_source_77            IN NUMBER
86010 --Payables Upgrade Debit Encumbrance Type Identifier
86011  , p_source_78            IN NUMBER
86012 --Business Flow Accounts Payable Application Identifier
86013  , p_source_79            IN NUMBER
86014 --Business Flow Invoice Distribution Type
86015  , p_source_80            IN VARCHAR2
86016 --Business Flow Invoice Entity Code
86017  , p_source_81            IN VARCHAR2
86018 --Business Flow Invoice Distribution Identifier
86019  , p_source_82            IN NUMBER
86020 --Business Flow Invoice Identifier
86021  , p_source_83            IN NUMBER
86025 --Invoice Encumbered Option
86022 --Purchasing Encumbrance Option
86023  , p_source_86            IN VARCHAR2
86024  , p_source_86_meaning    IN VARCHAR2
86026  , p_source_87            IN VARCHAR2
86027  , p_source_87_meaning    IN VARCHAR2
86028 --Invoice Distribution Encumbrance Amount
86029  , p_source_143            IN NUMBER
86030 --Invoice Distribution Encumbrance Ledger Amount
86031  , p_source_144            IN NUMBER
86032 )
86033 IS
86034 
86035 l_component_type              VARCHAR2(80);
86036 l_component_code              VARCHAR2(30);
86037 l_component_type_code         VARCHAR2(1);
86038 l_component_appl_id           INTEGER;
86039 l_amb_context_code            VARCHAR2(30);
86040 l_entity_code                 VARCHAR2(30);
86041 l_event_class_code            VARCHAR2(30);
86042 l_ae_header_id                NUMBER;
86043 l_event_type_code             VARCHAR2(30);
86044 l_line_definition_code        VARCHAR2(30);
86045 l_line_definition_owner_code  VARCHAR2(1);
86046 --
86047 -- adr variables
86048 l_segment                     VARCHAR2(30);
86049 l_ccid                        NUMBER;
86050 l_adr_transaction_coa_id      NUMBER;
86051 l_adr_accounting_coa_id       NUMBER;
86052 l_adr_flexfield_segment_code  VARCHAR2(30);
86053 l_adr_flex_value_set_id       NUMBER;
86054 l_adr_value_type_code         VARCHAR2(30);
86055 l_adr_value_combination_id    NUMBER;
86056 l_adr_value_segment_code      VARCHAR2(30);
86057 
86058 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
86059 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
86060 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
86061 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
86062 
86063 -- 4262811 Variables ------------------------------------------------------------------------------------------
86064 l_entered_amt_idx             NUMBER;
86065 l_accted_amt_idx              NUMBER;
86066 l_acc_rev_flag                VARCHAR2(1);
86067 l_accrual_line_num            NUMBER;
86068 l_tmp_amt                     NUMBER;
86069 l_acc_rev_natural_side_code   VARCHAR2(1);
86070 
86071 l_num_entries                 NUMBER;
86072 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
86073 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
86074 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
86075 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
86076 l_recog_line_1                NUMBER;
86077 l_recog_line_2                NUMBER;
86078 
86079 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
86080 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
86081 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
86082 
86083 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
86084 
86085 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
86086 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
86087 
86088 ---------------------------------------------------------------------------------------------------------------
86089 
86090 
86091 --
86092 -- bulk performance
86093 --
86094 l_balance_type_code           VARCHAR2(1);
86095 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
86096 l_log_module                  VARCHAR2(240);
86097 
86098 --
86099 -- Upgrade strategy
86100 --
86101 l_actual_upg_option           VARCHAR2(1);
86102 l_enc_upg_option           VARCHAR2(1);
86103 
86104 --
86105 BEGIN
86106 --
86107 IF g_log_enabled THEN
86108       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_155';
86109 END IF;
86110 --
86111 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86112 
86113       trace
86114          (p_msg      => 'BEGIN of AcctLineType_155'
86115          ,p_level    => C_LEVEL_PROCEDURE
86116          ,p_module   => l_log_module);
86117 
86118 END IF;
86119 --
86120 l_component_type             := 'AMB_JLT';
86121 l_component_code             := 'AP_INV_PRICE_VAR_INV_ENC';
86122 l_component_type_code        := 'S';
86123 l_component_appl_id          :=  200;
86124 l_amb_context_code           := 'DEFAULT';
86125 l_entity_code                := 'AP_INVOICES';
86126 l_event_class_code           := 'INVOICES';
86127 l_event_type_code            := 'INVOICES_ALL';
86128 l_line_definition_owner_code := 'S';
86129 l_line_definition_code       := 'ENC_REV_INVOICES_ALL';
86130 --
86131 l_balance_type_code          := 'E';
86132 l_segment                     := NULL;
86133 l_ccid                        := NULL;
86134 l_adr_transaction_coa_id      := NULL;
86135 l_adr_accounting_coa_id       := NULL;
86136 l_adr_flexfield_segment_code  := NULL;
86137 l_adr_flex_value_set_id       := NULL;
86138 l_adr_value_type_code         := NULL;
86139 l_adr_value_combination_id    := NULL;
86140 l_adr_value_segment_code      := NULL;
86141 
86142 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
86143 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
86144 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
86145 l_budgetary_control_flag     := 'N';
86146 
86147 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
86148 l_bflow_applied_to_amt       := NULL; -- 5132302
86149 l_entered_amt_idx            := NULL;          -- 4262811
86150 l_accted_amt_idx             := NULL;          -- 4262811
86151 l_acc_rev_flag               := NULL;          -- 4262811
86152 l_accrual_line_num           := NULL;          -- 4262811
86153 l_tmp_amt                    := NULL;          -- 4262811
86154 --
86155  
86159 ') =  'IPV' AND 
86156 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
86157     l_balance_type_code <> 'B' THEN
86158 IF NVL(p_source_21,'
86160 NVL(p_source_86,'
86161 ') =  'Y' AND 
86162 NVL(p_source_87,'
86163 ') =  'Y'
86164  THEN 
86165 
86166    --
86167    XLA_AE_LINES_PKG.SetNewLine;
86168 
86169    p_balance_type_code          := l_balance_type_code;
86170    -- set the flag so later we will know whether the gain loss line needs to be created
86171    
86172    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
86173      p_actual_flag :='A';
86174    END IF;
86175 
86176    --
86177    -- bulk performance
86178    --
86179    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
86180                                       p_header_num   => 0); -- 4262811
86181    --
86182    -- set accounting line options
86183    --
86184    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
86185            p_natural_side_code          => 'C'
86186          , p_gain_or_loss_flag          => 'N'
86187          , p_gl_transfer_mode_code      => 'S'
86188          , p_acct_entry_type_code       => 'E'
86189          , p_switch_side_flag           => 'Y'
86190          , p_merge_duplicate_code       => 'A'
86191          );
86192    --
86193    l_acc_rev_natural_side_code := 'D';  -- 4262811
86194    -- 
86195    --
86196    -- set accounting line type info
86197    --
86198    xla_ae_lines_pkg.SetAcctLineType
86199       (p_component_type             => l_component_type
86200       ,p_event_type_code            => l_event_type_code
86201       ,p_line_definition_owner_code => l_line_definition_owner_code
86202       ,p_line_definition_code       => l_line_definition_code
86203       ,p_accounting_line_code       => l_component_code
86204       ,p_accounting_line_type_code  => l_component_type_code
86208       ,p_event_class_code           => l_event_class_code);
86205       ,p_accounting_line_appl_id    => l_component_appl_id
86206       ,p_amb_context_code           => l_amb_context_code
86207       ,p_entity_code                => l_entity_code
86209    --
86210    -- set accounting class
86211    --
86212    xla_ae_lines_pkg.SetAcctClass(
86213            p_accounting_class_code  => 'IPV'
86214          , p_ae_header_id           => l_ae_header_id
86215          );
86216 
86217    --
86218    -- set rounding class
86219    --
86220    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
86221                       'IPV';
86222 
86223    --
86224    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
86225    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
86226    --
86227    -- bulk performance
86228    --
86229    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
86230 
86231    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
86232       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
86233 
86234    -- 4955764
86235    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86236       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
86237 
86238    -- 4458381 Public Sector Enh
86239    
86240    --
86241    -- set accounting attributes for the line type
86242    --
86243    l_entered_amt_idx := 24;
86244    l_accted_amt_idx  := 26;
86245    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
86246    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
86247    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
86248    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
86249    l_rec_acct_attrs.array_num_value(2)  := 
86250 xla_ae_sources_pkg.GetSystemSourceNum(
86251    p_source_code           => 'XLA_EVENT_APPL_ID'
86252  , p_source_type_code      => 'Y'
86253  , p_source_application_id =>  602
86254 );
86255    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
86256    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
86257    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
86258    l_rec_acct_attrs.array_char_value(4)  := 
86259 xla_ae_sources_pkg.GetSystemSourceChar(
86260    p_source_code           => 'XLA_ENTITY_CODE'
86261  , p_source_type_code      => 'Y'
86262  , p_source_application_id =>  602
86263 );
86264    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
86265    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
86269    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
86266    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
86267    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
86268    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
86270    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
86271    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
86272    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
86273    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
86274    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
86275    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
86276    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
86277    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
86278    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
86279    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
86280    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
86281    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
86282    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
86283    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
86284    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
86285    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
86286    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
86287    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
86288    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
86289    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
86290    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
86291    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
86292    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
86293    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
86294    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
86295    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
86296    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
86297    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
86298    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
86299    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
86300    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
86301    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
86302    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
86303    l_rec_acct_attrs.array_num_value(24)  := p_source_143;
86304    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
86305    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
86306    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
86307    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
86308    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
86309    l_rec_acct_attrs.array_date_value(27)  := p_source_65;
86310    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
86311    l_rec_acct_attrs.array_char_value(28)  := p_source_66;
86312    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
86313    l_rec_acct_attrs.array_date_value(29)  := p_source_67;
86314    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
86315    l_rec_acct_attrs.array_char_value(30)  := p_source_68;
86316    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
86317    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
86318    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
86319    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
86320    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
86321    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
86322    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
86323    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
86324    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
86328    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
86325    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
86326    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
86327    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
86329    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
86330    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
86331    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
86332    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
86333    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
86334 
86335    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
86336    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
86337 
86338    ---------------------------------------------------------------------------------------------------------------
86342 
86339    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
86340    ---------------------------------------------------------------------------------------------------------------
86341    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
86343    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86344    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86345 
86346    IF xla_accounting_cache_pkg.GetValueChar
86347          (p_source_code         => 'LEDGER_CATEGORY_CODE'
86348          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
86349    AND l_bflow_method_code = 'PRIOR_ENTRY'
86350 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
86351    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
86352          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
86353        )
86354    THEN
86355          xla_ae_lines_pkg.BflowUpgEntry
86356            (p_business_method_code    => l_bflow_method_code
86357            ,p_business_class_code     => l_bflow_class_code
86358            ,p_balance_type            => l_balance_type_code);
86359    ELSE
86360       NULL;
86361 XLA_AE_LINES_PKG.business_flow_validation(
86362                                 p_business_method_code     => l_bflow_method_code
86363                                ,p_business_class_code      => l_bflow_class_code
86364                                ,p_inherit_description_flag => l_inherit_desc_flag);
86365    END IF;
86366 
86367    --
86368    -- call analytical criteria
86369    --
86370    -- Inherited Analytical Criteria for business flow method of Prior Entry.
86371    --
86372    -- call description
86373    --
86374    -- No description or it is inherited.
86375    --
86376    -- call ADRs
86377    -- Bug 4922099
86378    --
86379    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86380         (NVL(l_actual_upg_option, 'N') = 'O') OR
86381         (NVL(l_enc_upg_option, 'N') = 'O')
86382       )
86383    THEN
86384    NULL;
86385    --
86386    --
86387    
86388    --
86389    --
86390    END IF;
86391    --
86392    -- Bug 4922099
86393    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
86394           (NVL(l_enc_upg_option, 'N') = 'O')
86395         ) AND
86396         (l_bflow_method_code = 'PRIOR_ENTRY')
86397       )
86398    THEN
86399       IF
86400       --
86401       1 = 1
86402       --
86403       THEN
86404       xla_accounting_err_pkg.build_message
86405                                     (p_appli_s_name            => 'XLA'
86406                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86407                                     ,p_token_1                 => 'LINE_NUMBER'
86408                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
86409                                     ,p_token_2                 => 'LINE_TYPE_NAME'
86410                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
86411                                                                              l_component_type
86412                                                                             ,l_component_code
86413                                                                             ,l_component_type_code
86414                                                                             ,l_component_appl_id
86415                                                                             ,l_amb_context_code
86416                                                                             ,l_entity_code
86417                                                                             ,l_event_class_code
86418                                                                            )
86419                                     ,p_token_3                 => 'OWNER'
86420                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
86421                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
86422                                                                           ,p_lookup_code    => l_component_type_code
86423                                                                          )
86424                                     ,p_token_4                 => 'PRODUCT_NAME'
86425                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
86426                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
86427                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
86428                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
86429                                     ,p_ae_header_id            =>  NULL
86430                                        );
86431 
86432         IF (C_LEVEL_ERROR>= g_log_level) THEN
86433                  trace
86434                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86435                       ,p_level    => C_LEVEL_ERROR
86436                       ,p_module   => l_log_module);
86437         END IF;
86438       END IF;
86439    END IF;
86440    --
86441    --
86442    ------------------------------------------------------------------------------------------------
86443    -- 4219869 Business Flow
86444    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
86445    -- Prior Entry.  Currently, the following code is always generated.
86446    ------------------------------------------------------------------------------------------------
86450    -- 4219869 Business Flow
86447    -- No ValidateCurrentLine for business flow method of Prior Entry
86448 
86449    ------------------------------------------------------------------------------------
86451    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
86452    ------------------------------------------------------------------------------------
86453    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86454 
86455    ----------------------------------------------------------------------------------
86456    -- 4219869 Business Flow
86457    -- Update journal entry status -- Need to generate this within IF <condition>
86458    ----------------------------------------------------------------------------------
86459    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86460          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
86461          ,p_balance_type_code => l_balance_type_code
86462          );
86463 
86464    -------------------------------------------------------------------------------------------
86465    -- 4262811 - Generate the Accrual Reversal lines
86466    -------------------------------------------------------------------------------------------
86467    BEGIN
86468       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
86469                               (g_array_event(p_event_id).array_value_num('header_index'));
86470       IF l_acc_rev_flag IS NULL THEN
86471          l_acc_rev_flag := 'N';
86472       END IF;
86473    EXCEPTION
86474       WHEN OTHERS THEN
86475          l_acc_rev_flag := 'N';
86476    END;
86477    --
86478    IF (l_acc_rev_flag = 'Y') THEN
86479 
86480        -- 4645092  ------------------------------------------------------------------------------
86481        -- To allow MPA report to determine if it should generate report process
86482        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
86483        ------------------------------------------------------------------------------------------
86484 
86485        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
86486        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
86487    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
86488    -- call ADRs
86489    -- Bug 4922099
86490    --
86491    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86492         (NVL(l_actual_upg_option, 'N') = 'O') OR
86493         (NVL(l_enc_upg_option, 'N') = 'O')
86494       )
86495    THEN
86496    NULL;
86497    --
86498    --
86499    
86500    --
86501    --
86502    END IF;
86503 
86504        --
86505        -- Update the line information that should be overwritten
86506        --
86507        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
86508                                          p_header_num   => 1);
86509        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
86510 
86511        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
86512 
86513        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
86514           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
86515        END IF;
86516 
86517       --
86518       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
86519       --
86520       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
86521           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
86522       ELSE
86523           ---------------------------------------------------------------------------------------------------
86524           -- 4262811a Switch Sign
86525           ---------------------------------------------------------------------------------------------------
86526           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
86527           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86528                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86529           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86530                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86531           -- 5132302
86532           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
86533                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86534 
86535       END IF;
86536 
86537       -- 4955764
86538       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86539       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
86540 
86541 
86542       XLA_AE_LINES_PKG.ValidateCurrentLine;
86543       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86544 
86545       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86546                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
86547                ,p_balance_type_code => l_balance_type_code);
86548 
86549    END IF;
86550 
86551    -----------------------------------------------------------------------------------------
86552    -- 4262811 Multiperiod Accounting
86553    -----------------------------------------------------------------------------------------
86554      -- No MPA option is assigned.
86555 
86556 
86557 END IF;
86558 END IF;
86559 --
86560 
86561 --
86562 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86563    trace
86564       (p_msg      => 'END of AcctLineType_155'
86568 --
86565       ,p_level    => C_LEVEL_PROCEDURE
86566       ,p_module   => l_log_module);
86567 END IF;
86569 EXCEPTION
86570   WHEN xla_exceptions_pkg.application_exception THEN
86571       RAISE;
86572   WHEN OTHERS THEN
86573        xla_exceptions_pkg.raise_message
86574            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_155');
86575 END AcctLineType_155;
86576 --
86577 
86578 ---------------------------------------
86579 --
86580 -- PRIVATE FUNCTION
86581 --         AcctLineType_156
86582 --
86583 ---------------------------------------
86584 PROCEDURE AcctLineType_156 (
86585   p_application_id        IN NUMBER
86586  ,p_event_id              IN NUMBER
86587  ,p_calculate_acctd_flag  IN VARCHAR2
86588  ,p_calculate_g_l_flag    IN VARCHAR2
86589  ,p_actual_flag           IN OUT VARCHAR2
86590  ,p_balance_type_code     OUT VARCHAR2
86594  , p_source_21            IN VARCHAR2
86591  ,p_gain_or_loss_ref      OUT VARCHAR2
86592  
86593 --Invoice Distribution Type
86595  , p_source_21_meaning    IN VARCHAR2
86596 --Accounting Reversal Indicator
86597  , p_source_41            IN VARCHAR2
86598 --Distribution Link Type
86599  , p_source_43            IN VARCHAR2
86600 --Allocation to Main Distribution Identifier
86601  , p_source_45            IN NUMBER
86602 --Invoice Identifier
86603  , p_source_46            IN NUMBER
86604 --Invoice Distribution Identifier
86605  , p_source_52            IN NUMBER
86606 --Payables Encumbrance Upgrade Credit Account
86607  , p_source_53            IN NUMBER
86608 --Payables Encumbrance Upgrade Credit Amount
86609  , p_source_54            IN NUMBER
86610 --Invoice Currency Code
86611  , p_source_55            IN VARCHAR2
86612 --Payables Encumbrance Upgrade Credit Base Amount
86613  , p_source_56            IN NUMBER
86614 --Payables Encumbrance Upgrade Debit Account
86615  , p_source_57            IN NUMBER
86616 --Payables Encumbrance Upgrade Debit Amount
86617  , p_source_58            IN NUMBER
86618 --Payables Encumbrance Upgrade Debit Base Amount
86619  , p_source_59            IN NUMBER
86620 --Payables Encumbrance Upgrade Option
86621  , p_source_60            IN VARCHAR2
86622 --Deferred Accounting End Date
86623  , p_source_65            IN DATE
86624 --Deferred Accounting Option
86625  , p_source_66            IN VARCHAR2
86626 --Deferred Accounting Start Date
86627  , p_source_67            IN DATE
86628 --Override Accounted Amount Indicator
86629  , p_source_68            IN VARCHAR2
86630  , p_source_68_meaning    IN VARCHAR2
86631 --Third Party Type
86632  , p_source_71            IN VARCHAR2
86633 --Parent Reversal Identifier
86634  , p_source_72            IN NUMBER
86635 --Invoice Distribution Statistical Amount
86636  , p_source_73            IN NUMBER
86637 --Invoice Distribution Tax Line Identifier
86638  , p_source_74            IN NUMBER
86639 --Invoice Distribution Tax Distribution Identifier from Tax
86640  , p_source_75            IN NUMBER
86641 --Invoice Distribution Summary Tax Line Identifier
86642  , p_source_76            IN NUMBER
86643 --Payables Upgrade Credit Encumbrance Type Identifier
86644  , p_source_77            IN NUMBER
86645 --Payables Upgrade Debit Encumbrance Type Identifier
86646  , p_source_78            IN NUMBER
86647 --Business Flow Accounts Payable Application Identifier
86648  , p_source_79            IN NUMBER
86649 --Business Flow Invoice Distribution Type
86650  , p_source_80            IN VARCHAR2
86651 --Business Flow Invoice Entity Code
86652  , p_source_81            IN VARCHAR2
86653 --Business Flow Invoice Distribution Identifier
86654  , p_source_82            IN NUMBER
86655 --Business Flow Invoice Identifier
86656  , p_source_83            IN NUMBER
86657 --Purchasing Encumbrance Option
86658  , p_source_86            IN VARCHAR2
86659  , p_source_86_meaning    IN VARCHAR2
86660 --Invoice Encumbered Option
86661  , p_source_87            IN VARCHAR2
86662  , p_source_87_meaning    IN VARCHAR2
86663 --Invoice Distribution Encumbrance Amount
86664  , p_source_143            IN NUMBER
86665 --Invoice Distribution Encumbrance Ledger Amount
86666  , p_source_144            IN NUMBER
86667 )
86668 IS
86669 
86670 l_component_type              VARCHAR2(80);
86671 l_component_code              VARCHAR2(30);
86672 l_component_type_code         VARCHAR2(1);
86673 l_component_appl_id           INTEGER;
86674 l_amb_context_code            VARCHAR2(30);
86675 l_entity_code                 VARCHAR2(30);
86676 l_event_class_code            VARCHAR2(30);
86677 l_ae_header_id                NUMBER;
86678 l_event_type_code             VARCHAR2(30);
86679 l_line_definition_code        VARCHAR2(30);
86680 l_line_definition_owner_code  VARCHAR2(1);
86681 --
86682 -- adr variables
86683 l_segment                     VARCHAR2(30);
86684 l_ccid                        NUMBER;
86688 l_adr_flex_value_set_id       NUMBER;
86685 l_adr_transaction_coa_id      NUMBER;
86686 l_adr_accounting_coa_id       NUMBER;
86687 l_adr_flexfield_segment_code  VARCHAR2(30);
86689 l_adr_value_type_code         VARCHAR2(30);
86690 l_adr_value_combination_id    NUMBER;
86691 l_adr_value_segment_code      VARCHAR2(30);
86692 
86693 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
86694 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
86695 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
86696 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
86697 
86698 -- 4262811 Variables ------------------------------------------------------------------------------------------
86699 l_entered_amt_idx             NUMBER;
86700 l_accted_amt_idx              NUMBER;
86701 l_acc_rev_flag                VARCHAR2(1);
86702 l_accrual_line_num            NUMBER;
86703 l_tmp_amt                     NUMBER;
86704 l_acc_rev_natural_side_code   VARCHAR2(1);
86705 
86706 l_num_entries                 NUMBER;
86707 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
86708 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
86709 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
86710 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
86711 l_recog_line_1                NUMBER;
86712 l_recog_line_2                NUMBER;
86713 
86714 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
86715 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
86716 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
86717 
86718 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
86719 
86720 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
86721 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
86722 
86723 ---------------------------------------------------------------------------------------------------------------
86724 
86725 
86726 --
86727 -- bulk performance
86728 --
86729 l_balance_type_code           VARCHAR2(1);
86730 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
86731 l_log_module                  VARCHAR2(240);
86732 
86733 --
86734 -- Upgrade strategy
86735 --
86736 l_actual_upg_option           VARCHAR2(1);
86737 l_enc_upg_option           VARCHAR2(1);
86738 
86739 --
86740 BEGIN
86741 --
86742 IF g_log_enabled THEN
86743       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_156';
86744 END IF;
86745 --
86746 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86747 
86748       trace
86749          (p_msg      => 'BEGIN of AcctLineType_156'
86750          ,p_level    => C_LEVEL_PROCEDURE
86751          ,p_module   => l_log_module);
86752 
86753 END IF;
86754 --
86755 l_component_type             := 'AMB_JLT';
86756 l_component_code             := 'AP_INV_PRICE_VAR_PP_ENC';
86757 l_component_type_code        := 'S';
86758 l_component_appl_id          :=  200;
86759 l_amb_context_code           := 'DEFAULT';
86760 l_entity_code                := 'AP_INVOICES';
86761 l_event_class_code           := 'PREPAYMENTS';
86762 l_event_type_code            := 'PREPAYMENTS_ALL';
86763 l_line_definition_owner_code := 'S';
86764 l_line_definition_code       := 'ENC_REV_PREPAY_ALL';
86765 --
86766 l_balance_type_code          := 'E';
86767 l_segment                     := NULL;
86768 l_ccid                        := NULL;
86769 l_adr_transaction_coa_id      := NULL;
86770 l_adr_accounting_coa_id       := NULL;
86771 l_adr_flexfield_segment_code  := NULL;
86772 l_adr_flex_value_set_id       := NULL;
86773 l_adr_value_type_code         := NULL;
86774 l_adr_value_combination_id    := NULL;
86775 l_adr_value_segment_code      := NULL;
86776 
86777 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
86778 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
86779 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
86780 l_budgetary_control_flag     := 'N';
86781 
86782 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
86783 l_bflow_applied_to_amt       := NULL; -- 5132302
86784 l_entered_amt_idx            := NULL;          -- 4262811
86785 l_accted_amt_idx             := NULL;          -- 4262811
86786 l_acc_rev_flag               := NULL;          -- 4262811
86787 l_accrual_line_num           := NULL;          -- 4262811
86788 l_tmp_amt                    := NULL;          -- 4262811
86789 --
86790  
86791 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
86792     l_balance_type_code <> 'B' THEN
86793 IF NVL(p_source_21,'
86794 ') =  'IPV' AND 
86795 NVL(p_source_86,'
86796 ') =  'Y' AND 
86797 NVL(p_source_87,'
86798 ') =  'Y'
86799  THEN 
86800 
86801    --
86802    XLA_AE_LINES_PKG.SetNewLine;
86803 
86804    p_balance_type_code          := l_balance_type_code;
86805    -- set the flag so later we will know whether the gain loss line needs to be created
86806    
86807    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
86808      p_actual_flag :='A';
86809    END IF;
86810 
86811    --
86812    -- bulk performance
86813    --
86814    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
86815                                       p_header_num   => 0); -- 4262811
86816    --
86817    -- set accounting line options
86818    --
86819    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
86820            p_natural_side_code          => 'C'
86821          , p_gain_or_loss_flag          => 'N'
86825          , p_merge_duplicate_code       => 'A'
86822          , p_gl_transfer_mode_code      => 'S'
86823          , p_acct_entry_type_code       => 'E'
86824          , p_switch_side_flag           => 'Y'
86826          );
86827    --
86828    l_acc_rev_natural_side_code := 'D';  -- 4262811
86829    -- 
86830    --
86831    -- set accounting line type info
86832    --
86833    xla_ae_lines_pkg.SetAcctLineType
86834       (p_component_type             => l_component_type
86835       ,p_event_type_code            => l_event_type_code
86836       ,p_line_definition_owner_code => l_line_definition_owner_code
86837       ,p_line_definition_code       => l_line_definition_code
86838       ,p_accounting_line_code       => l_component_code
86839       ,p_accounting_line_type_code  => l_component_type_code
86840       ,p_accounting_line_appl_id    => l_component_appl_id
86841       ,p_amb_context_code           => l_amb_context_code
86842       ,p_entity_code                => l_entity_code
86843       ,p_event_class_code           => l_event_class_code);
86844    --
86845    -- set accounting class
86846    --
86847    xla_ae_lines_pkg.SetAcctClass(
86848            p_accounting_class_code  => 'IPV'
86849          , p_ae_header_id           => l_ae_header_id
86850          );
86851 
86852    --
86853    -- set rounding class
86854    --
86855    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
86856                       'IPV';
86857 
86858    --
86859    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
86860    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
86861    --
86862    -- bulk performance
86863    --
86864    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
86865 
86866    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
86867       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
86868 
86869    -- 4955764
86870    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86871       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
86872 
86873    -- 4458381 Public Sector Enh
86874    
86875    --
86876    -- set accounting attributes for the line type
86877    --
86878    l_entered_amt_idx := 23;
86879    l_accted_amt_idx  := 25;
86880    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
86881    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
86882    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
86883    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
86884    l_rec_acct_attrs.array_num_value(2)  := 
86885 xla_ae_sources_pkg.GetSystemSourceNum(
86886    p_source_code           => 'XLA_EVENT_APPL_ID'
86887  , p_source_type_code      => 'Y'
86888  , p_source_application_id =>  602
86889 );
86890    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
86891    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
86892    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
86893    l_rec_acct_attrs.array_char_value(4)  := 
86894 xla_ae_sources_pkg.GetSystemSourceChar(
86895    p_source_code           => 'XLA_ENTITY_CODE'
86896  , p_source_type_code      => 'Y'
86897  , p_source_application_id =>  602
86898 );
86899    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
86900    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
86901    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
86902    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
86903    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
86904    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
86905    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
86906    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
86907    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
86908    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
86909    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
86910    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
86911    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
86912    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
86913    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
86914    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
86915    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
86916    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
86917    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
86918    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
86919    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
86920    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
86921    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
86922    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
86923    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
86924    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
86925    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
86926    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
86927    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
86928    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
86929    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
86930    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
86931    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
86932    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
86933    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
86937    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
86934    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
86935    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
86936    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
86938    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
86939    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
86940    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
86941    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
86942    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
86943    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
86944    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
86945    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
86946    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
86947    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
86948    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
86949    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
86950    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
86951    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
86952    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
86953    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
86954    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
86955    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
86956    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
86957    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
86958    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
86959    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
86960    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
86961    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
86962    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
86963    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
86964    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
86965    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
86966    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
86967 
86968    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
86969    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
86970 
86971    ---------------------------------------------------------------------------------------------------------------
86972    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
86973    ---------------------------------------------------------------------------------------------------------------
86974    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
86975 
86976    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86977    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86978 
86979    IF xla_accounting_cache_pkg.GetValueChar
86980          (p_source_code         => 'LEDGER_CATEGORY_CODE'
86981          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
86982    AND l_bflow_method_code = 'PRIOR_ENTRY'
86983 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
86984    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
86985          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
86986        )
86987    THEN
86988          xla_ae_lines_pkg.BflowUpgEntry
86989            (p_business_method_code    => l_bflow_method_code
86990            ,p_business_class_code     => l_bflow_class_code
86991            ,p_balance_type            => l_balance_type_code);
86992    ELSE
86993       NULL;
86994 XLA_AE_LINES_PKG.business_flow_validation(
86995                                 p_business_method_code     => l_bflow_method_code
86996                                ,p_business_class_code      => l_bflow_class_code
86997                                ,p_inherit_description_flag => l_inherit_desc_flag);
86998    END IF;
86999 
87000    --
87001    -- call analytical criteria
87002    --
87003    -- Inherited Analytical Criteria for business flow method of Prior Entry.
87004    --
87005    -- call description
87006    --
87007    -- No description or it is inherited.
87008    --
87009    -- call ADRs
87010    -- Bug 4922099
87011    --
87012    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87013         (NVL(l_actual_upg_option, 'N') = 'O') OR
87014         (NVL(l_enc_upg_option, 'N') = 'O')
87015       )
87016    THEN
87017    NULL;
87018    --
87019    --
87020    
87021    --
87022    --
87023    END IF;
87024    --
87025    -- Bug 4922099
87026    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
87027           (NVL(l_enc_upg_option, 'N') = 'O')
87028         ) AND
87029         (l_bflow_method_code = 'PRIOR_ENTRY')
87030       )
87031    THEN
87032       IF
87033       --
87034       1 = 1
87035       --
87036       THEN
87037       xla_accounting_err_pkg.build_message
87038                                     (p_appli_s_name            => 'XLA'
87039                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87040                                     ,p_token_1                 => 'LINE_NUMBER'
87041                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
87042                                     ,p_token_2                 => 'LINE_TYPE_NAME'
87043                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
87044                                                                              l_component_type
87048                                                                             ,l_amb_context_code
87045                                                                             ,l_component_code
87046                                                                             ,l_component_type_code
87047                                                                             ,l_component_appl_id
87049                                                                             ,l_entity_code
87050                                                                             ,l_event_class_code
87051                                                                            )
87052                                     ,p_token_3                 => 'OWNER'
87053                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
87054                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
87055                                                                           ,p_lookup_code    => l_component_type_code
87056                                                                          )
87057                                     ,p_token_4                 => 'PRODUCT_NAME'
87058                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
87059                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
87060                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
87061                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
87062                                     ,p_ae_header_id            =>  NULL
87063                                        );
87064 
87065         IF (C_LEVEL_ERROR>= g_log_level) THEN
87066                  trace
87067                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87068                       ,p_level    => C_LEVEL_ERROR
87069                       ,p_module   => l_log_module);
87070         END IF;
87071       END IF;
87072    END IF;
87073    --
87074    --
87075    ------------------------------------------------------------------------------------------------
87076    -- 4219869 Business Flow
87077    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
87078    -- Prior Entry.  Currently, the following code is always generated.
87079    ------------------------------------------------------------------------------------------------
87080    -- No ValidateCurrentLine for business flow method of Prior Entry
87081 
87082    ------------------------------------------------------------------------------------
87083    -- 4219869 Business Flow
87084    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
87085    ------------------------------------------------------------------------------------
87086    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87087 
87088    ----------------------------------------------------------------------------------
87089    -- 4219869 Business Flow
87090    -- Update journal entry status -- Need to generate this within IF <condition>
87091    ----------------------------------------------------------------------------------
87092    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87093          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
87094          ,p_balance_type_code => l_balance_type_code
87095          );
87096 
87097    -------------------------------------------------------------------------------------------
87098    -- 4262811 - Generate the Accrual Reversal lines
87099    -------------------------------------------------------------------------------------------
87100    BEGIN
87101       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
87102                               (g_array_event(p_event_id).array_value_num('header_index'));
87103       IF l_acc_rev_flag IS NULL THEN
87104          l_acc_rev_flag := 'N';
87105       END IF;
87106    EXCEPTION
87107       WHEN OTHERS THEN
87108          l_acc_rev_flag := 'N';
87109    END;
87110    --
87111    IF (l_acc_rev_flag = 'Y') THEN
87112 
87113        -- 4645092  ------------------------------------------------------------------------------
87114        -- To allow MPA report to determine if it should generate report process
87115        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
87116        ------------------------------------------------------------------------------------------
87117 
87118        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
87119        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
87120    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
87121    -- call ADRs
87122    -- Bug 4922099
87123    --
87124    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87125         (NVL(l_actual_upg_option, 'N') = 'O') OR
87126         (NVL(l_enc_upg_option, 'N') = 'O')
87127       )
87128    THEN
87129    NULL;
87130    --
87131    --
87132    
87133    --
87134    --
87135    END IF;
87136 
87137        --
87138        -- Update the line information that should be overwritten
87139        --
87140        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
87141                                          p_header_num   => 1);
87142        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
87143 
87147           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
87144        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
87145 
87146        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
87148        END IF;
87149 
87150       --
87151       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
87152       --
87153       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
87154           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
87155       ELSE
87156           ---------------------------------------------------------------------------------------------------
87157           -- 4262811a Switch Sign
87158           ---------------------------------------------------------------------------------------------------
87159           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
87160           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87161                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87162           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87163                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87164           -- 5132302
87165           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
87166                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87167 
87168       END IF;
87169 
87170       -- 4955764
87171       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87172       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
87173 
87174 
87175       XLA_AE_LINES_PKG.ValidateCurrentLine;
87176       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87177 
87178       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87179                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
87180                ,p_balance_type_code => l_balance_type_code);
87181 
87182    END IF;
87183 
87184    -----------------------------------------------------------------------------------------
87185    -- 4262811 Multiperiod Accounting
87186    -----------------------------------------------------------------------------------------
87187      -- No MPA option is assigned.
87188 
87189 
87190 END IF;
87191 END IF;
87192 --
87193 
87194 --
87195 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87196    trace
87197       (p_msg      => 'END of AcctLineType_156'
87198       ,p_level    => C_LEVEL_PROCEDURE
87199       ,p_module   => l_log_module);
87200 END IF;
87201 --
87202 EXCEPTION
87203   WHEN xla_exceptions_pkg.application_exception THEN
87204       RAISE;
87205   WHEN OTHERS THEN
87206        xla_exceptions_pkg.raise_message
87207            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_156');
87208 END AcctLineType_156;
87209 --
87210 
87211 ---------------------------------------
87212 --
87213 -- PRIVATE FUNCTION
87214 --         AcctLineType_157
87215 --
87216 ---------------------------------------
87217 PROCEDURE AcctLineType_157 (
87218   p_application_id        IN NUMBER
87219  ,p_event_id              IN NUMBER
87220  ,p_calculate_acctd_flag  IN VARCHAR2
87221  ,p_calculate_g_l_flag    IN VARCHAR2
87222  ,p_actual_flag           IN OUT VARCHAR2
87223  ,p_balance_type_code     OUT VARCHAR2
87224  ,p_gain_or_loss_ref      OUT VARCHAR2
87225  
87226 --Invoice Distribution Description
87227  , p_source_1            IN VARCHAR2
87228 --Invoice Distribution Ledger Amount
87229  , p_source_9            IN NUMBER
87230 --Invoice Distribution Account
87231  , p_source_18            IN NUMBER
87232 --Invoice Distribution Type
87233  , p_source_21            IN VARCHAR2
87234  , p_source_21_meaning    IN VARCHAR2
87235 --Accounting Reversal Indicator
87236  , p_source_41            IN VARCHAR2
87237 --Distribution Link Type
87238  , p_source_43            IN VARCHAR2
87242  , p_source_46            IN NUMBER
87239 --Allocation to Main Distribution Identifier
87240  , p_source_45            IN NUMBER
87241 --Invoice Identifier
87243 --Invoice Distribution Identifier
87244  , p_source_52            IN NUMBER
87245 --Payables Encumbrance Upgrade Credit Account
87246  , p_source_53            IN NUMBER
87247 --Payables Encumbrance Upgrade Credit Amount
87248  , p_source_54            IN NUMBER
87249 --Invoice Currency Code
87250  , p_source_55            IN VARCHAR2
87251 --Payables Encumbrance Upgrade Credit Base Amount
87252  , p_source_56            IN NUMBER
87253 --Payables Encumbrance Upgrade Debit Account
87254  , p_source_57            IN NUMBER
87255 --Payables Encumbrance Upgrade Debit Amount
87256  , p_source_58            IN NUMBER
87257 --Payables Encumbrance Upgrade Debit Base Amount
87258  , p_source_59            IN NUMBER
87259 --Payables Encumbrance Upgrade Option
87260  , p_source_60            IN VARCHAR2
87261 --Invoice Distribution Amount
87262  , p_source_61            IN NUMBER
87263 --Deferred Accounting End Date
87264  , p_source_65            IN DATE
87265 --Deferred Accounting Option
87266  , p_source_66            IN VARCHAR2
87267 --Deferred Accounting Start Date
87268  , p_source_67            IN DATE
87269 --Override Accounted Amount Indicator
87270  , p_source_68            IN VARCHAR2
87271  , p_source_68_meaning    IN VARCHAR2
87272 --Invoice Supplier Identifier
87273  , p_source_69            IN NUMBER
87274 --Invoice Supplier Site Identifier
87275  , p_source_70            IN NUMBER
87276 --Third Party Type
87277  , p_source_71            IN VARCHAR2
87278 --Parent Reversal Identifier
87279  , p_source_72            IN NUMBER
87280 --Invoice Distribution Statistical Amount
87281  , p_source_73            IN NUMBER
87282 --Invoice Distribution Tax Line Identifier
87283  , p_source_74            IN NUMBER
87284 --Invoice Distribution Tax Distribution Identifier from Tax
87285  , p_source_75            IN NUMBER
87286 --Invoice Distribution Summary Tax Line Identifier
87287  , p_source_76            IN NUMBER
87288 --Payables Upgrade Credit Encumbrance Type Identifier
87289  , p_source_77            IN NUMBER
87290 --Payables Upgrade Debit Encumbrance Type Identifier
87291  , p_source_78            IN NUMBER
87292 --Business Flow Accounts Payable Application Identifier
87293  , p_source_79            IN NUMBER
87294 --Business Flow Invoice Distribution Type
87295  , p_source_80            IN VARCHAR2
87296 --Business Flow Invoice Entity Code
87297  , p_source_81            IN VARCHAR2
87298 --Business Flow Invoice Distribution Identifier
87299  , p_source_82            IN NUMBER
87300 --Business Flow Invoice Identifier
87301  , p_source_83            IN NUMBER
87302 --Accrue on Receipt Option
87303  , p_source_84            IN VARCHAR2
87304  , p_source_84_meaning    IN VARCHAR2
87305 --Invoice Exchange Date
87306  , p_source_136            IN DATE
87307 --Invoice Exchange Rate
87308  , p_source_137            IN NUMBER
87309 --Invoice Exchange Rate Type
87310  , p_source_138            IN VARCHAR2
87311 )
87312 IS
87313 
87314 l_component_type              VARCHAR2(80);
87315 l_component_code              VARCHAR2(30);
87316 l_component_type_code         VARCHAR2(1);
87317 l_component_appl_id           INTEGER;
87318 l_amb_context_code            VARCHAR2(30);
87319 l_entity_code                 VARCHAR2(30);
87320 l_event_class_code            VARCHAR2(30);
87321 l_ae_header_id                NUMBER;
87322 l_event_type_code             VARCHAR2(30);
87323 l_line_definition_code        VARCHAR2(30);
87324 l_line_definition_owner_code  VARCHAR2(1);
87325 --
87326 -- adr variables
87327 l_segment                     VARCHAR2(30);
87328 l_ccid                        NUMBER;
87329 l_adr_transaction_coa_id      NUMBER;
87330 l_adr_accounting_coa_id       NUMBER;
87331 l_adr_flexfield_segment_code  VARCHAR2(30);
87332 l_adr_flex_value_set_id       NUMBER;
87333 l_adr_value_type_code         VARCHAR2(30);
87334 l_adr_value_combination_id    NUMBER;
87335 l_adr_value_segment_code      VARCHAR2(30);
87336 
87337 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
87338 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
87339 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
87340 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
87341 
87342 -- 4262811 Variables ------------------------------------------------------------------------------------------
87343 l_entered_amt_idx             NUMBER;
87344 l_accted_amt_idx              NUMBER;
87345 l_acc_rev_flag                VARCHAR2(1);
87346 l_accrual_line_num            NUMBER;
87347 l_tmp_amt                     NUMBER;
87348 l_acc_rev_natural_side_code   VARCHAR2(1);
87349 
87350 l_num_entries                 NUMBER;
87351 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
87352 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
87353 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
87354 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
87355 l_recog_line_1                NUMBER;
87356 l_recog_line_2                NUMBER;
87357 
87358 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
87359 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
87360 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
87361 
87362 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
87363 
87364 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
87365 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
87366 
87370 --
87367 ---------------------------------------------------------------------------------------------------------------
87368 
87369 
87371 -- bulk performance
87372 --
87373 l_balance_type_code           VARCHAR2(1);
87374 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
87375 l_log_module                  VARCHAR2(240);
87376 
87377 --
87378 -- Upgrade strategy
87379 --
87380 l_actual_upg_option           VARCHAR2(1);
87381 l_enc_upg_option           VARCHAR2(1);
87382 
87383 --
87384 BEGIN
87385 --
87386 IF g_log_enabled THEN
87387       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_157';
87388 END IF;
87389 --
87390 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87391 
87392       trace
87393          (p_msg      => 'BEGIN of AcctLineType_157'
87394          ,p_level    => C_LEVEL_PROCEDURE
87395          ,p_module   => l_log_module);
87396 
87397 END IF;
87398 --
87399 l_component_type             := 'AMB_JLT';
87400 l_component_code             := 'AP_INV_PRICE_VAR_PREPAY';
87401 l_component_type_code        := 'S';
87402 l_component_appl_id          :=  200;
87403 l_amb_context_code           := 'DEFAULT';
87404 l_entity_code                := 'AP_INVOICES';
87405 l_event_class_code           := 'PREPAYMENTS';
87406 l_event_type_code            := 'PREPAYMENTS_ALL';
87407 l_line_definition_owner_code := 'S';
87408 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
87409 --
87410 l_balance_type_code          := 'A';
87411 l_segment                     := NULL;
87412 l_ccid                        := NULL;
87413 l_adr_transaction_coa_id      := NULL;
87414 l_adr_accounting_coa_id       := NULL;
87415 l_adr_flexfield_segment_code  := NULL;
87416 l_adr_flex_value_set_id       := NULL;
87417 l_adr_value_type_code         := NULL;
87418 l_adr_value_combination_id    := NULL;
87419 l_adr_value_segment_code      := NULL;
87420 
87421 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
87422 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
87423 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
87424 l_budgetary_control_flag     := 'N';
87425 
87426 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
87427 l_bflow_applied_to_amt       := NULL; -- 5132302
87428 l_entered_amt_idx            := NULL;          -- 4262811
87429 l_accted_amt_idx             := NULL;          -- 4262811
87430 l_acc_rev_flag               := NULL;          -- 4262811
87431 l_accrual_line_num           := NULL;          -- 4262811
87432 l_tmp_amt                    := NULL;          -- 4262811
87433 --
87434  
87435 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
87436     l_balance_type_code <> 'B' THEN
87437 IF NVL(p_source_21,'
87438 ') =  'IPV' AND 
87439 NVL(p_source_84,'
87440 ') =  'Y'
87441  THEN 
87442 
87443    --
87444    XLA_AE_LINES_PKG.SetNewLine;
87445 
87446    p_balance_type_code          := l_balance_type_code;
87447    -- set the flag so later we will know whether the gain loss line needs to be created
87448    
87449    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
87450      p_actual_flag :='A';
87451    END IF;
87452 
87453    --
87454    -- bulk performance
87458    --
87455    --
87456    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
87457                                       p_header_num   => 0); -- 4262811
87459    -- set accounting line options
87460    --
87461    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
87462            p_natural_side_code          => 'D'
87463          , p_gain_or_loss_flag          => 'N'
87464          , p_gl_transfer_mode_code      => 'S'
87465          , p_acct_entry_type_code       => 'A'
87466          , p_switch_side_flag           => 'Y'
87467          , p_merge_duplicate_code       => 'A'
87468          );
87469    --
87470    l_acc_rev_natural_side_code := 'C';  -- 4262811
87471    -- 
87472    --
87473    -- set accounting line type info
87474    --
87475    xla_ae_lines_pkg.SetAcctLineType
87476       (p_component_type             => l_component_type
87477       ,p_event_type_code            => l_event_type_code
87478       ,p_line_definition_owner_code => l_line_definition_owner_code
87479       ,p_line_definition_code       => l_line_definition_code
87480       ,p_accounting_line_code       => l_component_code
87481       ,p_accounting_line_type_code  => l_component_type_code
87482       ,p_accounting_line_appl_id    => l_component_appl_id
87483       ,p_amb_context_code           => l_amb_context_code
87484       ,p_entity_code                => l_entity_code
87485       ,p_event_class_code           => l_event_class_code);
87486    --
87487    -- set accounting class
87488    --
87492          );
87489    xla_ae_lines_pkg.SetAcctClass(
87490            p_accounting_class_code  => 'IPV'
87491          , p_ae_header_id           => l_ae_header_id
87493 
87494    --
87495    -- set rounding class
87496    --
87497    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
87498                       'IPV';
87499 
87500    --
87501    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
87502    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
87503    --
87504    -- bulk performance
87505    --
87506    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
87507 
87508    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
87509       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
87510 
87511    -- 4955764
87512    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87513       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
87514 
87515    -- 4458381 Public Sector Enh
87516    
87517    --
87518    -- set accounting attributes for the line type
87519    --
87520    l_entered_amt_idx := 23;
87521    l_accted_amt_idx  := 28;
87522    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
87523    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
87524    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
87525    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
87526    l_rec_acct_attrs.array_num_value(2)  := 
87527 xla_ae_sources_pkg.GetSystemSourceNum(
87528    p_source_code           => 'XLA_EVENT_APPL_ID'
87529  , p_source_type_code      => 'Y'
87530  , p_source_application_id =>  602
87531 );
87532    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
87533    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
87534    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
87535    l_rec_acct_attrs.array_char_value(4)  := 
87536 xla_ae_sources_pkg.GetSystemSourceChar(
87537    p_source_code           => 'XLA_ENTITY_CODE'
87538  , p_source_type_code      => 'Y'
87539  , p_source_application_id =>  602
87540 );
87541    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
87542    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
87543    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
87544    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
87545    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
87546    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
87547    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
87548    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
87549    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
87550    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
87551    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
87552    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
87553    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
87554    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
87555    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
87556    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
87557    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
87558    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
87559    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
87560    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
87561    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
87562    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
87563    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
87564    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
87565    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
87566    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
87567    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
87568    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
87569    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
87570    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
87571    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
87572    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
87573    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
87574    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
87575    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
87576    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
87577    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
87578    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
87579    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
87580    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
87581    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
87582    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
87586    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
87583    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
87584    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
87585    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
87587    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
87588    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
87589    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
87590    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
87591    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
87592    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
87593    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
87594    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
87595    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
87596    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
87597    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
87598    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
87599    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
87600    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
87601    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
87602    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
87603    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
87604    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
87605    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
87606    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
87607    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
87608    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
87609    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
87610    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
87611    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
87612    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
87613    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
87614    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
87615    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
87616    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
87617    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
87618    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
87619 
87620    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
87621    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
87622 
87623    ---------------------------------------------------------------------------------------------------------------
87624    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
87625    ---------------------------------------------------------------------------------------------------------------
87626    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
87627 
87628    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87629    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87630 
87631    IF xla_accounting_cache_pkg.GetValueChar
87632          (p_source_code         => 'LEDGER_CATEGORY_CODE'
87633          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
87634    AND l_bflow_method_code = 'PRIOR_ENTRY'
87635 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
87636    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
87637          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
87638        )
87639    THEN
87640          xla_ae_lines_pkg.BflowUpgEntry
87641            (p_business_method_code    => l_bflow_method_code
87642            ,p_business_class_code     => l_bflow_class_code
87643            ,p_balance_type            => l_balance_type_code);
87644    ELSE
87645       NULL;
87646 -- No business flow processing for business flow method of NONE.
87647    END IF;
87648 
87649    --
87650    -- call analytical criteria
87651    --
87652    
87653    --
87654    -- call description
87655    --
87656    
87657 xla_ae_lines_pkg.SetLineDescription(
87658    p_ae_header_id => l_ae_header_id
87659   ,p_description  => Description_2 (
87660      p_application_id         => p_application_id
87664 );
87661    , p_ae_header_id           => l_ae_header_id 
87662 , p_source_1 => p_source_1
87663    )
87665 
87666 
87667    --
87668    -- call ADRs
87669    -- Bug 4922099
87670    --
87671    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87672         (NVL(l_actual_upg_option, 'N') = 'O') OR
87673         (NVL(l_enc_upg_option, 'N') = 'O')
87674       )
87675    THEN
87676    NULL;
87677    --
87678    --
87679    
87680   l_ccid := AcctDerRule_32(
87681            p_application_id           => p_application_id
87682          , p_ae_header_id             => l_ae_header_id 
87683 , p_source_18 => p_source_18
87684          , x_transaction_coa_id       => l_adr_transaction_coa_id
87685          , x_accounting_coa_id        => l_adr_accounting_coa_id
87686          , x_value_type_code          => l_adr_value_type_code
87687          , p_side                     => 'NA'
87688    );
87689 
87690    xla_ae_lines_pkg.set_ccid(
87691     p_code_combination_id          => l_ccid
87692   , p_value_type_code              => l_adr_value_type_code
87693   , p_transaction_coa_id           => l_adr_transaction_coa_id
87694   , p_accounting_coa_id            => l_adr_accounting_coa_id
87695   , p_adr_code                     => 'AP_INVOICE_DIST'
87696   , p_adr_type_code                => 'S'
87697   , p_component_type               => l_component_type
87698   , p_component_code               => l_component_code
87699   , p_component_type_code          => l_component_type_code
87700   , p_component_appl_id            => l_component_appl_id
87701   , p_amb_context_code             => l_amb_context_code
87702   , p_side                         => 'NA'
87703   );
87704 
87705 
87706    --
87707    --
87708    END IF;
87709    --
87710    -- Bug 4922099
87711    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
87712           (NVL(l_enc_upg_option, 'N') = 'O')
87713         ) AND
87714         (l_bflow_method_code = 'PRIOR_ENTRY')
87715       )
87716    THEN
87717       IF
87718       --
87719       1 = 2
87720       --
87721       THEN
87722       xla_accounting_err_pkg.build_message
87723                                     (p_appli_s_name            => 'XLA'
87727                                     ,p_token_2                 => 'LINE_TYPE_NAME'
87724                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87725                                     ,p_token_1                 => 'LINE_NUMBER'
87726                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
87728                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
87729                                                                              l_component_type
87730                                                                             ,l_component_code
87731                                                                             ,l_component_type_code
87735                                                                             ,l_event_class_code
87732                                                                             ,l_component_appl_id
87733                                                                             ,l_amb_context_code
87734                                                                             ,l_entity_code
87736                                                                            )
87737                                     ,p_token_3                 => 'OWNER'
87738                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
87739                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
87740                                                                           ,p_lookup_code    => l_component_type_code
87741                                                                          )
87742                                     ,p_token_4                 => 'PRODUCT_NAME'
87743                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
87744                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
87745                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
87746                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
87747                                     ,p_ae_header_id            =>  NULL
87748                                        );
87749 
87750         IF (C_LEVEL_ERROR>= g_log_level) THEN
87751                  trace
87752                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87753                       ,p_level    => C_LEVEL_ERROR
87754                       ,p_module   => l_log_module);
87755         END IF;
87756       END IF;
87757    END IF;
87758    --
87759    --
87760    ------------------------------------------------------------------------------------------------
87761    -- 4219869 Business Flow
87762    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
87763    -- Prior Entry.  Currently, the following code is always generated.
87764    ------------------------------------------------------------------------------------------------
87765    XLA_AE_LINES_PKG.ValidateCurrentLine;
87766 
87767    ------------------------------------------------------------------------------------
87768    -- 4219869 Business Flow
87769    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
87770    ------------------------------------------------------------------------------------
87771    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87772 
87773    ----------------------------------------------------------------------------------
87774    -- 4219869 Business Flow
87775    -- Update journal entry status -- Need to generate this within IF <condition>
87776    ----------------------------------------------------------------------------------
87777    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87778          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
87779          ,p_balance_type_code => l_balance_type_code
87780          );
87781 
87782    -------------------------------------------------------------------------------------------
87783    -- 4262811 - Generate the Accrual Reversal lines
87784    -------------------------------------------------------------------------------------------
87785    BEGIN
87786       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
87787                               (g_array_event(p_event_id).array_value_num('header_index'));
87788       IF l_acc_rev_flag IS NULL THEN
87789          l_acc_rev_flag := 'N';
87790       END IF;
87791    EXCEPTION
87792       WHEN OTHERS THEN
87793          l_acc_rev_flag := 'N';
87794    END;
87795    --
87796    IF (l_acc_rev_flag = 'Y') THEN
87797 
87798        -- 4645092  ------------------------------------------------------------------------------
87799        -- To allow MPA report to determine if it should generate report process
87800        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
87801        ------------------------------------------------------------------------------------------
87802 
87803        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
87804        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
87805    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
87806    -- call ADRs
87807    -- Bug 4922099
87808    --
87809    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87810         (NVL(l_actual_upg_option, 'N') = 'O') OR
87811         (NVL(l_enc_upg_option, 'N') = 'O')
87812       )
87813    THEN
87814    NULL;
87815    --
87816    --
87817    
87818   l_ccid := AcctDerRule_32(
87819            p_application_id           => p_application_id
87820          , p_ae_header_id             => l_ae_header_id 
87821 , p_source_18 => p_source_18
87822          , x_transaction_coa_id       => l_adr_transaction_coa_id
87823          , x_accounting_coa_id        => l_adr_accounting_coa_id
87824          , x_value_type_code          => l_adr_value_type_code
87825          , p_side                     => 'NA'
87826    );
87827 
87828    xla_ae_lines_pkg.set_ccid(
87829     p_code_combination_id          => l_ccid
87830   , p_value_type_code              => l_adr_value_type_code
87831   , p_transaction_coa_id           => l_adr_transaction_coa_id
87832   , p_accounting_coa_id            => l_adr_accounting_coa_id
87833   , p_adr_code                     => 'AP_INVOICE_DIST'
87834   , p_adr_type_code                => 'S'
87835   , p_component_type               => l_component_type
87836   , p_component_code               => l_component_code
87842 
87837   , p_component_type_code          => l_component_type_code
87838   , p_component_appl_id            => l_component_appl_id
87839   , p_amb_context_code             => l_amb_context_code
87840   , p_side                         => 'NA'
87841   );
87843 
87844    --
87845    --
87846    END IF;
87847 
87848        --
87849        -- Update the line information that should be overwritten
87850        --
87851        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
87852                                          p_header_num   => 1);
87853        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
87854 
87855        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
87856 
87857        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
87858           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
87859        END IF;
87860 
87861       --
87862       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
87863       --
87864       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
87865           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
87866       ELSE
87867           ---------------------------------------------------------------------------------------------------
87868           -- 4262811a Switch Sign
87869           ---------------------------------------------------------------------------------------------------
87870           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
87871           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87872                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87873           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87874                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87875           -- 5132302
87876           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
87877                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87878 
87879       END IF;
87880 
87881       -- 4955764
87882       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87883       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
87884 
87885 
87886       XLA_AE_LINES_PKG.ValidateCurrentLine;
87887       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87888 
87889       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87893    END IF;
87890                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
87891                ,p_balance_type_code => l_balance_type_code);
87892 
87894 
87895    -----------------------------------------------------------------------------------------
87896    -- 4262811 Multiperiod Accounting
87897    -----------------------------------------------------------------------------------------
87898      -- No MPA option is assigned.
87899 
87900 
87901 END IF;
87902 END IF;
87903 --
87904 
87905 --
87906 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87907    trace
87908       (p_msg      => 'END of AcctLineType_157'
87909       ,p_level    => C_LEVEL_PROCEDURE
87910       ,p_module   => l_log_module);
87911 END IF;
87912 --
87913 EXCEPTION
87914   WHEN xla_exceptions_pkg.application_exception THEN
87915       RAISE;
87916   WHEN OTHERS THEN
87917        xla_exceptions_pkg.raise_message
87918            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_157');
87919 END AcctLineType_157;
87920 --
87921 
87922 ---------------------------------------
87923 --
87924 -- PRIVATE FUNCTION
87925 --         AcctLineType_158
87926 --
87927 ---------------------------------------
87928 PROCEDURE AcctLineType_158 (
87929   p_application_id        IN NUMBER
87930  ,p_event_id              IN NUMBER
87931  ,p_calculate_acctd_flag  IN VARCHAR2
87932  ,p_calculate_g_l_flag    IN VARCHAR2
87933  ,p_actual_flag           IN OUT VARCHAR2
87934  ,p_balance_type_code     OUT VARCHAR2
87935  ,p_gain_or_loss_ref      OUT VARCHAR2
87936  
87937 --Invoice Distribution Description
87938  , p_source_1            IN VARCHAR2
87939 --Invoice Distribution Ledger Amount
87940  , p_source_9            IN NUMBER
87941 --Invoice Distribution Account
87942  , p_source_18            IN NUMBER
87943 --Invoice Distribution Type
87944  , p_source_21            IN VARCHAR2
87945  , p_source_21_meaning    IN VARCHAR2
87946 --Accounting Reversal Indicator
87947  , p_source_41            IN VARCHAR2
87948 --Distribution Link Type
87949  , p_source_43            IN VARCHAR2
87950 --Allocation to Main Distribution Identifier
87951  , p_source_45            IN NUMBER
87952 --Invoice Identifier
87953  , p_source_46            IN NUMBER
87954 --Invoice Distribution Identifier
87955  , p_source_52            IN NUMBER
87956 --Payables Encumbrance Upgrade Credit Account
87957  , p_source_53            IN NUMBER
87958 --Payables Encumbrance Upgrade Credit Amount
87959  , p_source_54            IN NUMBER
87960 --Invoice Currency Code
87961  , p_source_55            IN VARCHAR2
87962 --Payables Encumbrance Upgrade Credit Base Amount
87963  , p_source_56            IN NUMBER
87964 --Payables Encumbrance Upgrade Debit Account
87965  , p_source_57            IN NUMBER
87966 --Payables Encumbrance Upgrade Debit Amount
87967  , p_source_58            IN NUMBER
87968 --Payables Encumbrance Upgrade Debit Base Amount
87969  , p_source_59            IN NUMBER
87970 --Payables Encumbrance Upgrade Option
87971  , p_source_60            IN VARCHAR2
87972 --Invoice Distribution Amount
87973  , p_source_61            IN NUMBER
87974 --Deferred Accounting End Date
87975  , p_source_65            IN DATE
87976 --Deferred Accounting Option
87977  , p_source_66            IN VARCHAR2
87978 --Deferred Accounting Start Date
87979  , p_source_67            IN DATE
87980 --Override Accounted Amount Indicator
87981  , p_source_68            IN VARCHAR2
87982  , p_source_68_meaning    IN VARCHAR2
87983 --Invoice Supplier Identifier
87984  , p_source_69            IN NUMBER
87985 --Invoice Supplier Site Identifier
87986  , p_source_70            IN NUMBER
87987 --Third Party Type
87988  , p_source_71            IN VARCHAR2
87989 --Parent Reversal Identifier
87990  , p_source_72            IN NUMBER
87991 --Invoice Distribution Statistical Amount
87992  , p_source_73            IN NUMBER
87993 --Invoice Distribution Tax Line Identifier
87994  , p_source_74            IN NUMBER
87995 --Invoice Distribution Tax Distribution Identifier from Tax
87996  , p_source_75            IN NUMBER
87997 --Invoice Distribution Summary Tax Line Identifier
87998  , p_source_76            IN NUMBER
87999 --Payables Upgrade Credit Encumbrance Type Identifier
88000  , p_source_77            IN NUMBER
88001 --Payables Upgrade Debit Encumbrance Type Identifier
88002  , p_source_78            IN NUMBER
88003 --Business Flow Accounts Payable Application Identifier
88004  , p_source_79            IN NUMBER
88005 --Business Flow Invoice Distribution Type
88006  , p_source_80            IN VARCHAR2
88007 --Business Flow Invoice Entity Code
88008  , p_source_81            IN VARCHAR2
88009 --Business Flow Invoice Distribution Identifier
88010  , p_source_82            IN NUMBER
88011 --Business Flow Invoice Identifier
88012  , p_source_83            IN NUMBER
88013 --Accrue on Receipt Option
88014  , p_source_84            IN VARCHAR2
88015  , p_source_84_meaning    IN VARCHAR2
88016 --Invoice Exchange Date
88017  , p_source_136            IN DATE
88018 --Invoice Exchange Rate
88019  , p_source_137            IN NUMBER
88020 --Invoice Exchange Rate Type
88021  , p_source_138            IN VARCHAR2
88022 )
88023 IS
88024 
88025 l_component_type              VARCHAR2(80);
88026 l_component_code              VARCHAR2(30);
88027 l_component_type_code         VARCHAR2(1);
88028 l_component_appl_id           INTEGER;
88029 l_amb_context_code            VARCHAR2(30);
88030 l_entity_code                 VARCHAR2(30);
88031 l_event_class_code            VARCHAR2(30);
88032 l_ae_header_id                NUMBER;
88033 l_event_type_code             VARCHAR2(30);
88037 -- adr variables
88034 l_line_definition_code        VARCHAR2(30);
88035 l_line_definition_owner_code  VARCHAR2(1);
88036 --
88038 l_segment                     VARCHAR2(30);
88039 l_ccid                        NUMBER;
88040 l_adr_transaction_coa_id      NUMBER;
88041 l_adr_accounting_coa_id       NUMBER;
88042 l_adr_flexfield_segment_code  VARCHAR2(30);
88043 l_adr_flex_value_set_id       NUMBER;
88044 l_adr_value_type_code         VARCHAR2(30);
88045 l_adr_value_combination_id    NUMBER;
88046 l_adr_value_segment_code      VARCHAR2(30);
88047 
88048 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
88049 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
88050 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
88051 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
88052 
88053 -- 4262811 Variables ------------------------------------------------------------------------------------------
88054 l_entered_amt_idx             NUMBER;
88055 l_accted_amt_idx              NUMBER;
88056 l_acc_rev_flag                VARCHAR2(1);
88057 l_accrual_line_num            NUMBER;
88058 l_tmp_amt                     NUMBER;
88059 l_acc_rev_natural_side_code   VARCHAR2(1);
88060 
88061 l_num_entries                 NUMBER;
88062 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
88063 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
88064 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
88065 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
88066 l_recog_line_1                NUMBER;
88067 l_recog_line_2                NUMBER;
88068 
88069 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
88070 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
88071 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
88072 
88073 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
88074 
88075 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
88076 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
88077 
88078 ---------------------------------------------------------------------------------------------------------------
88079 
88080 
88081 --
88082 -- bulk performance
88083 --
88084 l_balance_type_code           VARCHAR2(1);
88085 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
88086 l_log_module                  VARCHAR2(240);
88087 
88088 --
88089 -- Upgrade strategy
88090 --
88091 l_actual_upg_option           VARCHAR2(1);
88092 l_enc_upg_option           VARCHAR2(1);
88093 
88094 --
88095 BEGIN
88096 --
88097 IF g_log_enabled THEN
88098       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_158';
88099 END IF;
88100 --
88101 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88102 
88103       trace
88104          (p_msg      => 'BEGIN of AcctLineType_158'
88105          ,p_level    => C_LEVEL_PROCEDURE
88106          ,p_module   => l_log_module);
88107 
88108 END IF;
88109 --
88110 l_component_type             := 'AMB_JLT';
88111 l_component_code             := 'AP_ITEM_EXPENSE_CM';
88112 l_component_type_code        := 'S';
88113 l_component_appl_id          :=  200;
88114 l_amb_context_code           := 'DEFAULT';
88115 l_entity_code                := 'AP_INVOICES';
88116 l_event_class_code           := 'CREDIT MEMOS';
88117 l_event_type_code            := 'CREDIT MEMOS_ALL';
88118 l_line_definition_owner_code := 'S';
88119 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
88120 --
88121 l_balance_type_code          := 'A';
88122 l_segment                     := NULL;
88123 l_ccid                        := NULL;
88124 l_adr_transaction_coa_id      := NULL;
88125 l_adr_accounting_coa_id       := NULL;
88126 l_adr_flexfield_segment_code  := NULL;
88127 l_adr_flex_value_set_id       := NULL;
88128 l_adr_value_type_code         := NULL;
88129 l_adr_value_combination_id    := NULL;
88130 l_adr_value_segment_code      := NULL;
88131 
88132 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
88133 l_bflow_class_code           := '';    -- 4219869 Business Flow
88134 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
88135 l_budgetary_control_flag     := 'N';
88136 
88137 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
88138 l_bflow_applied_to_amt       := NULL; -- 5132302
88139 l_entered_amt_idx            := NULL;          -- 4262811
88140 l_accted_amt_idx             := NULL;          -- 4262811
88141 l_acc_rev_flag               := NULL;          -- 4262811
88142 l_accrual_line_num           := NULL;          -- 4262811
88143 l_tmp_amt                    := NULL;          -- 4262811
88144 --
88145  
88146 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
88147     l_balance_type_code <> 'B' THEN
88148 IF NVL(p_source_21,'
88149 ') =  'RETROEXPENSE' OR 
88153 ') =  'ERV' AND 
88150 NVL(p_source_21,'
88151 ') =  'ITEM' OR 
88152 (NVL(p_source_21,'
88154 NVL(p_source_84,'
88155 ') <>  'Y') OR 
88156 (NVL(p_source_21,'
88157 ') =  'IPV' AND 
88158 NVL(p_source_84,'
88159 ') <>  'Y')
88160  THEN 
88161 
88162    --
88163    XLA_AE_LINES_PKG.SetNewLine;
88164 
88165    p_balance_type_code          := l_balance_type_code;
88166    -- set the flag so later we will know whether the gain loss line needs to be created
88167    
88168    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
88169      p_actual_flag :='A';
88170    END IF;
88171 
88172    --
88173    -- bulk performance
88174    --
88175    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
88176                                       p_header_num   => 0); -- 4262811
88177    --
88178    -- set accounting line options
88179    --
88180    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
88181            p_natural_side_code          => 'D'
88182          , p_gain_or_loss_flag          => 'N'
88183          , p_gl_transfer_mode_code      => 'S'
88184          , p_acct_entry_type_code       => 'A'
88185          , p_switch_side_flag           => 'Y'
88186          , p_merge_duplicate_code       => 'A'
88187          );
88188    --
88189    l_acc_rev_natural_side_code := 'C';  -- 4262811
88190    -- 
88191    --
88192    -- set accounting line type info
88193    --
88194    xla_ae_lines_pkg.SetAcctLineType
88195       (p_component_type             => l_component_type
88196       ,p_event_type_code            => l_event_type_code
88197       ,p_line_definition_owner_code => l_line_definition_owner_code
88198       ,p_line_definition_code       => l_line_definition_code
88199       ,p_accounting_line_code       => l_component_code
88200       ,p_accounting_line_type_code  => l_component_type_code
88201       ,p_accounting_line_appl_id    => l_component_appl_id
88202       ,p_amb_context_code           => l_amb_context_code
88203       ,p_entity_code                => l_entity_code
88204       ,p_event_class_code           => l_event_class_code);
88205    --
88206    -- set accounting class
88207    --
88208    xla_ae_lines_pkg.SetAcctClass(
88209            p_accounting_class_code  => 'ITEM EXPENSE'
88210          , p_ae_header_id           => l_ae_header_id
88211          );
88212 
88213    --
88214    -- set rounding class
88215    --
88216    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
88217                       'ITEM EXPENSE';
88218 
88219    --
88220    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
88221    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
88222    --
88223    -- bulk performance
88224    --
88225    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
88226 
88230    -- 4955764
88227    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
88228       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
88229 
88231    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88232       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
88233 
88234    -- 4458381 Public Sector Enh
88235    
88236    --
88237    -- set accounting attributes for the line type
88238    --
88239    l_entered_amt_idx := 23;
88240    l_accted_amt_idx  := 28;
88241    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
88242    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
88243    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
88244    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
88245    l_rec_acct_attrs.array_num_value(2)  := 
88246 xla_ae_sources_pkg.GetSystemSourceNum(
88247    p_source_code           => 'XLA_EVENT_APPL_ID'
88248  , p_source_type_code      => 'Y'
88249  , p_source_application_id =>  602
88250 );
88251    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
88252    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
88253    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
88254    l_rec_acct_attrs.array_char_value(4)  := 
88255 xla_ae_sources_pkg.GetSystemSourceChar(
88256    p_source_code           => 'XLA_ENTITY_CODE'
88257  , p_source_type_code      => 'Y'
88258  , p_source_application_id =>  602
88259 );
88260    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
88261    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
88262    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
88263    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
88264    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
88265    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
88266    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
88267    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
88268    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
88269    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
88270    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
88271    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
88272    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
88273    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
88274    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
88275    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
88276    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
88277    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
88278    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
88279    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
88280    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
88281    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
88282    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
88283    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
88284    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
88285    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
88286    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
88287    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
88288    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
88289    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
88290    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
88294    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
88291    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
88292    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
88293    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
88295    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
88296    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
88297    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
88298    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
88299    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
88300    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
88301    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
88302    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
88303    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
88304    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
88308    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
88305    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
88306    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
88307    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
88309    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
88310    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
88311    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
88312    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
88313    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
88314    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
88315    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
88316    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
88317    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
88318    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
88319    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
88320    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
88321    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
88322    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
88323    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
88324    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
88325    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
88326    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
88327    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
88328    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
88329    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
88330    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
88331    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
88332    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
88333    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
88334    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
88335    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
88336    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
88337    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
88338 
88339    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
88340    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
88341 
88342    ---------------------------------------------------------------------------------------------------------------
88343    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
88344    ---------------------------------------------------------------------------------------------------------------
88345    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
88346 
88347    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88348    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88349 
88350    IF xla_accounting_cache_pkg.GetValueChar
88351          (p_source_code         => 'LEDGER_CATEGORY_CODE'
88352          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
88353    AND l_bflow_method_code = 'PRIOR_ENTRY'
88354 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
88355    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
88356          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
88357        )
88358    THEN
88359          xla_ae_lines_pkg.BflowUpgEntry
88360            (p_business_method_code    => l_bflow_method_code
88361            ,p_business_class_code     => l_bflow_class_code
88362            ,p_balance_type            => l_balance_type_code);
88363    ELSE
88364       NULL;
88365 -- No business flow processing for business flow method of NONE.
88366    END IF;
88367 
88368    --
88369    -- call analytical criteria
88370    --
88371    
88372    --
88373    -- call description
88374    --
88375    
88376 xla_ae_lines_pkg.SetLineDescription(
88377    p_ae_header_id => l_ae_header_id
88378   ,p_description  => Description_2 (
88379      p_application_id         => p_application_id
88380    , p_ae_header_id           => l_ae_header_id 
88381 , p_source_1 => p_source_1
88382    )
88383 );
88384 
88385 
88386    --
88387    -- call ADRs
88388    -- Bug 4922099
88389    --
88390    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88391         (NVL(l_actual_upg_option, 'N') = 'O') OR
88392         (NVL(l_enc_upg_option, 'N') = 'O')
88393       )
88394    THEN
88395    NULL;
88396    --
88397    --
88398    
88399   l_ccid := AcctDerRule_32(
88400            p_application_id           => p_application_id
88401          , p_ae_header_id             => l_ae_header_id 
88402 , p_source_18 => p_source_18
88403          , x_transaction_coa_id       => l_adr_transaction_coa_id
88404          , x_accounting_coa_id        => l_adr_accounting_coa_id
88405          , x_value_type_code          => l_adr_value_type_code
88406          , p_side                     => 'NA'
88407    );
88408 
88409    xla_ae_lines_pkg.set_ccid(
88410     p_code_combination_id          => l_ccid
88411   , p_value_type_code              => l_adr_value_type_code
88412   , p_transaction_coa_id           => l_adr_transaction_coa_id
88413   , p_accounting_coa_id            => l_adr_accounting_coa_id
88414   , p_adr_code                     => 'AP_INVOICE_DIST'
88415   , p_adr_type_code                => 'S'
88416   , p_component_type               => l_component_type
88417   , p_component_code               => l_component_code
88418   , p_component_type_code          => l_component_type_code
88419   , p_component_appl_id            => l_component_appl_id
88423 
88420   , p_amb_context_code             => l_amb_context_code
88421   , p_side                         => 'NA'
88422   );
88424 
88425    --
88426    --
88427    END IF;
88428    --
88429    -- Bug 4922099
88430    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
88431           (NVL(l_enc_upg_option, 'N') = 'O')
88432         ) AND
88433         (l_bflow_method_code = 'PRIOR_ENTRY')
88434       )
88435    THEN
88436       IF
88437       --
88438       1 = 2
88439       --
88440       THEN
88441       xla_accounting_err_pkg.build_message
88442                                     (p_appli_s_name            => 'XLA'
88443                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88444                                     ,p_token_1                 => 'LINE_NUMBER'
88445                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
88446                                     ,p_token_2                 => 'LINE_TYPE_NAME'
88447                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
88448                                                                              l_component_type
88449                                                                             ,l_component_code
88450                                                                             ,l_component_type_code
88451                                                                             ,l_component_appl_id
88452                                                                             ,l_amb_context_code
88453                                                                             ,l_entity_code
88454                                                                             ,l_event_class_code
88455                                                                            )
88456                                     ,p_token_3                 => 'OWNER'
88457                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
88458                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
88459                                                                           ,p_lookup_code    => l_component_type_code
88460                                                                          )
88461                                     ,p_token_4                 => 'PRODUCT_NAME'
88462                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
88463                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
88464                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
88465                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
88466                                     ,p_ae_header_id            =>  NULL
88467                                        );
88468 
88469         IF (C_LEVEL_ERROR>= g_log_level) THEN
88470                  trace
88471                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88472                       ,p_level    => C_LEVEL_ERROR
88473                       ,p_module   => l_log_module);
88474         END IF;
88475       END IF;
88476    END IF;
88477    --
88478    --
88479    ------------------------------------------------------------------------------------------------
88480    -- 4219869 Business Flow
88481    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
88482    -- Prior Entry.  Currently, the following code is always generated.
88483    ------------------------------------------------------------------------------------------------
88484    XLA_AE_LINES_PKG.ValidateCurrentLine;
88485 
88486    ------------------------------------------------------------------------------------
88487    -- 4219869 Business Flow
88488    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
88489    ------------------------------------------------------------------------------------
88490    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88491 
88492    ----------------------------------------------------------------------------------
88493    -- 4219869 Business Flow
88494    -- Update journal entry status -- Need to generate this within IF <condition>
88495    ----------------------------------------------------------------------------------
88496    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88497          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
88498          ,p_balance_type_code => l_balance_type_code
88499          );
88500 
88501    -------------------------------------------------------------------------------------------
88502    -- 4262811 - Generate the Accrual Reversal lines
88503    -------------------------------------------------------------------------------------------
88504    BEGIN
88505       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
88506                               (g_array_event(p_event_id).array_value_num('header_index'));
88507       IF l_acc_rev_flag IS NULL THEN
88508          l_acc_rev_flag := 'N';
88509       END IF;
88510    EXCEPTION
88511       WHEN OTHERS THEN
88512          l_acc_rev_flag := 'N';
88513    END;
88514    --
88515    IF (l_acc_rev_flag = 'Y') THEN
88516 
88517        -- 4645092  ------------------------------------------------------------------------------
88518        -- To allow MPA report to determine if it should generate report process
88519        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
88523        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
88520        ------------------------------------------------------------------------------------------
88521 
88522        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
88524    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
88525    -- call ADRs
88526    -- Bug 4922099
88527    --
88528    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88529         (NVL(l_actual_upg_option, 'N') = 'O') OR
88530         (NVL(l_enc_upg_option, 'N') = 'O')
88531       )
88532    THEN
88533    NULL;
88534    --
88535    --
88536    
88537   l_ccid := AcctDerRule_32(
88538            p_application_id           => p_application_id
88539          , p_ae_header_id             => l_ae_header_id 
88540 , p_source_18 => p_source_18
88541          , x_transaction_coa_id       => l_adr_transaction_coa_id
88542          , x_accounting_coa_id        => l_adr_accounting_coa_id
88543          , x_value_type_code          => l_adr_value_type_code
88544          , p_side                     => 'NA'
88545    );
88546 
88547    xla_ae_lines_pkg.set_ccid(
88551   , p_accounting_coa_id            => l_adr_accounting_coa_id
88548     p_code_combination_id          => l_ccid
88549   , p_value_type_code              => l_adr_value_type_code
88550   , p_transaction_coa_id           => l_adr_transaction_coa_id
88552   , p_adr_code                     => 'AP_INVOICE_DIST'
88553   , p_adr_type_code                => 'S'
88554   , p_component_type               => l_component_type
88555   , p_component_code               => l_component_code
88556   , p_component_type_code          => l_component_type_code
88557   , p_component_appl_id            => l_component_appl_id
88558   , p_amb_context_code             => l_amb_context_code
88559   , p_side                         => 'NA'
88560   );
88561 
88562 
88563    --
88564    --
88565    END IF;
88566 
88567        --
88568        -- Update the line information that should be overwritten
88569        --
88573 
88570        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
88571                                          p_header_num   => 1);
88572        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
88574        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
88575 
88576        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
88577           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
88578        END IF;
88579 
88580       --
88581       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
88582       --
88583       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
88584           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
88585       ELSE
88586           ---------------------------------------------------------------------------------------------------
88587           -- 4262811a Switch Sign
88588           ---------------------------------------------------------------------------------------------------
88589           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
88590           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88591                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88592           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88593                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88594           -- 5132302
88595           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
88596                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88597 
88598       END IF;
88599 
88600       -- 4955764
88601       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88602       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
88603 
88604 
88605       XLA_AE_LINES_PKG.ValidateCurrentLine;
88606       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88607 
88608       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88609                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
88610                ,p_balance_type_code => l_balance_type_code);
88611 
88612    END IF;
88613 
88614    -----------------------------------------------------------------------------------------
88615    -- 4262811 Multiperiod Accounting
88616    -----------------------------------------------------------------------------------------
88617      -- No MPA option is assigned.
88618 
88619 
88620 END IF;
88621 END IF;
88622 --
88623 
88624 --
88625 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88626    trace
88627       (p_msg      => 'END of AcctLineType_158'
88628       ,p_level    => C_LEVEL_PROCEDURE
88629       ,p_module   => l_log_module);
88630 END IF;
88631 --
88632 EXCEPTION
88633   WHEN xla_exceptions_pkg.application_exception THEN
88634       RAISE;
88635   WHEN OTHERS THEN
88636        xla_exceptions_pkg.raise_message
88637            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_158');
88638 END AcctLineType_158;
88639 --
88640 
88641 ---------------------------------------
88642 --
88643 -- PRIVATE FUNCTION
88644 --         AcctLineType_159
88645 --
88646 ---------------------------------------
88647 PROCEDURE AcctLineType_159 (
88648   p_application_id        IN NUMBER
88649  ,p_event_id              IN NUMBER
88650  ,p_calculate_acctd_flag  IN VARCHAR2
88651  ,p_calculate_g_l_flag    IN VARCHAR2
88652  ,p_actual_flag           IN OUT VARCHAR2
88653  ,p_balance_type_code     OUT VARCHAR2
88654  ,p_gain_or_loss_ref      OUT VARCHAR2
88655  
88656 --Invoice Distribution Type
88657  , p_source_21            IN VARCHAR2
88658  , p_source_21_meaning    IN VARCHAR2
88659 --Accounting Reversal Indicator
88660  , p_source_41            IN VARCHAR2
88661 --Distribution Link Type
88662  , p_source_43            IN VARCHAR2
88663 --Allocation to Main Distribution Identifier
88664  , p_source_45            IN NUMBER
88665 --Invoice Identifier
88666  , p_source_46            IN NUMBER
88667 --Invoice Distribution Identifier
88668  , p_source_52            IN NUMBER
88669 --Payables Encumbrance Upgrade Credit Account
88670  , p_source_53            IN NUMBER
88671 --Payables Encumbrance Upgrade Credit Amount
88672  , p_source_54            IN NUMBER
88673 --Invoice Currency Code
88674  , p_source_55            IN VARCHAR2
88675 --Payables Encumbrance Upgrade Credit Base Amount
88676  , p_source_56            IN NUMBER
88677 --Payables Encumbrance Upgrade Debit Account
88678  , p_source_57            IN NUMBER
88679 --Payables Encumbrance Upgrade Debit Amount
88680  , p_source_58            IN NUMBER
88681 --Payables Encumbrance Upgrade Debit Base Amount
88682  , p_source_59            IN NUMBER
88683 --Payables Encumbrance Upgrade Option
88684  , p_source_60            IN VARCHAR2
88685 --Deferred Accounting End Date
88686  , p_source_65            IN DATE
88687 --Deferred Accounting Option
88688  , p_source_66            IN VARCHAR2
88689 --Deferred Accounting Start Date
88690  , p_source_67            IN DATE
88691 --Override Accounted Amount Indicator
88692  , p_source_68            IN VARCHAR2
88693  , p_source_68_meaning    IN VARCHAR2
88694 --Third Party Type
88695  , p_source_71            IN VARCHAR2
88696 --Parent Reversal Identifier
88697  , p_source_72            IN NUMBER
88701  , p_source_74            IN NUMBER
88698 --Invoice Distribution Statistical Amount
88699  , p_source_73            IN NUMBER
88700 --Invoice Distribution Tax Line Identifier
88702 --Invoice Distribution Tax Distribution Identifier from Tax
88703  , p_source_75            IN NUMBER
88704 --Invoice Distribution Summary Tax Line Identifier
88705  , p_source_76            IN NUMBER
88706 --Payables Upgrade Credit Encumbrance Type Identifier
88707  , p_source_77            IN NUMBER
88708 --Payables Upgrade Debit Encumbrance Type Identifier
88709  , p_source_78            IN NUMBER
88710 --Business Flow Accounts Payable Application Identifier
88711  , p_source_79            IN NUMBER
88712 --Business Flow Invoice Distribution Type
88713  , p_source_80            IN VARCHAR2
88714 --Business Flow Invoice Entity Code
88715  , p_source_81            IN VARCHAR2
88716 --Business Flow Invoice Distribution Identifier
88717  , p_source_82            IN NUMBER
88718 --Business Flow Invoice Identifier
88719  , p_source_83            IN NUMBER
88720 --Accrue on Receipt Option
88721  , p_source_84            IN VARCHAR2
88722  , p_source_84_meaning    IN VARCHAR2
88723 --Purchasing Encumbrance Option
88724  , p_source_86            IN VARCHAR2
88725  , p_source_86_meaning    IN VARCHAR2
88726 --Invoice Encumbered Option
88727  , p_source_87            IN VARCHAR2
88728  , p_source_87_meaning    IN VARCHAR2
88729 --Invoice Distribution Encumbrance Amount
88730  , p_source_143            IN NUMBER
88731 --Invoice Distribution Encumbrance Ledger Amount
88732  , p_source_144            IN NUMBER
88733 )
88734 IS
88735 
88736 l_component_type              VARCHAR2(80);
88737 l_component_code              VARCHAR2(30);
88738 l_component_type_code         VARCHAR2(1);
88739 l_component_appl_id           INTEGER;
88740 l_amb_context_code            VARCHAR2(30);
88741 l_entity_code                 VARCHAR2(30);
88742 l_event_class_code            VARCHAR2(30);
88743 l_ae_header_id                NUMBER;
88744 l_event_type_code             VARCHAR2(30);
88745 l_line_definition_code        VARCHAR2(30);
88746 l_line_definition_owner_code  VARCHAR2(1);
88747 --
88748 -- adr variables
88749 l_segment                     VARCHAR2(30);
88750 l_ccid                        NUMBER;
88751 l_adr_transaction_coa_id      NUMBER;
88752 l_adr_accounting_coa_id       NUMBER;
88753 l_adr_flexfield_segment_code  VARCHAR2(30);
88754 l_adr_flex_value_set_id       NUMBER;
88755 l_adr_value_type_code         VARCHAR2(30);
88756 l_adr_value_combination_id    NUMBER;
88757 l_adr_value_segment_code      VARCHAR2(30);
88758 
88759 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
88760 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
88761 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
88762 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
88763 
88764 -- 4262811 Variables ------------------------------------------------------------------------------------------
88765 l_entered_amt_idx             NUMBER;
88766 l_accted_amt_idx              NUMBER;
88767 l_acc_rev_flag                VARCHAR2(1);
88768 l_accrual_line_num            NUMBER;
88769 l_tmp_amt                     NUMBER;
88770 l_acc_rev_natural_side_code   VARCHAR2(1);
88771 
88772 l_num_entries                 NUMBER;
88773 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
88774 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
88775 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
88776 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
88777 l_recog_line_1                NUMBER;
88778 l_recog_line_2                NUMBER;
88779 
88780 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
88781 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
88782 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
88783 
88784 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
88785 
88786 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
88787 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
88788 
88789 ---------------------------------------------------------------------------------------------------------------
88790 
88791 
88792 --
88793 -- bulk performance
88794 --
88795 l_balance_type_code           VARCHAR2(1);
88796 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
88797 l_log_module                  VARCHAR2(240);
88798 
88799 --
88800 -- Upgrade strategy
88801 --
88802 l_actual_upg_option           VARCHAR2(1);
88803 l_enc_upg_option           VARCHAR2(1);
88804 
88805 --
88806 BEGIN
88807 --
88811 --
88808 IF g_log_enabled THEN
88809       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_159';
88810 END IF;
88812 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88813 
88814       trace
88815          (p_msg      => 'BEGIN of AcctLineType_159'
88816          ,p_level    => C_LEVEL_PROCEDURE
88817          ,p_module   => l_log_module);
88818 
88819 END IF;
88820 --
88821 l_component_type             := 'AMB_JLT';
88822 l_component_code             := 'AP_ITEM_EXPENSE_CM_ENC';
88823 l_component_type_code        := 'S';
88824 l_component_appl_id          :=  200;
88825 l_amb_context_code           := 'DEFAULT';
88826 l_entity_code                := 'AP_INVOICES';
88827 l_event_class_code           := 'CREDIT MEMOS';
88828 l_event_type_code            := 'CREDIT MEMOS_ALL';
88829 l_line_definition_owner_code := 'S';
88830 l_line_definition_code       := 'ENC_REV_CM_ALL';
88831 --
88832 l_balance_type_code          := 'E';
88833 l_segment                     := NULL;
88834 l_ccid                        := NULL;
88835 l_adr_transaction_coa_id      := NULL;
88836 l_adr_accounting_coa_id       := NULL;
88837 l_adr_flexfield_segment_code  := NULL;
88838 l_adr_flex_value_set_id       := NULL;
88839 l_adr_value_type_code         := NULL;
88840 l_adr_value_combination_id    := NULL;
88841 l_adr_value_segment_code      := NULL;
88842 
88843 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
88844 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
88845 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
88846 l_budgetary_control_flag     := 'N';
88847 
88848 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
88849 l_bflow_applied_to_amt       := NULL; -- 5132302
88850 l_entered_amt_idx            := NULL;          -- 4262811
88854 l_tmp_amt                    := NULL;          -- 4262811
88851 l_accted_amt_idx             := NULL;          -- 4262811
88852 l_acc_rev_flag               := NULL;          -- 4262811
88853 l_accrual_line_num           := NULL;          -- 4262811
88855 --
88856  
88857 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
88858     l_balance_type_code <> 'B' THEN
88859 IF NVL(p_source_21,'
88860 ') =  'ITEM' AND 
88861 NVL(p_source_84,'
88862 ') <>  'Y' AND 
88863 NVL(p_source_86,'
88864 ') =  'Y' AND 
88865 NVL(p_source_87,'
88866 ') =  'Y'
88867  THEN 
88868 
88869    --
88870    XLA_AE_LINES_PKG.SetNewLine;
88871 
88872    p_balance_type_code          := l_balance_type_code;
88873    -- set the flag so later we will know whether the gain loss line needs to be created
88874    
88875    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
88876      p_actual_flag :='A';
88877    END IF;
88878 
88879    --
88880    -- bulk performance
88881    --
88882    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
88883                                       p_header_num   => 0); -- 4262811
88884    --
88885    -- set accounting line options
88886    --
88887    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
88888            p_natural_side_code          => 'C'
88889          , p_gain_or_loss_flag          => 'N'
88890          , p_gl_transfer_mode_code      => 'S'
88891          , p_acct_entry_type_code       => 'E'
88892          , p_switch_side_flag           => 'Y'
88893          , p_merge_duplicate_code       => 'A'
88894          );
88895    --
88896    l_acc_rev_natural_side_code := 'D';  -- 4262811
88897    -- 
88898    --
88899    -- set accounting line type info
88900    --
88901    xla_ae_lines_pkg.SetAcctLineType
88902       (p_component_type             => l_component_type
88906       ,p_accounting_line_code       => l_component_code
88903       ,p_event_type_code            => l_event_type_code
88904       ,p_line_definition_owner_code => l_line_definition_owner_code
88905       ,p_line_definition_code       => l_line_definition_code
88907       ,p_accounting_line_type_code  => l_component_type_code
88908       ,p_accounting_line_appl_id    => l_component_appl_id
88909       ,p_amb_context_code           => l_amb_context_code
88910       ,p_entity_code                => l_entity_code
88911       ,p_event_class_code           => l_event_class_code);
88912    --
88913    -- set accounting class
88914    --
88915    xla_ae_lines_pkg.SetAcctClass(
88916            p_accounting_class_code  => 'ITEM EXPENSE'
88917          , p_ae_header_id           => l_ae_header_id
88918          );
88919 
88920    --
88921    -- set rounding class
88922    --
88923    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
88924                       'ITEM EXPENSE';
88925 
88926    --
88927    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
88928    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
88929    --
88930    -- bulk performance
88931    --
88932    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
88933 
88934    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
88935       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
88936 
88937    -- 4955764
88938    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88939       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
88940 
88941    -- 4458381 Public Sector Enh
88942    
88943    --
88944    -- set accounting attributes for the line type
88945    --
88946    l_entered_amt_idx := 23;
88947    l_accted_amt_idx  := 25;
88948    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
88949    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
88950    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
88951    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
88952    l_rec_acct_attrs.array_num_value(2)  := 
88953 xla_ae_sources_pkg.GetSystemSourceNum(
88954    p_source_code           => 'XLA_EVENT_APPL_ID'
88955  , p_source_type_code      => 'Y'
88956  , p_source_application_id =>  602
88957 );
88958    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
88959    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
88960    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
88961    l_rec_acct_attrs.array_char_value(4)  := 
88962 xla_ae_sources_pkg.GetSystemSourceChar(
88963    p_source_code           => 'XLA_ENTITY_CODE'
88964  , p_source_type_code      => 'Y'
88965  , p_source_application_id =>  602
88966 );
88967    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
88968    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
88969    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
88970    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
88971    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
88972    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
88973    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
88974    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
88975    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
88976    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
88977    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
88978    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
88979    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
88980    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
88981    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
88982    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
88983    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
88984    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
88985    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
88986    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
88987    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
88988    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
88989    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
88990    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
88991    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
88992    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
88996    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
88993    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
88994    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
88995    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
88997    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
88998    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
88999    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
89000    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
89001    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
89002    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
89003    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
89004    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
89005    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
89006    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
89007    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
89008    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
89009    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
89010    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
89011    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
89012    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
89013    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
89014    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
89015    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
89016    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
89017    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
89018    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
89019    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
89020    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
89021    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
89022    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
89023    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
89024    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
89025    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
89026    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
89027    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
89028    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
89029    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
89030    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
89031    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
89032    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
89033    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
89034    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
89035 
89036    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
89037    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
89038 
89039    ---------------------------------------------------------------------------------------------------------------
89040    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
89041    ---------------------------------------------------------------------------------------------------------------
89042    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
89043 
89044    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89045    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89046 
89047    IF xla_accounting_cache_pkg.GetValueChar
89048          (p_source_code         => 'LEDGER_CATEGORY_CODE'
89049          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
89050    AND l_bflow_method_code = 'PRIOR_ENTRY'
89054        )
89051 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
89052    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
89053          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
89055    THEN
89056          xla_ae_lines_pkg.BflowUpgEntry
89057            (p_business_method_code    => l_bflow_method_code
89058            ,p_business_class_code     => l_bflow_class_code
89059            ,p_balance_type            => l_balance_type_code);
89060    ELSE
89061       NULL;
89062 XLA_AE_LINES_PKG.business_flow_validation(
89063                                 p_business_method_code     => l_bflow_method_code
89064                                ,p_business_class_code      => l_bflow_class_code
89065                                ,p_inherit_description_flag => l_inherit_desc_flag);
89066    END IF;
89067 
89068    --
89069    -- call analytical criteria
89070    --
89071    -- Inherited Analytical Criteria for business flow method of Prior Entry.
89072    --
89073    -- call description
89074    --
89075    -- No description or it is inherited.
89076    --
89077    -- call ADRs
89078    -- Bug 4922099
89079    --
89080    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89081         (NVL(l_actual_upg_option, 'N') = 'O') OR
89082         (NVL(l_enc_upg_option, 'N') = 'O')
89083       )
89084    THEN
89085    NULL;
89086    --
89087    --
89088    
89089    --
89090    --
89091    END IF;
89092    --
89093    -- Bug 4922099
89094    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
89095           (NVL(l_enc_upg_option, 'N') = 'O')
89096         ) AND
89097         (l_bflow_method_code = 'PRIOR_ENTRY')
89098       )
89099    THEN
89100       IF
89101       --
89102       1 = 1
89103       --
89104       THEN
89105       xla_accounting_err_pkg.build_message
89106                                     (p_appli_s_name            => 'XLA'
89107                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89108                                     ,p_token_1                 => 'LINE_NUMBER'
89109                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
89110                                     ,p_token_2                 => 'LINE_TYPE_NAME'
89111                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
89112                                                                              l_component_type
89113                                                                             ,l_component_code
89114                                                                             ,l_component_type_code
89115                                                                             ,l_component_appl_id
89119                                                                            )
89116                                                                             ,l_amb_context_code
89117                                                                             ,l_entity_code
89118                                                                             ,l_event_class_code
89120                                     ,p_token_3                 => 'OWNER'
89121                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
89122                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
89123                                                                           ,p_lookup_code    => l_component_type_code
89124                                                                          )
89125                                     ,p_token_4                 => 'PRODUCT_NAME'
89126                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
89127                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
89128                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
89129                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
89130                                     ,p_ae_header_id            =>  NULL
89131                                        );
89132 
89133         IF (C_LEVEL_ERROR>= g_log_level) THEN
89134                  trace
89135                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89136                       ,p_level    => C_LEVEL_ERROR
89137                       ,p_module   => l_log_module);
89138         END IF;
89139       END IF;
89140    END IF;
89141    --
89142    --
89143    ------------------------------------------------------------------------------------------------
89144    -- 4219869 Business Flow
89145    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
89146    -- Prior Entry.  Currently, the following code is always generated.
89147    ------------------------------------------------------------------------------------------------
89148    -- No ValidateCurrentLine for business flow method of Prior Entry
89149 
89150    ------------------------------------------------------------------------------------
89151    -- 4219869 Business Flow
89152    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
89153    ------------------------------------------------------------------------------------
89154    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89155 
89156    ----------------------------------------------------------------------------------
89157    -- 4219869 Business Flow
89158    -- Update journal entry status -- Need to generate this within IF <condition>
89159    ----------------------------------------------------------------------------------
89160    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89161          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
89162          ,p_balance_type_code => l_balance_type_code
89163          );
89164 
89165    -------------------------------------------------------------------------------------------
89166    -- 4262811 - Generate the Accrual Reversal lines
89167    -------------------------------------------------------------------------------------------
89168    BEGIN
89169       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
89170                               (g_array_event(p_event_id).array_value_num('header_index'));
89171       IF l_acc_rev_flag IS NULL THEN
89172          l_acc_rev_flag := 'N';
89173       END IF;
89174    EXCEPTION
89175       WHEN OTHERS THEN
89176          l_acc_rev_flag := 'N';
89177    END;
89178    --
89179    IF (l_acc_rev_flag = 'Y') THEN
89180 
89181        -- 4645092  ------------------------------------------------------------------------------
89182        -- To allow MPA report to determine if it should generate report process
89183        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
89184        ------------------------------------------------------------------------------------------
89185 
89186        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
89187        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
89188    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
89189    -- call ADRs
89190    -- Bug 4922099
89191    --
89192    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89193         (NVL(l_actual_upg_option, 'N') = 'O') OR
89194         (NVL(l_enc_upg_option, 'N') = 'O')
89195       )
89196    THEN
89197    NULL;
89198    --
89199    --
89200    
89201    --
89202    --
89203    END IF;
89204 
89205        --
89206        -- Update the line information that should be overwritten
89207        --
89208        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
89209                                          p_header_num   => 1);
89210        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
89211 
89212        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
89213 
89214        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
89215           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
89219       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
89216        END IF;
89217 
89218       --
89220       --
89221       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
89222           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
89223       ELSE
89224           ---------------------------------------------------------------------------------------------------
89225           -- 4262811a Switch Sign
89226           ---------------------------------------------------------------------------------------------------
89227           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
89228           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89229                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89230           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89231                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89232           -- 5132302
89233           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
89237 
89234                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89235 
89236       END IF;
89238       -- 4955764
89239       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89240       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
89241 
89242 
89243       XLA_AE_LINES_PKG.ValidateCurrentLine;
89244       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89245 
89246       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89247                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
89248                ,p_balance_type_code => l_balance_type_code);
89249 
89250    END IF;
89251 
89252    -----------------------------------------------------------------------------------------
89253    -- 4262811 Multiperiod Accounting
89254    -----------------------------------------------------------------------------------------
89255      -- No MPA option is assigned.
89256 
89257 
89258 END IF;
89259 END IF;
89260 --
89261 
89262 --
89263 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89264    trace
89265       (p_msg      => 'END of AcctLineType_159'
89266       ,p_level    => C_LEVEL_PROCEDURE
89267       ,p_module   => l_log_module);
89268 END IF;
89269 --
89270 EXCEPTION
89271   WHEN xla_exceptions_pkg.application_exception THEN
89272       RAISE;
89273   WHEN OTHERS THEN
89274        xla_exceptions_pkg.raise_message
89275            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_159');
89276 END AcctLineType_159;
89277 --
89278 
89279 ---------------------------------------
89280 --
89281 -- PRIVATE FUNCTION
89282 --         AcctLineType_160
89283 --
89284 ---------------------------------------
89285 PROCEDURE AcctLineType_160 (
89286   p_application_id        IN NUMBER
89287  ,p_event_id              IN NUMBER
89288  ,p_calculate_acctd_flag  IN VARCHAR2
89289  ,p_calculate_g_l_flag    IN VARCHAR2
89290  ,p_actual_flag           IN OUT VARCHAR2
89291  ,p_balance_type_code     OUT VARCHAR2
89292  ,p_gain_or_loss_ref      OUT VARCHAR2
89293  
89294 --Invoice Distribution Description
89295  , p_source_1            IN VARCHAR2
89296 --Invoice Distribution Ledger Amount
89297  , p_source_9            IN NUMBER
89298 --Invoice Distribution Account
89299  , p_source_18            IN NUMBER
89300 --Invoice Distribution Type
89301  , p_source_21            IN VARCHAR2
89302  , p_source_21_meaning    IN VARCHAR2
89303 --Accounting Reversal Indicator
89304  , p_source_41            IN VARCHAR2
89305 --Distribution Link Type
89306  , p_source_43            IN VARCHAR2
89307 --Allocation to Main Distribution Identifier
89308  , p_source_45            IN NUMBER
89309 --Invoice Identifier
89310  , p_source_46            IN NUMBER
89311 --Invoice Distribution Identifier
89312  , p_source_52            IN NUMBER
89313 --Payables Encumbrance Upgrade Credit Account
89314  , p_source_53            IN NUMBER
89315 --Payables Encumbrance Upgrade Credit Amount
89316  , p_source_54            IN NUMBER
89317 --Invoice Currency Code
89318  , p_source_55            IN VARCHAR2
89319 --Payables Encumbrance Upgrade Credit Base Amount
89320  , p_source_56            IN NUMBER
89321 --Payables Encumbrance Upgrade Debit Account
89325 --Payables Encumbrance Upgrade Debit Base Amount
89322  , p_source_57            IN NUMBER
89323 --Payables Encumbrance Upgrade Debit Amount
89324  , p_source_58            IN NUMBER
89326  , p_source_59            IN NUMBER
89327 --Payables Encumbrance Upgrade Option
89328  , p_source_60            IN VARCHAR2
89329 --Invoice Distribution Amount
89330  , p_source_61            IN NUMBER
89331 --Deferred Accounting End Date
89332  , p_source_65            IN DATE
89333 --Deferred Accounting Option
89334  , p_source_66            IN VARCHAR2
89335 --Deferred Accounting Start Date
89336  , p_source_67            IN DATE
89337 --Override Accounted Amount Indicator
89338  , p_source_68            IN VARCHAR2
89339  , p_source_68_meaning    IN VARCHAR2
89340 --Invoice Supplier Identifier
89341  , p_source_69            IN NUMBER
89342 --Invoice Supplier Site Identifier
89343  , p_source_70            IN NUMBER
89344 --Third Party Type
89345  , p_source_71            IN VARCHAR2
89346 --Parent Reversal Identifier
89347  , p_source_72            IN NUMBER
89348 --Invoice Distribution Tax Line Identifier
89349  , p_source_74            IN NUMBER
89350 --Invoice Distribution Tax Distribution Identifier from Tax
89351  , p_source_75            IN NUMBER
89352 --Invoice Distribution Summary Tax Line Identifier
89353  , p_source_76            IN NUMBER
89354 --Payables Upgrade Credit Encumbrance Type Identifier
89355  , p_source_77            IN NUMBER
89356 --Payables Upgrade Debit Encumbrance Type Identifier
89357  , p_source_78            IN NUMBER
89358 --Business Flow Accounts Payable Application Identifier
89359  , p_source_79            IN NUMBER
89360 --Business Flow Invoice Distribution Type
89361  , p_source_80            IN VARCHAR2
89362 --Business Flow Invoice Entity Code
89363  , p_source_81            IN VARCHAR2
89364 --Business Flow Invoice Distribution Identifier
89365  , p_source_82            IN NUMBER
89366 --Business Flow Invoice Identifier
89367  , p_source_83            IN NUMBER
89368 --Accrue on Receipt Option
89369  , p_source_84            IN VARCHAR2
89370  , p_source_84_meaning    IN VARCHAR2
89371 --Invoice Exchange Date
89372  , p_source_136            IN DATE
89373 --Invoice Exchange Rate
89374  , p_source_137            IN NUMBER
89375 --Invoice Exchange Rate Type
89376  , p_source_138            IN VARCHAR2
89377 )
89378 IS
89379 
89380 l_component_type              VARCHAR2(80);
89381 l_component_code              VARCHAR2(30);
89382 l_component_type_code         VARCHAR2(1);
89383 l_component_appl_id           INTEGER;
89384 l_amb_context_code            VARCHAR2(30);
89385 l_entity_code                 VARCHAR2(30);
89386 l_event_class_code            VARCHAR2(30);
89387 l_ae_header_id                NUMBER;
89388 l_event_type_code             VARCHAR2(30);
89389 l_line_definition_code        VARCHAR2(30);
89390 l_line_definition_owner_code  VARCHAR2(1);
89391 --
89392 -- adr variables
89393 l_segment                     VARCHAR2(30);
89394 l_ccid                        NUMBER;
89395 l_adr_transaction_coa_id      NUMBER;
89396 l_adr_accounting_coa_id       NUMBER;
89397 l_adr_flexfield_segment_code  VARCHAR2(30);
89398 l_adr_flex_value_set_id       NUMBER;
89399 l_adr_value_type_code         VARCHAR2(30);
89400 l_adr_value_combination_id    NUMBER;
89406 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
89401 l_adr_value_segment_code      VARCHAR2(30);
89402 
89403 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
89404 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
89405 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
89410 l_accted_amt_idx              NUMBER;
89407 
89408 -- 4262811 Variables ------------------------------------------------------------------------------------------
89409 l_entered_amt_idx             NUMBER;
89411 l_acc_rev_flag                VARCHAR2(1);
89412 l_accrual_line_num            NUMBER;
89413 l_tmp_amt                     NUMBER;
89414 l_acc_rev_natural_side_code   VARCHAR2(1);
89415 
89416 l_num_entries                 NUMBER;
89417 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
89418 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
89419 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
89420 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
89421 l_recog_line_1                NUMBER;
89422 l_recog_line_2                NUMBER;
89423 
89424 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
89425 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
89426 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
89427 
89428 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
89429 
89430 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
89431 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
89432 
89433 ---------------------------------------------------------------------------------------------------------------
89434 
89435 
89436 --
89437 -- bulk performance
89438 --
89439 l_balance_type_code           VARCHAR2(1);
89440 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
89441 l_log_module                  VARCHAR2(240);
89442 
89443 --
89444 -- Upgrade strategy
89445 --
89446 l_actual_upg_option           VARCHAR2(1);
89447 l_enc_upg_option           VARCHAR2(1);
89448 
89449 --
89450 BEGIN
89451 --
89452 IF g_log_enabled THEN
89453       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_160';
89454 END IF;
89455 --
89456 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89457 
89458       trace
89459          (p_msg      => 'BEGIN of AcctLineType_160'
89460          ,p_level    => C_LEVEL_PROCEDURE
89461          ,p_module   => l_log_module);
89462 
89463 END IF;
89464 --
89465 l_component_type             := 'AMB_JLT';
89466 l_component_code             := 'AP_ITEM_EXPENSE_DM';
89467 l_component_type_code        := 'S';
89468 l_component_appl_id          :=  200;
89469 l_amb_context_code           := 'DEFAULT';
89470 l_entity_code                := 'AP_INVOICES';
89471 l_event_class_code           := 'DEBIT MEMOS';
89472 l_event_type_code            := 'DEBIT MEMOS_ALL';
89473 l_line_definition_owner_code := 'S';
89474 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
89475 --
89476 l_balance_type_code          := 'A';
89477 l_segment                     := NULL;
89478 l_ccid                        := NULL;
89479 l_adr_transaction_coa_id      := NULL;
89480 l_adr_accounting_coa_id       := NULL;
89481 l_adr_flexfield_segment_code  := NULL;
89482 l_adr_flex_value_set_id       := NULL;
89483 l_adr_value_type_code         := NULL;
89484 l_adr_value_combination_id    := NULL;
89485 l_adr_value_segment_code      := NULL;
89486 
89487 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
89488 l_bflow_class_code           := '';    -- 4219869 Business Flow
89489 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
89490 l_budgetary_control_flag     := 'N';
89491 
89492 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
89493 l_bflow_applied_to_amt       := NULL; -- 5132302
89494 l_entered_amt_idx            := NULL;          -- 4262811
89495 l_accted_amt_idx             := NULL;          -- 4262811
89496 l_acc_rev_flag               := NULL;          -- 4262811
89497 l_accrual_line_num           := NULL;          -- 4262811
89498 l_tmp_amt                    := NULL;          -- 4262811
89499 --
89500  
89501 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
89502     l_balance_type_code <> 'B' THEN
89503 IF NVL(p_source_21,'
89504 ') =  'RETROEXPENSE' OR 
89505 NVL(p_source_21,'
89506 ') =  'ITEM' OR 
89507 (NVL(p_source_21,'
89508 ') =  'ERV' AND 
89509 NVL(p_source_84,'
89510 ') <>  'Y') OR 
89511 (NVL(p_source_21,'
89512 ') =  'IPV' AND 
89513 NVL(p_source_84,'
89514 ') <>  'Y')
89515  THEN 
89516 
89517    --
89518    XLA_AE_LINES_PKG.SetNewLine;
89519 
89520    p_balance_type_code          := l_balance_type_code;
89521    -- set the flag so later we will know whether the gain loss line needs to be created
89522    
89523    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
89524      p_actual_flag :='A';
89525    END IF;
89526 
89527    --
89528    -- bulk performance
89529    --
89530    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
89531                                       p_header_num   => 0); -- 4262811
89532    --
89533    -- set accounting line options
89534    --
89535    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
89536            p_natural_side_code          => 'D'
89537          , p_gain_or_loss_flag          => 'N'
89538          , p_gl_transfer_mode_code      => 'S'
89539          , p_acct_entry_type_code       => 'A'
89540          , p_switch_side_flag           => 'Y'
89541          , p_merge_duplicate_code       => 'A'
89542          );
89543    --
89544    l_acc_rev_natural_side_code := 'C';  -- 4262811
89545    -- 
89546    --
89547    -- set accounting line type info
89548    --
89549    xla_ae_lines_pkg.SetAcctLineType
89553       ,p_line_definition_code       => l_line_definition_code
89550       (p_component_type             => l_component_type
89551       ,p_event_type_code            => l_event_type_code
89552       ,p_line_definition_owner_code => l_line_definition_owner_code
89554       ,p_accounting_line_code       => l_component_code
89555       ,p_accounting_line_type_code  => l_component_type_code
89556       ,p_accounting_line_appl_id    => l_component_appl_id
89557       ,p_amb_context_code           => l_amb_context_code
89558       ,p_entity_code                => l_entity_code
89562    --
89559       ,p_event_class_code           => l_event_class_code);
89560    --
89561    -- set accounting class
89563    xla_ae_lines_pkg.SetAcctClass(
89564            p_accounting_class_code  => 'ITEM EXPENSE'
89565          , p_ae_header_id           => l_ae_header_id
89566          );
89567 
89571    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
89568    --
89569    -- set rounding class
89570    --
89572                       'ITEM EXPENSE';
89573 
89574    --
89575    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
89576    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
89577    --
89578    -- bulk performance
89579    --
89580    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
89581 
89582    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
89583       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
89584 
89585    -- 4955764
89586    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89587       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
89588 
89589    -- 4458381 Public Sector Enh
89590    
89591    --
89592    -- set accounting attributes for the line type
89593    --
89594    l_entered_amt_idx := 23;
89595    l_accted_amt_idx  := 28;
89596    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
89597    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
89598    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
89599    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
89600    l_rec_acct_attrs.array_num_value(2)  := 
89601 xla_ae_sources_pkg.GetSystemSourceNum(
89602    p_source_code           => 'XLA_EVENT_APPL_ID'
89603  , p_source_type_code      => 'Y'
89604  , p_source_application_id =>  602
89605 );
89606    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
89607    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
89608    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
89609    l_rec_acct_attrs.array_char_value(4)  := 
89610 xla_ae_sources_pkg.GetSystemSourceChar(
89611    p_source_code           => 'XLA_ENTITY_CODE'
89612  , p_source_type_code      => 'Y'
89613  , p_source_application_id =>  602
89614 );
89615    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
89616    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
89617    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
89618    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
89619    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
89620    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
89621    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
89622    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
89623    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
89624    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
89625    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
89626    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
89627    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
89628    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
89629    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
89630    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
89631    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
89632    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
89633    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
89634    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
89635    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
89636    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
89637    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
89638    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
89639    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
89640    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
89641    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
89642    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
89643    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
89644    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
89645    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
89646    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
89647    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
89648    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
89649    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
89650    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
89651    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
89652    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
89653    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
89654    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
89655    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
89656    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
89657    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
89658    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
89659    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
89660    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
89661    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
89662    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
89663    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
89664    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
89665    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
89666    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
89670    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
89667    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
89668    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
89669    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
89671    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
89672    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
89673    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
89674    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
89675    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
89676    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
89677    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
89678    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
89682    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
89679    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
89680    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
89681    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
89683    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
89684    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
89685    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
89686    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
89687    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
89688    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
89689    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
89690    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
89691 
89692    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
89693    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
89694 
89695    ---------------------------------------------------------------------------------------------------------------
89696    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
89697    ---------------------------------------------------------------------------------------------------------------
89698    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
89699 
89700    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89701    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89702 
89703    IF xla_accounting_cache_pkg.GetValueChar
89704          (p_source_code         => 'LEDGER_CATEGORY_CODE'
89705          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
89706    AND l_bflow_method_code = 'PRIOR_ENTRY'
89707 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
89708    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
89709          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
89710        )
89711    THEN
89712          xla_ae_lines_pkg.BflowUpgEntry
89713            (p_business_method_code    => l_bflow_method_code
89714            ,p_business_class_code     => l_bflow_class_code
89715            ,p_balance_type            => l_balance_type_code);
89716    ELSE
89717       NULL;
89718 -- No business flow processing for business flow method of NONE.
89719    END IF;
89720 
89721    --
89722    -- call analytical criteria
89723    --
89724    
89725    --
89726    -- call description
89727    --
89728    
89729 xla_ae_lines_pkg.SetLineDescription(
89730    p_ae_header_id => l_ae_header_id
89731   ,p_description  => Description_2 (
89732      p_application_id         => p_application_id
89733    , p_ae_header_id           => l_ae_header_id 
89734 , p_source_1 => p_source_1
89735    )
89736 );
89737 
89738 
89739    --
89740    -- call ADRs
89741    -- Bug 4922099
89742    --
89743    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89744         (NVL(l_actual_upg_option, 'N') = 'O') OR
89745         (NVL(l_enc_upg_option, 'N') = 'O')
89746       )
89747    THEN
89748    NULL;
89749    --
89750    --
89751    
89752   l_ccid := AcctDerRule_32(
89753            p_application_id           => p_application_id
89754          , p_ae_header_id             => l_ae_header_id 
89755 , p_source_18 => p_source_18
89756          , x_transaction_coa_id       => l_adr_transaction_coa_id
89757          , x_accounting_coa_id        => l_adr_accounting_coa_id
89758          , x_value_type_code          => l_adr_value_type_code
89759          , p_side                     => 'NA'
89760    );
89761 
89762    xla_ae_lines_pkg.set_ccid(
89763     p_code_combination_id          => l_ccid
89764   , p_value_type_code              => l_adr_value_type_code
89768   , p_adr_type_code                => 'S'
89765   , p_transaction_coa_id           => l_adr_transaction_coa_id
89766   , p_accounting_coa_id            => l_adr_accounting_coa_id
89767   , p_adr_code                     => 'AP_INVOICE_DIST'
89769   , p_component_type               => l_component_type
89770   , p_component_code               => l_component_code
89771   , p_component_type_code          => l_component_type_code
89772   , p_component_appl_id            => l_component_appl_id
89773   , p_amb_context_code             => l_amb_context_code
89774   , p_side                         => 'NA'
89775   );
89776 
89777 
89778    --
89779    --
89780    END IF;
89781    --
89782    -- Bug 4922099
89783    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
89784           (NVL(l_enc_upg_option, 'N') = 'O')
89785         ) AND
89786         (l_bflow_method_code = 'PRIOR_ENTRY')
89787       )
89788    THEN
89789       IF
89790       --
89791       1 = 2
89792       --
89793       THEN
89794       xla_accounting_err_pkg.build_message
89795                                     (p_appli_s_name            => 'XLA'
89796                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89797                                     ,p_token_1                 => 'LINE_NUMBER'
89798                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
89799                                     ,p_token_2                 => 'LINE_TYPE_NAME'
89800                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
89801                                                                              l_component_type
89802                                                                             ,l_component_code
89803                                                                             ,l_component_type_code
89804                                                                             ,l_component_appl_id
89805                                                                             ,l_amb_context_code
89806                                                                             ,l_entity_code
89807                                                                             ,l_event_class_code
89808                                                                            )
89809                                     ,p_token_3                 => 'OWNER'
89810                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
89811                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
89812                                                                           ,p_lookup_code    => l_component_type_code
89816                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
89813                                                                          )
89814                                     ,p_token_4                 => 'PRODUCT_NAME'
89815                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
89817                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
89818                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
89819                                     ,p_ae_header_id            =>  NULL
89820                                        );
89824                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89821 
89822         IF (C_LEVEL_ERROR>= g_log_level) THEN
89823                  trace
89825                       ,p_level    => C_LEVEL_ERROR
89826                       ,p_module   => l_log_module);
89827         END IF;
89828       END IF;
89829    END IF;
89830    --
89831    --
89832    ------------------------------------------------------------------------------------------------
89833    -- 4219869 Business Flow
89834    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
89835    -- Prior Entry.  Currently, the following code is always generated.
89836    ------------------------------------------------------------------------------------------------
89837    XLA_AE_LINES_PKG.ValidateCurrentLine;
89838 
89839    ------------------------------------------------------------------------------------
89840    -- 4219869 Business Flow
89841    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
89842    ------------------------------------------------------------------------------------
89843    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89844 
89845    ----------------------------------------------------------------------------------
89846    -- 4219869 Business Flow
89847    -- Update journal entry status -- Need to generate this within IF <condition>
89848    ----------------------------------------------------------------------------------
89849    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89850          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
89851          ,p_balance_type_code => l_balance_type_code
89852          );
89853 
89854    -------------------------------------------------------------------------------------------
89855    -- 4262811 - Generate the Accrual Reversal lines
89856    -------------------------------------------------------------------------------------------
89857    BEGIN
89858       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
89859                               (g_array_event(p_event_id).array_value_num('header_index'));
89860       IF l_acc_rev_flag IS NULL THEN
89861          l_acc_rev_flag := 'N';
89862       END IF;
89863    EXCEPTION
89864       WHEN OTHERS THEN
89865          l_acc_rev_flag := 'N';
89866    END;
89867    --
89868    IF (l_acc_rev_flag = 'Y') THEN
89869 
89870        -- 4645092  ------------------------------------------------------------------------------
89871        -- To allow MPA report to determine if it should generate report process
89872        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
89873        ------------------------------------------------------------------------------------------
89874 
89875        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
89876        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
89877    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
89878    -- call ADRs
89879    -- Bug 4922099
89880    --
89881    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89882         (NVL(l_actual_upg_option, 'N') = 'O') OR
89883         (NVL(l_enc_upg_option, 'N') = 'O')
89884       )
89885    THEN
89886    NULL;
89887    --
89888    --
89889    
89890   l_ccid := AcctDerRule_32(
89891            p_application_id           => p_application_id
89892          , p_ae_header_id             => l_ae_header_id 
89893 , p_source_18 => p_source_18
89894          , x_transaction_coa_id       => l_adr_transaction_coa_id
89895          , x_accounting_coa_id        => l_adr_accounting_coa_id
89896          , x_value_type_code          => l_adr_value_type_code
89897          , p_side                     => 'NA'
89898    );
89899 
89900    xla_ae_lines_pkg.set_ccid(
89901     p_code_combination_id          => l_ccid
89902   , p_value_type_code              => l_adr_value_type_code
89903   , p_transaction_coa_id           => l_adr_transaction_coa_id
89904   , p_accounting_coa_id            => l_adr_accounting_coa_id
89905   , p_adr_code                     => 'AP_INVOICE_DIST'
89906   , p_adr_type_code                => 'S'
89907   , p_component_type               => l_component_type
89908   , p_component_code               => l_component_code
89909   , p_component_type_code          => l_component_type_code
89910   , p_component_appl_id            => l_component_appl_id
89911   , p_amb_context_code             => l_amb_context_code
89912   , p_side                         => 'NA'
89913   );
89914 
89915 
89916    --
89917    --
89918    END IF;
89919 
89920        --
89921        -- Update the line information that should be overwritten
89922        --
89923        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
89924                                          p_header_num   => 1);
89925        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
89926 
89927        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
89928 
89929        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
89930           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
89931        END IF;
89932 
89933       --
89934       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
89935       --
89936       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
89937           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
89941           ---------------------------------------------------------------------------------------------------
89938       ELSE
89939           ---------------------------------------------------------------------------------------------------
89940           -- 4262811a Switch Sign
89942           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
89946                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89943           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89944                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89945           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89947           -- 5132302
89948           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
89949                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89950 
89951       END IF;
89952 
89953       -- 4955764
89954       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89955       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
89956 
89957 
89958       XLA_AE_LINES_PKG.ValidateCurrentLine;
89959       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89960 
89961       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89962                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
89963                ,p_balance_type_code => l_balance_type_code);
89964 
89965    END IF;
89966 
89967    -----------------------------------------------------------------------------------------
89968    -- 4262811 Multiperiod Accounting
89969    -----------------------------------------------------------------------------------------
89970      -- No MPA option is assigned.
89971 
89972 
89973 END IF;
89974 END IF;
89975 --
89976 
89977 --
89978 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89979    trace
89980       (p_msg      => 'END of AcctLineType_160'
89981       ,p_level    => C_LEVEL_PROCEDURE
89982       ,p_module   => l_log_module);
89983 END IF;
89984 --
89985 EXCEPTION
89986   WHEN xla_exceptions_pkg.application_exception THEN
89987       RAISE;
89988   WHEN OTHERS THEN
89989        xla_exceptions_pkg.raise_message
89990            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_160');
89991 END AcctLineType_160;
89992 --
89993 
89994 ---------------------------------------
89995 --
89996 -- PRIVATE FUNCTION
89997 --         AcctLineType_161
89998 --
89999 ---------------------------------------
90000 PROCEDURE AcctLineType_161 (
90001   p_application_id        IN NUMBER
90002  ,p_event_id              IN NUMBER
90003  ,p_calculate_acctd_flag  IN VARCHAR2
90004  ,p_calculate_g_l_flag    IN VARCHAR2
90005  ,p_actual_flag           IN OUT VARCHAR2
90006  ,p_balance_type_code     OUT VARCHAR2
90007  ,p_gain_or_loss_ref      OUT VARCHAR2
90008  
90009 --Invoice Distribution Type
90010  , p_source_21            IN VARCHAR2
90011  , p_source_21_meaning    IN VARCHAR2
90012 --Accounting Reversal Indicator
90013  , p_source_41            IN VARCHAR2
90014 --Distribution Link Type
90015  , p_source_43            IN VARCHAR2
90016 --Allocation to Main Distribution Identifier
90017  , p_source_45            IN NUMBER
90018 --Invoice Identifier
90019  , p_source_46            IN NUMBER
90020 --Invoice Distribution Identifier
90021  , p_source_52            IN NUMBER
90022 --Payables Encumbrance Upgrade Credit Account
90023  , p_source_53            IN NUMBER
90024 --Payables Encumbrance Upgrade Credit Amount
90025  , p_source_54            IN NUMBER
90026 --Invoice Currency Code
90027  , p_source_55            IN VARCHAR2
90028 --Payables Encumbrance Upgrade Credit Base Amount
90029  , p_source_56            IN NUMBER
90030 --Payables Encumbrance Upgrade Debit Account
90031  , p_source_57            IN NUMBER
90032 --Payables Encumbrance Upgrade Debit Amount
90033  , p_source_58            IN NUMBER
90034 --Payables Encumbrance Upgrade Debit Base Amount
90035  , p_source_59            IN NUMBER
90036 --Payables Encumbrance Upgrade Option
90037  , p_source_60            IN VARCHAR2
90038 --Deferred Accounting End Date
90039  , p_source_65            IN DATE
90040 --Deferred Accounting Option
90041  , p_source_66            IN VARCHAR2
90042 --Deferred Accounting Start Date
90043  , p_source_67            IN DATE
90044 --Override Accounted Amount Indicator
90045  , p_source_68            IN VARCHAR2
90046  , p_source_68_meaning    IN VARCHAR2
90050  , p_source_72            IN NUMBER
90047 --Third Party Type
90048  , p_source_71            IN VARCHAR2
90049 --Parent Reversal Identifier
90051 --Invoice Distribution Tax Line Identifier
90052  , p_source_74            IN NUMBER
90053 --Invoice Distribution Tax Distribution Identifier from Tax
90054  , p_source_75            IN NUMBER
90055 --Invoice Distribution Summary Tax Line Identifier
90056  , p_source_76            IN NUMBER
90057 --Payables Upgrade Credit Encumbrance Type Identifier
90058  , p_source_77            IN NUMBER
90059 --Payables Upgrade Debit Encumbrance Type Identifier
90060  , p_source_78            IN NUMBER
90061 --Business Flow Accounts Payable Application Identifier
90062  , p_source_79            IN NUMBER
90063 --Business Flow Invoice Distribution Type
90064  , p_source_80            IN VARCHAR2
90065 --Business Flow Invoice Entity Code
90066  , p_source_81            IN VARCHAR2
90067 --Business Flow Invoice Distribution Identifier
90068  , p_source_82            IN NUMBER
90069 --Business Flow Invoice Identifier
90070  , p_source_83            IN NUMBER
90071 --Accrue on Receipt Option
90072  , p_source_84            IN VARCHAR2
90073  , p_source_84_meaning    IN VARCHAR2
90074 --Purchasing Encumbrance Option
90075  , p_source_86            IN VARCHAR2
90076  , p_source_86_meaning    IN VARCHAR2
90077 --Invoice Encumbered Option
90078  , p_source_87            IN VARCHAR2
90079  , p_source_87_meaning    IN VARCHAR2
90080 --Invoice Distribution Encumbrance Amount
90081  , p_source_143            IN NUMBER
90082 --Invoice Distribution Encumbrance Ledger Amount
90083  , p_source_144            IN NUMBER
90084 )
90085 IS
90086 
90087 l_component_type              VARCHAR2(80);
90088 l_component_code              VARCHAR2(30);
90089 l_component_type_code         VARCHAR2(1);
90090 l_component_appl_id           INTEGER;
90091 l_amb_context_code            VARCHAR2(30);
90092 l_entity_code                 VARCHAR2(30);
90093 l_event_class_code            VARCHAR2(30);
90094 l_ae_header_id                NUMBER;
90095 l_event_type_code             VARCHAR2(30);
90096 l_line_definition_code        VARCHAR2(30);
90097 l_line_definition_owner_code  VARCHAR2(1);
90098 --
90099 -- adr variables
90100 l_segment                     VARCHAR2(30);
90101 l_ccid                        NUMBER;
90105 l_adr_flex_value_set_id       NUMBER;
90102 l_adr_transaction_coa_id      NUMBER;
90103 l_adr_accounting_coa_id       NUMBER;
90104 l_adr_flexfield_segment_code  VARCHAR2(30);
90106 l_adr_value_type_code         VARCHAR2(30);
90107 l_adr_value_combination_id    NUMBER;
90108 l_adr_value_segment_code      VARCHAR2(30);
90109 
90110 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
90111 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
90112 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
90113 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
90114 
90115 -- 4262811 Variables ------------------------------------------------------------------------------------------
90116 l_entered_amt_idx             NUMBER;
90117 l_accted_amt_idx              NUMBER;
90118 l_acc_rev_flag                VARCHAR2(1);
90119 l_accrual_line_num            NUMBER;
90120 l_tmp_amt                     NUMBER;
90121 l_acc_rev_natural_side_code   VARCHAR2(1);
90122 
90123 l_num_entries                 NUMBER;
90124 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
90125 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
90126 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
90127 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
90128 l_recog_line_1                NUMBER;
90129 l_recog_line_2                NUMBER;
90130 
90131 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
90132 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
90133 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
90134 
90135 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
90136 
90137 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
90138 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
90139 
90140 ---------------------------------------------------------------------------------------------------------------
90141 
90142 
90143 --
90144 -- bulk performance
90145 --
90149 
90146 l_balance_type_code           VARCHAR2(1);
90147 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
90148 l_log_module                  VARCHAR2(240);
90150 --
90151 -- Upgrade strategy
90152 --
90153 l_actual_upg_option           VARCHAR2(1);
90154 l_enc_upg_option           VARCHAR2(1);
90155 
90156 --
90157 BEGIN
90158 --
90159 IF g_log_enabled THEN
90160       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_161';
90161 END IF;
90162 --
90163 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90164 
90165       trace
90166          (p_msg      => 'BEGIN of AcctLineType_161'
90167          ,p_level    => C_LEVEL_PROCEDURE
90168          ,p_module   => l_log_module);
90169 
90170 END IF;
90171 --
90172 l_component_type             := 'AMB_JLT';
90173 l_component_code             := 'AP_ITEM_EXPENSE_DM_ENC';
90174 l_component_type_code        := 'S';
90175 l_component_appl_id          :=  200;
90176 l_amb_context_code           := 'DEFAULT';
90177 l_entity_code                := 'AP_INVOICES';
90178 l_event_class_code           := 'DEBIT MEMOS';
90179 l_event_type_code            := 'DEBIT MEMOS_ALL';
90180 l_line_definition_owner_code := 'S';
90181 l_line_definition_code       := 'ENC_REV_DM_ALL';
90182 --
90183 l_balance_type_code          := 'E';
90184 l_segment                     := NULL;
90185 l_ccid                        := NULL;
90186 l_adr_transaction_coa_id      := NULL;
90187 l_adr_accounting_coa_id       := NULL;
90188 l_adr_flexfield_segment_code  := NULL;
90189 l_adr_flex_value_set_id       := NULL;
90190 l_adr_value_type_code         := NULL;
90191 l_adr_value_combination_id    := NULL;
90192 l_adr_value_segment_code      := NULL;
90193 
90194 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
90195 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
90196 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
90197 l_budgetary_control_flag     := 'N';
90198 
90199 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
90200 l_bflow_applied_to_amt       := NULL; -- 5132302
90201 l_entered_amt_idx            := NULL;          -- 4262811
90202 l_accted_amt_idx             := NULL;          -- 4262811
90203 l_acc_rev_flag               := NULL;          -- 4262811
90204 l_accrual_line_num           := NULL;          -- 4262811
90205 l_tmp_amt                    := NULL;          -- 4262811
90206 --
90207  
90208 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
90209     l_balance_type_code <> 'B' THEN
90210 IF NVL(p_source_21,'
90211 ') =  'ITEM' AND 
90212 NVL(p_source_84,'
90213 ') <>  'Y' AND 
90214 NVL(p_source_86,'
90215 ') =  'Y' AND 
90216 NVL(p_source_87,'
90217 ') =  'Y'
90218  THEN 
90219 
90220    --
90221    XLA_AE_LINES_PKG.SetNewLine;
90222 
90223    p_balance_type_code          := l_balance_type_code;
90224    -- set the flag so later we will know whether the gain loss line needs to be created
90225    
90226    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
90227      p_actual_flag :='A';
90228    END IF;
90229 
90230    --
90231    -- bulk performance
90232    --
90233    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
90234                                       p_header_num   => 0); -- 4262811
90235    --
90236    -- set accounting line options
90237    --
90238    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
90239            p_natural_side_code          => 'C'
90240          , p_gain_or_loss_flag          => 'N'
90241          , p_gl_transfer_mode_code      => 'S'
90242          , p_acct_entry_type_code       => 'E'
90243          , p_switch_side_flag           => 'Y'
90244          , p_merge_duplicate_code       => 'A'
90245          );
90246    --
90247    l_acc_rev_natural_side_code := 'D';  -- 4262811
90248    -- 
90249    --
90250    -- set accounting line type info
90251    --
90252    xla_ae_lines_pkg.SetAcctLineType
90253       (p_component_type             => l_component_type
90254       ,p_event_type_code            => l_event_type_code
90255       ,p_line_definition_owner_code => l_line_definition_owner_code
90256       ,p_line_definition_code       => l_line_definition_code
90257       ,p_accounting_line_code       => l_component_code
90258       ,p_accounting_line_type_code  => l_component_type_code
90259       ,p_accounting_line_appl_id    => l_component_appl_id
90260       ,p_amb_context_code           => l_amb_context_code
90261       ,p_entity_code                => l_entity_code
90262       ,p_event_class_code           => l_event_class_code);
90263    --
90264    -- set accounting class
90265    --
90266    xla_ae_lines_pkg.SetAcctClass(
90267            p_accounting_class_code  => 'ITEM EXPENSE'
90268          , p_ae_header_id           => l_ae_header_id
90269          );
90270 
90271    --
90272    -- set rounding class
90273    --
90274    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
90275                       'ITEM EXPENSE';
90276 
90277    --
90278    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
90279    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
90280    --
90281    -- bulk performance
90282    --
90283    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
90284 
90285    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
90286       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
90287 
90291 
90288    -- 4955764
90289    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90290       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
90292    -- 4458381 Public Sector Enh
90293    
90294    --
90295    -- set accounting attributes for the line type
90296    --
90297    l_entered_amt_idx := 23;
90298    l_accted_amt_idx  := 25;
90299    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
90300    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
90301    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
90302    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
90303    l_rec_acct_attrs.array_num_value(2)  := 
90304 xla_ae_sources_pkg.GetSystemSourceNum(
90305    p_source_code           => 'XLA_EVENT_APPL_ID'
90306  , p_source_type_code      => 'Y'
90307  , p_source_application_id =>  602
90308 );
90309    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
90310    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
90311    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
90312    l_rec_acct_attrs.array_char_value(4)  := 
90313 xla_ae_sources_pkg.GetSystemSourceChar(
90314    p_source_code           => 'XLA_ENTITY_CODE'
90315  , p_source_type_code      => 'Y'
90316  , p_source_application_id =>  602
90317 );
90318    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
90319    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
90320    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
90321    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
90322    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
90323    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
90324    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
90325    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
90326    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
90327    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
90328    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
90329    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
90330    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
90331    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
90332    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
90333    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
90334    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
90335    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
90336    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
90337    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
90338    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
90339    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
90340    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
90341    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
90342    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
90343    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
90344    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
90345    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
90346    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
90347    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
90348    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
90349    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
90350    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
90351    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
90352    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
90353    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
90354    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
90355    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
90356    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
90357    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
90358    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
90359    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
90360    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
90361    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
90362    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
90363    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
90364    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
90365    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
90366    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
90367    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
90368    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
90369    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
90370    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
90371    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
90372    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
90373    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
90374    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
90375    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
90376    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
90377    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
90378    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
90382    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
90379    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
90380    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
90381    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
90383    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
90384 
90385    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
90386    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
90387 
90388    ---------------------------------------------------------------------------------------------------------------
90389    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
90390    ---------------------------------------------------------------------------------------------------------------
90391    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
90392 
90393    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90394    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90395 
90396    IF xla_accounting_cache_pkg.GetValueChar
90397          (p_source_code         => 'LEDGER_CATEGORY_CODE'
90398          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
90399    AND l_bflow_method_code = 'PRIOR_ENTRY'
90400 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
90401    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
90402          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
90403        )
90404    THEN
90405          xla_ae_lines_pkg.BflowUpgEntry
90406            (p_business_method_code    => l_bflow_method_code
90407            ,p_business_class_code     => l_bflow_class_code
90408            ,p_balance_type            => l_balance_type_code);
90409    ELSE
90410       NULL;
90411 XLA_AE_LINES_PKG.business_flow_validation(
90412                                 p_business_method_code     => l_bflow_method_code
90413                                ,p_business_class_code      => l_bflow_class_code
90414                                ,p_inherit_description_flag => l_inherit_desc_flag);
90415    END IF;
90416 
90417    --
90418    -- call analytical criteria
90419    --
90420    -- Inherited Analytical Criteria for business flow method of Prior Entry.
90421    --
90422    -- call description
90423    --
90424    -- No description or it is inherited.
90425    --
90426    -- call ADRs
90427    -- Bug 4922099
90428    --
90429    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90430         (NVL(l_actual_upg_option, 'N') = 'O') OR
90431         (NVL(l_enc_upg_option, 'N') = 'O')
90432       )
90433    THEN
90434    NULL;
90435    --
90436    --
90437    
90438    --
90439    --
90440    END IF;
90441    --
90442    -- Bug 4922099
90443    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
90444           (NVL(l_enc_upg_option, 'N') = 'O')
90445         ) AND
90446         (l_bflow_method_code = 'PRIOR_ENTRY')
90447       )
90448    THEN
90449       IF
90450       --
90451       1 = 1
90452       --
90453       THEN
90454       xla_accounting_err_pkg.build_message
90455                                     (p_appli_s_name            => 'XLA'
90456                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90457                                     ,p_token_1                 => 'LINE_NUMBER'
90458                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
90459                                     ,p_token_2                 => 'LINE_TYPE_NAME'
90460                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
90461                                                                              l_component_type
90462                                                                             ,l_component_code
90463                                                                             ,l_component_type_code
90464                                                                             ,l_component_appl_id
90465                                                                             ,l_amb_context_code
90466                                                                             ,l_entity_code
90467                                                                             ,l_event_class_code
90468                                                                            )
90469                                     ,p_token_3                 => 'OWNER'
90470                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
90471                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
90472                                                                           ,p_lookup_code    => l_component_type_code
90473                                                                          )
90477                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
90474                                     ,p_token_4                 => 'PRODUCT_NAME'
90475                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
90476                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
90478                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
90479                                     ,p_ae_header_id            =>  NULL
90480                                        );
90481 
90482         IF (C_LEVEL_ERROR>= g_log_level) THEN
90483                  trace
90484                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90485                       ,p_level    => C_LEVEL_ERROR
90486                       ,p_module   => l_log_module);
90487         END IF;
90488       END IF;
90489    END IF;
90490    --
90491    --
90492    ------------------------------------------------------------------------------------------------
90493    -- 4219869 Business Flow
90494    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
90495    -- Prior Entry.  Currently, the following code is always generated.
90496    ------------------------------------------------------------------------------------------------
90497    -- No ValidateCurrentLine for business flow method of Prior Entry
90498 
90499    ------------------------------------------------------------------------------------
90500    -- 4219869 Business Flow
90501    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
90502    ------------------------------------------------------------------------------------
90503    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90504 
90505    ----------------------------------------------------------------------------------
90506    -- 4219869 Business Flow
90507    -- Update journal entry status -- Need to generate this within IF <condition>
90508    ----------------------------------------------------------------------------------
90509    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90510          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
90511          ,p_balance_type_code => l_balance_type_code
90512          );
90513 
90514    -------------------------------------------------------------------------------------------
90515    -- 4262811 - Generate the Accrual Reversal lines
90516    -------------------------------------------------------------------------------------------
90517    BEGIN
90518       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
90519                               (g_array_event(p_event_id).array_value_num('header_index'));
90520       IF l_acc_rev_flag IS NULL THEN
90521          l_acc_rev_flag := 'N';
90522       END IF;
90523    EXCEPTION
90524       WHEN OTHERS THEN
90525          l_acc_rev_flag := 'N';
90526    END;
90527    --
90528    IF (l_acc_rev_flag = 'Y') THEN
90529 
90530        -- 4645092  ------------------------------------------------------------------------------
90531        -- To allow MPA report to determine if it should generate report process
90532        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
90533        ------------------------------------------------------------------------------------------
90534 
90535        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
90536        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
90537    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
90538    -- call ADRs
90539    -- Bug 4922099
90540    --
90541    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90542         (NVL(l_actual_upg_option, 'N') = 'O') OR
90543         (NVL(l_enc_upg_option, 'N') = 'O')
90544       )
90545    THEN
90546    NULL;
90547    --
90548    --
90549    
90550    --
90551    --
90552    END IF;
90553 
90554        --
90555        -- Update the line information that should be overwritten
90556        --
90557        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
90558                                          p_header_num   => 1);
90559        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
90560 
90561        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
90562 
90563        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
90564           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
90565        END IF;
90566 
90567       --
90568       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
90569       --
90570       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
90571           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
90572       ELSE
90573           ---------------------------------------------------------------------------------------------------
90574           -- 4262811a Switch Sign
90575           ---------------------------------------------------------------------------------------------------
90576           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
90577           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90578                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90579           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90580                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90581           -- 5132302
90585       END IF;
90582           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
90583                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90584 
90586 
90587       -- 4955764
90588       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90589       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
90590 
90591 
90592       XLA_AE_LINES_PKG.ValidateCurrentLine;
90593       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90594 
90595       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90596                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
90597                ,p_balance_type_code => l_balance_type_code);
90598 
90599    END IF;
90600 
90601    -----------------------------------------------------------------------------------------
90602    -- 4262811 Multiperiod Accounting
90603    -----------------------------------------------------------------------------------------
90604      -- No MPA option is assigned.
90605 
90606 
90607 END IF;
90608 END IF;
90609 --
90610 
90611 --
90612 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90613    trace
90614       (p_msg      => 'END of AcctLineType_161'
90615       ,p_level    => C_LEVEL_PROCEDURE
90616       ,p_module   => l_log_module);
90617 END IF;
90618 --
90619 EXCEPTION
90620   WHEN xla_exceptions_pkg.application_exception THEN
90621       RAISE;
90622   WHEN OTHERS THEN
90623        xla_exceptions_pkg.raise_message
90624            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_161');
90625 END AcctLineType_161;
90626 --
90627 
90628 ---------------------------------------
90629 --
90630 -- PRIVATE FUNCTION
90631 --         AcctLineType_162
90632 --
90633 ---------------------------------------
90634 PROCEDURE AcctLineType_162 (
90635   p_application_id        IN NUMBER
90636  ,p_event_id              IN NUMBER
90637  ,p_calculate_acctd_flag  IN VARCHAR2
90638  ,p_calculate_g_l_flag    IN VARCHAR2
90639  ,p_actual_flag           IN OUT VARCHAR2
90640  ,p_balance_type_code     OUT VARCHAR2
90641  ,p_gain_or_loss_ref      OUT VARCHAR2
90642  
90643 --Invoice Distribution Description
90644  , p_source_1            IN VARCHAR2
90645 --Invoice Distribution Ledger Amount
90646  , p_source_9            IN NUMBER
90647 --Invoice Distribution Account
90648  , p_source_18            IN NUMBER
90649 --Invoice Distribution Type
90650  , p_source_21            IN VARCHAR2
90651  , p_source_21_meaning    IN VARCHAR2
90652 --Accounting Reversal Indicator
90653  , p_source_41            IN VARCHAR2
90654 --Distribution Link Type
90655  , p_source_43            IN VARCHAR2
90656 --Allocation to Main Distribution Identifier
90657  , p_source_45            IN NUMBER
90658 --Invoice Identifier
90659  , p_source_46            IN NUMBER
90660 --Invoice Distribution Identifier
90661  , p_source_52            IN NUMBER
90662 --Payables Encumbrance Upgrade Credit Account
90663  , p_source_53            IN NUMBER
90664 --Payables Encumbrance Upgrade Credit Amount
90665  , p_source_54            IN NUMBER
90666 --Invoice Currency Code
90667  , p_source_55            IN VARCHAR2
90668 --Payables Encumbrance Upgrade Credit Base Amount
90669  , p_source_56            IN NUMBER
90670 --Payables Encumbrance Upgrade Debit Account
90671  , p_source_57            IN NUMBER
90672 --Payables Encumbrance Upgrade Debit Amount
90673  , p_source_58            IN NUMBER
90674 --Payables Encumbrance Upgrade Debit Base Amount
90675  , p_source_59            IN NUMBER
90676 --Payables Encumbrance Upgrade Option
90677  , p_source_60            IN VARCHAR2
90678 --Invoice Distribution Amount
90679  , p_source_61            IN NUMBER
90680 --Deferred Accounting End Date
90681  , p_source_65            IN DATE
90682 --Deferred Accounting Option
90683  , p_source_66            IN VARCHAR2
90684 --Deferred Accounting Start Date
90685  , p_source_67            IN DATE
90686 --Override Accounted Amount Indicator
90687  , p_source_68            IN VARCHAR2
90688  , p_source_68_meaning    IN VARCHAR2
90689 --Invoice Supplier Identifier
90690  , p_source_69            IN NUMBER
90691 --Invoice Supplier Site Identifier
90692  , p_source_70            IN NUMBER
90693 --Third Party Type
90694  , p_source_71            IN VARCHAR2
90695 --Parent Reversal Identifier
90696  , p_source_72            IN NUMBER
90697 --Invoice Distribution Statistical Amount
90698  , p_source_73            IN NUMBER
90699 --Invoice Distribution Tax Line Identifier
90700  , p_source_74            IN NUMBER
90701 --Invoice Distribution Tax Distribution Identifier from Tax
90702  , p_source_75            IN NUMBER
90703 --Invoice Distribution Summary Tax Line Identifier
90704  , p_source_76            IN NUMBER
90705 --Payables Upgrade Credit Encumbrance Type Identifier
90706  , p_source_77            IN NUMBER
90707 --Payables Upgrade Debit Encumbrance Type Identifier
90708  , p_source_78            IN NUMBER
90709 --Business Flow Accounts Payable Application Identifier
90710  , p_source_79            IN NUMBER
90711 --Business Flow Invoice Distribution Type
90712  , p_source_80            IN VARCHAR2
90713 --Business Flow Invoice Entity Code
90714  , p_source_81            IN VARCHAR2
90715 --Business Flow Invoice Distribution Identifier
90716  , p_source_82            IN NUMBER
90717 --Business Flow Invoice Identifier
90718  , p_source_83            IN NUMBER
90719 --Accrue on Receipt Option
90720  , p_source_84            IN VARCHAR2
90721  , p_source_84_meaning    IN VARCHAR2
90722 --Invoice Exchange Date
90726 --Invoice Exchange Rate Type
90723  , p_source_136            IN DATE
90724 --Invoice Exchange Rate
90725  , p_source_137            IN NUMBER
90727  , p_source_138            IN VARCHAR2
90728 )
90729 IS
90730 
90731 l_component_type              VARCHAR2(80);
90732 l_component_code              VARCHAR2(30);
90733 l_component_type_code         VARCHAR2(1);
90734 l_component_appl_id           INTEGER;
90735 l_amb_context_code            VARCHAR2(30);
90736 l_entity_code                 VARCHAR2(30);
90737 l_event_class_code            VARCHAR2(30);
90738 l_ae_header_id                NUMBER;
90739 l_event_type_code             VARCHAR2(30);
90740 l_line_definition_code        VARCHAR2(30);
90741 l_line_definition_owner_code  VARCHAR2(1);
90742 --
90743 -- adr variables
90744 l_segment                     VARCHAR2(30);
90745 l_ccid                        NUMBER;
90746 l_adr_transaction_coa_id      NUMBER;
90747 l_adr_accounting_coa_id       NUMBER;
90748 l_adr_flexfield_segment_code  VARCHAR2(30);
90749 l_adr_flex_value_set_id       NUMBER;
90750 l_adr_value_type_code         VARCHAR2(30);
90751 l_adr_value_combination_id    NUMBER;
90752 l_adr_value_segment_code      VARCHAR2(30);
90753 
90754 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
90755 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
90756 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
90757 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
90758 
90759 -- 4262811 Variables ------------------------------------------------------------------------------------------
90760 l_entered_amt_idx             NUMBER;
90761 l_accted_amt_idx              NUMBER;
90762 l_acc_rev_flag                VARCHAR2(1);
90763 l_accrual_line_num            NUMBER;
90764 l_tmp_amt                     NUMBER;
90765 l_acc_rev_natural_side_code   VARCHAR2(1);
90766 
90767 l_num_entries                 NUMBER;
90768 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
90769 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
90770 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
90771 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
90772 l_recog_line_1                NUMBER;
90773 l_recog_line_2                NUMBER;
90774 
90775 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
90776 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
90777 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
90778 
90779 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
90780 
90781 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
90782 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
90783 
90784 ---------------------------------------------------------------------------------------------------------------
90785 
90786 
90787 --
90788 -- bulk performance
90789 --
90790 l_balance_type_code           VARCHAR2(1);
90791 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
90792 l_log_module                  VARCHAR2(240);
90793 
90794 --
90795 -- Upgrade strategy
90796 --
90797 l_actual_upg_option           VARCHAR2(1);
90798 l_enc_upg_option           VARCHAR2(1);
90799 
90800 --
90801 BEGIN
90802 --
90803 IF g_log_enabled THEN
90807 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90804       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_162';
90805 END IF;
90806 --
90808 
90809       trace
90810          (p_msg      => 'BEGIN of AcctLineType_162'
90811          ,p_level    => C_LEVEL_PROCEDURE
90812          ,p_module   => l_log_module);
90813 
90814 END IF;
90815 --
90816 l_component_type             := 'AMB_JLT';
90817 l_component_code             := 'AP_ITEM_EXPENSE_INV';
90818 l_component_type_code        := 'S';
90819 l_component_appl_id          :=  200;
90820 l_amb_context_code           := 'DEFAULT';
90821 l_entity_code                := 'AP_INVOICES';
90822 l_event_class_code           := 'INVOICES';
90823 l_event_type_code            := 'INVOICES_ALL';
90824 l_line_definition_owner_code := 'S';
90825 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
90826 --
90827 l_balance_type_code          := 'A';
90828 l_segment                     := NULL;
90829 l_ccid                        := NULL;
90830 l_adr_transaction_coa_id      := NULL;
90831 l_adr_accounting_coa_id       := NULL;
90832 l_adr_flexfield_segment_code  := NULL;
90833 l_adr_flex_value_set_id       := NULL;
90834 l_adr_value_type_code         := NULL;
90835 l_adr_value_combination_id    := NULL;
90839 l_bflow_class_code           := '';    -- 4219869 Business Flow
90836 l_adr_value_segment_code      := NULL;
90837 
90838 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
90840 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
90841 l_budgetary_control_flag     := 'N';
90842 
90843 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
90844 l_bflow_applied_to_amt       := NULL; -- 5132302
90845 l_entered_amt_idx            := NULL;          -- 4262811
90846 l_accted_amt_idx             := NULL;          -- 4262811
90847 l_acc_rev_flag               := NULL;          -- 4262811
90848 l_accrual_line_num           := NULL;          -- 4262811
90849 l_tmp_amt                    := NULL;          -- 4262811
90850 --
90851  
90852 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
90853     l_balance_type_code <> 'B' THEN
90854 IF NVL(p_source_21,'
90855 ') =  'RETROEXPENSE' OR 
90856 NVL(p_source_21,'
90857 ') =  'ITEM' OR 
90858 (NVL(p_source_21,'
90859 ') =  'ERV' AND 
90860 NVL(p_source_84,'
90861 ') <>  'Y') OR 
90862 (NVL(p_source_21,'
90863 ') =  'IPV' AND 
90864 NVL(p_source_84,'
90865 ') <>  'Y')
90866  THEN 
90867 
90868    --
90869    XLA_AE_LINES_PKG.SetNewLine;
90870 
90871    p_balance_type_code          := l_balance_type_code;
90872    -- set the flag so later we will know whether the gain loss line needs to be created
90873    
90874    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
90875      p_actual_flag :='A';
90876    END IF;
90877 
90878    --
90879    -- bulk performance
90880    --
90881    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
90882                                       p_header_num   => 0); -- 4262811
90883    --
90884    -- set accounting line options
90885    --
90886    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
90887            p_natural_side_code          => 'D'
90888          , p_gain_or_loss_flag          => 'N'
90889          , p_gl_transfer_mode_code      => 'S'
90890          , p_acct_entry_type_code       => 'A'
90891          , p_switch_side_flag           => 'Y'
90892          , p_merge_duplicate_code       => 'A'
90893          );
90894    --
90895    l_acc_rev_natural_side_code := 'C';  -- 4262811
90896    -- 
90897    --
90898    -- set accounting line type info
90899    --
90900    xla_ae_lines_pkg.SetAcctLineType
90901       (p_component_type             => l_component_type
90902       ,p_event_type_code            => l_event_type_code
90903       ,p_line_definition_owner_code => l_line_definition_owner_code
90904       ,p_line_definition_code       => l_line_definition_code
90905       ,p_accounting_line_code       => l_component_code
90906       ,p_accounting_line_type_code  => l_component_type_code
90907       ,p_accounting_line_appl_id    => l_component_appl_id
90908       ,p_amb_context_code           => l_amb_context_code
90909       ,p_entity_code                => l_entity_code
90910       ,p_event_class_code           => l_event_class_code);
90911    --
90912    -- set accounting class
90913    --
90914    xla_ae_lines_pkg.SetAcctClass(
90915            p_accounting_class_code  => 'ITEM EXPENSE'
90916          , p_ae_header_id           => l_ae_header_id
90917          );
90918 
90919    --
90920    -- set rounding class
90921    --
90922    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
90923                       'ITEM EXPENSE';
90924 
90925    --
90926    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
90927    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
90928    --
90929    -- bulk performance
90930    --
90931    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
90932 
90933    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
90934       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
90935 
90936    -- 4955764
90937    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90938       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
90939 
90940    -- 4458381 Public Sector Enh
90941    
90942    --
90943    -- set accounting attributes for the line type
90944    --
90945    l_entered_amt_idx := 24;
90946    l_accted_amt_idx  := 29;
90947    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
90948    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
90949    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
90950    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
90951    l_rec_acct_attrs.array_num_value(2)  := 
90952 xla_ae_sources_pkg.GetSystemSourceNum(
90953    p_source_code           => 'XLA_EVENT_APPL_ID'
90954  , p_source_type_code      => 'Y'
90955  , p_source_application_id =>  602
90956 );
90957    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
90958    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
90959    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
90960    l_rec_acct_attrs.array_char_value(4)  := 
90961 xla_ae_sources_pkg.GetSystemSourceChar(
90962    p_source_code           => 'XLA_ENTITY_CODE'
90966    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
90963  , p_source_type_code      => 'Y'
90964  , p_source_application_id =>  602
90965 );
90967    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
90968    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
90969    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
90970    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
90971    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
90972    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
90973    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
90974    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
90975    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
90976    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
90977    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
90978    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
90979    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
90980    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
90981    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
90982    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
90983    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
90984    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
90985    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
90986    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
90987    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
90988    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
90989    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
90990    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
90991    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
90992    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
90993    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
90994    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
90995    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
90996    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
90997    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
90998    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
90999    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
91000    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
91001    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
91002    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
91003    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
91004    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
91005    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
91006    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
91007    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
91008    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
91009    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
91010    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
91011    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
91012    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
91013    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
91014    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
91015    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
91016    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
91017    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
91018    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
91019    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
91020    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
91021    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
91022    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
91023    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
91024    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
91025    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
91026    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
91027    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
91028    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
91029    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
91030    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
91031    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
91032    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
91033    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
91034    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
91035    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
91036    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
91037    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
91038    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
91042    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
91039    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
91040    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
91041    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
91043    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
91044    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
91045    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
91046 
91047    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
91048    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
91049 
91050    ---------------------------------------------------------------------------------------------------------------
91051    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
91052    ---------------------------------------------------------------------------------------------------------------
91053    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
91054 
91055    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91056    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91057 
91058    IF xla_accounting_cache_pkg.GetValueChar
91059          (p_source_code         => 'LEDGER_CATEGORY_CODE'
91060          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
91061    AND l_bflow_method_code = 'PRIOR_ENTRY'
91062 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
91063    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
91064          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
91065        )
91066    THEN
91070            ,p_balance_type            => l_balance_type_code);
91067          xla_ae_lines_pkg.BflowUpgEntry
91068            (p_business_method_code    => l_bflow_method_code
91069            ,p_business_class_code     => l_bflow_class_code
91071    ELSE
91072       NULL;
91073 -- No business flow processing for business flow method of NONE.
91074    END IF;
91075 
91076    --
91077    -- call analytical criteria
91078    --
91079    
91080    --
91081    -- call description
91082    --
91083    
91084 xla_ae_lines_pkg.SetLineDescription(
91085    p_ae_header_id => l_ae_header_id
91086   ,p_description  => Description_2 (
91087      p_application_id         => p_application_id
91088    , p_ae_header_id           => l_ae_header_id 
91089 , p_source_1 => p_source_1
91093 
91090    )
91091 );
91092 
91094    --
91095    -- call ADRs
91096    -- Bug 4922099
91097    --
91098    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91099         (NVL(l_actual_upg_option, 'N') = 'O') OR
91100         (NVL(l_enc_upg_option, 'N') = 'O')
91101       )
91102    THEN
91103    NULL;
91104    --
91105    --
91106    
91107   l_ccid := AcctDerRule_32(
91108            p_application_id           => p_application_id
91109          , p_ae_header_id             => l_ae_header_id 
91110 , p_source_18 => p_source_18
91111          , x_transaction_coa_id       => l_adr_transaction_coa_id
91112          , x_accounting_coa_id        => l_adr_accounting_coa_id
91113          , x_value_type_code          => l_adr_value_type_code
91114          , p_side                     => 'NA'
91115    );
91116 
91117    xla_ae_lines_pkg.set_ccid(
91118     p_code_combination_id          => l_ccid
91119   , p_value_type_code              => l_adr_value_type_code
91120   , p_transaction_coa_id           => l_adr_transaction_coa_id
91121   , p_accounting_coa_id            => l_adr_accounting_coa_id
91122   , p_adr_code                     => 'AP_INVOICE_DIST'
91123   , p_adr_type_code                => 'S'
91124   , p_component_type               => l_component_type
91125   , p_component_code               => l_component_code
91126   , p_component_type_code          => l_component_type_code
91127   , p_component_appl_id            => l_component_appl_id
91128   , p_amb_context_code             => l_amb_context_code
91129   , p_side                         => 'NA'
91130   );
91131 
91132 
91133    --
91134    --
91135    END IF;
91136    --
91137    -- Bug 4922099
91138    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
91139           (NVL(l_enc_upg_option, 'N') = 'O')
91140         ) AND
91141         (l_bflow_method_code = 'PRIOR_ENTRY')
91142       )
91143    THEN
91144       IF
91145       --
91146       1 = 2
91147       --
91148       THEN
91149       xla_accounting_err_pkg.build_message
91150                                     (p_appli_s_name            => 'XLA'
91151                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91152                                     ,p_token_1                 => 'LINE_NUMBER'
91153                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
91154                                     ,p_token_2                 => 'LINE_TYPE_NAME'
91155                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
91156                                                                              l_component_type
91157                                                                             ,l_component_code
91158                                                                             ,l_component_type_code
91159                                                                             ,l_component_appl_id
91160                                                                             ,l_amb_context_code
91161                                                                             ,l_entity_code
91162                                                                             ,l_event_class_code
91163                                                                            )
91164                                     ,p_token_3                 => 'OWNER'
91165                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
91166                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
91167                                                                           ,p_lookup_code    => l_component_type_code
91168                                                                          )
91169                                     ,p_token_4                 => 'PRODUCT_NAME'
91170                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
91171                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
91172                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
91173                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
91174                                     ,p_ae_header_id            =>  NULL
91175                                        );
91176 
91177         IF (C_LEVEL_ERROR>= g_log_level) THEN
91178                  trace
91179                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91180                       ,p_level    => C_LEVEL_ERROR
91181                       ,p_module   => l_log_module);
91182         END IF;
91183       END IF;
91184    END IF;
91185    --
91186    --
91187    ------------------------------------------------------------------------------------------------
91188    -- 4219869 Business Flow
91189    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
91190    -- Prior Entry.  Currently, the following code is always generated.
91191    ------------------------------------------------------------------------------------------------
91192    XLA_AE_LINES_PKG.ValidateCurrentLine;
91193 
91194    ------------------------------------------------------------------------------------
91195    -- 4219869 Business Flow
91196    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
91197    ------------------------------------------------------------------------------------
91198    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91199 
91203    ----------------------------------------------------------------------------------
91200    ----------------------------------------------------------------------------------
91201    -- 4219869 Business Flow
91202    -- Update journal entry status -- Need to generate this within IF <condition>
91207          );
91204    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91205          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
91206          ,p_balance_type_code => l_balance_type_code
91208 
91209    -------------------------------------------------------------------------------------------
91210    -- 4262811 - Generate the Accrual Reversal lines
91211    -------------------------------------------------------------------------------------------
91212    BEGIN
91213       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
91214                               (g_array_event(p_event_id).array_value_num('header_index'));
91215       IF l_acc_rev_flag IS NULL THEN
91216          l_acc_rev_flag := 'N';
91217       END IF;
91218    EXCEPTION
91219       WHEN OTHERS THEN
91220          l_acc_rev_flag := 'N';
91221    END;
91222    --
91223    IF (l_acc_rev_flag = 'Y') THEN
91224 
91225        -- 4645092  ------------------------------------------------------------------------------
91226        -- To allow MPA report to determine if it should generate report process
91227        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
91228        ------------------------------------------------------------------------------------------
91229 
91230        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
91231        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
91232    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
91233    -- call ADRs
91234    -- Bug 4922099
91235    --
91236    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91237         (NVL(l_actual_upg_option, 'N') = 'O') OR
91238         (NVL(l_enc_upg_option, 'N') = 'O')
91239       )
91240    THEN
91241    NULL;
91242    --
91243    --
91244    
91245   l_ccid := AcctDerRule_32(
91246            p_application_id           => p_application_id
91247          , p_ae_header_id             => l_ae_header_id 
91248 , p_source_18 => p_source_18
91249          , x_transaction_coa_id       => l_adr_transaction_coa_id
91250          , x_accounting_coa_id        => l_adr_accounting_coa_id
91251          , x_value_type_code          => l_adr_value_type_code
91252          , p_side                     => 'NA'
91253    );
91254 
91255    xla_ae_lines_pkg.set_ccid(
91256     p_code_combination_id          => l_ccid
91257   , p_value_type_code              => l_adr_value_type_code
91258   , p_transaction_coa_id           => l_adr_transaction_coa_id
91262   , p_component_type               => l_component_type
91259   , p_accounting_coa_id            => l_adr_accounting_coa_id
91260   , p_adr_code                     => 'AP_INVOICE_DIST'
91261   , p_adr_type_code                => 'S'
91263   , p_component_code               => l_component_code
91264   , p_component_type_code          => l_component_type_code
91265   , p_component_appl_id            => l_component_appl_id
91266   , p_amb_context_code             => l_amb_context_code
91267   , p_side                         => 'NA'
91268   );
91269 
91270 
91271    --
91272    --
91273    END IF;
91274 
91275        --
91276        -- Update the line information that should be overwritten
91277        --
91278        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
91279                                          p_header_num   => 1);
91280        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
91281 
91282        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
91283 
91284        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
91285           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
91286        END IF;
91287 
91288       --
91289       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
91290       --
91291       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
91292           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
91293       ELSE
91294           ---------------------------------------------------------------------------------------------------
91295           -- 4262811a Switch Sign
91296           ---------------------------------------------------------------------------------------------------
91297           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
91298           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91299                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91300           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91301                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91302           -- 5132302
91303           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
91304                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91305 
91306       END IF;
91307 
91308       -- 4955764
91309       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91310       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
91311 
91312 
91313       XLA_AE_LINES_PKG.ValidateCurrentLine;
91314       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91315 
91316       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91317                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
91318                ,p_balance_type_code => l_balance_type_code);
91319 
91320    END IF;
91321 
91322    -----------------------------------------------------------------------------------------
91323    -- 4262811 Multiperiod Accounting
91324    -----------------------------------------------------------------------------------------
91325      -- No MPA option is assigned.
91326 
91327 
91328 END IF;
91329 END IF;
91330 --
91331 
91332 --
91333 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91334    trace
91335       (p_msg      => 'END of AcctLineType_162'
91336       ,p_level    => C_LEVEL_PROCEDURE
91337       ,p_module   => l_log_module);
91338 END IF;
91339 --
91340 EXCEPTION
91341   WHEN xla_exceptions_pkg.application_exception THEN
91342       RAISE;
91343   WHEN OTHERS THEN
91344        xla_exceptions_pkg.raise_message
91345            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_162');
91346 END AcctLineType_162;
91347 --
91348 
91352 --         AcctLineType_163
91349 ---------------------------------------
91350 --
91351 -- PRIVATE FUNCTION
91353 --
91354 ---------------------------------------
91355 PROCEDURE AcctLineType_163 (
91356   p_application_id        IN NUMBER
91357  ,p_event_id              IN NUMBER
91358  ,p_calculate_acctd_flag  IN VARCHAR2
91359  ,p_calculate_g_l_flag    IN VARCHAR2
91360  ,p_actual_flag           IN OUT VARCHAR2
91361  ,p_balance_type_code     OUT VARCHAR2
91362  ,p_gain_or_loss_ref      OUT VARCHAR2
91363  
91364 --Invoice Distribution Type
91365  , p_source_21            IN VARCHAR2
91366  , p_source_21_meaning    IN VARCHAR2
91367 --Accounting Reversal Indicator
91368  , p_source_41            IN VARCHAR2
91369 --Distribution Link Type
91370  , p_source_43            IN VARCHAR2
91371 --Allocation to Main Distribution Identifier
91372  , p_source_45            IN NUMBER
91373 --Invoice Identifier
91374  , p_source_46            IN NUMBER
91375 --Invoice Distribution Identifier
91376  , p_source_52            IN NUMBER
91377 --Payables Encumbrance Upgrade Credit Account
91378  , p_source_53            IN NUMBER
91379 --Payables Encumbrance Upgrade Credit Amount
91380  , p_source_54            IN NUMBER
91381 --Invoice Currency Code
91382  , p_source_55            IN VARCHAR2
91383 --Payables Encumbrance Upgrade Credit Base Amount
91384  , p_source_56            IN NUMBER
91385 --Payables Encumbrance Upgrade Debit Account
91386  , p_source_57            IN NUMBER
91387 --Payables Encumbrance Upgrade Debit Amount
91388  , p_source_58            IN NUMBER
91389 --Payables Encumbrance Upgrade Debit Base Amount
91390  , p_source_59            IN NUMBER
91391 --Payables Encumbrance Upgrade Option
91392  , p_source_60            IN VARCHAR2
91393 --Invoice Distribution Amount
91394  , p_source_61            IN NUMBER
91395 --Deferred Accounting End Date
91396  , p_source_65            IN DATE
91397 --Deferred Accounting Option
91398  , p_source_66            IN VARCHAR2
91399 --Deferred Accounting Start Date
91400  , p_source_67            IN DATE
91401 --Override Accounted Amount Indicator
91402  , p_source_68            IN VARCHAR2
91403  , p_source_68_meaning    IN VARCHAR2
91404 --Third Party Type
91405  , p_source_71            IN VARCHAR2
91406 --Parent Reversal Identifier
91407  , p_source_72            IN NUMBER
91408 --Invoice Distribution Statistical Amount
91409  , p_source_73            IN NUMBER
91410 --Invoice Distribution Tax Line Identifier
91411  , p_source_74            IN NUMBER
91412 --Invoice Distribution Tax Distribution Identifier from Tax
91413  , p_source_75            IN NUMBER
91414 --Invoice Distribution Summary Tax Line Identifier
91415  , p_source_76            IN NUMBER
91416 --Payables Upgrade Credit Encumbrance Type Identifier
91417  , p_source_77            IN NUMBER
91418 --Payables Upgrade Debit Encumbrance Type Identifier
91419  , p_source_78            IN NUMBER
91420 --Business Flow Accounts Payable Application Identifier
91421  , p_source_79            IN NUMBER
91422 --Business Flow Invoice Distribution Type
91423  , p_source_80            IN VARCHAR2
91424 --Business Flow Invoice Entity Code
91425  , p_source_81            IN VARCHAR2
91426 --Business Flow Invoice Distribution Identifier
91427  , p_source_82            IN NUMBER
91428 --Business Flow Invoice Identifier
91429  , p_source_83            IN NUMBER
91430 --Accrue on Receipt Option
91431  , p_source_84            IN VARCHAR2
91432  , p_source_84_meaning    IN VARCHAR2
91433 --Purchasing Encumbrance Option
91434  , p_source_86            IN VARCHAR2
91435  , p_source_86_meaning    IN VARCHAR2
91436 --Invoice Encumbered Option
91437  , p_source_87            IN VARCHAR2
91438  , p_source_87_meaning    IN VARCHAR2
91439 --Invoice Distribution Encumbrance Amount
91440  , p_source_143            IN NUMBER
91441 --Invoice Distribution Encumbrance Ledger Amount
91442  , p_source_144            IN NUMBER
91443 --Invoice Type
91444  , p_source_159            IN VARCHAR2
91445  , p_source_159_meaning    IN VARCHAR2
91446 )
91447 IS
91448 
91449 l_component_type              VARCHAR2(80);
91450 l_component_code              VARCHAR2(30);
91451 l_component_type_code         VARCHAR2(1);
91452 l_component_appl_id           INTEGER;
91453 l_amb_context_code            VARCHAR2(30);
91454 l_entity_code                 VARCHAR2(30);
91455 l_event_class_code            VARCHAR2(30);
91456 l_ae_header_id                NUMBER;
91457 l_event_type_code             VARCHAR2(30);
91458 l_line_definition_code        VARCHAR2(30);
91459 l_line_definition_owner_code  VARCHAR2(1);
91460 --
91461 -- adr variables
91462 l_segment                     VARCHAR2(30);
91463 l_ccid                        NUMBER;
91464 l_adr_transaction_coa_id      NUMBER;
91465 l_adr_accounting_coa_id       NUMBER;
91466 l_adr_flexfield_segment_code  VARCHAR2(30);
91467 l_adr_flex_value_set_id       NUMBER;
91468 l_adr_value_type_code         VARCHAR2(30);
91469 l_adr_value_combination_id    NUMBER;
91470 l_adr_value_segment_code      VARCHAR2(30);
91471 
91475 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
91472 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
91473 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
91474 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
91476 
91477 -- 4262811 Variables ------------------------------------------------------------------------------------------
91478 l_entered_amt_idx             NUMBER;
91479 l_accted_amt_idx              NUMBER;
91480 l_acc_rev_flag                VARCHAR2(1);
91481 l_accrual_line_num            NUMBER;
91482 l_tmp_amt                     NUMBER;
91483 l_acc_rev_natural_side_code   VARCHAR2(1);
91484 
91485 l_num_entries                 NUMBER;
91486 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
91487 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
91488 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
91489 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
91490 l_recog_line_1                NUMBER;
91491 l_recog_line_2                NUMBER;
91492 
91493 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
91494 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
91495 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
91496 
91497 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
91498 
91499 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
91503 
91500 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
91501 
91502 ---------------------------------------------------------------------------------------------------------------
91504 
91505 --
91506 -- bulk performance
91507 --
91508 l_balance_type_code           VARCHAR2(1);
91509 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
91510 l_log_module                  VARCHAR2(240);
91511 
91512 --
91513 -- Upgrade strategy
91514 --
91515 l_actual_upg_option           VARCHAR2(1);
91516 l_enc_upg_option           VARCHAR2(1);
91517 
91518 --
91519 BEGIN
91520 --
91521 IF g_log_enabled THEN
91522       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_163';
91523 END IF;
91524 --
91525 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91526 
91527       trace
91528          (p_msg      => 'BEGIN of AcctLineType_163'
91529          ,p_level    => C_LEVEL_PROCEDURE
91530          ,p_module   => l_log_module);
91531 
91532 END IF;
91533 --
91534 l_component_type             := 'AMB_JLT';
91535 l_component_code             := 'AP_ITEM_EXPENSE_INV_ENC';
91536 l_component_type_code        := 'S';
91537 l_component_appl_id          :=  200;
91538 l_amb_context_code           := 'DEFAULT';
91539 l_entity_code                := 'AP_INVOICES';
91540 l_event_class_code           := 'INVOICES';
91541 l_event_type_code            := 'INVOICES_ALL';
91542 l_line_definition_owner_code := 'S';
91543 l_line_definition_code       := 'ENC_REV_INVOICES_ALL';
91544 --
91545 l_balance_type_code          := 'E';
91546 l_segment                     := NULL;
91547 l_ccid                        := NULL;
91548 l_adr_transaction_coa_id      := NULL;
91549 l_adr_accounting_coa_id       := NULL;
91550 l_adr_flexfield_segment_code  := NULL;
91551 l_adr_flex_value_set_id       := NULL;
91552 l_adr_value_type_code         := NULL;
91553 l_adr_value_combination_id    := NULL;
91554 l_adr_value_segment_code      := NULL;
91555 
91556 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
91557 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
91558 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
91559 l_budgetary_control_flag     := 'N';
91560 
91561 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
91562 l_bflow_applied_to_amt       := NULL; -- 5132302
91563 l_entered_amt_idx            := NULL;          -- 4262811
91564 l_accted_amt_idx             := NULL;          -- 4262811
91565 l_acc_rev_flag               := NULL;          -- 4262811
91566 l_accrual_line_num           := NULL;          -- 4262811
91567 l_tmp_amt                    := NULL;          -- 4262811
91568 --
91569  
91570 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
91571     l_balance_type_code <> 'B' THEN
91572 IF (NVL(p_source_159,'
91573 ') =  'STANDARD' OR 
91574 NVL(p_source_159,'
91575 ') =  'MIXED' OR 
91576 NVL(p_source_159,'
91577 ') =  'AWT' OR 
91578 NVL(p_source_159,'
91579 ') =  'EXPENSE REPORT') AND 
91580 NVL(p_source_21,'
91581 ') =  'ITEM' AND 
91582 NVL(p_source_84,'
91583 ') <>  'Y' AND 
91584 NVL(p_source_86,'
91585 ') =  'Y' AND 
91589 
91586 NVL(p_source_87,'
91587 ') =  'Y'
91588  THEN 
91590    --
91591    XLA_AE_LINES_PKG.SetNewLine;
91592 
91593    p_balance_type_code          := l_balance_type_code;
91594    -- set the flag so later we will know whether the gain loss line needs to be created
91595    
91596    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
91597      p_actual_flag :='A';
91598    END IF;
91599 
91600    --
91601    -- bulk performance
91602    --
91603    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
91604                                       p_header_num   => 0); -- 4262811
91605    --
91606    -- set accounting line options
91607    --
91608    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
91609            p_natural_side_code          => 'C'
91610          , p_gain_or_loss_flag          => 'N'
91611          , p_gl_transfer_mode_code      => 'S'
91612          , p_acct_entry_type_code       => 'E'
91613          , p_switch_side_flag           => 'Y'
91614          , p_merge_duplicate_code       => 'A'
91615          );
91616    --
91617    l_acc_rev_natural_side_code := 'D';  -- 4262811
91618    -- 
91619    --
91620    -- set accounting line type info
91621    --
91622    xla_ae_lines_pkg.SetAcctLineType
91623       (p_component_type             => l_component_type
91624       ,p_event_type_code            => l_event_type_code
91625       ,p_line_definition_owner_code => l_line_definition_owner_code
91626       ,p_line_definition_code       => l_line_definition_code
91627       ,p_accounting_line_code       => l_component_code
91628       ,p_accounting_line_type_code  => l_component_type_code
91629       ,p_accounting_line_appl_id    => l_component_appl_id
91630       ,p_amb_context_code           => l_amb_context_code
91631       ,p_entity_code                => l_entity_code
91632       ,p_event_class_code           => l_event_class_code);
91633    --
91634    -- set accounting class
91635    --
91636    xla_ae_lines_pkg.SetAcctClass(
91637            p_accounting_class_code  => 'ITEM EXPENSE'
91638          , p_ae_header_id           => l_ae_header_id
91639          );
91640 
91641    --
91642    -- set rounding class
91643    --
91644    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
91645                       'ITEM EXPENSE';
91646 
91647    --
91648    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
91649    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
91650    --
91651    -- bulk performance
91652    --
91653    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
91654 
91655    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
91656       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
91657 
91658    -- 4955764
91659    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91660       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
91661 
91662    -- 4458381 Public Sector Enh
91663    
91664    --
91665    -- set accounting attributes for the line type
91666    --
91667    l_entered_amt_idx := 24;
91668    l_accted_amt_idx  := 26;
91672    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
91669    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
91670    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
91671    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
91673    l_rec_acct_attrs.array_num_value(2)  := 
91674 xla_ae_sources_pkg.GetSystemSourceNum(
91675    p_source_code           => 'XLA_EVENT_APPL_ID'
91679    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
91676  , p_source_type_code      => 'Y'
91677  , p_source_application_id =>  602
91678 );
91680    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
91681    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
91682    l_rec_acct_attrs.array_char_value(4)  := 
91683 xla_ae_sources_pkg.GetSystemSourceChar(
91684    p_source_code           => 'XLA_ENTITY_CODE'
91685  , p_source_type_code      => 'Y'
91686  , p_source_application_id =>  602
91687 );
91688    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
91689    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
91690    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
91691    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
91692    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
91693    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
91694    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
91695    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
91696    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
91697    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
91698    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
91699    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
91700    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
91701    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
91702    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
91703    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
91704    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
91705    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
91706    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
91707    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
91708    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
91709    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
91710    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
91711    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
91712    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
91713    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
91714    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
91715    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
91716    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
91717    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
91718    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
91719    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
91720    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
91721    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
91722    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
91723    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
91724    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
91725    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
91726    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
91727    l_rec_acct_attrs.array_num_value(24)  := p_source_143;
91728    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
91729    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
91730    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
91731    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
91732    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
91733    l_rec_acct_attrs.array_date_value(27)  := p_source_65;
91734    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
91735    l_rec_acct_attrs.array_char_value(28)  := p_source_66;
91736    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
91737    l_rec_acct_attrs.array_date_value(29)  := p_source_67;
91738    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
91739    l_rec_acct_attrs.array_char_value(30)  := p_source_68;
91740    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
91741    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
91742    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
91743    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
91744    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
91745    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
91746    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
91747    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
91748    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
91749    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
91750    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
91751    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
91752    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
91753    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
91754    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
91755    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
91756    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
91757    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
91758 
91759    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
91760    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
91761 
91762    ---------------------------------------------------------------------------------------------------------------
91763    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
91764    ---------------------------------------------------------------------------------------------------------------
91765    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
91766 
91770    IF xla_accounting_cache_pkg.GetValueChar
91767    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91768    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91769 
91771          (p_source_code         => 'LEDGER_CATEGORY_CODE'
91772          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
91773    AND l_bflow_method_code = 'PRIOR_ENTRY'
91774 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
91775    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
91776          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
91777        )
91778    THEN
91779          xla_ae_lines_pkg.BflowUpgEntry
91780            (p_business_method_code    => l_bflow_method_code
91781            ,p_business_class_code     => l_bflow_class_code
91782            ,p_balance_type            => l_balance_type_code);
91783    ELSE
91784       NULL;
91785 XLA_AE_LINES_PKG.business_flow_validation(
91786                                 p_business_method_code     => l_bflow_method_code
91787                                ,p_business_class_code      => l_bflow_class_code
91788                                ,p_inherit_description_flag => l_inherit_desc_flag);
91789    END IF;
91790 
91791    --
91792    -- call analytical criteria
91793    --
91794    -- Inherited Analytical Criteria for business flow method of Prior Entry.
91795    --
91796    -- call description
91797    --
91798    -- No description or it is inherited.
91799    --
91800    -- call ADRs
91801    -- Bug 4922099
91802    --
91803    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91804         (NVL(l_actual_upg_option, 'N') = 'O') OR
91805         (NVL(l_enc_upg_option, 'N') = 'O')
91806       )
91807    THEN
91808    NULL;
91809    --
91810    --
91811    
91812    --
91813    --
91814    END IF;
91815    --
91816    -- Bug 4922099
91817    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
91818           (NVL(l_enc_upg_option, 'N') = 'O')
91819         ) AND
91820         (l_bflow_method_code = 'PRIOR_ENTRY')
91821       )
91822    THEN
91823       IF
91824       --
91825       1 = 1
91826       --
91827       THEN
91828       xla_accounting_err_pkg.build_message
91829                                     (p_appli_s_name            => 'XLA'
91830                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91831                                     ,p_token_1                 => 'LINE_NUMBER'
91832                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
91833                                     ,p_token_2                 => 'LINE_TYPE_NAME'
91834                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
91835                                                                              l_component_type
91836                                                                             ,l_component_code
91837                                                                             ,l_component_type_code
91838                                                                             ,l_component_appl_id
91839                                                                             ,l_amb_context_code
91840                                                                             ,l_entity_code
91841                                                                             ,l_event_class_code
91842                                                                            )
91843                                     ,p_token_3                 => 'OWNER'
91844                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
91845                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
91846                                                                           ,p_lookup_code    => l_component_type_code
91847                                                                          )
91848                                     ,p_token_4                 => 'PRODUCT_NAME'
91849                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
91850                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
91851                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
91852                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
91853                                     ,p_ae_header_id            =>  NULL
91854                                        );
91855 
91856         IF (C_LEVEL_ERROR>= g_log_level) THEN
91857                  trace
91858                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91859                       ,p_level    => C_LEVEL_ERROR
91860                       ,p_module   => l_log_module);
91861         END IF;
91862       END IF;
91863    END IF;
91864    --
91865    --
91866    ------------------------------------------------------------------------------------------------
91867    -- 4219869 Business Flow
91868    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
91869    -- Prior Entry.  Currently, the following code is always generated.
91870    ------------------------------------------------------------------------------------------------
91871    -- No ValidateCurrentLine for business flow method of Prior Entry
91872 
91873    ------------------------------------------------------------------------------------
91874    -- 4219869 Business Flow
91875    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
91879    ----------------------------------------------------------------------------------
91876    ------------------------------------------------------------------------------------
91877    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91878 
91880    -- 4219869 Business Flow
91881    -- Update journal entry status -- Need to generate this within IF <condition>
91882    ----------------------------------------------------------------------------------
91883    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91884          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
91885          ,p_balance_type_code => l_balance_type_code
91886          );
91887 
91888    -------------------------------------------------------------------------------------------
91889    -- 4262811 - Generate the Accrual Reversal lines
91890    -------------------------------------------------------------------------------------------
91891    BEGIN
91892       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
91893                               (g_array_event(p_event_id).array_value_num('header_index'));
91894       IF l_acc_rev_flag IS NULL THEN
91895          l_acc_rev_flag := 'N';
91896       END IF;
91897    EXCEPTION
91898       WHEN OTHERS THEN
91899          l_acc_rev_flag := 'N';
91900    END;
91901    --
91902    IF (l_acc_rev_flag = 'Y') THEN
91903 
91907        ------------------------------------------------------------------------------------------
91904        -- 4645092  ------------------------------------------------------------------------------
91905        -- To allow MPA report to determine if it should generate report process
91906        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
91908 
91909        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
91910        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
91911    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
91912    -- call ADRs
91913    -- Bug 4922099
91914    --
91915    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91916         (NVL(l_actual_upg_option, 'N') = 'O') OR
91917         (NVL(l_enc_upg_option, 'N') = 'O')
91918       )
91919    THEN
91920    NULL;
91921    --
91922    --
91923    
91924    --
91925    --
91926    END IF;
91927 
91928        --
91929        -- Update the line information that should be overwritten
91930        --
91931        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
91932                                          p_header_num   => 1);
91933        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
91934 
91935        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
91936 
91937        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
91938           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
91939        END IF;
91940 
91941       --
91942       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
91943       --
91944       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
91945           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
91946       ELSE
91947           ---------------------------------------------------------------------------------------------------
91948           -- 4262811a Switch Sign
91949           ---------------------------------------------------------------------------------------------------
91950           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
91951           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91955           -- 5132302
91952                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91953           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91954                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91956           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
91957                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91958 
91959       END IF;
91960 
91961       -- 4955764
91962       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91963       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
91964 
91965 
91966       XLA_AE_LINES_PKG.ValidateCurrentLine;
91967       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91968 
91969       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91970                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
91971                ,p_balance_type_code => l_balance_type_code);
91972 
91973    END IF;
91974 
91975    -----------------------------------------------------------------------------------------
91976    -- 4262811 Multiperiod Accounting
91977    -----------------------------------------------------------------------------------------
91978      -- No MPA option is assigned.
91979 
91980 
91981 END IF;
91982 END IF;
91983 --
91984 
91985 --
91986 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91987    trace
91988       (p_msg      => 'END of AcctLineType_163'
91989       ,p_level    => C_LEVEL_PROCEDURE
91990       ,p_module   => l_log_module);
91991 END IF;
91992 --
91993 EXCEPTION
91994   WHEN xla_exceptions_pkg.application_exception THEN
91995       RAISE;
91996   WHEN OTHERS THEN
91997        xla_exceptions_pkg.raise_message
91998            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_163');
91999 END AcctLineType_163;
92000 --
92001 
92002 ---------------------------------------
92003 --
92004 -- PRIVATE FUNCTION
92005 --         AcctLineType_164
92006 --
92007 ---------------------------------------
92008 PROCEDURE AcctLineType_164 (
92009   p_application_id        IN NUMBER
92010  ,p_event_id              IN NUMBER
92011  ,p_calculate_acctd_flag  IN VARCHAR2
92012  ,p_calculate_g_l_flag    IN VARCHAR2
92013  ,p_actual_flag           IN OUT VARCHAR2
92014  ,p_balance_type_code     OUT VARCHAR2
92015  ,p_gain_or_loss_ref      OUT VARCHAR2
92016  
92017 --Invoice Distribution Type
92018  , p_source_21            IN VARCHAR2
92019  , p_source_21_meaning    IN VARCHAR2
92020 --Accounting Reversal Indicator
92021  , p_source_41            IN VARCHAR2
92022 --Distribution Link Type
92023  , p_source_43            IN VARCHAR2
92024 --Allocation to Main Distribution Identifier
92025  , p_source_45            IN NUMBER
92026 --Invoice Identifier
92027  , p_source_46            IN NUMBER
92028 --Invoice Distribution Identifier
92029  , p_source_52            IN NUMBER
92030 --Payables Encumbrance Upgrade Credit Account
92031  , p_source_53            IN NUMBER
92032 --Payables Encumbrance Upgrade Credit Amount
92033  , p_source_54            IN NUMBER
92034 --Invoice Currency Code
92035  , p_source_55            IN VARCHAR2
92036 --Payables Encumbrance Upgrade Credit Base Amount
92037  , p_source_56            IN NUMBER
92038 --Payables Encumbrance Upgrade Debit Account
92039  , p_source_57            IN NUMBER
92040 --Payables Encumbrance Upgrade Debit Amount
92041  , p_source_58            IN NUMBER
92042 --Payables Encumbrance Upgrade Debit Base Amount
92043  , p_source_59            IN NUMBER
92044 --Payables Encumbrance Upgrade Option
92045  , p_source_60            IN VARCHAR2
92046 --Deferred Accounting End Date
92047  , p_source_65            IN DATE
92048 --Deferred Accounting Option
92049  , p_source_66            IN VARCHAR2
92050 --Deferred Accounting Start Date
92051  , p_source_67            IN DATE
92052 --Override Accounted Amount Indicator
92053  , p_source_68            IN VARCHAR2
92054  , p_source_68_meaning    IN VARCHAR2
92055 --Third Party Type
92056  , p_source_71            IN VARCHAR2
92057 --Parent Reversal Identifier
92058  , p_source_72            IN NUMBER
92059 --Invoice Distribution Statistical Amount
92060  , p_source_73            IN NUMBER
92061 --Invoice Distribution Tax Line Identifier
92062  , p_source_74            IN NUMBER
92063 --Invoice Distribution Tax Distribution Identifier from Tax
92064  , p_source_75            IN NUMBER
92065 --Invoice Distribution Summary Tax Line Identifier
92066  , p_source_76            IN NUMBER
92067 --Payables Upgrade Credit Encumbrance Type Identifier
92068  , p_source_77            IN NUMBER
92069 --Payables Upgrade Debit Encumbrance Type Identifier
92070  , p_source_78            IN NUMBER
92071 --Business Flow Accounts Payable Application Identifier
92072  , p_source_79            IN NUMBER
92073 --Business Flow Invoice Distribution Type
92074  , p_source_80            IN VARCHAR2
92075 --Business Flow Invoice Entity Code
92076  , p_source_81            IN VARCHAR2
92077 --Business Flow Invoice Distribution Identifier
92078  , p_source_82            IN NUMBER
92079 --Business Flow Invoice Identifier
92080  , p_source_83            IN NUMBER
92081 --Accrue on Receipt Option
92082  , p_source_84            IN VARCHAR2
92083  , p_source_84_meaning    IN VARCHAR2
92084 --Purchasing Encumbrance Option
92085  , p_source_86            IN VARCHAR2
92086  , p_source_86_meaning    IN VARCHAR2
92090 --Invoice Distribution Encumbrance Amount
92087 --Invoice Encumbered Option
92088  , p_source_87            IN VARCHAR2
92089  , p_source_87_meaning    IN VARCHAR2
92091  , p_source_143            IN NUMBER
92092 --Invoice Distribution Encumbrance Ledger Amount
92093  , p_source_144            IN NUMBER
92094 )
92095 IS
92096 
92097 l_component_type              VARCHAR2(80);
92098 l_component_code              VARCHAR2(30);
92099 l_component_type_code         VARCHAR2(1);
92100 l_component_appl_id           INTEGER;
92101 l_amb_context_code            VARCHAR2(30);
92102 l_entity_code                 VARCHAR2(30);
92103 l_event_class_code            VARCHAR2(30);
92104 l_ae_header_id                NUMBER;
92105 l_event_type_code             VARCHAR2(30);
92106 l_line_definition_code        VARCHAR2(30);
92107 l_line_definition_owner_code  VARCHAR2(1);
92108 --
92109 -- adr variables
92110 l_segment                     VARCHAR2(30);
92111 l_ccid                        NUMBER;
92112 l_adr_transaction_coa_id      NUMBER;
92113 l_adr_accounting_coa_id       NUMBER;
92114 l_adr_flexfield_segment_code  VARCHAR2(30);
92115 l_adr_flex_value_set_id       NUMBER;
92116 l_adr_value_type_code         VARCHAR2(30);
92117 l_adr_value_combination_id    NUMBER;
92118 l_adr_value_segment_code      VARCHAR2(30);
92119 
92120 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
92121 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
92122 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
92123 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
92124 
92125 -- 4262811 Variables ------------------------------------------------------------------------------------------
92126 l_entered_amt_idx             NUMBER;
92127 l_accted_amt_idx              NUMBER;
92128 l_acc_rev_flag                VARCHAR2(1);
92129 l_accrual_line_num            NUMBER;
92130 l_tmp_amt                     NUMBER;
92131 l_acc_rev_natural_side_code   VARCHAR2(1);
92132 
92133 l_num_entries                 NUMBER;
92134 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
92135 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
92136 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
92137 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
92138 l_recog_line_1                NUMBER;
92139 l_recog_line_2                NUMBER;
92140 
92141 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
92142 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
92143 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
92144 
92145 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
92146 
92147 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
92148 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
92149 
92150 ---------------------------------------------------------------------------------------------------------------
92151 
92152 
92153 --
92154 -- bulk performance
92155 --
92156 l_balance_type_code           VARCHAR2(1);
92157 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
92158 l_log_module                  VARCHAR2(240);
92159 
92160 --
92161 -- Upgrade strategy
92162 --
92163 l_actual_upg_option           VARCHAR2(1);
92164 l_enc_upg_option           VARCHAR2(1);
92165 
92166 --
92167 BEGIN
92168 --
92169 IF g_log_enabled THEN
92170       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_164';
92171 END IF;
92172 --
92173 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92174 
92175       trace
92176          (p_msg      => 'BEGIN of AcctLineType_164'
92177          ,p_level    => C_LEVEL_PROCEDURE
92178          ,p_module   => l_log_module);
92179 
92180 END IF;
92181 --
92182 l_component_type             := 'AMB_JLT';
92183 l_component_code             := 'AP_ITEM_EXPENSE_PP_ENC';
92184 l_component_type_code        := 'S';
92185 l_component_appl_id          :=  200;
92186 l_amb_context_code           := 'DEFAULT';
92187 l_entity_code                := 'AP_INVOICES';
92188 l_event_class_code           := 'PREPAYMENTS';
92189 l_event_type_code            := 'PREPAYMENTS_ALL';
92190 l_line_definition_owner_code := 'S';
92191 l_line_definition_code       := 'ENC_REV_PREPAY_ALL';
92192 --
92193 l_balance_type_code          := 'E';
92194 l_segment                     := NULL;
92195 l_ccid                        := NULL;
92196 l_adr_transaction_coa_id      := NULL;
92197 l_adr_accounting_coa_id       := NULL;
92198 l_adr_flexfield_segment_code  := NULL;
92199 l_adr_flex_value_set_id       := NULL;
92200 l_adr_value_type_code         := NULL;
92201 l_adr_value_combination_id    := NULL;
92202 l_adr_value_segment_code      := NULL;
92203 
92204 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
92205 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
92206 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
92207 l_budgetary_control_flag     := 'N';
92208 
92209 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
92213 l_acc_rev_flag               := NULL;          -- 4262811
92210 l_bflow_applied_to_amt       := NULL; -- 5132302
92211 l_entered_amt_idx            := NULL;          -- 4262811
92212 l_accted_amt_idx             := NULL;          -- 4262811
92214 l_accrual_line_num           := NULL;          -- 4262811
92215 l_tmp_amt                    := NULL;          -- 4262811
92216 --
92217  
92218 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
92219     l_balance_type_code <> 'B' THEN
92220 IF NVL(p_source_21,'
92221 ') =  'ITEM' AND 
92222 NVL(p_source_84,'
92223 ') <>  'Y' AND 
92224 NVL(p_source_86,'
92225 ') =  'Y' AND 
92226 NVL(p_source_87,'
92227 ') =  'Y'
92228  THEN 
92229 
92230    --
92231    XLA_AE_LINES_PKG.SetNewLine;
92232 
92233    p_balance_type_code          := l_balance_type_code;
92234    -- set the flag so later we will know whether the gain loss line needs to be created
92235    
92236    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
92237      p_actual_flag :='A';
92238    END IF;
92239 
92240    --
92241    -- bulk performance
92242    --
92243    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
92244                                       p_header_num   => 0); -- 4262811
92245    --
92246    -- set accounting line options
92247    --
92248    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
92249            p_natural_side_code          => 'C'
92250          , p_gain_or_loss_flag          => 'N'
92251          , p_gl_transfer_mode_code      => 'S'
92252          , p_acct_entry_type_code       => 'E'
92253          , p_switch_side_flag           => 'Y'
92254          , p_merge_duplicate_code       => 'A'
92255          );
92256    --
92257    l_acc_rev_natural_side_code := 'D';  -- 4262811
92258    -- 
92259    --
92260    -- set accounting line type info
92261    --
92262    xla_ae_lines_pkg.SetAcctLineType
92263       (p_component_type             => l_component_type
92264       ,p_event_type_code            => l_event_type_code
92265       ,p_line_definition_owner_code => l_line_definition_owner_code
92266       ,p_line_definition_code       => l_line_definition_code
92267       ,p_accounting_line_code       => l_component_code
92268       ,p_accounting_line_type_code  => l_component_type_code
92269       ,p_accounting_line_appl_id    => l_component_appl_id
92270       ,p_amb_context_code           => l_amb_context_code
92271       ,p_entity_code                => l_entity_code
92272       ,p_event_class_code           => l_event_class_code);
92273    --
92274    -- set accounting class
92275    --
92276    xla_ae_lines_pkg.SetAcctClass(
92277            p_accounting_class_code  => 'ITEM EXPENSE'
92278          , p_ae_header_id           => l_ae_header_id
92279          );
92280 
92281    --
92282    -- set rounding class
92283    --
92284    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
92285                       'ITEM EXPENSE';
92286 
92287    --
92288    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
92289    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
92290    --
92291    -- bulk performance
92292    --
92293    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
92294 
92295    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
92296       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
92297 
92298    -- 4955764
92299    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92300       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
92301 
92302    -- 4458381 Public Sector Enh
92303    
92304    --
92305    -- set accounting attributes for the line type
92306    --
92307    l_entered_amt_idx := 23;
92308    l_accted_amt_idx  := 25;
92309    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
92310    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
92311    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
92312    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
92313    l_rec_acct_attrs.array_num_value(2)  := 
92314 xla_ae_sources_pkg.GetSystemSourceNum(
92315    p_source_code           => 'XLA_EVENT_APPL_ID'
92316  , p_source_type_code      => 'Y'
92317  , p_source_application_id =>  602
92318 );
92319    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
92320    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
92321    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
92322    l_rec_acct_attrs.array_char_value(4)  := 
92323 xla_ae_sources_pkg.GetSystemSourceChar(
92324    p_source_code           => 'XLA_ENTITY_CODE'
92325  , p_source_type_code      => 'Y'
92326  , p_source_application_id =>  602
92327 );
92331    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
92328    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
92329    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
92330    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
92332    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
92333    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
92334    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
92335    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
92336    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
92337    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
92338    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
92339    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
92340    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
92341    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
92342    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
92343    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
92344    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
92345    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
92346    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
92347    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
92348    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
92349    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
92350    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
92351    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
92352    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
92353    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
92354    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
92355    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
92356    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
92357    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
92358    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
92359    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
92360    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
92361    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
92362    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
92363    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
92364    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
92365    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
92366    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
92367    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
92368    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
92369    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
92370    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
92371    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
92372    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
92373    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
92374    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
92375    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
92376    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
92377    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
92378    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
92379    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
92380    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
92381    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
92382    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
92383    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
92384    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
92385    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
92386    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
92387    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
92388    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
92389    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
92390    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
92391    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
92392    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
92393    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
92394    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
92395    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
92396 
92397    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
92398    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
92399 
92400    ---------------------------------------------------------------------------------------------------------------
92401    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
92402    ---------------------------------------------------------------------------------------------------------------
92403    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
92404 
92405    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92406    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92407 
92408    IF xla_accounting_cache_pkg.GetValueChar
92409          (p_source_code         => 'LEDGER_CATEGORY_CODE'
92410          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
92411    AND l_bflow_method_code = 'PRIOR_ENTRY'
92412 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
92413    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
92414          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
92415        )
92416    THEN
92420            ,p_balance_type            => l_balance_type_code);
92417          xla_ae_lines_pkg.BflowUpgEntry
92418            (p_business_method_code    => l_bflow_method_code
92419            ,p_business_class_code     => l_bflow_class_code
92421    ELSE
92422       NULL;
92423 XLA_AE_LINES_PKG.business_flow_validation(
92424                                 p_business_method_code     => l_bflow_method_code
92425                                ,p_business_class_code      => l_bflow_class_code
92426                                ,p_inherit_description_flag => l_inherit_desc_flag);
92427    END IF;
92428 
92429    --
92430    -- call analytical criteria
92431    --
92432    -- Inherited Analytical Criteria for business flow method of Prior Entry.
92433    --
92434    -- call description
92435    --
92436    -- No description or it is inherited.
92437    --
92438    -- call ADRs
92439    -- Bug 4922099
92440    --
92441    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92442         (NVL(l_actual_upg_option, 'N') = 'O') OR
92443         (NVL(l_enc_upg_option, 'N') = 'O')
92444       )
92445    THEN
92446    NULL;
92447    --
92448    --
92449    
92450    --
92451    --
92452    END IF;
92453    --
92454    -- Bug 4922099
92455    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
92456           (NVL(l_enc_upg_option, 'N') = 'O')
92457         ) AND
92458         (l_bflow_method_code = 'PRIOR_ENTRY')
92459       )
92460    THEN
92461       IF
92462       --
92463       1 = 1
92464       --
92465       THEN
92466       xla_accounting_err_pkg.build_message
92467                                     (p_appli_s_name            => 'XLA'
92468                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92469                                     ,p_token_1                 => 'LINE_NUMBER'
92470                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
92471                                     ,p_token_2                 => 'LINE_TYPE_NAME'
92472                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
92473                                                                              l_component_type
92474                                                                             ,l_component_code
92475                                                                             ,l_component_type_code
92476                                                                             ,l_component_appl_id
92477                                                                             ,l_amb_context_code
92478                                                                             ,l_entity_code
92479                                                                             ,l_event_class_code
92480                                                                            )
92481                                     ,p_token_3                 => 'OWNER'
92482                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
92483                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
92484                                                                           ,p_lookup_code    => l_component_type_code
92485                                                                          )
92486                                     ,p_token_4                 => 'PRODUCT_NAME'
92487                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
92488                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
92489                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
92490                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
92491                                     ,p_ae_header_id            =>  NULL
92492                                        );
92493 
92494         IF (C_LEVEL_ERROR>= g_log_level) THEN
92495                  trace
92496                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92497                       ,p_level    => C_LEVEL_ERROR
92498                       ,p_module   => l_log_module);
92499         END IF;
92500       END IF;
92501    END IF;
92502    --
92503    --
92504    ------------------------------------------------------------------------------------------------
92505    -- 4219869 Business Flow
92506    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
92507    -- Prior Entry.  Currently, the following code is always generated.
92508    ------------------------------------------------------------------------------------------------
92509    -- No ValidateCurrentLine for business flow method of Prior Entry
92510 
92511    ------------------------------------------------------------------------------------
92512    -- 4219869 Business Flow
92513    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
92514    ------------------------------------------------------------------------------------
92515    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92516 
92517    ----------------------------------------------------------------------------------
92518    -- 4219869 Business Flow
92519    -- Update journal entry status -- Need to generate this within IF <condition>
92520    ----------------------------------------------------------------------------------
92521    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92522          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
92523          ,p_balance_type_code => l_balance_type_code
92524          );
92525 
92526    -------------------------------------------------------------------------------------------
92530       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
92527    -- 4262811 - Generate the Accrual Reversal lines
92528    -------------------------------------------------------------------------------------------
92529    BEGIN
92531                               (g_array_event(p_event_id).array_value_num('header_index'));
92532       IF l_acc_rev_flag IS NULL THEN
92533          l_acc_rev_flag := 'N';
92534       END IF;
92535    EXCEPTION
92536       WHEN OTHERS THEN
92537          l_acc_rev_flag := 'N';
92538    END;
92539    --
92540    IF (l_acc_rev_flag = 'Y') THEN
92541 
92542        -- 4645092  ------------------------------------------------------------------------------
92543        -- To allow MPA report to determine if it should generate report process
92544        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
92545        ------------------------------------------------------------------------------------------
92546 
92547        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
92548        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
92549    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
92550    -- call ADRs
92551    -- Bug 4922099
92552    --
92553    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92554         (NVL(l_actual_upg_option, 'N') = 'O') OR
92555         (NVL(l_enc_upg_option, 'N') = 'O')
92556       )
92557    THEN
92558    NULL;
92559    --
92560    --
92561    
92562    --
92563    --
92564    END IF;
92565 
92566        --
92567        -- Update the line information that should be overwritten
92568        --
92569        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
92570                                          p_header_num   => 1);
92571        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
92572 
92573        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
92574 
92575        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
92576           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
92577        END IF;
92578 
92579       --
92580       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
92581       --
92582       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
92583           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
92584       ELSE
92585           ---------------------------------------------------------------------------------------------------
92586           -- 4262811a Switch Sign
92587           ---------------------------------------------------------------------------------------------------
92588           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
92589           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92590                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92591           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92592                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92593           -- 5132302
92594           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
92595                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92596 
92597       END IF;
92598 
92599       -- 4955764
92600       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92601       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
92602 
92603 
92604       XLA_AE_LINES_PKG.ValidateCurrentLine;
92605       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92606 
92607       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92608                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
92609                ,p_balance_type_code => l_balance_type_code);
92610 
92611    END IF;
92612 
92613    -----------------------------------------------------------------------------------------
92614    -- 4262811 Multiperiod Accounting
92615    -----------------------------------------------------------------------------------------
92616      -- No MPA option is assigned.
92617 
92618 
92619 END IF;
92620 END IF;
92621 --
92622 
92623 --
92624 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92625    trace
92626       (p_msg      => 'END of AcctLineType_164'
92627       ,p_level    => C_LEVEL_PROCEDURE
92628       ,p_module   => l_log_module);
92629 END IF;
92630 --
92631 EXCEPTION
92632   WHEN xla_exceptions_pkg.application_exception THEN
92633       RAISE;
92634   WHEN OTHERS THEN
92635        xla_exceptions_pkg.raise_message
92636            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_164');
92637 END AcctLineType_164;
92638 --
92639 
92640 ---------------------------------------
92641 --
92642 -- PRIVATE FUNCTION
92643 --         AcctLineType_165
92644 --
92645 ---------------------------------------
92646 PROCEDURE AcctLineType_165 (
92647   p_application_id        IN NUMBER
92648  ,p_event_id              IN NUMBER
92649  ,p_calculate_acctd_flag  IN VARCHAR2
92650  ,p_calculate_g_l_flag    IN VARCHAR2
92651  ,p_actual_flag           IN OUT VARCHAR2
92652  ,p_balance_type_code     OUT VARCHAR2
92653  ,p_gain_or_loss_ref      OUT VARCHAR2
92654  
92655 --Accounting Reversal Indicator
92659 --Override Accounted Amount Indicator
92656  , p_source_41            IN VARCHAR2
92657 --Distribution Link Type
92658  , p_source_43            IN VARCHAR2
92660  , p_source_68            IN VARCHAR2
92661  , p_source_68_meaning    IN VARCHAR2
92662 --Third Party Type
92663  , p_source_71            IN VARCHAR2
92664 --Invoice Distribution Tax Line Identifier
92665  , p_source_74            IN NUMBER
92666 --Invoice Distribution Summary Tax Line Identifier
92667  , p_source_76            IN NUMBER
92668 --Business Flow Accounts Payable Application Identifier
92669  , p_source_79            IN NUMBER
92670 --Business Flow Invoice Distribution Type
92671  , p_source_80            IN VARCHAR2
92672 --Business Flow Invoice Entity Code
92673  , p_source_81            IN VARCHAR2
92674 --Business Flow Invoice Distribution Identifier
92675  , p_source_82            IN NUMBER
92676 --Business Flow Invoice Identifier
92677  , p_source_83            IN NUMBER
92678 --When to Account for Payment Option
92679  , p_source_89            IN VARCHAR2
92680 --Payment Distribution Type
92681  , p_source_90            IN VARCHAR2
92682  , p_source_90_meaning    IN VARCHAR2
92683 --Payment Distribution Amount
92684  , p_source_91            IN NUMBER
92685 --Payment Distribution Identifier
92686  , p_source_96            IN NUMBER
92687 --Payment Distribution Reversed Identifier
92688  , p_source_104            IN NUMBER
92689 --Payment Currency Code
92690  , p_source_106            IN VARCHAR2
92691 --Payment Distribution (Invoice Rate) Ledger Amount
92692  , p_source_109            IN NUMBER
92693 --Payment Type
92694  , p_source_115            IN VARCHAR2
92695  , p_source_115_meaning    IN VARCHAR2
92696 --Invoice Type Paid
92697  , p_source_158            IN VARCHAR2
92698  , p_source_158_meaning    IN VARCHAR2
92699 --Withholding at Payment Indicator
92700  , p_source_160            IN VARCHAR2
92701  , p_source_160_meaning    IN VARCHAR2
92702 )
92703 IS
92704 
92705 l_component_type              VARCHAR2(80);
92706 l_component_code              VARCHAR2(30);
92707 l_component_type_code         VARCHAR2(1);
92708 l_component_appl_id           INTEGER;
92709 l_amb_context_code            VARCHAR2(30);
92710 l_entity_code                 VARCHAR2(30);
92711 l_event_class_code            VARCHAR2(30);
92712 l_ae_header_id                NUMBER;
92713 l_event_type_code             VARCHAR2(30);
92714 l_line_definition_code        VARCHAR2(30);
92715 l_line_definition_owner_code  VARCHAR2(1);
92716 --
92717 -- adr variables
92718 l_segment                     VARCHAR2(30);
92719 l_ccid                        NUMBER;
92720 l_adr_transaction_coa_id      NUMBER;
92721 l_adr_accounting_coa_id       NUMBER;
92722 l_adr_flexfield_segment_code  VARCHAR2(30);
92723 l_adr_flex_value_set_id       NUMBER;
92724 l_adr_value_type_code         VARCHAR2(30);
92725 l_adr_value_combination_id    NUMBER;
92726 l_adr_value_segment_code      VARCHAR2(30);
92727 
92728 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
92729 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
92730 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
92731 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
92732 
92733 -- 4262811 Variables ------------------------------------------------------------------------------------------
92734 l_entered_amt_idx             NUMBER;
92735 l_accted_amt_idx              NUMBER;
92736 l_acc_rev_flag                VARCHAR2(1);
92737 l_accrual_line_num            NUMBER;
92738 l_tmp_amt                     NUMBER;
92739 l_acc_rev_natural_side_code   VARCHAR2(1);
92740 
92741 l_num_entries                 NUMBER;
92742 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
92743 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
92744 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
92745 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
92746 l_recog_line_1                NUMBER;
92747 l_recog_line_2                NUMBER;
92748 
92749 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
92750 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
92751 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
92752 
92756 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
92753 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
92754 
92755 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
92757 
92761 --
92758 ---------------------------------------------------------------------------------------------------------------
92759 
92760 
92762 -- bulk performance
92763 --
92764 l_balance_type_code           VARCHAR2(1);
92765 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
92766 l_log_module                  VARCHAR2(240);
92767 
92768 --
92769 -- Upgrade strategy
92770 --
92771 l_actual_upg_option           VARCHAR2(1);
92772 l_enc_upg_option           VARCHAR2(1);
92773 
92774 --
92775 BEGIN
92776 --
92777 IF g_log_enabled THEN
92778       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_165';
92779 END IF;
92780 --
92781 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92782 
92783       trace
92784          (p_msg      => 'BEGIN of AcctLineType_165'
92785          ,p_level    => C_LEVEL_PROCEDURE
92786          ,p_module   => l_log_module);
92787 
92788 END IF;
92789 --
92790 l_component_type             := 'AMB_JLT';
92791 l_component_code             := 'AP_LIAB_AWT_CLEAR';
92792 l_component_type_code        := 'S';
92793 l_component_appl_id          :=  200;
92794 l_amb_context_code           := 'DEFAULT';
92795 l_entity_code                := 'AP_PAYMENTS';
92796 l_event_class_code           := 'RECONCILED PAYMENTS';
92797 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
92798 l_line_definition_owner_code := 'S';
92799 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
92800 --
92801 l_balance_type_code          := 'A';
92802 l_segment                     := NULL;
92803 l_ccid                        := NULL;
92804 l_adr_transaction_coa_id      := NULL;
92805 l_adr_accounting_coa_id       := NULL;
92806 l_adr_flexfield_segment_code  := NULL;
92807 l_adr_flex_value_set_id       := NULL;
92808 l_adr_value_type_code         := NULL;
92809 l_adr_value_combination_id    := NULL;
92810 l_adr_value_segment_code      := NULL;
92811 
92812 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
92813 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
92814 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
92815 l_budgetary_control_flag     := 'N';
92816 
92817 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
92818 l_bflow_applied_to_amt       := NULL; -- 5132302
92819 l_entered_amt_idx            := NULL;          -- 4262811
92820 l_accted_amt_idx             := NULL;          -- 4262811
92821 l_acc_rev_flag               := NULL;          -- 4262811
92822 l_accrual_line_num           := NULL;          -- 4262811
92823 l_tmp_amt                    := NULL;          -- 4262811
92824 --
92825  
92826 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
92827     l_balance_type_code <> 'B' THEN
92828 IF NVL(p_source_89,'
92829 ') =  'CLEAR_CLEAR' AND 
92830 NVL(p_source_158,'
92831 ') <>  'INTEREST' AND 
92832 NVL(p_source_90,'
92833 ') =  'AWT' AND 
92834 NVL(p_source_160,'
92835 ') =  'Y' AND 
92836 NVL(p_source_115,'
92837 ') <>  'R'
92838  THEN 
92839 
92840    --
92841    XLA_AE_LINES_PKG.SetNewLine;
92842 
92843    p_balance_type_code          := l_balance_type_code;
92844    -- set the flag so later we will know whether the gain loss line needs to be created
92845    
92846    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
92847      p_actual_flag :='A';
92848    END IF;
92849 
92850    --
92851    -- bulk performance
92852    --
92853    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
92854                                       p_header_num   => 0); -- 4262811
92855    --
92856    -- set accounting line options
92857    --
92858    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
92859            p_natural_side_code          => 'D'
92860          , p_gain_or_loss_flag          => 'N'
92861          , p_gl_transfer_mode_code      => 'S'
92862          , p_acct_entry_type_code       => 'A'
92863          , p_switch_side_flag           => 'Y'
92864          , p_merge_duplicate_code       => 'A'
92865          );
92866    --
92867    l_acc_rev_natural_side_code := 'C';  -- 4262811
92868    -- 
92869    --
92870    -- set accounting line type info
92871    --
92872    xla_ae_lines_pkg.SetAcctLineType
92873       (p_component_type             => l_component_type
92874       ,p_event_type_code            => l_event_type_code
92875       ,p_line_definition_owner_code => l_line_definition_owner_code
92876       ,p_line_definition_code       => l_line_definition_code
92877       ,p_accounting_line_code       => l_component_code
92878       ,p_accounting_line_type_code  => l_component_type_code
92879       ,p_accounting_line_appl_id    => l_component_appl_id
92880       ,p_amb_context_code           => l_amb_context_code
92881       ,p_entity_code                => l_entity_code
92882       ,p_event_class_code           => l_event_class_code);
92883    --
92884    -- set accounting class
92885    --
92886    xla_ae_lines_pkg.SetAcctClass(
92887            p_accounting_class_code  => 'LIABILITY'
92888          , p_ae_header_id           => l_ae_header_id
92889          );
92890 
92891    --
92892    -- set rounding class
92893    --
92894    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
92895                       'LIABILITY';
92896 
92897    --
92898    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
92902    --
92899    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
92900    --
92901    -- bulk performance
92903    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
92904 
92905    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
92906       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
92907 
92908    -- 4955764
92909    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92910       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
92911 
92912    -- 4458381 Public Sector Enh
92913    
92914    --
92915    -- set accounting attributes for the line type
92916    --
92917    l_entered_amt_idx := 10;
92918    l_accted_amt_idx  := 12;
92922    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
92919    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
92920    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
92921    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
92923    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
92924    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
92925    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
92926    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
92927    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
92928    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
92929    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
92930    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
92931    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
92932    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
92933    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
92934    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
92935    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
92939    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
92936    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
92937    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
92938    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
92940    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
92941    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
92942    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
92943    l_rec_acct_attrs.array_num_value(12)  := p_source_109;
92944    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
92945    l_rec_acct_attrs.array_char_value(13)  := p_source_68;
92946    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
92947    l_rec_acct_attrs.array_char_value(14)  := p_source_71;
92948    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
92949    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_104);
92950    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
92951    l_rec_acct_attrs.array_char_value(16)  := p_source_43;
92952    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
92953    l_rec_acct_attrs.array_num_value(17)  := p_source_74;
92954    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
92955    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
92956    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
92957    l_rec_acct_attrs.array_num_value(19)  := p_source_76;
92958 
92959    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
92960    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
92961 
92962    ---------------------------------------------------------------------------------------------------------------
92963    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
92964    ---------------------------------------------------------------------------------------------------------------
92965    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
92966 
92967    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92968    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92969 
92970    IF xla_accounting_cache_pkg.GetValueChar
92971          (p_source_code         => 'LEDGER_CATEGORY_CODE'
92972          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
92973    AND l_bflow_method_code = 'PRIOR_ENTRY'
92974 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
92975    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
92976          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
92977        )
92978    THEN
92979          xla_ae_lines_pkg.BflowUpgEntry
92980            (p_business_method_code    => l_bflow_method_code
92981            ,p_business_class_code     => l_bflow_class_code
92982            ,p_balance_type            => l_balance_type_code);
92983    ELSE
92984       NULL;
92985 XLA_AE_LINES_PKG.business_flow_validation(
92986                                 p_business_method_code     => l_bflow_method_code
92987                                ,p_business_class_code      => l_bflow_class_code
92988                                ,p_inherit_description_flag => l_inherit_desc_flag);
92989    END IF;
92990 
92991    --
92992    -- call analytical criteria
92993    --
92994    -- Inherited Analytical Criteria for business flow method of Prior Entry.
92995    --
92996    -- call description
92997    --
92998    -- No description or it is inherited.
92999    --
93000    -- call ADRs
93001    -- Bug 4922099
93002    --
93003    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93004         (NVL(l_actual_upg_option, 'N') = 'O') OR
93005         (NVL(l_enc_upg_option, 'N') = 'O')
93006       )
93007    THEN
93008    NULL;
93009    --
93010    --
93011    
93012    --
93013    --
93014    END IF;
93015    --
93016    -- Bug 4922099
93017    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
93018           (NVL(l_enc_upg_option, 'N') = 'O')
93019         ) AND
93020         (l_bflow_method_code = 'PRIOR_ENTRY')
93021       )
93022    THEN
93023       IF
93024       --
93025       1 = 1
93026       --
93027       THEN
93028       xla_accounting_err_pkg.build_message
93029                                     (p_appli_s_name            => 'XLA'
93030                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93031                                     ,p_token_1                 => 'LINE_NUMBER'
93032                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
93033                                     ,p_token_2                 => 'LINE_TYPE_NAME'
93034                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
93035                                                                              l_component_type
93036                                                                             ,l_component_code
93037                                                                             ,l_component_type_code
93038                                                                             ,l_component_appl_id
93039                                                                             ,l_amb_context_code
93040                                                                             ,l_entity_code
93044                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
93041                                                                             ,l_event_class_code
93042                                                                            )
93043                                     ,p_token_3                 => 'OWNER'
93045                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
93046                                                                           ,p_lookup_code    => l_component_type_code
93047                                                                          )
93048                                     ,p_token_4                 => 'PRODUCT_NAME'
93049                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
93050                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
93051                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
93052                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
93053                                     ,p_ae_header_id            =>  NULL
93054                                        );
93055 
93056         IF (C_LEVEL_ERROR>= g_log_level) THEN
93057                  trace
93058                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93059                       ,p_level    => C_LEVEL_ERROR
93060                       ,p_module   => l_log_module);
93061         END IF;
93062       END IF;
93063    END IF;
93064    --
93065    --
93066    ------------------------------------------------------------------------------------------------
93067    -- 4219869 Business Flow
93068    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
93069    -- Prior Entry.  Currently, the following code is always generated.
93070    ------------------------------------------------------------------------------------------------
93071    -- No ValidateCurrentLine for business flow method of Prior Entry
93072 
93073    ------------------------------------------------------------------------------------
93074    -- 4219869 Business Flow
93075    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
93076    ------------------------------------------------------------------------------------
93077    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93078 
93079    ----------------------------------------------------------------------------------
93080    -- 4219869 Business Flow
93081    -- Update journal entry status -- Need to generate this within IF <condition>
93082    ----------------------------------------------------------------------------------
93083    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93084          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
93085          ,p_balance_type_code => l_balance_type_code
93086          );
93087 
93088    -------------------------------------------------------------------------------------------
93089    -- 4262811 - Generate the Accrual Reversal lines
93090    -------------------------------------------------------------------------------------------
93091    BEGIN
93092       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
93093                               (g_array_event(p_event_id).array_value_num('header_index'));
93094       IF l_acc_rev_flag IS NULL THEN
93095          l_acc_rev_flag := 'N';
93096       END IF;
93097    EXCEPTION
93098       WHEN OTHERS THEN
93099          l_acc_rev_flag := 'N';
93100    END;
93101    --
93102    IF (l_acc_rev_flag = 'Y') THEN
93103 
93104        -- 4645092  ------------------------------------------------------------------------------
93105        -- To allow MPA report to determine if it should generate report process
93109        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
93106        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
93107        ------------------------------------------------------------------------------------------
93108 
93110        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
93111    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
93112    -- call ADRs
93113    -- Bug 4922099
93114    --
93115    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93116         (NVL(l_actual_upg_option, 'N') = 'O') OR
93117         (NVL(l_enc_upg_option, 'N') = 'O')
93118       )
93119    THEN
93120    NULL;
93121    --
93122    --
93123    
93124    --
93125    --
93126    END IF;
93127 
93128        --
93129        -- Update the line information that should be overwritten
93130        --
93131        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
93132                                          p_header_num   => 1);
93133        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
93134 
93135        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
93136 
93137        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
93138           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
93139        END IF;
93140 
93141       --
93142       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
93143       --
93144       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
93145           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
93146       ELSE
93147           ---------------------------------------------------------------------------------------------------
93148           -- 4262811a Switch Sign
93149           ---------------------------------------------------------------------------------------------------
93150           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
93151           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93152                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93153           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93154                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93155           -- 5132302
93156           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
93157                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93158 
93159       END IF;
93160 
93161       -- 4955764
93165 
93162       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93163       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
93164 
93166       XLA_AE_LINES_PKG.ValidateCurrentLine;
93167       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93168 
93169       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93170                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
93171                ,p_balance_type_code => l_balance_type_code);
93172 
93173    END IF;
93174 
93175    -----------------------------------------------------------------------------------------
93176    -- 4262811 Multiperiod Accounting
93177    -----------------------------------------------------------------------------------------
93178      -- No MPA option is assigned.
93179 
93180 
93181 END IF;
93182 END IF;
93183 --
93184 
93185 --
93186 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93187    trace
93188       (p_msg      => 'END of AcctLineType_165'
93189       ,p_level    => C_LEVEL_PROCEDURE
93190       ,p_module   => l_log_module);
93191 END IF;
93192 --
93193 EXCEPTION
93194   WHEN xla_exceptions_pkg.application_exception THEN
93195       RAISE;
93196   WHEN OTHERS THEN
93197        xla_exceptions_pkg.raise_message
93198            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_165');
93199 END AcctLineType_165;
93200 --
93201 
93202 ---------------------------------------
93203 --
93204 -- PRIVATE FUNCTION
93205 --         AcctLineType_166
93206 --
93207 ---------------------------------------
93208 PROCEDURE AcctLineType_166 (
93209   p_application_id        IN NUMBER
93210  ,p_event_id              IN NUMBER
93211  ,p_calculate_acctd_flag  IN VARCHAR2
93212  ,p_calculate_g_l_flag    IN VARCHAR2
93213  ,p_actual_flag           IN OUT VARCHAR2
93214  ,p_balance_type_code     OUT VARCHAR2
93215  ,p_gain_or_loss_ref      OUT VARCHAR2
93216  
93217 --Accounting Reversal Indicator
93218  , p_source_41            IN VARCHAR2
93219 --Distribution Link Type
93220  , p_source_43            IN VARCHAR2
93221 --Override Accounted Amount Indicator
93222  , p_source_68            IN VARCHAR2
93223  , p_source_68_meaning    IN VARCHAR2
93224 --Third Party Type
93225  , p_source_71            IN VARCHAR2
93226 --Invoice Distribution Tax Line Identifier
93227  , p_source_74            IN NUMBER
93228 --Invoice Distribution Tax Distribution Identifier from Tax
93229  , p_source_75            IN NUMBER
93230 --Invoice Distribution Summary Tax Line Identifier
93231  , p_source_76            IN NUMBER
93232 --Business Flow Accounts Payable Application Identifier
93233  , p_source_79            IN NUMBER
93234 --Business Flow Invoice Distribution Type
93235  , p_source_80            IN VARCHAR2
93236 --Business Flow Invoice Entity Code
93237  , p_source_81            IN VARCHAR2
93238 --Business Flow Invoice Distribution Identifier
93239  , p_source_82            IN NUMBER
93240 --Business Flow Invoice Identifier
93241  , p_source_83            IN NUMBER
93242 --When to Account for Payment Option
93243  , p_source_89            IN VARCHAR2
93244 --Payment Distribution Type
93245  , p_source_90            IN VARCHAR2
93246  , p_source_90_meaning    IN VARCHAR2
93247 --Payment Distribution Amount
93248  , p_source_91            IN NUMBER
93249 --Payment Distribution Identifier
93250  , p_source_96            IN NUMBER
93251 --Payment Distribution Reversed Identifier
93252  , p_source_104            IN NUMBER
93253 --Payment Currency Code
93254  , p_source_106            IN VARCHAR2
93255 --Payment Distribution (Invoice Rate) Ledger Amount
93256  , p_source_109            IN NUMBER
93257 --Payment Type
93258  , p_source_115            IN VARCHAR2
93259  , p_source_115_meaning    IN VARCHAR2
93260 --Payment Processing Type
93261  , p_source_116            IN VARCHAR2
93262 --Invoice Distribution Amount of the Payment Distribution
93263  , p_source_117            IN NUMBER
93264 --Invoice Type Paid
93265  , p_source_158            IN VARCHAR2
93266  , p_source_158_meaning    IN VARCHAR2
93267 --Withholding at Payment Indicator
93268  , p_source_160            IN VARCHAR2
93269  , p_source_160_meaning    IN VARCHAR2
93270 )
93271 IS
93272 
93273 l_component_type              VARCHAR2(80);
93274 l_component_code              VARCHAR2(30);
93275 l_component_type_code         VARCHAR2(1);
93276 l_component_appl_id           INTEGER;
93277 l_amb_context_code            VARCHAR2(30);
93278 l_entity_code                 VARCHAR2(30);
93279 l_event_class_code            VARCHAR2(30);
93280 l_ae_header_id                NUMBER;
93281 l_event_type_code             VARCHAR2(30);
93282 l_line_definition_code        VARCHAR2(30);
93283 l_line_definition_owner_code  VARCHAR2(1);
93284 --
93285 -- adr variables
93286 l_segment                     VARCHAR2(30);
93287 l_ccid                        NUMBER;
93288 l_adr_transaction_coa_id      NUMBER;
93289 l_adr_accounting_coa_id       NUMBER;
93290 l_adr_flexfield_segment_code  VARCHAR2(30);
93291 l_adr_flex_value_set_id       NUMBER;
93292 l_adr_value_type_code         VARCHAR2(30);
93293 l_adr_value_combination_id    NUMBER;
93297 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
93294 l_adr_value_segment_code      VARCHAR2(30);
93295 
93296 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
93298 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
93299 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
93300 
93301 -- 4262811 Variables ------------------------------------------------------------------------------------------
93302 l_entered_amt_idx             NUMBER;
93303 l_accted_amt_idx              NUMBER;
93304 l_acc_rev_flag                VARCHAR2(1);
93305 l_accrual_line_num            NUMBER;
93306 l_tmp_amt                     NUMBER;
93307 l_acc_rev_natural_side_code   VARCHAR2(1);
93308 
93309 l_num_entries                 NUMBER;
93310 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
93311 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
93312 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
93313 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
93314 l_recog_line_1                NUMBER;
93315 l_recog_line_2                NUMBER;
93316 
93317 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
93318 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
93319 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
93320 
93324 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
93321 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
93322 
93323 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
93325 
93326 ---------------------------------------------------------------------------------------------------------------
93327 
93328 
93329 --
93330 -- bulk performance
93331 --
93332 l_balance_type_code           VARCHAR2(1);
93333 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
93334 l_log_module                  VARCHAR2(240);
93335 
93336 --
93337 -- Upgrade strategy
93338 --
93339 l_actual_upg_option           VARCHAR2(1);
93340 l_enc_upg_option           VARCHAR2(1);
93341 
93342 --
93343 BEGIN
93344 --
93345 IF g_log_enabled THEN
93346       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_166';
93347 END IF;
93348 --
93349 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93350 
93351       trace
93352          (p_msg      => 'BEGIN of AcctLineType_166'
93353          ,p_level    => C_LEVEL_PROCEDURE
93354          ,p_module   => l_log_module);
93355 
93356 END IF;
93357 --
93361 l_component_appl_id          :=  200;
93358 l_component_type             := 'AMB_JLT';
93359 l_component_code             := 'AP_LIAB_AWT_PMT';
93360 l_component_type_code        := 'S';
93362 l_amb_context_code           := 'DEFAULT';
93363 l_entity_code                := 'AP_PAYMENTS';
93364 l_event_class_code           := 'PAYMENTS';
93365 l_event_type_code            := 'PAYMENTS_ALL';
93366 l_line_definition_owner_code := 'S';
93367 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
93368 --
93369 l_balance_type_code          := 'A';
93370 l_segment                     := NULL;
93371 l_ccid                        := NULL;
93372 l_adr_transaction_coa_id      := NULL;
93373 l_adr_accounting_coa_id       := NULL;
93374 l_adr_flexfield_segment_code  := NULL;
93375 l_adr_flex_value_set_id       := NULL;
93376 l_adr_value_type_code         := NULL;
93377 l_adr_value_combination_id    := NULL;
93378 l_adr_value_segment_code      := NULL;
93379 
93380 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
93381 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
93382 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
93383 l_budgetary_control_flag     := 'N';
93384 
93385 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
93386 l_bflow_applied_to_amt       := NULL; -- 5132302
93387 l_entered_amt_idx            := NULL;          -- 4262811
93388 l_accted_amt_idx             := NULL;          -- 4262811
93389 l_acc_rev_flag               := NULL;          -- 4262811
93390 l_accrual_line_num           := NULL;          -- 4262811
93391 l_tmp_amt                    := NULL;          -- 4262811
93392 --
93393  
93394 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
93395     l_balance_type_code <> 'B' THEN
93396 IF NVL(p_source_89,'
93397 ') <>  'CLEAR_CLEAR' AND 
93398 NVL(p_source_158,'
93399 ') <>  'INTEREST' AND 
93400 NVL(p_source_90,'
93401 ') =  'AWT' AND 
93402 NVL(p_source_160,'
93403 ') =  'Y' AND 
93404 NVL(p_source_115,'
93405 ') <>  'R' AND 
93406 NVL(p_source_116,'
93407 ') <>  'PAYMENTCARD'
93408  THEN 
93409 
93410    --
93411    XLA_AE_LINES_PKG.SetNewLine;
93412 
93413    p_balance_type_code          := l_balance_type_code;
93414    -- set the flag so later we will know whether the gain loss line needs to be created
93415    
93416    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
93417      p_actual_flag :='A';
93418    END IF;
93419 
93420    --
93421    -- bulk performance
93422    --
93423    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
93424                                       p_header_num   => 0); -- 4262811
93425    --
93426    -- set accounting line options
93427    --
93428    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
93429            p_natural_side_code          => 'D'
93430          , p_gain_or_loss_flag          => 'N'
93431          , p_gl_transfer_mode_code      => 'S'
93432          , p_acct_entry_type_code       => 'A'
93433          , p_switch_side_flag           => 'Y'
93434          , p_merge_duplicate_code       => 'A'
93435          );
93436    --
93437    l_acc_rev_natural_side_code := 'C';  -- 4262811
93438    -- 
93439    --
93440    -- set accounting line type info
93441    --
93442    xla_ae_lines_pkg.SetAcctLineType
93443       (p_component_type             => l_component_type
93444       ,p_event_type_code            => l_event_type_code
93445       ,p_line_definition_owner_code => l_line_definition_owner_code
93446       ,p_line_definition_code       => l_line_definition_code
93447       ,p_accounting_line_code       => l_component_code
93448       ,p_accounting_line_type_code  => l_component_type_code
93449       ,p_accounting_line_appl_id    => l_component_appl_id
93450       ,p_amb_context_code           => l_amb_context_code
93451       ,p_entity_code                => l_entity_code
93452       ,p_event_class_code           => l_event_class_code);
93453    --
93454    -- set accounting class
93455    --
93456    xla_ae_lines_pkg.SetAcctClass(
93457            p_accounting_class_code  => 'LIABILITY'
93458          , p_ae_header_id           => l_ae_header_id
93459          );
93460 
93461    --
93462    -- set rounding class
93463    --
93464    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
93465                       'LIABILITY';
93466 
93467    --
93468    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
93469    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
93470    --
93471    -- bulk performance
93472    --
93473    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
93474 
93475    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
93476       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
93477 
93478    -- 4955764
93479    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93480       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
93481 
93482    -- 4458381 Public Sector Enh
93483    
93484    --
93485    -- set accounting attributes for the line type
93486    --
93487    l_entered_amt_idx := 10;
93488    l_accted_amt_idx  := 12;
93492    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
93489    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
93490    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
93491    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
93493    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
93494    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
93495    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
93496    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
93497    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
93498    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
93499    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
93500    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
93501    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
93502    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
93503    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
93504    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
93505    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
93506    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
93507    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
93508    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
93509    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
93510    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
93511    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
93512    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
93513    l_rec_acct_attrs.array_num_value(12)  := p_source_109;
93514    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
93515    l_rec_acct_attrs.array_char_value(13)  := p_source_68;
93516    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
93517    l_rec_acct_attrs.array_char_value(14)  := p_source_71;
93518    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
93519    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_104);
93520    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
93521    l_rec_acct_attrs.array_char_value(16)  := p_source_43;
93522    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
93523    l_rec_acct_attrs.array_num_value(17)  := p_source_74;
93524    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
93525    l_rec_acct_attrs.array_num_value(18)  := p_source_75;
93526    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
93527    l_rec_acct_attrs.array_num_value(19)  := p_source_76;
93528 
93529    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
93530    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
93531 
93532    ---------------------------------------------------------------------------------------------------------------
93533    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
93534    ---------------------------------------------------------------------------------------------------------------
93535    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
93536 
93537    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93538    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93539 
93540    IF xla_accounting_cache_pkg.GetValueChar
93541          (p_source_code         => 'LEDGER_CATEGORY_CODE'
93542          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
93543    AND l_bflow_method_code = 'PRIOR_ENTRY'
93544 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
93545    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
93546          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
93547        )
93548    THEN
93549          xla_ae_lines_pkg.BflowUpgEntry
93550            (p_business_method_code    => l_bflow_method_code
93551            ,p_business_class_code     => l_bflow_class_code
93552            ,p_balance_type            => l_balance_type_code);
93553    ELSE
93554       NULL;
93555 XLA_AE_LINES_PKG.business_flow_validation(
93556                                 p_business_method_code     => l_bflow_method_code
93557                                ,p_business_class_code      => l_bflow_class_code
93558                                ,p_inherit_description_flag => l_inherit_desc_flag);
93559    END IF;
93560 
93561    --
93562    -- call analytical criteria
93563    --
93564    -- Inherited Analytical Criteria for business flow method of Prior Entry.
93565    --
93566    -- call description
93567    --
93568    -- No description or it is inherited.
93569    --
93570    -- call ADRs
93571    -- Bug 4922099
93572    --
93573    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93574         (NVL(l_actual_upg_option, 'N') = 'O') OR
93575         (NVL(l_enc_upg_option, 'N') = 'O')
93576       )
93577    THEN
93578    NULL;
93579    --
93580    --
93581    
93582    --
93583    --
93584    END IF;
93585    --
93586    -- Bug 4922099
93587    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
93588           (NVL(l_enc_upg_option, 'N') = 'O')
93589         ) AND
93590         (l_bflow_method_code = 'PRIOR_ENTRY')
93591       )
93592    THEN
93593       IF
93594       --
93595       1 = 1
93596       --
93597       THEN
93598       xla_accounting_err_pkg.build_message
93599                                     (p_appli_s_name            => 'XLA'
93600                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93604                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
93601                                     ,p_token_1                 => 'LINE_NUMBER'
93602                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
93603                                     ,p_token_2                 => 'LINE_TYPE_NAME'
93605                                                                              l_component_type
93606                                                                             ,l_component_code
93607                                                                             ,l_component_type_code
93608                                                                             ,l_component_appl_id
93609                                                                             ,l_amb_context_code
93610                                                                             ,l_entity_code
93614                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
93611                                                                             ,l_event_class_code
93612                                                                            )
93613                                     ,p_token_3                 => 'OWNER'
93615                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
93616                                                                           ,p_lookup_code    => l_component_type_code
93617                                                                          )
93618                                     ,p_token_4                 => 'PRODUCT_NAME'
93619                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
93620                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
93621                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
93622                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
93623                                     ,p_ae_header_id            =>  NULL
93624                                        );
93625 
93626         IF (C_LEVEL_ERROR>= g_log_level) THEN
93627                  trace
93628                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93629                       ,p_level    => C_LEVEL_ERROR
93630                       ,p_module   => l_log_module);
93631         END IF;
93632       END IF;
93633    END IF;
93634    --
93635    --
93636    ------------------------------------------------------------------------------------------------
93637    -- 4219869 Business Flow
93638    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
93639    -- Prior Entry.  Currently, the following code is always generated.
93640    ------------------------------------------------------------------------------------------------
93641    -- No ValidateCurrentLine for business flow method of Prior Entry
93642 
93643    ------------------------------------------------------------------------------------
93644    -- 4219869 Business Flow
93645    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
93646    ------------------------------------------------------------------------------------
93647    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93648 
93649    ----------------------------------------------------------------------------------
93650    -- 4219869 Business Flow
93651    -- Update journal entry status -- Need to generate this within IF <condition>
93652    ----------------------------------------------------------------------------------
93653    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93654          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
93655          ,p_balance_type_code => l_balance_type_code
93656          );
93657 
93661    BEGIN
93658    -------------------------------------------------------------------------------------------
93659    -- 4262811 - Generate the Accrual Reversal lines
93660    -------------------------------------------------------------------------------------------
93662       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
93663                               (g_array_event(p_event_id).array_value_num('header_index'));
93664       IF l_acc_rev_flag IS NULL THEN
93665          l_acc_rev_flag := 'N';
93666       END IF;
93667    EXCEPTION
93668       WHEN OTHERS THEN
93669          l_acc_rev_flag := 'N';
93670    END;
93671    --
93672    IF (l_acc_rev_flag = 'Y') THEN
93673 
93674        -- 4645092  ------------------------------------------------------------------------------
93675        -- To allow MPA report to determine if it should generate report process
93676        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
93677        ------------------------------------------------------------------------------------------
93678 
93679        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
93680        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
93681    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
93682    -- call ADRs
93683    -- Bug 4922099
93684    --
93685    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93686         (NVL(l_actual_upg_option, 'N') = 'O') OR
93687         (NVL(l_enc_upg_option, 'N') = 'O')
93688       )
93689    THEN
93690    NULL;
93691    --
93692    --
93693    
93694    --
93695    --
93696    END IF;
93697 
93698        --
93699        -- Update the line information that should be overwritten
93700        --
93701        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
93702                                          p_header_num   => 1);
93703        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
93704 
93705        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
93706 
93707        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
93708           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
93709        END IF;
93710 
93711       --
93712       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
93713       --
93714       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
93715           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
93716       ELSE
93717           ---------------------------------------------------------------------------------------------------
93718           -- 4262811a Switch Sign
93719           ---------------------------------------------------------------------------------------------------
93720           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
93721           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93722                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93723           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93724                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93725           -- 5132302
93726           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
93727                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93728 
93729       END IF;
93730 
93731       -- 4955764
93735 
93732       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93733       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
93734 
93739       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93736       XLA_AE_LINES_PKG.ValidateCurrentLine;
93737       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93738 
93740                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
93741                ,p_balance_type_code => l_balance_type_code);
93742 
93743    END IF;
93744 
93745    -----------------------------------------------------------------------------------------
93746    -- 4262811 Multiperiod Accounting
93747    -----------------------------------------------------------------------------------------
93748      -- No MPA option is assigned.
93749 
93750 
93751 END IF;
93752 END IF;
93753 --
93754 
93755 --
93756 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93757    trace
93758       (p_msg      => 'END of AcctLineType_166'
93759       ,p_level    => C_LEVEL_PROCEDURE
93760       ,p_module   => l_log_module);
93761 END IF;
93762 --
93763 EXCEPTION
93764   WHEN xla_exceptions_pkg.application_exception THEN
93765       RAISE;
93766   WHEN OTHERS THEN
93767        xla_exceptions_pkg.raise_message
93768            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_166');
93769 END AcctLineType_166;
93770 --
93771 
93772 ---------------------------------------
93773 --
93774 -- PRIVATE FUNCTION
93775 --         AcctLineType_167
93776 --
93777 ---------------------------------------
93778 PROCEDURE AcctLineType_167 (
93779   p_application_id        IN NUMBER
93780  ,p_event_id              IN NUMBER
93781  ,p_calculate_acctd_flag  IN VARCHAR2
93782  ,p_calculate_g_l_flag    IN VARCHAR2
93783  ,p_actual_flag           IN OUT VARCHAR2
93784  ,p_balance_type_code     OUT VARCHAR2
93785  ,p_gain_or_loss_ref      OUT VARCHAR2
93786  
93787 --Accounting Reversal Indicator
93788  , p_source_41            IN VARCHAR2
93789 --Distribution Link Type
93790  , p_source_43            IN VARCHAR2
93791 --Override Accounted Amount Indicator
93792  , p_source_68            IN VARCHAR2
93793  , p_source_68_meaning    IN VARCHAR2
93794 --Third Party Type
93795  , p_source_71            IN VARCHAR2
93796 --Invoice Distribution Tax Line Identifier
93797  , p_source_74            IN NUMBER
93798 --Invoice Distribution Summary Tax Line Identifier
93799  , p_source_76            IN NUMBER
93800 --Business Flow Accounts Payable Application Identifier
93801  , p_source_79            IN NUMBER
93802 --Business Flow Invoice Distribution Type
93803  , p_source_80            IN VARCHAR2
93804 --Business Flow Invoice Entity Code
93805  , p_source_81            IN VARCHAR2
93806 --Business Flow Invoice Distribution Identifier
93807  , p_source_82            IN NUMBER
93808 --Business Flow Invoice Identifier
93809  , p_source_83            IN NUMBER
93810 --When to Account for Payment Option
93811  , p_source_89            IN VARCHAR2
93812 --Payment Distribution Type
93813  , p_source_90            IN VARCHAR2
93814  , p_source_90_meaning    IN VARCHAR2
93815 --Payment Distribution Amount
93816  , p_source_91            IN NUMBER
93817 --Payment Distribution Identifier
93818  , p_source_96            IN NUMBER
93819 --Payment Distribution Reversed Identifier
93820  , p_source_104            IN NUMBER
93821 --Payment Currency Code
93822  , p_source_106            IN VARCHAR2
93823 --Payment Distribution (Invoice Rate) Ledger Amount
93824  , p_source_109            IN NUMBER
93825 --Invoice Type Paid
93826  , p_source_158            IN VARCHAR2
93827  , p_source_158_meaning    IN VARCHAR2
93828 )
93829 IS
93830 
93831 l_component_type              VARCHAR2(80);
93832 l_component_code              VARCHAR2(30);
93833 l_component_type_code         VARCHAR2(1);
93834 l_component_appl_id           INTEGER;
93835 l_amb_context_code            VARCHAR2(30);
93836 l_entity_code                 VARCHAR2(30);
93837 l_event_class_code            VARCHAR2(30);
93838 l_ae_header_id                NUMBER;
93839 l_event_type_code             VARCHAR2(30);
93840 l_line_definition_code        VARCHAR2(30);
93841 l_line_definition_owner_code  VARCHAR2(1);
93842 --
93843 -- adr variables
93844 l_segment                     VARCHAR2(30);
93845 l_ccid                        NUMBER;
93846 l_adr_transaction_coa_id      NUMBER;
93847 l_adr_accounting_coa_id       NUMBER;
93848 l_adr_flexfield_segment_code  VARCHAR2(30);
93849 l_adr_flex_value_set_id       NUMBER;
93850 l_adr_value_type_code         VARCHAR2(30);
93851 l_adr_value_combination_id    NUMBER;
93852 l_adr_value_segment_code      VARCHAR2(30);
93853 
93854 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
93855 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
93856 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
93857 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
93858 
93859 -- 4262811 Variables ------------------------------------------------------------------------------------------
93860 l_entered_amt_idx             NUMBER;
93861 l_accted_amt_idx              NUMBER;
93862 l_acc_rev_flag                VARCHAR2(1);
93863 l_accrual_line_num            NUMBER;
93864 l_tmp_amt                     NUMBER;
93865 l_acc_rev_natural_side_code   VARCHAR2(1);
93866 
93867 l_num_entries                 NUMBER;
93868 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
93869 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
93873 l_recog_line_2                NUMBER;
93870 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
93871 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
93872 l_recog_line_1                NUMBER;
93874 
93875 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
93876 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
93877 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
93878 
93879 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
93880 
93881 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
93882 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
93883 
93884 ---------------------------------------------------------------------------------------------------------------
93885 
93886 
93887 --
93888 -- bulk performance
93889 --
93890 l_balance_type_code           VARCHAR2(1);
93891 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
93892 l_log_module                  VARCHAR2(240);
93893 
93894 --
93895 -- Upgrade strategy
93896 --
93897 l_actual_upg_option           VARCHAR2(1);
93898 l_enc_upg_option           VARCHAR2(1);
93899 
93900 --
93901 BEGIN
93902 --
93903 IF g_log_enabled THEN
93904       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_167';
93905 END IF;
93906 --
93907 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93908 
93909       trace
93910          (p_msg      => 'BEGIN of AcctLineType_167'
93911          ,p_level    => C_LEVEL_PROCEDURE
93912          ,p_module   => l_log_module);
93913 
93914 END IF;
93915 --
93916 l_component_type             := 'AMB_JLT';
93917 l_component_code             := 'AP_LIAB_CLEAR';
93918 l_component_type_code        := 'S';
93919 l_component_appl_id          :=  200;
93920 l_amb_context_code           := 'DEFAULT';
93921 l_entity_code                := 'AP_PAYMENTS';
93922 l_event_class_code           := 'RECONCILED PAYMENTS';
93923 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
93924 l_line_definition_owner_code := 'S';
93925 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
93926 --
93927 l_balance_type_code          := 'A';
93928 l_segment                     := NULL;
93929 l_ccid                        := NULL;
93930 l_adr_transaction_coa_id      := NULL;
93931 l_adr_accounting_coa_id       := NULL;
93932 l_adr_flexfield_segment_code  := NULL;
93933 l_adr_flex_value_set_id       := NULL;
93934 l_adr_value_type_code         := NULL;
93935 l_adr_value_combination_id    := NULL;
93936 l_adr_value_segment_code      := NULL;
93937 
93938 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
93939 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
93940 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
93941 l_budgetary_control_flag     := 'N';
93942 
93943 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
93944 l_bflow_applied_to_amt       := NULL; -- 5132302
93945 l_entered_amt_idx            := NULL;          -- 4262811
93946 l_accted_amt_idx             := NULL;          -- 4262811
93947 l_acc_rev_flag               := NULL;          -- 4262811
93948 l_accrual_line_num           := NULL;          -- 4262811
93949 l_tmp_amt                    := NULL;          -- 4262811
93950 --
93951  
93952 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
93953     l_balance_type_code <> 'B' THEN
93954 IF NVL(p_source_89,'
93955 ') =  'CLEAR_CLEAR' AND 
93956 NVL(p_source_158,'
93957 ') <>  'INTEREST' AND 
93958 (NVL(p_source_90,'
93959 ') =  'ROUNDING' OR 
93960 NVL(p_source_90,'
93961 ') =  'CASH' OR 
93962 NVL(p_source_90,'
93963 ') =  'DISCOUNT')
93964  THEN 
93965 
93966    --
93967    XLA_AE_LINES_PKG.SetNewLine;
93968 
93969    p_balance_type_code          := l_balance_type_code;
93970    -- set the flag so later we will know whether the gain loss line needs to be created
93971    
93972    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
93973      p_actual_flag :='A';
93974    END IF;
93975 
93976    --
93977    -- bulk performance
93978    --
93979    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
93980                                       p_header_num   => 0); -- 4262811
93981    --
93982    -- set accounting line options
93983    --
93984    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
93985            p_natural_side_code          => 'D'
93986          , p_gain_or_loss_flag          => 'N'
93987          , p_gl_transfer_mode_code      => 'S'
93988          , p_acct_entry_type_code       => 'A'
93989          , p_switch_side_flag           => 'Y'
93990          , p_merge_duplicate_code       => 'A'
93991          );
93992    --
93993    l_acc_rev_natural_side_code := 'C';  -- 4262811
93994    -- 
93995    --
93996    -- set accounting line type info
93997    --
93998    xla_ae_lines_pkg.SetAcctLineType
93999       (p_component_type             => l_component_type
94000       ,p_event_type_code            => l_event_type_code
94001       ,p_line_definition_owner_code => l_line_definition_owner_code
94002       ,p_line_definition_code       => l_line_definition_code
94003       ,p_accounting_line_code       => l_component_code
94004       ,p_accounting_line_type_code  => l_component_type_code
94005       ,p_accounting_line_appl_id    => l_component_appl_id
94006       ,p_amb_context_code           => l_amb_context_code
94007       ,p_entity_code                => l_entity_code
94008       ,p_event_class_code           => l_event_class_code);
94009    --
94013            p_accounting_class_code  => 'LIABILITY'
94010    -- set accounting class
94011    --
94012    xla_ae_lines_pkg.SetAcctClass(
94014          , p_ae_header_id           => l_ae_header_id
94015          );
94016 
94017    --
94018    -- set rounding class
94019    --
94020    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
94021                       'LIABILITY';
94022 
94023    --
94024    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
94025    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
94026    --
94027    -- bulk performance
94028    --
94029    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
94030 
94031    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
94032       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
94033 
94034    -- 4955764
94035    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94036       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
94037 
94038    -- 4458381 Public Sector Enh
94039    
94040    --
94041    -- set accounting attributes for the line type
94042    --
94043    l_entered_amt_idx := 10;
94044    l_accted_amt_idx  := 12;
94045    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
94046    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
94047    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
94048    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
94049    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
94050    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
94051    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
94055    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
94052    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
94053    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
94054    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
94056    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
94057    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
94058    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
94059    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
94060    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
94061    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
94062    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
94063    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
94064    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
94065    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
94066    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
94067    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
94068    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
94069    l_rec_acct_attrs.array_num_value(12)  := p_source_109;
94070    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
94071    l_rec_acct_attrs.array_char_value(13)  := p_source_68;
94072    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
94073    l_rec_acct_attrs.array_char_value(14)  := p_source_71;
94074    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
94075    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_104);
94076    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
94077    l_rec_acct_attrs.array_char_value(16)  := p_source_43;
94078    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
94079    l_rec_acct_attrs.array_num_value(17)  := p_source_74;
94080    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
94081    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
94082    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
94083    l_rec_acct_attrs.array_num_value(19)  := p_source_76;
94084 
94085    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
94086    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
94087 
94088    ---------------------------------------------------------------------------------------------------------------
94089    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
94090    ---------------------------------------------------------------------------------------------------------------
94091    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
94092 
94093    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94094    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94095 
94099    AND l_bflow_method_code = 'PRIOR_ENTRY'
94096    IF xla_accounting_cache_pkg.GetValueChar
94097          (p_source_code         => 'LEDGER_CATEGORY_CODE'
94098          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
94100 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
94101    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
94102          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
94103        )
94104    THEN
94105          xla_ae_lines_pkg.BflowUpgEntry
94106            (p_business_method_code    => l_bflow_method_code
94107            ,p_business_class_code     => l_bflow_class_code
94108            ,p_balance_type            => l_balance_type_code);
94109    ELSE
94110       NULL;
94111 XLA_AE_LINES_PKG.business_flow_validation(
94112                                 p_business_method_code     => l_bflow_method_code
94113                                ,p_business_class_code      => l_bflow_class_code
94114                                ,p_inherit_description_flag => l_inherit_desc_flag);
94115    END IF;
94116 
94117    --
94118    -- call analytical criteria
94119    --
94120    -- Inherited Analytical Criteria for business flow method of Prior Entry.
94121    --
94122    -- call description
94123    --
94124    -- No description or it is inherited.
94125    --
94126    -- call ADRs
94127    -- Bug 4922099
94128    --
94129    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94130         (NVL(l_actual_upg_option, 'N') = 'O') OR
94131         (NVL(l_enc_upg_option, 'N') = 'O')
94132       )
94133    THEN
94134    NULL;
94135    --
94136    --
94137    
94138    --
94139    --
94140    END IF;
94141    --
94142    -- Bug 4922099
94143    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
94144           (NVL(l_enc_upg_option, 'N') = 'O')
94145         ) AND
94146         (l_bflow_method_code = 'PRIOR_ENTRY')
94147       )
94148    THEN
94149       IF
94150       --
94151       1 = 1
94152       --
94153       THEN
94154       xla_accounting_err_pkg.build_message
94155                                     (p_appli_s_name            => 'XLA'
94156                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94157                                     ,p_token_1                 => 'LINE_NUMBER'
94158                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
94159                                     ,p_token_2                 => 'LINE_TYPE_NAME'
94160                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
94161                                                                              l_component_type
94162                                                                             ,l_component_code
94163                                                                             ,l_component_type_code
94164                                                                             ,l_component_appl_id
94165                                                                             ,l_amb_context_code
94166                                                                             ,l_entity_code
94167                                                                             ,l_event_class_code
94168                                                                            )
94169                                     ,p_token_3                 => 'OWNER'
94170                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
94171                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
94175                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
94172                                                                           ,p_lookup_code    => l_component_type_code
94173                                                                          )
94174                                     ,p_token_4                 => 'PRODUCT_NAME'
94176                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
94177                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
94178                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
94179                                     ,p_ae_header_id            =>  NULL
94180                                        );
94181 
94182         IF (C_LEVEL_ERROR>= g_log_level) THEN
94183                  trace
94184                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94185                       ,p_level    => C_LEVEL_ERROR
94186                       ,p_module   => l_log_module);
94187         END IF;
94188       END IF;
94189    END IF;
94190    --
94191    --
94192    ------------------------------------------------------------------------------------------------
94193    -- 4219869 Business Flow
94194    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
94195    -- Prior Entry.  Currently, the following code is always generated.
94196    ------------------------------------------------------------------------------------------------
94197    -- No ValidateCurrentLine for business flow method of Prior Entry
94198 
94199    ------------------------------------------------------------------------------------
94200    -- 4219869 Business Flow
94201    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
94202    ------------------------------------------------------------------------------------
94203    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94204 
94205    ----------------------------------------------------------------------------------
94206    -- 4219869 Business Flow
94207    -- Update journal entry status -- Need to generate this within IF <condition>
94208    ----------------------------------------------------------------------------------
94209    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94210          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
94211          ,p_balance_type_code => l_balance_type_code
94212          );
94213 
94214    -------------------------------------------------------------------------------------------
94215    -- 4262811 - Generate the Accrual Reversal lines
94216    -------------------------------------------------------------------------------------------
94217    BEGIN
94218       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
94219                               (g_array_event(p_event_id).array_value_num('header_index'));
94220       IF l_acc_rev_flag IS NULL THEN
94221          l_acc_rev_flag := 'N';
94222       END IF;
94223    EXCEPTION
94224       WHEN OTHERS THEN
94225          l_acc_rev_flag := 'N';
94226    END;
94227    --
94228    IF (l_acc_rev_flag = 'Y') THEN
94229 
94230        -- 4645092  ------------------------------------------------------------------------------
94231        -- To allow MPA report to determine if it should generate report process
94232        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
94233        ------------------------------------------------------------------------------------------
94234 
94235        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
94236        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
94237    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
94238    -- call ADRs
94239    -- Bug 4922099
94240    --
94244       )
94241    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94242         (NVL(l_actual_upg_option, 'N') = 'O') OR
94243         (NVL(l_enc_upg_option, 'N') = 'O')
94245    THEN
94246    NULL;
94247    --
94248    --
94249    
94250    --
94251    --
94252    END IF;
94253 
94254        --
94255        -- Update the line information that should be overwritten
94256        --
94257        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
94258                                          p_header_num   => 1);
94259        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
94260 
94261        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
94262 
94263        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
94264           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
94265        END IF;
94266 
94267       --
94268       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
94269       --
94270       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
94271           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
94272       ELSE
94273           ---------------------------------------------------------------------------------------------------
94274           -- 4262811a Switch Sign
94275           ---------------------------------------------------------------------------------------------------
94276           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
94277           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94278                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94279           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94280                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94281           -- 5132302
94282           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
94283                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94284 
94285       END IF;
94286 
94287       -- 4955764
94288       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94289       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
94290 
94291 
94292       XLA_AE_LINES_PKG.ValidateCurrentLine;
94293       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94294 
94295       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94299    END IF;
94296                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
94297                ,p_balance_type_code => l_balance_type_code);
94298 
94300 
94301    -----------------------------------------------------------------------------------------
94302    -- 4262811 Multiperiod Accounting
94303    -----------------------------------------------------------------------------------------
94304      -- No MPA option is assigned.
94305 
94306 
94307 END IF;
94308 END IF;
94309 --
94310 
94311 --
94312 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94313    trace
94314       (p_msg      => 'END of AcctLineType_167'
94315       ,p_level    => C_LEVEL_PROCEDURE
94316       ,p_module   => l_log_module);
94317 END IF;
94318 --
94319 EXCEPTION
94320   WHEN xla_exceptions_pkg.application_exception THEN
94321       RAISE;
94322   WHEN OTHERS THEN
94323        xla_exceptions_pkg.raise_message
94327 
94324            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_167');
94325 END AcctLineType_167;
94326 --
94328 ---------------------------------------
94329 --
94330 -- PRIVATE FUNCTION
94331 --         AcctLineType_168
94332 --
94333 ---------------------------------------
94334 PROCEDURE AcctLineType_168 (
94335   p_application_id        IN NUMBER
94336  ,p_event_id              IN NUMBER
94337  ,p_calculate_acctd_flag  IN VARCHAR2
94338  ,p_calculate_g_l_flag    IN VARCHAR2
94339  ,p_actual_flag           IN OUT VARCHAR2
94340  ,p_balance_type_code     OUT VARCHAR2
94341  ,p_gain_or_loss_ref      OUT VARCHAR2
94342  
94343 --Invoice Distribution Description
94344  , p_source_1            IN VARCHAR2
94345 --Automatic Offsets Value
94346  , p_source_3            IN VARCHAR2
94347  , p_source_3_meaning    IN VARCHAR2
94348 --Invoice Distribution Ledger Amount
94349  , p_source_9            IN NUMBER
94350 --Invoice Liability Account
94351  , p_source_22            IN NUMBER
94352 --Accounting Reversal Indicator
94353  , p_source_41            IN VARCHAR2
94354 --Distribution Link Type
94355  , p_source_43            IN VARCHAR2
94356 --Allocation to Main Distribution Identifier
94357  , p_source_45            IN NUMBER
94358 --Invoice Identifier
94359  , p_source_46            IN NUMBER
94360 --Invoice Distribution Identifier
94361  , p_source_52            IN NUMBER
94362 --Payables Encumbrance Upgrade Credit Account
94363  , p_source_53            IN NUMBER
94364 --Payables Encumbrance Upgrade Credit Amount
94365  , p_source_54            IN NUMBER
94366 --Invoice Currency Code
94367  , p_source_55            IN VARCHAR2
94368 --Payables Encumbrance Upgrade Credit Base Amount
94369  , p_source_56            IN NUMBER
94370 --Payables Encumbrance Upgrade Debit Account
94371  , p_source_57            IN NUMBER
94372 --Payables Encumbrance Upgrade Debit Amount
94373  , p_source_58            IN NUMBER
94374 --Payables Encumbrance Upgrade Debit Base Amount
94375  , p_source_59            IN NUMBER
94376 --Payables Encumbrance Upgrade Option
94377  , p_source_60            IN VARCHAR2
94378 --Invoice Distribution Amount
94379  , p_source_61            IN NUMBER
94380 --Deferred Accounting End Date
94381  , p_source_65            IN DATE
94382 --Deferred Accounting Option
94383  , p_source_66            IN VARCHAR2
94384 --Deferred Accounting Start Date
94385  , p_source_67            IN DATE
94386 --Override Accounted Amount Indicator
94387  , p_source_68            IN VARCHAR2
94388  , p_source_68_meaning    IN VARCHAR2
94389 --Invoice Supplier Identifier
94390  , p_source_69            IN NUMBER
94391 --Invoice Supplier Site Identifier
94392  , p_source_70            IN NUMBER
94393 --Third Party Type
94394  , p_source_71            IN VARCHAR2
94395 --Parent Reversal Identifier
94396  , p_source_72            IN NUMBER
94397 --Invoice Distribution Statistical Amount
94398  , p_source_73            IN NUMBER
94399 --Invoice Distribution Tax Line Identifier
94400  , p_source_74            IN NUMBER
94401 --Invoice Distribution Tax Distribution Identifier from Tax
94402  , p_source_75            IN NUMBER
94403 --Invoice Distribution Summary Tax Line Identifier
94404  , p_source_76            IN NUMBER
94405 --Payables Upgrade Credit Encumbrance Type Identifier
94406  , p_source_77            IN NUMBER
94407 --Payables Upgrade Debit Encumbrance Type Identifier
94408  , p_source_78            IN NUMBER
94409 --Business Flow Accounts Payable Application Identifier
94410  , p_source_79            IN NUMBER
94411 --Business Flow Invoice Distribution Type
94412  , p_source_80            IN VARCHAR2
94413 --Business Flow Invoice Entity Code
94414  , p_source_81            IN VARCHAR2
94415 --Business Flow Invoice Distribution Identifier
94416  , p_source_82            IN NUMBER
94417 --Business Flow Invoice Identifier
94418  , p_source_83            IN NUMBER
94419 --Self-Assessed Tax Flag
94420  , p_source_135            IN VARCHAR2
94421  , p_source_135_meaning    IN VARCHAR2
94422 --Invoice Exchange Date
94423  , p_source_136            IN DATE
94424 --Invoice Exchange Rate
94425  , p_source_137            IN NUMBER
94426 --Invoice Exchange Rate Type
94427  , p_source_138            IN VARCHAR2
94428 )
94429 IS
94430 
94431 l_component_type              VARCHAR2(80);
94432 l_component_code              VARCHAR2(30);
94433 l_component_type_code         VARCHAR2(1);
94434 l_component_appl_id           INTEGER;
94435 l_amb_context_code            VARCHAR2(30);
94436 l_entity_code                 VARCHAR2(30);
94437 l_event_class_code            VARCHAR2(30);
94438 l_ae_header_id                NUMBER;
94439 l_event_type_code             VARCHAR2(30);
94440 l_line_definition_code        VARCHAR2(30);
94441 l_line_definition_owner_code  VARCHAR2(1);
94442 --
94443 -- adr variables
94444 l_segment                     VARCHAR2(30);
94445 l_ccid                        NUMBER;
94446 l_adr_transaction_coa_id      NUMBER;
94447 l_adr_accounting_coa_id       NUMBER;
94448 l_adr_flexfield_segment_code  VARCHAR2(30);
94449 l_adr_flex_value_set_id       NUMBER;
94450 l_adr_value_type_code         VARCHAR2(30);
94451 l_adr_value_combination_id    NUMBER;
94452 l_adr_value_segment_code      VARCHAR2(30);
94453 
94454 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
94455 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
94456 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
94457 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
94458 
94464 l_tmp_amt                     NUMBER;
94459 -- 4262811 Variables ------------------------------------------------------------------------------------------
94460 l_entered_amt_idx             NUMBER;
94461 l_accted_amt_idx              NUMBER;
94462 l_acc_rev_flag                VARCHAR2(1);
94463 l_accrual_line_num            NUMBER;
94465 l_acc_rev_natural_side_code   VARCHAR2(1);
94466 
94467 l_num_entries                 NUMBER;
94468 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
94469 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
94470 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
94471 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
94472 l_recog_line_1                NUMBER;
94473 l_recog_line_2                NUMBER;
94474 
94475 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
94476 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
94477 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
94478 
94479 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
94480 
94481 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
94482 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
94483 
94484 ---------------------------------------------------------------------------------------------------------------
94485 
94486 
94487 --
94488 -- bulk performance
94489 --
94490 l_balance_type_code           VARCHAR2(1);
94491 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
94492 l_log_module                  VARCHAR2(240);
94493 
94494 --
94495 -- Upgrade strategy
94496 --
94497 l_actual_upg_option           VARCHAR2(1);
94498 l_enc_upg_option           VARCHAR2(1);
94499 
94500 --
94501 BEGIN
94502 --
94503 IF g_log_enabled THEN
94504       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_168';
94505 END IF;
94506 --
94507 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94508 
94509       trace
94510          (p_msg      => 'BEGIN of AcctLineType_168'
94511          ,p_level    => C_LEVEL_PROCEDURE
94512          ,p_module   => l_log_module);
94513 
94514 END IF;
94515 --
94516 l_component_type             := 'AMB_JLT';
94517 l_component_code             := 'AP_LIAB_CM';
94518 l_component_type_code        := 'S';
94519 l_component_appl_id          :=  200;
94520 l_amb_context_code           := 'DEFAULT';
94521 l_entity_code                := 'AP_INVOICES';
94522 l_event_class_code           := 'CREDIT MEMOS';
94523 l_event_type_code            := 'CREDIT MEMOS_ALL';
94524 l_line_definition_owner_code := 'S';
94525 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
94526 --
94527 l_balance_type_code          := 'A';
94528 l_segment                     := NULL;
94529 l_ccid                        := NULL;
94530 l_adr_transaction_coa_id      := NULL;
94531 l_adr_accounting_coa_id       := NULL;
94532 l_adr_flexfield_segment_code  := NULL;
94533 l_adr_flex_value_set_id       := NULL;
94534 l_adr_value_type_code         := NULL;
94535 l_adr_value_combination_id    := NULL;
94536 l_adr_value_segment_code      := NULL;
94537 
94538 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
94539 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
94540 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
94541 l_budgetary_control_flag     := 'N';
94542 
94543 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
94544 l_bflow_applied_to_amt       := NULL; -- 5132302
94545 l_entered_amt_idx            := NULL;          -- 4262811
94546 l_accted_amt_idx             := NULL;          -- 4262811
94547 l_acc_rev_flag               := NULL;          -- 4262811
94548 l_accrual_line_num           := NULL;          -- 4262811
94549 l_tmp_amt                    := NULL;          -- 4262811
94550 --
94551  
94552 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
94553     l_balance_type_code <> 'B' THEN
94554 IF (NVL(p_source_3,'
94555 ') <>  'BALANCING_SEGMENT' AND 
94556 NVL(p_source_3,'
94557 ') <>  'ACCOUNT_SEGMENT_VALUE') AND 
94558 NVL(p_source_135,'
94559 ') <>  'Y'
94560  THEN 
94561 
94565    p_balance_type_code          := l_balance_type_code;
94562    --
94563    XLA_AE_LINES_PKG.SetNewLine;
94564 
94566    -- set the flag so later we will know whether the gain loss line needs to be created
94567    
94568    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
94569      p_actual_flag :='A';
94570    END IF;
94571 
94572    --
94573    -- bulk performance
94574    --
94575    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
94576                                       p_header_num   => 0); -- 4262811
94577    --
94578    -- set accounting line options
94579    --
94580    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
94581            p_natural_side_code          => 'C'
94582          , p_gain_or_loss_flag          => 'N'
94583          , p_gl_transfer_mode_code      => 'S'
94584          , p_acct_entry_type_code       => 'A'
94585          , p_switch_side_flag           => 'Y'
94586          , p_merge_duplicate_code       => 'A'
94587          );
94588    --
94589    l_acc_rev_natural_side_code := 'D';  -- 4262811
94590    -- 
94591    --
94592    -- set accounting line type info
94593    --
94594    xla_ae_lines_pkg.SetAcctLineType
94595       (p_component_type             => l_component_type
94596       ,p_event_type_code            => l_event_type_code
94597       ,p_line_definition_owner_code => l_line_definition_owner_code
94598       ,p_line_definition_code       => l_line_definition_code
94599       ,p_accounting_line_code       => l_component_code
94600       ,p_accounting_line_type_code  => l_component_type_code
94601       ,p_accounting_line_appl_id    => l_component_appl_id
94602       ,p_amb_context_code           => l_amb_context_code
94603       ,p_entity_code                => l_entity_code
94604       ,p_event_class_code           => l_event_class_code);
94605    --
94606    -- set accounting class
94607    --
94608    xla_ae_lines_pkg.SetAcctClass(
94609            p_accounting_class_code  => 'LIABILITY'
94610          , p_ae_header_id           => l_ae_header_id
94611          );
94612 
94613    --
94614    -- set rounding class
94615    --
94616    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
94617                       'LIABILITY';
94618 
94619    --
94620    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
94624    --
94621    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
94622    --
94623    -- bulk performance
94625    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
94626 
94627    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
94628       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
94629 
94630    -- 4955764
94631    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94632       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
94633 
94634    -- 4458381 Public Sector Enh
94635    
94636    --
94637    -- set accounting attributes for the line type
94638    --
94639    l_entered_amt_idx := 23;
94640    l_accted_amt_idx  := 28;
94641    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
94642    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
94643    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
94644    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
94645    l_rec_acct_attrs.array_num_value(2)  := 
94646 xla_ae_sources_pkg.GetSystemSourceNum(
94650 );
94647    p_source_code           => 'XLA_EVENT_APPL_ID'
94648  , p_source_type_code      => 'Y'
94649  , p_source_application_id =>  602
94651    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
94652    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
94653    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
94654    l_rec_acct_attrs.array_char_value(4)  := 
94655 xla_ae_sources_pkg.GetSystemSourceChar(
94656    p_source_code           => 'XLA_ENTITY_CODE'
94657  , p_source_type_code      => 'Y'
94658  , p_source_application_id =>  602
94659 );
94660    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
94661    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
94662    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
94663    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
94664    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
94665    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
94666    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
94667    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
94668    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
94669    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
94670    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
94671    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
94672    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
94673    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
94674    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
94675    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
94676    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
94677    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
94678    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
94679    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
94680    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
94681    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
94682    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
94683    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
94684    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
94685    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
94686    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
94687    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
94688    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
94689    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
94690    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
94691    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
94692    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
94693    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
94694    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
94695    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
94696    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
94697    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
94698    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
94699    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
94700    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
94701    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
94702    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
94703    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
94704    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
94705    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
94706    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
94707    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
94708    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
94709    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
94710    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
94711    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
94712    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
94713    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
94714    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
94715    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
94716    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
94717    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
94718    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
94719    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
94720    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
94721    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
94722    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
94723    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
94724    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
94725    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
94726    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
94727    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
94728    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
94729    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
94730    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
94731    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
94732    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
94736    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
94733    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
94734    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
94735    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
94737    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
94738 
94739    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
94740    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
94741 
94742    ---------------------------------------------------------------------------------------------------------------
94743    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
94744    ---------------------------------------------------------------------------------------------------------------
94745    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
94746 
94747    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94748    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94749 
94750    IF xla_accounting_cache_pkg.GetValueChar
94751          (p_source_code         => 'LEDGER_CATEGORY_CODE'
94752          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
94753    AND l_bflow_method_code = 'PRIOR_ENTRY'
94754 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
94755    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
94756          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
94757        )
94758    THEN
94759          xla_ae_lines_pkg.BflowUpgEntry
94760            (p_business_method_code    => l_bflow_method_code
94761            ,p_business_class_code     => l_bflow_class_code
94762            ,p_balance_type            => l_balance_type_code);
94763    ELSE
94764       NULL;
94765 -- No business flow processing for business flow method of NONE.
94766    END IF;
94767 
94768    --
94769    -- call analytical criteria
94770    --
94771    
94772    --
94773    -- call description
94774    --
94775    
94776 xla_ae_lines_pkg.SetLineDescription(
94777    p_ae_header_id => l_ae_header_id
94778   ,p_description  => Description_2 (
94779      p_application_id         => p_application_id
94780    , p_ae_header_id           => l_ae_header_id 
94781 , p_source_1 => p_source_1
94782    )
94783 );
94784 
94785 
94786    --
94787    -- call ADRs
94788    -- Bug 4922099
94789    --
94790    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94791         (NVL(l_actual_upg_option, 'N') = 'O') OR
94792         (NVL(l_enc_upg_option, 'N') = 'O')
94793       )
94794    THEN
94795    NULL;
94796    --
94797    --
94798    
94799   l_ccid := AcctDerRule_33(
94800            p_application_id           => p_application_id
94801          , p_ae_header_id             => l_ae_header_id 
94802 , p_source_22 => p_source_22
94803          , x_transaction_coa_id       => l_adr_transaction_coa_id
94804          , x_accounting_coa_id        => l_adr_accounting_coa_id
94805          , x_value_type_code          => l_adr_value_type_code
94806          , p_side                     => 'NA'
94807    );
94808 
94809    xla_ae_lines_pkg.set_ccid(
94810     p_code_combination_id          => l_ccid
94811   , p_value_type_code              => l_adr_value_type_code
94812   , p_transaction_coa_id           => l_adr_transaction_coa_id
94813   , p_accounting_coa_id            => l_adr_accounting_coa_id
94814   , p_adr_code                     => 'AP_LIAB'
94815   , p_adr_type_code                => 'S'
94816   , p_component_type               => l_component_type
94817   , p_component_code               => l_component_code
94818   , p_component_type_code          => l_component_type_code
94819   , p_component_appl_id            => l_component_appl_id
94820   , p_amb_context_code             => l_amb_context_code
94821   , p_side                         => 'NA'
94822   );
94823 
94824 
94825    --
94826    --
94827    END IF;
94828    --
94829    -- Bug 4922099
94830    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
94831           (NVL(l_enc_upg_option, 'N') = 'O')
94832         ) AND
94833         (l_bflow_method_code = 'PRIOR_ENTRY')
94834       )
94835    THEN
94836       IF
94837       --
94838       1 = 2
94839       --
94840       THEN
94841       xla_accounting_err_pkg.build_message
94842                                     (p_appli_s_name            => 'XLA'
94843                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94844                                     ,p_token_1                 => 'LINE_NUMBER'
94845                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
94846                                     ,p_token_2                 => 'LINE_TYPE_NAME'
94847                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
94848                                                                              l_component_type
94849                                                                             ,l_component_code
94853                                                                             ,l_entity_code
94850                                                                             ,l_component_type_code
94851                                                                             ,l_component_appl_id
94852                                                                             ,l_amb_context_code
94854                                                                             ,l_event_class_code
94855                                                                            )
94856                                     ,p_token_3                 => 'OWNER'
94857                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
94858                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
94859                                                                           ,p_lookup_code    => l_component_type_code
94860                                                                          )
94861                                     ,p_token_4                 => 'PRODUCT_NAME'
94862                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
94863                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
94864                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
94868 
94865                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
94866                                     ,p_ae_header_id            =>  NULL
94867                                        );
94869         IF (C_LEVEL_ERROR>= g_log_level) THEN
94870                  trace
94871                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94872                       ,p_level    => C_LEVEL_ERROR
94873                       ,p_module   => l_log_module);
94874         END IF;
94875       END IF;
94876    END IF;
94877    --
94878    --
94879    ------------------------------------------------------------------------------------------------
94880    -- 4219869 Business Flow
94881    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
94882    -- Prior Entry.  Currently, the following code is always generated.
94883    ------------------------------------------------------------------------------------------------
94884    XLA_AE_LINES_PKG.ValidateCurrentLine;
94885 
94886    ------------------------------------------------------------------------------------
94887    -- 4219869 Business Flow
94888    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
94889    ------------------------------------------------------------------------------------
94890    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94891 
94892    ----------------------------------------------------------------------------------
94893    -- 4219869 Business Flow
94894    -- Update journal entry status -- Need to generate this within IF <condition>
94895    ----------------------------------------------------------------------------------
94896    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94897          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
94898          ,p_balance_type_code => l_balance_type_code
94899          );
94900 
94901    -------------------------------------------------------------------------------------------
94902    -- 4262811 - Generate the Accrual Reversal lines
94903    -------------------------------------------------------------------------------------------
94904    BEGIN
94905       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
94906                               (g_array_event(p_event_id).array_value_num('header_index'));
94907       IF l_acc_rev_flag IS NULL THEN
94908          l_acc_rev_flag := 'N';
94909       END IF;
94910    EXCEPTION
94911       WHEN OTHERS THEN
94912          l_acc_rev_flag := 'N';
94916 
94913    END;
94914    --
94915    IF (l_acc_rev_flag = 'Y') THEN
94917        -- 4645092  ------------------------------------------------------------------------------
94918        -- To allow MPA report to determine if it should generate report process
94919        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
94920        ------------------------------------------------------------------------------------------
94921 
94922        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
94923        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
94924    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
94925    -- call ADRs
94926    -- Bug 4922099
94927    --
94928    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94929         (NVL(l_actual_upg_option, 'N') = 'O') OR
94930         (NVL(l_enc_upg_option, 'N') = 'O')
94931       )
94932    THEN
94933    NULL;
94934    --
94935    --
94936    
94937   l_ccid := AcctDerRule_33(
94938            p_application_id           => p_application_id
94939          , p_ae_header_id             => l_ae_header_id 
94940 , p_source_22 => p_source_22
94941          , x_transaction_coa_id       => l_adr_transaction_coa_id
94942          , x_accounting_coa_id        => l_adr_accounting_coa_id
94943          , x_value_type_code          => l_adr_value_type_code
94944          , p_side                     => 'NA'
94945    );
94946 
94947    xla_ae_lines_pkg.set_ccid(
94948     p_code_combination_id          => l_ccid
94949   , p_value_type_code              => l_adr_value_type_code
94950   , p_transaction_coa_id           => l_adr_transaction_coa_id
94951   , p_accounting_coa_id            => l_adr_accounting_coa_id
94952   , p_adr_code                     => 'AP_LIAB'
94953   , p_adr_type_code                => 'S'
94954   , p_component_type               => l_component_type
94955   , p_component_code               => l_component_code
94956   , p_component_type_code          => l_component_type_code
94957   , p_component_appl_id            => l_component_appl_id
94958   , p_amb_context_code             => l_amb_context_code
94959   , p_side                         => 'NA'
94960   );
94961 
94962 
94963    --
94964    --
94965    END IF;
94966 
94967        --
94968        -- Update the line information that should be overwritten
94969        --
94970        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
94971                                          p_header_num   => 1);
94972        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
94973 
94974        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
94975 
94976        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
94977           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
94978        END IF;
94979 
94980       --
94981       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
94982       --
94983       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
94984           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
94985       ELSE
94986           ---------------------------------------------------------------------------------------------------
94987           -- 4262811a Switch Sign
94988           ---------------------------------------------------------------------------------------------------
94989           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
94990           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94991                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94992           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94993                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94994           -- 5132302
94995           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
94999 
94996                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94997 
94998       END IF;
95000       -- 4955764
95001       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95002       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
95003 
95004 
95005       XLA_AE_LINES_PKG.ValidateCurrentLine;
95006       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95007 
95008       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95009                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
95010                ,p_balance_type_code => l_balance_type_code);
95011 
95012    END IF;
95013 
95014    -----------------------------------------------------------------------------------------
95015    -- 4262811 Multiperiod Accounting
95016    -----------------------------------------------------------------------------------------
95017      -- No MPA option is assigned.
95018 
95019 
95020 END IF;
95021 END IF;
95022 --
95023 
95024 --
95025 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95026    trace
95027       (p_msg      => 'END of AcctLineType_168'
95028       ,p_level    => C_LEVEL_PROCEDURE
95029       ,p_module   => l_log_module);
95030 END IF;
95031 --
95032 EXCEPTION
95033   WHEN xla_exceptions_pkg.application_exception THEN
95034       RAISE;
95035   WHEN OTHERS THEN
95036        xla_exceptions_pkg.raise_message
95037            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_168');
95038 END AcctLineType_168;
95039 --
95040 
95041 ---------------------------------------
95042 --
95043 -- PRIVATE FUNCTION
95044 --         AcctLineType_169
95045 --
95046 ---------------------------------------
95047 PROCEDURE AcctLineType_169 (
95048   p_application_id        IN NUMBER
95049  ,p_event_id              IN NUMBER
95050  ,p_calculate_acctd_flag  IN VARCHAR2
95051  ,p_calculate_g_l_flag    IN VARCHAR2
95052  ,p_actual_flag           IN OUT VARCHAR2
95053  ,p_balance_type_code     OUT VARCHAR2
95054  ,p_gain_or_loss_ref      OUT VARCHAR2
95055  
95056 --Invoice Distribution Description
95057  , p_source_1            IN VARCHAR2
95058 --Automatic Offsets Value
95059  , p_source_3            IN VARCHAR2
95060  , p_source_3_meaning    IN VARCHAR2
95061 --Invoice Distribution Ledger Amount
95062  , p_source_9            IN NUMBER
95063 --Invoice Liability Account
95064  , p_source_22            IN NUMBER
95065 --Accounting Reversal Indicator
95066  , p_source_41            IN VARCHAR2
95067 --Distribution Link Type
95068  , p_source_43            IN VARCHAR2
95069 --Allocation to Main Distribution Identifier
95070  , p_source_45            IN NUMBER
95071 --Invoice Identifier
95072  , p_source_46            IN NUMBER
95073 --Invoice Distribution Identifier
95074  , p_source_52            IN NUMBER
95075 --Payables Encumbrance Upgrade Credit Account
95076  , p_source_53            IN NUMBER
95077 --Payables Encumbrance Upgrade Credit Amount
95078  , p_source_54            IN NUMBER
95079 --Invoice Currency Code
95080  , p_source_55            IN VARCHAR2
95081 --Payables Encumbrance Upgrade Credit Base Amount
95082  , p_source_56            IN NUMBER
95083 --Payables Encumbrance Upgrade Debit Account
95084  , p_source_57            IN NUMBER
95085 --Payables Encumbrance Upgrade Debit Amount
95086  , p_source_58            IN NUMBER
95087 --Payables Encumbrance Upgrade Debit Base Amount
95088  , p_source_59            IN NUMBER
95089 --Payables Encumbrance Upgrade Option
95090  , p_source_60            IN VARCHAR2
95091 --Invoice Distribution Amount
95092  , p_source_61            IN NUMBER
95093 --Deferred Accounting End Date
95094  , p_source_65            IN DATE
95095 --Deferred Accounting Option
95096  , p_source_66            IN VARCHAR2
95097 --Deferred Accounting Start Date
95098  , p_source_67            IN DATE
95099 --Override Accounted Amount Indicator
95100  , p_source_68            IN VARCHAR2
95101  , p_source_68_meaning    IN VARCHAR2
95102 --Invoice Supplier Identifier
95103  , p_source_69            IN NUMBER
95104 --Invoice Supplier Site Identifier
95105  , p_source_70            IN NUMBER
95106 --Third Party Type
95107  , p_source_71            IN VARCHAR2
95108 --Parent Reversal Identifier
95109  , p_source_72            IN NUMBER
95110 --Invoice Distribution Statistical Amount
95111  , p_source_73            IN NUMBER
95112 --Invoice Distribution Tax Line Identifier
95113  , p_source_74            IN NUMBER
95114 --Invoice Distribution Tax Distribution Identifier from Tax
95115  , p_source_75            IN NUMBER
95116 --Invoice Distribution Summary Tax Line Identifier
95117  , p_source_76            IN NUMBER
95118 --Payables Upgrade Credit Encumbrance Type Identifier
95119  , p_source_77            IN NUMBER
95123  , p_source_79            IN NUMBER
95120 --Payables Upgrade Debit Encumbrance Type Identifier
95121  , p_source_78            IN NUMBER
95122 --Business Flow Accounts Payable Application Identifier
95124 --Business Flow Invoice Distribution Type
95125  , p_source_80            IN VARCHAR2
95126 --Business Flow Invoice Entity Code
95127  , p_source_81            IN VARCHAR2
95128 --Business Flow Invoice Distribution Identifier
95129  , p_source_82            IN NUMBER
95130 --Business Flow Invoice Identifier
95131  , p_source_83            IN NUMBER
95132 --Self-Assessed Tax Flag
95133  , p_source_135            IN VARCHAR2
95134  , p_source_135_meaning    IN VARCHAR2
95135 --Invoice Exchange Date
95136  , p_source_136            IN DATE
95137 --Invoice Exchange Rate
95138  , p_source_137            IN NUMBER
95139 --Invoice Exchange Rate Type
95140  , p_source_138            IN VARCHAR2
95141 )
95142 IS
95143 
95144 l_component_type              VARCHAR2(80);
95145 l_component_code              VARCHAR2(30);
95146 l_component_type_code         VARCHAR2(1);
95147 l_component_appl_id           INTEGER;
95148 l_amb_context_code            VARCHAR2(30);
95149 l_entity_code                 VARCHAR2(30);
95150 l_event_class_code            VARCHAR2(30);
95151 l_ae_header_id                NUMBER;
95152 l_event_type_code             VARCHAR2(30);
95153 l_line_definition_code        VARCHAR2(30);
95154 l_line_definition_owner_code  VARCHAR2(1);
95155 --
95156 -- adr variables
95157 l_segment                     VARCHAR2(30);
95158 l_ccid                        NUMBER;
95159 l_adr_transaction_coa_id      NUMBER;
95160 l_adr_accounting_coa_id       NUMBER;
95161 l_adr_flexfield_segment_code  VARCHAR2(30);
95165 l_adr_value_segment_code      VARCHAR2(30);
95162 l_adr_flex_value_set_id       NUMBER;
95163 l_adr_value_type_code         VARCHAR2(30);
95164 l_adr_value_combination_id    NUMBER;
95166 
95167 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
95168 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
95169 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
95170 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
95171 
95172 -- 4262811 Variables ------------------------------------------------------------------------------------------
95173 l_entered_amt_idx             NUMBER;
95174 l_accted_amt_idx              NUMBER;
95175 l_acc_rev_flag                VARCHAR2(1);
95176 l_accrual_line_num            NUMBER;
95177 l_tmp_amt                     NUMBER;
95178 l_acc_rev_natural_side_code   VARCHAR2(1);
95179 
95180 l_num_entries                 NUMBER;
95181 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
95182 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
95183 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
95184 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
95185 l_recog_line_1                NUMBER;
95186 l_recog_line_2                NUMBER;
95187 
95188 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
95189 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
95190 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
95191 
95192 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
95193 
95194 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
95195 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
95196 
95197 ---------------------------------------------------------------------------------------------------------------
95198 
95199 
95200 --
95201 -- bulk performance
95202 --
95203 l_balance_type_code           VARCHAR2(1);
95204 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
95205 l_log_module                  VARCHAR2(240);
95206 
95207 --
95208 -- Upgrade strategy
95209 --
95210 l_actual_upg_option           VARCHAR2(1);
95211 l_enc_upg_option           VARCHAR2(1);
95212 
95213 --
95214 BEGIN
95215 --
95216 IF g_log_enabled THEN
95217       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_169';
95218 END IF;
95219 --
95220 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95221 
95222       trace
95223          (p_msg      => 'BEGIN of AcctLineType_169'
95224          ,p_level    => C_LEVEL_PROCEDURE
95225          ,p_module   => l_log_module);
95226 
95227 END IF;
95228 --
95229 l_component_type             := 'AMB_JLT';
95230 l_component_code             := 'AP_LIAB_CM_AOS_AS';
95231 l_component_type_code        := 'S';
95232 l_component_appl_id          :=  200;
95233 l_amb_context_code           := 'DEFAULT';
95234 l_entity_code                := 'AP_INVOICES';
95235 l_event_class_code           := 'CREDIT MEMOS';
95239 --
95236 l_event_type_code            := 'CREDIT MEMOS_ALL';
95237 l_line_definition_owner_code := 'S';
95238 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
95240 l_balance_type_code          := 'A';
95241 l_segment                     := NULL;
95242 l_ccid                        := NULL;
95243 l_adr_transaction_coa_id      := NULL;
95244 l_adr_accounting_coa_id       := NULL;
95245 l_adr_flexfield_segment_code  := NULL;
95246 l_adr_flex_value_set_id       := NULL;
95247 l_adr_value_type_code         := NULL;
95248 l_adr_value_combination_id    := NULL;
95249 l_adr_value_segment_code      := NULL;
95250 
95251 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
95252 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
95253 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
95254 l_budgetary_control_flag     := 'N';
95255 
95256 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
95257 l_bflow_applied_to_amt       := NULL; -- 5132302
95258 l_entered_amt_idx            := NULL;          -- 4262811
95259 l_accted_amt_idx             := NULL;          -- 4262811
95260 l_acc_rev_flag               := NULL;          -- 4262811
95261 l_accrual_line_num           := NULL;          -- 4262811
95262 l_tmp_amt                    := NULL;          -- 4262811
95263 --
95264  
95265 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
95266     l_balance_type_code <> 'B' THEN
95267 IF NVL(p_source_3,'
95268 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
95269 NVL(p_source_135,'
95270 ') <>  'Y'
95271  THEN 
95272 
95273    --
95274    XLA_AE_LINES_PKG.SetNewLine;
95275 
95276    p_balance_type_code          := l_balance_type_code;
95277    -- set the flag so later we will know whether the gain loss line needs to be created
95278    
95279    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
95280      p_actual_flag :='A';
95281    END IF;
95282 
95283    --
95284    -- bulk performance
95285    --
95286    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
95287                                       p_header_num   => 0); -- 4262811
95288    --
95289    -- set accounting line options
95290    --
95291    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
95292            p_natural_side_code          => 'C'
95293          , p_gain_or_loss_flag          => 'N'
95294          , p_gl_transfer_mode_code      => 'S'
95295          , p_acct_entry_type_code       => 'A'
95296          , p_switch_side_flag           => 'Y'
95297          , p_merge_duplicate_code       => 'A'
95298          );
95299    --
95300    l_acc_rev_natural_side_code := 'D';  -- 4262811
95301    -- 
95302    --
95303    -- set accounting line type info
95304    --
95305    xla_ae_lines_pkg.SetAcctLineType
95306       (p_component_type             => l_component_type
95307       ,p_event_type_code            => l_event_type_code
95308       ,p_line_definition_owner_code => l_line_definition_owner_code
95309       ,p_line_definition_code       => l_line_definition_code
95310       ,p_accounting_line_code       => l_component_code
95311       ,p_accounting_line_type_code  => l_component_type_code
95312       ,p_accounting_line_appl_id    => l_component_appl_id
95313       ,p_amb_context_code           => l_amb_context_code
95314       ,p_entity_code                => l_entity_code
95315       ,p_event_class_code           => l_event_class_code);
95316    --
95317    -- set accounting class
95318    --
95324    --
95319    xla_ae_lines_pkg.SetAcctClass(
95320            p_accounting_class_code  => 'LIABILITY'
95321          , p_ae_header_id           => l_ae_header_id
95322          );
95323 
95325    -- set rounding class
95326    --
95327    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
95328                       'LIABILITY';
95329 
95330    --
95331    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
95332    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
95333    --
95334    -- bulk performance
95335    --
95336    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
95337 
95338    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
95339       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
95340 
95341    -- 4955764
95342    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95343       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
95344 
95345    -- 4458381 Public Sector Enh
95346    
95347    --
95348    -- set accounting attributes for the line type
95349    --
95350    l_entered_amt_idx := 23;
95351    l_accted_amt_idx  := 28;
95352    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
95353    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
95354    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
95355    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
95356    l_rec_acct_attrs.array_num_value(2)  := 
95357 xla_ae_sources_pkg.GetSystemSourceNum(
95358    p_source_code           => 'XLA_EVENT_APPL_ID'
95359  , p_source_type_code      => 'Y'
95360  , p_source_application_id =>  602
95361 );
95362    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
95363    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
95364    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
95365    l_rec_acct_attrs.array_char_value(4)  := 
95366 xla_ae_sources_pkg.GetSystemSourceChar(
95367    p_source_code           => 'XLA_ENTITY_CODE'
95368  , p_source_type_code      => 'Y'
95369  , p_source_application_id =>  602
95370 );
95371    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
95372    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
95373    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
95374    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
95375    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
95376    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
95377    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
95378    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
95379    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
95380    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
95381    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
95382    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
95383    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
95384    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
95385    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
95386    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
95387    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
95388    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
95389    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
95390    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
95391    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
95392    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
95393    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
95394    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
95395    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
95396    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
95397    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
95398    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
95399    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
95400    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
95401    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
95402    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
95403    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
95404    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
95405    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
95406    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
95407    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
95408    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
95409    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
95410    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
95411    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
95412    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
95413    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
95414    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
95415    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
95416    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
95417    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
95418    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
95419    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
95420    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
95421    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
95422    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
95423    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
95424    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
95428    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
95425    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
95426    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
95427    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
95429    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
95430    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
95431    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
95432    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
95433    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
95434    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
95435    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
95439    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
95436    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
95437    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
95438    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
95440    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
95441    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
95442    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
95443    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
95444    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
95445    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
95446    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
95447    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
95448    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
95449 
95450    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
95451    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
95452 
95453    ---------------------------------------------------------------------------------------------------------------
95454    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
95455    ---------------------------------------------------------------------------------------------------------------
95456    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
95457 
95458    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95459    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95460 
95461    IF xla_accounting_cache_pkg.GetValueChar
95462          (p_source_code         => 'LEDGER_CATEGORY_CODE'
95463          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
95464    AND l_bflow_method_code = 'PRIOR_ENTRY'
95465 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
95466    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
95467          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
95468        )
95469    THEN
95470          xla_ae_lines_pkg.BflowUpgEntry
95471            (p_business_method_code    => l_bflow_method_code
95472            ,p_business_class_code     => l_bflow_class_code
95473            ,p_balance_type            => l_balance_type_code);
95474    ELSE
95475       NULL;
95476 XLA_AE_LINES_PKG.business_flow_validation(
95477                                 p_business_method_code     => l_bflow_method_code
95478                                ,p_business_class_code      => l_bflow_class_code
95479                                ,p_inherit_description_flag => l_inherit_desc_flag);
95480    END IF;
95481 
95482    --
95483    -- call analytical criteria
95484    --
95485    
95486    --
95487    -- call description
95488    --
95489    
95490 xla_ae_lines_pkg.SetLineDescription(
95491    p_ae_header_id => l_ae_header_id
95492   ,p_description  => Description_2 (
95493      p_application_id         => p_application_id
95494    , p_ae_header_id           => l_ae_header_id 
95495 , p_source_1 => p_source_1
95496    )
95497 );
95498 
95499 
95500    --
95501    -- call ADRs
95502    -- Bug 4922099
95503    --
95504    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95505         (NVL(l_actual_upg_option, 'N') = 'O') OR
95506         (NVL(l_enc_upg_option, 'N') = 'O')
95507       )
95508    THEN
95509    NULL;
95510    --
95511    --
95512    
95513    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
95514      p_code_combination_id      => TO_NUMBER(C_NUM)
95515    , p_value_type_code          => NULL
95516    , p_transaction_coa_id       => null
95517    , p_accounting_coa_id        => null
95518    , p_adr_code                 => NULL
95522    , p_component_type_code      => l_component_type_code
95519    , p_adr_type_code            => NULL
95520    , p_component_type           => l_component_type
95521    , p_component_code           => l_component_code
95523    , p_component_appl_id        => l_component_appl_id
95524    , p_amb_context_code         => l_amb_context_code
95525    , p_side                     => NULL
95526    );
95527 
95528    
95529   -- initialise segments
95530   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95531   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95532   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95533   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95534   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95535   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95536   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95537   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95538   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95539   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95540   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95541   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95542   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95543   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95544   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95545   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95546   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95547   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95548   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95549   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95550   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95551   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95552   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95553   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95554   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95555   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95556   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95560   --
95557   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95558   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95559   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95561 
95562    --
95563 
95564 
95565    l_segment := AcctDerRule_14(
95566            p_application_id           => p_application_id
95567          , p_ae_header_id             => l_ae_header_id 
95568 , p_source_22 => p_source_22
95569          , x_transaction_coa_id       => l_adr_transaction_coa_id
95570          , x_accounting_coa_id        => l_adr_accounting_coa_id
95571          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95572          , x_flex_value_set_id        => l_adr_flex_value_set_id
95573          , x_value_type_code          => l_adr_value_type_code
95574          , x_value_combination_id     => l_adr_value_combination_id
95575          , x_value_segment_code       => l_adr_value_segment_code
95576          , p_side                     => 'NA'
95577          , p_override_seg_flag        => 'Y'
95578    );
95579 
95580    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95581 
95582       xla_ae_lines_pkg.set_segment(
95583           p_to_segment_code         => 'GL_ACCOUNT'
95584         , p_segment_value           => l_segment
95585         , p_from_segment_code       => l_adr_value_segment_code
95586         , p_from_combination_id     => l_adr_value_combination_id
95587         , p_value_type_code         => l_adr_value_type_code
95588         , p_transaction_coa_id      => l_adr_transaction_coa_id
95589         , p_accounting_coa_id       => l_adr_accounting_coa_id
95590         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95591         , p_flex_value_set_id       => l_adr_flex_value_set_id
95592         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
95593         , p_adr_type_code           => 'S'
95594         , p_component_type          => l_component_type
95595         , p_component_code          => l_component_code
95596         , p_component_type_code     => l_component_type_code
95597         , p_component_appl_id       => l_component_appl_id
95598         , p_amb_context_code        => l_amb_context_code
95599         , p_entity_code             => 'AP_INVOICES'
95600         , p_event_class_code        => 'CREDIT MEMOS'
95601         , p_side                    => 'NA'
95602         );
95603 
95604   END IF;
95605 
95606    --
95607    --
95608    END IF;
95609    --
95610    -- Bug 4922099
95611    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
95612           (NVL(l_enc_upg_option, 'N') = 'O')
95613         ) AND
95614         (l_bflow_method_code = 'PRIOR_ENTRY')
95615       )
95616    THEN
95617       IF
95618       --
95619       1 = 2
95620       --
95621       THEN
95622       xla_accounting_err_pkg.build_message
95623                                     (p_appli_s_name            => 'XLA'
95624                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95625                                     ,p_token_1                 => 'LINE_NUMBER'
95626                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
95627                                     ,p_token_2                 => 'LINE_TYPE_NAME'
95628                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
95629                                                                              l_component_type
95630                                                                             ,l_component_code
95631                                                                             ,l_component_type_code
95632                                                                             ,l_component_appl_id
95633                                                                             ,l_amb_context_code
95634                                                                             ,l_entity_code
95635                                                                             ,l_event_class_code
95636                                                                            )
95637                                     ,p_token_3                 => 'OWNER'
95638                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
95639                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
95640                                                                           ,p_lookup_code    => l_component_type_code
95641                                                                          )
95642                                     ,p_token_4                 => 'PRODUCT_NAME'
95643                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
95644                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
95645                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
95646                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
95647                                     ,p_ae_header_id            =>  NULL
95648                                        );
95649 
95650         IF (C_LEVEL_ERROR>= g_log_level) THEN
95651                  trace
95652                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95653                       ,p_level    => C_LEVEL_ERROR
95654                       ,p_module   => l_log_module);
95655         END IF;
95656       END IF;
95657    END IF;
95658    --
95659    --
95660    ------------------------------------------------------------------------------------------------
95661    -- 4219869 Business Flow
95662    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
95663    -- Prior Entry.  Currently, the following code is always generated.
95664    ------------------------------------------------------------------------------------------------
95665    XLA_AE_LINES_PKG.ValidateCurrentLine;
95666 
95667    ------------------------------------------------------------------------------------
95668    -- 4219869 Business Flow
95669    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
95670    ------------------------------------------------------------------------------------
95671    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95672 
95673    ----------------------------------------------------------------------------------
95674    -- 4219869 Business Flow
95675    -- Update journal entry status -- Need to generate this within IF <condition>
95676    ----------------------------------------------------------------------------------
95677    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95681 
95678          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
95679          ,p_balance_type_code => l_balance_type_code
95680          );
95682    -------------------------------------------------------------------------------------------
95683    -- 4262811 - Generate the Accrual Reversal lines
95684    -------------------------------------------------------------------------------------------
95685    BEGIN
95686       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
95687                               (g_array_event(p_event_id).array_value_num('header_index'));
95688       IF l_acc_rev_flag IS NULL THEN
95689          l_acc_rev_flag := 'N';
95690       END IF;
95691    EXCEPTION
95692       WHEN OTHERS THEN
95693          l_acc_rev_flag := 'N';
95694    END;
95695    --
95696    IF (l_acc_rev_flag = 'Y') THEN
95697 
95698        -- 4645092  ------------------------------------------------------------------------------
95699        -- To allow MPA report to determine if it should generate report process
95700        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
95701        ------------------------------------------------------------------------------------------
95702 
95703        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
95704        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
95705    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
95706    -- call ADRs
95707    -- Bug 4922099
95708    --
95709    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95710         (NVL(l_actual_upg_option, 'N') = 'O') OR
95711         (NVL(l_enc_upg_option, 'N') = 'O')
95712       )
95713    THEN
95714    NULL;
95715    --
95716    --
95717    
95721    , p_transaction_coa_id       => null
95718    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
95719      p_code_combination_id      => TO_NUMBER(C_NUM)
95720    , p_value_type_code          => NULL
95722    , p_accounting_coa_id        => null
95723    , p_adr_code                 => NULL
95724    , p_adr_type_code            => NULL
95725    , p_component_type           => l_component_type
95726    , p_component_code           => l_component_code
95727    , p_component_type_code      => l_component_type_code
95728    , p_component_appl_id        => l_component_appl_id
95729    , p_amb_context_code         => l_amb_context_code
95730    , p_side                     => NULL
95731    );
95732 
95733    
95734   -- initialise segments
95735   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95736   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95737   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95738   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95739   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95740   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95741   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95742   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95743   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
95744   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95745   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95746   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95747   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95748   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95749   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95750   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95751   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95752   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95753   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95754   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95755   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95756   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95757   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95758   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95759   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95760   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95761   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95762   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95763   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95764   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
95765   --
95766 
95767    --
95768 
95769 
95770    l_segment := AcctDerRule_14(
95771            p_application_id           => p_application_id
95772          , p_ae_header_id             => l_ae_header_id 
95773 , p_source_22 => p_source_22
95774          , x_transaction_coa_id       => l_adr_transaction_coa_id
95775          , x_accounting_coa_id        => l_adr_accounting_coa_id
95776          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95777          , x_flex_value_set_id        => l_adr_flex_value_set_id
95778          , x_value_type_code          => l_adr_value_type_code
95779          , x_value_combination_id     => l_adr_value_combination_id
95780          , x_value_segment_code       => l_adr_value_segment_code
95781          , p_side                     => 'NA'
95782          , p_override_seg_flag        => 'Y'
95783    );
95784 
95785    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95786 
95787       xla_ae_lines_pkg.set_segment(
95788           p_to_segment_code         => 'GL_ACCOUNT'
95789         , p_segment_value           => l_segment
95790         , p_from_segment_code       => l_adr_value_segment_code
95791         , p_from_combination_id     => l_adr_value_combination_id
95792         , p_value_type_code         => l_adr_value_type_code
95793         , p_transaction_coa_id      => l_adr_transaction_coa_id
95794         , p_accounting_coa_id       => l_adr_accounting_coa_id
95795         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95796         , p_flex_value_set_id       => l_adr_flex_value_set_id
95802         , p_component_appl_id       => l_component_appl_id
95797         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
95798         , p_adr_type_code           => 'S'
95799         , p_component_type          => l_component_type
95800         , p_component_code          => l_component_code
95801         , p_component_type_code     => l_component_type_code
95803         , p_amb_context_code        => l_amb_context_code
95804         , p_entity_code             => 'AP_INVOICES'
95805         , p_event_class_code        => 'CREDIT MEMOS'
95806         , p_side                    => 'NA'
95807         );
95808 
95809   END IF;
95810 
95811    --
95812    --
95813    END IF;
95814 
95815        --
95816        -- Update the line information that should be overwritten
95817        --
95818        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
95819                                          p_header_num   => 1);
95820        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
95821 
95822        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
95823 
95824        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
95825           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
95826        END IF;
95827 
95828       --
95829       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
95830       --
95831       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
95832           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
95833       ELSE
95834           ---------------------------------------------------------------------------------------------------
95835           -- 4262811a Switch Sign
95836           ---------------------------------------------------------------------------------------------------
95837           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
95838           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
95839                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95840           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
95841                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95842           -- 5132302
95843           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
95844                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95845 
95846       END IF;
95847 
95848       -- 4955764
95849       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95850       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
95851 
95852 
95853       XLA_AE_LINES_PKG.ValidateCurrentLine;
95854       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95855 
95856       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95857                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
95858                ,p_balance_type_code => l_balance_type_code);
95859 
95860    END IF;
95861 
95862    -----------------------------------------------------------------------------------------
95863    -- 4262811 Multiperiod Accounting
95864    -----------------------------------------------------------------------------------------
95865      -- No MPA option is assigned.
95866 
95867 
95868 END IF;
95869 END IF;
95870 --
95871 
95872 --
95873 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95874    trace
95875       (p_msg      => 'END of AcctLineType_169'
95876       ,p_level    => C_LEVEL_PROCEDURE
95877       ,p_module   => l_log_module);
95878 END IF;
95879 --
95880 EXCEPTION
95881   WHEN xla_exceptions_pkg.application_exception THEN
95882       RAISE;
95883   WHEN OTHERS THEN
95884        xla_exceptions_pkg.raise_message
95885            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_169');
95886 END AcctLineType_169;
95887 --
95888 
95889 ---------------------------------------
95890 --
95891 -- PRIVATE FUNCTION
95892 --         AcctLineType_170
95893 --
95894 ---------------------------------------
95895 PROCEDURE AcctLineType_170 (
95896   p_application_id        IN NUMBER
95897  ,p_event_id              IN NUMBER
95898  ,p_calculate_acctd_flag  IN VARCHAR2
95899  ,p_calculate_g_l_flag    IN VARCHAR2
95900  ,p_actual_flag           IN OUT VARCHAR2
95901  ,p_balance_type_code     OUT VARCHAR2
95902  ,p_gain_or_loss_ref      OUT VARCHAR2
95903  
95904 --Invoice Distribution Description
95905  , p_source_1            IN VARCHAR2
95906 --Automatic Offsets Value
95907  , p_source_3            IN VARCHAR2
95908  , p_source_3_meaning    IN VARCHAR2
95909 --Invoice Distribution Ledger Amount
95910  , p_source_9            IN NUMBER
95911 --Invoice Liability Account
95912  , p_source_22            IN NUMBER
95913 --Accounting Reversal Indicator
95914  , p_source_41            IN VARCHAR2
95915 --Distribution Link Type
95916  , p_source_43            IN VARCHAR2
95917 --Allocation to Main Distribution Identifier
95918  , p_source_45            IN NUMBER
95919 --Invoice Identifier
95920  , p_source_46            IN NUMBER
95921 --Invoice Distribution Identifier
95922  , p_source_52            IN NUMBER
95923 --Payables Encumbrance Upgrade Credit Account
95924  , p_source_53            IN NUMBER
95925 --Payables Encumbrance Upgrade Credit Amount
95926  , p_source_54            IN NUMBER
95927 --Invoice Currency Code
95931 --Payables Encumbrance Upgrade Debit Account
95928  , p_source_55            IN VARCHAR2
95929 --Payables Encumbrance Upgrade Credit Base Amount
95930  , p_source_56            IN NUMBER
95932  , p_source_57            IN NUMBER
95933 --Payables Encumbrance Upgrade Debit Amount
95934  , p_source_58            IN NUMBER
95935 --Payables Encumbrance Upgrade Debit Base Amount
95936  , p_source_59            IN NUMBER
95937 --Payables Encumbrance Upgrade Option
95938  , p_source_60            IN VARCHAR2
95939 --Invoice Distribution Amount
95940  , p_source_61            IN NUMBER
95941 --Deferred Accounting End Date
95942  , p_source_65            IN DATE
95943 --Deferred Accounting Option
95944  , p_source_66            IN VARCHAR2
95945 --Deferred Accounting Start Date
95946  , p_source_67            IN DATE
95947 --Override Accounted Amount Indicator
95953  , p_source_70            IN NUMBER
95948  , p_source_68            IN VARCHAR2
95949  , p_source_68_meaning    IN VARCHAR2
95950 --Invoice Supplier Identifier
95951  , p_source_69            IN NUMBER
95952 --Invoice Supplier Site Identifier
95954 --Third Party Type
95955  , p_source_71            IN VARCHAR2
95956 --Parent Reversal Identifier
95957  , p_source_72            IN NUMBER
95958 --Invoice Distribution Statistical Amount
95959  , p_source_73            IN NUMBER
95960 --Invoice Distribution Tax Line Identifier
95961  , p_source_74            IN NUMBER
95962 --Invoice Distribution Tax Distribution Identifier from Tax
95963  , p_source_75            IN NUMBER
95964 --Invoice Distribution Summary Tax Line Identifier
95965  , p_source_76            IN NUMBER
95966 --Payables Upgrade Credit Encumbrance Type Identifier
95970 --Business Flow Accounts Payable Application Identifier
95967  , p_source_77            IN NUMBER
95968 --Payables Upgrade Debit Encumbrance Type Identifier
95969  , p_source_78            IN NUMBER
95971  , p_source_79            IN NUMBER
95972 --Business Flow Invoice Distribution Type
95973  , p_source_80            IN VARCHAR2
95974 --Business Flow Invoice Entity Code
95975  , p_source_81            IN VARCHAR2
95976 --Business Flow Invoice Distribution Identifier
95977  , p_source_82            IN NUMBER
95978 --Business Flow Invoice Identifier
95979  , p_source_83            IN NUMBER
95980 --Self-Assessed Tax Flag
95981  , p_source_135            IN VARCHAR2
95982  , p_source_135_meaning    IN VARCHAR2
95983 --Invoice Exchange Date
95984  , p_source_136            IN DATE
95985 --Invoice Exchange Rate
95986  , p_source_137            IN NUMBER
95987 --Invoice Exchange Rate Type
95988  , p_source_138            IN VARCHAR2
95989 )
95990 IS
95991 
95992 l_component_type              VARCHAR2(80);
95993 l_component_code              VARCHAR2(30);
95994 l_component_type_code         VARCHAR2(1);
95995 l_component_appl_id           INTEGER;
95996 l_amb_context_code            VARCHAR2(30);
95997 l_entity_code                 VARCHAR2(30);
95998 l_event_class_code            VARCHAR2(30);
95999 l_ae_header_id                NUMBER;
96000 l_event_type_code             VARCHAR2(30);
96001 l_line_definition_code        VARCHAR2(30);
96002 l_line_definition_owner_code  VARCHAR2(1);
96003 --
96004 -- adr variables
96005 l_segment                     VARCHAR2(30);
96006 l_ccid                        NUMBER;
96007 l_adr_transaction_coa_id      NUMBER;
96008 l_adr_accounting_coa_id       NUMBER;
96009 l_adr_flexfield_segment_code  VARCHAR2(30);
96010 l_adr_flex_value_set_id       NUMBER;
96011 l_adr_value_type_code         VARCHAR2(30);
96012 l_adr_value_combination_id    NUMBER;
96013 l_adr_value_segment_code      VARCHAR2(30);
96014 
96015 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
96016 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
96017 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
96018 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
96019 
96020 -- 4262811 Variables ------------------------------------------------------------------------------------------
96021 l_entered_amt_idx             NUMBER;
96022 l_accted_amt_idx              NUMBER;
96023 l_acc_rev_flag                VARCHAR2(1);
96024 l_accrual_line_num            NUMBER;
96025 l_tmp_amt                     NUMBER;
96026 l_acc_rev_natural_side_code   VARCHAR2(1);
96027 
96028 l_num_entries                 NUMBER;
96029 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
96030 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
96031 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
96032 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
96033 l_recog_line_1                NUMBER;
96034 l_recog_line_2                NUMBER;
96035 
96036 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
96037 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
96038 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
96039 
96040 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
96041 
96042 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
96043 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
96044 
96045 ---------------------------------------------------------------------------------------------------------------
96046 
96047 
96048 --
96049 -- bulk performance
96050 --
96051 l_balance_type_code           VARCHAR2(1);
96052 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
96053 l_log_module                  VARCHAR2(240);
96054 
96055 --
96056 -- Upgrade strategy
96057 --
96058 l_actual_upg_option           VARCHAR2(1);
96059 l_enc_upg_option           VARCHAR2(1);
96060 
96061 --
96062 BEGIN
96063 --
96064 IF g_log_enabled THEN
96065       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_170';
96066 END IF;
96067 --
96068 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96069 
96070       trace
96071          (p_msg      => 'BEGIN of AcctLineType_170'
96072          ,p_level    => C_LEVEL_PROCEDURE
96073          ,p_module   => l_log_module);
96074 
96075 END IF;
96076 --
96077 l_component_type             := 'AMB_JLT';
96078 l_component_code             := 'AP_LIAB_CM_AOS_BS';
96079 l_component_type_code        := 'S';
96080 l_component_appl_id          :=  200;
96081 l_amb_context_code           := 'DEFAULT';
96082 l_entity_code                := 'AP_INVOICES';
96083 l_event_class_code           := 'CREDIT MEMOS';
96084 l_event_type_code            := 'CREDIT MEMOS_ALL';
96085 l_line_definition_owner_code := 'S';
96086 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
96087 --
96088 l_balance_type_code          := 'A';
96089 l_segment                     := NULL;
96090 l_ccid                        := NULL;
96091 l_adr_transaction_coa_id      := NULL;
96092 l_adr_accounting_coa_id       := NULL;
96093 l_adr_flexfield_segment_code  := NULL;
96094 l_adr_flex_value_set_id       := NULL;
96095 l_adr_value_type_code         := NULL;
96096 l_adr_value_combination_id    := NULL;
96097 l_adr_value_segment_code      := NULL;
96098 
96099 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
96100 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
96101 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
96107 l_accted_amt_idx             := NULL;          -- 4262811
96102 l_budgetary_control_flag     := 'N';
96103 
96104 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
96105 l_bflow_applied_to_amt       := NULL; -- 5132302
96106 l_entered_amt_idx            := NULL;          -- 4262811
96108 l_acc_rev_flag               := NULL;          -- 4262811
96109 l_accrual_line_num           := NULL;          -- 4262811
96110 l_tmp_amt                    := NULL;          -- 4262811
96111 --
96112  
96113 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
96114     l_balance_type_code <> 'B' THEN
96115 IF NVL(p_source_3,'
96116 ') =  'BALANCING_SEGMENT' AND 
96117 NVL(p_source_135,'
96118 ') <>  'Y'
96119  THEN 
96120 
96121    --
96122    XLA_AE_LINES_PKG.SetNewLine;
96123 
96124    p_balance_type_code          := l_balance_type_code;
96125    -- set the flag so later we will know whether the gain loss line needs to be created
96126    
96127    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
96128      p_actual_flag :='A';
96129    END IF;
96130 
96131    --
96132    -- bulk performance
96133    --
96134    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
96135                                       p_header_num   => 0); -- 4262811
96136    --
96137    -- set accounting line options
96138    --
96139    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
96140            p_natural_side_code          => 'C'
96141          , p_gain_or_loss_flag          => 'N'
96142          , p_gl_transfer_mode_code      => 'S'
96143          , p_acct_entry_type_code       => 'A'
96144          , p_switch_side_flag           => 'Y'
96145          , p_merge_duplicate_code       => 'A'
96146          );
96147    --
96148    l_acc_rev_natural_side_code := 'D';  -- 4262811
96149    -- 
96150    --
96151    -- set accounting line type info
96152    --
96153    xla_ae_lines_pkg.SetAcctLineType
96154       (p_component_type             => l_component_type
96155       ,p_event_type_code            => l_event_type_code
96156       ,p_line_definition_owner_code => l_line_definition_owner_code
96157       ,p_line_definition_code       => l_line_definition_code
96158       ,p_accounting_line_code       => l_component_code
96159       ,p_accounting_line_type_code  => l_component_type_code
96160       ,p_accounting_line_appl_id    => l_component_appl_id
96161       ,p_amb_context_code           => l_amb_context_code
96162       ,p_entity_code                => l_entity_code
96163       ,p_event_class_code           => l_event_class_code);
96164    --
96165    -- set accounting class
96166    --
96167    xla_ae_lines_pkg.SetAcctClass(
96168            p_accounting_class_code  => 'LIABILITY'
96172    --
96169          , p_ae_header_id           => l_ae_header_id
96170          );
96171 
96173    -- set rounding class
96174    --
96175    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
96176                       'LIABILITY';
96177 
96178    --
96179    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
96180    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
96181    --
96182    -- bulk performance
96183    --
96184    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
96185 
96186    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
96187       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
96188 
96189    -- 4955764
96190    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96191       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
96192 
96193    -- 4458381 Public Sector Enh
96194    
96195    --
96196    -- set accounting attributes for the line type
96197    --
96198    l_entered_amt_idx := 23;
96199    l_accted_amt_idx  := 28;
96200    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
96201    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
96202    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
96203    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
96204    l_rec_acct_attrs.array_num_value(2)  := 
96205 xla_ae_sources_pkg.GetSystemSourceNum(
96206    p_source_code           => 'XLA_EVENT_APPL_ID'
96207  , p_source_type_code      => 'Y'
96208  , p_source_application_id =>  602
96209 );
96210    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
96211    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
96212    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
96213    l_rec_acct_attrs.array_char_value(4)  := 
96214 xla_ae_sources_pkg.GetSystemSourceChar(
96215    p_source_code           => 'XLA_ENTITY_CODE'
96216  , p_source_type_code      => 'Y'
96217  , p_source_application_id =>  602
96218 );
96219    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
96220    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
96221    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
96222    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
96223    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
96224    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
96225    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
96226    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
96227    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
96228    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
96229    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
96230    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
96231    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
96232    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
96233    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
96234    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
96235    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
96236    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
96237    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
96238    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
96239    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
96240    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
96241    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
96242    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
96243    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
96244    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
96248    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
96245    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
96246    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
96247    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
96249    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
96250    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
96251    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
96252    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
96253    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
96254    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
96255    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
96256    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
96257    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
96258    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
96259    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
96260    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
96261    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
96262    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
96263    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
96264    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
96265    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
96266    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
96267    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
96268    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
96269    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
96270    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
96271    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
96272    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
96273    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
96274    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
96275    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
96276    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
96277    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
96278    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
96279    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
96280    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
96284    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
96281    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
96282    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
96283    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
96285    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
96286    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
96287    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
96288    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
96289    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
96290    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
96291    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
96292    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
96293    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
96294    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
96295    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
96296    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
96297 
96298    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
96299    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
96300 
96301    ---------------------------------------------------------------------------------------------------------------
96302    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
96303    ---------------------------------------------------------------------------------------------------------------
96304    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
96305 
96306    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96307    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96308 
96309    IF xla_accounting_cache_pkg.GetValueChar
96310          (p_source_code         => 'LEDGER_CATEGORY_CODE'
96311          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
96312    AND l_bflow_method_code = 'PRIOR_ENTRY'
96313 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
96314    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
96315          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
96316        )
96317    THEN
96318          xla_ae_lines_pkg.BflowUpgEntry
96319            (p_business_method_code    => l_bflow_method_code
96320            ,p_business_class_code     => l_bflow_class_code
96321            ,p_balance_type            => l_balance_type_code);
96322    ELSE
96323       NULL;
96324 XLA_AE_LINES_PKG.business_flow_validation(
96325                                 p_business_method_code     => l_bflow_method_code
96326                                ,p_business_class_code      => l_bflow_class_code
96327                                ,p_inherit_description_flag => l_inherit_desc_flag);
96328    END IF;
96329 
96330    --
96331    -- call analytical criteria
96332    --
96333    
96334    --
96335    -- call description
96336    --
96337    
96338 xla_ae_lines_pkg.SetLineDescription(
96339    p_ae_header_id => l_ae_header_id
96340   ,p_description  => Description_2 (
96341      p_application_id         => p_application_id
96342    , p_ae_header_id           => l_ae_header_id 
96343 , p_source_1 => p_source_1
96344    )
96345 );
96346 
96347 
96348    --
96349    -- call ADRs
96350    -- Bug 4922099
96351    --
96352    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96353         (NVL(l_actual_upg_option, 'N') = 'O') OR
96354         (NVL(l_enc_upg_option, 'N') = 'O')
96355       )
96356    THEN
96357    NULL;
96358    --
96359    --
96360    
96361   l_ccid := AcctDerRule_33(
96362            p_application_id           => p_application_id
96363          , p_ae_header_id             => l_ae_header_id 
96364 , p_source_22 => p_source_22
96365          , x_transaction_coa_id       => l_adr_transaction_coa_id
96366          , x_accounting_coa_id        => l_adr_accounting_coa_id
96367          , x_value_type_code          => l_adr_value_type_code
96368          , p_side                     => 'NA'
96369    );
96370 
96371    xla_ae_lines_pkg.set_ccid(
96372     p_code_combination_id          => l_ccid
96378   , p_component_type               => l_component_type
96373   , p_value_type_code              => l_adr_value_type_code
96374   , p_transaction_coa_id           => l_adr_transaction_coa_id
96375   , p_accounting_coa_id            => l_adr_accounting_coa_id
96376   , p_adr_code                     => 'AP_LIAB'
96377   , p_adr_type_code                => 'S'
96379   , p_component_code               => l_component_code
96380   , p_component_type_code          => l_component_type_code
96381   , p_component_appl_id            => l_component_appl_id
96382   , p_amb_context_code             => l_amb_context_code
96383   , p_side                         => 'NA'
96384   );
96385 
96386 
96387    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
96388      p_to_segment_code         => 'GL_BALANCING'
96389    , p_segment_value           => C_CHAR
96390    , p_from_segment_code       => NULL
96391    , p_from_combination_id     => NULL
96392    , p_value_type_code         => NULL
96393    , p_transaction_coa_id      => null
96394    , p_accounting_coa_id       => null
96395    , p_flexfield_segment_code  => NULL
96396    , p_flex_value_set_id       => NULL
96397    , p_adr_code                => NULL
96398    , p_adr_type_code           => NULL
96399    , p_component_type          => l_component_type
96400    , p_component_code          => l_component_code
96401    , p_component_type_code     => l_component_type_code
96402    , p_component_appl_id       => l_component_appl_id
96403    , p_amb_context_code        => l_amb_context_code
96404    , p_entity_code             => 'AP_INVOICES'
96405    , p_event_class_code        => 'CREDIT MEMOS'
96406    , p_side                    => 'NA'
96407    );
96408    --
96409 
96410 
96411    --
96412    --
96413    END IF;
96414    --
96415    -- Bug 4922099
96416    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
96417           (NVL(l_enc_upg_option, 'N') = 'O')
96418         ) AND
96419         (l_bflow_method_code = 'PRIOR_ENTRY')
96420       )
96421    THEN
96422       IF
96423       --
96424       1 = 2
96425       --
96426       THEN
96427       xla_accounting_err_pkg.build_message
96428                                     (p_appli_s_name            => 'XLA'
96429                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96430                                     ,p_token_1                 => 'LINE_NUMBER'
96431                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
96432                                     ,p_token_2                 => 'LINE_TYPE_NAME'
96433                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
96434                                                                              l_component_type
96435                                                                             ,l_component_code
96436                                                                             ,l_component_type_code
96437                                                                             ,l_component_appl_id
96438                                                                             ,l_amb_context_code
96439                                                                             ,l_entity_code
96440                                                                             ,l_event_class_code
96441                                                                            )
96442                                     ,p_token_3                 => 'OWNER'
96443                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
96444                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
96445                                                                           ,p_lookup_code    => l_component_type_code
96446                                                                          )
96447                                     ,p_token_4                 => 'PRODUCT_NAME'
96448                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
96449                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
96450                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
96451                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
96452                                     ,p_ae_header_id            =>  NULL
96453                                        );
96454 
96455         IF (C_LEVEL_ERROR>= g_log_level) THEN
96456                  trace
96457                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96458                       ,p_level    => C_LEVEL_ERROR
96459                       ,p_module   => l_log_module);
96460         END IF;
96464    --
96461       END IF;
96462    END IF;
96463    --
96465    ------------------------------------------------------------------------------------------------
96466    -- 4219869 Business Flow
96467    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
96468    -- Prior Entry.  Currently, the following code is always generated.
96469    ------------------------------------------------------------------------------------------------
96470    XLA_AE_LINES_PKG.ValidateCurrentLine;
96471 
96472    ------------------------------------------------------------------------------------
96473    -- 4219869 Business Flow
96474    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
96475    ------------------------------------------------------------------------------------
96476    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96477 
96478    ----------------------------------------------------------------------------------
96479    -- 4219869 Business Flow
96480    -- Update journal entry status -- Need to generate this within IF <condition>
96481    ----------------------------------------------------------------------------------
96482    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96483          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
96484          ,p_balance_type_code => l_balance_type_code
96485          );
96486 
96487    -------------------------------------------------------------------------------------------
96488    -- 4262811 - Generate the Accrual Reversal lines
96489    -------------------------------------------------------------------------------------------
96490    BEGIN
96491       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
96492                               (g_array_event(p_event_id).array_value_num('header_index'));
96493       IF l_acc_rev_flag IS NULL THEN
96494          l_acc_rev_flag := 'N';
96495       END IF;
96499    END;
96496    EXCEPTION
96497       WHEN OTHERS THEN
96498          l_acc_rev_flag := 'N';
96500    --
96501    IF (l_acc_rev_flag = 'Y') THEN
96502 
96503        -- 4645092  ------------------------------------------------------------------------------
96504        -- To allow MPA report to determine if it should generate report process
96505        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
96506        ------------------------------------------------------------------------------------------
96507 
96508        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
96509        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
96510    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
96511    -- call ADRs
96512    -- Bug 4922099
96513    --
96514    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96515         (NVL(l_actual_upg_option, 'N') = 'O') OR
96516         (NVL(l_enc_upg_option, 'N') = 'O')
96517       )
96518    THEN
96519    NULL;
96520    --
96521    --
96522    
96523   l_ccid := AcctDerRule_33(
96524            p_application_id           => p_application_id
96525          , p_ae_header_id             => l_ae_header_id 
96526 , p_source_22 => p_source_22
96527          , x_transaction_coa_id       => l_adr_transaction_coa_id
96531    );
96528          , x_accounting_coa_id        => l_adr_accounting_coa_id
96529          , x_value_type_code          => l_adr_value_type_code
96530          , p_side                     => 'NA'
96532 
96533    xla_ae_lines_pkg.set_ccid(
96534     p_code_combination_id          => l_ccid
96535   , p_value_type_code              => l_adr_value_type_code
96536   , p_transaction_coa_id           => l_adr_transaction_coa_id
96537   , p_accounting_coa_id            => l_adr_accounting_coa_id
96538   , p_adr_code                     => 'AP_LIAB'
96539   , p_adr_type_code                => 'S'
96540   , p_component_type               => l_component_type
96541   , p_component_code               => l_component_code
96542   , p_component_type_code          => l_component_type_code
96543   , p_component_appl_id            => l_component_appl_id
96544   , p_amb_context_code             => l_amb_context_code
96545   , p_side                         => 'NA'
96546   );
96547 
96548 
96549    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
96550      p_to_segment_code         => 'GL_BALANCING'
96551    , p_segment_value           => C_CHAR
96552    , p_from_segment_code       => NULL
96553    , p_from_combination_id     => NULL
96554    , p_value_type_code         => NULL
96555    , p_transaction_coa_id      => null
96556    , p_accounting_coa_id       => null
96557    , p_flexfield_segment_code  => NULL
96558    , p_flex_value_set_id       => NULL
96559    , p_adr_code                => NULL
96560    , p_adr_type_code           => NULL
96561    , p_component_type          => l_component_type
96562    , p_component_code          => l_component_code
96563    , p_component_type_code     => l_component_type_code
96564    , p_component_appl_id       => l_component_appl_id
96565    , p_amb_context_code        => l_amb_context_code
96566    , p_entity_code             => 'AP_INVOICES'
96567    , p_event_class_code        => 'CREDIT MEMOS'
96568    , p_side                    => 'NA'
96569    );
96570    --
96571 
96572 
96573    --
96574    --
96575    END IF;
96576 
96577        --
96578        -- Update the line information that should be overwritten
96579        --
96580        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
96581                                          p_header_num   => 1);
96582        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
96583 
96584        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
96585 
96586        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
96587           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
96588        END IF;
96589 
96590       --
96591       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
96592       --
96593       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
96594           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
96595       ELSE
96596           ---------------------------------------------------------------------------------------------------
96597           -- 4262811a Switch Sign
96598           ---------------------------------------------------------------------------------------------------
96599           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
96600           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96601                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96602           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96603                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96604           -- 5132302
96605           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
96606                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96607 
96608       END IF;
96609 
96610       -- 4955764
96611       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96612       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
96613 
96614 
96615       XLA_AE_LINES_PKG.ValidateCurrentLine;
96616       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96617 
96618       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96619                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
96620                ,p_balance_type_code => l_balance_type_code);
96621 
96622    END IF;
96623 
96624    -----------------------------------------------------------------------------------------
96625    -- 4262811 Multiperiod Accounting
96626    -----------------------------------------------------------------------------------------
96627      -- No MPA option is assigned.
96628 
96629 
96630 END IF;
96631 END IF;
96632 --
96633 
96634 --
96635 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96636    trace
96637       (p_msg      => 'END of AcctLineType_170'
96638       ,p_level    => C_LEVEL_PROCEDURE
96639       ,p_module   => l_log_module);
96640 END IF;
96641 --
96642 EXCEPTION
96643   WHEN xla_exceptions_pkg.application_exception THEN
96644       RAISE;
96645   WHEN OTHERS THEN
96646        xla_exceptions_pkg.raise_message
96650 
96647            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_170');
96648 END AcctLineType_170;
96649 --
96651 ---------------------------------------
96652 --
96653 -- PRIVATE FUNCTION
96654 --         AcctLineType_171
96655 --
96656 ---------------------------------------
96657 PROCEDURE AcctLineType_171 (
96658   p_application_id        IN NUMBER
96659  ,p_event_id              IN NUMBER
96660  ,p_calculate_acctd_flag  IN VARCHAR2
96661  ,p_calculate_g_l_flag    IN VARCHAR2
96662  ,p_actual_flag           IN OUT VARCHAR2
96663  ,p_balance_type_code     OUT VARCHAR2
96664  ,p_gain_or_loss_ref      OUT VARCHAR2
96665  
96666 --Invoice Distribution Description
96667  , p_source_1            IN VARCHAR2
96668 --Automatic Offsets Value
96669  , p_source_3            IN VARCHAR2
96670  , p_source_3_meaning    IN VARCHAR2
96671 --Invoice Distribution Ledger Amount
96672  , p_source_9            IN NUMBER
96673 --Invoice Liability Account
96674  , p_source_22            IN NUMBER
96675 --Accounting Reversal Indicator
96676  , p_source_41            IN VARCHAR2
96677 --Distribution Link Type
96678  , p_source_43            IN VARCHAR2
96679 --Allocation to Main Distribution Identifier
96680  , p_source_45            IN NUMBER
96681 --Invoice Identifier
96682  , p_source_46            IN NUMBER
96683 --Invoice Distribution Identifier
96684  , p_source_52            IN NUMBER
96685 --Payables Encumbrance Upgrade Credit Account
96686  , p_source_53            IN NUMBER
96687 --Payables Encumbrance Upgrade Credit Amount
96688  , p_source_54            IN NUMBER
96689 --Invoice Currency Code
96690  , p_source_55            IN VARCHAR2
96691 --Payables Encumbrance Upgrade Credit Base Amount
96692  , p_source_56            IN NUMBER
96693 --Payables Encumbrance Upgrade Debit Account
96694  , p_source_57            IN NUMBER
96695 --Payables Encumbrance Upgrade Debit Amount
96696  , p_source_58            IN NUMBER
96697 --Payables Encumbrance Upgrade Debit Base Amount
96698  , p_source_59            IN NUMBER
96699 --Payables Encumbrance Upgrade Option
96700  , p_source_60            IN VARCHAR2
96701 --Invoice Distribution Amount
96702  , p_source_61            IN NUMBER
96703 --Deferred Accounting End Date
96704  , p_source_65            IN DATE
96705 --Deferred Accounting Option
96706  , p_source_66            IN VARCHAR2
96707 --Deferred Accounting Start Date
96708  , p_source_67            IN DATE
96709 --Override Accounted Amount Indicator
96710  , p_source_68            IN VARCHAR2
96711  , p_source_68_meaning    IN VARCHAR2
96712 --Invoice Supplier Identifier
96713  , p_source_69            IN NUMBER
96714 --Invoice Supplier Site Identifier
96715  , p_source_70            IN NUMBER
96716 --Third Party Type
96717  , p_source_71            IN VARCHAR2
96718 --Parent Reversal Identifier
96719  , p_source_72            IN NUMBER
96720 --Invoice Distribution Tax Line Identifier
96721  , p_source_74            IN NUMBER
96722 --Invoice Distribution Tax Distribution Identifier from Tax
96723  , p_source_75            IN NUMBER
96724 --Invoice Distribution Summary Tax Line Identifier
96725  , p_source_76            IN NUMBER
96726 --Payables Upgrade Credit Encumbrance Type Identifier
96727  , p_source_77            IN NUMBER
96728 --Payables Upgrade Debit Encumbrance Type Identifier
96729  , p_source_78            IN NUMBER
96730 --Business Flow Accounts Payable Application Identifier
96731  , p_source_79            IN NUMBER
96732 --Business Flow Invoice Distribution Type
96733  , p_source_80            IN VARCHAR2
96734 --Business Flow Invoice Entity Code
96735  , p_source_81            IN VARCHAR2
96736 --Business Flow Invoice Distribution Identifier
96737  , p_source_82            IN NUMBER
96738 --Business Flow Invoice Identifier
96739  , p_source_83            IN NUMBER
96740 --Self-Assessed Tax Flag
96741  , p_source_135            IN VARCHAR2
96742  , p_source_135_meaning    IN VARCHAR2
96743 --Invoice Exchange Date
96744  , p_source_136            IN DATE
96745 --Invoice Exchange Rate
96746  , p_source_137            IN NUMBER
96747 --Invoice Exchange Rate Type
96748  , p_source_138            IN VARCHAR2
96749 )
96750 IS
96751 
96752 l_component_type              VARCHAR2(80);
96753 l_component_code              VARCHAR2(30);
96754 l_component_type_code         VARCHAR2(1);
96755 l_component_appl_id           INTEGER;
96756 l_amb_context_code            VARCHAR2(30);
96757 l_entity_code                 VARCHAR2(30);
96758 l_event_class_code            VARCHAR2(30);
96759 l_ae_header_id                NUMBER;
96760 l_event_type_code             VARCHAR2(30);
96761 l_line_definition_code        VARCHAR2(30);
96762 l_line_definition_owner_code  VARCHAR2(1);
96763 --
96764 -- adr variables
96765 l_segment                     VARCHAR2(30);
96766 l_ccid                        NUMBER;
96767 l_adr_transaction_coa_id      NUMBER;
96768 l_adr_accounting_coa_id       NUMBER;
96769 l_adr_flexfield_segment_code  VARCHAR2(30);
96770 l_adr_flex_value_set_id       NUMBER;
96771 l_adr_value_type_code         VARCHAR2(30);
96772 l_adr_value_combination_id    NUMBER;
96773 l_adr_value_segment_code      VARCHAR2(30);
96774 
96775 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
96776 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
96777 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
96778 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
96779 
96783 l_acc_rev_flag                VARCHAR2(1);
96780 -- 4262811 Variables ------------------------------------------------------------------------------------------
96781 l_entered_amt_idx             NUMBER;
96782 l_accted_amt_idx              NUMBER;
96784 l_accrual_line_num            NUMBER;
96785 l_tmp_amt                     NUMBER;
96786 l_acc_rev_natural_side_code   VARCHAR2(1);
96787 
96788 l_num_entries                 NUMBER;
96789 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
96790 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
96791 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
96792 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
96793 l_recog_line_1                NUMBER;
96794 l_recog_line_2                NUMBER;
96795 
96796 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
96797 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
96801 
96798 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
96799 
96800 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
96802 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
96803 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
96804 
96805 ---------------------------------------------------------------------------------------------------------------
96806 
96807 
96808 --
96809 -- bulk performance
96810 --
96811 l_balance_type_code           VARCHAR2(1);
96812 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
96813 l_log_module                  VARCHAR2(240);
96814 
96815 --
96816 -- Upgrade strategy
96817 --
96818 l_actual_upg_option           VARCHAR2(1);
96819 l_enc_upg_option           VARCHAR2(1);
96820 
96821 --
96822 BEGIN
96823 --
96824 IF g_log_enabled THEN
96825       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_171';
96826 END IF;
96827 --
96828 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96829 
96830       trace
96831          (p_msg      => 'BEGIN of AcctLineType_171'
96832          ,p_level    => C_LEVEL_PROCEDURE
96833          ,p_module   => l_log_module);
96834 
96835 END IF;
96836 --
96837 l_component_type             := 'AMB_JLT';
96838 l_component_code             := 'AP_LIAB_DM';
96839 l_component_type_code        := 'S';
96840 l_component_appl_id          :=  200;
96841 l_amb_context_code           := 'DEFAULT';
96842 l_entity_code                := 'AP_INVOICES';
96843 l_event_class_code           := 'DEBIT MEMOS';
96844 l_event_type_code            := 'DEBIT MEMOS_ALL';
96845 l_line_definition_owner_code := 'S';
96846 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
96847 --
96848 l_balance_type_code          := 'A';
96849 l_segment                     := NULL;
96850 l_ccid                        := NULL;
96851 l_adr_transaction_coa_id      := NULL;
96852 l_adr_accounting_coa_id       := NULL;
96853 l_adr_flexfield_segment_code  := NULL;
96854 l_adr_flex_value_set_id       := NULL;
96855 l_adr_value_type_code         := NULL;
96856 l_adr_value_combination_id    := NULL;
96857 l_adr_value_segment_code      := NULL;
96858 
96859 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
96860 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
96861 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
96862 l_budgetary_control_flag     := 'N';
96863 
96864 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
96865 l_bflow_applied_to_amt       := NULL; -- 5132302
96866 l_entered_amt_idx            := NULL;          -- 4262811
96867 l_accted_amt_idx             := NULL;          -- 4262811
96871 --
96868 l_acc_rev_flag               := NULL;          -- 4262811
96869 l_accrual_line_num           := NULL;          -- 4262811
96870 l_tmp_amt                    := NULL;          -- 4262811
96872  
96873 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
96874     l_balance_type_code <> 'B' THEN
96875 IF (NVL(p_source_3,'
96876 ') <>  'BALANCING_SEGMENT' AND 
96877 NVL(p_source_3,'
96878 ') <>  'ACCOUNT_SEGMENT_VALUE') AND 
96879 NVL(p_source_135,'
96880 ') <>  'Y'
96881  THEN 
96882 
96883    --
96884    XLA_AE_LINES_PKG.SetNewLine;
96885 
96886    p_balance_type_code          := l_balance_type_code;
96887    -- set the flag so later we will know whether the gain loss line needs to be created
96888    
96889    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
96890      p_actual_flag :='A';
96891    END IF;
96892 
96893    --
96894    -- bulk performance
96895    --
96896    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
96897                                       p_header_num   => 0); -- 4262811
96898    --
96899    -- set accounting line options
96900    --
96901    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
96902            p_natural_side_code          => 'C'
96903          , p_gain_or_loss_flag          => 'N'
96904          , p_gl_transfer_mode_code      => 'S'
96905          , p_acct_entry_type_code       => 'A'
96906          , p_switch_side_flag           => 'Y'
96907          , p_merge_duplicate_code       => 'A'
96908          );
96909    --
96910    l_acc_rev_natural_side_code := 'D';  -- 4262811
96911    -- 
96912    --
96913    -- set accounting line type info
96914    --
96915    xla_ae_lines_pkg.SetAcctLineType
96916       (p_component_type             => l_component_type
96917       ,p_event_type_code            => l_event_type_code
96918       ,p_line_definition_owner_code => l_line_definition_owner_code
96919       ,p_line_definition_code       => l_line_definition_code
96920       ,p_accounting_line_code       => l_component_code
96921       ,p_accounting_line_type_code  => l_component_type_code
96922       ,p_accounting_line_appl_id    => l_component_appl_id
96923       ,p_amb_context_code           => l_amb_context_code
96924       ,p_entity_code                => l_entity_code
96925       ,p_event_class_code           => l_event_class_code);
96926    --
96927    -- set accounting class
96928    --
96929    xla_ae_lines_pkg.SetAcctClass(
96930            p_accounting_class_code  => 'LIABILITY'
96931          , p_ae_header_id           => l_ae_header_id
96932          );
96933 
96934    --
96935    -- set rounding class
96936    --
96937    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
96938                       'LIABILITY';
96939 
96940    --
96941    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
96942    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
96943    --
96944    -- bulk performance
96945    --
96946    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
96947 
96948    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
96949       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
96950 
96951    -- 4955764
96952    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96953       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
96954 
96955    -- 4458381 Public Sector Enh
96956    
96957    --
96958    -- set accounting attributes for the line type
96959    --
96960    l_entered_amt_idx := 23;
96961    l_accted_amt_idx  := 28;
96965    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
96962    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
96963    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
96964    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
96966    l_rec_acct_attrs.array_num_value(2)  := 
96967 xla_ae_sources_pkg.GetSystemSourceNum(
96968    p_source_code           => 'XLA_EVENT_APPL_ID'
96969  , p_source_type_code      => 'Y'
96970  , p_source_application_id =>  602
96971 );
96972    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
96973    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
96974    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
96975    l_rec_acct_attrs.array_char_value(4)  := 
96976 xla_ae_sources_pkg.GetSystemSourceChar(
96977    p_source_code           => 'XLA_ENTITY_CODE'
96978  , p_source_type_code      => 'Y'
96979  , p_source_application_id =>  602
96980 );
96981    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
96982    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
96983    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
96984    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
96985    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
96986    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
96987    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
96988    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
96989    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
96990    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
96991    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
96992    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
96993    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
96994    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
96995    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
96996    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
96997    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
96998    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
96999    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
97000    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
97001    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
97002    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
97003    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
97004    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
97005    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
97006    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
97007    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
97008    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
97009    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
97010    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
97011    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
97012    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
97013    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
97014    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
97015    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
97016    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
97017    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
97018    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
97019    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
97020    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
97021    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
97022    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
97023    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
97024    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
97025    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
97026    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
97027    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
97028    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
97029    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
97030    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
97031    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
97032    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
97033    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
97034    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
97035    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
97036    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
97037    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
97038    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
97039    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
97040    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
97041    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
97045    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
97042    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
97043    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
97044    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
97046    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
97047    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
97048    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
97049    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
97050    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
97051    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
97052    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
97053    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
97054    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
97055    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
97056    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
97057 
97058    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
97059    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
97060 
97061    ---------------------------------------------------------------------------------------------------------------
97062    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
97063    ---------------------------------------------------------------------------------------------------------------
97064    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
97065 
97066    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
97070          (p_source_code         => 'LEDGER_CATEGORY_CODE'
97067    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
97068 
97069    IF xla_accounting_cache_pkg.GetValueChar
97071          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
97072    AND l_bflow_method_code = 'PRIOR_ENTRY'
97073 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
97074    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
97075          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
97076        )
97077    THEN
97078          xla_ae_lines_pkg.BflowUpgEntry
97079            (p_business_method_code    => l_bflow_method_code
97080            ,p_business_class_code     => l_bflow_class_code
97081            ,p_balance_type            => l_balance_type_code);
97082    ELSE
97083       NULL;
97084 -- No business flow processing for business flow method of NONE.
97085    END IF;
97086 
97087    --
97088    -- call analytical criteria
97089    --
97090    
97091    --
97092    -- call description
97093    --
97094    
97095 xla_ae_lines_pkg.SetLineDescription(
97096    p_ae_header_id => l_ae_header_id
97097   ,p_description  => Description_2 (
97098      p_application_id         => p_application_id
97099    , p_ae_header_id           => l_ae_header_id 
97100 , p_source_1 => p_source_1
97101    )
97102 );
97103 
97104 
97105    --
97106    -- call ADRs
97107    -- Bug 4922099
97108    --
97109    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97110         (NVL(l_actual_upg_option, 'N') = 'O') OR
97111         (NVL(l_enc_upg_option, 'N') = 'O')
97112       )
97116    --
97113    THEN
97114    NULL;
97115    --
97117    
97118   l_ccid := AcctDerRule_33(
97119            p_application_id           => p_application_id
97120          , p_ae_header_id             => l_ae_header_id 
97121 , p_source_22 => p_source_22
97122          , x_transaction_coa_id       => l_adr_transaction_coa_id
97123          , x_accounting_coa_id        => l_adr_accounting_coa_id
97124          , x_value_type_code          => l_adr_value_type_code
97125          , p_side                     => 'NA'
97126    );
97127 
97128    xla_ae_lines_pkg.set_ccid(
97129     p_code_combination_id          => l_ccid
97130   , p_value_type_code              => l_adr_value_type_code
97131   , p_transaction_coa_id           => l_adr_transaction_coa_id
97132   , p_accounting_coa_id            => l_adr_accounting_coa_id
97133   , p_adr_code                     => 'AP_LIAB'
97134   , p_adr_type_code                => 'S'
97135   , p_component_type               => l_component_type
97136   , p_component_code               => l_component_code
97137   , p_component_type_code          => l_component_type_code
97138   , p_component_appl_id            => l_component_appl_id
97139   , p_amb_context_code             => l_amb_context_code
97140   , p_side                         => 'NA'
97141   );
97142 
97143 
97144    --
97145    --
97146    END IF;
97147    --
97148    -- Bug 4922099
97149    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
97150           (NVL(l_enc_upg_option, 'N') = 'O')
97151         ) AND
97152         (l_bflow_method_code = 'PRIOR_ENTRY')
97153       )
97154    THEN
97155       IF
97156       --
97157       1 = 2
97158       --
97159       THEN
97160       xla_accounting_err_pkg.build_message
97161                                     (p_appli_s_name            => 'XLA'
97162                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97163                                     ,p_token_1                 => 'LINE_NUMBER'
97164                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
97165                                     ,p_token_2                 => 'LINE_TYPE_NAME'
97166                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
97167                                                                              l_component_type
97168                                                                             ,l_component_code
97169                                                                             ,l_component_type_code
97170                                                                             ,l_component_appl_id
97171                                                                             ,l_amb_context_code
97172                                                                             ,l_entity_code
97173                                                                             ,l_event_class_code
97174                                                                            )
97175                                     ,p_token_3                 => 'OWNER'
97176                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
97177                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
97178                                                                           ,p_lookup_code    => l_component_type_code
97179                                                                          )
97180                                     ,p_token_4                 => 'PRODUCT_NAME'
97181                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
97182                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
97183                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
97184                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
97185                                     ,p_ae_header_id            =>  NULL
97186                                        );
97187 
97188         IF (C_LEVEL_ERROR>= g_log_level) THEN
97189                  trace
97190                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97191                       ,p_level    => C_LEVEL_ERROR
97192                       ,p_module   => l_log_module);
97193         END IF;
97194       END IF;
97195    END IF;
97196    --
97197    --
97198    ------------------------------------------------------------------------------------------------
97199    -- 4219869 Business Flow
97200    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
97201    -- Prior Entry.  Currently, the following code is always generated.
97202    ------------------------------------------------------------------------------------------------
97203    XLA_AE_LINES_PKG.ValidateCurrentLine;
97204 
97208    ------------------------------------------------------------------------------------
97205    ------------------------------------------------------------------------------------
97206    -- 4219869 Business Flow
97207    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
97209    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97210 
97211    ----------------------------------------------------------------------------------
97212    -- 4219869 Business Flow
97213    -- Update journal entry status -- Need to generate this within IF <condition>
97214    ----------------------------------------------------------------------------------
97215    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97216          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
97217          ,p_balance_type_code => l_balance_type_code
97218          );
97219 
97220    -------------------------------------------------------------------------------------------
97221    -- 4262811 - Generate the Accrual Reversal lines
97222    -------------------------------------------------------------------------------------------
97223    BEGIN
97224       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
97225                               (g_array_event(p_event_id).array_value_num('header_index'));
97226       IF l_acc_rev_flag IS NULL THEN
97227          l_acc_rev_flag := 'N';
97228       END IF;
97229    EXCEPTION
97230       WHEN OTHERS THEN
97231          l_acc_rev_flag := 'N';
97232    END;
97233    --
97234    IF (l_acc_rev_flag = 'Y') THEN
97235 
97236        -- 4645092  ------------------------------------------------------------------------------
97237        -- To allow MPA report to determine if it should generate report process
97238        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
97239        ------------------------------------------------------------------------------------------
97240 
97241        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
97242        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
97243    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
97244    -- call ADRs
97245    -- Bug 4922099
97246    --
97247    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97248         (NVL(l_actual_upg_option, 'N') = 'O') OR
97249         (NVL(l_enc_upg_option, 'N') = 'O')
97250       )
97251    THEN
97252    NULL;
97253    --
97254    --
97255    
97256   l_ccid := AcctDerRule_33(
97257            p_application_id           => p_application_id
97258          , p_ae_header_id             => l_ae_header_id 
97259 , p_source_22 => p_source_22
97260          , x_transaction_coa_id       => l_adr_transaction_coa_id
97261          , x_accounting_coa_id        => l_adr_accounting_coa_id
97262          , x_value_type_code          => l_adr_value_type_code
97263          , p_side                     => 'NA'
97264    );
97265 
97266    xla_ae_lines_pkg.set_ccid(
97267     p_code_combination_id          => l_ccid
97268   , p_value_type_code              => l_adr_value_type_code
97269   , p_transaction_coa_id           => l_adr_transaction_coa_id
97273   , p_component_type               => l_component_type
97270   , p_accounting_coa_id            => l_adr_accounting_coa_id
97271   , p_adr_code                     => 'AP_LIAB'
97272   , p_adr_type_code                => 'S'
97274   , p_component_code               => l_component_code
97275   , p_component_type_code          => l_component_type_code
97276   , p_component_appl_id            => l_component_appl_id
97277   , p_amb_context_code             => l_amb_context_code
97278   , p_side                         => 'NA'
97279   );
97280 
97281 
97282    --
97283    --
97284    END IF;
97285 
97286        --
97287        -- Update the line information that should be overwritten
97288        --
97289        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
97290                                          p_header_num   => 1);
97291        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
97292 
97293        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
97294 
97295        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
97296           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
97297        END IF;
97298 
97299       --
97300       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
97301       --
97302       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
97303           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
97304       ELSE
97305           ---------------------------------------------------------------------------------------------------
97306           -- 4262811a Switch Sign
97307           ---------------------------------------------------------------------------------------------------
97308           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
97309           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
97310                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97311           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
97312                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97313           -- 5132302
97314           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
97315                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97316 
97317       END IF;
97318 
97319       -- 4955764
97320       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
97321       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
97322 
97323 
97324       XLA_AE_LINES_PKG.ValidateCurrentLine;
97325       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97326 
97327       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97328                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
97329                ,p_balance_type_code => l_balance_type_code);
97330 
97331    END IF;
97332 
97333    -----------------------------------------------------------------------------------------
97334    -- 4262811 Multiperiod Accounting
97335    -----------------------------------------------------------------------------------------
97336      -- No MPA option is assigned.
97337 
97338 
97339 END IF;
97340 END IF;
97341 --
97342 
97346       (p_msg      => 'END of AcctLineType_171'
97343 --
97344 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97345    trace
97347       ,p_level    => C_LEVEL_PROCEDURE
97348       ,p_module   => l_log_module);
97349 END IF;
97350 --
97351 EXCEPTION
97352   WHEN xla_exceptions_pkg.application_exception THEN
97353       RAISE;
97354   WHEN OTHERS THEN
97358 --
97355        xla_exceptions_pkg.raise_message
97356            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_171');
97357 END AcctLineType_171;
97359 
97360 ---------------------------------------
97361 --
97362 -- PRIVATE FUNCTION
97363 --         AcctLineType_172
97364 --
97365 ---------------------------------------
97366 PROCEDURE AcctLineType_172 (
97367   p_application_id        IN NUMBER
97368  ,p_event_id              IN NUMBER
97369  ,p_calculate_acctd_flag  IN VARCHAR2
97370  ,p_calculate_g_l_flag    IN VARCHAR2
97371  ,p_actual_flag           IN OUT VARCHAR2
97372  ,p_balance_type_code     OUT VARCHAR2
97373  ,p_gain_or_loss_ref      OUT VARCHAR2
97374  
97375 --Invoice Distribution Description
97376  , p_source_1            IN VARCHAR2
97377 --Automatic Offsets Value
97378  , p_source_3            IN VARCHAR2
97379  , p_source_3_meaning    IN VARCHAR2
97380 --Invoice Distribution Ledger Amount
97381  , p_source_9            IN NUMBER
97382 --Invoice Liability Account
97383  , p_source_22            IN NUMBER
97384 --Accounting Reversal Indicator
97385  , p_source_41            IN VARCHAR2
97386 --Distribution Link Type
97387  , p_source_43            IN VARCHAR2
97388 --Allocation to Main Distribution Identifier
97389  , p_source_45            IN NUMBER
97390 --Invoice Identifier
97391  , p_source_46            IN NUMBER
97392 --Invoice Distribution Identifier
97393  , p_source_52            IN NUMBER
97394 --Payables Encumbrance Upgrade Credit Account
97395  , p_source_53            IN NUMBER
97396 --Payables Encumbrance Upgrade Credit Amount
97397  , p_source_54            IN NUMBER
97398 --Invoice Currency Code
97399  , p_source_55            IN VARCHAR2
97400 --Payables Encumbrance Upgrade Credit Base Amount
97401  , p_source_56            IN NUMBER
97402 --Payables Encumbrance Upgrade Debit Account
97403  , p_source_57            IN NUMBER
97404 --Payables Encumbrance Upgrade Debit Amount
97405  , p_source_58            IN NUMBER
97406 --Payables Encumbrance Upgrade Debit Base Amount
97407  , p_source_59            IN NUMBER
97408 --Payables Encumbrance Upgrade Option
97409  , p_source_60            IN VARCHAR2
97410 --Invoice Distribution Amount
97411  , p_source_61            IN NUMBER
97412 --Deferred Accounting End Date
97413  , p_source_65            IN DATE
97414 --Deferred Accounting Option
97415  , p_source_66            IN VARCHAR2
97416 --Deferred Accounting Start Date
97417  , p_source_67            IN DATE
97418 --Override Accounted Amount Indicator
97419  , p_source_68            IN VARCHAR2
97420  , p_source_68_meaning    IN VARCHAR2
97421 --Invoice Supplier Identifier
97422  , p_source_69            IN NUMBER
97423 --Invoice Supplier Site Identifier
97424  , p_source_70            IN NUMBER
97425 --Third Party Type
97426  , p_source_71            IN VARCHAR2
97427 --Parent Reversal Identifier
97428  , p_source_72            IN NUMBER
97429 --Invoice Distribution Tax Line Identifier
97430  , p_source_74            IN NUMBER
97431 --Invoice Distribution Tax Distribution Identifier from Tax
97432  , p_source_75            IN NUMBER
97433 --Invoice Distribution Summary Tax Line Identifier
97434  , p_source_76            IN NUMBER
97435 --Payables Upgrade Credit Encumbrance Type Identifier
97436  , p_source_77            IN NUMBER
97437 --Payables Upgrade Debit Encumbrance Type Identifier
97438  , p_source_78            IN NUMBER
97439 --Business Flow Accounts Payable Application Identifier
97440  , p_source_79            IN NUMBER
97441 --Business Flow Invoice Distribution Type
97442  , p_source_80            IN VARCHAR2
97443 --Business Flow Invoice Entity Code
97444  , p_source_81            IN VARCHAR2
97445 --Business Flow Invoice Distribution Identifier
97446  , p_source_82            IN NUMBER
97447 --Business Flow Invoice Identifier
97448  , p_source_83            IN NUMBER
97449 --Self-Assessed Tax Flag
97450  , p_source_135            IN VARCHAR2
97451  , p_source_135_meaning    IN VARCHAR2
97452 --Invoice Exchange Date
97453  , p_source_136            IN DATE
97454 --Invoice Exchange Rate
97455  , p_source_137            IN NUMBER
97456 --Invoice Exchange Rate Type
97457  , p_source_138            IN VARCHAR2
97458 )
97459 IS
97460 
97461 l_component_type              VARCHAR2(80);
97462 l_component_code              VARCHAR2(30);
97463 l_component_type_code         VARCHAR2(1);
97464 l_component_appl_id           INTEGER;
97465 l_amb_context_code            VARCHAR2(30);
97466 l_entity_code                 VARCHAR2(30);
97467 l_event_class_code            VARCHAR2(30);
97468 l_ae_header_id                NUMBER;
97469 l_event_type_code             VARCHAR2(30);
97470 l_line_definition_code        VARCHAR2(30);
97471 l_line_definition_owner_code  VARCHAR2(1);
97472 --
97473 -- adr variables
97474 l_segment                     VARCHAR2(30);
97475 l_ccid                        NUMBER;
97476 l_adr_transaction_coa_id      NUMBER;
97477 l_adr_accounting_coa_id       NUMBER;
97478 l_adr_flexfield_segment_code  VARCHAR2(30);
97479 l_adr_flex_value_set_id       NUMBER;
97480 l_adr_value_type_code         VARCHAR2(30);
97481 l_adr_value_combination_id    NUMBER;
97482 l_adr_value_segment_code      VARCHAR2(30);
97483 
97484 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
97485 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
97486 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
97487 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
97488 
97489 -- 4262811 Variables ------------------------------------------------------------------------------------------
97490 l_entered_amt_idx             NUMBER;
97491 l_accted_amt_idx              NUMBER;
97495 l_acc_rev_natural_side_code   VARCHAR2(1);
97492 l_acc_rev_flag                VARCHAR2(1);
97493 l_accrual_line_num            NUMBER;
97494 l_tmp_amt                     NUMBER;
97496 
97497 l_num_entries                 NUMBER;
97498 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
97499 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
97500 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
97504 
97501 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
97502 l_recog_line_1                NUMBER;
97503 l_recog_line_2                NUMBER;
97505 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
97506 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
97507 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
97508 
97509 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
97510 
97511 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
97512 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
97513 
97514 ---------------------------------------------------------------------------------------------------------------
97515 
97516 
97517 --
97518 -- bulk performance
97519 --
97520 l_balance_type_code           VARCHAR2(1);
97521 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
97522 l_log_module                  VARCHAR2(240);
97523 
97524 --
97525 -- Upgrade strategy
97526 --
97527 l_actual_upg_option           VARCHAR2(1);
97528 l_enc_upg_option           VARCHAR2(1);
97529 
97530 --
97531 BEGIN
97532 --
97533 IF g_log_enabled THEN
97534       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_172';
97535 END IF;
97536 --
97537 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97538 
97539       trace
97540          (p_msg      => 'BEGIN of AcctLineType_172'
97541          ,p_level    => C_LEVEL_PROCEDURE
97542          ,p_module   => l_log_module);
97543 
97544 END IF;
97545 --
97546 l_component_type             := 'AMB_JLT';
97547 l_component_code             := 'AP_LIAB_DM_AOS_AS';
97548 l_component_type_code        := 'S';
97549 l_component_appl_id          :=  200;
97550 l_amb_context_code           := 'DEFAULT';
97551 l_entity_code                := 'AP_INVOICES';
97552 l_event_class_code           := 'DEBIT MEMOS';
97553 l_event_type_code            := 'DEBIT MEMOS_ALL';
97554 l_line_definition_owner_code := 'S';
97555 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
97556 --
97557 l_balance_type_code          := 'A';
97558 l_segment                     := NULL;
97559 l_ccid                        := NULL;
97560 l_adr_transaction_coa_id      := NULL;
97561 l_adr_accounting_coa_id       := NULL;
97562 l_adr_flexfield_segment_code  := NULL;
97563 l_adr_flex_value_set_id       := NULL;
97564 l_adr_value_type_code         := NULL;
97565 l_adr_value_combination_id    := NULL;
97566 l_adr_value_segment_code      := NULL;
97567 
97568 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
97569 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
97570 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
97571 l_budgetary_control_flag     := 'N';
97572 
97573 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
97574 l_bflow_applied_to_amt       := NULL; -- 5132302
97575 l_entered_amt_idx            := NULL;          -- 4262811
97576 l_accted_amt_idx             := NULL;          -- 4262811
97577 l_acc_rev_flag               := NULL;          -- 4262811
97578 l_accrual_line_num           := NULL;          -- 4262811
97579 l_tmp_amt                    := NULL;          -- 4262811
97580 --
97581  
97582 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
97583     l_balance_type_code <> 'B' THEN
97584 IF NVL(p_source_3,'
97585 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
97589 
97586 NVL(p_source_135,'
97587 ') <>  'Y'
97588  THEN 
97590    --
97591    XLA_AE_LINES_PKG.SetNewLine;
97592 
97593    p_balance_type_code          := l_balance_type_code;
97594    -- set the flag so later we will know whether the gain loss line needs to be created
97595    
97596    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
97597      p_actual_flag :='A';
97598    END IF;
97599 
97600    --
97601    -- bulk performance
97602    --
97603    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
97604                                       p_header_num   => 0); -- 4262811
97605    --
97606    -- set accounting line options
97607    --
97608    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
97609            p_natural_side_code          => 'C'
97610          , p_gain_or_loss_flag          => 'N'
97611          , p_gl_transfer_mode_code      => 'S'
97612          , p_acct_entry_type_code       => 'A'
97613          , p_switch_side_flag           => 'Y'
97614          , p_merge_duplicate_code       => 'A'
97615          );
97616    --
97617    l_acc_rev_natural_side_code := 'D';  -- 4262811
97618    -- 
97619    --
97620    -- set accounting line type info
97621    --
97622    xla_ae_lines_pkg.SetAcctLineType
97623       (p_component_type             => l_component_type
97624       ,p_event_type_code            => l_event_type_code
97625       ,p_line_definition_owner_code => l_line_definition_owner_code
97626       ,p_line_definition_code       => l_line_definition_code
97627       ,p_accounting_line_code       => l_component_code
97628       ,p_accounting_line_type_code  => l_component_type_code
97629       ,p_accounting_line_appl_id    => l_component_appl_id
97630       ,p_amb_context_code           => l_amb_context_code
97631       ,p_entity_code                => l_entity_code
97632       ,p_event_class_code           => l_event_class_code);
97633    --
97634    -- set accounting class
97635    --
97636    xla_ae_lines_pkg.SetAcctClass(
97637            p_accounting_class_code  => 'LIABILITY'
97638          , p_ae_header_id           => l_ae_header_id
97639          );
97640 
97641    --
97642    -- set rounding class
97643    --
97644    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
97645                       'LIABILITY';
97646 
97647    --
97648    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
97649    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
97650    --
97651    -- bulk performance
97652    --
97653    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
97654 
97655    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
97656       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
97657 
97658    -- 4955764
97659    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
97663    
97660       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
97661 
97662    -- 4458381 Public Sector Enh
97664    --
97665    -- set accounting attributes for the line type
97666    --
97667    l_entered_amt_idx := 23;
97668    l_accted_amt_idx  := 28;
97669    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
97670    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
97671    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
97672    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
97673    l_rec_acct_attrs.array_num_value(2)  := 
97677  , p_source_application_id =>  602
97674 xla_ae_sources_pkg.GetSystemSourceNum(
97675    p_source_code           => 'XLA_EVENT_APPL_ID'
97676  , p_source_type_code      => 'Y'
97678 );
97679    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
97680    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
97681    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
97682    l_rec_acct_attrs.array_char_value(4)  := 
97683 xla_ae_sources_pkg.GetSystemSourceChar(
97684    p_source_code           => 'XLA_ENTITY_CODE'
97685  , p_source_type_code      => 'Y'
97686  , p_source_application_id =>  602
97687 );
97688    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
97689    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
97690    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
97691    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
97692    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
97693    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
97694    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
97695    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
97696    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
97697    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
97698    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
97699    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
97700    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
97701    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
97702    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
97703    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
97704    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
97705    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
97706    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
97707    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
97708    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
97709    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
97710    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
97711    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
97712    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
97713    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
97714    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
97715    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
97716    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
97717    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
97718    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
97719    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
97720    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
97721    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
97722    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
97723    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
97724    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
97725    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
97726    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
97727    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
97728    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
97729    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
97730    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
97731    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
97732    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
97733    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
97734    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
97735    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
97736    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
97737    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
97738    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
97739    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
97740    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
97741    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
97742    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
97743    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
97744    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
97745    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
97746    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
97747    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
97748    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
97749    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
97750    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
97751    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
97752    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
97753    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
97754    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
97755    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
97756    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
97757    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
97758    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
97759    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
97760    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
97761    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
97762    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
97763    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
97764 
97765    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
97766    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
97772 
97767 
97768    ---------------------------------------------------------------------------------------------------------------
97769    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
97770    ---------------------------------------------------------------------------------------------------------------
97771    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
97773    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
97774    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
97775 
97776    IF xla_accounting_cache_pkg.GetValueChar
97777          (p_source_code         => 'LEDGER_CATEGORY_CODE'
97778          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
97779    AND l_bflow_method_code = 'PRIOR_ENTRY'
97780 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
97781    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
97782          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
97783        )
97784    THEN
97785          xla_ae_lines_pkg.BflowUpgEntry
97786            (p_business_method_code    => l_bflow_method_code
97787            ,p_business_class_code     => l_bflow_class_code
97788            ,p_balance_type            => l_balance_type_code);
97789    ELSE
97790       NULL;
97791 XLA_AE_LINES_PKG.business_flow_validation(
97792                                 p_business_method_code     => l_bflow_method_code
97793                                ,p_business_class_code      => l_bflow_class_code
97794                                ,p_inherit_description_flag => l_inherit_desc_flag);
97795    END IF;
97796 
97797    --
97798    -- call analytical criteria
97799    --
97800    
97801    --
97802    -- call description
97803    --
97804    
97805 xla_ae_lines_pkg.SetLineDescription(
97806    p_ae_header_id => l_ae_header_id
97807   ,p_description  => Description_2 (
97808      p_application_id         => p_application_id
97809    , p_ae_header_id           => l_ae_header_id 
97810 , p_source_1 => p_source_1
97811    )
97812 );
97813 
97814 
97815    --
97816    -- call ADRs
97817    -- Bug 4922099
97818    --
97819    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97820         (NVL(l_actual_upg_option, 'N') = 'O') OR
97821         (NVL(l_enc_upg_option, 'N') = 'O')
97822       )
97823    THEN
97824    NULL;
97825    --
97826    --
97827    
97828    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
97829      p_code_combination_id      => TO_NUMBER(C_NUM)
97830    , p_value_type_code          => NULL
97831    , p_transaction_coa_id       => null
97832    , p_accounting_coa_id        => null
97833    , p_adr_code                 => NULL
97834    , p_adr_type_code            => NULL
97835    , p_component_type           => l_component_type
97836    , p_component_code           => l_component_code
97837    , p_component_type_code      => l_component_type_code
97838    , p_component_appl_id        => l_component_appl_id
97839    , p_amb_context_code         => l_amb_context_code
97840    , p_side                     => NULL
97841    );
97842 
97843    
97844   -- initialise segments
97845   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
97846   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
97847   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
97848   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
97849   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
97850   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
97854   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97851   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
97852   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
97853   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
97855   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97856   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97857   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97858   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97859   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97860   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97861   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97862   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97863   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97864   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97865   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97866   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97867   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97868   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97869   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97870   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97871   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97872   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97873   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97874   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
97875   --
97876 
97877    --
97878 
97879 
97880    l_segment := AcctDerRule_14(
97881            p_application_id           => p_application_id
97882          , p_ae_header_id             => l_ae_header_id 
97883 , p_source_22 => p_source_22
97884          , x_transaction_coa_id       => l_adr_transaction_coa_id
97885          , x_accounting_coa_id        => l_adr_accounting_coa_id
97886          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97887          , x_flex_value_set_id        => l_adr_flex_value_set_id
97888          , x_value_type_code          => l_adr_value_type_code
97889          , x_value_combination_id     => l_adr_value_combination_id
97890          , x_value_segment_code       => l_adr_value_segment_code
97891          , p_side                     => 'NA'
97892          , p_override_seg_flag        => 'Y'
97893    );
97894 
97895    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97896 
97897       xla_ae_lines_pkg.set_segment(
97898           p_to_segment_code         => 'GL_ACCOUNT'
97902         , p_value_type_code         => l_adr_value_type_code
97899         , p_segment_value           => l_segment
97900         , p_from_segment_code       => l_adr_value_segment_code
97901         , p_from_combination_id     => l_adr_value_combination_id
97903         , p_transaction_coa_id      => l_adr_transaction_coa_id
97904         , p_accounting_coa_id       => l_adr_accounting_coa_id
97905         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97906         , p_flex_value_set_id       => l_adr_flex_value_set_id
97907         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
97908         , p_adr_type_code           => 'S'
97909         , p_component_type          => l_component_type
97910         , p_component_code          => l_component_code
97911         , p_component_type_code     => l_component_type_code
97912         , p_component_appl_id       => l_component_appl_id
97913         , p_amb_context_code        => l_amb_context_code
97914         , p_entity_code             => 'AP_INVOICES'
97915         , p_event_class_code        => 'DEBIT MEMOS'
97919   END IF;
97916         , p_side                    => 'NA'
97917         );
97918 
97920 
97921    --
97922    --
97923    END IF;
97924    --
97925    -- Bug 4922099
97926    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
97927           (NVL(l_enc_upg_option, 'N') = 'O')
97928         ) AND
97929         (l_bflow_method_code = 'PRIOR_ENTRY')
97930       )
97931    THEN
97932       IF
97933       --
97934       1 = 2
97935       --
97936       THEN
97937       xla_accounting_err_pkg.build_message
97938                                     (p_appli_s_name            => 'XLA'
97939                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97940                                     ,p_token_1                 => 'LINE_NUMBER'
97941                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
97942                                     ,p_token_2                 => 'LINE_TYPE_NAME'
97943                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
97944                                                                              l_component_type
97945                                                                             ,l_component_code
97946                                                                             ,l_component_type_code
97947                                                                             ,l_component_appl_id
97948                                                                             ,l_amb_context_code
97949                                                                             ,l_entity_code
97950                                                                             ,l_event_class_code
97951                                                                            )
97952                                     ,p_token_3                 => 'OWNER'
97953                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
97954                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
97955                                                                           ,p_lookup_code    => l_component_type_code
97956                                                                          )
97957                                     ,p_token_4                 => 'PRODUCT_NAME'
97958                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
97959                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
97960                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
97961                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
97962                                     ,p_ae_header_id            =>  NULL
97963                                        );
97964 
97965         IF (C_LEVEL_ERROR>= g_log_level) THEN
97966                  trace
97967                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97968                       ,p_level    => C_LEVEL_ERROR
97969                       ,p_module   => l_log_module);
97970         END IF;
97971       END IF;
97972    END IF;
97973    --
97974    --
97975    ------------------------------------------------------------------------------------------------
97976    -- 4219869 Business Flow
97977    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
97978    -- Prior Entry.  Currently, the following code is always generated.
97979    ------------------------------------------------------------------------------------------------
97980    XLA_AE_LINES_PKG.ValidateCurrentLine;
97981 
97982    ------------------------------------------------------------------------------------
97983    -- 4219869 Business Flow
97984    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
97985    ------------------------------------------------------------------------------------
97986    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97987 
97988    ----------------------------------------------------------------------------------
97989    -- 4219869 Business Flow
97990    -- Update journal entry status -- Need to generate this within IF <condition>
97991    ----------------------------------------------------------------------------------
97992    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97993          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
97994          ,p_balance_type_code => l_balance_type_code
97995          );
97996 
97997    -------------------------------------------------------------------------------------------
97998    -- 4262811 - Generate the Accrual Reversal lines
97999    -------------------------------------------------------------------------------------------
98000    BEGIN
98001       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
98002                               (g_array_event(p_event_id).array_value_num('header_index'));
98003       IF l_acc_rev_flag IS NULL THEN
98004          l_acc_rev_flag := 'N';
98005       END IF;
98006    EXCEPTION
98007       WHEN OTHERS THEN
98008          l_acc_rev_flag := 'N';
98009    END;
98010    --
98011    IF (l_acc_rev_flag = 'Y') THEN
98012 
98013        -- 4645092  ------------------------------------------------------------------------------
98014        -- To allow MPA report to determine if it should generate report process
98015        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
98016        ------------------------------------------------------------------------------------------
98017 
98018        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
98019        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
98023    --
98020    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
98021    -- call ADRs
98022    -- Bug 4922099
98024    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98025         (NVL(l_actual_upg_option, 'N') = 'O') OR
98026         (NVL(l_enc_upg_option, 'N') = 'O')
98027       )
98028    THEN
98029    NULL;
98030    --
98031    --
98032    
98033    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
98034      p_code_combination_id      => TO_NUMBER(C_NUM)
98035    , p_value_type_code          => NULL
98036    , p_transaction_coa_id       => null
98037    , p_accounting_coa_id        => null
98038    , p_adr_code                 => NULL
98039    , p_adr_type_code            => NULL
98040    , p_component_type           => l_component_type
98041    , p_component_code           => l_component_code
98042    , p_component_type_code      => l_component_type_code
98043    , p_component_appl_id        => l_component_appl_id
98044    , p_amb_context_code         => l_amb_context_code
98045    , p_side                     => NULL
98046    );
98047 
98048    
98049   -- initialise segments
98050   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
98051   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
98052   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
98053   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
98054   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
98055   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
98056   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
98057   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
98058   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
98059   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98060   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98061   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98062   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98063   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98064   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98065   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98066   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98067   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98068   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98069   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98070   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98071   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98072   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98073   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98074   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98075   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98076   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98077   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98078   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98079   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
98080   --
98081 
98082    --
98083 
98084 
98085    l_segment := AcctDerRule_14(
98086            p_application_id           => p_application_id
98087          , p_ae_header_id             => l_ae_header_id 
98088 , p_source_22 => p_source_22
98089          , x_transaction_coa_id       => l_adr_transaction_coa_id
98090          , x_accounting_coa_id        => l_adr_accounting_coa_id
98091          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
98092          , x_flex_value_set_id        => l_adr_flex_value_set_id
98093          , x_value_type_code          => l_adr_value_type_code
98094          , x_value_combination_id     => l_adr_value_combination_id
98095          , x_value_segment_code       => l_adr_value_segment_code
98096          , p_side                     => 'NA'
98097          , p_override_seg_flag        => 'Y'
98098    );
98099 
98100    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
98101 
98102       xla_ae_lines_pkg.set_segment(
98103           p_to_segment_code         => 'GL_ACCOUNT'
98104         , p_segment_value           => l_segment
98105         , p_from_segment_code       => l_adr_value_segment_code
98106         , p_from_combination_id     => l_adr_value_combination_id
98107         , p_value_type_code         => l_adr_value_type_code
98108         , p_transaction_coa_id      => l_adr_transaction_coa_id
98109         , p_accounting_coa_id       => l_adr_accounting_coa_id
98110         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
98111         , p_flex_value_set_id       => l_adr_flex_value_set_id
98112         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
98113         , p_adr_type_code           => 'S'
98114         , p_component_type          => l_component_type
98115         , p_component_code          => l_component_code
98116         , p_component_type_code     => l_component_type_code
98117         , p_component_appl_id       => l_component_appl_id
98118         , p_amb_context_code        => l_amb_context_code
98119         , p_entity_code             => 'AP_INVOICES'
98120         , p_event_class_code        => 'DEBIT MEMOS'
98124   END IF;
98121         , p_side                    => 'NA'
98122         );
98123 
98125 
98126    --
98127    --
98128    END IF;
98129 
98130        --
98131        -- Update the line information that should be overwritten
98132        --
98133        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
98134                                          p_header_num   => 1);
98135        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
98136 
98137        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
98138 
98139        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
98143       --
98140           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
98141        END IF;
98142 
98144       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
98145       --
98146       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
98147           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
98148       ELSE
98149           ---------------------------------------------------------------------------------------------------
98150           -- 4262811a Switch Sign
98151           ---------------------------------------------------------------------------------------------------
98152           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
98153           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98154                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98155           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98156                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98157           -- 5132302
98158           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
98159                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98160 
98161       END IF;
98162 
98163       -- 4955764
98164       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98165       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
98166 
98167 
98168       XLA_AE_LINES_PKG.ValidateCurrentLine;
98169       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98170 
98171       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98172                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
98173                ,p_balance_type_code => l_balance_type_code);
98174 
98175    END IF;
98176 
98177    -----------------------------------------------------------------------------------------
98178    -- 4262811 Multiperiod Accounting
98182 
98179    -----------------------------------------------------------------------------------------
98180      -- No MPA option is assigned.
98181 
98183 END IF;
98184 END IF;
98185 --
98186 
98187 --
98188 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98189    trace
98190       (p_msg      => 'END of AcctLineType_172'
98191       ,p_level    => C_LEVEL_PROCEDURE
98192       ,p_module   => l_log_module);
98193 END IF;
98194 --
98195 EXCEPTION
98196   WHEN xla_exceptions_pkg.application_exception THEN
98197       RAISE;
98198   WHEN OTHERS THEN
98199        xla_exceptions_pkg.raise_message
98200            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_172');
98201 END AcctLineType_172;
98202 --
98203 
98204 ---------------------------------------
98205 --
98206 -- PRIVATE FUNCTION
98207 --         AcctLineType_173
98208 --
98209 ---------------------------------------
98210 PROCEDURE AcctLineType_173 (
98211   p_application_id        IN NUMBER
98212  ,p_event_id              IN NUMBER
98213  ,p_calculate_acctd_flag  IN VARCHAR2
98214  ,p_calculate_g_l_flag    IN VARCHAR2
98215  ,p_actual_flag           IN OUT VARCHAR2
98216  ,p_balance_type_code     OUT VARCHAR2
98217  ,p_gain_or_loss_ref      OUT VARCHAR2
98218  
98219 --Invoice Distribution Description
98220  , p_source_1            IN VARCHAR2
98221 --Automatic Offsets Value
98222  , p_source_3            IN VARCHAR2
98223  , p_source_3_meaning    IN VARCHAR2
98224 --Invoice Distribution Ledger Amount
98225  , p_source_9            IN NUMBER
98226 --Invoice Liability Account
98227  , p_source_22            IN NUMBER
98228 --Accounting Reversal Indicator
98229  , p_source_41            IN VARCHAR2
98230 --Distribution Link Type
98231  , p_source_43            IN VARCHAR2
98232 --Allocation to Main Distribution Identifier
98233  , p_source_45            IN NUMBER
98234 --Invoice Identifier
98235  , p_source_46            IN NUMBER
98236 --Invoice Distribution Identifier
98237  , p_source_52            IN NUMBER
98238 --Payables Encumbrance Upgrade Credit Account
98239  , p_source_53            IN NUMBER
98240 --Payables Encumbrance Upgrade Credit Amount
98241  , p_source_54            IN NUMBER
98242 --Invoice Currency Code
98243  , p_source_55            IN VARCHAR2
98244 --Payables Encumbrance Upgrade Credit Base Amount
98245  , p_source_56            IN NUMBER
98246 --Payables Encumbrance Upgrade Debit Account
98247  , p_source_57            IN NUMBER
98248 --Payables Encumbrance Upgrade Debit Amount
98249  , p_source_58            IN NUMBER
98250 --Payables Encumbrance Upgrade Debit Base Amount
98251  , p_source_59            IN NUMBER
98252 --Payables Encumbrance Upgrade Option
98253  , p_source_60            IN VARCHAR2
98254 --Invoice Distribution Amount
98255  , p_source_61            IN NUMBER
98256 --Deferred Accounting End Date
98257  , p_source_65            IN DATE
98258 --Deferred Accounting Option
98259  , p_source_66            IN VARCHAR2
98260 --Deferred Accounting Start Date
98261  , p_source_67            IN DATE
98262 --Override Accounted Amount Indicator
98263  , p_source_68            IN VARCHAR2
98264  , p_source_68_meaning    IN VARCHAR2
98265 --Invoice Supplier Identifier
98266  , p_source_69            IN NUMBER
98267 --Invoice Supplier Site Identifier
98268  , p_source_70            IN NUMBER
98269 --Third Party Type
98270  , p_source_71            IN VARCHAR2
98271 --Parent Reversal Identifier
98272  , p_source_72            IN NUMBER
98273 --Invoice Distribution Tax Line Identifier
98274  , p_source_74            IN NUMBER
98275 --Invoice Distribution Tax Distribution Identifier from Tax
98276  , p_source_75            IN NUMBER
98277 --Invoice Distribution Summary Tax Line Identifier
98278  , p_source_76            IN NUMBER
98279 --Payables Upgrade Credit Encumbrance Type Identifier
98280  , p_source_77            IN NUMBER
98281 --Payables Upgrade Debit Encumbrance Type Identifier
98282  , p_source_78            IN NUMBER
98283 --Business Flow Accounts Payable Application Identifier
98284  , p_source_79            IN NUMBER
98285 --Business Flow Invoice Distribution Type
98286  , p_source_80            IN VARCHAR2
98287 --Business Flow Invoice Entity Code
98288  , p_source_81            IN VARCHAR2
98289 --Business Flow Invoice Distribution Identifier
98290  , p_source_82            IN NUMBER
98291 --Business Flow Invoice Identifier
98295  , p_source_135_meaning    IN VARCHAR2
98292  , p_source_83            IN NUMBER
98293 --Self-Assessed Tax Flag
98294  , p_source_135            IN VARCHAR2
98296 --Invoice Exchange Date
98297  , p_source_136            IN DATE
98298 --Invoice Exchange Rate
98299  , p_source_137            IN NUMBER
98300 --Invoice Exchange Rate Type
98301  , p_source_138            IN VARCHAR2
98302 )
98303 IS
98304 
98305 l_component_type              VARCHAR2(80);
98306 l_component_code              VARCHAR2(30);
98307 l_component_type_code         VARCHAR2(1);
98308 l_component_appl_id           INTEGER;
98309 l_amb_context_code            VARCHAR2(30);
98310 l_entity_code                 VARCHAR2(30);
98311 l_event_class_code            VARCHAR2(30);
98312 l_ae_header_id                NUMBER;
98313 l_event_type_code             VARCHAR2(30);
98314 l_line_definition_code        VARCHAR2(30);
98315 l_line_definition_owner_code  VARCHAR2(1);
98316 --
98317 -- adr variables
98318 l_segment                     VARCHAR2(30);
98319 l_ccid                        NUMBER;
98320 l_adr_transaction_coa_id      NUMBER;
98321 l_adr_accounting_coa_id       NUMBER;
98322 l_adr_flexfield_segment_code  VARCHAR2(30);
98323 l_adr_flex_value_set_id       NUMBER;
98324 l_adr_value_type_code         VARCHAR2(30);
98325 l_adr_value_combination_id    NUMBER;
98326 l_adr_value_segment_code      VARCHAR2(30);
98327 
98328 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
98329 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
98330 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
98331 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
98332 
98333 -- 4262811 Variables ------------------------------------------------------------------------------------------
98334 l_entered_amt_idx             NUMBER;
98335 l_accted_amt_idx              NUMBER;
98336 l_acc_rev_flag                VARCHAR2(1);
98337 l_accrual_line_num            NUMBER;
98338 l_tmp_amt                     NUMBER;
98339 l_acc_rev_natural_side_code   VARCHAR2(1);
98340 
98341 l_num_entries                 NUMBER;
98342 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
98343 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
98344 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
98345 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
98346 l_recog_line_1                NUMBER;
98347 l_recog_line_2                NUMBER;
98348 
98349 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
98350 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
98351 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
98352 
98353 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
98354 
98355 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
98356 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
98357 
98358 ---------------------------------------------------------------------------------------------------------------
98359 
98360 
98361 --
98362 -- bulk performance
98363 --
98364 l_balance_type_code           VARCHAR2(1);
98365 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
98366 l_log_module                  VARCHAR2(240);
98367 
98368 --
98369 -- Upgrade strategy
98370 --
98371 l_actual_upg_option           VARCHAR2(1);
98372 l_enc_upg_option           VARCHAR2(1);
98373 
98374 --
98375 BEGIN
98376 --
98377 IF g_log_enabled THEN
98378       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_173';
98379 END IF;
98380 --
98381 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98382 
98383       trace
98384          (p_msg      => 'BEGIN of AcctLineType_173'
98385          ,p_level    => C_LEVEL_PROCEDURE
98386          ,p_module   => l_log_module);
98387 
98388 END IF;
98389 --
98390 l_component_type             := 'AMB_JLT';
98391 l_component_code             := 'AP_LIAB_DM_AOS_BS';
98392 l_component_type_code        := 'S';
98393 l_component_appl_id          :=  200;
98394 l_amb_context_code           := 'DEFAULT';
98398 l_line_definition_owner_code := 'S';
98395 l_entity_code                := 'AP_INVOICES';
98396 l_event_class_code           := 'DEBIT MEMOS';
98397 l_event_type_code            := 'DEBIT MEMOS_ALL';
98399 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
98400 --
98401 l_balance_type_code          := 'A';
98402 l_segment                     := NULL;
98403 l_ccid                        := NULL;
98404 l_adr_transaction_coa_id      := NULL;
98405 l_adr_accounting_coa_id       := NULL;
98406 l_adr_flexfield_segment_code  := NULL;
98407 l_adr_flex_value_set_id       := NULL;
98408 l_adr_value_type_code         := NULL;
98409 l_adr_value_combination_id    := NULL;
98410 l_adr_value_segment_code      := NULL;
98411 
98412 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
98413 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
98414 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
98415 l_budgetary_control_flag     := 'N';
98416 
98417 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
98418 l_bflow_applied_to_amt       := NULL; -- 5132302
98419 l_entered_amt_idx            := NULL;          -- 4262811
98420 l_accted_amt_idx             := NULL;          -- 4262811
98421 l_acc_rev_flag               := NULL;          -- 4262811
98422 l_accrual_line_num           := NULL;          -- 4262811
98423 l_tmp_amt                    := NULL;          -- 4262811
98424 --
98425  
98426 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
98427     l_balance_type_code <> 'B' THEN
98428 IF NVL(p_source_3,'
98429 ') =  'BALANCING_SEGMENT' AND 
98430 NVL(p_source_135,'
98431 ') <>  'Y'
98432  THEN 
98433 
98434    --
98435    XLA_AE_LINES_PKG.SetNewLine;
98436 
98437    p_balance_type_code          := l_balance_type_code;
98438    -- set the flag so later we will know whether the gain loss line needs to be created
98439    
98440    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
98441      p_actual_flag :='A';
98442    END IF;
98443 
98444    --
98445    -- bulk performance
98446    --
98447    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
98448                                       p_header_num   => 0); -- 4262811
98449    --
98450    -- set accounting line options
98451    --
98452    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
98453            p_natural_side_code          => 'C'
98454          , p_gain_or_loss_flag          => 'N'
98455          , p_gl_transfer_mode_code      => 'S'
98456          , p_acct_entry_type_code       => 'A'
98457          , p_switch_side_flag           => 'Y'
98458          , p_merge_duplicate_code       => 'A'
98459          );
98460    --
98461    l_acc_rev_natural_side_code := 'D';  -- 4262811
98462    -- 
98463    --
98464    -- set accounting line type info
98465    --
98466    xla_ae_lines_pkg.SetAcctLineType
98467       (p_component_type             => l_component_type
98468       ,p_event_type_code            => l_event_type_code
98469       ,p_line_definition_owner_code => l_line_definition_owner_code
98470       ,p_line_definition_code       => l_line_definition_code
98471       ,p_accounting_line_code       => l_component_code
98472       ,p_accounting_line_type_code  => l_component_type_code
98473       ,p_accounting_line_appl_id    => l_component_appl_id
98474       ,p_amb_context_code           => l_amb_context_code
98475       ,p_entity_code                => l_entity_code
98476       ,p_event_class_code           => l_event_class_code);
98477    --
98478    -- set accounting class
98479    --
98480    xla_ae_lines_pkg.SetAcctClass(
98481            p_accounting_class_code  => 'LIABILITY'
98482          , p_ae_header_id           => l_ae_header_id
98483          );
98484 
98485    --
98486    -- set rounding class
98487    --
98488    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
98489                       'LIABILITY';
98490 
98491    --
98492    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
98493    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
98494    --
98495    -- bulk performance
98496    --
98497    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
98498 
98499    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
98500       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
98501 
98502    -- 4955764
98503    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98504       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
98505 
98506    -- 4458381 Public Sector Enh
98507    
98508    --
98509    -- set accounting attributes for the line type
98510    --
98511    l_entered_amt_idx := 23;
98512    l_accted_amt_idx  := 28;
98513    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
98514    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
98515    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
98516    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
98517    l_rec_acct_attrs.array_num_value(2)  := 
98518 xla_ae_sources_pkg.GetSystemSourceNum(
98519    p_source_code           => 'XLA_EVENT_APPL_ID'
98520  , p_source_type_code      => 'Y'
98521  , p_source_application_id =>  602
98522 );
98526    l_rec_acct_attrs.array_char_value(4)  := 
98523    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
98524    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
98525    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
98527 xla_ae_sources_pkg.GetSystemSourceChar(
98528    p_source_code           => 'XLA_ENTITY_CODE'
98529  , p_source_type_code      => 'Y'
98530  , p_source_application_id =>  602
98531 );
98532    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
98533    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
98534    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
98535    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
98536    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
98537    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
98538    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
98539    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
98540    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
98541    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
98542    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
98543    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
98544    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
98545    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
98546    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
98547    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
98548    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
98549    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
98550    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
98551    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
98552    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
98553    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
98554    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
98555    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
98556    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
98557    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
98558    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
98559    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
98560    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
98561    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
98562    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
98563    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
98564    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
98565    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
98566    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
98567    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
98568    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
98569    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
98570    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
98571    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
98572    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
98573    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
98574    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
98575    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
98576    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
98577    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
98578    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
98579    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
98580    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
98581    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
98582    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
98583    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
98584    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
98585    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
98586    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
98587    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
98588    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
98589    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
98590    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
98591    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
98592    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
98593    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
98594    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
98595    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
98596    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
98597    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
98598    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
98599    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
98600    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
98601    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
98602    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
98603    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
98604    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
98605    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
98606    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
98607    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
98608 
98609    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
98613    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
98610    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
98611 
98612    ---------------------------------------------------------------------------------------------------------------
98614    ---------------------------------------------------------------------------------------------------------------
98615    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
98616 
98617    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
98618    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
98619 
98620    IF xla_accounting_cache_pkg.GetValueChar
98621          (p_source_code         => 'LEDGER_CATEGORY_CODE'
98622          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
98623    AND l_bflow_method_code = 'PRIOR_ENTRY'
98624 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
98625    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
98626          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
98627        )
98628    THEN
98629          xla_ae_lines_pkg.BflowUpgEntry
98630            (p_business_method_code    => l_bflow_method_code
98631            ,p_business_class_code     => l_bflow_class_code
98632            ,p_balance_type            => l_balance_type_code);
98633    ELSE
98634       NULL;
98635 XLA_AE_LINES_PKG.business_flow_validation(
98636                                 p_business_method_code     => l_bflow_method_code
98637                                ,p_business_class_code      => l_bflow_class_code
98638                                ,p_inherit_description_flag => l_inherit_desc_flag);
98639    END IF;
98640 
98641    --
98642    -- call analytical criteria
98643    --
98644    
98645    --
98646    -- call description
98647    --
98648    
98649 xla_ae_lines_pkg.SetLineDescription(
98650    p_ae_header_id => l_ae_header_id
98651   ,p_description  => Description_2 (
98652      p_application_id         => p_application_id
98653    , p_ae_header_id           => l_ae_header_id 
98654 , p_source_1 => p_source_1
98655    )
98656 );
98657 
98658 
98659    --
98660    -- call ADRs
98661    -- Bug 4922099
98662    --
98663    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98664         (NVL(l_actual_upg_option, 'N') = 'O') OR
98665         (NVL(l_enc_upg_option, 'N') = 'O')
98666       )
98667    THEN
98668    NULL;
98669    --
98670    --
98671    
98672   l_ccid := AcctDerRule_33(
98673            p_application_id           => p_application_id
98674          , p_ae_header_id             => l_ae_header_id 
98675 , p_source_22 => p_source_22
98676          , x_transaction_coa_id       => l_adr_transaction_coa_id
98677          , x_accounting_coa_id        => l_adr_accounting_coa_id
98678          , x_value_type_code          => l_adr_value_type_code
98679          , p_side                     => 'NA'
98680    );
98681 
98682    xla_ae_lines_pkg.set_ccid(
98683     p_code_combination_id          => l_ccid
98684   , p_value_type_code              => l_adr_value_type_code
98685   , p_transaction_coa_id           => l_adr_transaction_coa_id
98686   , p_accounting_coa_id            => l_adr_accounting_coa_id
98687   , p_adr_code                     => 'AP_LIAB'
98688   , p_adr_type_code                => 'S'
98689   , p_component_type               => l_component_type
98690   , p_component_code               => l_component_code
98691   , p_component_type_code          => l_component_type_code
98692   , p_component_appl_id            => l_component_appl_id
98693   , p_amb_context_code             => l_amb_context_code
98694   , p_side                         => 'NA'
98695   );
98696 
98697 
98698    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
98699      p_to_segment_code         => 'GL_BALANCING'
98700    , p_segment_value           => C_CHAR
98701    , p_from_segment_code       => NULL
98702    , p_from_combination_id     => NULL
98703    , p_value_type_code         => NULL
98704    , p_transaction_coa_id      => null
98705    , p_accounting_coa_id       => null
98706    , p_flexfield_segment_code  => NULL
98707    , p_flex_value_set_id       => NULL
98708    , p_adr_code                => NULL
98709    , p_adr_type_code           => NULL
98710    , p_component_type          => l_component_type
98711    , p_component_code          => l_component_code
98712    , p_component_type_code     => l_component_type_code
98713    , p_component_appl_id       => l_component_appl_id
98717    , p_side                    => 'NA'
98714    , p_amb_context_code        => l_amb_context_code
98715    , p_entity_code             => 'AP_INVOICES'
98716    , p_event_class_code        => 'DEBIT MEMOS'
98718    );
98719    --
98720 
98721 
98722    --
98723    --
98724    END IF;
98725    --
98726    -- Bug 4922099
98727    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
98728           (NVL(l_enc_upg_option, 'N') = 'O')
98729         ) AND
98730         (l_bflow_method_code = 'PRIOR_ENTRY')
98731       )
98732    THEN
98733       IF
98734       --
98735       1 = 2
98736       --
98737       THEN
98738       xla_accounting_err_pkg.build_message
98739                                     (p_appli_s_name            => 'XLA'
98740                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98741                                     ,p_token_1                 => 'LINE_NUMBER'
98742                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
98743                                     ,p_token_2                 => 'LINE_TYPE_NAME'
98744                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
98745                                                                              l_component_type
98746                                                                             ,l_component_code
98747                                                                             ,l_component_type_code
98748                                                                             ,l_component_appl_id
98749                                                                             ,l_amb_context_code
98750                                                                             ,l_entity_code
98751                                                                             ,l_event_class_code
98752                                                                            )
98753                                     ,p_token_3                 => 'OWNER'
98754                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
98755                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
98756                                                                           ,p_lookup_code    => l_component_type_code
98757                                                                          )
98758                                     ,p_token_4                 => 'PRODUCT_NAME'
98759                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
98760                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
98761                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
98762                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
98763                                     ,p_ae_header_id            =>  NULL
98764                                        );
98765 
98766         IF (C_LEVEL_ERROR>= g_log_level) THEN
98767                  trace
98768                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98769                       ,p_level    => C_LEVEL_ERROR
98770                       ,p_module   => l_log_module);
98771         END IF;
98772       END IF;
98773    END IF;
98774    --
98775    --
98776    ------------------------------------------------------------------------------------------------
98777    -- 4219869 Business Flow
98778    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
98779    -- Prior Entry.  Currently, the following code is always generated.
98780    ------------------------------------------------------------------------------------------------
98781    XLA_AE_LINES_PKG.ValidateCurrentLine;
98782 
98783    ------------------------------------------------------------------------------------
98784    -- 4219869 Business Flow
98785    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
98786    ------------------------------------------------------------------------------------
98787    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98788 
98789    ----------------------------------------------------------------------------------
98790    -- 4219869 Business Flow
98791    -- Update journal entry status -- Need to generate this within IF <condition>
98795          ,p_balance_type_code => l_balance_type_code
98792    ----------------------------------------------------------------------------------
98793    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98794          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
98796          );
98797 
98798    -------------------------------------------------------------------------------------------
98799    -- 4262811 - Generate the Accrual Reversal lines
98800    -------------------------------------------------------------------------------------------
98801    BEGIN
98802       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
98803                               (g_array_event(p_event_id).array_value_num('header_index'));
98804       IF l_acc_rev_flag IS NULL THEN
98805          l_acc_rev_flag := 'N';
98806       END IF;
98807    EXCEPTION
98808       WHEN OTHERS THEN
98809          l_acc_rev_flag := 'N';
98810    END;
98811    --
98812    IF (l_acc_rev_flag = 'Y') THEN
98813 
98814        -- 4645092  ------------------------------------------------------------------------------
98815        -- To allow MPA report to determine if it should generate report process
98816        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
98817        ------------------------------------------------------------------------------------------
98818 
98819        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
98820        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
98821    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
98822    -- call ADRs
98823    -- Bug 4922099
98824    --
98825    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98826         (NVL(l_actual_upg_option, 'N') = 'O') OR
98827         (NVL(l_enc_upg_option, 'N') = 'O')
98828       )
98829    THEN
98830    NULL;
98831    --
98832    --
98833    
98834   l_ccid := AcctDerRule_33(
98835            p_application_id           => p_application_id
98836          , p_ae_header_id             => l_ae_header_id 
98837 , p_source_22 => p_source_22
98838          , x_transaction_coa_id       => l_adr_transaction_coa_id
98839          , x_accounting_coa_id        => l_adr_accounting_coa_id
98843 
98840          , x_value_type_code          => l_adr_value_type_code
98841          , p_side                     => 'NA'
98842    );
98844    xla_ae_lines_pkg.set_ccid(
98845     p_code_combination_id          => l_ccid
98846   , p_value_type_code              => l_adr_value_type_code
98847   , p_transaction_coa_id           => l_adr_transaction_coa_id
98848   , p_accounting_coa_id            => l_adr_accounting_coa_id
98849   , p_adr_code                     => 'AP_LIAB'
98850   , p_adr_type_code                => 'S'
98851   , p_component_type               => l_component_type
98852   , p_component_code               => l_component_code
98853   , p_component_type_code          => l_component_type_code
98854   , p_component_appl_id            => l_component_appl_id
98855   , p_amb_context_code             => l_amb_context_code
98856   , p_side                         => 'NA'
98857   );
98858 
98859 
98860    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
98861      p_to_segment_code         => 'GL_BALANCING'
98862    , p_segment_value           => C_CHAR
98863    , p_from_segment_code       => NULL
98864    , p_from_combination_id     => NULL
98865    , p_value_type_code         => NULL
98866    , p_transaction_coa_id      => null
98867    , p_accounting_coa_id       => null
98868    , p_flexfield_segment_code  => NULL
98869    , p_flex_value_set_id       => NULL
98870    , p_adr_code                => NULL
98871    , p_adr_type_code           => NULL
98872    , p_component_type          => l_component_type
98873    , p_component_code          => l_component_code
98874    , p_component_type_code     => l_component_type_code
98875    , p_component_appl_id       => l_component_appl_id
98876    , p_amb_context_code        => l_amb_context_code
98877    , p_entity_code             => 'AP_INVOICES'
98878    , p_event_class_code        => 'DEBIT MEMOS'
98879    , p_side                    => 'NA'
98880    );
98881    --
98882 
98883 
98884    --
98885    --
98886    END IF;
98887 
98888        --
98889        -- Update the line information that should be overwritten
98890        --
98891        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
98892                                          p_header_num   => 1);
98893        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
98894 
98895        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
98899        END IF;
98896 
98897        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
98898           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
98900 
98901       --
98902       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
98903       --
98904       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
98905           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
98906       ELSE
98907           ---------------------------------------------------------------------------------------------------
98908           -- 4262811a Switch Sign
98909           ---------------------------------------------------------------------------------------------------
98910           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
98911           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98912                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98913           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98914                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98915           -- 5132302
98916           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
98917                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98918 
98919       END IF;
98920 
98921       -- 4955764
98922       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98923       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
98924 
98925 
98926       XLA_AE_LINES_PKG.ValidateCurrentLine;
98927       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98928 
98929       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98930                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
98931                ,p_balance_type_code => l_balance_type_code);
98932 
98933    END IF;
98934 
98935    -----------------------------------------------------------------------------------------
98936    -- 4262811 Multiperiod Accounting
98937    -----------------------------------------------------------------------------------------
98938      -- No MPA option is assigned.
98939 
98940 
98941 END IF;
98942 END IF;
98943 --
98944 
98945 --
98946 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98947    trace
98948       (p_msg      => 'END of AcctLineType_173'
98949       ,p_level    => C_LEVEL_PROCEDURE
98950       ,p_module   => l_log_module);
98951 END IF;
98952 --
98953 EXCEPTION
98954   WHEN xla_exceptions_pkg.application_exception THEN
98955       RAISE;
98956   WHEN OTHERS THEN
98957        xla_exceptions_pkg.raise_message
98958            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_173');
98959 END AcctLineType_173;
98960 --
98961 
98962 ---------------------------------------
98963 --
98964 -- PRIVATE FUNCTION
98965 --         AcctLineType_174
98966 --
98967 ---------------------------------------
98968 PROCEDURE AcctLineType_174 (
98969   p_application_id        IN NUMBER
98970  ,p_event_id              IN NUMBER
98971  ,p_calculate_acctd_flag  IN VARCHAR2
98972  ,p_calculate_g_l_flag    IN VARCHAR2
98973  ,p_actual_flag           IN OUT VARCHAR2
98974  ,p_balance_type_code     OUT VARCHAR2
98975  ,p_gain_or_loss_ref      OUT VARCHAR2
98976  
98977 --Invoice Distribution Description
98978  , p_source_1            IN VARCHAR2
98979 --Automatic Offsets Value
98980  , p_source_3            IN VARCHAR2
98981  , p_source_3_meaning    IN VARCHAR2
98982 --Invoice Distribution Ledger Amount
98983  , p_source_9            IN NUMBER
98984 --Invoice Liability Account
98985  , p_source_22            IN NUMBER
98986 --Accounting Reversal Indicator
98987  , p_source_41            IN VARCHAR2
98988 --Distribution Link Type
98989  , p_source_43            IN VARCHAR2
98993  , p_source_46            IN NUMBER
98990 --Allocation to Main Distribution Identifier
98991  , p_source_45            IN NUMBER
98992 --Invoice Identifier
98994 --Invoice Distribution Identifier
98995  , p_source_52            IN NUMBER
98996 --Payables Encumbrance Upgrade Credit Account
98997  , p_source_53            IN NUMBER
98998 --Payables Encumbrance Upgrade Credit Amount
98999  , p_source_54            IN NUMBER
99000 --Invoice Currency Code
99001  , p_source_55            IN VARCHAR2
99005  , p_source_57            IN NUMBER
99002 --Payables Encumbrance Upgrade Credit Base Amount
99003  , p_source_56            IN NUMBER
99004 --Payables Encumbrance Upgrade Debit Account
99006 --Payables Encumbrance Upgrade Debit Amount
99007  , p_source_58            IN NUMBER
99008 --Payables Encumbrance Upgrade Debit Base Amount
99009  , p_source_59            IN NUMBER
99010 --Payables Encumbrance Upgrade Option
99011  , p_source_60            IN VARCHAR2
99012 --Invoice Distribution Amount
99013  , p_source_61            IN NUMBER
99014 --Deferred Accounting End Date
99015  , p_source_65            IN DATE
99016 --Deferred Accounting Option
99017  , p_source_66            IN VARCHAR2
99018 --Deferred Accounting Start Date
99019  , p_source_67            IN DATE
99020 --Override Accounted Amount Indicator
99021  , p_source_68            IN VARCHAR2
99022  , p_source_68_meaning    IN VARCHAR2
99023 --Invoice Supplier Identifier
99024  , p_source_69            IN NUMBER
99025 --Invoice Supplier Site Identifier
99026  , p_source_70            IN NUMBER
99027 --Third Party Type
99028  , p_source_71            IN VARCHAR2
99029 --Parent Reversal Identifier
99030  , p_source_72            IN NUMBER
99031 --Invoice Distribution Statistical Amount
99032  , p_source_73            IN NUMBER
99033 --Invoice Distribution Tax Line Identifier
99034  , p_source_74            IN NUMBER
99035 --Invoice Distribution Tax Distribution Identifier from Tax
99036  , p_source_75            IN NUMBER
99037 --Invoice Distribution Summary Tax Line Identifier
99038  , p_source_76            IN NUMBER
99039 --Payables Upgrade Credit Encumbrance Type Identifier
99040  , p_source_77            IN NUMBER
99041 --Payables Upgrade Debit Encumbrance Type Identifier
99042  , p_source_78            IN NUMBER
99043 --Business Flow Accounts Payable Application Identifier
99044  , p_source_79            IN NUMBER
99045 --Business Flow Invoice Distribution Type
99046  , p_source_80            IN VARCHAR2
99047 --Business Flow Invoice Entity Code
99048  , p_source_81            IN VARCHAR2
99049 --Business Flow Invoice Distribution Identifier
99050  , p_source_82            IN NUMBER
99051 --Business Flow Invoice Identifier
99052  , p_source_83            IN NUMBER
99053 --Self-Assessed Tax Flag
99054  , p_source_135            IN VARCHAR2
99055  , p_source_135_meaning    IN VARCHAR2
99056 --Invoice Exchange Date
99057  , p_source_136            IN DATE
99058 --Invoice Exchange Rate
99059  , p_source_137            IN NUMBER
99060 --Invoice Exchange Rate Type
99061  , p_source_138            IN VARCHAR2
99062 --Invoice Type
99063  , p_source_159            IN VARCHAR2
99064  , p_source_159_meaning    IN VARCHAR2
99065 )
99066 IS
99067 
99068 l_component_type              VARCHAR2(80);
99069 l_component_code              VARCHAR2(30);
99070 l_component_type_code         VARCHAR2(1);
99071 l_component_appl_id           INTEGER;
99072 l_amb_context_code            VARCHAR2(30);
99073 l_entity_code                 VARCHAR2(30);
99074 l_event_class_code            VARCHAR2(30);
99075 l_ae_header_id                NUMBER;
99076 l_event_type_code             VARCHAR2(30);
99077 l_line_definition_code        VARCHAR2(30);
99078 l_line_definition_owner_code  VARCHAR2(1);
99079 --
99080 -- adr variables
99081 l_segment                     VARCHAR2(30);
99082 l_ccid                        NUMBER;
99083 l_adr_transaction_coa_id      NUMBER;
99084 l_adr_accounting_coa_id       NUMBER;
99085 l_adr_flexfield_segment_code  VARCHAR2(30);
99086 l_adr_flex_value_set_id       NUMBER;
99087 l_adr_value_type_code         VARCHAR2(30);
99088 l_adr_value_combination_id    NUMBER;
99089 l_adr_value_segment_code      VARCHAR2(30);
99090 
99091 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
99092 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
99093 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
99094 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
99095 
99096 -- 4262811 Variables ------------------------------------------------------------------------------------------
99097 l_entered_amt_idx             NUMBER;
99098 l_accted_amt_idx              NUMBER;
99099 l_acc_rev_flag                VARCHAR2(1);
99100 l_accrual_line_num            NUMBER;
99101 l_tmp_amt                     NUMBER;
99102 l_acc_rev_natural_side_code   VARCHAR2(1);
99103 
99104 l_num_entries                 NUMBER;
99105 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
99106 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
99107 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
99108 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
99109 l_recog_line_1                NUMBER;
99110 l_recog_line_2                NUMBER;
99111 
99112 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
99113 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
99114 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
99115 
99116 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
99117 
99118 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
99119 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
99120 
99121 ---------------------------------------------------------------------------------------------------------------
99122 
99123 
99124 --
99125 -- bulk performance
99126 --
99127 l_balance_type_code           VARCHAR2(1);
99128 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
99129 l_log_module                  VARCHAR2(240);
99130 
99134 l_actual_upg_option           VARCHAR2(1);
99131 --
99132 -- Upgrade strategy
99133 --
99135 l_enc_upg_option           VARCHAR2(1);
99136 
99137 --
99138 BEGIN
99139 --
99140 IF g_log_enabled THEN
99141       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_174';
99142 END IF;
99143 --
99144 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99145 
99146       trace
99150 
99147          (p_msg      => 'BEGIN of AcctLineType_174'
99148          ,p_level    => C_LEVEL_PROCEDURE
99149          ,p_module   => l_log_module);
99151 END IF;
99152 --
99153 l_component_type             := 'AMB_JLT';
99154 l_component_code             := 'AP_LIAB_INV';
99155 l_component_type_code        := 'S';
99156 l_component_appl_id          :=  200;
99157 l_amb_context_code           := 'DEFAULT';
99158 l_entity_code                := 'AP_INVOICES';
99159 l_event_class_code           := 'INVOICES';
99160 l_event_type_code            := 'INVOICES_ALL';
99161 l_line_definition_owner_code := 'S';
99162 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
99163 --
99164 l_balance_type_code          := 'A';
99165 l_segment                     := NULL;
99166 l_ccid                        := NULL;
99167 l_adr_transaction_coa_id      := NULL;
99168 l_adr_accounting_coa_id       := NULL;
99169 l_adr_flexfield_segment_code  := NULL;
99170 l_adr_flex_value_set_id       := NULL;
99171 l_adr_value_type_code         := NULL;
99172 l_adr_value_combination_id    := NULL;
99173 l_adr_value_segment_code      := NULL;
99174 
99175 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
99176 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
99177 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
99178 l_budgetary_control_flag     := 'N';
99179 
99180 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
99181 l_bflow_applied_to_amt       := NULL; -- 5132302
99182 l_entered_amt_idx            := NULL;          -- 4262811
99183 l_accted_amt_idx             := NULL;          -- 4262811
99184 l_acc_rev_flag               := NULL;          -- 4262811
99185 l_accrual_line_num           := NULL;          -- 4262811
99186 l_tmp_amt                    := NULL;          -- 4262811
99187 --
99188  
99189 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
99190     l_balance_type_code <> 'B' THEN
99191 IF (NVL(p_source_3,'
99192 ') <>  'BALANCING_SEGMENT' AND 
99193 NVL(p_source_3,'
99194 ') <>  'ACCOUNT_SEGMENT_VALUE') AND 
99195 (NVL(p_source_159,'
99196 ') =  'STANDARD' OR 
99197 NVL(p_source_159,'
99198 ') =  'MIXED' OR 
99199 NVL(p_source_159,'
99200 ') =  'AWT' OR 
99201 NVL(p_source_159,'
99202 ') =  'PO PRICE ADJUST' OR 
99203 NVL(p_source_159,'
99204 ') =  'EXPENSE REPORT' OR 
99205 NVL(p_source_159,'
99206 ') =  'PAYMENT REQUEST' OR 
99207 NVL(p_source_159,'
99208 ') =  'RETAINAGE RELEASE') AND 
99209 NVL(p_source_135,'
99210 ') <>  'Y'
99211  THEN 
99212 
99213    --
99214    XLA_AE_LINES_PKG.SetNewLine;
99215 
99216    p_balance_type_code          := l_balance_type_code;
99217    -- set the flag so later we will know whether the gain loss line needs to be created
99218    
99219    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
99220      p_actual_flag :='A';
99221    END IF;
99222 
99223    --
99224    -- bulk performance
99225    --
99229    -- set accounting line options
99226    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
99227                                       p_header_num   => 0); -- 4262811
99228    --
99230    --
99231    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
99232            p_natural_side_code          => 'C'
99233          , p_gain_or_loss_flag          => 'N'
99234          , p_gl_transfer_mode_code      => 'S'
99235          , p_acct_entry_type_code       => 'A'
99236          , p_switch_side_flag           => 'Y'
99237          , p_merge_duplicate_code       => 'A'
99238          );
99239    --
99240    l_acc_rev_natural_side_code := 'D';  -- 4262811
99241    -- 
99242    --
99243    -- set accounting line type info
99244    --
99245    xla_ae_lines_pkg.SetAcctLineType
99246       (p_component_type             => l_component_type
99247       ,p_event_type_code            => l_event_type_code
99248       ,p_line_definition_owner_code => l_line_definition_owner_code
99249       ,p_line_definition_code       => l_line_definition_code
99250       ,p_accounting_line_code       => l_component_code
99251       ,p_accounting_line_type_code  => l_component_type_code
99252       ,p_accounting_line_appl_id    => l_component_appl_id
99253       ,p_amb_context_code           => l_amb_context_code
99254       ,p_entity_code                => l_entity_code
99255       ,p_event_class_code           => l_event_class_code);
99256    --
99257    -- set accounting class
99258    --
99259    xla_ae_lines_pkg.SetAcctClass(
99260            p_accounting_class_code  => 'LIABILITY'
99261          , p_ae_header_id           => l_ae_header_id
99262          );
99263 
99264    --
99265    -- set rounding class
99266    --
99267    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
99268                       'LIABILITY';
99269 
99270    --
99271    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
99272    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
99273    --
99274    -- bulk performance
99275    --
99276    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
99277 
99278    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
99279       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
99280 
99281    -- 4955764
99282    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99283       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
99284 
99285    -- 4458381 Public Sector Enh
99286    
99287    --
99288    -- set accounting attributes for the line type
99289    --
99290    l_entered_amt_idx := 24;
99291    l_accted_amt_idx  := 29;
99292    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
99293    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
99294    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
99295    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
99296    l_rec_acct_attrs.array_num_value(2)  := 
99297 xla_ae_sources_pkg.GetSystemSourceNum(
99298    p_source_code           => 'XLA_EVENT_APPL_ID'
99299  , p_source_type_code      => 'Y'
99300  , p_source_application_id =>  602
99301 );
99302    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
99303    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
99304    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
99305    l_rec_acct_attrs.array_char_value(4)  := 
99309  , p_source_application_id =>  602
99306 xla_ae_sources_pkg.GetSystemSourceChar(
99307    p_source_code           => 'XLA_ENTITY_CODE'
99308  , p_source_type_code      => 'Y'
99310 );
99311    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
99312    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
99313    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
99314    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
99315    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
99316    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
99317    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
99318    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
99319    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
99320    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
99321    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
99322    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
99323    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
99324    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
99325    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
99326    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
99327    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
99328    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
99329    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
99330    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
99331    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
99332    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
99333    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
99334    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
99335    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
99336    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
99337    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
99338    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
99339    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
99340    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
99341    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
99342    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
99343    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
99344    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
99345    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
99346    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
99347    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
99348    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
99349    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
99350    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
99351    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
99352    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
99353    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
99354    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
99355    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
99356    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
99357    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
99358    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
99359    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
99360    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
99361    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
99362    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
99363    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
99364    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
99365    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
99366    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
99367    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
99368    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
99369    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
99370    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
99371    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
99372    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
99373    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
99374    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
99375    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
99376    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
99377    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
99378    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
99379    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
99380    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
99384    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
99381    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
99382    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
99383    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
99385    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
99386    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
99387    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
99388    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
99389    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
99390    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
99391 
99392    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
99393    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
99394 
99395    ---------------------------------------------------------------------------------------------------------------
99396    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
99397    ---------------------------------------------------------------------------------------------------------------
99398    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
99399 
99400    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99401    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99402 
99403    IF xla_accounting_cache_pkg.GetValueChar
99404          (p_source_code         => 'LEDGER_CATEGORY_CODE'
99405          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
99406    AND l_bflow_method_code = 'PRIOR_ENTRY'
99407 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
99408    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
99412          xla_ae_lines_pkg.BflowUpgEntry
99409          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
99410        )
99411    THEN
99413            (p_business_method_code    => l_bflow_method_code
99414            ,p_business_class_code     => l_bflow_class_code
99415            ,p_balance_type            => l_balance_type_code);
99416    ELSE
99417       NULL;
99418 -- No business flow processing for business flow method of NONE.
99419    END IF;
99420 
99421    --
99422    -- call analytical criteria
99423    --
99424    
99425    --
99426    -- call description
99427    --
99428    
99429 xla_ae_lines_pkg.SetLineDescription(
99430    p_ae_header_id => l_ae_header_id
99431   ,p_description  => Description_2 (
99432      p_application_id         => p_application_id
99433    , p_ae_header_id           => l_ae_header_id 
99434 , p_source_1 => p_source_1
99435    )
99436 );
99437 
99438 
99439    --
99440    -- call ADRs
99441    -- Bug 4922099
99442    --
99443    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99444         (NVL(l_actual_upg_option, 'N') = 'O') OR
99445         (NVL(l_enc_upg_option, 'N') = 'O')
99446       )
99447    THEN
99448    NULL;
99449    --
99450    --
99451    
99452   l_ccid := AcctDerRule_33(
99453            p_application_id           => p_application_id
99454          , p_ae_header_id             => l_ae_header_id 
99455 , p_source_22 => p_source_22
99456          , x_transaction_coa_id       => l_adr_transaction_coa_id
99457          , x_accounting_coa_id        => l_adr_accounting_coa_id
99458          , x_value_type_code          => l_adr_value_type_code
99459          , p_side                     => 'NA'
99460    );
99461 
99462    xla_ae_lines_pkg.set_ccid(
99463     p_code_combination_id          => l_ccid
99464   , p_value_type_code              => l_adr_value_type_code
99465   , p_transaction_coa_id           => l_adr_transaction_coa_id
99466   , p_accounting_coa_id            => l_adr_accounting_coa_id
99467   , p_adr_code                     => 'AP_LIAB'
99468   , p_adr_type_code                => 'S'
99469   , p_component_type               => l_component_type
99470   , p_component_code               => l_component_code
99471   , p_component_type_code          => l_component_type_code
99472   , p_component_appl_id            => l_component_appl_id
99473   , p_amb_context_code             => l_amb_context_code
99474   , p_side                         => 'NA'
99475   );
99476 
99477 
99478    --
99479    --
99480    END IF;
99481    --
99482    -- Bug 4922099
99483    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
99484           (NVL(l_enc_upg_option, 'N') = 'O')
99488    THEN
99485         ) AND
99486         (l_bflow_method_code = 'PRIOR_ENTRY')
99487       )
99489       IF
99490       --
99491       1 = 2
99492       --
99493       THEN
99494       xla_accounting_err_pkg.build_message
99495                                     (p_appli_s_name            => 'XLA'
99496                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
99497                                     ,p_token_1                 => 'LINE_NUMBER'
99498                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
99499                                     ,p_token_2                 => 'LINE_TYPE_NAME'
99500                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
99501                                                                              l_component_type
99502                                                                             ,l_component_code
99503                                                                             ,l_component_type_code
99504                                                                             ,l_component_appl_id
99505                                                                             ,l_amb_context_code
99506                                                                             ,l_entity_code
99507                                                                             ,l_event_class_code
99508                                                                            )
99509                                     ,p_token_3                 => 'OWNER'
99510                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
99511                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
99512                                                                           ,p_lookup_code    => l_component_type_code
99513                                                                          )
99514                                     ,p_token_4                 => 'PRODUCT_NAME'
99515                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
99516                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
99517                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
99518                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
99519                                     ,p_ae_header_id            =>  NULL
99520                                        );
99521 
99522         IF (C_LEVEL_ERROR>= g_log_level) THEN
99523                  trace
99524                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
99525                       ,p_level    => C_LEVEL_ERROR
99526                       ,p_module   => l_log_module);
99527         END IF;
99528       END IF;
99529    END IF;
99530    --
99531    --
99532    ------------------------------------------------------------------------------------------------
99533    -- 4219869 Business Flow
99534    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
99535    -- Prior Entry.  Currently, the following code is always generated.
99536    ------------------------------------------------------------------------------------------------
99537    XLA_AE_LINES_PKG.ValidateCurrentLine;
99538 
99539    ------------------------------------------------------------------------------------
99540    -- 4219869 Business Flow
99541    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
99542    ------------------------------------------------------------------------------------
99543    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99544 
99545    ----------------------------------------------------------------------------------
99546    -- 4219869 Business Flow
99547    -- Update journal entry status -- Need to generate this within IF <condition>
99548    ----------------------------------------------------------------------------------
99552          );
99549    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99550          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
99551          ,p_balance_type_code => l_balance_type_code
99553 
99557    BEGIN
99554    -------------------------------------------------------------------------------------------
99555    -- 4262811 - Generate the Accrual Reversal lines
99556    -------------------------------------------------------------------------------------------
99558       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
99559                               (g_array_event(p_event_id).array_value_num('header_index'));
99560       IF l_acc_rev_flag IS NULL THEN
99561          l_acc_rev_flag := 'N';
99562       END IF;
99563    EXCEPTION
99564       WHEN OTHERS THEN
99565          l_acc_rev_flag := 'N';
99566    END;
99567    --
99568    IF (l_acc_rev_flag = 'Y') THEN
99569 
99570        -- 4645092  ------------------------------------------------------------------------------
99571        -- To allow MPA report to determine if it should generate report process
99572        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
99573        ------------------------------------------------------------------------------------------
99574 
99575        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
99576        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
99577    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
99578    -- call ADRs
99579    -- Bug 4922099
99580    --
99581    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99582         (NVL(l_actual_upg_option, 'N') = 'O') OR
99583         (NVL(l_enc_upg_option, 'N') = 'O')
99584       )
99585    THEN
99586    NULL;
99587    --
99588    --
99589    
99590   l_ccid := AcctDerRule_33(
99591            p_application_id           => p_application_id
99592          , p_ae_header_id             => l_ae_header_id 
99593 , p_source_22 => p_source_22
99594          , x_transaction_coa_id       => l_adr_transaction_coa_id
99595          , x_accounting_coa_id        => l_adr_accounting_coa_id
99596          , x_value_type_code          => l_adr_value_type_code
99597          , p_side                     => 'NA'
99598    );
99599 
99600    xla_ae_lines_pkg.set_ccid(
99601     p_code_combination_id          => l_ccid
99602   , p_value_type_code              => l_adr_value_type_code
99603   , p_transaction_coa_id           => l_adr_transaction_coa_id
99604   , p_accounting_coa_id            => l_adr_accounting_coa_id
99605   , p_adr_code                     => 'AP_LIAB'
99606   , p_adr_type_code                => 'S'
99607   , p_component_type               => l_component_type
99608   , p_component_code               => l_component_code
99609   , p_component_type_code          => l_component_type_code
99610   , p_component_appl_id            => l_component_appl_id
99611   , p_amb_context_code             => l_amb_context_code
99612   , p_side                         => 'NA'
99613   );
99614 
99615 
99616    --
99617    --
99618    END IF;
99619 
99620        --
99621        -- Update the line information that should be overwritten
99622        --
99623        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
99624                                          p_header_num   => 1);
99625        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
99626 
99627        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
99628 
99629        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
99630           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
99631        END IF;
99632 
99633       --
99634       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
99635       --
99636       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
99637           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
99638       ELSE
99639           ---------------------------------------------------------------------------------------------------
99640           -- 4262811a Switch Sign
99641           ---------------------------------------------------------------------------------------------------
99642           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
99643           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99644                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99645           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99646                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99647           -- 5132302
99648           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
99649                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99650 
99651       END IF;
99652 
99653       -- 4955764
99654       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99655       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
99656 
99657 
99658       XLA_AE_LINES_PKG.ValidateCurrentLine;
99659       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99660 
99661       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99662                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
99663                ,p_balance_type_code => l_balance_type_code);
99664 
99665    END IF;
99666 
99667    -----------------------------------------------------------------------------------------
99668    -- 4262811 Multiperiod Accounting
99669    -----------------------------------------------------------------------------------------
99673 END IF;
99670      -- No MPA option is assigned.
99671 
99672 
99674 END IF;
99675 --
99676 
99677 --
99678 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99679    trace
99680       (p_msg      => 'END of AcctLineType_174'
99681       ,p_level    => C_LEVEL_PROCEDURE
99682       ,p_module   => l_log_module);
99683 END IF;
99684 --
99685 EXCEPTION
99686   WHEN xla_exceptions_pkg.application_exception THEN
99687       RAISE;
99688   WHEN OTHERS THEN
99689        xla_exceptions_pkg.raise_message
99693 
99690            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_174');
99691 END AcctLineType_174;
99692 --
99694 ---------------------------------------
99695 --
99696 -- PRIVATE FUNCTION
99697 --         AcctLineType_175
99698 --
99699 ---------------------------------------
99700 PROCEDURE AcctLineType_175 (
99701   p_application_id        IN NUMBER
99702  ,p_event_id              IN NUMBER
99703  ,p_calculate_acctd_flag  IN VARCHAR2
99704  ,p_calculate_g_l_flag    IN VARCHAR2
99705  ,p_actual_flag           IN OUT VARCHAR2
99706  ,p_balance_type_code     OUT VARCHAR2
99707  ,p_gain_or_loss_ref      OUT VARCHAR2
99708  
99709 --Invoice Distribution Description
99710  , p_source_1            IN VARCHAR2
99711 --Automatic Offsets Value
99712  , p_source_3            IN VARCHAR2
99713  , p_source_3_meaning    IN VARCHAR2
99714 --Invoice Distribution Ledger Amount
99715  , p_source_9            IN NUMBER
99716 --Invoice Liability Account
99717  , p_source_22            IN NUMBER
99718 --Accounting Reversal Indicator
99719  , p_source_41            IN VARCHAR2
99720 --Distribution Link Type
99721  , p_source_43            IN VARCHAR2
99722 --Allocation to Main Distribution Identifier
99723  , p_source_45            IN NUMBER
99724 --Invoice Identifier
99725  , p_source_46            IN NUMBER
99726 --Invoice Distribution Identifier
99727  , p_source_52            IN NUMBER
99728 --Payables Encumbrance Upgrade Credit Account
99729  , p_source_53            IN NUMBER
99730 --Payables Encumbrance Upgrade Credit Amount
99731  , p_source_54            IN NUMBER
99732 --Invoice Currency Code
99733  , p_source_55            IN VARCHAR2
99734 --Payables Encumbrance Upgrade Credit Base Amount
99735  , p_source_56            IN NUMBER
99736 --Payables Encumbrance Upgrade Debit Account
99737  , p_source_57            IN NUMBER
99738 --Payables Encumbrance Upgrade Debit Amount
99739  , p_source_58            IN NUMBER
99740 --Payables Encumbrance Upgrade Debit Base Amount
99741  , p_source_59            IN NUMBER
99742 --Payables Encumbrance Upgrade Option
99743  , p_source_60            IN VARCHAR2
99744 --Invoice Distribution Amount
99745  , p_source_61            IN NUMBER
99746 --Deferred Accounting End Date
99747  , p_source_65            IN DATE
99748 --Deferred Accounting Option
99749  , p_source_66            IN VARCHAR2
99750 --Deferred Accounting Start Date
99751  , p_source_67            IN DATE
99752 --Override Accounted Amount Indicator
99753  , p_source_68            IN VARCHAR2
99754  , p_source_68_meaning    IN VARCHAR2
99755 --Invoice Supplier Identifier
99756  , p_source_69            IN NUMBER
99757 --Invoice Supplier Site Identifier
99758  , p_source_70            IN NUMBER
99759 --Third Party Type
99760  , p_source_71            IN VARCHAR2
99761 --Parent Reversal Identifier
99762  , p_source_72            IN NUMBER
99763 --Invoice Distribution Statistical Amount
99764  , p_source_73            IN NUMBER
99765 --Invoice Distribution Tax Line Identifier
99766  , p_source_74            IN NUMBER
99767 --Invoice Distribution Tax Distribution Identifier from Tax
99768  , p_source_75            IN NUMBER
99769 --Invoice Distribution Summary Tax Line Identifier
99770  , p_source_76            IN NUMBER
99771 --Payables Upgrade Credit Encumbrance Type Identifier
99772  , p_source_77            IN NUMBER
99773 --Payables Upgrade Debit Encumbrance Type Identifier
99774  , p_source_78            IN NUMBER
99775 --Business Flow Accounts Payable Application Identifier
99776  , p_source_79            IN NUMBER
99777 --Business Flow Invoice Distribution Type
99778  , p_source_80            IN VARCHAR2
99779 --Business Flow Invoice Entity Code
99780  , p_source_81            IN VARCHAR2
99781 --Business Flow Invoice Distribution Identifier
99782  , p_source_82            IN NUMBER
99783 --Business Flow Invoice Identifier
99784  , p_source_83            IN NUMBER
99785 --Self-Assessed Tax Flag
99786  , p_source_135            IN VARCHAR2
99787  , p_source_135_meaning    IN VARCHAR2
99788 --Invoice Exchange Date
99789  , p_source_136            IN DATE
99793  , p_source_138            IN VARCHAR2
99790 --Invoice Exchange Rate
99791  , p_source_137            IN NUMBER
99792 --Invoice Exchange Rate Type
99794 --Invoice Type
99795  , p_source_159            IN VARCHAR2
99796  , p_source_159_meaning    IN VARCHAR2
99797 )
99798 IS
99799 
99800 l_component_type              VARCHAR2(80);
99801 l_component_code              VARCHAR2(30);
99802 l_component_type_code         VARCHAR2(1);
99803 l_component_appl_id           INTEGER;
99804 l_amb_context_code            VARCHAR2(30);
99805 l_entity_code                 VARCHAR2(30);
99806 l_event_class_code            VARCHAR2(30);
99807 l_ae_header_id                NUMBER;
99808 l_event_type_code             VARCHAR2(30);
99809 l_line_definition_code        VARCHAR2(30);
99810 l_line_definition_owner_code  VARCHAR2(1);
99811 --
99812 -- adr variables
99813 l_segment                     VARCHAR2(30);
99814 l_ccid                        NUMBER;
99815 l_adr_transaction_coa_id      NUMBER;
99816 l_adr_accounting_coa_id       NUMBER;
99817 l_adr_flexfield_segment_code  VARCHAR2(30);
99818 l_adr_flex_value_set_id       NUMBER;
99819 l_adr_value_type_code         VARCHAR2(30);
99820 l_adr_value_combination_id    NUMBER;
99821 l_adr_value_segment_code      VARCHAR2(30);
99822 
99823 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
99824 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
99825 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
99826 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
99827 
99828 -- 4262811 Variables ------------------------------------------------------------------------------------------
99829 l_entered_amt_idx             NUMBER;
99830 l_accted_amt_idx              NUMBER;
99831 l_acc_rev_flag                VARCHAR2(1);
99832 l_accrual_line_num            NUMBER;
99833 l_tmp_amt                     NUMBER;
99834 l_acc_rev_natural_side_code   VARCHAR2(1);
99835 
99836 l_num_entries                 NUMBER;
99837 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
99838 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
99839 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
99840 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
99841 l_recog_line_1                NUMBER;
99842 l_recog_line_2                NUMBER;
99843 
99844 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
99845 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
99849 
99846 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
99847 
99848 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
99850 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
99851 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
99852 
99853 ---------------------------------------------------------------------------------------------------------------
99854 
99855 
99856 --
99857 -- bulk performance
99858 --
99859 l_balance_type_code           VARCHAR2(1);
99860 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
99861 l_log_module                  VARCHAR2(240);
99862 
99863 --
99864 -- Upgrade strategy
99865 --
99866 l_actual_upg_option           VARCHAR2(1);
99867 l_enc_upg_option           VARCHAR2(1);
99868 
99869 --
99870 BEGIN
99871 --
99872 IF g_log_enabled THEN
99873       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_175';
99874 END IF;
99875 --
99876 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99877 
99878       trace
99879          (p_msg      => 'BEGIN of AcctLineType_175'
99880          ,p_level    => C_LEVEL_PROCEDURE
99881          ,p_module   => l_log_module);
99882 
99883 END IF;
99884 --
99885 l_component_type             := 'AMB_JLT';
99886 l_component_code             := 'AP_LIAB_INV_AOS_AS';
99887 l_component_type_code        := 'S';
99888 l_component_appl_id          :=  200;
99889 l_amb_context_code           := 'DEFAULT';
99890 l_entity_code                := 'AP_INVOICES';
99891 l_event_class_code           := 'INVOICES';
99892 l_event_type_code            := 'INVOICES_ALL';
99893 l_line_definition_owner_code := 'S';
99894 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
99895 --
99896 l_balance_type_code          := 'A';
99897 l_segment                     := NULL;
99898 l_ccid                        := NULL;
99899 l_adr_transaction_coa_id      := NULL;
99900 l_adr_accounting_coa_id       := NULL;
99901 l_adr_flexfield_segment_code  := NULL;
99902 l_adr_flex_value_set_id       := NULL;
99906 
99903 l_adr_value_type_code         := NULL;
99904 l_adr_value_combination_id    := NULL;
99905 l_adr_value_segment_code      := NULL;
99907 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
99908 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
99909 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
99910 l_budgetary_control_flag     := 'N';
99911 
99912 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
99913 l_bflow_applied_to_amt       := NULL; -- 5132302
99914 l_entered_amt_idx            := NULL;          -- 4262811
99915 l_accted_amt_idx             := NULL;          -- 4262811
99916 l_acc_rev_flag               := NULL;          -- 4262811
99917 l_accrual_line_num           := NULL;          -- 4262811
99918 l_tmp_amt                    := NULL;          -- 4262811
99919 --
99920  
99921 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
99922     l_balance_type_code <> 'B' THEN
99923 IF NVL(p_source_3,'
99924 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
99925 (NVL(p_source_159,'
99926 ') =  'STANDARD' OR 
99927 NVL(p_source_159,'
99928 ') =  'MIXED' OR 
99929 NVL(p_source_159,'
99930 ') =  'AWT' OR 
99931 NVL(p_source_159,'
99932 ') =  'PO PRICE ADJUST' OR 
99933 NVL(p_source_159,'
99934 ') =  'EXPENSE REPORT' OR 
99935 NVL(p_source_159,'
99936 ') =  'PAYMENT REQUEST' OR 
99937 NVL(p_source_159,'
99938 ') =  'RETAINAGE RELEASE') AND 
99939 NVL(p_source_135,'
99940 ') <>  'Y'
99941  THEN 
99942 
99943    --
99944    XLA_AE_LINES_PKG.SetNewLine;
99945 
99946    p_balance_type_code          := l_balance_type_code;
99947    -- set the flag so later we will know whether the gain loss line needs to be created
99948    
99949    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
99950      p_actual_flag :='A';
99951    END IF;
99952 
99953    --
99954    -- bulk performance
99955    --
99956    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
99957                                       p_header_num   => 0); -- 4262811
99958    --
99959    -- set accounting line options
99960    --
99961    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
99962            p_natural_side_code          => 'C'
99963          , p_gain_or_loss_flag          => 'N'
99964          , p_gl_transfer_mode_code      => 'S'
99965          , p_acct_entry_type_code       => 'A'
99966          , p_switch_side_flag           => 'Y'
99967          , p_merge_duplicate_code       => 'A'
99968          );
99969    --
99970    l_acc_rev_natural_side_code := 'D';  -- 4262811
99971    -- 
99972    --
99973    -- set accounting line type info
99974    --
99975    xla_ae_lines_pkg.SetAcctLineType
99976       (p_component_type             => l_component_type
99977       ,p_event_type_code            => l_event_type_code
99978       ,p_line_definition_owner_code => l_line_definition_owner_code
99979       ,p_line_definition_code       => l_line_definition_code
99980       ,p_accounting_line_code       => l_component_code
99981       ,p_accounting_line_type_code  => l_component_type_code
99982       ,p_accounting_line_appl_id    => l_component_appl_id
99983       ,p_amb_context_code           => l_amb_context_code
99984       ,p_entity_code                => l_entity_code
99985       ,p_event_class_code           => l_event_class_code);
99986    --
99987    -- set accounting class
99988    --
99989    xla_ae_lines_pkg.SetAcctClass(
99990            p_accounting_class_code  => 'LIABILITY'
99991          , p_ae_header_id           => l_ae_header_id
99992          );
99993 
99994    --
99995    -- set rounding class
99996    --
99997    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
99998                       'LIABILITY';
99999 
100000    --
100001    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
100002    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
100003    --
100004    -- bulk performance
100005    --
100006    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
100007 
100008    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
100009       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
100010 
100011    -- 4955764
100012    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100016    
100013       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
100014 
100015    -- 4458381 Public Sector Enh
100017    --
100018    -- set accounting attributes for the line type
100019    --
100020    l_entered_amt_idx := 24;
100021    l_accted_amt_idx  := 29;
100022    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
100023    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
100024    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
100025    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
100026    l_rec_acct_attrs.array_num_value(2)  := 
100027 xla_ae_sources_pkg.GetSystemSourceNum(
100028    p_source_code           => 'XLA_EVENT_APPL_ID'
100029  , p_source_type_code      => 'Y'
100030  , p_source_application_id =>  602
100031 );
100032    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
100033    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
100034    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
100035    l_rec_acct_attrs.array_char_value(4)  := 
100036 xla_ae_sources_pkg.GetSystemSourceChar(
100037    p_source_code           => 'XLA_ENTITY_CODE'
100038  , p_source_type_code      => 'Y'
100039  , p_source_application_id =>  602
100040 );
100041    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
100042    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
100043    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
100044    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
100045    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
100046    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
100047    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
100048    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
100049    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
100050    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
100051    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
100052    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
100053    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
100054    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
100055    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
100056    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
100057    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
100058    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
100059    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
100060    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
100061    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
100062    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
100063    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
100064    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
100065    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
100066    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
100067    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
100068    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
100069    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
100070    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
100071    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
100072    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
100073    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
100074    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
100075    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
100076    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
100077    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
100078    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
100082    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
100079    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
100080    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
100081    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
100083    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
100084    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
100085    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
100086    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
100087    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
100088    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
100089    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
100090    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
100091    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
100092    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
100093    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
100094    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
100095    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
100096    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
100097    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
100098    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
100099    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
100100    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
100101    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
100102    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
100103    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
100104    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
100105    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
100106    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
100107    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
100108    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
100109    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
100110    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
100111    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
100112    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
100113    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
100114    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
100115    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
100116    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
100117    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
100118    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
100119    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
100120    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
100121 
100122    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
100126    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
100123    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
100124 
100125    ---------------------------------------------------------------------------------------------------------------
100127    ---------------------------------------------------------------------------------------------------------------
100128    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
100129 
100130    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100131    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100132 
100133    IF xla_accounting_cache_pkg.GetValueChar
100134          (p_source_code         => 'LEDGER_CATEGORY_CODE'
100135          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
100136    AND l_bflow_method_code = 'PRIOR_ENTRY'
100137 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
100138    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
100139          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
100140        )
100141    THEN
100145            ,p_balance_type            => l_balance_type_code);
100142          xla_ae_lines_pkg.BflowUpgEntry
100143            (p_business_method_code    => l_bflow_method_code
100144            ,p_business_class_code     => l_bflow_class_code
100146    ELSE
100147       NULL;
100148 XLA_AE_LINES_PKG.business_flow_validation(
100149                                 p_business_method_code     => l_bflow_method_code
100150                                ,p_business_class_code      => l_bflow_class_code
100151                                ,p_inherit_description_flag => l_inherit_desc_flag);
100152    END IF;
100153 
100154    --
100155    -- call analytical criteria
100156    --
100157    
100158    --
100159    -- call description
100160    --
100161    
100162 xla_ae_lines_pkg.SetLineDescription(
100163    p_ae_header_id => l_ae_header_id
100164   ,p_description  => Description_2 (
100165      p_application_id         => p_application_id
100166    , p_ae_header_id           => l_ae_header_id 
100167 , p_source_1 => p_source_1
100168    )
100169 );
100170 
100171 
100172    --
100173    -- call ADRs
100174    -- Bug 4922099
100175    --
100176    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
100177         (NVL(l_actual_upg_option, 'N') = 'O') OR
100178         (NVL(l_enc_upg_option, 'N') = 'O')
100179       )
100180    THEN
100181    NULL;
100182    --
100183    --
100184    
100185    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
100186      p_code_combination_id      => TO_NUMBER(C_NUM)
100187    , p_value_type_code          => NULL
100188    , p_transaction_coa_id       => null
100189    , p_accounting_coa_id        => null
100190    , p_adr_code                 => NULL
100191    , p_adr_type_code            => NULL
100192    , p_component_type           => l_component_type
100193    , p_component_code           => l_component_code
100194    , p_component_type_code      => l_component_type_code
100195    , p_component_appl_id        => l_component_appl_id
100196    , p_amb_context_code         => l_amb_context_code
100197    , p_side                     => NULL
100198    );
100199 
100200    
100201   -- initialise segments
100202   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100203   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100204   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100205   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100206   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100207   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100208   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100209   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100210   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100211   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100212   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100213   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100214   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100215   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100216   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100217   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100218   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100219   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100220   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100221   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100222   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100223   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100224   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100225   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100226   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100227   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100228   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100229   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100230   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100231   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100232   --
100233 
100234    --
100235 
100236 
100237    l_segment := AcctDerRule_14(
100238            p_application_id           => p_application_id
100239          , p_ae_header_id             => l_ae_header_id 
100240 , p_source_22 => p_source_22
100241          , x_transaction_coa_id       => l_adr_transaction_coa_id
100242          , x_accounting_coa_id        => l_adr_accounting_coa_id
100243          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
100244          , x_flex_value_set_id        => l_adr_flex_value_set_id
100245          , x_value_type_code          => l_adr_value_type_code
100246          , x_value_combination_id     => l_adr_value_combination_id
100250    );
100247          , x_value_segment_code       => l_adr_value_segment_code
100248          , p_side                     => 'NA'
100249          , p_override_seg_flag        => 'Y'
100251 
100252    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
100253 
100254       xla_ae_lines_pkg.set_segment(
100255           p_to_segment_code         => 'GL_ACCOUNT'
100256         , p_segment_value           => l_segment
100257         , p_from_segment_code       => l_adr_value_segment_code
100258         , p_from_combination_id     => l_adr_value_combination_id
100259         , p_value_type_code         => l_adr_value_type_code
100260         , p_transaction_coa_id      => l_adr_transaction_coa_id
100261         , p_accounting_coa_id       => l_adr_accounting_coa_id
100262         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
100263         , p_flex_value_set_id       => l_adr_flex_value_set_id
100264         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
100265         , p_adr_type_code           => 'S'
100266         , p_component_type          => l_component_type
100267         , p_component_code          => l_component_code
100268         , p_component_type_code     => l_component_type_code
100269         , p_component_appl_id       => l_component_appl_id
100270         , p_amb_context_code        => l_amb_context_code
100271         , p_entity_code             => 'AP_INVOICES'
100272         , p_event_class_code        => 'INVOICES'
100273         , p_side                    => 'NA'
100274         );
100275 
100276   END IF;
100277 
100278    --
100279    --
100280    END IF;
100281    --
100282    -- Bug 4922099
100283    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
100284           (NVL(l_enc_upg_option, 'N') = 'O')
100285         ) AND
100286         (l_bflow_method_code = 'PRIOR_ENTRY')
100287       )
100288    THEN
100289       IF
100290       --
100291       1 = 2
100292       --
100293       THEN
100294       xla_accounting_err_pkg.build_message
100295                                     (p_appli_s_name            => 'XLA'
100296                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
100297                                     ,p_token_1                 => 'LINE_NUMBER'
100298                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
100299                                     ,p_token_2                 => 'LINE_TYPE_NAME'
100300                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
100301                                                                              l_component_type
100302                                                                             ,l_component_code
100303                                                                             ,l_component_type_code
100304                                                                             ,l_component_appl_id
100305                                                                             ,l_amb_context_code
100306                                                                             ,l_entity_code
100307                                                                             ,l_event_class_code
100308                                                                            )
100309                                     ,p_token_3                 => 'OWNER'
100310                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
100311                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
100312                                                                           ,p_lookup_code    => l_component_type_code
100313                                                                          )
100314                                     ,p_token_4                 => 'PRODUCT_NAME'
100315                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
100316                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
100317                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
100318                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
100319                                     ,p_ae_header_id            =>  NULL
100320                                        );
100321 
100322         IF (C_LEVEL_ERROR>= g_log_level) THEN
100323                  trace
100324                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
100325                       ,p_level    => C_LEVEL_ERROR
100326                       ,p_module   => l_log_module);
100327         END IF;
100328       END IF;
100329    END IF;
100330    --
100331    --
100332    ------------------------------------------------------------------------------------------------
100333    -- 4219869 Business Flow
100334    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
100335    -- Prior Entry.  Currently, the following code is always generated.
100336    ------------------------------------------------------------------------------------------------
100337    XLA_AE_LINES_PKG.ValidateCurrentLine;
100338 
100339    ------------------------------------------------------------------------------------
100343    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
100340    -- 4219869 Business Flow
100341    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
100342    ------------------------------------------------------------------------------------
100344 
100345    ----------------------------------------------------------------------------------
100346    -- 4219869 Business Flow
100347    -- Update journal entry status -- Need to generate this within IF <condition>
100348    ----------------------------------------------------------------------------------
100349    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
100350          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
100351          ,p_balance_type_code => l_balance_type_code
100352          );
100353 
100354    -------------------------------------------------------------------------------------------
100355    -- 4262811 - Generate the Accrual Reversal lines
100356    -------------------------------------------------------------------------------------------
100357    BEGIN
100358       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
100359                               (g_array_event(p_event_id).array_value_num('header_index'));
100360       IF l_acc_rev_flag IS NULL THEN
100361          l_acc_rev_flag := 'N';
100362       END IF;
100363    EXCEPTION
100364       WHEN OTHERS THEN
100365          l_acc_rev_flag := 'N';
100366    END;
100367    --
100368    IF (l_acc_rev_flag = 'Y') THEN
100369 
100373        ------------------------------------------------------------------------------------------
100370        -- 4645092  ------------------------------------------------------------------------------
100371        -- To allow MPA report to determine if it should generate report process
100372        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
100374 
100375        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
100376        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
100377    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
100378    -- call ADRs
100379    -- Bug 4922099
100380    --
100381    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
100382         (NVL(l_actual_upg_option, 'N') = 'O') OR
100383         (NVL(l_enc_upg_option, 'N') = 'O')
100384       )
100385    THEN
100386    NULL;
100387    --
100388    --
100389    
100390    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
100391      p_code_combination_id      => TO_NUMBER(C_NUM)
100392    , p_value_type_code          => NULL
100393    , p_transaction_coa_id       => null
100394    , p_accounting_coa_id        => null
100395    , p_adr_code                 => NULL
100396    , p_adr_type_code            => NULL
100397    , p_component_type           => l_component_type
100398    , p_component_code           => l_component_code
100399    , p_component_type_code      => l_component_type_code
100400    , p_component_appl_id        => l_component_appl_id
100401    , p_amb_context_code         => l_amb_context_code
100402    , p_side                     => NULL
100403    );
100404 
100405    
100406   -- initialise segments
100407   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100408   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100409   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100410   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100411   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100412   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100413   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100414   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100415   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
100416   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100417   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100418   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100419   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100420   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100421   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100422   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100423   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100424   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100425   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100426   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100430   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100427   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100428   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100429   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100431   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100432   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100433   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100434   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100435   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100436   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
100437   --
100438 
100439    --
100440 
100441 
100442    l_segment := AcctDerRule_14(
100443            p_application_id           => p_application_id
100444          , p_ae_header_id             => l_ae_header_id 
100445 , p_source_22 => p_source_22
100446          , x_transaction_coa_id       => l_adr_transaction_coa_id
100447          , x_accounting_coa_id        => l_adr_accounting_coa_id
100448          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
100449          , x_flex_value_set_id        => l_adr_flex_value_set_id
100450          , x_value_type_code          => l_adr_value_type_code
100451          , x_value_combination_id     => l_adr_value_combination_id
100452          , x_value_segment_code       => l_adr_value_segment_code
100453          , p_side                     => 'NA'
100454          , p_override_seg_flag        => 'Y'
100455    );
100456 
100457    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
100458 
100459       xla_ae_lines_pkg.set_segment(
100460           p_to_segment_code         => 'GL_ACCOUNT'
100461         , p_segment_value           => l_segment
100462         , p_from_segment_code       => l_adr_value_segment_code
100463         , p_from_combination_id     => l_adr_value_combination_id
100464         , p_value_type_code         => l_adr_value_type_code
100465         , p_transaction_coa_id      => l_adr_transaction_coa_id
100466         , p_accounting_coa_id       => l_adr_accounting_coa_id
100467         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
100468         , p_flex_value_set_id       => l_adr_flex_value_set_id
100469         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
100470         , p_adr_type_code           => 'S'
100471         , p_component_type          => l_component_type
100472         , p_component_code          => l_component_code
100473         , p_component_type_code     => l_component_type_code
100474         , p_component_appl_id       => l_component_appl_id
100475         , p_amb_context_code        => l_amb_context_code
100476         , p_entity_code             => 'AP_INVOICES'
100477         , p_event_class_code        => 'INVOICES'
100478         , p_side                    => 'NA'
100479         );
100480 
100481   END IF;
100482 
100483    --
100484    --
100485    END IF;
100486 
100487        --
100488        -- Update the line information that should be overwritten
100489        --
100490        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
100491                                          p_header_num   => 1);
100495 
100492        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
100493 
100494        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
100496        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
100497           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
100498        END IF;
100499 
100500       --
100501       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
100502       --
100503       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
100504           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
100505       ELSE
100506           ---------------------------------------------------------------------------------------------------
100507           -- 4262811a Switch Sign
100508           ---------------------------------------------------------------------------------------------------
100512           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
100509           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
100510           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
100511                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100513                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100514           -- 5132302
100515           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
100516                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100517 
100518       END IF;
100519 
100520       -- 4955764
100521       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100522       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
100523 
100524 
100525       XLA_AE_LINES_PKG.ValidateCurrentLine;
100526       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
100527 
100528       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
100529                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
100530                ,p_balance_type_code => l_balance_type_code);
100531 
100532    END IF;
100533 
100534    -----------------------------------------------------------------------------------------
100535    -- 4262811 Multiperiod Accounting
100536    -----------------------------------------------------------------------------------------
100537      -- No MPA option is assigned.
100538 
100539 
100540 END IF;
100541 END IF;
100542 --
100543 
100544 --
100545 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100546    trace
100547       (p_msg      => 'END of AcctLineType_175'
100548       ,p_level    => C_LEVEL_PROCEDURE
100549       ,p_module   => l_log_module);
100550 END IF;
100551 --
100552 EXCEPTION
100553   WHEN xla_exceptions_pkg.application_exception THEN
100554       RAISE;
100555   WHEN OTHERS THEN
100556        xla_exceptions_pkg.raise_message
100557            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_175');
100558 END AcctLineType_175;
100559 --
100560 
100561 ---------------------------------------
100562 --
100563 -- PRIVATE FUNCTION
100564 --         AcctLineType_176
100565 --
100566 ---------------------------------------
100567 PROCEDURE AcctLineType_176 (
100568   p_application_id        IN NUMBER
100569  ,p_event_id              IN NUMBER
100570  ,p_calculate_acctd_flag  IN VARCHAR2
100571  ,p_calculate_g_l_flag    IN VARCHAR2
100572  ,p_actual_flag           IN OUT VARCHAR2
100573  ,p_balance_type_code     OUT VARCHAR2
100574  ,p_gain_or_loss_ref      OUT VARCHAR2
100575  
100576 --Invoice Distribution Description
100577  , p_source_1            IN VARCHAR2
100578 --Automatic Offsets Value
100579  , p_source_3            IN VARCHAR2
100580  , p_source_3_meaning    IN VARCHAR2
100581 --Invoice Distribution Ledger Amount
100582  , p_source_9            IN NUMBER
100583 --Invoice Liability Account
100584  , p_source_22            IN NUMBER
100585 --Accounting Reversal Indicator
100586  , p_source_41            IN VARCHAR2
100587 --Distribution Link Type
100588  , p_source_43            IN VARCHAR2
100589 --Allocation to Main Distribution Identifier
100590  , p_source_45            IN NUMBER
100591 --Invoice Identifier
100592  , p_source_46            IN NUMBER
100593 --Invoice Distribution Identifier
100594  , p_source_52            IN NUMBER
100595 --Payables Encumbrance Upgrade Credit Account
100596  , p_source_53            IN NUMBER
100597 --Payables Encumbrance Upgrade Credit Amount
100598  , p_source_54            IN NUMBER
100599 --Invoice Currency Code
100600  , p_source_55            IN VARCHAR2
100601 --Payables Encumbrance Upgrade Credit Base Amount
100602  , p_source_56            IN NUMBER
100603 --Payables Encumbrance Upgrade Debit Account
100604  , p_source_57            IN NUMBER
100605 --Payables Encumbrance Upgrade Debit Amount
100606  , p_source_58            IN NUMBER
100607 --Payables Encumbrance Upgrade Debit Base Amount
100608  , p_source_59            IN NUMBER
100609 --Payables Encumbrance Upgrade Option
100610  , p_source_60            IN VARCHAR2
100611 --Invoice Distribution Amount
100612  , p_source_61            IN NUMBER
100613 --Deferred Accounting End Date
100614  , p_source_65            IN DATE
100615 --Deferred Accounting Option
100616  , p_source_66            IN VARCHAR2
100617 --Deferred Accounting Start Date
100618  , p_source_67            IN DATE
100619 --Override Accounted Amount Indicator
100620  , p_source_68            IN VARCHAR2
100621  , p_source_68_meaning    IN VARCHAR2
100622 --Invoice Supplier Identifier
100623  , p_source_69            IN NUMBER
100624 --Invoice Supplier Site Identifier
100625  , p_source_70            IN NUMBER
100626 --Third Party Type
100627  , p_source_71            IN VARCHAR2
100628 --Parent Reversal Identifier
100629  , p_source_72            IN NUMBER
100630 --Invoice Distribution Statistical Amount
100631  , p_source_73            IN NUMBER
100632 --Invoice Distribution Tax Line Identifier
100633  , p_source_74            IN NUMBER
100634 --Invoice Distribution Tax Distribution Identifier from Tax
100635  , p_source_75            IN NUMBER
100636 --Invoice Distribution Summary Tax Line Identifier
100637  , p_source_76            IN NUMBER
100641  , p_source_78            IN NUMBER
100638 --Payables Upgrade Credit Encumbrance Type Identifier
100639  , p_source_77            IN NUMBER
100640 --Payables Upgrade Debit Encumbrance Type Identifier
100645  , p_source_80            IN VARCHAR2
100642 --Business Flow Accounts Payable Application Identifier
100643  , p_source_79            IN NUMBER
100644 --Business Flow Invoice Distribution Type
100646 --Business Flow Invoice Entity Code
100647  , p_source_81            IN VARCHAR2
100648 --Business Flow Invoice Distribution Identifier
100649  , p_source_82            IN NUMBER
100650 --Business Flow Invoice Identifier
100651  , p_source_83            IN NUMBER
100652 --Self-Assessed Tax Flag
100653  , p_source_135            IN VARCHAR2
100654  , p_source_135_meaning    IN VARCHAR2
100655 --Invoice Exchange Date
100656  , p_source_136            IN DATE
100657 --Invoice Exchange Rate
100658  , p_source_137            IN NUMBER
100659 --Invoice Exchange Rate Type
100660  , p_source_138            IN VARCHAR2
100661 --Invoice Type
100662  , p_source_159            IN VARCHAR2
100663  , p_source_159_meaning    IN VARCHAR2
100664 )
100665 IS
100666 
100667 l_component_type              VARCHAR2(80);
100668 l_component_code              VARCHAR2(30);
100669 l_component_type_code         VARCHAR2(1);
100670 l_component_appl_id           INTEGER;
100671 l_amb_context_code            VARCHAR2(30);
100672 l_entity_code                 VARCHAR2(30);
100673 l_event_class_code            VARCHAR2(30);
100674 l_ae_header_id                NUMBER;
100675 l_event_type_code             VARCHAR2(30);
100676 l_line_definition_code        VARCHAR2(30);
100677 l_line_definition_owner_code  VARCHAR2(1);
100678 --
100679 -- adr variables
100680 l_segment                     VARCHAR2(30);
100681 l_ccid                        NUMBER;
100682 l_adr_transaction_coa_id      NUMBER;
100683 l_adr_accounting_coa_id       NUMBER;
100684 l_adr_flexfield_segment_code  VARCHAR2(30);
100685 l_adr_flex_value_set_id       NUMBER;
100686 l_adr_value_type_code         VARCHAR2(30);
100687 l_adr_value_combination_id    NUMBER;
100688 l_adr_value_segment_code      VARCHAR2(30);
100692 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
100689 
100690 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
100691 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
100693 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
100694 
100695 -- 4262811 Variables ------------------------------------------------------------------------------------------
100696 l_entered_amt_idx             NUMBER;
100697 l_accted_amt_idx              NUMBER;
100698 l_acc_rev_flag                VARCHAR2(1);
100699 l_accrual_line_num            NUMBER;
100700 l_tmp_amt                     NUMBER;
100701 l_acc_rev_natural_side_code   VARCHAR2(1);
100702 
100703 l_num_entries                 NUMBER;
100704 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
100705 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
100706 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
100707 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
100708 l_recog_line_1                NUMBER;
100709 l_recog_line_2                NUMBER;
100710 
100711 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
100712 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
100713 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
100714 
100715 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
100716 
100717 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
100718 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
100719 
100720 ---------------------------------------------------------------------------------------------------------------
100721 
100722 
100723 --
100724 -- bulk performance
100725 --
100726 l_balance_type_code           VARCHAR2(1);
100727 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
100728 l_log_module                  VARCHAR2(240);
100729 
100730 --
100731 -- Upgrade strategy
100732 --
100733 l_actual_upg_option           VARCHAR2(1);
100734 l_enc_upg_option           VARCHAR2(1);
100735 
100736 --
100737 BEGIN
100738 --
100739 IF g_log_enabled THEN
100740       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_176';
100741 END IF;
100742 --
100743 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100744 
100745       trace
100746          (p_msg      => 'BEGIN of AcctLineType_176'
100747          ,p_level    => C_LEVEL_PROCEDURE
100748          ,p_module   => l_log_module);
100749 
100750 END IF;
100751 --
100752 l_component_type             := 'AMB_JLT';
100753 l_component_code             := 'AP_LIAB_INV_AOS_BS';
100754 l_component_type_code        := 'S';
100755 l_component_appl_id          :=  200;
100756 l_amb_context_code           := 'DEFAULT';
100757 l_entity_code                := 'AP_INVOICES';
100758 l_event_class_code           := 'INVOICES';
100759 l_event_type_code            := 'INVOICES_ALL';
100760 l_line_definition_owner_code := 'S';
100761 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
100762 --
100763 l_balance_type_code          := 'A';
100764 l_segment                     := NULL;
100765 l_ccid                        := NULL;
100766 l_adr_transaction_coa_id      := NULL;
100767 l_adr_accounting_coa_id       := NULL;
100768 l_adr_flexfield_segment_code  := NULL;
100769 l_adr_flex_value_set_id       := NULL;
100770 l_adr_value_type_code         := NULL;
100771 l_adr_value_combination_id    := NULL;
100772 l_adr_value_segment_code      := NULL;
100773 
100774 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
100775 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
100776 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
100777 l_budgetary_control_flag     := 'N';
100778 
100779 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
100780 l_bflow_applied_to_amt       := NULL; -- 5132302
100781 l_entered_amt_idx            := NULL;          -- 4262811
100782 l_accted_amt_idx             := NULL;          -- 4262811
100783 l_acc_rev_flag               := NULL;          -- 4262811
100784 l_accrual_line_num           := NULL;          -- 4262811
100785 l_tmp_amt                    := NULL;          -- 4262811
100786 --
100787  
100788 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
100789     l_balance_type_code <> 'B' THEN
100790 IF NVL(p_source_3,'
100791 ') =  'BALANCING_SEGMENT' AND 
100792 (NVL(p_source_159,'
100793 ') =  'STANDARD' OR 
100794 NVL(p_source_159,'
100795 ') =  'MIXED' OR 
100796 NVL(p_source_159,'
100797 ') =  'AWT' OR 
100798 NVL(p_source_159,'
100799 ') =  'PO PRICE ADJUST' OR 
100800 NVL(p_source_159,'
100804 NVL(p_source_159,'
100801 ') =  'EXPENSE REPORT' OR 
100802 NVL(p_source_159,'
100803 ') =  'PAYMENT REQUEST' OR 
100805 ') =  'RETAINAGE RELEASE') AND 
100806 NVL(p_source_135,'
100807 ') <>  'Y'
100808  THEN 
100809 
100810    --
100811    XLA_AE_LINES_PKG.SetNewLine;
100812 
100813    p_balance_type_code          := l_balance_type_code;
100814    -- set the flag so later we will know whether the gain loss line needs to be created
100815    
100816    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
100817      p_actual_flag :='A';
100818    END IF;
100819 
100820    --
100821    -- bulk performance
100822    --
100823    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
100824                                       p_header_num   => 0); -- 4262811
100825    --
100826    -- set accounting line options
100827    --
100828    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
100829            p_natural_side_code          => 'C'
100830          , p_gain_or_loss_flag          => 'N'
100831          , p_gl_transfer_mode_code      => 'S'
100832          , p_acct_entry_type_code       => 'A'
100833          , p_switch_side_flag           => 'Y'
100834          , p_merge_duplicate_code       => 'A'
100835          );
100836    --
100837    l_acc_rev_natural_side_code := 'D';  -- 4262811
100838    -- 
100839    --
100840    -- set accounting line type info
100841    --
100842    xla_ae_lines_pkg.SetAcctLineType
100843       (p_component_type             => l_component_type
100844       ,p_event_type_code            => l_event_type_code
100845       ,p_line_definition_owner_code => l_line_definition_owner_code
100846       ,p_line_definition_code       => l_line_definition_code
100847       ,p_accounting_line_code       => l_component_code
100848       ,p_accounting_line_type_code  => l_component_type_code
100849       ,p_accounting_line_appl_id    => l_component_appl_id
100850       ,p_amb_context_code           => l_amb_context_code
100851       ,p_entity_code                => l_entity_code
100852       ,p_event_class_code           => l_event_class_code);
100853    --
100854    -- set accounting class
100855    --
100856    xla_ae_lines_pkg.SetAcctClass(
100857            p_accounting_class_code  => 'LIABILITY'
100858          , p_ae_header_id           => l_ae_header_id
100859          );
100860 
100861    --
100862    -- set rounding class
100863    --
100864    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
100865                       'LIABILITY';
100866 
100867    --
100868    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
100869    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
100870    --
100871    -- bulk performance
100872    --
100873    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
100874 
100875    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
100876       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
100877 
100878    -- 4955764
100879    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100880       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
100881 
100882    -- 4458381 Public Sector Enh
100883    
100884    --
100885    -- set accounting attributes for the line type
100886    --
100887    l_entered_amt_idx := 24;
100888    l_accted_amt_idx  := 29;
100889    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
100890    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
100891    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
100892    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
100893    l_rec_acct_attrs.array_num_value(2)  := 
100894 xla_ae_sources_pkg.GetSystemSourceNum(
100895    p_source_code           => 'XLA_EVENT_APPL_ID'
100896  , p_source_type_code      => 'Y'
100900    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
100897  , p_source_application_id =>  602
100898 );
100899    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
100901    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
100902    l_rec_acct_attrs.array_char_value(4)  := 
100903 xla_ae_sources_pkg.GetSystemSourceChar(
100904    p_source_code           => 'XLA_ENTITY_CODE'
100905  , p_source_type_code      => 'Y'
100906  , p_source_application_id =>  602
100907 );
100908    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
100909    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
100910    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
100911    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
100912    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
100913    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
100914    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
100915    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
100916    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
100917    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
100918    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
100919    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
100920    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
100921    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
100922    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
100923    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
100924    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
100925    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
100926    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
100927    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
100928    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
100929    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
100930    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
100931    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
100932    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
100933    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
100934    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
100935    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
100936    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
100937    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
100938    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
100939    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
100943    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
100940    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
100941    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
100942    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
100944    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
100945    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
100946    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
100947    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
100948    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
100949    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
100950    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
100951    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
100952    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
100953    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
100954    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
100955    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
100956    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
100957    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
100958    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
100962    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
100959    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
100960    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
100961    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
100963    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
100964    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
100965    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
100966    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
100967    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
100968    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
100969    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
100970    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
100971    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
100972    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
100973    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
100974    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
100975    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
100976    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
100977    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
100978    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
100979    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
100980    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
100981    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
100982    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
100983    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
100984    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
100985    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
100986    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
100987    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
100988 
100989    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
100990    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
100991 
100992    ---------------------------------------------------------------------------------------------------------------
100993    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
100994    ---------------------------------------------------------------------------------------------------------------
100995    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
100996 
100997    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100998    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100999 
101000    IF xla_accounting_cache_pkg.GetValueChar
101001          (p_source_code         => 'LEDGER_CATEGORY_CODE'
101002          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
101003    AND l_bflow_method_code = 'PRIOR_ENTRY'
101004 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
101005    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
101006          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
101007        )
101008    THEN
101009          xla_ae_lines_pkg.BflowUpgEntry
101010            (p_business_method_code    => l_bflow_method_code
101011            ,p_business_class_code     => l_bflow_class_code
101012            ,p_balance_type            => l_balance_type_code);
101013    ELSE
101014       NULL;
101015 XLA_AE_LINES_PKG.business_flow_validation(
101016                                 p_business_method_code     => l_bflow_method_code
101017                                ,p_business_class_code      => l_bflow_class_code
101018                                ,p_inherit_description_flag => l_inherit_desc_flag);
101019    END IF;
101020 
101021    --
101022    -- call analytical criteria
101023    --
101024    
101025    --
101026    -- call description
101027    --
101028    
101029 xla_ae_lines_pkg.SetLineDescription(
101030    p_ae_header_id => l_ae_header_id
101031   ,p_description  => Description_2 (
101032      p_application_id         => p_application_id
101033    , p_ae_header_id           => l_ae_header_id 
101034 , p_source_1 => p_source_1
101035    )
101036 );
101037 
101038 
101039    --
101040    -- call ADRs
101041    -- Bug 4922099
101042    --
101043    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101044         (NVL(l_actual_upg_option, 'N') = 'O') OR
101045         (NVL(l_enc_upg_option, 'N') = 'O')
101046       )
101047    THEN
101048    NULL;
101049    --
101050    --
101051    
101052   l_ccid := AcctDerRule_33(
101053            p_application_id           => p_application_id
101054          , p_ae_header_id             => l_ae_header_id 
101055 , p_source_22 => p_source_22
101056          , x_transaction_coa_id       => l_adr_transaction_coa_id
101057          , x_accounting_coa_id        => l_adr_accounting_coa_id
101058          , x_value_type_code          => l_adr_value_type_code
101059          , p_side                     => 'NA'
101060    );
101061 
101062    xla_ae_lines_pkg.set_ccid(
101063     p_code_combination_id          => l_ccid
101064   , p_value_type_code              => l_adr_value_type_code
101065   , p_transaction_coa_id           => l_adr_transaction_coa_id
101066   , p_accounting_coa_id            => l_adr_accounting_coa_id
101067   , p_adr_code                     => 'AP_LIAB'
101068   , p_adr_type_code                => 'S'
101072   , p_component_appl_id            => l_component_appl_id
101069   , p_component_type               => l_component_type
101070   , p_component_code               => l_component_code
101071   , p_component_type_code          => l_component_type_code
101073   , p_amb_context_code             => l_amb_context_code
101074   , p_side                         => 'NA'
101075   );
101076 
101077 
101078    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
101079      p_to_segment_code         => 'GL_BALANCING'
101080    , p_segment_value           => C_CHAR
101081    , p_from_segment_code       => NULL
101082    , p_from_combination_id     => NULL
101083    , p_value_type_code         => NULL
101084    , p_transaction_coa_id      => null
101085    , p_accounting_coa_id       => null
101086    , p_flexfield_segment_code  => NULL
101087    , p_flex_value_set_id       => NULL
101088    , p_adr_code                => NULL
101089    , p_adr_type_code           => NULL
101090    , p_component_type          => l_component_type
101091    , p_component_code          => l_component_code
101092    , p_component_type_code     => l_component_type_code
101093    , p_component_appl_id       => l_component_appl_id
101094    , p_amb_context_code        => l_amb_context_code
101095    , p_entity_code             => 'AP_INVOICES'
101096    , p_event_class_code        => 'INVOICES'
101097    , p_side                    => 'NA'
101098    );
101099    --
101100 
101101 
101102    --
101103    --
101104    END IF;
101105    --
101106    -- Bug 4922099
101107    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
101108           (NVL(l_enc_upg_option, 'N') = 'O')
101109         ) AND
101110         (l_bflow_method_code = 'PRIOR_ENTRY')
101111       )
101112    THEN
101113       IF
101114       --
101115       1 = 2
101116       --
101117       THEN
101118       xla_accounting_err_pkg.build_message
101119                                     (p_appli_s_name            => 'XLA'
101120                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101121                                     ,p_token_1                 => 'LINE_NUMBER'
101122                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
101123                                     ,p_token_2                 => 'LINE_TYPE_NAME'
101124                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
101125                                                                              l_component_type
101126                                                                             ,l_component_code
101127                                                                             ,l_component_type_code
101128                                                                             ,l_component_appl_id
101129                                                                             ,l_amb_context_code
101130                                                                             ,l_entity_code
101131                                                                             ,l_event_class_code
101132                                                                            )
101133                                     ,p_token_3                 => 'OWNER'
101134                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
101135                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
101136                                                                           ,p_lookup_code    => l_component_type_code
101137                                                                          )
101138                                     ,p_token_4                 => 'PRODUCT_NAME'
101139                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
101140                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
101141                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
101142                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
101143                                     ,p_ae_header_id            =>  NULL
101144                                        );
101145 
101146         IF (C_LEVEL_ERROR>= g_log_level) THEN
101147                  trace
101148                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101149                       ,p_level    => C_LEVEL_ERROR
101150                       ,p_module   => l_log_module);
101151         END IF;
101152       END IF;
101153    END IF;
101154    --
101155    --
101156    ------------------------------------------------------------------------------------------------
101157    -- 4219869 Business Flow
101158    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
101159    -- Prior Entry.  Currently, the following code is always generated.
101160    ------------------------------------------------------------------------------------------------
101161    XLA_AE_LINES_PKG.ValidateCurrentLine;
101162 
101163    ------------------------------------------------------------------------------------
101167    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
101164    -- 4219869 Business Flow
101165    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
101166    ------------------------------------------------------------------------------------
101168 
101169    ----------------------------------------------------------------------------------
101170    -- 4219869 Business Flow
101171    -- Update journal entry status -- Need to generate this within IF <condition>
101172    ----------------------------------------------------------------------------------
101173    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
101174          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
101175          ,p_balance_type_code => l_balance_type_code
101176          );
101177 
101178    -------------------------------------------------------------------------------------------
101179    -- 4262811 - Generate the Accrual Reversal lines
101180    -------------------------------------------------------------------------------------------
101181    BEGIN
101182       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
101183                               (g_array_event(p_event_id).array_value_num('header_index'));
101184       IF l_acc_rev_flag IS NULL THEN
101185          l_acc_rev_flag := 'N';
101186       END IF;
101187    EXCEPTION
101188       WHEN OTHERS THEN
101189          l_acc_rev_flag := 'N';
101190    END;
101191    --
101192    IF (l_acc_rev_flag = 'Y') THEN
101193 
101197        ------------------------------------------------------------------------------------------
101194        -- 4645092  ------------------------------------------------------------------------------
101195        -- To allow MPA report to determine if it should generate report process
101196        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
101198 
101199        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
101200        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
101201    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
101202    -- call ADRs
101203    -- Bug 4922099
101204    --
101205    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101206         (NVL(l_actual_upg_option, 'N') = 'O') OR
101207         (NVL(l_enc_upg_option, 'N') = 'O')
101208       )
101209    THEN
101210    NULL;
101211    --
101212    --
101213    
101214   l_ccid := AcctDerRule_33(
101215            p_application_id           => p_application_id
101216          , p_ae_header_id             => l_ae_header_id 
101217 , p_source_22 => p_source_22
101218          , x_transaction_coa_id       => l_adr_transaction_coa_id
101219          , x_accounting_coa_id        => l_adr_accounting_coa_id
101220          , x_value_type_code          => l_adr_value_type_code
101221          , p_side                     => 'NA'
101222    );
101223 
101224    xla_ae_lines_pkg.set_ccid(
101225     p_code_combination_id          => l_ccid
101226   , p_value_type_code              => l_adr_value_type_code
101227   , p_transaction_coa_id           => l_adr_transaction_coa_id
101228   , p_accounting_coa_id            => l_adr_accounting_coa_id
101229   , p_adr_code                     => 'AP_LIAB'
101230   , p_adr_type_code                => 'S'
101231   , p_component_type               => l_component_type
101232   , p_component_code               => l_component_code
101233   , p_component_type_code          => l_component_type_code
101234   , p_component_appl_id            => l_component_appl_id
101238 
101235   , p_amb_context_code             => l_amb_context_code
101236   , p_side                         => 'NA'
101237   );
101239 
101240    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
101241      p_to_segment_code         => 'GL_BALANCING'
101242    , p_segment_value           => C_CHAR
101243    , p_from_segment_code       => NULL
101244    , p_from_combination_id     => NULL
101245    , p_value_type_code         => NULL
101246    , p_transaction_coa_id      => null
101247    , p_accounting_coa_id       => null
101248    , p_flexfield_segment_code  => NULL
101249    , p_flex_value_set_id       => NULL
101250    , p_adr_code                => NULL
101251    , p_adr_type_code           => NULL
101252    , p_component_type          => l_component_type
101253    , p_component_code          => l_component_code
101254    , p_component_type_code     => l_component_type_code
101255    , p_component_appl_id       => l_component_appl_id
101256    , p_amb_context_code        => l_amb_context_code
101257    , p_entity_code             => 'AP_INVOICES'
101258    , p_event_class_code        => 'INVOICES'
101259    , p_side                    => 'NA'
101260    );
101261    --
101262 
101263 
101264    --
101265    --
101266    END IF;
101267 
101268        --
101269        -- Update the line information that should be overwritten
101270        --
101271        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
101272                                          p_header_num   => 1);
101273        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
101274 
101275        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
101276 
101277        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
101278           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
101279        END IF;
101280 
101281       --
101282       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
101283       --
101284       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
101285           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
101286       ELSE
101287           ---------------------------------------------------------------------------------------------------
101288           -- 4262811a Switch Sign
101289           ---------------------------------------------------------------------------------------------------
101290           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
101291           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
101292                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101293           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
101294                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101295           -- 5132302
101296           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
101297                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101298 
101299       END IF;
101300 
101301       -- 4955764
101302       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
101303       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
101304 
101305 
101306       XLA_AE_LINES_PKG.ValidateCurrentLine;
101307       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
101308 
101309       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
101310                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
101311                ,p_balance_type_code => l_balance_type_code);
101312 
101313    END IF;
101314 
101315    -----------------------------------------------------------------------------------------
101316    -- 4262811 Multiperiod Accounting
101317    -----------------------------------------------------------------------------------------
101318      -- No MPA option is assigned.
101319 
101320 
101321 END IF;
101322 END IF;
101323 --
101324 
101325 --
101326 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101327    trace
101328       (p_msg      => 'END of AcctLineType_176'
101329       ,p_level    => C_LEVEL_PROCEDURE
101330       ,p_module   => l_log_module);
101331 END IF;
101332 --
101333 EXCEPTION
101334   WHEN xla_exceptions_pkg.application_exception THEN
101335       RAISE;
101336   WHEN OTHERS THEN
101337        xla_exceptions_pkg.raise_message
101341 
101338            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_176');
101339 END AcctLineType_176;
101340 --
101342 ---------------------------------------
101343 --
101344 -- PRIVATE FUNCTION
101345 --         AcctLineType_177
101346 --
101347 ---------------------------------------
101348 PROCEDURE AcctLineType_177 (
101349   p_application_id        IN NUMBER
101350  ,p_event_id              IN NUMBER
101351  ,p_calculate_acctd_flag  IN VARCHAR2
101352  ,p_calculate_g_l_flag    IN VARCHAR2
101353  ,p_actual_flag           IN OUT VARCHAR2
101354  ,p_balance_type_code     OUT VARCHAR2
101355  ,p_gain_or_loss_ref      OUT VARCHAR2
101356  
101357 --Accounting Reversal Indicator
101358  , p_source_41            IN VARCHAR2
101359 --Distribution Link Type
101360  , p_source_43            IN VARCHAR2
101361 --Override Accounted Amount Indicator
101362  , p_source_68            IN VARCHAR2
101363  , p_source_68_meaning    IN VARCHAR2
101364 --Third Party Type
101365  , p_source_71            IN VARCHAR2
101366 --Invoice Distribution Tax Line Identifier
101367  , p_source_74            IN NUMBER
101368 --Invoice Distribution Tax Distribution Identifier from Tax
101369  , p_source_75            IN NUMBER
101370 --Invoice Distribution Summary Tax Line Identifier
101371  , p_source_76            IN NUMBER
101372 --Business Flow Accounts Payable Application Identifier
101373  , p_source_79            IN NUMBER
101374 --Business Flow Invoice Distribution Type
101375  , p_source_80            IN VARCHAR2
101376 --Business Flow Invoice Entity Code
101377  , p_source_81            IN VARCHAR2
101378 --Business Flow Invoice Distribution Identifier
101379  , p_source_82            IN NUMBER
101380 --Business Flow Invoice Identifier
101381  , p_source_83            IN NUMBER
101382 --When to Account for Payment Option
101383  , p_source_89            IN VARCHAR2
101384 --Payment Distribution Type
101385  , p_source_90            IN VARCHAR2
101386  , p_source_90_meaning    IN VARCHAR2
101387 --Payment Distribution Amount
101388  , p_source_91            IN NUMBER
101389 --Payment Distribution Identifier
101390  , p_source_96            IN NUMBER
101391 --Payment Distribution Reversed Identifier
101392  , p_source_104            IN NUMBER
101393 --Payment Currency Code
101394  , p_source_106            IN VARCHAR2
101395 --Payment Distribution (Invoice Rate) Ledger Amount
101396  , p_source_109            IN NUMBER
101397 --Payment Type
101398  , p_source_115            IN VARCHAR2
101399  , p_source_115_meaning    IN VARCHAR2
101400 --Invoice Distribution Amount of the Payment Distribution
101401  , p_source_117            IN NUMBER
101402 --Invoice Type Paid
101403  , p_source_158            IN VARCHAR2
101404  , p_source_158_meaning    IN VARCHAR2
101405 )
101406 IS
101407 
101408 l_component_type              VARCHAR2(80);
101409 l_component_code              VARCHAR2(30);
101410 l_component_type_code         VARCHAR2(1);
101411 l_component_appl_id           INTEGER;
101412 l_amb_context_code            VARCHAR2(30);
101413 l_entity_code                 VARCHAR2(30);
101414 l_event_class_code            VARCHAR2(30);
101415 l_ae_header_id                NUMBER;
101416 l_event_type_code             VARCHAR2(30);
101417 l_line_definition_code        VARCHAR2(30);
101418 l_line_definition_owner_code  VARCHAR2(1);
101419 --
101420 -- adr variables
101421 l_segment                     VARCHAR2(30);
101422 l_ccid                        NUMBER;
101423 l_adr_transaction_coa_id      NUMBER;
101424 l_adr_accounting_coa_id       NUMBER;
101425 l_adr_flexfield_segment_code  VARCHAR2(30);
101426 l_adr_flex_value_set_id       NUMBER;
101427 l_adr_value_type_code         VARCHAR2(30);
101428 l_adr_value_combination_id    NUMBER;
101429 l_adr_value_segment_code      VARCHAR2(30);
101430 
101431 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
101432 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
101433 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
101434 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
101435 
101436 -- 4262811 Variables ------------------------------------------------------------------------------------------
101437 l_entered_amt_idx             NUMBER;
101438 l_accted_amt_idx              NUMBER;
101439 l_acc_rev_flag                VARCHAR2(1);
101440 l_accrual_line_num            NUMBER;
101441 l_tmp_amt                     NUMBER;
101442 l_acc_rev_natural_side_code   VARCHAR2(1);
101443 
101444 l_num_entries                 NUMBER;
101445 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
101446 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
101447 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
101448 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
101449 l_recog_line_1                NUMBER;
101450 l_recog_line_2                NUMBER;
101451 
101452 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
101453 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
101454 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
101455 
101456 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
101457 
101461 ---------------------------------------------------------------------------------------------------------------
101458 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
101459 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
101460 
101462 
101463 
101464 --
101465 -- bulk performance
101466 --
101467 l_balance_type_code           VARCHAR2(1);
101468 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
101469 l_log_module                  VARCHAR2(240);
101470 
101471 --
101472 -- Upgrade strategy
101473 --
101474 l_actual_upg_option           VARCHAR2(1);
101475 l_enc_upg_option           VARCHAR2(1);
101476 
101477 --
101478 BEGIN
101479 --
101480 IF g_log_enabled THEN
101481       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_177';
101482 END IF;
101483 --
101484 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101485 
101486       trace
101487          (p_msg      => 'BEGIN of AcctLineType_177'
101488          ,p_level    => C_LEVEL_PROCEDURE
101489          ,p_module   => l_log_module);
101490 
101491 END IF;
101492 --
101493 l_component_type             := 'AMB_JLT';
101494 l_component_code             := 'AP_LIAB_PMT';
101495 l_component_type_code        := 'S';
101496 l_component_appl_id          :=  200;
101497 l_amb_context_code           := 'DEFAULT';
101498 l_entity_code                := 'AP_PAYMENTS';
101499 l_event_class_code           := 'PAYMENTS';
101503 --
101500 l_event_type_code            := 'PAYMENTS_ALL';
101501 l_line_definition_owner_code := 'S';
101502 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
101504 l_balance_type_code          := 'A';
101505 l_segment                     := NULL;
101506 l_ccid                        := NULL;
101507 l_adr_transaction_coa_id      := NULL;
101508 l_adr_accounting_coa_id       := NULL;
101509 l_adr_flexfield_segment_code  := NULL;
101510 l_adr_flex_value_set_id       := NULL;
101511 l_adr_value_type_code         := NULL;
101512 l_adr_value_combination_id    := NULL;
101513 l_adr_value_segment_code      := NULL;
101514 
101515 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
101516 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
101517 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
101518 l_budgetary_control_flag     := 'N';
101519 
101520 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
101521 l_bflow_applied_to_amt       := NULL; -- 5132302
101522 l_entered_amt_idx            := NULL;          -- 4262811
101523 l_accted_amt_idx             := NULL;          -- 4262811
101524 l_acc_rev_flag               := NULL;          -- 4262811
101525 l_accrual_line_num           := NULL;          -- 4262811
101526 l_tmp_amt                    := NULL;          -- 4262811
101527 --
101528  
101529 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
101530     l_balance_type_code <> 'B' THEN
101531 IF NVL(p_source_89,'
101532 ') <>  'CLEAR_CLEAR' AND 
101533 NVL(p_source_158,'
101534 ') <>  'INTEREST' AND 
101535 (NVL(p_source_90,'
101536 ') =  'ROUNDING' OR 
101537 NVL(p_source_90,'
101538 ') =  'CASH' OR 
101539 NVL(p_source_90,'
101540 ') =  'DISCOUNT') AND 
101541 NVL(p_source_115,'
101542 ') <>  'R'
101543  THEN 
101544 
101545    --
101546    XLA_AE_LINES_PKG.SetNewLine;
101547 
101548    p_balance_type_code          := l_balance_type_code;
101549    -- set the flag so later we will know whether the gain loss line needs to be created
101550    
101551    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
101552      p_actual_flag :='A';
101553    END IF;
101554 
101555    --
101556    -- bulk performance
101557    --
101558    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
101559                                       p_header_num   => 0); -- 4262811
101560    --
101564            p_natural_side_code          => 'D'
101561    -- set accounting line options
101562    --
101563    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
101565          , p_gain_or_loss_flag          => 'N'
101566          , p_gl_transfer_mode_code      => 'S'
101567          , p_acct_entry_type_code       => 'A'
101568          , p_switch_side_flag           => 'Y'
101569          , p_merge_duplicate_code       => 'A'
101570          );
101571    --
101572    l_acc_rev_natural_side_code := 'C';  -- 4262811
101573    -- 
101574    --
101575    -- set accounting line type info
101576    --
101577    xla_ae_lines_pkg.SetAcctLineType
101578       (p_component_type             => l_component_type
101579       ,p_event_type_code            => l_event_type_code
101580       ,p_line_definition_owner_code => l_line_definition_owner_code
101581       ,p_line_definition_code       => l_line_definition_code
101582       ,p_accounting_line_code       => l_component_code
101583       ,p_accounting_line_type_code  => l_component_type_code
101584       ,p_accounting_line_appl_id    => l_component_appl_id
101585       ,p_amb_context_code           => l_amb_context_code
101586       ,p_entity_code                => l_entity_code
101587       ,p_event_class_code           => l_event_class_code);
101588    --
101589    -- set accounting class
101590    --
101591    xla_ae_lines_pkg.SetAcctClass(
101592            p_accounting_class_code  => 'LIABILITY'
101593          , p_ae_header_id           => l_ae_header_id
101594          );
101595 
101596    --
101597    -- set rounding class
101598    --
101599    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
101600                       'LIABILITY';
101601 
101602    --
101603    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
101604    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
101605    --
101606    -- bulk performance
101607    --
101608    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
101609 
101610    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
101611       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
101612 
101613    -- 4955764
101614    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
101615       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
101616 
101617    -- 4458381 Public Sector Enh
101618    
101619    --
101620    -- set accounting attributes for the line type
101621    --
101622    l_entered_amt_idx := 10;
101623    l_accted_amt_idx  := 12;
101624    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
101625    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
101626    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
101627    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
101628    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
101629    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
101630    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
101631    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
101632    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
101633    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
101634    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
101635    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
101636    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
101637    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
101638    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
101639    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
101640    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
101641    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
101642    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
101643    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
101644    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
101645    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
101649    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
101646    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
101647    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
101648    l_rec_acct_attrs.array_num_value(12)  := p_source_109;
101650    l_rec_acct_attrs.array_char_value(13)  := p_source_68;
101651    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
101652    l_rec_acct_attrs.array_char_value(14)  := p_source_71;
101653    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
101654    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_104);
101655    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
101656    l_rec_acct_attrs.array_char_value(16)  := p_source_43;
101657    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
101658    l_rec_acct_attrs.array_num_value(17)  := p_source_74;
101659    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
101660    l_rec_acct_attrs.array_num_value(18)  := p_source_75;
101661    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
101662    l_rec_acct_attrs.array_num_value(19)  := p_source_76;
101663 
101664    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
101665    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
101666 
101667    ---------------------------------------------------------------------------------------------------------------
101668    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
101669    ---------------------------------------------------------------------------------------------------------------
101670    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
101671 
101672    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
101673    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
101674 
101675    IF xla_accounting_cache_pkg.GetValueChar
101676          (p_source_code         => 'LEDGER_CATEGORY_CODE'
101677          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
101678    AND l_bflow_method_code = 'PRIOR_ENTRY'
101679 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
101680    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
101681          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
101682        )
101683    THEN
101684          xla_ae_lines_pkg.BflowUpgEntry
101685            (p_business_method_code    => l_bflow_method_code
101686            ,p_business_class_code     => l_bflow_class_code
101687            ,p_balance_type            => l_balance_type_code);
101688    ELSE
101689       NULL;
101690 XLA_AE_LINES_PKG.business_flow_validation(
101691                                 p_business_method_code     => l_bflow_method_code
101692                                ,p_business_class_code      => l_bflow_class_code
101693                                ,p_inherit_description_flag => l_inherit_desc_flag);
101694    END IF;
101695 
101696    --
101697    -- call analytical criteria
101698    --
101699    -- Inherited Analytical Criteria for business flow method of Prior Entry.
101700    --
101701    -- call description
101702    --
101703    -- No description or it is inherited.
101704    --
101705    -- call ADRs
101706    -- Bug 4922099
101707    --
101708    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101709         (NVL(l_actual_upg_option, 'N') = 'O') OR
101710         (NVL(l_enc_upg_option, 'N') = 'O')
101711       )
101712    THEN
101713    NULL;
101714    --
101715    --
101716    
101717    --
101718    --
101719    END IF;
101720    --
101721    -- Bug 4922099
101722    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
101723           (NVL(l_enc_upg_option, 'N') = 'O')
101724         ) AND
101725         (l_bflow_method_code = 'PRIOR_ENTRY')
101726       )
101727    THEN
101728       IF
101729       --
101730       1 = 1
101731       --
101732       THEN
101733       xla_accounting_err_pkg.build_message
101734                                     (p_appli_s_name            => 'XLA'
101735                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101736                                     ,p_token_1                 => 'LINE_NUMBER'
101737                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
101738                                     ,p_token_2                 => 'LINE_TYPE_NAME'
101739                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
101740                                                                              l_component_type
101741                                                                             ,l_component_code
101742                                                                             ,l_component_type_code
101743                                                                             ,l_component_appl_id
101744                                                                             ,l_amb_context_code
101745                                                                             ,l_entity_code
101746                                                                             ,l_event_class_code
101747                                                                            )
101748                                     ,p_token_3                 => 'OWNER'
101749                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
101753                                     ,p_token_4                 => 'PRODUCT_NAME'
101750                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
101751                                                                           ,p_lookup_code    => l_component_type_code
101752                                                                          )
101754                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
101755                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
101756                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
101757                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
101758                                     ,p_ae_header_id            =>  NULL
101759                                        );
101760 
101761         IF (C_LEVEL_ERROR>= g_log_level) THEN
101762                  trace
101763                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101764                       ,p_level    => C_LEVEL_ERROR
101765                       ,p_module   => l_log_module);
101766         END IF;
101767       END IF;
101768    END IF;
101769    --
101773    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
101770    --
101771    ------------------------------------------------------------------------------------------------
101772    -- 4219869 Business Flow
101774    -- Prior Entry.  Currently, the following code is always generated.
101775    ------------------------------------------------------------------------------------------------
101776    -- No ValidateCurrentLine for business flow method of Prior Entry
101777 
101778    ------------------------------------------------------------------------------------
101779    -- 4219869 Business Flow
101780    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
101781    ------------------------------------------------------------------------------------
101782    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
101783 
101784    ----------------------------------------------------------------------------------
101785    -- 4219869 Business Flow
101786    -- Update journal entry status -- Need to generate this within IF <condition>
101787    ----------------------------------------------------------------------------------
101788    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
101789          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
101790          ,p_balance_type_code => l_balance_type_code
101791          );
101792 
101793    -------------------------------------------------------------------------------------------
101794    -- 4262811 - Generate the Accrual Reversal lines
101795    -------------------------------------------------------------------------------------------
101796    BEGIN
101797       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
101798                               (g_array_event(p_event_id).array_value_num('header_index'));
101799       IF l_acc_rev_flag IS NULL THEN
101800          l_acc_rev_flag := 'N';
101801       END IF;
101802    EXCEPTION
101803       WHEN OTHERS THEN
101804          l_acc_rev_flag := 'N';
101805    END;
101806    --
101807    IF (l_acc_rev_flag = 'Y') THEN
101808 
101809        -- 4645092  ------------------------------------------------------------------------------
101810        -- To allow MPA report to determine if it should generate report process
101811        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
101812        ------------------------------------------------------------------------------------------
101813 
101814        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
101815        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
101816    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
101817    -- call ADRs
101818    -- Bug 4922099
101819    --
101820    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101821         (NVL(l_actual_upg_option, 'N') = 'O') OR
101822         (NVL(l_enc_upg_option, 'N') = 'O')
101823       )
101824    THEN
101825    NULL;
101826    --
101827    --
101828    
101829    --
101830    --
101831    END IF;
101832 
101833        --
101834        -- Update the line information that should be overwritten
101835        --
101836        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
101837                                          p_header_num   => 1);
101838        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
101839 
101840        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
101841 
101842        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
101843           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
101844        END IF;
101845 
101846       --
101847       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
101848       --
101849       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
101850           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
101851       ELSE
101852           ---------------------------------------------------------------------------------------------------
101853           -- 4262811a Switch Sign
101854           ---------------------------------------------------------------------------------------------------
101855           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
101856           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
101857                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101861           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
101858           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
101859                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101860           -- 5132302
101865 
101862                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101863 
101864       END IF;
101866       -- 4955764
101867       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
101868       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
101869 
101870 
101871       XLA_AE_LINES_PKG.ValidateCurrentLine;
101872       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
101873 
101874       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
101875                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
101876                ,p_balance_type_code => l_balance_type_code);
101877 
101878    END IF;
101879 
101880    -----------------------------------------------------------------------------------------
101881    -- 4262811 Multiperiod Accounting
101882    -----------------------------------------------------------------------------------------
101883      -- No MPA option is assigned.
101884 
101885 
101886 END IF;
101887 END IF;
101888 --
101889 
101890 --
101891 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101892    trace
101893       (p_msg      => 'END of AcctLineType_177'
101894       ,p_level    => C_LEVEL_PROCEDURE
101895       ,p_module   => l_log_module);
101896 END IF;
101897 --
101898 EXCEPTION
101899   WHEN xla_exceptions_pkg.application_exception THEN
101900       RAISE;
101901   WHEN OTHERS THEN
101902        xla_exceptions_pkg.raise_message
101903            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_177');
101904 END AcctLineType_177;
101905 --
101906 
101914   p_application_id        IN NUMBER
101907 ---------------------------------------
101908 --
101909 -- PRIVATE FUNCTION
101910 --         AcctLineType_178
101911 --
101912 ---------------------------------------
101913 PROCEDURE AcctLineType_178 (
101915  ,p_event_id              IN NUMBER
101916  ,p_calculate_acctd_flag  IN VARCHAR2
101917  ,p_calculate_g_l_flag    IN VARCHAR2
101918  ,p_actual_flag           IN OUT VARCHAR2
101919  ,p_balance_type_code     OUT VARCHAR2
101920  ,p_gain_or_loss_ref      OUT VARCHAR2
101921  
101922 --Invoice Distribution Description
101923  , p_source_1            IN VARCHAR2
101924 --Automatic Offsets Value
101925  , p_source_3            IN VARCHAR2
101926  , p_source_3_meaning    IN VARCHAR2
101927 --Invoice Distribution Ledger Amount
101928  , p_source_9            IN NUMBER
101929 --Invoice Liability Account
101930  , p_source_22            IN NUMBER
101931 --Accounting Reversal Indicator
101932  , p_source_41            IN VARCHAR2
101933 --Distribution Link Type
101934  , p_source_43            IN VARCHAR2
101935 --Allocation to Main Distribution Identifier
101936  , p_source_45            IN NUMBER
101937 --Invoice Identifier
101938  , p_source_46            IN NUMBER
101939 --Invoice Distribution Identifier
101940  , p_source_52            IN NUMBER
101941 --Payables Encumbrance Upgrade Credit Account
101942  , p_source_53            IN NUMBER
101943 --Payables Encumbrance Upgrade Credit Amount
101944  , p_source_54            IN NUMBER
101945 --Invoice Currency Code
101946  , p_source_55            IN VARCHAR2
101947 --Payables Encumbrance Upgrade Credit Base Amount
101948  , p_source_56            IN NUMBER
101949 --Payables Encumbrance Upgrade Debit Account
101950  , p_source_57            IN NUMBER
101951 --Payables Encumbrance Upgrade Debit Amount
101952  , p_source_58            IN NUMBER
101953 --Payables Encumbrance Upgrade Debit Base Amount
101954  , p_source_59            IN NUMBER
101955 --Payables Encumbrance Upgrade Option
101956  , p_source_60            IN VARCHAR2
101957 --Invoice Distribution Amount
101958  , p_source_61            IN NUMBER
101959 --Deferred Accounting End Date
101960  , p_source_65            IN DATE
101961 --Deferred Accounting Option
101962  , p_source_66            IN VARCHAR2
101963 --Deferred Accounting Start Date
101964  , p_source_67            IN DATE
101965 --Override Accounted Amount Indicator
101966  , p_source_68            IN VARCHAR2
101967  , p_source_68_meaning    IN VARCHAR2
101968 --Invoice Supplier Identifier
101969  , p_source_69            IN NUMBER
101970 --Invoice Supplier Site Identifier
101971  , p_source_70            IN NUMBER
101972 --Third Party Type
101973  , p_source_71            IN VARCHAR2
101974 --Parent Reversal Identifier
101975  , p_source_72            IN NUMBER
101976 --Invoice Distribution Statistical Amount
101977  , p_source_73            IN NUMBER
101978 --Invoice Distribution Tax Line Identifier
101979  , p_source_74            IN NUMBER
101980 --Invoice Distribution Tax Distribution Identifier from Tax
101981  , p_source_75            IN NUMBER
101982 --Invoice Distribution Summary Tax Line Identifier
101983  , p_source_76            IN NUMBER
101984 --Payables Upgrade Credit Encumbrance Type Identifier
101985  , p_source_77            IN NUMBER
101986 --Payables Upgrade Debit Encumbrance Type Identifier
101987  , p_source_78            IN NUMBER
101988 --Business Flow Accounts Payable Application Identifier
101989  , p_source_79            IN NUMBER
101990 --Business Flow Invoice Distribution Type
101991  , p_source_80            IN VARCHAR2
101992 --Business Flow Invoice Entity Code
101993  , p_source_81            IN VARCHAR2
101994 --Business Flow Invoice Distribution Identifier
101995  , p_source_82            IN NUMBER
101996 --Business Flow Invoice Identifier
101997  , p_source_83            IN NUMBER
101998 --Self-Assessed Tax Flag
101999  , p_source_135            IN VARCHAR2
102000  , p_source_135_meaning    IN VARCHAR2
102001 --Invoice Exchange Date
102002  , p_source_136            IN DATE
102003 --Invoice Exchange Rate
102004  , p_source_137            IN NUMBER
102005 --Invoice Exchange Rate Type
102006  , p_source_138            IN VARCHAR2
102007 )
102008 IS
102009 
102010 l_component_type              VARCHAR2(80);
102011 l_component_code              VARCHAR2(30);
102012 l_component_type_code         VARCHAR2(1);
102013 l_component_appl_id           INTEGER;
102014 l_amb_context_code            VARCHAR2(30);
102015 l_entity_code                 VARCHAR2(30);
102016 l_event_class_code            VARCHAR2(30);
102017 l_ae_header_id                NUMBER;
102018 l_event_type_code             VARCHAR2(30);
102019 l_line_definition_code        VARCHAR2(30);
102020 l_line_definition_owner_code  VARCHAR2(1);
102021 --
102022 -- adr variables
102023 l_segment                     VARCHAR2(30);
102024 l_ccid                        NUMBER;
102025 l_adr_transaction_coa_id      NUMBER;
102026 l_adr_accounting_coa_id       NUMBER;
102027 l_adr_flexfield_segment_code  VARCHAR2(30);
102028 l_adr_flex_value_set_id       NUMBER;
102029 l_adr_value_type_code         VARCHAR2(30);
102030 l_adr_value_combination_id    NUMBER;
102031 l_adr_value_segment_code      VARCHAR2(30);
102032 
102033 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
102034 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
102035 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
102036 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
102037 
102041 l_acc_rev_flag                VARCHAR2(1);
102038 -- 4262811 Variables ------------------------------------------------------------------------------------------
102039 l_entered_amt_idx             NUMBER;
102040 l_accted_amt_idx              NUMBER;
102042 l_accrual_line_num            NUMBER;
102043 l_tmp_amt                     NUMBER;
102044 l_acc_rev_natural_side_code   VARCHAR2(1);
102045 
102046 l_num_entries                 NUMBER;
102047 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
102048 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
102049 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
102050 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
102051 l_recog_line_1                NUMBER;
102052 l_recog_line_2                NUMBER;
102053 
102054 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
102055 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
102056 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
102057 
102058 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
102059 
102063 ---------------------------------------------------------------------------------------------------------------
102060 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
102061 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
102062 
102064 
102065 
102066 --
102067 -- bulk performance
102068 --
102069 l_balance_type_code           VARCHAR2(1);
102070 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
102071 l_log_module                  VARCHAR2(240);
102072 
102073 --
102074 -- Upgrade strategy
102075 --
102076 l_actual_upg_option           VARCHAR2(1);
102077 l_enc_upg_option           VARCHAR2(1);
102078 
102079 --
102080 BEGIN
102081 --
102082 IF g_log_enabled THEN
102083       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_178';
102084 END IF;
102085 --
102086 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102087 
102088       trace
102089          (p_msg      => 'BEGIN of AcctLineType_178'
102090          ,p_level    => C_LEVEL_PROCEDURE
102091          ,p_module   => l_log_module);
102092 
102093 END IF;
102094 --
102095 l_component_type             := 'AMB_JLT';
102096 l_component_code             := 'AP_LIAB_PREPAY';
102097 l_component_type_code        := 'S';
102098 l_component_appl_id          :=  200;
102099 l_amb_context_code           := 'DEFAULT';
102100 l_entity_code                := 'AP_INVOICES';
102101 l_event_class_code           := 'PREPAYMENTS';
102102 l_event_type_code            := 'PREPAYMENTS_ALL';
102103 l_line_definition_owner_code := 'S';
102104 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
102105 --
102106 l_balance_type_code          := 'A';
102107 l_segment                     := NULL;
102108 l_ccid                        := NULL;
102109 l_adr_transaction_coa_id      := NULL;
102110 l_adr_accounting_coa_id       := NULL;
102111 l_adr_flexfield_segment_code  := NULL;
102112 l_adr_flex_value_set_id       := NULL;
102113 l_adr_value_type_code         := NULL;
102114 l_adr_value_combination_id    := NULL;
102115 l_adr_value_segment_code      := NULL;
102116 
102117 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
102118 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
102119 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
102120 l_budgetary_control_flag     := 'N';
102121 
102122 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
102123 l_bflow_applied_to_amt       := NULL; -- 5132302
102124 l_entered_amt_idx            := NULL;          -- 4262811
102125 l_accted_amt_idx             := NULL;          -- 4262811
102126 l_acc_rev_flag               := NULL;          -- 4262811
102127 l_accrual_line_num           := NULL;          -- 4262811
102128 l_tmp_amt                    := NULL;          -- 4262811
102129 --
102130  
102131 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
102132     l_balance_type_code <> 'B' THEN
102133 IF (NVL(p_source_3,'
102134 ') <>  'BALANCING_SEGMENT' AND 
102135 NVL(p_source_3,'
102136 ') <>  'ACCOUNT_SEGMENT_VALUE') AND 
102137 NVL(p_source_135,'
102138 ') <>  'Y'
102139  THEN 
102140 
102141    --
102142    XLA_AE_LINES_PKG.SetNewLine;
102143 
102144    p_balance_type_code          := l_balance_type_code;
102145    -- set the flag so later we will know whether the gain loss line needs to be created
102146    
102150 
102147    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
102148      p_actual_flag :='A';
102149    END IF;
102151    --
102152    -- bulk performance
102153    --
102154    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
102155                                       p_header_num   => 0); -- 4262811
102156    --
102157    -- set accounting line options
102158    --
102159    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
102160            p_natural_side_code          => 'C'
102161          , p_gain_or_loss_flag          => 'N'
102162          , p_gl_transfer_mode_code      => 'S'
102163          , p_acct_entry_type_code       => 'A'
102164          , p_switch_side_flag           => 'Y'
102165          , p_merge_duplicate_code       => 'A'
102166          );
102167    --
102168    l_acc_rev_natural_side_code := 'D';  -- 4262811
102169    -- 
102170    --
102171    -- set accounting line type info
102172    --
102173    xla_ae_lines_pkg.SetAcctLineType
102174       (p_component_type             => l_component_type
102175       ,p_event_type_code            => l_event_type_code
102176       ,p_line_definition_owner_code => l_line_definition_owner_code
102177       ,p_line_definition_code       => l_line_definition_code
102178       ,p_accounting_line_code       => l_component_code
102179       ,p_accounting_line_type_code  => l_component_type_code
102180       ,p_accounting_line_appl_id    => l_component_appl_id
102181       ,p_amb_context_code           => l_amb_context_code
102182       ,p_entity_code                => l_entity_code
102183       ,p_event_class_code           => l_event_class_code);
102184    --
102185    -- set accounting class
102186    --
102187    xla_ae_lines_pkg.SetAcctClass(
102188            p_accounting_class_code  => 'LIABILITY'
102189          , p_ae_header_id           => l_ae_header_id
102190          );
102191 
102192    --
102193    -- set rounding class
102194    --
102195    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
102196                       'LIABILITY';
102197 
102198    --
102199    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
102200    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
102201    --
102202    -- bulk performance
102203    --
102204    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
102205 
102206    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
102207       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
102208 
102209    -- 4955764
102210    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
102211       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
102212 
102213    -- 4458381 Public Sector Enh
102214    
102215    --
102216    -- set accounting attributes for the line type
102217    --
102218    l_entered_amt_idx := 23;
102219    l_accted_amt_idx  := 28;
102220    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
102221    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
102222    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
102226    p_source_code           => 'XLA_EVENT_APPL_ID'
102223    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
102224    l_rec_acct_attrs.array_num_value(2)  := 
102225 xla_ae_sources_pkg.GetSystemSourceNum(
102227  , p_source_type_code      => 'Y'
102228  , p_source_application_id =>  602
102229 );
102230    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
102231    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
102232    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
102233    l_rec_acct_attrs.array_char_value(4)  := 
102234 xla_ae_sources_pkg.GetSystemSourceChar(
102235    p_source_code           => 'XLA_ENTITY_CODE'
102236  , p_source_type_code      => 'Y'
102237  , p_source_application_id =>  602
102238 );
102239    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
102240    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
102241    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
102242    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
102243    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
102244    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
102248    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
102245    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
102246    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
102247    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
102249    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
102250    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
102251    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
102252    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
102253    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
102254    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
102255    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
102256    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
102257    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
102258    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
102259    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
102260    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
102261    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
102262    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
102263    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
102264    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
102265    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
102266    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
102267    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
102268    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
102269    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
102270    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
102271    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
102272    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
102273    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
102274    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
102275    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
102276    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
102277    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
102278    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
102279    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
102280    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
102281    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
102282    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
102283    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
102284    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
102285    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
102286    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
102287    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
102288    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
102289    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
102290    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
102291    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
102292    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
102293    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
102294    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
102295    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
102296    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
102297    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
102298    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
102299    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
102300    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
102301    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
102302    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
102303    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
102304    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
102305    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
102306    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
102307    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
102308    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
102309    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
102310    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
102311    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
102312    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
102313    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
102314    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
102315    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
102316    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
102317 
102318    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
102319    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
102320 
102321    ---------------------------------------------------------------------------------------------------------------
102322    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
102323    ---------------------------------------------------------------------------------------------------------------
102324    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
102325 
102326    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
102330          (p_source_code         => 'LEDGER_CATEGORY_CODE'
102327    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
102328 
102329    IF xla_accounting_cache_pkg.GetValueChar
102331          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
102332    AND l_bflow_method_code = 'PRIOR_ENTRY'
102333 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
102334    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
102335          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
102336        )
102337    THEN
102338          xla_ae_lines_pkg.BflowUpgEntry
102339            (p_business_method_code    => l_bflow_method_code
102340            ,p_business_class_code     => l_bflow_class_code
102341            ,p_balance_type            => l_balance_type_code);
102342    ELSE
102343       NULL;
102344 -- No business flow processing for business flow method of NONE.
102345    END IF;
102346 
102347    --
102348    -- call analytical criteria
102349    --
102350    
102351    --
102352    -- call description
102353    --
102354    
102355 xla_ae_lines_pkg.SetLineDescription(
102356    p_ae_header_id => l_ae_header_id
102357   ,p_description  => Description_2 (
102358      p_application_id         => p_application_id
102359    , p_ae_header_id           => l_ae_header_id 
102360 , p_source_1 => p_source_1
102361    )
102362 );
102363 
102364 
102365    --
102366    -- call ADRs
102367    -- Bug 4922099
102368    --
102369    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
102370         (NVL(l_actual_upg_option, 'N') = 'O') OR
102371         (NVL(l_enc_upg_option, 'N') = 'O')
102372       )
102373    THEN
102374    NULL;
102375    --
102376    --
102377    
102378   l_ccid := AcctDerRule_33(
102379            p_application_id           => p_application_id
102380          , p_ae_header_id             => l_ae_header_id 
102381 , p_source_22 => p_source_22
102382          , x_transaction_coa_id       => l_adr_transaction_coa_id
102383          , x_accounting_coa_id        => l_adr_accounting_coa_id
102384          , x_value_type_code          => l_adr_value_type_code
102385          , p_side                     => 'NA'
102386    );
102387 
102388    xla_ae_lines_pkg.set_ccid(
102389     p_code_combination_id          => l_ccid
102390   , p_value_type_code              => l_adr_value_type_code
102391   , p_transaction_coa_id           => l_adr_transaction_coa_id
102392   , p_accounting_coa_id            => l_adr_accounting_coa_id
102393   , p_adr_code                     => 'AP_LIAB'
102394   , p_adr_type_code                => 'S'
102395   , p_component_type               => l_component_type
102396   , p_component_code               => l_component_code
102397   , p_component_type_code          => l_component_type_code
102398   , p_component_appl_id            => l_component_appl_id
102399   , p_amb_context_code             => l_amb_context_code
102400   , p_side                         => 'NA'
102401   );
102402 
102403 
102404    --
102405    --
102406    END IF;
102407    --
102408    -- Bug 4922099
102409    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
102410           (NVL(l_enc_upg_option, 'N') = 'O')
102411         ) AND
102412         (l_bflow_method_code = 'PRIOR_ENTRY')
102413       )
102414    THEN
102415       IF
102416       --
102417       1 = 2
102418       --
102419       THEN
102420       xla_accounting_err_pkg.build_message
102421                                     (p_appli_s_name            => 'XLA'
102422                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102423                                     ,p_token_1                 => 'LINE_NUMBER'
102424                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
102425                                     ,p_token_2                 => 'LINE_TYPE_NAME'
102429                                                                             ,l_component_type_code
102426                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
102427                                                                              l_component_type
102428                                                                             ,l_component_code
102430                                                                             ,l_component_appl_id
102431                                                                             ,l_amb_context_code
102432                                                                             ,l_entity_code
102433                                                                             ,l_event_class_code
102434                                                                            )
102435                                     ,p_token_3                 => 'OWNER'
102436                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
102437                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
102438                                                                           ,p_lookup_code    => l_component_type_code
102439                                                                          )
102440                                     ,p_token_4                 => 'PRODUCT_NAME'
102441                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
102442                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
102443                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
102444                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
102445                                     ,p_ae_header_id            =>  NULL
102446                                        );
102447 
102448         IF (C_LEVEL_ERROR>= g_log_level) THEN
102449                  trace
102450                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102451                       ,p_level    => C_LEVEL_ERROR
102452                       ,p_module   => l_log_module);
102453         END IF;
102454       END IF;
102455    END IF;
102456    --
102457    --
102458    ------------------------------------------------------------------------------------------------
102459    -- 4219869 Business Flow
102460    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
102461    -- Prior Entry.  Currently, the following code is always generated.
102462    ------------------------------------------------------------------------------------------------
102463    XLA_AE_LINES_PKG.ValidateCurrentLine;
102464 
102468    ------------------------------------------------------------------------------------
102465    ------------------------------------------------------------------------------------
102466    -- 4219869 Business Flow
102467    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
102469    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102470 
102471    ----------------------------------------------------------------------------------
102472    -- 4219869 Business Flow
102473    -- Update journal entry status -- Need to generate this within IF <condition>
102474    ----------------------------------------------------------------------------------
102475    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102476          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
102477          ,p_balance_type_code => l_balance_type_code
102478          );
102479 
102480    -------------------------------------------------------------------------------------------
102481    -- 4262811 - Generate the Accrual Reversal lines
102482    -------------------------------------------------------------------------------------------
102483    BEGIN
102484       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
102485                               (g_array_event(p_event_id).array_value_num('header_index'));
102486       IF l_acc_rev_flag IS NULL THEN
102487          l_acc_rev_flag := 'N';
102488       END IF;
102489    EXCEPTION
102490       WHEN OTHERS THEN
102491          l_acc_rev_flag := 'N';
102492    END;
102493    --
102494    IF (l_acc_rev_flag = 'Y') THEN
102495 
102496        -- 4645092  ------------------------------------------------------------------------------
102497        -- To allow MPA report to determine if it should generate report process
102498        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
102499        ------------------------------------------------------------------------------------------
102500 
102501        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
102505    -- Bug 4922099
102502        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
102503    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
102504    -- call ADRs
102506    --
102507    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
102508         (NVL(l_actual_upg_option, 'N') = 'O') OR
102509         (NVL(l_enc_upg_option, 'N') = 'O')
102510       )
102511    THEN
102512    NULL;
102513    --
102514    --
102515    
102516   l_ccid := AcctDerRule_33(
102517            p_application_id           => p_application_id
102518          , p_ae_header_id             => l_ae_header_id 
102519 , p_source_22 => p_source_22
102520          , x_transaction_coa_id       => l_adr_transaction_coa_id
102521          , x_accounting_coa_id        => l_adr_accounting_coa_id
102522          , x_value_type_code          => l_adr_value_type_code
102523          , p_side                     => 'NA'
102524    );
102525 
102526    xla_ae_lines_pkg.set_ccid(
102527     p_code_combination_id          => l_ccid
102528   , p_value_type_code              => l_adr_value_type_code
102529   , p_transaction_coa_id           => l_adr_transaction_coa_id
102530   , p_accounting_coa_id            => l_adr_accounting_coa_id
102531   , p_adr_code                     => 'AP_LIAB'
102532   , p_adr_type_code                => 'S'
102533   , p_component_type               => l_component_type
102534   , p_component_code               => l_component_code
102535   , p_component_type_code          => l_component_type_code
102536   , p_component_appl_id            => l_component_appl_id
102537   , p_amb_context_code             => l_amb_context_code
102538   , p_side                         => 'NA'
102539   );
102540 
102541 
102542    --
102543    --
102544    END IF;
102545 
102546        --
102547        -- Update the line information that should be overwritten
102548        --
102549        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
102550                                          p_header_num   => 1);
102551        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
102552 
102553        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
102554 
102555        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
102556           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
102557        END IF;
102558 
102559       --
102560       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
102561       --
102562       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
102563           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
102564       ELSE
102565           ---------------------------------------------------------------------------------------------------
102566           -- 4262811a Switch Sign
102567           ---------------------------------------------------------------------------------------------------
102568           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
102569           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
102570                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102571           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
102572                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102573           -- 5132302
102574           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
102575                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102576 
102577       END IF;
102578 
102579       -- 4955764
102580       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
102581       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
102582 
102583 
102584       XLA_AE_LINES_PKG.ValidateCurrentLine;
102585       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102586 
102587       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102588                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
102589                ,p_balance_type_code => l_balance_type_code);
102590 
102591    END IF;
102592 
102593    -----------------------------------------------------------------------------------------
102594    -- 4262811 Multiperiod Accounting
102595    -----------------------------------------------------------------------------------------
102596      -- No MPA option is assigned.
102597 
102598 
102599 END IF;
102605    trace
102600 END IF;
102601 --
102602 
102603 --
102604 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102606       (p_msg      => 'END of AcctLineType_178'
102607       ,p_level    => C_LEVEL_PROCEDURE
102608       ,p_module   => l_log_module);
102609 END IF;
102610 --
102611 EXCEPTION
102612   WHEN xla_exceptions_pkg.application_exception THEN
102613       RAISE;
102614   WHEN OTHERS THEN
102615        xla_exceptions_pkg.raise_message
102616            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_178');
102617 END AcctLineType_178;
102618 --
102619 
102620 ---------------------------------------
102621 --
102622 -- PRIVATE FUNCTION
102623 --         AcctLineType_179
102624 --
102625 ---------------------------------------
102626 PROCEDURE AcctLineType_179 (
102627   p_application_id        IN NUMBER
102628  ,p_event_id              IN NUMBER
102629  ,p_calculate_acctd_flag  IN VARCHAR2
102630  ,p_calculate_g_l_flag    IN VARCHAR2
102631  ,p_actual_flag           IN OUT VARCHAR2
102632  ,p_balance_type_code     OUT VARCHAR2
102633  ,p_gain_or_loss_ref      OUT VARCHAR2
102634  
102635 --Invoice Distribution Description
102636  , p_source_1            IN VARCHAR2
102637 --Automatic Offsets Value
102638  , p_source_3            IN VARCHAR2
102639  , p_source_3_meaning    IN VARCHAR2
102640 --Invoice Distribution Ledger Amount
102641  , p_source_9            IN NUMBER
102642 --Invoice Liability Account
102643  , p_source_22            IN NUMBER
102644 --Accounting Reversal Indicator
102645  , p_source_41            IN VARCHAR2
102646 --Distribution Link Type
102647  , p_source_43            IN VARCHAR2
102648 --Allocation to Main Distribution Identifier
102649  , p_source_45            IN NUMBER
102650 --Invoice Identifier
102651  , p_source_46            IN NUMBER
102652 --Invoice Distribution Identifier
102653  , p_source_52            IN NUMBER
102654 --Payables Encumbrance Upgrade Credit Account
102655  , p_source_53            IN NUMBER
102656 --Payables Encumbrance Upgrade Credit Amount
102657  , p_source_54            IN NUMBER
102658 --Invoice Currency Code
102659  , p_source_55            IN VARCHAR2
102660 --Payables Encumbrance Upgrade Credit Base Amount
102661  , p_source_56            IN NUMBER
102662 --Payables Encumbrance Upgrade Debit Account
102663  , p_source_57            IN NUMBER
102664 --Payables Encumbrance Upgrade Debit Amount
102665  , p_source_58            IN NUMBER
102666 --Payables Encumbrance Upgrade Debit Base Amount
102667  , p_source_59            IN NUMBER
102668 --Payables Encumbrance Upgrade Option
102669  , p_source_60            IN VARCHAR2
102670 --Invoice Distribution Amount
102671  , p_source_61            IN NUMBER
102672 --Deferred Accounting End Date
102673  , p_source_65            IN DATE
102674 --Deferred Accounting Option
102675  , p_source_66            IN VARCHAR2
102676 --Deferred Accounting Start Date
102677  , p_source_67            IN DATE
102678 --Override Accounted Amount Indicator
102679  , p_source_68            IN VARCHAR2
102680  , p_source_68_meaning    IN VARCHAR2
102681 --Invoice Supplier Identifier
102682  , p_source_69            IN NUMBER
102683 --Invoice Supplier Site Identifier
102684  , p_source_70            IN NUMBER
102685 --Third Party Type
102686  , p_source_71            IN VARCHAR2
102687 --Parent Reversal Identifier
102688  , p_source_72            IN NUMBER
102689 --Invoice Distribution Statistical Amount
102690  , p_source_73            IN NUMBER
102691 --Invoice Distribution Tax Line Identifier
102692  , p_source_74            IN NUMBER
102693 --Invoice Distribution Tax Distribution Identifier from Tax
102694  , p_source_75            IN NUMBER
102695 --Invoice Distribution Summary Tax Line Identifier
102696  , p_source_76            IN NUMBER
102697 --Payables Upgrade Credit Encumbrance Type Identifier
102698  , p_source_77            IN NUMBER
102699 --Payables Upgrade Debit Encumbrance Type Identifier
102700  , p_source_78            IN NUMBER
102701 --Business Flow Accounts Payable Application Identifier
102702  , p_source_79            IN NUMBER
102703 --Business Flow Invoice Distribution Type
102704  , p_source_80            IN VARCHAR2
102705 --Business Flow Invoice Entity Code
102706  , p_source_81            IN VARCHAR2
102707 --Business Flow Invoice Distribution Identifier
102708  , p_source_82            IN NUMBER
102709 --Business Flow Invoice Identifier
102710  , p_source_83            IN NUMBER
102711 --Self-Assessed Tax Flag
102712  , p_source_135            IN VARCHAR2
102713  , p_source_135_meaning    IN VARCHAR2
102714 --Invoice Exchange Date
102718 --Invoice Exchange Rate Type
102715  , p_source_136            IN DATE
102716 --Invoice Exchange Rate
102717  , p_source_137            IN NUMBER
102719  , p_source_138            IN VARCHAR2
102720 )
102721 IS
102722 
102723 l_component_type              VARCHAR2(80);
102724 l_component_code              VARCHAR2(30);
102725 l_component_type_code         VARCHAR2(1);
102726 l_component_appl_id           INTEGER;
102727 l_amb_context_code            VARCHAR2(30);
102728 l_entity_code                 VARCHAR2(30);
102729 l_event_class_code            VARCHAR2(30);
102730 l_ae_header_id                NUMBER;
102731 l_event_type_code             VARCHAR2(30);
102732 l_line_definition_code        VARCHAR2(30);
102733 l_line_definition_owner_code  VARCHAR2(1);
102734 --
102735 -- adr variables
102736 l_segment                     VARCHAR2(30);
102737 l_ccid                        NUMBER;
102738 l_adr_transaction_coa_id      NUMBER;
102739 l_adr_accounting_coa_id       NUMBER;
102740 l_adr_flexfield_segment_code  VARCHAR2(30);
102741 l_adr_flex_value_set_id       NUMBER;
102742 l_adr_value_type_code         VARCHAR2(30);
102743 l_adr_value_combination_id    NUMBER;
102744 l_adr_value_segment_code      VARCHAR2(30);
102745 
102746 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
102747 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
102748 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
102749 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
102750 
102751 -- 4262811 Variables ------------------------------------------------------------------------------------------
102752 l_entered_amt_idx             NUMBER;
102753 l_accted_amt_idx              NUMBER;
102754 l_acc_rev_flag                VARCHAR2(1);
102755 l_accrual_line_num            NUMBER;
102756 l_tmp_amt                     NUMBER;
102757 l_acc_rev_natural_side_code   VARCHAR2(1);
102758 
102759 l_num_entries                 NUMBER;
102760 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
102761 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
102765 l_recog_line_2                NUMBER;
102762 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
102763 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
102764 l_recog_line_1                NUMBER;
102766 
102767 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
102768 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
102769 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
102770 
102771 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
102772 
102773 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
102774 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
102775 
102776 ---------------------------------------------------------------------------------------------------------------
102777 
102778 
102779 --
102780 -- bulk performance
102781 --
102782 l_balance_type_code           VARCHAR2(1);
102783 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
102784 l_log_module                  VARCHAR2(240);
102785 
102786 --
102787 -- Upgrade strategy
102788 --
102789 l_actual_upg_option           VARCHAR2(1);
102790 l_enc_upg_option           VARCHAR2(1);
102791 
102792 --
102793 BEGIN
102794 --
102795 IF g_log_enabled THEN
102796       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_179';
102797 END IF;
102798 --
102802          (p_msg      => 'BEGIN of AcctLineType_179'
102799 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102800 
102801       trace
102803          ,p_level    => C_LEVEL_PROCEDURE
102804          ,p_module   => l_log_module);
102805 
102806 END IF;
102807 --
102808 l_component_type             := 'AMB_JLT';
102809 l_component_code             := 'AP_LIAB_PREPAY_AOS_AS';
102810 l_component_type_code        := 'S';
102811 l_component_appl_id          :=  200;
102812 l_amb_context_code           := 'DEFAULT';
102813 l_entity_code                := 'AP_INVOICES';
102814 l_event_class_code           := 'PREPAYMENTS';
102815 l_event_type_code            := 'PREPAYMENTS_ALL';
102816 l_line_definition_owner_code := 'S';
102817 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
102818 --
102819 l_balance_type_code          := 'A';
102820 l_segment                     := NULL;
102821 l_ccid                        := NULL;
102822 l_adr_transaction_coa_id      := NULL;
102823 l_adr_accounting_coa_id       := NULL;
102824 l_adr_flexfield_segment_code  := NULL;
102825 l_adr_flex_value_set_id       := NULL;
102826 l_adr_value_type_code         := NULL;
102827 l_adr_value_combination_id    := NULL;
102828 l_adr_value_segment_code      := NULL;
102829 
102830 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
102831 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
102832 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
102833 l_budgetary_control_flag     := 'N';
102834 
102835 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
102836 l_bflow_applied_to_amt       := NULL; -- 5132302
102837 l_entered_amt_idx            := NULL;          -- 4262811
102838 l_accted_amt_idx             := NULL;          -- 4262811
102839 l_acc_rev_flag               := NULL;          -- 4262811
102840 l_accrual_line_num           := NULL;          -- 4262811
102841 l_tmp_amt                    := NULL;          -- 4262811
102842 --
102843  
102844 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
102845     l_balance_type_code <> 'B' THEN
102846 IF NVL(p_source_3,'
102847 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
102848 NVL(p_source_135,'
102849 ') <>  'Y'
102850  THEN 
102851 
102852    --
102853    XLA_AE_LINES_PKG.SetNewLine;
102854 
102855    p_balance_type_code          := l_balance_type_code;
102856    -- set the flag so later we will know whether the gain loss line needs to be created
102857    
102858    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
102859      p_actual_flag :='A';
102860    END IF;
102861 
102862    --
102863    -- bulk performance
102864    --
102865    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
102866                                       p_header_num   => 0); -- 4262811
102867    --
102868    -- set accounting line options
102869    --
102870    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
102871            p_natural_side_code          => 'C'
102872          , p_gain_or_loss_flag          => 'N'
102873          , p_gl_transfer_mode_code      => 'S'
102874          , p_acct_entry_type_code       => 'A'
102875          , p_switch_side_flag           => 'Y'
102876          , p_merge_duplicate_code       => 'A'
102877          );
102878    --
102879    l_acc_rev_natural_side_code := 'D';  -- 4262811
102880    -- 
102881    --
102882    -- set accounting line type info
102883    --
102884    xla_ae_lines_pkg.SetAcctLineType
102885       (p_component_type             => l_component_type
102886       ,p_event_type_code            => l_event_type_code
102887       ,p_line_definition_owner_code => l_line_definition_owner_code
102888       ,p_line_definition_code       => l_line_definition_code
102889       ,p_accounting_line_code       => l_component_code
102890       ,p_accounting_line_type_code  => l_component_type_code
102891       ,p_accounting_line_appl_id    => l_component_appl_id
102892       ,p_amb_context_code           => l_amb_context_code
102893       ,p_entity_code                => l_entity_code
102894       ,p_event_class_code           => l_event_class_code);
102895    --
102896    -- set accounting class
102897    --
102898    xla_ae_lines_pkg.SetAcctClass(
102899            p_accounting_class_code  => 'LIABILITY'
102900          , p_ae_header_id           => l_ae_header_id
102901          );
102902 
102903    --
102904    -- set rounding class
102905    --
102906    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
102907                       'LIABILITY';
102908 
102909    --
102910    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
102911    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
102912    --
102913    -- bulk performance
102914    --
102915    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
102916 
102917    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
102918       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
102919 
102920    -- 4955764
102921    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
102922       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
102923 
102924    -- 4458381 Public Sector Enh
102925    
102926    --
102927    -- set accounting attributes for the line type
102928    --
102929    l_entered_amt_idx := 23;
102930    l_accted_amt_idx  := 28;
102931    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
102932    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
102936 xla_ae_sources_pkg.GetSystemSourceNum(
102933    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
102934    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
102935    l_rec_acct_attrs.array_num_value(2)  := 
102937    p_source_code           => 'XLA_EVENT_APPL_ID'
102938  , p_source_type_code      => 'Y'
102939  , p_source_application_id =>  602
102940 );
102941    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
102942    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
102943    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
102944    l_rec_acct_attrs.array_char_value(4)  := 
102945 xla_ae_sources_pkg.GetSystemSourceChar(
102946    p_source_code           => 'XLA_ENTITY_CODE'
102947  , p_source_type_code      => 'Y'
102948  , p_source_application_id =>  602
102949 );
102950    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
102951    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
102952    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
102953    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
102954    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
102955    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
102956    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
102957    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
102958    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
102959    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
102960    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
102961    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
102962    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
102963    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
102964    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
102965    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
102966    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
102967    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
102968    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
102969    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
102970    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
102971    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
102972    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
102973    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
102974    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
102975    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
102976    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
102977    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
102978    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
102979    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
102980    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
102981    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
102982    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
102983    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
102984    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
102985    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
102986    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
102987    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
102988    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
102989    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
102990    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
102991    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
102992    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
102993    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
102994    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
102995    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
102996    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
102997    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
102998    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
102999    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
103000    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
103001    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
103002    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
103003    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
103004    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
103005    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
103006    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
103007    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
103008    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
103009    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
103010    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
103011    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
103012    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
103013    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
103014    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
103015    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
103016    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
103017    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
103018    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
103019    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
103020    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
103021    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
103022    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
103023    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
103024    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
103025    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
103029    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
103026    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
103027    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
103028 
103030    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
103031 
103035    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
103032    ---------------------------------------------------------------------------------------------------------------
103033    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
103034    ---------------------------------------------------------------------------------------------------------------
103036 
103037    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103038    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103039 
103040    IF xla_accounting_cache_pkg.GetValueChar
103041          (p_source_code         => 'LEDGER_CATEGORY_CODE'
103042          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
103043    AND l_bflow_method_code = 'PRIOR_ENTRY'
103044 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
103045    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
103046          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
103047        )
103048    THEN
103049          xla_ae_lines_pkg.BflowUpgEntry
103050            (p_business_method_code    => l_bflow_method_code
103051            ,p_business_class_code     => l_bflow_class_code
103052            ,p_balance_type            => l_balance_type_code);
103053    ELSE
103054       NULL;
103055 XLA_AE_LINES_PKG.business_flow_validation(
103056                                 p_business_method_code     => l_bflow_method_code
103057                                ,p_business_class_code      => l_bflow_class_code
103058                                ,p_inherit_description_flag => l_inherit_desc_flag);
103059    END IF;
103060 
103061    --
103062    -- call analytical criteria
103063    --
103064    
103065    --
103066    -- call description
103067    --
103068    
103069 xla_ae_lines_pkg.SetLineDescription(
103070    p_ae_header_id => l_ae_header_id
103071   ,p_description  => Description_2 (
103072      p_application_id         => p_application_id
103073    , p_ae_header_id           => l_ae_header_id 
103074 , p_source_1 => p_source_1
103075    )
103076 );
103077 
103078 
103079    --
103080    -- call ADRs
103081    -- Bug 4922099
103082    --
103083    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
103084         (NVL(l_actual_upg_option, 'N') = 'O') OR
103085         (NVL(l_enc_upg_option, 'N') = 'O')
103086       )
103087    THEN
103088    NULL;
103089    --
103090    --
103091    
103092    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
103093      p_code_combination_id      => TO_NUMBER(C_NUM)
103094    , p_value_type_code          => NULL
103095    , p_transaction_coa_id       => null
103096    , p_accounting_coa_id        => null
103097    , p_adr_code                 => NULL
103098    , p_adr_type_code            => NULL
103099    , p_component_type           => l_component_type
103100    , p_component_code           => l_component_code
103101    , p_component_type_code      => l_component_type_code
103102    , p_component_appl_id        => l_component_appl_id
103103    , p_amb_context_code         => l_amb_context_code
103104    , p_side                     => NULL
103105    );
103106 
103107    
103108   -- initialise segments
103109   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103110   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103111   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103112   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103113   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103114   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103115   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103116   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103117   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103118   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103119   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103120   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103121   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103122   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103126   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103123   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103124   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103125   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103127   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103128   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103129   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103130   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103131   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103132   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103133   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103134   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103135   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103136   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103137   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103138   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103139   --
103140 
103141    --
103142 
103143 
103144    l_segment := AcctDerRule_14(
103145            p_application_id           => p_application_id
103146          , p_ae_header_id             => l_ae_header_id 
103147 , p_source_22 => p_source_22
103148          , x_transaction_coa_id       => l_adr_transaction_coa_id
103149          , x_accounting_coa_id        => l_adr_accounting_coa_id
103150          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
103151          , x_flex_value_set_id        => l_adr_flex_value_set_id
103152          , x_value_type_code          => l_adr_value_type_code
103153          , x_value_combination_id     => l_adr_value_combination_id
103154          , x_value_segment_code       => l_adr_value_segment_code
103155          , p_side                     => 'NA'
103159    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
103156          , p_override_seg_flag        => 'Y'
103157    );
103158 
103160 
103161       xla_ae_lines_pkg.set_segment(
103162           p_to_segment_code         => 'GL_ACCOUNT'
103163         , p_segment_value           => l_segment
103164         , p_from_segment_code       => l_adr_value_segment_code
103165         , p_from_combination_id     => l_adr_value_combination_id
103166         , p_value_type_code         => l_adr_value_type_code
103167         , p_transaction_coa_id      => l_adr_transaction_coa_id
103168         , p_accounting_coa_id       => l_adr_accounting_coa_id
103169         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
103170         , p_flex_value_set_id       => l_adr_flex_value_set_id
103171         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
103172         , p_adr_type_code           => 'S'
103176         , p_component_appl_id       => l_component_appl_id
103173         , p_component_type          => l_component_type
103174         , p_component_code          => l_component_code
103175         , p_component_type_code     => l_component_type_code
103177         , p_amb_context_code        => l_amb_context_code
103178         , p_entity_code             => 'AP_INVOICES'
103179         , p_event_class_code        => 'PREPAYMENTS'
103180         , p_side                    => 'NA'
103181         );
103182 
103183   END IF;
103184 
103185    --
103186    --
103187    END IF;
103188    --
103189    -- Bug 4922099
103190    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
103191           (NVL(l_enc_upg_option, 'N') = 'O')
103192         ) AND
103193         (l_bflow_method_code = 'PRIOR_ENTRY')
103194       )
103195    THEN
103196       IF
103197       --
103198       1 = 2
103199       --
103200       THEN
103201       xla_accounting_err_pkg.build_message
103202                                     (p_appli_s_name            => 'XLA'
103203                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
103204                                     ,p_token_1                 => 'LINE_NUMBER'
103205                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
103206                                     ,p_token_2                 => 'LINE_TYPE_NAME'
103207                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
103208                                                                              l_component_type
103209                                                                             ,l_component_code
103210                                                                             ,l_component_type_code
103211                                                                             ,l_component_appl_id
103212                                                                             ,l_amb_context_code
103213                                                                             ,l_entity_code
103214                                                                             ,l_event_class_code
103215                                                                            )
103216                                     ,p_token_3                 => 'OWNER'
103217                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
103218                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
103219                                                                           ,p_lookup_code    => l_component_type_code
103220                                                                          )
103221                                     ,p_token_4                 => 'PRODUCT_NAME'
103222                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
103223                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
103224                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
103225                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
103226                                     ,p_ae_header_id            =>  NULL
103227                                        );
103228 
103229         IF (C_LEVEL_ERROR>= g_log_level) THEN
103230                  trace
103231                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
103232                       ,p_level    => C_LEVEL_ERROR
103233                       ,p_module   => l_log_module);
103234         END IF;
103235       END IF;
103236    END IF;
103237    --
103238    --
103239    ------------------------------------------------------------------------------------------------
103240    -- 4219869 Business Flow
103241    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
103242    -- Prior Entry.  Currently, the following code is always generated.
103243    ------------------------------------------------------------------------------------------------
103244    XLA_AE_LINES_PKG.ValidateCurrentLine;
103245 
103246    ------------------------------------------------------------------------------------
103247    -- 4219869 Business Flow
103248    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
103249    ------------------------------------------------------------------------------------
103250    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
103251 
103252    ----------------------------------------------------------------------------------
103253    -- 4219869 Business Flow
103254    -- Update journal entry status -- Need to generate this within IF <condition>
103255    ----------------------------------------------------------------------------------
103256    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
103257          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
103258          ,p_balance_type_code => l_balance_type_code
103259          );
103260 
103261    -------------------------------------------------------------------------------------------
103262    -- 4262811 - Generate the Accrual Reversal lines
103263    -------------------------------------------------------------------------------------------
103264    BEGIN
103265       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
103266                               (g_array_event(p_event_id).array_value_num('header_index'));
103267       IF l_acc_rev_flag IS NULL THEN
103268          l_acc_rev_flag := 'N';
103269       END IF;
103270    EXCEPTION
103271       WHEN OTHERS THEN
103272          l_acc_rev_flag := 'N';
103273    END;
103274    --
103275    IF (l_acc_rev_flag = 'Y') THEN
103276 
103277        -- 4645092  ------------------------------------------------------------------------------
103281 
103278        -- To allow MPA report to determine if it should generate report process
103279        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
103280        ------------------------------------------------------------------------------------------
103282        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
103283        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
103284    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
103285    -- call ADRs
103286    -- Bug 4922099
103287    --
103288    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
103289         (NVL(l_actual_upg_option, 'N') = 'O') OR
103290         (NVL(l_enc_upg_option, 'N') = 'O')
103291       )
103292    THEN
103293    NULL;
103294    --
103295    --
103296    
103297    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
103298      p_code_combination_id      => TO_NUMBER(C_NUM)
103299    , p_value_type_code          => NULL
103300    , p_transaction_coa_id       => null
103301    , p_accounting_coa_id        => null
103302    , p_adr_code                 => NULL
103303    , p_adr_type_code            => NULL
103304    , p_component_type           => l_component_type
103305    , p_component_code           => l_component_code
103306    , p_component_type_code      => l_component_type_code
103307    , p_component_appl_id        => l_component_appl_id
103308    , p_amb_context_code         => l_amb_context_code
103309    , p_side                     => NULL
103310    );
103311 
103312    
103313   -- initialise segments
103314   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103315   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103316   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103317   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103318   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103319   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103320   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103321   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103322   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
103323   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103324   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103325   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103326   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103327   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103328   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103329   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103330   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103331   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103332   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103333   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103334   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103335   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103336   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103337   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103341   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103338   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103339   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103340   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103342   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103343   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
103344   --
103345 
103346    --
103347 
103348 
103349    l_segment := AcctDerRule_14(
103350            p_application_id           => p_application_id
103351          , p_ae_header_id             => l_ae_header_id 
103352 , p_source_22 => p_source_22
103353          , x_transaction_coa_id       => l_adr_transaction_coa_id
103354          , x_accounting_coa_id        => l_adr_accounting_coa_id
103355          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
103356          , x_flex_value_set_id        => l_adr_flex_value_set_id
103357          , x_value_type_code          => l_adr_value_type_code
103358          , x_value_combination_id     => l_adr_value_combination_id
103359          , x_value_segment_code       => l_adr_value_segment_code
103360          , p_side                     => 'NA'
103361          , p_override_seg_flag        => 'Y'
103362    );
103363 
103364    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
103365 
103366       xla_ae_lines_pkg.set_segment(
103367           p_to_segment_code         => 'GL_ACCOUNT'
103368         , p_segment_value           => l_segment
103369         , p_from_segment_code       => l_adr_value_segment_code
103370         , p_from_combination_id     => l_adr_value_combination_id
103371         , p_value_type_code         => l_adr_value_type_code
103372         , p_transaction_coa_id      => l_adr_transaction_coa_id
103373         , p_accounting_coa_id       => l_adr_accounting_coa_id
103374         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
103375         , p_flex_value_set_id       => l_adr_flex_value_set_id
103376         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
103377         , p_adr_type_code           => 'S'
103378         , p_component_type          => l_component_type
103379         , p_component_code          => l_component_code
103380         , p_component_type_code     => l_component_type_code
103381         , p_component_appl_id       => l_component_appl_id
103382         , p_amb_context_code        => l_amb_context_code
103383         , p_entity_code             => 'AP_INVOICES'
103384         , p_event_class_code        => 'PREPAYMENTS'
103385         , p_side                    => 'NA'
103386         );
103387 
103388   END IF;
103389 
103390    --
103391    --
103392    END IF;
103393 
103394        --
103395        -- Update the line information that should be overwritten
103396        --
103397        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
103398                                          p_header_num   => 1);
103399        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
103400 
103406 
103401        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
103402 
103403        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
103404           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
103405        END IF;
103407       --
103408       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
103409       --
103410       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
103411           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
103412       ELSE
103413           ---------------------------------------------------------------------------------------------------
103414           -- 4262811a Switch Sign
103415           ---------------------------------------------------------------------------------------------------
103416           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
103417           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103418                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103419           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103420                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103421           -- 5132302
103422           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
103423                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103424 
103425       END IF;
103426 
103427       -- 4955764
103428       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103429       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
103430 
103431 
103432       XLA_AE_LINES_PKG.ValidateCurrentLine;
103433       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
103434 
103435       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
103436                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
103437                ,p_balance_type_code => l_balance_type_code);
103438 
103439    END IF;
103440 
103441    -----------------------------------------------------------------------------------------
103442    -- 4262811 Multiperiod Accounting
103443    -----------------------------------------------------------------------------------------
103444      -- No MPA option is assigned.
103445 
103446 
103447 END IF;
103448 END IF;
103449 --
103450 
103451 --
103452 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103453    trace
103454       (p_msg      => 'END of AcctLineType_179'
103455       ,p_level    => C_LEVEL_PROCEDURE
103456       ,p_module   => l_log_module);
103457 END IF;
103458 --
103459 EXCEPTION
103460   WHEN xla_exceptions_pkg.application_exception THEN
103461       RAISE;
103462   WHEN OTHERS THEN
103463        xla_exceptions_pkg.raise_message
103464            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_179');
103465 END AcctLineType_179;
103466 --
103467 
103468 ---------------------------------------
103469 --
103470 -- PRIVATE FUNCTION
103471 --         AcctLineType_180
103472 --
103473 ---------------------------------------
103474 PROCEDURE AcctLineType_180 (
103475   p_application_id        IN NUMBER
103476  ,p_event_id              IN NUMBER
103477  ,p_calculate_acctd_flag  IN VARCHAR2
103478  ,p_calculate_g_l_flag    IN VARCHAR2
103479  ,p_actual_flag           IN OUT VARCHAR2
103480  ,p_balance_type_code     OUT VARCHAR2
103481  ,p_gain_or_loss_ref      OUT VARCHAR2
103482  
103483 --Invoice Distribution Description
103484  , p_source_1            IN VARCHAR2
103485 --Automatic Offsets Value
103486  , p_source_3            IN VARCHAR2
103487  , p_source_3_meaning    IN VARCHAR2
103488 --Invoice Distribution Ledger Amount
103489  , p_source_9            IN NUMBER
103490 --Invoice Liability Account
103491  , p_source_22            IN NUMBER
103492 --Accounting Reversal Indicator
103493  , p_source_41            IN VARCHAR2
103494 --Distribution Link Type
103495  , p_source_43            IN VARCHAR2
103496 --Allocation to Main Distribution Identifier
103497  , p_source_45            IN NUMBER
103498 --Invoice Identifier
103499  , p_source_46            IN NUMBER
103500 --Invoice Distribution Identifier
103501  , p_source_52            IN NUMBER
103502 --Payables Encumbrance Upgrade Credit Account
103503  , p_source_53            IN NUMBER
103504 --Payables Encumbrance Upgrade Credit Amount
103505  , p_source_54            IN NUMBER
103506 --Invoice Currency Code
103507  , p_source_55            IN VARCHAR2
103508 --Payables Encumbrance Upgrade Credit Base Amount
103509  , p_source_56            IN NUMBER
103510 --Payables Encumbrance Upgrade Debit Account
103511  , p_source_57            IN NUMBER
103512 --Payables Encumbrance Upgrade Debit Amount
103513  , p_source_58            IN NUMBER
103514 --Payables Encumbrance Upgrade Debit Base Amount
103515  , p_source_59            IN NUMBER
103516 --Payables Encumbrance Upgrade Option
103517  , p_source_60            IN VARCHAR2
103518 --Invoice Distribution Amount
103519  , p_source_61            IN NUMBER
103520 --Deferred Accounting End Date
103521  , p_source_65            IN DATE
103522 --Deferred Accounting Option
103523  , p_source_66            IN VARCHAR2
103524 --Deferred Accounting Start Date
103525  , p_source_67            IN DATE
103526 --Override Accounted Amount Indicator
103527  , p_source_68            IN VARCHAR2
103528  , p_source_68_meaning    IN VARCHAR2
103532  , p_source_70            IN NUMBER
103529 --Invoice Supplier Identifier
103530  , p_source_69            IN NUMBER
103531 --Invoice Supplier Site Identifier
103533 --Third Party Type
103534  , p_source_71            IN VARCHAR2
103535 --Parent Reversal Identifier
103536  , p_source_72            IN NUMBER
103537 --Invoice Distribution Statistical Amount
103538  , p_source_73            IN NUMBER
103539 --Invoice Distribution Tax Line Identifier
103540  , p_source_74            IN NUMBER
103541 --Invoice Distribution Tax Distribution Identifier from Tax
103542  , p_source_75            IN NUMBER
103543 --Invoice Distribution Summary Tax Line Identifier
103544  , p_source_76            IN NUMBER
103545 --Payables Upgrade Credit Encumbrance Type Identifier
103546  , p_source_77            IN NUMBER
103547 --Payables Upgrade Debit Encumbrance Type Identifier
103548  , p_source_78            IN NUMBER
103549 --Business Flow Accounts Payable Application Identifier
103550  , p_source_79            IN NUMBER
103554  , p_source_81            IN VARCHAR2
103551 --Business Flow Invoice Distribution Type
103552  , p_source_80            IN VARCHAR2
103553 --Business Flow Invoice Entity Code
103555 --Business Flow Invoice Distribution Identifier
103556  , p_source_82            IN NUMBER
103557 --Business Flow Invoice Identifier
103558  , p_source_83            IN NUMBER
103559 --Self-Assessed Tax Flag
103560  , p_source_135            IN VARCHAR2
103561  , p_source_135_meaning    IN VARCHAR2
103562 --Invoice Exchange Date
103563  , p_source_136            IN DATE
103564 --Invoice Exchange Rate
103565  , p_source_137            IN NUMBER
103566 --Invoice Exchange Rate Type
103567  , p_source_138            IN VARCHAR2
103568 )
103569 IS
103570 
103571 l_component_type              VARCHAR2(80);
103572 l_component_code              VARCHAR2(30);
103573 l_component_type_code         VARCHAR2(1);
103574 l_component_appl_id           INTEGER;
103575 l_amb_context_code            VARCHAR2(30);
103576 l_entity_code                 VARCHAR2(30);
103577 l_event_class_code            VARCHAR2(30);
103578 l_ae_header_id                NUMBER;
103579 l_event_type_code             VARCHAR2(30);
103580 l_line_definition_code        VARCHAR2(30);
103581 l_line_definition_owner_code  VARCHAR2(1);
103582 --
103583 -- adr variables
103584 l_segment                     VARCHAR2(30);
103585 l_ccid                        NUMBER;
103586 l_adr_transaction_coa_id      NUMBER;
103587 l_adr_accounting_coa_id       NUMBER;
103588 l_adr_flexfield_segment_code  VARCHAR2(30);
103589 l_adr_flex_value_set_id       NUMBER;
103590 l_adr_value_type_code         VARCHAR2(30);
103591 l_adr_value_combination_id    NUMBER;
103592 l_adr_value_segment_code      VARCHAR2(30);
103593 
103594 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
103595 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
103596 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
103597 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
103598 
103599 -- 4262811 Variables ------------------------------------------------------------------------------------------
103600 l_entered_amt_idx             NUMBER;
103601 l_accted_amt_idx              NUMBER;
103602 l_acc_rev_flag                VARCHAR2(1);
103603 l_accrual_line_num            NUMBER;
103604 l_tmp_amt                     NUMBER;
103605 l_acc_rev_natural_side_code   VARCHAR2(1);
103606 
103607 l_num_entries                 NUMBER;
103608 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
103609 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
103613 l_recog_line_2                NUMBER;
103610 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
103611 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
103612 l_recog_line_1                NUMBER;
103614 
103615 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
103616 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
103617 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
103618 
103619 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
103620 
103621 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
103622 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
103623 
103624 ---------------------------------------------------------------------------------------------------------------
103625 
103626 
103627 --
103628 -- bulk performance
103629 --
103630 l_balance_type_code           VARCHAR2(1);
103631 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
103632 l_log_module                  VARCHAR2(240);
103633 
103634 --
103635 -- Upgrade strategy
103636 --
103637 l_actual_upg_option           VARCHAR2(1);
103638 l_enc_upg_option           VARCHAR2(1);
103639 
103640 --
103641 BEGIN
103642 --
103643 IF g_log_enabled THEN
103644       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_180';
103645 END IF;
103646 --
103647 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103648 
103649       trace
103650          (p_msg      => 'BEGIN of AcctLineType_180'
103651          ,p_level    => C_LEVEL_PROCEDURE
103652          ,p_module   => l_log_module);
103653 
103654 END IF;
103655 --
103656 l_component_type             := 'AMB_JLT';
103657 l_component_code             := 'AP_LIAB_PREPAY_AOS_BS';
103658 l_component_type_code        := 'S';
103659 l_component_appl_id          :=  200;
103660 l_amb_context_code           := 'DEFAULT';
103661 l_entity_code                := 'AP_INVOICES';
103662 l_event_class_code           := 'PREPAYMENTS';
103663 l_event_type_code            := 'PREPAYMENTS_ALL';
103664 l_line_definition_owner_code := 'S';
103665 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
103666 --
103667 l_balance_type_code          := 'A';
103668 l_segment                     := NULL;
103669 l_ccid                        := NULL;
103670 l_adr_transaction_coa_id      := NULL;
103671 l_adr_accounting_coa_id       := NULL;
103672 l_adr_flexfield_segment_code  := NULL;
103673 l_adr_flex_value_set_id       := NULL;
103674 l_adr_value_type_code         := NULL;
103675 l_adr_value_combination_id    := NULL;
103676 l_adr_value_segment_code      := NULL;
103677 
103678 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
103679 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
103680 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
103681 l_budgetary_control_flag     := 'N';
103682 
103683 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
103684 l_bflow_applied_to_amt       := NULL; -- 5132302
103685 l_entered_amt_idx            := NULL;          -- 4262811
103686 l_accted_amt_idx             := NULL;          -- 4262811
103687 l_acc_rev_flag               := NULL;          -- 4262811
103688 l_accrual_line_num           := NULL;          -- 4262811
103689 l_tmp_amt                    := NULL;          -- 4262811
103690 --
103691  
103692 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
103693     l_balance_type_code <> 'B' THEN
103694 IF NVL(p_source_3,'
103695 ') =  'BALANCING_SEGMENT' AND 
103696 NVL(p_source_135,'
103697 ') <>  'Y'
103698  THEN 
103699 
103700    --
103701    XLA_AE_LINES_PKG.SetNewLine;
103702 
103703    p_balance_type_code          := l_balance_type_code;
103704    -- set the flag so later we will know whether the gain loss line needs to be created
103705    
103706    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
103707      p_actual_flag :='A';
103708    END IF;
103709 
103710    --
103716    -- set accounting line options
103711    -- bulk performance
103712    --
103713    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
103714                                       p_header_num   => 0); -- 4262811
103715    --
103717    --
103718    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
103719            p_natural_side_code          => 'C'
103720          , p_gain_or_loss_flag          => 'N'
103721          , p_gl_transfer_mode_code      => 'S'
103722          , p_acct_entry_type_code       => 'A'
103723          , p_switch_side_flag           => 'Y'
103724          , p_merge_duplicate_code       => 'A'
103725          );
103726    --
103727    l_acc_rev_natural_side_code := 'D';  -- 4262811
103728    -- 
103729    --
103730    -- set accounting line type info
103731    --
103732    xla_ae_lines_pkg.SetAcctLineType
103733       (p_component_type             => l_component_type
103734       ,p_event_type_code            => l_event_type_code
103735       ,p_line_definition_owner_code => l_line_definition_owner_code
103736       ,p_line_definition_code       => l_line_definition_code
103737       ,p_accounting_line_code       => l_component_code
103738       ,p_accounting_line_type_code  => l_component_type_code
103739       ,p_accounting_line_appl_id    => l_component_appl_id
103740       ,p_amb_context_code           => l_amb_context_code
103741       ,p_entity_code                => l_entity_code
103742       ,p_event_class_code           => l_event_class_code);
103743    --
103744    -- set accounting class
103745    --
103746    xla_ae_lines_pkg.SetAcctClass(
103747            p_accounting_class_code  => 'LIABILITY'
103748          , p_ae_header_id           => l_ae_header_id
103749          );
103750 
103751    --
103752    -- set rounding class
103753    --
103754    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
103755                       'LIABILITY';
103756 
103757    --
103758    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
103759    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
103760    --
103761    -- bulk performance
103762    --
103763    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
103764 
103765    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
103766       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
103767 
103768    -- 4955764
103769    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103770       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
103771 
103772    -- 4458381 Public Sector Enh
103773    
103774    --
103775    -- set accounting attributes for the line type
103776    --
103777    l_entered_amt_idx := 23;
103778    l_accted_amt_idx  := 28;
103779    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
103780    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
103781    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
103782    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
103783    l_rec_acct_attrs.array_num_value(2)  := 
103784 xla_ae_sources_pkg.GetSystemSourceNum(
103785    p_source_code           => 'XLA_EVENT_APPL_ID'
103786  , p_source_type_code      => 'Y'
103787  , p_source_application_id =>  602
103788 );
103789    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
103790    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
103791    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
103792    l_rec_acct_attrs.array_char_value(4)  := 
103793 xla_ae_sources_pkg.GetSystemSourceChar(
103794    p_source_code           => 'XLA_ENTITY_CODE'
103795  , p_source_type_code      => 'Y'
103796  , p_source_application_id =>  602
103797 );
103798    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
103799    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
103800    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
103801    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
103802    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
103803    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
103804    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
103805    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
103806    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
103807    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
103808    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
103809    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
103810    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
103811    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
103812    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
103816    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
103813    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
103814    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
103815    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
103817    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
103818    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
103819    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
103820    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
103821    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
103822    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
103823    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
103824    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
103825    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
103826    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
103827    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
103828    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
103829    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
103830    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
103831    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
103832    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
103833    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
103834    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
103835    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
103836    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
103837    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
103838    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
103839    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
103843    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
103840    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
103841    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
103842    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
103844    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
103845    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
103846    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
103847    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
103848    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
103849    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
103850    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
103851    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
103852    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
103853    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
103854    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
103855    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
103856    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
103857    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
103858    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
103859    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
103860    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
103861    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
103862    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
103863    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
103864    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
103865    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
103866    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
103867    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
103868    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
103869    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
103870    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
103871    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
103872    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
103873    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
103874    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
103875    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
103876 
103877    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
103878    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
103879 
103880    ---------------------------------------------------------------------------------------------------------------
103881    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
103882    ---------------------------------------------------------------------------------------------------------------
103883    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
103884 
103885    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103889          (p_source_code         => 'LEDGER_CATEGORY_CODE'
103886    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103887 
103888    IF xla_accounting_cache_pkg.GetValueChar
103890          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
103891    AND l_bflow_method_code = 'PRIOR_ENTRY'
103892 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
103893    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
103894          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
103895        )
103896    THEN
103897          xla_ae_lines_pkg.BflowUpgEntry
103898            (p_business_method_code    => l_bflow_method_code
103899            ,p_business_class_code     => l_bflow_class_code
103900            ,p_balance_type            => l_balance_type_code);
103901    ELSE
103902       NULL;
103903 XLA_AE_LINES_PKG.business_flow_validation(
103904                                 p_business_method_code     => l_bflow_method_code
103905                                ,p_business_class_code      => l_bflow_class_code
103906                                ,p_inherit_description_flag => l_inherit_desc_flag);
103907    END IF;
103908 
103909    --
103910    -- call analytical criteria
103911    --
103912    
103913    --
103914    -- call description
103915    --
103916    
103917 xla_ae_lines_pkg.SetLineDescription(
103918    p_ae_header_id => l_ae_header_id
103919   ,p_description  => Description_2 (
103920      p_application_id         => p_application_id
103921    , p_ae_header_id           => l_ae_header_id 
103922 , p_source_1 => p_source_1
103923    )
103924 );
103925 
103926 
103927    --
103928    -- call ADRs
103929    -- Bug 4922099
103930    --
103931    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
103932         (NVL(l_actual_upg_option, 'N') = 'O') OR
103933         (NVL(l_enc_upg_option, 'N') = 'O')
103934       )
103935    THEN
103936    NULL;
103937    --
103938    --
103939    
103940   l_ccid := AcctDerRule_33(
103941            p_application_id           => p_application_id
103942          , p_ae_header_id             => l_ae_header_id 
103943 , p_source_22 => p_source_22
103944          , x_transaction_coa_id       => l_adr_transaction_coa_id
103945          , x_accounting_coa_id        => l_adr_accounting_coa_id
103946          , x_value_type_code          => l_adr_value_type_code
103947          , p_side                     => 'NA'
103948    );
103949 
103950    xla_ae_lines_pkg.set_ccid(
103951     p_code_combination_id          => l_ccid
103952   , p_value_type_code              => l_adr_value_type_code
103953   , p_transaction_coa_id           => l_adr_transaction_coa_id
103954   , p_accounting_coa_id            => l_adr_accounting_coa_id
103955   , p_adr_code                     => 'AP_LIAB'
103956   , p_adr_type_code                => 'S'
103957   , p_component_type               => l_component_type
103958   , p_component_code               => l_component_code
103959   , p_component_type_code          => l_component_type_code
103960   , p_component_appl_id            => l_component_appl_id
103961   , p_amb_context_code             => l_amb_context_code
103962   , p_side                         => 'NA'
103963   );
103964 
103965 
103966    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
103967      p_to_segment_code         => 'GL_BALANCING'
103968    , p_segment_value           => C_CHAR
103969    , p_from_segment_code       => NULL
103970    , p_from_combination_id     => NULL
103971    , p_value_type_code         => NULL
103972    , p_transaction_coa_id      => null
103976    , p_adr_code                => NULL
103973    , p_accounting_coa_id       => null
103974    , p_flexfield_segment_code  => NULL
103975    , p_flex_value_set_id       => NULL
103977    , p_adr_type_code           => NULL
103978    , p_component_type          => l_component_type
103979    , p_component_code          => l_component_code
103980    , p_component_type_code     => l_component_type_code
103981    , p_component_appl_id       => l_component_appl_id
103982    , p_amb_context_code        => l_amb_context_code
103983    , p_entity_code             => 'AP_INVOICES'
103984    , p_event_class_code        => 'PREPAYMENTS'
103985    , p_side                    => 'NA'
103986    );
103987    --
103988 
103989 
103990    --
103991    --
103992    END IF;
103993    --
103994    -- Bug 4922099
103995    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
103996           (NVL(l_enc_upg_option, 'N') = 'O')
103997         ) AND
103998         (l_bflow_method_code = 'PRIOR_ENTRY')
103999       )
104000    THEN
104001       IF
104002       --
104003       1 = 2
104004       --
104005       THEN
104006       xla_accounting_err_pkg.build_message
104007                                     (p_appli_s_name            => 'XLA'
104008                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104009                                     ,p_token_1                 => 'LINE_NUMBER'
104010                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
104011                                     ,p_token_2                 => 'LINE_TYPE_NAME'
104012                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
104013                                                                              l_component_type
104014                                                                             ,l_component_code
104015                                                                             ,l_component_type_code
104016                                                                             ,l_component_appl_id
104017                                                                             ,l_amb_context_code
104018                                                                             ,l_entity_code
104019                                                                             ,l_event_class_code
104020                                                                            )
104021                                     ,p_token_3                 => 'OWNER'
104022                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
104023                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
104024                                                                           ,p_lookup_code    => l_component_type_code
104025                                                                          )
104026                                     ,p_token_4                 => 'PRODUCT_NAME'
104027                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
104028                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
104029                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
104030                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
104031                                     ,p_ae_header_id            =>  NULL
104032                                        );
104033 
104034         IF (C_LEVEL_ERROR>= g_log_level) THEN
104035                  trace
104036                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104037                       ,p_level    => C_LEVEL_ERROR
104038                       ,p_module   => l_log_module);
104039         END IF;
104040       END IF;
104041    END IF;
104042    --
104043    --
104044    ------------------------------------------------------------------------------------------------
104045    -- 4219869 Business Flow
104046    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
104047    -- Prior Entry.  Currently, the following code is always generated.
104048    ------------------------------------------------------------------------------------------------
104049    XLA_AE_LINES_PKG.ValidateCurrentLine;
104050 
104051    ------------------------------------------------------------------------------------
104052    -- 4219869 Business Flow
104053    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
104054    ------------------------------------------------------------------------------------
104055    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104056 
104057    ----------------------------------------------------------------------------------
104058    -- 4219869 Business Flow
104059    -- Update journal entry status -- Need to generate this within IF <condition>
104060    ----------------------------------------------------------------------------------
104061    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104062          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
104063          ,p_balance_type_code => l_balance_type_code
104064          );
104065 
104069    BEGIN
104066    -------------------------------------------------------------------------------------------
104067    -- 4262811 - Generate the Accrual Reversal lines
104068    -------------------------------------------------------------------------------------------
104070       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
104071                               (g_array_event(p_event_id).array_value_num('header_index'));
104072       IF l_acc_rev_flag IS NULL THEN
104073          l_acc_rev_flag := 'N';
104074       END IF;
104075    EXCEPTION
104076       WHEN OTHERS THEN
104077          l_acc_rev_flag := 'N';
104078    END;
104079    --
104080    IF (l_acc_rev_flag = 'Y') THEN
104081 
104082        -- 4645092  ------------------------------------------------------------------------------
104083        -- To allow MPA report to determine if it should generate report process
104084        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
104085        ------------------------------------------------------------------------------------------
104086 
104087        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
104088        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
104089    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
104090    -- call ADRs
104091    -- Bug 4922099
104092    --
104093    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104094         (NVL(l_actual_upg_option, 'N') = 'O') OR
104095         (NVL(l_enc_upg_option, 'N') = 'O')
104096       )
104097    THEN
104098    NULL;
104099    --
104100    --
104101    
104102   l_ccid := AcctDerRule_33(
104103            p_application_id           => p_application_id
104104          , p_ae_header_id             => l_ae_header_id 
104105 , p_source_22 => p_source_22
104106          , x_transaction_coa_id       => l_adr_transaction_coa_id
104107          , x_accounting_coa_id        => l_adr_accounting_coa_id
104108          , x_value_type_code          => l_adr_value_type_code
104109          , p_side                     => 'NA'
104110    );
104111 
104112    xla_ae_lines_pkg.set_ccid(
104113     p_code_combination_id          => l_ccid
104114   , p_value_type_code              => l_adr_value_type_code
104115   , p_transaction_coa_id           => l_adr_transaction_coa_id
104116   , p_accounting_coa_id            => l_adr_accounting_coa_id
104117   , p_adr_code                     => 'AP_LIAB'
104118   , p_adr_type_code                => 'S'
104119   , p_component_type               => l_component_type
104120   , p_component_code               => l_component_code
104121   , p_component_type_code          => l_component_type_code
104122   , p_component_appl_id            => l_component_appl_id
104123   , p_amb_context_code             => l_amb_context_code
104124   , p_side                         => 'NA'
104125   );
104126 
104127 
104128    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
104129      p_to_segment_code         => 'GL_BALANCING'
104130    , p_segment_value           => C_CHAR
104131    , p_from_segment_code       => NULL
104132    , p_from_combination_id     => NULL
104133    , p_value_type_code         => NULL
104134    , p_transaction_coa_id      => null
104135    , p_accounting_coa_id       => null
104136    , p_flexfield_segment_code  => NULL
104137    , p_flex_value_set_id       => NULL
104138    , p_adr_code                => NULL
104139    , p_adr_type_code           => NULL
104140    , p_component_type          => l_component_type
104141    , p_component_code          => l_component_code
104142    , p_component_type_code     => l_component_type_code
104143    , p_component_appl_id       => l_component_appl_id
104144    , p_amb_context_code        => l_amb_context_code
104145    , p_entity_code             => 'AP_INVOICES'
104146    , p_event_class_code        => 'PREPAYMENTS'
104147    , p_side                    => 'NA'
104148    );
104149    --
104150 
104151 
104152    --
104153    --
104154    END IF;
104155 
104156        --
104157        -- Update the line information that should be overwritten
104158        --
104159        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
104160                                          p_header_num   => 1);
104161        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
104162 
104163        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
104164 
104165        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
104166           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
104167        END IF;
104168 
104169       --
104170       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
104171       --
104172       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
104173           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
104174       ELSE
104175           ---------------------------------------------------------------------------------------------------
104176           -- 4262811a Switch Sign
104177           ---------------------------------------------------------------------------------------------------
104178           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
104179           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104180                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104181           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104182                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104183           -- 5132302
104187       END IF;
104184           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
104185                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104186 
104188 
104189       -- 4955764
104190       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104191       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
104192 
104193 
104194       XLA_AE_LINES_PKG.ValidateCurrentLine;
104195       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104196 
104197       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104198                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
104199                ,p_balance_type_code => l_balance_type_code);
104200 
104201    END IF;
104202 
104203    -----------------------------------------------------------------------------------------
104204    -- 4262811 Multiperiod Accounting
104205    -----------------------------------------------------------------------------------------
104206      -- No MPA option is assigned.
104207 
104208 
104209 END IF;
104210 END IF;
104211 --
104212 
104213 --
104214 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104215    trace
104216       (p_msg      => 'END of AcctLineType_180'
104217       ,p_level    => C_LEVEL_PROCEDURE
104218       ,p_module   => l_log_module);
104219 END IF;
104220 --
104221 EXCEPTION
104222   WHEN xla_exceptions_pkg.application_exception THEN
104223       RAISE;
104224   WHEN OTHERS THEN
104225        xla_exceptions_pkg.raise_message
104226            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_180');
104227 END AcctLineType_180;
104228 --
104229 
104230 ---------------------------------------
104231 --
104232 -- PRIVATE FUNCTION
104233 --         AcctLineType_181
104234 --
104235 ---------------------------------------
104236 PROCEDURE AcctLineType_181 (
104237   p_application_id        IN NUMBER
104238  ,p_event_id              IN NUMBER
104239  ,p_calculate_acctd_flag  IN VARCHAR2
104240  ,p_calculate_g_l_flag    IN VARCHAR2
104241  ,p_actual_flag           IN OUT VARCHAR2
104242  ,p_balance_type_code     OUT VARCHAR2
104243  ,p_gain_or_loss_ref      OUT VARCHAR2
104244  
104245 --Accounting Reversal Indicator
104246  , p_source_41            IN VARCHAR2
104247 --Distribution Link Type
104248  , p_source_43            IN VARCHAR2
104249 --Invoice Identifier
104250  , p_source_46            IN NUMBER
104251 --Payables Encumbrance Upgrade Credit Account
104252  , p_source_53            IN NUMBER
104253 --Payables Encumbrance Upgrade Credit Amount
104254  , p_source_54            IN NUMBER
104255 --Invoice Currency Code
104256  , p_source_55            IN VARCHAR2
104257 --Payables Encumbrance Upgrade Credit Base Amount
104258  , p_source_56            IN NUMBER
104259 --Payables Encumbrance Upgrade Debit Account
104260  , p_source_57            IN NUMBER
104261 --Payables Encumbrance Upgrade Debit Amount
104262  , p_source_58            IN NUMBER
104263 --Payables Encumbrance Upgrade Debit Base Amount
104264  , p_source_59            IN NUMBER
104265 --Payables Encumbrance Upgrade Option
104266  , p_source_60            IN VARCHAR2
104267 --Deferred Accounting End Date
104268  , p_source_65            IN DATE
104269 --Deferred Accounting Option
104270  , p_source_66            IN VARCHAR2
104271 --Deferred Accounting Start Date
104272  , p_source_67            IN DATE
104273 --Override Accounted Amount Indicator
104274  , p_source_68            IN VARCHAR2
104275  , p_source_68_meaning    IN VARCHAR2
104276 --Third Party Type
104277  , p_source_71            IN VARCHAR2
104278 --Invoice Distribution Tax Line Identifier
104279  , p_source_74            IN NUMBER
104280 --Invoice Distribution Tax Distribution Identifier from Tax
104281  , p_source_75            IN NUMBER
104282 --Invoice Distribution Summary Tax Line Identifier
104283  , p_source_76            IN NUMBER
104284 --Payables Upgrade Credit Encumbrance Type Identifier
104285  , p_source_77            IN NUMBER
104286 --Payables Upgrade Debit Encumbrance Type Identifier
104287  , p_source_78            IN NUMBER
104288 --Business Flow Accounts Payable Application Identifier
104289  , p_source_79            IN NUMBER
104290 --Prepayment Distribution Type
104291  , p_source_118            IN VARCHAR2
104292 --Prepayment Application Distribution Identifier
104293  , p_source_120            IN NUMBER
104294 --Upgrade Encumbrance Credit Account Class
104295  , p_source_125            IN VARCHAR2
104296 --Upgrade Encumbrance Debit Account Class
104297  , p_source_126            IN VARCHAR2
104298 --Prepayment Distribution Amount
104299  , p_source_127            IN NUMBER
104300 --Identifier of the Prepayment Application Reversed
104301  , p_source_129            IN NUMBER
104302 --Business Flow Recipient Invoice Distribution Identifier
104303  , p_source_132            IN NUMBER
104304 --Business Flow Recipient Invoice Identifier
104305  , p_source_133            IN NUMBER
104306 --Prepayment Distribution (Invoice Rate) Ledger Amount
104307  , p_source_134            IN NUMBER
104308 --Business Flow Prepayment Invoice Distribution Type
104309  , p_source_139            IN VARCHAR2
104310 --Business Flow Prepayment Invoice Entity Code
104311  , p_source_140            IN VARCHAR2
104312 )
104313 IS
104314 
104315 l_component_type              VARCHAR2(80);
104316 l_component_code              VARCHAR2(30);
104317 l_component_type_code         VARCHAR2(1);
104318 l_component_appl_id           INTEGER;
104319 l_amb_context_code            VARCHAR2(30);
104320 l_entity_code                 VARCHAR2(30);
104321 l_event_class_code            VARCHAR2(30);
104322 l_ae_header_id                NUMBER;
104326 --
104323 l_event_type_code             VARCHAR2(30);
104324 l_line_definition_code        VARCHAR2(30);
104325 l_line_definition_owner_code  VARCHAR2(1);
104327 -- adr variables
104328 l_segment                     VARCHAR2(30);
104329 l_ccid                        NUMBER;
104330 l_adr_transaction_coa_id      NUMBER;
104331 l_adr_accounting_coa_id       NUMBER;
104332 l_adr_flexfield_segment_code  VARCHAR2(30);
104333 l_adr_flex_value_set_id       NUMBER;
104334 l_adr_value_type_code         VARCHAR2(30);
104335 l_adr_value_combination_id    NUMBER;
104336 l_adr_value_segment_code      VARCHAR2(30);
104337 
104338 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
104339 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
104340 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
104341 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
104342 
104343 -- 4262811 Variables ------------------------------------------------------------------------------------------
104344 l_entered_amt_idx             NUMBER;
104345 l_accted_amt_idx              NUMBER;
104346 l_acc_rev_flag                VARCHAR2(1);
104347 l_accrual_line_num            NUMBER;
104348 l_tmp_amt                     NUMBER;
104349 l_acc_rev_natural_side_code   VARCHAR2(1);
104350 
104351 l_num_entries                 NUMBER;
104352 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
104353 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
104354 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
104355 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
104356 l_recog_line_1                NUMBER;
104357 l_recog_line_2                NUMBER;
104358 
104359 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
104360 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
104361 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
104362 
104363 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
104364 
104365 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
104366 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
104367 
104368 ---------------------------------------------------------------------------------------------------------------
104369 
104370 
104371 --
104372 -- bulk performance
104373 --
104374 l_balance_type_code           VARCHAR2(1);
104375 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
104376 l_log_module                  VARCHAR2(240);
104377 
104378 --
104379 -- Upgrade strategy
104380 --
104381 l_actual_upg_option           VARCHAR2(1);
104382 l_enc_upg_option           VARCHAR2(1);
104383 
104384 --
104385 BEGIN
104386 --
104387 IF g_log_enabled THEN
104388       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_181';
104389 END IF;
104390 --
104391 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104392 
104393       trace
104394          (p_msg      => 'BEGIN of AcctLineType_181'
104395          ,p_level    => C_LEVEL_PROCEDURE
104396          ,p_module   => l_log_module);
104397 
104398 END IF;
104399 --
104400 l_component_type             := 'AMB_JLT';
104401 l_component_code             := 'AP_LIAB_PREPAY_APP';
104402 l_component_type_code        := 'S';
104403 l_component_appl_id          :=  200;
104404 l_amb_context_code           := 'DEFAULT';
104405 l_entity_code                := 'AP_INVOICES';
104406 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
104407 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
104408 l_line_definition_owner_code := 'S';
104409 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
104410 --
104411 l_balance_type_code          := 'A';
104412 l_segment                     := NULL;
104413 l_ccid                        := NULL;
104414 l_adr_transaction_coa_id      := NULL;
104415 l_adr_accounting_coa_id       := NULL;
104416 l_adr_flexfield_segment_code  := NULL;
104417 l_adr_flex_value_set_id       := NULL;
104418 l_adr_value_type_code         := NULL;
104419 l_adr_value_combination_id    := NULL;
104420 l_adr_value_segment_code      := NULL;
104421 
104422 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
104423 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
104424 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
104425 l_budgetary_control_flag     := 'N';
104426 
104427 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
104428 l_bflow_applied_to_amt       := NULL; -- 5132302
104429 l_entered_amt_idx            := NULL;          -- 4262811
104430 l_accted_amt_idx             := NULL;          -- 4262811
104431 l_acc_rev_flag               := NULL;          -- 4262811
104432 l_accrual_line_num           := NULL;          -- 4262811
104433 l_tmp_amt                    := NULL;          -- 4262811
104434 --
104435  
104436 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
104437     l_balance_type_code <> 'B' THEN
104438 IF NVL(p_source_118,'
104439 ') =  'PREPAY APPL' OR 
104440 NVL(p_source_118,'
104441 ') =  'FINAL PAYMENT ROUNDING' OR 
104442 NVL(p_source_118,'
104443 ') =  'PREPAY APPL REC TAX' OR 
104444 NVL(p_source_118,'
104445 ') =  'PREPAY APPL NONREC TAX'
104446  THEN 
104447 
104448    --
104449    XLA_AE_LINES_PKG.SetNewLine;
104450 
104451    p_balance_type_code          := l_balance_type_code;
104452    -- set the flag so later we will know whether the gain loss line needs to be created
104453    
104454    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
104455      p_actual_flag :='A';
104456    END IF;
104457 
104458    --
104462                                       p_header_num   => 0); -- 4262811
104459    -- bulk performance
104460    --
104461    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
104463    --
104464    -- set accounting line options
104465    --
104466    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
104467            p_natural_side_code          => 'C'
104468          , p_gain_or_loss_flag          => 'N'
104469          , p_gl_transfer_mode_code      => 'S'
104470          , p_acct_entry_type_code       => 'A'
104471          , p_switch_side_flag           => 'Y'
104472          , p_merge_duplicate_code       => 'A'
104473          );
104474    --
104475    l_acc_rev_natural_side_code := 'D';  -- 4262811
104476    -- 
104477    --
104478    -- set accounting line type info
104479    --
104480    xla_ae_lines_pkg.SetAcctLineType
104481       (p_component_type             => l_component_type
104482       ,p_event_type_code            => l_event_type_code
104483       ,p_line_definition_owner_code => l_line_definition_owner_code
104484       ,p_line_definition_code       => l_line_definition_code
104485       ,p_accounting_line_code       => l_component_code
104486       ,p_accounting_line_type_code  => l_component_type_code
104487       ,p_accounting_line_appl_id    => l_component_appl_id
104488       ,p_amb_context_code           => l_amb_context_code
104489       ,p_entity_code                => l_entity_code
104490       ,p_event_class_code           => l_event_class_code);
104491    --
104492    -- set accounting class
104493    --
104494    xla_ae_lines_pkg.SetAcctClass(
104495            p_accounting_class_code  => 'LIABILITY'
104496          , p_ae_header_id           => l_ae_header_id
104497          );
104498 
104499    --
104500    -- set rounding class
104501    --
104502    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
104503                       'LIABILITY';
104504 
104505    --
104506    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
104507    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
104508    --
104509    -- bulk performance
104510    --
104511    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
104512 
104513    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
104514       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
104515 
104516    -- 4955764
104517    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104518       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
104519 
104520    -- 4458381 Public Sector Enh
104521    
104522    --
104523    -- set accounting attributes for the line type
104524    --
104525    l_entered_amt_idx := 25;
104526    l_accted_amt_idx  := 27;
104527    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
104528    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
104529    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
104530    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
104531    l_rec_acct_attrs.array_num_value(2)  := 
104532 xla_ae_sources_pkg.GetSystemSourceNum(
104533    p_source_code           => 'XLA_EVENT_APPL_ID'
104534  , p_source_type_code      => 'Y'
104535  , p_source_application_id =>  602
104536 );
104537    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
104538    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
104539    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
104540    l_rec_acct_attrs.array_char_value(4)  := 
104541 xla_ae_sources_pkg.GetSystemSourceChar(
104542    p_source_code           => 'XLA_ENTITY_CODE'
104543  , p_source_type_code      => 'Y'
104544  , p_source_application_id =>  602
104545 );
104546    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
104547    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_120);
104548    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
104549    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
104550    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
104551    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
104552    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
104553    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
104554    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
104555    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
104556    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
104557    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_132);
104558    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
104559    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_133);
104560    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
104561    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_120);
104562    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
104563    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
104564    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
104565    l_rec_acct_attrs.array_char_value(14)  := p_source_125;
104566    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
104567    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
104568    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
104569    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
104570    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
104571    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
104572    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
104576    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
104573    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
104574    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
104575    l_rec_acct_attrs.array_char_value(19)  := p_source_126;
104577    l_rec_acct_attrs.array_num_value(20)  := p_source_57;
104578    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
104579    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
104580    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
104581    l_rec_acct_attrs.array_char_value(22)  := p_source_55;
104582    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
104583    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
104584    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
104585    l_rec_acct_attrs.array_char_value(24)  := p_source_60;
104586    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
104587    l_rec_acct_attrs.array_num_value(25)  := p_source_127;
104588    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
104589    l_rec_acct_attrs.array_char_value(26)  := p_source_55;
104590    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
104591    l_rec_acct_attrs.array_num_value(27)  := p_source_134;
104592    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
104593    l_rec_acct_attrs.array_date_value(28)  := p_source_65;
104594    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
104595    l_rec_acct_attrs.array_char_value(29)  := p_source_66;
104596    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
104597    l_rec_acct_attrs.array_date_value(30)  := p_source_67;
104598    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
104599    l_rec_acct_attrs.array_char_value(31)  := p_source_68;
104600    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
104601    l_rec_acct_attrs.array_char_value(32)  := p_source_71;
104602    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
104603    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_129);
104604    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
104605    l_rec_acct_attrs.array_char_value(34)  := p_source_43;
104606    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
104607    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
104608    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
104609    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
104610    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
104611    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
104612    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
104613    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
104614    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
104615    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
104616 
104617    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
104618    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
104619 
104620    ---------------------------------------------------------------------------------------------------------------
104621    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
104622    ---------------------------------------------------------------------------------------------------------------
104623    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
104624 
104625    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104626    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104627 
104628    IF xla_accounting_cache_pkg.GetValueChar
104629          (p_source_code         => 'LEDGER_CATEGORY_CODE'
104630          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
104631    AND l_bflow_method_code = 'PRIOR_ENTRY'
104632 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
104633    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
104634          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
104635        )
104636    THEN
104637          xla_ae_lines_pkg.BflowUpgEntry
104638            (p_business_method_code    => l_bflow_method_code
104639            ,p_business_class_code     => l_bflow_class_code
104640            ,p_balance_type            => l_balance_type_code);
104641    ELSE
104642       NULL;
104643 XLA_AE_LINES_PKG.business_flow_validation(
104644                                 p_business_method_code     => l_bflow_method_code
104645                                ,p_business_class_code      => l_bflow_class_code
104646                                ,p_inherit_description_flag => l_inherit_desc_flag);
104647    END IF;
104648 
104649    --
104650    -- call analytical criteria
104651    --
104652    -- Inherited Analytical Criteria for business flow method of Prior Entry.
104653    --
104654    -- call description
104655    --
104656    -- No description or it is inherited.
104657    --
104658    -- call ADRs
104659    -- Bug 4922099
104660    --
104661    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104662         (NVL(l_actual_upg_option, 'N') = 'O') OR
104663         (NVL(l_enc_upg_option, 'N') = 'O')
104664       )
104665    THEN
104666    NULL;
104667    --
104668    --
104669    
104670    --
104671    --
104672    END IF;
104673    --
104674    -- Bug 4922099
104675    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
104676           (NVL(l_enc_upg_option, 'N') = 'O')
104677         ) AND
104678         (l_bflow_method_code = 'PRIOR_ENTRY')
104679       )
104680    THEN
104681       IF
104682       --
104683       1 = 1
104684       --
104685       THEN
104689                                     ,p_token_1                 => 'LINE_NUMBER'
104686       xla_accounting_err_pkg.build_message
104687                                     (p_appli_s_name            => 'XLA'
104688                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104690                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
104691                                     ,p_token_2                 => 'LINE_TYPE_NAME'
104692                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
104693                                                                              l_component_type
104694                                                                             ,l_component_code
104695                                                                             ,l_component_type_code
104696                                                                             ,l_component_appl_id
104697                                                                             ,l_amb_context_code
104698                                                                             ,l_entity_code
104699                                                                             ,l_event_class_code
104700                                                                            )
104701                                     ,p_token_3                 => 'OWNER'
104702                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
104703                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
104704                                                                           ,p_lookup_code    => l_component_type_code
104705                                                                          )
104706                                     ,p_token_4                 => 'PRODUCT_NAME'
104707                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
104708                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
104709                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
104710                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
104711                                     ,p_ae_header_id            =>  NULL
104712                                        );
104713 
104714         IF (C_LEVEL_ERROR>= g_log_level) THEN
104715                  trace
104716                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104717                       ,p_level    => C_LEVEL_ERROR
104718                       ,p_module   => l_log_module);
104719         END IF;
104720       END IF;
104721    END IF;
104722    --
104723    --
104724    ------------------------------------------------------------------------------------------------
104725    -- 4219869 Business Flow
104726    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
104727    -- Prior Entry.  Currently, the following code is always generated.
104728    ------------------------------------------------------------------------------------------------
104729    -- No ValidateCurrentLine for business flow method of Prior Entry
104730 
104731    ------------------------------------------------------------------------------------
104732    -- 4219869 Business Flow
104733    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
104734    ------------------------------------------------------------------------------------
104735    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104736 
104737    ----------------------------------------------------------------------------------
104738    -- 4219869 Business Flow
104739    -- Update journal entry status -- Need to generate this within IF <condition>
104740    ----------------------------------------------------------------------------------
104741    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104742          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
104743          ,p_balance_type_code => l_balance_type_code
104744          );
104745 
104746    -------------------------------------------------------------------------------------------
104747    -- 4262811 - Generate the Accrual Reversal lines
104748    -------------------------------------------------------------------------------------------
104749    BEGIN
104750       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
104751                               (g_array_event(p_event_id).array_value_num('header_index'));
104752       IF l_acc_rev_flag IS NULL THEN
104753          l_acc_rev_flag := 'N';
104754       END IF;
104755    EXCEPTION
104756       WHEN OTHERS THEN
104757          l_acc_rev_flag := 'N';
104758    END;
104759    --
104760    IF (l_acc_rev_flag = 'Y') THEN
104761 
104762        -- 4645092  ------------------------------------------------------------------------------
104763        -- To allow MPA report to determine if it should generate report process
104764        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
104765        ------------------------------------------------------------------------------------------
104766 
104767        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
104768        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
104769    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
104770    -- call ADRs
104771    -- Bug 4922099
104772    --
104773    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104774         (NVL(l_actual_upg_option, 'N') = 'O') OR
104775         (NVL(l_enc_upg_option, 'N') = 'O')
104776       )
104777    THEN
104778    NULL;
104779    --
104780    --
104781    
104782    --
104783    --
104784    END IF;
104785 
104786        --
104787        -- Update the line information that should be overwritten
104791        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
104788        --
104789        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
104790                                          p_header_num   => 1);
104792 
104793        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
104794 
104798 
104795        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
104796           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
104797        END IF;
104799       --
104800       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
104801       --
104802       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
104803           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
104804       ELSE
104805           ---------------------------------------------------------------------------------------------------
104806           -- 4262811a Switch Sign
104807           ---------------------------------------------------------------------------------------------------
104808           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
104809           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104810                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104811           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104812                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104813           -- 5132302
104814           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
104815                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104816 
104817       END IF;
104818 
104819       -- 4955764
104820       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104821       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
104822 
104823 
104824       XLA_AE_LINES_PKG.ValidateCurrentLine;
104825       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104826 
104827       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104828                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
104829                ,p_balance_type_code => l_balance_type_code);
104830 
104831    END IF;
104832 
104833    -----------------------------------------------------------------------------------------
104834    -- 4262811 Multiperiod Accounting
104835    -----------------------------------------------------------------------------------------
104836      -- No MPA option is assigned.
104837 
104838 
104839 END IF;
104840 END IF;
104841 --
104842 
104843 --
104844 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104845    trace
104846       (p_msg      => 'END of AcctLineType_181'
104847       ,p_level    => C_LEVEL_PROCEDURE
104848       ,p_module   => l_log_module);
104849 END IF;
104850 --
104851 EXCEPTION
104852   WHEN xla_exceptions_pkg.application_exception THEN
104853       RAISE;
104854   WHEN OTHERS THEN
104855        xla_exceptions_pkg.raise_message
104856            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_181');
104857 END AcctLineType_181;
104858 --
104859 
104860 ---------------------------------------
104861 --
104862 -- PRIVATE FUNCTION
104863 --         AcctLineType_182
104864 --
104865 ---------------------------------------
104866 PROCEDURE AcctLineType_182 (
104867   p_application_id        IN NUMBER
104868  ,p_event_id              IN NUMBER
104869  ,p_calculate_acctd_flag  IN VARCHAR2
104870  ,p_calculate_g_l_flag    IN VARCHAR2
104871  ,p_actual_flag           IN OUT VARCHAR2
104872  ,p_balance_type_code     OUT VARCHAR2
104876  , p_source_41            IN VARCHAR2
104873  ,p_gain_or_loss_ref      OUT VARCHAR2
104874  
104875 --Accounting Reversal Indicator
104877 --Distribution Link Type
104878  , p_source_43            IN VARCHAR2
104879 --Override Accounted Amount Indicator
104880  , p_source_68            IN VARCHAR2
104881  , p_source_68_meaning    IN VARCHAR2
104882 --Third Party Type
104883  , p_source_71            IN VARCHAR2
104884 --Invoice Distribution Tax Line Identifier
104885  , p_source_74            IN NUMBER
104886 --Invoice Distribution Tax Distribution Identifier from Tax
104887  , p_source_75            IN NUMBER
104888 --Invoice Distribution Summary Tax Line Identifier
104889  , p_source_76            IN NUMBER
104890 --Business Flow Accounts Payable Application Identifier
104891  , p_source_79            IN NUMBER
104892 --Business Flow Invoice Distribution Type
104893  , p_source_80            IN VARCHAR2
104894 --Business Flow Invoice Entity Code
104895  , p_source_81            IN VARCHAR2
104896 --Business Flow Invoice Distribution Identifier
104897  , p_source_82            IN NUMBER
104898 --Business Flow Invoice Identifier
104899  , p_source_83            IN NUMBER
104900 --When to Account for Payment Option
104901  , p_source_89            IN VARCHAR2
104902 --Payment Distribution Type
104903  , p_source_90            IN VARCHAR2
104904  , p_source_90_meaning    IN VARCHAR2
104905 --Payment Distribution Amount
104906  , p_source_91            IN NUMBER
104907 --Payment Distribution Identifier
104908  , p_source_96            IN NUMBER
104909 --Payment Distribution Reversed Identifier
104910  , p_source_104            IN NUMBER
104911 --Payment Currency Code
104912  , p_source_106            IN VARCHAR2
104913 --Payment Distribution (Invoice Rate) Ledger Amount
104914  , p_source_109            IN NUMBER
104915 --Payment Type
104916  , p_source_115            IN VARCHAR2
104917  , p_source_115_meaning    IN VARCHAR2
104918 )
104919 IS
104920 
104921 l_component_type              VARCHAR2(80);
104922 l_component_code              VARCHAR2(30);
104923 l_component_type_code         VARCHAR2(1);
104924 l_component_appl_id           INTEGER;
104925 l_amb_context_code            VARCHAR2(30);
104926 l_entity_code                 VARCHAR2(30);
104927 l_event_class_code            VARCHAR2(30);
104928 l_ae_header_id                NUMBER;
104929 l_event_type_code             VARCHAR2(30);
104930 l_line_definition_code        VARCHAR2(30);
104931 l_line_definition_owner_code  VARCHAR2(1);
104932 --
104933 -- adr variables
104934 l_segment                     VARCHAR2(30);
104935 l_ccid                        NUMBER;
104936 l_adr_transaction_coa_id      NUMBER;
104937 l_adr_accounting_coa_id       NUMBER;
104938 l_adr_flexfield_segment_code  VARCHAR2(30);
104939 l_adr_flex_value_set_id       NUMBER;
104940 l_adr_value_type_code         VARCHAR2(30);
104941 l_adr_value_combination_id    NUMBER;
104942 l_adr_value_segment_code      VARCHAR2(30);
104943 
104944 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
104945 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
104949 -- 4262811 Variables ------------------------------------------------------------------------------------------
104946 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
104947 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
104948 
104950 l_entered_amt_idx             NUMBER;
104951 l_accted_amt_idx              NUMBER;
104952 l_acc_rev_flag                VARCHAR2(1);
104953 l_accrual_line_num            NUMBER;
104954 l_tmp_amt                     NUMBER;
104955 l_acc_rev_natural_side_code   VARCHAR2(1);
104956 
104957 l_num_entries                 NUMBER;
104958 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
104959 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
104960 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
104961 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
104962 l_recog_line_1                NUMBER;
104963 l_recog_line_2                NUMBER;
104964 
104965 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
104966 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
104967 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
104968 
104969 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
104970 
104971 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
104972 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
104973 
104974 ---------------------------------------------------------------------------------------------------------------
104975 
104976 
104977 --
104978 -- bulk performance
104979 --
104980 l_balance_type_code           VARCHAR2(1);
104981 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
104982 l_log_module                  VARCHAR2(240);
104983 
104984 --
104985 -- Upgrade strategy
104986 --
104987 l_actual_upg_option           VARCHAR2(1);
104988 l_enc_upg_option           VARCHAR2(1);
104989 
104990 --
104991 BEGIN
104992 --
104993 IF g_log_enabled THEN
104994       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_182';
104995 END IF;
104996 --
104997 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104998 
104999       trace
105000          (p_msg      => 'BEGIN of AcctLineType_182'
105001          ,p_level    => C_LEVEL_PROCEDURE
105002          ,p_module   => l_log_module);
105003 
105004 END IF;
105005 --
105006 l_component_type             := 'AMB_JLT';
105007 l_component_code             := 'AP_LIAB_REF';
105008 l_component_type_code        := 'S';
105009 l_component_appl_id          :=  200;
105010 l_amb_context_code           := 'DEFAULT';
105011 l_entity_code                := 'AP_PAYMENTS';
105012 l_event_class_code           := 'REFUNDS';
105013 l_event_type_code            := 'REFUNDS_ALL';
105014 l_line_definition_owner_code := 'S';
105015 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
105016 --
105017 l_balance_type_code          := 'A';
105018 l_segment                     := NULL;
105019 l_ccid                        := NULL;
105020 l_adr_transaction_coa_id      := NULL;
105021 l_adr_accounting_coa_id       := NULL;
105022 l_adr_flexfield_segment_code  := NULL;
105023 l_adr_flex_value_set_id       := NULL;
105024 l_adr_value_type_code         := NULL;
105025 l_adr_value_combination_id    := NULL;
105026 l_adr_value_segment_code      := NULL;
105027 
105028 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
105029 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
105030 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
105031 l_budgetary_control_flag     := 'N';
105032 
105033 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
105034 l_bflow_applied_to_amt       := NULL; -- 5132302
105035 l_entered_amt_idx            := NULL;          -- 4262811
105036 l_accted_amt_idx             := NULL;          -- 4262811
105037 l_acc_rev_flag               := NULL;          -- 4262811
105038 l_accrual_line_num           := NULL;          -- 4262811
105039 l_tmp_amt                    := NULL;          -- 4262811
105040 --
105041  
105042 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
105043     l_balance_type_code <> 'B' THEN
105044 IF NVL(p_source_89,'
105045 ') <>  'CLEAR_CLEAR' AND 
105046 (NVL(p_source_90,'
105047 ') =  'ROUNDING' OR 
105048 NVL(p_source_90,'
105049 ') =  'CASH' OR 
105050 NVL(p_source_90,'
105051 ') =  'DISCOUNT') AND 
105055 
105052 NVL(p_source_115,'
105053 ') =  'R'
105054  THEN 
105056    --
105057    XLA_AE_LINES_PKG.SetNewLine;
105058 
105059    p_balance_type_code          := l_balance_type_code;
105060    -- set the flag so later we will know whether the gain loss line needs to be created
105061    
105062    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
105063      p_actual_flag :='A';
105064    END IF;
105065 
105066    --
105067    -- bulk performance
105068    --
105069    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
105070                                       p_header_num   => 0); -- 4262811
105071    --
105072    -- set accounting line options
105073    --
105074    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
105075            p_natural_side_code          => 'D'
105076          , p_gain_or_loss_flag          => 'N'
105077          , p_gl_transfer_mode_code      => 'S'
105078          , p_acct_entry_type_code       => 'A'
105079          , p_switch_side_flag           => 'Y'
105080          , p_merge_duplicate_code       => 'A'
105081          );
105082    --
105083    l_acc_rev_natural_side_code := 'C';  -- 4262811
105084    -- 
105085    --
105086    -- set accounting line type info
105087    --
105088    xla_ae_lines_pkg.SetAcctLineType
105089       (p_component_type             => l_component_type
105090       ,p_event_type_code            => l_event_type_code
105091       ,p_line_definition_owner_code => l_line_definition_owner_code
105092       ,p_line_definition_code       => l_line_definition_code
105093       ,p_accounting_line_code       => l_component_code
105094       ,p_accounting_line_type_code  => l_component_type_code
105095       ,p_accounting_line_appl_id    => l_component_appl_id
105096       ,p_amb_context_code           => l_amb_context_code
105097       ,p_entity_code                => l_entity_code
105098       ,p_event_class_code           => l_event_class_code);
105099    --
105100    -- set accounting class
105101    --
105102    xla_ae_lines_pkg.SetAcctClass(
105103            p_accounting_class_code  => 'LIABILITY'
105104          , p_ae_header_id           => l_ae_header_id
105105          );
105106 
105107    --
105111                       'LIABILITY';
105108    -- set rounding class
105109    --
105110    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
105112 
105113    --
105114    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
105115    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
105116    --
105117    -- bulk performance
105118    --
105119    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
105120 
105121    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
105122       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
105123 
105124    -- 4955764
105125    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105126       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
105127 
105128    -- 4458381 Public Sector Enh
105129    
105130    --
105131    -- set accounting attributes for the line type
105132    --
105133    l_entered_amt_idx := 9;
105134    l_accted_amt_idx  := 11;
105135    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
105136    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
105137    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
105138    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
105139    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
105140    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
105141    l_rec_acct_attrs.array_char_value(3)  := p_source_80;
105142    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
105143    l_rec_acct_attrs.array_char_value(4)  := p_source_81;
105144    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
105145    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
105146    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
105147    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
105148    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
105149    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
105150    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
105151    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
105152    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
105153    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
105154    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
105155    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
105156    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
105157    l_rec_acct_attrs.array_num_value(11)  := p_source_109;
105158    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
105159    l_rec_acct_attrs.array_char_value(12)  := p_source_68;
105160    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
105161    l_rec_acct_attrs.array_char_value(13)  := p_source_71;
105162    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
105163    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_104);
105164    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
105165    l_rec_acct_attrs.array_char_value(15)  := p_source_43;
105166    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
105167    l_rec_acct_attrs.array_num_value(16)  := p_source_74;
105168    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
105172 
105169    l_rec_acct_attrs.array_num_value(17)  := p_source_75;
105170    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
105171    l_rec_acct_attrs.array_num_value(18)  := p_source_76;
105173    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
105174    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
105175 
105176    ---------------------------------------------------------------------------------------------------------------
105177    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
105178    ---------------------------------------------------------------------------------------------------------------
105179    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
105180 
105181    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105182    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105183 
105184    IF xla_accounting_cache_pkg.GetValueChar
105185          (p_source_code         => 'LEDGER_CATEGORY_CODE'
105186          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
105187    AND l_bflow_method_code = 'PRIOR_ENTRY'
105188 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
105189    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
105190          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
105191        )
105192    THEN
105193          xla_ae_lines_pkg.BflowUpgEntry
105194            (p_business_method_code    => l_bflow_method_code
105195            ,p_business_class_code     => l_bflow_class_code
105196            ,p_balance_type            => l_balance_type_code);
105197    ELSE
105198       NULL;
105199 XLA_AE_LINES_PKG.business_flow_validation(
105200                                 p_business_method_code     => l_bflow_method_code
105201                                ,p_business_class_code      => l_bflow_class_code
105202                                ,p_inherit_description_flag => l_inherit_desc_flag);
105203    END IF;
105204 
105205    --
105206    -- call analytical criteria
105207    --
105208    -- Inherited Analytical Criteria for business flow method of Prior Entry.
105209    --
105210    -- call description
105211    --
105212    -- No description or it is inherited.
105213    --
105214    -- call ADRs
105215    -- Bug 4922099
105216    --
105217    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
105218         (NVL(l_actual_upg_option, 'N') = 'O') OR
105219         (NVL(l_enc_upg_option, 'N') = 'O')
105220       )
105221    THEN
105222    NULL;
105223    --
105224    --
105225    
105226    --
105227    --
105228    END IF;
105229    --
105230    -- Bug 4922099
105231    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
105232           (NVL(l_enc_upg_option, 'N') = 'O')
105233         ) AND
105234         (l_bflow_method_code = 'PRIOR_ENTRY')
105235       )
105236    THEN
105237       IF
105238       --
105239       1 = 1
105240       --
105241       THEN
105242       xla_accounting_err_pkg.build_message
105246                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
105243                                     (p_appli_s_name            => 'XLA'
105244                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
105245                                     ,p_token_1                 => 'LINE_NUMBER'
105247                                     ,p_token_2                 => 'LINE_TYPE_NAME'
105248                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
105249                                                                              l_component_type
105250                                                                             ,l_component_code
105251                                                                             ,l_component_type_code
105252                                                                             ,l_component_appl_id
105253                                                                             ,l_amb_context_code
105254                                                                             ,l_entity_code
105255                                                                             ,l_event_class_code
105256                                                                            )
105257                                     ,p_token_3                 => 'OWNER'
105258                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
105259                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
105260                                                                           ,p_lookup_code    => l_component_type_code
105261                                                                          )
105262                                     ,p_token_4                 => 'PRODUCT_NAME'
105263                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
105264                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
105265                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
105266                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
105267                                     ,p_ae_header_id            =>  NULL
105268                                        );
105269 
105270         IF (C_LEVEL_ERROR>= g_log_level) THEN
105271                  trace
105272                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
105273                       ,p_level    => C_LEVEL_ERROR
105274                       ,p_module   => l_log_module);
105275         END IF;
105276       END IF;
105277    END IF;
105278    --
105279    --
105280    ------------------------------------------------------------------------------------------------
105281    -- 4219869 Business Flow
105282    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
105283    -- Prior Entry.  Currently, the following code is always generated.
105284    ------------------------------------------------------------------------------------------------
105285    -- No ValidateCurrentLine for business flow method of Prior Entry
105286 
105287    ------------------------------------------------------------------------------------
105288    -- 4219869 Business Flow
105289    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
105290    ------------------------------------------------------------------------------------
105291    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
105292 
105293    ----------------------------------------------------------------------------------
105294    -- 4219869 Business Flow
105295    -- Update journal entry status -- Need to generate this within IF <condition>
105296    ----------------------------------------------------------------------------------
105297    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
105298          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
105299          ,p_balance_type_code => l_balance_type_code
105300          );
105301 
105302    -------------------------------------------------------------------------------------------
105303    -- 4262811 - Generate the Accrual Reversal lines
105304    -------------------------------------------------------------------------------------------
105305    BEGIN
105306       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
105307                               (g_array_event(p_event_id).array_value_num('header_index'));
105308       IF l_acc_rev_flag IS NULL THEN
105309          l_acc_rev_flag := 'N';
105310       END IF;
105311    EXCEPTION
105312       WHEN OTHERS THEN
105316    IF (l_acc_rev_flag = 'Y') THEN
105313          l_acc_rev_flag := 'N';
105314    END;
105315    --
105317 
105318        -- 4645092  ------------------------------------------------------------------------------
105319        -- To allow MPA report to determine if it should generate report process
105320        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
105321        ------------------------------------------------------------------------------------------
105322 
105323        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
105324        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
105325    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
105326    -- call ADRs
105327    -- Bug 4922099
105328    --
105329    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
105330         (NVL(l_actual_upg_option, 'N') = 'O') OR
105331         (NVL(l_enc_upg_option, 'N') = 'O')
105332       )
105333    THEN
105334    NULL;
105335    --
105336    --
105337    
105338    --
105339    --
105340    END IF;
105341 
105342        --
105343        -- Update the line information that should be overwritten
105344        --
105345        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
105346                                          p_header_num   => 1);
105347        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
105348 
105349        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
105350 
105351        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
105352           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
105353        END IF;
105354 
105355       --
105356       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
105357       --
105358       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
105359           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
105363           ---------------------------------------------------------------------------------------------------
105360       ELSE
105361           ---------------------------------------------------------------------------------------------------
105362           -- 4262811a Switch Sign
105364           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
105365           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
105366                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105367           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
105368                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105369           -- 5132302
105370           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
105371                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105372 
105373       END IF;
105374 
105375       -- 4955764
105376       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105377       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
105378 
105379 
105380       XLA_AE_LINES_PKG.ValidateCurrentLine;
105381       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
105382 
105383       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
105384                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
105385                ,p_balance_type_code => l_balance_type_code);
105386 
105387    END IF;
105388 
105389    -----------------------------------------------------------------------------------------
105390    -- 4262811 Multiperiod Accounting
105391    -----------------------------------------------------------------------------------------
105392      -- No MPA option is assigned.
105393 
105394 
105395 END IF;
105396 END IF;
105397 --
105398 
105399 --
105400 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105401    trace
105402       (p_msg      => 'END of AcctLineType_182'
105403       ,p_level    => C_LEVEL_PROCEDURE
105404       ,p_module   => l_log_module);
105405 END IF;
105406 --
105407 EXCEPTION
105408   WHEN xla_exceptions_pkg.application_exception THEN
105409       RAISE;
105410   WHEN OTHERS THEN
105411        xla_exceptions_pkg.raise_message
105412            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_182');
105413 END AcctLineType_182;
105414 --
105415 
105416 ---------------------------------------
105417 --
105418 -- PRIVATE FUNCTION
105419 --         AcctLineType_183
105420 --
105421 ---------------------------------------
105425  ,p_calculate_acctd_flag  IN VARCHAR2
105422 PROCEDURE AcctLineType_183 (
105423   p_application_id        IN NUMBER
105424  ,p_event_id              IN NUMBER
105426  ,p_calculate_g_l_flag    IN VARCHAR2
105427  ,p_actual_flag           IN OUT VARCHAR2
105428  ,p_balance_type_code     OUT VARCHAR2
105429  ,p_gain_or_loss_ref      OUT VARCHAR2
105430  
105431 --Automatic Offsets Value
105432  , p_source_3            IN VARCHAR2
105433  , p_source_3_meaning    IN VARCHAR2
105434 --Invoice Distribution Account
105435  , p_source_18            IN NUMBER
105436 --Internal Realized Loss Account
105437  , p_source_26            IN NUMBER
105438 --Bank Loss Account
105439  , p_source_27            IN NUMBER
105440 --Accounting Reversal Indicator
105441  , p_source_41            IN VARCHAR2
105442 --Distribution Link Type
105443  , p_source_43            IN VARCHAR2
105444 --Override Accounted Amount Indicator
105445  , p_source_68            IN VARCHAR2
105446  , p_source_68_meaning    IN VARCHAR2
105447 --Third Party Type
105448  , p_source_71            IN VARCHAR2
105449 --Invoice Distribution Tax Line Identifier
105450  , p_source_74            IN NUMBER
105451 --Invoice Distribution Summary Tax Line Identifier
105452  , p_source_76            IN NUMBER
105453 --Business Flow Accounts Payable Application Identifier
105454  , p_source_79            IN NUMBER
105455 --When to Account for Payment Option
105456  , p_source_89            IN VARCHAR2
105457 --Payment Distribution Type
105458  , p_source_90            IN VARCHAR2
105459  , p_source_90_meaning    IN VARCHAR2
105460 --Payment Distribution Amount
105461  , p_source_91            IN NUMBER
105462 --Business Flow Payment Distribution Type
105463  , p_source_92            IN VARCHAR2
105464 --Business Flow Payment Entity Code
105465  , p_source_93            IN VARCHAR2
105466 --Business Flow Payment Distribution Identifier
105467  , p_source_94            IN NUMBER
105468 --Business Flow Payment Identifier
105469  , p_source_95            IN NUMBER
105470 --Payment Distribution Identifier
105471  , p_source_96            IN NUMBER
105472 --Cleared Exchange Date
105473  , p_source_98            IN DATE
105474 --Cleared Exchange Rate
105475  , p_source_99            IN NUMBER
105476 --Cleared Exchange Rate Type
105477  , p_source_100            IN VARCHAR2
105478 --Payment Supplier Identifier
105479  , p_source_102            IN NUMBER
105480 --Payment Supplier Site Identifier
105481  , p_source_103            IN NUMBER
105482 --Payment Distribution Reversed Identifier
105483  , p_source_104            IN NUMBER
105484 --Payment Currency Code
105485  , p_source_106            IN VARCHAR2
105486 --Gain or Loss Indicator between Invoice and Clearing
105487  , p_source_146            IN VARCHAR2
105488 --Invoice/Clearing Ledger Amount Difference
105489  , p_source_147            IN NUMBER
105490 )
105491 IS
105492 
105493 l_component_type              VARCHAR2(80);
105494 l_component_code              VARCHAR2(30);
105495 l_component_type_code         VARCHAR2(1);
105496 l_component_appl_id           INTEGER;
105497 l_amb_context_code            VARCHAR2(30);
105498 l_entity_code                 VARCHAR2(30);
105499 l_event_class_code            VARCHAR2(30);
105500 l_ae_header_id                NUMBER;
105501 l_event_type_code             VARCHAR2(30);
105502 l_line_definition_code        VARCHAR2(30);
105503 l_line_definition_owner_code  VARCHAR2(1);
105504 --
105505 -- adr variables
105506 l_segment                     VARCHAR2(30);
105507 l_ccid                        NUMBER;
105508 l_adr_transaction_coa_id      NUMBER;
105509 l_adr_accounting_coa_id       NUMBER;
105510 l_adr_flexfield_segment_code  VARCHAR2(30);
105511 l_adr_flex_value_set_id       NUMBER;
105512 l_adr_value_type_code         VARCHAR2(30);
105513 l_adr_value_combination_id    NUMBER;
105514 l_adr_value_segment_code      VARCHAR2(30);
105515 
105516 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
105520 
105517 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
105518 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
105519 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
105521 -- 4262811 Variables ------------------------------------------------------------------------------------------
105522 l_entered_amt_idx             NUMBER;
105523 l_accted_amt_idx              NUMBER;
105524 l_acc_rev_flag                VARCHAR2(1);
105525 l_accrual_line_num            NUMBER;
105526 l_tmp_amt                     NUMBER;
105527 l_acc_rev_natural_side_code   VARCHAR2(1);
105528 
105529 l_num_entries                 NUMBER;
105530 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
105531 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
105535 l_recog_line_2                NUMBER;
105532 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
105533 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
105534 l_recog_line_1                NUMBER;
105536 
105537 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
105538 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
105539 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
105540 
105541 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
105542 
105543 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
105544 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
105545 
105546 ---------------------------------------------------------------------------------------------------------------
105547 
105548 
105549 --
105550 -- bulk performance
105551 --
105552 l_balance_type_code           VARCHAR2(1);
105553 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
105554 l_log_module                  VARCHAR2(240);
105555 
105556 --
105557 -- Upgrade strategy
105558 --
105559 l_actual_upg_option           VARCHAR2(1);
105560 l_enc_upg_option           VARCHAR2(1);
105561 
105562 --
105563 BEGIN
105564 --
105565 IF g_log_enabled THEN
105566       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_183';
105567 END IF;
105568 --
105569 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105570 
105571       trace
105572          (p_msg      => 'BEGIN of AcctLineType_183'
105573          ,p_level    => C_LEVEL_PROCEDURE
105574          ,p_module   => l_log_module);
105575 
105576 END IF;
105577 --
105578 l_component_type             := 'AMB_JLT';
105579 l_component_code             := 'AP_LOSS_INV_CLEAR';
105580 l_component_type_code        := 'S';
105581 l_component_appl_id          :=  200;
105582 l_amb_context_code           := 'DEFAULT';
105583 l_entity_code                := 'AP_PAYMENTS';
105584 l_event_class_code           := 'RECONCILED PAYMENTS';
105585 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
105586 l_line_definition_owner_code := 'S';
105587 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
105588 --
105589 l_balance_type_code          := 'A';
105590 l_segment                     := NULL;
105591 l_ccid                        := NULL;
105592 l_adr_transaction_coa_id      := NULL;
105593 l_adr_accounting_coa_id       := NULL;
105594 l_adr_flexfield_segment_code  := NULL;
105595 l_adr_flex_value_set_id       := NULL;
105596 l_adr_value_type_code         := NULL;
105597 l_adr_value_combination_id    := NULL;
105598 l_adr_value_segment_code      := NULL;
105599 
105600 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
105601 l_bflow_class_code           := '';    -- 4219869 Business Flow
105602 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
105603 l_budgetary_control_flag     := 'N';
105604 
105605 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
105606 l_bflow_applied_to_amt       := NULL; -- 5132302
105607 l_entered_amt_idx            := NULL;          -- 4262811
105608 l_accted_amt_idx             := NULL;          -- 4262811
105609 l_acc_rev_flag               := NULL;          -- 4262811
105610 l_accrual_line_num           := NULL;          -- 4262811
105611 l_tmp_amt                    := NULL;          -- 4262811
105612 --
105613 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
105614             (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
105615                return;
105616   END IF;
105617   
105618 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
105619     l_balance_type_code <> 'B' THEN
105620 IF (NVL(p_source_89,'
105621 ') =  'CLEAR_CLEAR' OR 
105622 NVL(p_source_89,'
105623 ') =  'ALWAYS_CLEAR') AND 
105624 NVL(p_source_146,'
105625 ') =  'LOSS' AND 
105626 NVL(p_source_90,'
105627 ') <>  'EXCHANGE RATE VARIANCE' AND 
105628 NVL(p_source_90,'
105629 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
105630 NVL(p_source_90,'
105631 ') <>  'BANK CHARGE' AND 
105632 NVL(p_source_90,'
105633 ') <>  'BANK ERROR' AND 
105634 NVL(p_source_90,'
105635 ') <>  'AWT'
105636  THEN 
105637 
105638    --
105639    XLA_AE_LINES_PKG.SetNewLine;
105640 
105641    p_balance_type_code          := l_balance_type_code;
105642    -- set the flag so later we will know whether the gain loss line needs to be created
105643    
105644    IF(l_balance_type_code = 'A' ) THEN
105645      p_actual_flag :='G';
105646    END IF;
105647 
105648    --
105649    -- bulk performance
105650    --
105651    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
105652                                       p_header_num   => 0); -- 4262811
105653    --
105654    -- set accounting line options
105655    --
105656    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
105657            p_natural_side_code          => 'C'
105658          , p_gain_or_loss_flag          => 'Y'
105659          , p_gl_transfer_mode_code      => 'S'
105660          , p_acct_entry_type_code       => 'A'
105661          , p_switch_side_flag           => 'Y'
105662          , p_merge_duplicate_code       => 'A'
105663          );
105664    --
105665    l_acc_rev_natural_side_code := 'D';  -- 4262811
105666    -- 
105667    --
105668    -- set accounting line type info
105669    --
105670    xla_ae_lines_pkg.SetAcctLineType
105671       (p_component_type             => l_component_type
105677       ,p_accounting_line_appl_id    => l_component_appl_id
105672       ,p_event_type_code            => l_event_type_code
105673       ,p_line_definition_owner_code => l_line_definition_owner_code
105674       ,p_line_definition_code       => l_line_definition_code
105675       ,p_accounting_line_code       => l_component_code
105676       ,p_accounting_line_type_code  => l_component_type_code
105678       ,p_amb_context_code           => l_amb_context_code
105679       ,p_entity_code                => l_entity_code
105680       ,p_event_class_code           => l_event_class_code);
105681    --
105682    -- set accounting class
105683    --
105684    xla_ae_lines_pkg.SetAcctClass(
105685            p_accounting_class_code  => 'LOSS'
105686          , p_ae_header_id           => l_ae_header_id
105687          );
105688 
105689    --
105690    -- set rounding class
105691    --
105692    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
105693                       'LOSS';
105694 
105695    --
105699    -- bulk performance
105696    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
105697    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
105698    --
105700    --
105701    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
105702 
105703    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
105704       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
105705 
105706    -- 4955764
105707    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105708       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
105709 
105710    -- 4458381 Public Sector Enh
105711    
105712    --
105713    -- set accounting attributes for the line type
105714    --
105715    l_entered_amt_idx := 10;
105716    l_accted_amt_idx  := 15;
105717    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
105718    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
105719    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
105720    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
105721    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
105722    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
105723    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
105724    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
105725    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
105726    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
105727    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
105728    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
105729    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
105730    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
105731    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
105732    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
105733    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
105734    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
105735    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
105736    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
105737    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
105738    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
105739    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
105740    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
105741    l_rec_acct_attrs.array_date_value(12)  := p_source_98;
105742    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
105743    l_rec_acct_attrs.array_num_value(13)  := p_source_99;
105744    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
105745    l_rec_acct_attrs.array_char_value(14)  := p_source_100;
105746    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
105747    l_rec_acct_attrs.array_num_value(15)  := p_source_147;
105748    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
105749    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
105750    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
105751    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
105752    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
105753    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
105754    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
105755    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
105756    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
105757    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
105758    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
105759    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
105760    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
105761    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
105762    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
105763    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
105764    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
105765    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
105766 
105767    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
105768    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
105769 
105770    ---------------------------------------------------------------------------------------------------------------
105771    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
105772    ---------------------------------------------------------------------------------------------------------------
105773    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
105774 
105775    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105776    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105777 
105778    IF xla_accounting_cache_pkg.GetValueChar
105779          (p_source_code         => 'LEDGER_CATEGORY_CODE'
105780          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
105781    AND l_bflow_method_code = 'PRIOR_ENTRY'
105782 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
105783    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
105784          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
105785        )
105786    THEN
105787          xla_ae_lines_pkg.BflowUpgEntry
105788            (p_business_method_code    => l_bflow_method_code
105789            ,p_business_class_code     => l_bflow_class_code
105790            ,p_balance_type            => l_balance_type_code);
105791    ELSE
105792       NULL;
105798    --
105793 -- No business flow processing for business flow method of NONE.
105794    END IF;
105795 
105796    --
105797    -- call analytical criteria
105799    
105800    --
105801    -- call description
105802    --
105803    -- No description or it is inherited.
105804    --
105805    -- call ADRs
105806    -- Bug 4922099
105807    --
105808    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
105809         (NVL(l_actual_upg_option, 'N') = 'O') OR
105810         (NVL(l_enc_upg_option, 'N') = 'O')
105811       )
105812    THEN
105813    NULL;
105814    --
105815    --
105816    
105817   l_ccid := AcctDerRule_38(
105818            p_application_id           => p_application_id
105819          , p_ae_header_id             => l_ae_header_id 
105820 , p_source_3 => p_source_3
105821 , p_source_3_meaning => p_source_3_meaning
105822 , p_source_18 => p_source_18
105823 , p_source_26 => p_source_26
105824 , p_source_27 => p_source_27
105825          , x_transaction_coa_id       => l_adr_transaction_coa_id
105826          , x_accounting_coa_id        => l_adr_accounting_coa_id
105827          , x_value_type_code          => l_adr_value_type_code
105828          , p_side                     => 'NA'
105829    );
105830 
105831    xla_ae_lines_pkg.set_ccid(
105832     p_code_combination_id          => l_ccid
105833   , p_value_type_code              => l_adr_value_type_code
105834   , p_transaction_coa_id           => l_adr_transaction_coa_id
105835   , p_accounting_coa_id            => l_adr_accounting_coa_id
105836   , p_adr_code                     => 'AP_REAL_LOSS'
105837   , p_adr_type_code                => 'S'
105838   , p_component_type               => l_component_type
105839   , p_component_code               => l_component_code
105840   , p_component_type_code          => l_component_type_code
105841   , p_component_appl_id            => l_component_appl_id
105842   , p_amb_context_code             => l_amb_context_code
105843   , p_side                         => 'NA'
105844   );
105845 
105846 
105847    l_segment := AcctDerRule_21(
105848            p_application_id           => p_application_id
105849          , p_ae_header_id             => l_ae_header_id 
105850 , p_source_3 => p_source_3
105851 , p_source_3_meaning => p_source_3_meaning
105852 , p_source_18 => p_source_18
105853          , x_transaction_coa_id       => l_adr_transaction_coa_id
105854          , x_accounting_coa_id        => l_adr_accounting_coa_id
105855          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
105856          , x_flex_value_set_id        => l_adr_flex_value_set_id
105857          , x_value_type_code          => l_adr_value_type_code
105858          , x_value_combination_id     => l_adr_value_combination_id
105862    );
105859          , x_value_segment_code       => l_adr_value_segment_code
105860          , p_side                     => 'NA'
105861          , p_override_seg_flag        => 'Y'
105863 
105864    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
105865 
105866       xla_ae_lines_pkg.set_segment(
105867           p_to_segment_code         => 'GL_BALANCING'
105868         , p_segment_value           => l_segment
105869         , p_from_segment_code       => l_adr_value_segment_code
105870         , p_from_combination_id     => l_adr_value_combination_id
105871         , p_value_type_code         => l_adr_value_type_code
105872         , p_transaction_coa_id      => l_adr_transaction_coa_id
105873         , p_accounting_coa_id       => l_adr_accounting_coa_id
105874         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
105875         , p_flex_value_set_id       => l_adr_flex_value_set_id
105876         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
105877         , p_adr_type_code           => 'S'
105878         , p_component_type          => l_component_type
105879         , p_component_code          => l_component_code
105880         , p_component_type_code     => l_component_type_code
105881         , p_component_appl_id       => l_component_appl_id
105882         , p_amb_context_code        => l_amb_context_code
105883         , p_entity_code             => 'AP_PAYMENTS'
105884         , p_event_class_code        => 'RECONCILED PAYMENTS'
105885         , p_side                    => 'NA'
105886         );
105887 
105888   END IF;
105889 
105890    l_segment := AcctDerRule_17(
105891            p_application_id           => p_application_id
105892          , p_ae_header_id             => l_ae_header_id 
105893 , p_source_3 => p_source_3
105894 , p_source_3_meaning => p_source_3_meaning
105895 , p_source_26 => p_source_26
105896 , p_source_27 => p_source_27
105897          , x_transaction_coa_id       => l_adr_transaction_coa_id
105898          , x_accounting_coa_id        => l_adr_accounting_coa_id
105899          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
105900          , x_flex_value_set_id        => l_adr_flex_value_set_id
105901          , x_value_type_code          => l_adr_value_type_code
105902          , x_value_combination_id     => l_adr_value_combination_id
105903          , x_value_segment_code       => l_adr_value_segment_code
105904          , p_side                     => 'NA'
105905          , p_override_seg_flag        => 'Y'
105906    );
105907 
105908    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
105909 
105910       xla_ae_lines_pkg.set_segment(
105911           p_to_segment_code         => 'GL_ACCOUNT'
105912         , p_segment_value           => l_segment
105913         , p_from_segment_code       => l_adr_value_segment_code
105914         , p_from_combination_id     => l_adr_value_combination_id
105915         , p_value_type_code         => l_adr_value_type_code
105916         , p_transaction_coa_id      => l_adr_transaction_coa_id
105917         , p_accounting_coa_id       => l_adr_accounting_coa_id
105918         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
105919         , p_flex_value_set_id       => l_adr_flex_value_set_id
105920         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
105921         , p_adr_type_code           => 'S'
105922         , p_component_type          => l_component_type
105923         , p_component_code          => l_component_code
105924         , p_component_type_code     => l_component_type_code
105925         , p_component_appl_id       => l_component_appl_id
105926         , p_amb_context_code        => l_amb_context_code
105927         , p_entity_code             => 'AP_PAYMENTS'
105928         , p_event_class_code        => 'RECONCILED PAYMENTS'
105929         , p_side                    => 'NA'
105930         );
105931 
105932   END IF;
105933 
105934    --
105935    --
105936    END IF;
105937    --
105938    -- Bug 4922099
105939    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
105940           (NVL(l_enc_upg_option, 'N') = 'O')
105941         ) AND
105942         (l_bflow_method_code = 'PRIOR_ENTRY')
105943       )
105944    THEN
105945       IF
105946       --
105947       1 = 2
105948       --
105949       THEN
105950       xla_accounting_err_pkg.build_message
105951                                     (p_appli_s_name            => 'XLA'
105952                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
105953                                     ,p_token_1                 => 'LINE_NUMBER'
105954                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
105955                                     ,p_token_2                 => 'LINE_TYPE_NAME'
105956                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
105957                                                                              l_component_type
105958                                                                             ,l_component_code
105959                                                                             ,l_component_type_code
105960                                                                             ,l_component_appl_id
105961                                                                             ,l_amb_context_code
105962                                                                             ,l_entity_code
105963                                                                             ,l_event_class_code
105964                                                                            )
105965                                     ,p_token_3                 => 'OWNER'
105966                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
105967                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
105971                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
105968                                                                           ,p_lookup_code    => l_component_type_code
105969                                                                          )
105970                                     ,p_token_4                 => 'PRODUCT_NAME'
105972                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
105973                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
105974                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
105975                                     ,p_ae_header_id            =>  NULL
105976                                        );
105977 
105978         IF (C_LEVEL_ERROR>= g_log_level) THEN
105979                  trace
105980                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
105981                       ,p_level    => C_LEVEL_ERROR
105982                       ,p_module   => l_log_module);
105983         END IF;
105984       END IF;
105985    END IF;
105986    --
105987    --
105988    ------------------------------------------------------------------------------------------------
105989    -- 4219869 Business Flow
105990    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
105991    -- Prior Entry.  Currently, the following code is always generated.
105992    ------------------------------------------------------------------------------------------------
105993    XLA_AE_LINES_PKG.ValidateCurrentLine;
105994 
105995    ------------------------------------------------------------------------------------
105996    -- 4219869 Business Flow
105997    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
105998    ------------------------------------------------------------------------------------
105999    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106000 
106001    ----------------------------------------------------------------------------------
106002    -- 4219869 Business Flow
106003    -- Update journal entry status -- Need to generate this within IF <condition>
106004    ----------------------------------------------------------------------------------
106005    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106006          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
106007          ,p_balance_type_code => l_balance_type_code
106008          );
106009 
106010    -------------------------------------------------------------------------------------------
106011    -- 4262811 - Generate the Accrual Reversal lines
106012    -------------------------------------------------------------------------------------------
106013    BEGIN
106014       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
106015                               (g_array_event(p_event_id).array_value_num('header_index'));
106016       IF l_acc_rev_flag IS NULL THEN
106017          l_acc_rev_flag := 'N';
106018       END IF;
106019    EXCEPTION
106020       WHEN OTHERS THEN
106021          l_acc_rev_flag := 'N';
106022    END;
106023    --
106024    IF (l_acc_rev_flag = 'Y') THEN
106025 
106026        -- 4645092  ------------------------------------------------------------------------------
106027        -- To allow MPA report to determine if it should generate report process
106028        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
106029        ------------------------------------------------------------------------------------------
106030 
106031        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
106032        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
106033    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
106034    -- call ADRs
106035    -- Bug 4922099
106036    --
106037    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106038         (NVL(l_actual_upg_option, 'N') = 'O') OR
106039         (NVL(l_enc_upg_option, 'N') = 'O')
106040       )
106041    THEN
106042    NULL;
106043    --
106044    --
106045    
106046   l_ccid := AcctDerRule_38(
106047            p_application_id           => p_application_id
106048          , p_ae_header_id             => l_ae_header_id 
106049 , p_source_3 => p_source_3
106050 , p_source_3_meaning => p_source_3_meaning
106051 , p_source_18 => p_source_18
106052 , p_source_26 => p_source_26
106053 , p_source_27 => p_source_27
106054          , x_transaction_coa_id       => l_adr_transaction_coa_id
106055          , x_accounting_coa_id        => l_adr_accounting_coa_id
106056          , x_value_type_code          => l_adr_value_type_code
106057          , p_side                     => 'NA'
106058    );
106059 
106060    xla_ae_lines_pkg.set_ccid(
106061     p_code_combination_id          => l_ccid
106062   , p_value_type_code              => l_adr_value_type_code
106063   , p_transaction_coa_id           => l_adr_transaction_coa_id
106064   , p_accounting_coa_id            => l_adr_accounting_coa_id
106065   , p_adr_code                     => 'AP_REAL_LOSS'
106066   , p_adr_type_code                => 'S'
106067   , p_component_type               => l_component_type
106068   , p_component_code               => l_component_code
106069   , p_component_type_code          => l_component_type_code
106070   , p_component_appl_id            => l_component_appl_id
106071   , p_amb_context_code             => l_amb_context_code
106072   , p_side                         => 'NA'
106073   );
106074 
106075 
106076    l_segment := AcctDerRule_21(
106077            p_application_id           => p_application_id
106078          , p_ae_header_id             => l_ae_header_id 
106079 , p_source_3 => p_source_3
106080 , p_source_3_meaning => p_source_3_meaning
106081 , p_source_18 => p_source_18
106085          , x_flex_value_set_id        => l_adr_flex_value_set_id
106082          , x_transaction_coa_id       => l_adr_transaction_coa_id
106083          , x_accounting_coa_id        => l_adr_accounting_coa_id
106084          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
106086          , x_value_type_code          => l_adr_value_type_code
106087          , x_value_combination_id     => l_adr_value_combination_id
106088          , x_value_segment_code       => l_adr_value_segment_code
106089          , p_side                     => 'NA'
106090          , p_override_seg_flag        => 'Y'
106091    );
106092 
106093    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
106094 
106095       xla_ae_lines_pkg.set_segment(
106096           p_to_segment_code         => 'GL_BALANCING'
106097         , p_segment_value           => l_segment
106098         , p_from_segment_code       => l_adr_value_segment_code
106099         , p_from_combination_id     => l_adr_value_combination_id
106100         , p_value_type_code         => l_adr_value_type_code
106101         , p_transaction_coa_id      => l_adr_transaction_coa_id
106102         , p_accounting_coa_id       => l_adr_accounting_coa_id
106103         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
106104         , p_flex_value_set_id       => l_adr_flex_value_set_id
106105         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
106106         , p_adr_type_code           => 'S'
106107         , p_component_type          => l_component_type
106108         , p_component_code          => l_component_code
106109         , p_component_type_code     => l_component_type_code
106110         , p_component_appl_id       => l_component_appl_id
106111         , p_amb_context_code        => l_amb_context_code
106112         , p_entity_code             => 'AP_PAYMENTS'
106113         , p_event_class_code        => 'RECONCILED PAYMENTS'
106114         , p_side                    => 'NA'
106115         );
106116 
106117   END IF;
106118 
106119    l_segment := AcctDerRule_17(
106120            p_application_id           => p_application_id
106121          , p_ae_header_id             => l_ae_header_id 
106122 , p_source_3 => p_source_3
106123 , p_source_3_meaning => p_source_3_meaning
106124 , p_source_26 => p_source_26
106125 , p_source_27 => p_source_27
106126          , x_transaction_coa_id       => l_adr_transaction_coa_id
106127          , x_accounting_coa_id        => l_adr_accounting_coa_id
106128          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
106129          , x_flex_value_set_id        => l_adr_flex_value_set_id
106130          , x_value_type_code          => l_adr_value_type_code
106131          , x_value_combination_id     => l_adr_value_combination_id
106132          , x_value_segment_code       => l_adr_value_segment_code
106133          , p_side                     => 'NA'
106134          , p_override_seg_flag        => 'Y'
106135    );
106136 
106137    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
106138 
106139       xla_ae_lines_pkg.set_segment(
106140           p_to_segment_code         => 'GL_ACCOUNT'
106141         , p_segment_value           => l_segment
106142         , p_from_segment_code       => l_adr_value_segment_code
106143         , p_from_combination_id     => l_adr_value_combination_id
106144         , p_value_type_code         => l_adr_value_type_code
106145         , p_transaction_coa_id      => l_adr_transaction_coa_id
106146         , p_accounting_coa_id       => l_adr_accounting_coa_id
106147         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
106148         , p_flex_value_set_id       => l_adr_flex_value_set_id
106149         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
106150         , p_adr_type_code           => 'S'
106151         , p_component_type          => l_component_type
106152         , p_component_code          => l_component_code
106153         , p_component_type_code     => l_component_type_code
106154         , p_component_appl_id       => l_component_appl_id
106155         , p_amb_context_code        => l_amb_context_code
106156         , p_entity_code             => 'AP_PAYMENTS'
106157         , p_event_class_code        => 'RECONCILED PAYMENTS'
106158         , p_side                    => 'NA'
106159         );
106160 
106161   END IF;
106162 
106163    --
106164    --
106165    END IF;
106166 
106167        --
106168        -- Update the line information that should be overwritten
106169        --
106170        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
106171                                          p_header_num   => 1);
106172        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
106173 
106174        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
106175 
106176        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
106177           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
106178        END IF;
106179 
106180       --
106181       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
106182       --
106183       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
106184           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
106185       ELSE
106186           ---------------------------------------------------------------------------------------------------
106187           -- 4262811a Switch Sign
106188           ---------------------------------------------------------------------------------------------------
106189           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
106190           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
106194           -- 5132302
106191                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106192           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
106193                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106195           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
106196                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106197 
106198       END IF;
106199 
106200       -- 4955764
106201       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
106202       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
106203 
106204 
106205       XLA_AE_LINES_PKG.ValidateCurrentLine;
106206       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106207 
106208       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106209                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
106210                ,p_balance_type_code => l_balance_type_code);
106211 
106212    END IF;
106213 
106214    -----------------------------------------------------------------------------------------
106215    -- 4262811 Multiperiod Accounting
106216    -----------------------------------------------------------------------------------------
106217      -- No MPA option is assigned.
106218 
106219 
106220 END IF;
106221 END IF;
106222 --
106223 
106224 --
106225 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106226    trace
106227       (p_msg      => 'END of AcctLineType_183'
106228       ,p_level    => C_LEVEL_PROCEDURE
106229       ,p_module   => l_log_module);
106230 END IF;
106231 --
106232 EXCEPTION
106233   WHEN xla_exceptions_pkg.application_exception THEN
106234       RAISE;
106235   WHEN OTHERS THEN
106236        xla_exceptions_pkg.raise_message
106237            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_183');
106238 END AcctLineType_183;
106239 --
106240 
106241 ---------------------------------------
106242 --
106243 -- PRIVATE FUNCTION
106244 --         AcctLineType_184
106245 --
106246 ---------------------------------------
106247 PROCEDURE AcctLineType_184 (
106248   p_application_id        IN NUMBER
106249  ,p_event_id              IN NUMBER
106250  ,p_calculate_acctd_flag  IN VARCHAR2
106251  ,p_calculate_g_l_flag    IN VARCHAR2
106252  ,p_actual_flag           IN OUT VARCHAR2
106253  ,p_balance_type_code     OUT VARCHAR2
106254  ,p_gain_or_loss_ref      OUT VARCHAR2
106255  
106256 --Automatic Offsets Value
106257  , p_source_3            IN VARCHAR2
106258  , p_source_3_meaning    IN VARCHAR2
106259 --Invoice Distribution Account
106260  , p_source_18            IN NUMBER
106261 --Internal Realized Loss Account
106262  , p_source_26            IN NUMBER
106263 --Bank Loss Account
106264  , p_source_27            IN NUMBER
106265 --Accounting Reversal Indicator
106266  , p_source_41            IN VARCHAR2
106267 --Distribution Link Type
106268  , p_source_43            IN VARCHAR2
106269 --Override Accounted Amount Indicator
106270  , p_source_68            IN VARCHAR2
106271  , p_source_68_meaning    IN VARCHAR2
106272 --Third Party Type
106273  , p_source_71            IN VARCHAR2
106274 --Invoice Distribution Tax Line Identifier
106275  , p_source_74            IN NUMBER
106276 --Invoice Distribution Summary Tax Line Identifier
106277  , p_source_76            IN NUMBER
106278 --Business Flow Accounts Payable Application Identifier
106279  , p_source_79            IN NUMBER
106280 --When to Account for Payment Option
106281  , p_source_89            IN VARCHAR2
106282 --Payment Distribution Type
106283  , p_source_90            IN VARCHAR2
106284  , p_source_90_meaning    IN VARCHAR2
106285 --Payment Distribution Amount
106286  , p_source_91            IN NUMBER
106287 --Business Flow Payment Distribution Type
106288  , p_source_92            IN VARCHAR2
106289 --Business Flow Payment Entity Code
106290  , p_source_93            IN VARCHAR2
106291 --Business Flow Payment Distribution Identifier
106292  , p_source_94            IN NUMBER
106293 --Business Flow Payment Identifier
106294  , p_source_95            IN NUMBER
106295 --Payment Distribution Identifier
106296  , p_source_96            IN NUMBER
106297 --Cleared Exchange Date
106298  , p_source_98            IN DATE
106299 --Cleared Exchange Rate
106300  , p_source_99            IN NUMBER
106301 --Cleared Exchange Rate Type
106302  , p_source_100            IN VARCHAR2
106303 --Payment Supplier Identifier
106304  , p_source_102            IN NUMBER
106305 --Payment Supplier Site Identifier
106306  , p_source_103            IN NUMBER
106307 --Payment Distribution Reversed Identifier
106308  , p_source_104            IN NUMBER
106309 --Payment Currency Code
106310  , p_source_106            IN VARCHAR2
106311 --Payment Maturity Date
106312  , p_source_107            IN DATE
106313 --Gain or Loss Indicator between Maturity and Clearing
106314  , p_source_151            IN VARCHAR2
106315 --Maturity/Clearing Ledger Amount Difference
106316  , p_source_152            IN NUMBER
106317 )
106318 IS
106319 
106320 l_component_type              VARCHAR2(80);
106321 l_component_code              VARCHAR2(30);
106322 l_component_type_code         VARCHAR2(1);
106323 l_component_appl_id           INTEGER;
106324 l_amb_context_code            VARCHAR2(30);
106325 l_entity_code                 VARCHAR2(30);
106326 l_event_class_code            VARCHAR2(30);
106327 l_ae_header_id                NUMBER;
106328 l_event_type_code             VARCHAR2(30);
106329 l_line_definition_code        VARCHAR2(30);
106330 l_line_definition_owner_code  VARCHAR2(1);
106334 l_ccid                        NUMBER;
106331 --
106332 -- adr variables
106333 l_segment                     VARCHAR2(30);
106335 l_adr_transaction_coa_id      NUMBER;
106336 l_adr_accounting_coa_id       NUMBER;
106337 l_adr_flexfield_segment_code  VARCHAR2(30);
106338 l_adr_flex_value_set_id       NUMBER;
106339 l_adr_value_type_code         VARCHAR2(30);
106340 l_adr_value_combination_id    NUMBER;
106341 l_adr_value_segment_code      VARCHAR2(30);
106342 
106343 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
106344 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
106345 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
106346 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
106347 
106348 -- 4262811 Variables ------------------------------------------------------------------------------------------
106349 l_entered_amt_idx             NUMBER;
106350 l_accted_amt_idx              NUMBER;
106351 l_acc_rev_flag                VARCHAR2(1);
106352 l_accrual_line_num            NUMBER;
106353 l_tmp_amt                     NUMBER;
106354 l_acc_rev_natural_side_code   VARCHAR2(1);
106355 
106356 l_num_entries                 NUMBER;
106357 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
106358 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
106359 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
106360 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
106361 l_recog_line_1                NUMBER;
106362 l_recog_line_2                NUMBER;
106363 
106364 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
106365 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
106366 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
106367 
106368 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
106369 
106370 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
106371 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
106372 
106373 ---------------------------------------------------------------------------------------------------------------
106374 
106375 
106376 --
106377 -- bulk performance
106378 --
106379 l_balance_type_code           VARCHAR2(1);
106380 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
106381 l_log_module                  VARCHAR2(240);
106382 
106383 --
106384 -- Upgrade strategy
106385 --
106386 l_actual_upg_option           VARCHAR2(1);
106387 l_enc_upg_option           VARCHAR2(1);
106388 
106389 --
106390 BEGIN
106391 --
106392 IF g_log_enabled THEN
106393       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_184';
106394 END IF;
106395 --
106396 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106397 
106398       trace
106399          (p_msg      => 'BEGIN of AcctLineType_184'
106400          ,p_level    => C_LEVEL_PROCEDURE
106401          ,p_module   => l_log_module);
106402 
106403 END IF;
106404 --
106405 l_component_type             := 'AMB_JLT';
106406 l_component_code             := 'AP_LOSS_MAT_CLEAR';
106407 l_component_type_code        := 'S';
106408 l_component_appl_id          :=  200;
106409 l_amb_context_code           := 'DEFAULT';
106410 l_entity_code                := 'AP_PAYMENTS';
106411 l_event_class_code           := 'RECONCILED PAYMENTS';
106412 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
106413 l_line_definition_owner_code := 'S';
106414 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
106415 --
106416 l_balance_type_code          := 'A';
106417 l_segment                     := NULL;
106418 l_ccid                        := NULL;
106419 l_adr_transaction_coa_id      := NULL;
106420 l_adr_accounting_coa_id       := NULL;
106421 l_adr_flexfield_segment_code  := NULL;
106422 l_adr_flex_value_set_id       := NULL;
106423 l_adr_value_type_code         := NULL;
106424 l_adr_value_combination_id    := NULL;
106425 l_adr_value_segment_code      := NULL;
106426 
106427 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
106428 l_bflow_class_code           := '';    -- 4219869 Business Flow
106429 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
106430 l_budgetary_control_flag     := 'N';
106431 
106432 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
106433 l_bflow_applied_to_amt       := NULL; -- 5132302
106434 l_entered_amt_idx            := NULL;          -- 4262811
106435 l_accted_amt_idx             := NULL;          -- 4262811
106436 l_acc_rev_flag               := NULL;          -- 4262811
106437 l_accrual_line_num           := NULL;          -- 4262811
106438 l_tmp_amt                    := NULL;          -- 4262811
106439 --
106440 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
106441             (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
106442                return;
106443   END IF;
106444   
106445 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
106446     l_balance_type_code <> 'B' THEN
106447 IF NVL(p_source_89,'
106448 ') =  'ALWAYS_ALWAYS' AND 
106449 p_source_107 IS NOT NULL AND 
106450 NVL(p_source_151,'
106451 ') =  'LOSS' AND 
106452 NVL(p_source_90,'
106453 ') <>  'EXCHANGE RATE VARIANCE' AND 
106454 NVL(p_source_90,'
106455 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
106456 NVL(p_source_90,'
106457 ') <>  'BANK CHARGE' AND 
106458 NVL(p_source_90,'
106459 ') <>  'BANK ERROR'
106460  THEN 
106461 
106462    --
106463    XLA_AE_LINES_PKG.SetNewLine;
106464 
106468    IF(l_balance_type_code = 'A' ) THEN
106465    p_balance_type_code          := l_balance_type_code;
106466    -- set the flag so later we will know whether the gain loss line needs to be created
106467    
106469      p_actual_flag :='G';
106470    END IF;
106471 
106472    --
106473    -- bulk performance
106474    --
106475    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
106476                                       p_header_num   => 0); -- 4262811
106477    --
106478    -- set accounting line options
106479    --
106480    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
106481            p_natural_side_code          => 'C'
106482          , p_gain_or_loss_flag          => 'Y'
106483          , p_gl_transfer_mode_code      => 'S'
106484          , p_acct_entry_type_code       => 'A'
106485          , p_switch_side_flag           => 'Y'
106486          , p_merge_duplicate_code       => 'A'
106487          );
106488    --
106489    l_acc_rev_natural_side_code := 'D';  -- 4262811
106490    -- 
106491    --
106492    -- set accounting line type info
106493    --
106494    xla_ae_lines_pkg.SetAcctLineType
106495       (p_component_type             => l_component_type
106496       ,p_event_type_code            => l_event_type_code
106497       ,p_line_definition_owner_code => l_line_definition_owner_code
106498       ,p_line_definition_code       => l_line_definition_code
106499       ,p_accounting_line_code       => l_component_code
106500       ,p_accounting_line_type_code  => l_component_type_code
106501       ,p_accounting_line_appl_id    => l_component_appl_id
106502       ,p_amb_context_code           => l_amb_context_code
106503       ,p_entity_code                => l_entity_code
106504       ,p_event_class_code           => l_event_class_code);
106505    --
106506    -- set accounting class
106507    --
106508    xla_ae_lines_pkg.SetAcctClass(
106509            p_accounting_class_code  => 'LOSS'
106510          , p_ae_header_id           => l_ae_header_id
106511          );
106512 
106513    --
106514    -- set rounding class
106515    --
106516    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
106517                       'LOSS';
106518 
106519    --
106520    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
106521    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
106522    --
106523    -- bulk performance
106524    --
106525    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
106526 
106527    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
106528       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
106529 
106530    -- 4955764
106531    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
106532       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
106533 
106534    -- 4458381 Public Sector Enh
106535    
106536    --
106537    -- set accounting attributes for the line type
106538    --
106539    l_entered_amt_idx := 10;
106540    l_accted_amt_idx  := 15;
106541    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
106542    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
106543    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
106544    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
106545    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
106546    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
106547    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
106548    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
106549    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
106550    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
106551    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
106552    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
106553    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
106554    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
106555    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
106556    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
106557    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
106558    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
106559    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
106560    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
106561    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
106562    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
106563    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
106564    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
106565    l_rec_acct_attrs.array_date_value(12)  := p_source_98;
106566    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
106567    l_rec_acct_attrs.array_num_value(13)  := p_source_99;
106568    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
106569    l_rec_acct_attrs.array_char_value(14)  := p_source_100;
106570    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
106571    l_rec_acct_attrs.array_num_value(15)  := p_source_152;
106572    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
106573    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
106574    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
106575    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
106576    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
106580    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
106577    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
106578    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
106579    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
106581    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
106582    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
106583    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
106584    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
106585    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
106586    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
106587    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
106588    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
106589    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
106590 
106591    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
106592    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
106593 
106594    ---------------------------------------------------------------------------------------------------------------
106595    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
106596    ---------------------------------------------------------------------------------------------------------------
106597    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
106598 
106599    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
106600    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
106601 
106602    IF xla_accounting_cache_pkg.GetValueChar
106603          (p_source_code         => 'LEDGER_CATEGORY_CODE'
106604          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
106605    AND l_bflow_method_code = 'PRIOR_ENTRY'
106606 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
106607    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
106608          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
106609        )
106610    THEN
106611          xla_ae_lines_pkg.BflowUpgEntry
106612            (p_business_method_code    => l_bflow_method_code
106613            ,p_business_class_code     => l_bflow_class_code
106614            ,p_balance_type            => l_balance_type_code);
106615    ELSE
106616       NULL;
106617 -- No business flow processing for business flow method of NONE.
106618    END IF;
106619 
106620    --
106621    -- call analytical criteria
106622    --
106623    
106624    --
106625    -- call description
106626    --
106627    -- No description or it is inherited.
106628    --
106629    -- call ADRs
106630    -- Bug 4922099
106631    --
106632    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106633         (NVL(l_actual_upg_option, 'N') = 'O') OR
106634         (NVL(l_enc_upg_option, 'N') = 'O')
106635       )
106636    THEN
106637    NULL;
106638    --
106639    --
106640    
106641   l_ccid := AcctDerRule_38(
106642            p_application_id           => p_application_id
106643          , p_ae_header_id             => l_ae_header_id 
106644 , p_source_3 => p_source_3
106645 , p_source_3_meaning => p_source_3_meaning
106646 , p_source_18 => p_source_18
106647 , p_source_26 => p_source_26
106648 , p_source_27 => p_source_27
106649          , x_transaction_coa_id       => l_adr_transaction_coa_id
106650          , x_accounting_coa_id        => l_adr_accounting_coa_id
106651          , x_value_type_code          => l_adr_value_type_code
106652          , p_side                     => 'NA'
106653    );
106654 
106655    xla_ae_lines_pkg.set_ccid(
106656     p_code_combination_id          => l_ccid
106657   , p_value_type_code              => l_adr_value_type_code
106658   , p_transaction_coa_id           => l_adr_transaction_coa_id
106659   , p_accounting_coa_id            => l_adr_accounting_coa_id
106660   , p_adr_code                     => 'AP_REAL_LOSS'
106661   , p_adr_type_code                => 'S'
106662   , p_component_type               => l_component_type
106663   , p_component_code               => l_component_code
106664   , p_component_type_code          => l_component_type_code
106665   , p_component_appl_id            => l_component_appl_id
106666   , p_amb_context_code             => l_amb_context_code
106667   , p_side                         => 'NA'
106668   );
106669 
106670 
106671    l_segment := AcctDerRule_21(
106672            p_application_id           => p_application_id
106673          , p_ae_header_id             => l_ae_header_id 
106674 , p_source_3 => p_source_3
106675 , p_source_3_meaning => p_source_3_meaning
106676 , p_source_18 => p_source_18
106677          , x_transaction_coa_id       => l_adr_transaction_coa_id
106678          , x_accounting_coa_id        => l_adr_accounting_coa_id
106679          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
106680          , x_flex_value_set_id        => l_adr_flex_value_set_id
106681          , x_value_type_code          => l_adr_value_type_code
106682          , x_value_combination_id     => l_adr_value_combination_id
106683          , x_value_segment_code       => l_adr_value_segment_code
106684          , p_side                     => 'NA'
106685          , p_override_seg_flag        => 'Y'
106686    );
106687 
106688    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
106689 
106690       xla_ae_lines_pkg.set_segment(
106691           p_to_segment_code         => 'GL_BALANCING'
106692         , p_segment_value           => l_segment
106693         , p_from_segment_code       => l_adr_value_segment_code
106694         , p_from_combination_id     => l_adr_value_combination_id
106695         , p_value_type_code         => l_adr_value_type_code
106699         , p_flex_value_set_id       => l_adr_flex_value_set_id
106696         , p_transaction_coa_id      => l_adr_transaction_coa_id
106697         , p_accounting_coa_id       => l_adr_accounting_coa_id
106698         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
106700         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
106701         , p_adr_type_code           => 'S'
106702         , p_component_type          => l_component_type
106703         , p_component_code          => l_component_code
106704         , p_component_type_code     => l_component_type_code
106705         , p_component_appl_id       => l_component_appl_id
106706         , p_amb_context_code        => l_amb_context_code
106707         , p_entity_code             => 'AP_PAYMENTS'
106708         , p_event_class_code        => 'RECONCILED PAYMENTS'
106709         , p_side                    => 'NA'
106710         );
106711 
106712   END IF;
106713 
106714    l_segment := AcctDerRule_17(
106715            p_application_id           => p_application_id
106716          , p_ae_header_id             => l_ae_header_id 
106717 , p_source_3 => p_source_3
106718 , p_source_3_meaning => p_source_3_meaning
106719 , p_source_26 => p_source_26
106720 , p_source_27 => p_source_27
106721          , x_transaction_coa_id       => l_adr_transaction_coa_id
106722          , x_accounting_coa_id        => l_adr_accounting_coa_id
106723          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
106724          , x_flex_value_set_id        => l_adr_flex_value_set_id
106725          , x_value_type_code          => l_adr_value_type_code
106726          , x_value_combination_id     => l_adr_value_combination_id
106727          , x_value_segment_code       => l_adr_value_segment_code
106728          , p_side                     => 'NA'
106729          , p_override_seg_flag        => 'Y'
106730    );
106731 
106732    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
106733 
106734       xla_ae_lines_pkg.set_segment(
106735           p_to_segment_code         => 'GL_ACCOUNT'
106736         , p_segment_value           => l_segment
106737         , p_from_segment_code       => l_adr_value_segment_code
106738         , p_from_combination_id     => l_adr_value_combination_id
106739         , p_value_type_code         => l_adr_value_type_code
106740         , p_transaction_coa_id      => l_adr_transaction_coa_id
106741         , p_accounting_coa_id       => l_adr_accounting_coa_id
106742         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
106743         , p_flex_value_set_id       => l_adr_flex_value_set_id
106744         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
106745         , p_adr_type_code           => 'S'
106746         , p_component_type          => l_component_type
106747         , p_component_code          => l_component_code
106748         , p_component_type_code     => l_component_type_code
106749         , p_component_appl_id       => l_component_appl_id
106750         , p_amb_context_code        => l_amb_context_code
106751         , p_entity_code             => 'AP_PAYMENTS'
106752         , p_event_class_code        => 'RECONCILED PAYMENTS'
106753         , p_side                    => 'NA'
106754         );
106755 
106756   END IF;
106757 
106758    --
106759    --
106760    END IF;
106761    --
106762    -- Bug 4922099
106763    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
106764           (NVL(l_enc_upg_option, 'N') = 'O')
106765         ) AND
106766         (l_bflow_method_code = 'PRIOR_ENTRY')
106767       )
106768    THEN
106769       IF
106770       --
106771       1 = 2
106772       --
106773       THEN
106774       xla_accounting_err_pkg.build_message
106775                                     (p_appli_s_name            => 'XLA'
106776                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106777                                     ,p_token_1                 => 'LINE_NUMBER'
106778                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
106779                                     ,p_token_2                 => 'LINE_TYPE_NAME'
106780                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
106781                                                                              l_component_type
106782                                                                             ,l_component_code
106783                                                                             ,l_component_type_code
106784                                                                             ,l_component_appl_id
106785                                                                             ,l_amb_context_code
106786                                                                             ,l_entity_code
106787                                                                             ,l_event_class_code
106788                                                                            )
106789                                     ,p_token_3                 => 'OWNER'
106790                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
106791                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
106792                                                                           ,p_lookup_code    => l_component_type_code
106793                                                                          )
106794                                     ,p_token_4                 => 'PRODUCT_NAME'
106795                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
106796                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
106797                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
106798                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
106802         IF (C_LEVEL_ERROR>= g_log_level) THEN
106799                                     ,p_ae_header_id            =>  NULL
106800                                        );
106801 
106803                  trace
106804                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106805                       ,p_level    => C_LEVEL_ERROR
106806                       ,p_module   => l_log_module);
106807         END IF;
106808       END IF;
106809    END IF;
106810    --
106811    --
106812    ------------------------------------------------------------------------------------------------
106813    -- 4219869 Business Flow
106814    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
106815    -- Prior Entry.  Currently, the following code is always generated.
106816    ------------------------------------------------------------------------------------------------
106817    XLA_AE_LINES_PKG.ValidateCurrentLine;
106818 
106819    ------------------------------------------------------------------------------------
106820    -- 4219869 Business Flow
106821    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
106822    ------------------------------------------------------------------------------------
106823    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106824 
106825    ----------------------------------------------------------------------------------
106826    -- 4219869 Business Flow
106827    -- Update journal entry status -- Need to generate this within IF <condition>
106828    ----------------------------------------------------------------------------------
106829    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106830          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
106831          ,p_balance_type_code => l_balance_type_code
106832          );
106833 
106834    -------------------------------------------------------------------------------------------
106835    -- 4262811 - Generate the Accrual Reversal lines
106836    -------------------------------------------------------------------------------------------
106837    BEGIN
106838       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
106839                               (g_array_event(p_event_id).array_value_num('header_index'));
106840       IF l_acc_rev_flag IS NULL THEN
106841          l_acc_rev_flag := 'N';
106842       END IF;
106843    EXCEPTION
106844       WHEN OTHERS THEN
106845          l_acc_rev_flag := 'N';
106846    END;
106847    --
106848    IF (l_acc_rev_flag = 'Y') THEN
106849 
106850        -- 4645092  ------------------------------------------------------------------------------
106851        -- To allow MPA report to determine if it should generate report process
106852        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
106853        ------------------------------------------------------------------------------------------
106854 
106855        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
106856        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
106857    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
106858    -- call ADRs
106859    -- Bug 4922099
106860    --
106861    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106862         (NVL(l_actual_upg_option, 'N') = 'O') OR
106863         (NVL(l_enc_upg_option, 'N') = 'O')
106864       )
106865    THEN
106866    NULL;
106867    --
106868    --
106869    
106870   l_ccid := AcctDerRule_38(
106871            p_application_id           => p_application_id
106872          , p_ae_header_id             => l_ae_header_id 
106873 , p_source_3 => p_source_3
106874 , p_source_3_meaning => p_source_3_meaning
106875 , p_source_18 => p_source_18
106876 , p_source_26 => p_source_26
106877 , p_source_27 => p_source_27
106878          , x_transaction_coa_id       => l_adr_transaction_coa_id
106879          , x_accounting_coa_id        => l_adr_accounting_coa_id
106880          , x_value_type_code          => l_adr_value_type_code
106881          , p_side                     => 'NA'
106882    );
106883 
106884    xla_ae_lines_pkg.set_ccid(
106885     p_code_combination_id          => l_ccid
106886   , p_value_type_code              => l_adr_value_type_code
106887   , p_transaction_coa_id           => l_adr_transaction_coa_id
106888   , p_accounting_coa_id            => l_adr_accounting_coa_id
106889   , p_adr_code                     => 'AP_REAL_LOSS'
106890   , p_adr_type_code                => 'S'
106891   , p_component_type               => l_component_type
106892   , p_component_code               => l_component_code
106893   , p_component_type_code          => l_component_type_code
106894   , p_component_appl_id            => l_component_appl_id
106895   , p_amb_context_code             => l_amb_context_code
106896   , p_side                         => 'NA'
106897   );
106898 
106899 
106900    l_segment := AcctDerRule_21(
106901            p_application_id           => p_application_id
106902          , p_ae_header_id             => l_ae_header_id 
106903 , p_source_3 => p_source_3
106904 , p_source_3_meaning => p_source_3_meaning
106905 , p_source_18 => p_source_18
106906          , x_transaction_coa_id       => l_adr_transaction_coa_id
106907          , x_accounting_coa_id        => l_adr_accounting_coa_id
106908          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
106909          , x_flex_value_set_id        => l_adr_flex_value_set_id
106910          , x_value_type_code          => l_adr_value_type_code
106911          , x_value_combination_id     => l_adr_value_combination_id
106912          , x_value_segment_code       => l_adr_value_segment_code
106913          , p_side                     => 'NA'
106914          , p_override_seg_flag        => 'Y'
106915    );
106916 
106917    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
106918 
106919       xla_ae_lines_pkg.set_segment(
106923         , p_from_combination_id     => l_adr_value_combination_id
106920           p_to_segment_code         => 'GL_BALANCING'
106921         , p_segment_value           => l_segment
106922         , p_from_segment_code       => l_adr_value_segment_code
106924         , p_value_type_code         => l_adr_value_type_code
106925         , p_transaction_coa_id      => l_adr_transaction_coa_id
106926         , p_accounting_coa_id       => l_adr_accounting_coa_id
106927         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
106928         , p_flex_value_set_id       => l_adr_flex_value_set_id
106929         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
106930         , p_adr_type_code           => 'S'
106931         , p_component_type          => l_component_type
106932         , p_component_code          => l_component_code
106933         , p_component_type_code     => l_component_type_code
106934         , p_component_appl_id       => l_component_appl_id
106935         , p_amb_context_code        => l_amb_context_code
106936         , p_entity_code             => 'AP_PAYMENTS'
106937         , p_event_class_code        => 'RECONCILED PAYMENTS'
106938         , p_side                    => 'NA'
106939         );
106940 
106941   END IF;
106942 
106943    l_segment := AcctDerRule_17(
106944            p_application_id           => p_application_id
106945          , p_ae_header_id             => l_ae_header_id 
106946 , p_source_3 => p_source_3
106947 , p_source_3_meaning => p_source_3_meaning
106948 , p_source_26 => p_source_26
106949 , p_source_27 => p_source_27
106950          , x_transaction_coa_id       => l_adr_transaction_coa_id
106951          , x_accounting_coa_id        => l_adr_accounting_coa_id
106952          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
106953          , x_flex_value_set_id        => l_adr_flex_value_set_id
106954          , x_value_type_code          => l_adr_value_type_code
106955          , x_value_combination_id     => l_adr_value_combination_id
106956          , x_value_segment_code       => l_adr_value_segment_code
106957          , p_side                     => 'NA'
106958          , p_override_seg_flag        => 'Y'
106959    );
106960 
106961    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
106962 
106963       xla_ae_lines_pkg.set_segment(
106964           p_to_segment_code         => 'GL_ACCOUNT'
106965         , p_segment_value           => l_segment
106966         , p_from_segment_code       => l_adr_value_segment_code
106967         , p_from_combination_id     => l_adr_value_combination_id
106968         , p_value_type_code         => l_adr_value_type_code
106969         , p_transaction_coa_id      => l_adr_transaction_coa_id
106970         , p_accounting_coa_id       => l_adr_accounting_coa_id
106971         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
106972         , p_flex_value_set_id       => l_adr_flex_value_set_id
106973         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
106974         , p_adr_type_code           => 'S'
106975         , p_component_type          => l_component_type
106976         , p_component_code          => l_component_code
106977         , p_component_type_code     => l_component_type_code
106978         , p_component_appl_id       => l_component_appl_id
106979         , p_amb_context_code        => l_amb_context_code
106980         , p_entity_code             => 'AP_PAYMENTS'
106981         , p_event_class_code        => 'RECONCILED PAYMENTS'
106982         , p_side                    => 'NA'
106983         );
106984 
106985   END IF;
106986 
106987    --
106988    --
106989    END IF;
106990 
106991        --
106992        -- Update the line information that should be overwritten
106993        --
106994        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
106995                                          p_header_num   => 1);
106996        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
106997 
106998        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
106999 
107000        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
107001           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
107002        END IF;
107003 
107004       --
107005       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
107006       --
107007       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
107008           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
107009       ELSE
107010           ---------------------------------------------------------------------------------------------------
107011           -- 4262811a Switch Sign
107012           ---------------------------------------------------------------------------------------------------
107013           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
107014           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107015                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107016           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107017                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107018           -- 5132302
107019           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
107020                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107021 
107022       END IF;
107023 
107027 
107024       -- 4955764
107025       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107026       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
107028 
107029       XLA_AE_LINES_PKG.ValidateCurrentLine;
107030       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107031 
107032       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107033                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
107034                ,p_balance_type_code => l_balance_type_code);
107035 
107036    END IF;
107037 
107038    -----------------------------------------------------------------------------------------
107039    -- 4262811 Multiperiod Accounting
107040    -----------------------------------------------------------------------------------------
107041      -- No MPA option is assigned.
107042 
107043 
107044 END IF;
107045 END IF;
107046 --
107047 
107048 --
107049 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107050    trace
107051       (p_msg      => 'END of AcctLineType_184'
107052       ,p_level    => C_LEVEL_PROCEDURE
107053       ,p_module   => l_log_module);
107054 END IF;
107055 --
107056 EXCEPTION
107057   WHEN xla_exceptions_pkg.application_exception THEN
107058       RAISE;
107059   WHEN OTHERS THEN
107060        xla_exceptions_pkg.raise_message
107061            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_184');
107062 END AcctLineType_184;
107063 --
107064 
107065 ---------------------------------------
107066 --
107067 -- PRIVATE FUNCTION
107068 --         AcctLineType_185
107069 --
107070 ---------------------------------------
107071 PROCEDURE AcctLineType_185 (
107072   p_application_id        IN NUMBER
107073  ,p_event_id              IN NUMBER
107074  ,p_calculate_acctd_flag  IN VARCHAR2
107075  ,p_calculate_g_l_flag    IN VARCHAR2
107076  ,p_actual_flag           IN OUT VARCHAR2
107077  ,p_balance_type_code     OUT VARCHAR2
107078  ,p_gain_or_loss_ref      OUT VARCHAR2
107079  
107080 --Automatic Offsets Value
107081  , p_source_3            IN VARCHAR2
107082  , p_source_3_meaning    IN VARCHAR2
107083 --Invoice Distribution Account
107084  , p_source_18            IN NUMBER
107085 --Internal Realized Loss Account
107086  , p_source_26            IN NUMBER
107087 --Bank Loss Account
107088  , p_source_27            IN NUMBER
107089 --Accounting Reversal Indicator
107090  , p_source_41            IN VARCHAR2
107091 --Distribution Link Type
107092  , p_source_43            IN VARCHAR2
107093 --Override Accounted Amount Indicator
107094  , p_source_68            IN VARCHAR2
107095  , p_source_68_meaning    IN VARCHAR2
107096 --Third Party Type
107097  , p_source_71            IN VARCHAR2
107098 --Invoice Distribution Tax Line Identifier
107099  , p_source_74            IN NUMBER
107100 --Invoice Distribution Tax Distribution Identifier from Tax
107101  , p_source_75            IN NUMBER
107102 --Invoice Distribution Summary Tax Line Identifier
107103  , p_source_76            IN NUMBER
107104 --Business Flow Accounts Payable Application Identifier
107105  , p_source_79            IN NUMBER
107106 --Business Flow Invoice Distribution Type
107107  , p_source_80            IN VARCHAR2
107108 --Business Flow Invoice Entity Code
107109  , p_source_81            IN VARCHAR2
107110 --Business Flow Invoice Distribution Identifier
107111  , p_source_82            IN NUMBER
107112 --Business Flow Invoice Identifier
107113  , p_source_83            IN NUMBER
107114 --When to Account for Payment Option
107115  , p_source_89            IN VARCHAR2
107116 --Payment Distribution Type
107117  , p_source_90            IN VARCHAR2
107118  , p_source_90_meaning    IN VARCHAR2
107119 --Payment Distribution Amount
107120  , p_source_91            IN NUMBER
107121 --Payment Distribution Identifier
107122  , p_source_96            IN NUMBER
107123 --Payment Supplier Identifier
107124  , p_source_102            IN NUMBER
107125 --Payment Supplier Site Identifier
107126  , p_source_103            IN NUMBER
107127 --Payment Distribution Reversed Identifier
107128  , p_source_104            IN NUMBER
107129 --Payment Currency Code
107130  , p_source_106            IN VARCHAR2
107131 --Payment Exchange Date
107132  , p_source_110            IN DATE
107133 --Payment Exchange Rate
107134  , p_source_111            IN NUMBER
107135 --Payment Exchange Rate Type
107136  , p_source_112            IN VARCHAR2
107137 --Payment Type
107138  , p_source_115            IN VARCHAR2
107139  , p_source_115_meaning    IN VARCHAR2
107140 --Invoice Distribution Amount of the Payment Distribution
107141  , p_source_117            IN NUMBER
107142 --Invoice/Payment Ledger Amount Difference
107143  , p_source_148            IN NUMBER
107144 --Gain or Loss Indicator between Invoice and Payment
107145  , p_source_153            IN VARCHAR2
107146 )
107147 IS
107148 
107149 l_component_type              VARCHAR2(80);
107150 l_component_code              VARCHAR2(30);
107151 l_component_type_code         VARCHAR2(1);
107152 l_component_appl_id           INTEGER;
107153 l_amb_context_code            VARCHAR2(30);
107154 l_entity_code                 VARCHAR2(30);
107155 l_event_class_code            VARCHAR2(30);
107156 l_ae_header_id                NUMBER;
107157 l_event_type_code             VARCHAR2(30);
107158 l_line_definition_code        VARCHAR2(30);
107159 l_line_definition_owner_code  VARCHAR2(1);
107160 --
107161 -- adr variables
107162 l_segment                     VARCHAR2(30);
107163 l_ccid                        NUMBER;
107164 l_adr_transaction_coa_id      NUMBER;
107165 l_adr_accounting_coa_id       NUMBER;
107166 l_adr_flexfield_segment_code  VARCHAR2(30);
107170 l_adr_value_segment_code      VARCHAR2(30);
107167 l_adr_flex_value_set_id       NUMBER;
107168 l_adr_value_type_code         VARCHAR2(30);
107169 l_adr_value_combination_id    NUMBER;
107171 
107172 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
107173 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
107174 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
107175 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
107176 
107177 -- 4262811 Variables ------------------------------------------------------------------------------------------
107178 l_entered_amt_idx             NUMBER;
107179 l_accted_amt_idx              NUMBER;
107180 l_acc_rev_flag                VARCHAR2(1);
107181 l_accrual_line_num            NUMBER;
107182 l_tmp_amt                     NUMBER;
107183 l_acc_rev_natural_side_code   VARCHAR2(1);
107184 
107185 l_num_entries                 NUMBER;
107186 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
107187 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
107188 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
107189 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
107190 l_recog_line_1                NUMBER;
107194 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
107191 l_recog_line_2                NUMBER;
107192 
107193 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
107195 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
107196 
107197 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
107198 
107199 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
107200 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
107201 
107202 ---------------------------------------------------------------------------------------------------------------
107203 
107204 
107205 --
107206 -- bulk performance
107207 --
107208 l_balance_type_code           VARCHAR2(1);
107209 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
107210 l_log_module                  VARCHAR2(240);
107211 
107212 --
107213 -- Upgrade strategy
107214 --
107215 l_actual_upg_option           VARCHAR2(1);
107216 l_enc_upg_option           VARCHAR2(1);
107217 
107218 --
107219 BEGIN
107220 --
107221 IF g_log_enabled THEN
107222       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_185';
107223 END IF;
107224 --
107225 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107226 
107227       trace
107228          (p_msg      => 'BEGIN of AcctLineType_185'
107229          ,p_level    => C_LEVEL_PROCEDURE
107230          ,p_module   => l_log_module);
107231 
107232 END IF;
107233 --
107234 l_component_type             := 'AMB_JLT';
107235 l_component_code             := 'AP_LOSS_PMT';
107236 l_component_type_code        := 'S';
107237 l_component_appl_id          :=  200;
107238 l_amb_context_code           := 'DEFAULT';
107239 l_entity_code                := 'AP_PAYMENTS';
107240 l_event_class_code           := 'PAYMENTS';
107241 l_event_type_code            := 'PAYMENTS_ALL';
107242 l_line_definition_owner_code := 'S';
107243 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
107244 --
107245 l_balance_type_code          := 'A';
107246 l_segment                     := NULL;
107247 l_ccid                        := NULL;
107248 l_adr_transaction_coa_id      := NULL;
107249 l_adr_accounting_coa_id       := NULL;
107250 l_adr_flexfield_segment_code  := NULL;
107251 l_adr_flex_value_set_id       := NULL;
107252 l_adr_value_type_code         := NULL;
107253 l_adr_value_combination_id    := NULL;
107254 l_adr_value_segment_code      := NULL;
107255 
107256 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
107257 l_bflow_class_code           := '';    -- 4219869 Business Flow
107258 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
107259 l_budgetary_control_flag     := 'N';
107260 
107261 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
107262 l_bflow_applied_to_amt       := NULL; -- 5132302
107263 l_entered_amt_idx            := NULL;          -- 4262811
107264 l_accted_amt_idx             := NULL;          -- 4262811
107265 l_acc_rev_flag               := NULL;          -- 4262811
107266 l_accrual_line_num           := NULL;          -- 4262811
107267 l_tmp_amt                    := NULL;          -- 4262811
107268 --
107269 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
107273   
107270             (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
107271                return;
107272   END IF;
107274 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
107275     l_balance_type_code <> 'B' THEN
107276 IF (NVL(p_source_89,'
107277 ') <>  'CLEAR_CLEAR' AND 
107278 NVL(p_source_89,'
107279 ') <>  'ALWAYS_CLEAR') AND 
107280 NVL(p_source_153,'
107281 ') =  'LOSS' AND 
107282 NVL(p_source_90,'
107283 ') <>  'EXCHANGE RATE VARIANCE' AND 
107284 NVL(p_source_90,'
107285 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
107286 NVL(p_source_90,'
107287 ') <>  'BANK CHARGE' AND 
107288 NVL(p_source_90,'
107289 ') <>  'BANK ERROR' AND 
107290 NVL(p_source_90,'
107291 ') <>  'AWT' AND 
107292 NVL(p_source_115,'
107293 ') <>  'R'
107294  THEN 
107295 
107296    --
107297    XLA_AE_LINES_PKG.SetNewLine;
107298 
107299    p_balance_type_code          := l_balance_type_code;
107300    -- set the flag so later we will know whether the gain loss line needs to be created
107301    
107302    IF(l_balance_type_code = 'A' ) THEN
107303      p_actual_flag :='G';
107304    END IF;
107305 
107306    --
107307    -- bulk performance
107308    --
107309    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
107310                                       p_header_num   => 0); -- 4262811
107311    --
107312    -- set accounting line options
107313    --
107314    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
107315            p_natural_side_code          => 'C'
107316          , p_gain_or_loss_flag          => 'Y'
107317          , p_gl_transfer_mode_code      => 'S'
107318          , p_acct_entry_type_code       => 'A'
107319          , p_switch_side_flag           => 'Y'
107320          , p_merge_duplicate_code       => 'A'
107321          );
107322    --
107323    l_acc_rev_natural_side_code := 'D';  -- 4262811
107324    -- 
107325    --
107326    -- set accounting line type info
107327    --
107328    xla_ae_lines_pkg.SetAcctLineType
107329       (p_component_type             => l_component_type
107330       ,p_event_type_code            => l_event_type_code
107331       ,p_line_definition_owner_code => l_line_definition_owner_code
107332       ,p_line_definition_code       => l_line_definition_code
107333       ,p_accounting_line_code       => l_component_code
107334       ,p_accounting_line_type_code  => l_component_type_code
107335       ,p_accounting_line_appl_id    => l_component_appl_id
107336       ,p_amb_context_code           => l_amb_context_code
107337       ,p_entity_code                => l_entity_code
107338       ,p_event_class_code           => l_event_class_code);
107339    --
107340    -- set accounting class
107341    --
107342    xla_ae_lines_pkg.SetAcctClass(
107343            p_accounting_class_code  => 'LOSS'
107344          , p_ae_header_id           => l_ae_header_id
107345          );
107346 
107347    --
107348    -- set rounding class
107349    --
107350    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
107351                       'LOSS';
107352 
107353    --
107354    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
107358    --
107355    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
107356    --
107357    -- bulk performance
107359    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
107360 
107361    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
107362       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
107363 
107364    -- 4955764
107365    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107366       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
107367 
107368    -- 4458381 Public Sector Enh
107369    
107370    --
107371    -- set accounting attributes for the line type
107372    --
107373    l_entered_amt_idx := 10;
107374    l_accted_amt_idx  := 15;
107375    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
107376    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
107377    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
107378    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
107379    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
107380    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
107381    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
107382    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
107383    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
107384    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
107385    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
107386    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
107387    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
107388    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
107389    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
107390    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
107391    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
107392    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
107393    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
107394    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
107395    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
107396    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
107397    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
107398    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
107399    l_rec_acct_attrs.array_date_value(12)  := p_source_110;
107400    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
107401    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
107402    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
107403    l_rec_acct_attrs.array_char_value(14)  := p_source_112;
107404    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
107405    l_rec_acct_attrs.array_num_value(15)  := p_source_148;
107406    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
107407    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
107408    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
107409    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
107410    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
107411    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
107412    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
107413    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
107414    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
107415    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
107416    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
107417    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
107418    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
107419    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
107420    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
107421    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
107422    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
107423    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
107424 
107425    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
107426    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
107427 
107428    ---------------------------------------------------------------------------------------------------------------
107429    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
107430    ---------------------------------------------------------------------------------------------------------------
107431    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
107432 
107433    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107437          (p_source_code         => 'LEDGER_CATEGORY_CODE'
107434    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107435 
107436    IF xla_accounting_cache_pkg.GetValueChar
107438          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
107439    AND l_bflow_method_code = 'PRIOR_ENTRY'
107440 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
107441    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
107442          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
107443        )
107444    THEN
107445          xla_ae_lines_pkg.BflowUpgEntry
107446            (p_business_method_code    => l_bflow_method_code
107447            ,p_business_class_code     => l_bflow_class_code
107448            ,p_balance_type            => l_balance_type_code);
107449    ELSE
107450       NULL;
107451 -- No business flow processing for business flow method of NONE.
107452    END IF;
107453 
107454    --
107455    -- call analytical criteria
107456    --
107457    
107458    --
107459    -- call description
107460    --
107461    -- No description or it is inherited.
107462    --
107463    -- call ADRs
107464    -- Bug 4922099
107465    --
107466    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107467         (NVL(l_actual_upg_option, 'N') = 'O') OR
107468         (NVL(l_enc_upg_option, 'N') = 'O')
107469       )
107470    THEN
107471    NULL;
107472    --
107473    --
107474    
107475   l_ccid := AcctDerRule_38(
107476            p_application_id           => p_application_id
107477          , p_ae_header_id             => l_ae_header_id 
107478 , p_source_3 => p_source_3
107479 , p_source_3_meaning => p_source_3_meaning
107480 , p_source_18 => p_source_18
107481 , p_source_26 => p_source_26
107482 , p_source_27 => p_source_27
107486          , p_side                     => 'NA'
107483          , x_transaction_coa_id       => l_adr_transaction_coa_id
107484          , x_accounting_coa_id        => l_adr_accounting_coa_id
107485          , x_value_type_code          => l_adr_value_type_code
107487    );
107488 
107489    xla_ae_lines_pkg.set_ccid(
107490     p_code_combination_id          => l_ccid
107491   , p_value_type_code              => l_adr_value_type_code
107492   , p_transaction_coa_id           => l_adr_transaction_coa_id
107493   , p_accounting_coa_id            => l_adr_accounting_coa_id
107494   , p_adr_code                     => 'AP_REAL_LOSS'
107495   , p_adr_type_code                => 'S'
107496   , p_component_type               => l_component_type
107497   , p_component_code               => l_component_code
107498   , p_component_type_code          => l_component_type_code
107499   , p_component_appl_id            => l_component_appl_id
107500   , p_amb_context_code             => l_amb_context_code
107501   , p_side                         => 'NA'
107502   );
107503 
107504 
107505    l_segment := AcctDerRule_21(
107506            p_application_id           => p_application_id
107507          , p_ae_header_id             => l_ae_header_id 
107508 , p_source_3 => p_source_3
107509 , p_source_3_meaning => p_source_3_meaning
107510 , p_source_18 => p_source_18
107511          , x_transaction_coa_id       => l_adr_transaction_coa_id
107512          , x_accounting_coa_id        => l_adr_accounting_coa_id
107513          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
107514          , x_flex_value_set_id        => l_adr_flex_value_set_id
107515          , x_value_type_code          => l_adr_value_type_code
107516          , x_value_combination_id     => l_adr_value_combination_id
107517          , x_value_segment_code       => l_adr_value_segment_code
107518          , p_side                     => 'NA'
107519          , p_override_seg_flag        => 'Y'
107520    );
107521 
107522    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
107523 
107524       xla_ae_lines_pkg.set_segment(
107525           p_to_segment_code         => 'GL_BALANCING'
107526         , p_segment_value           => l_segment
107527         , p_from_segment_code       => l_adr_value_segment_code
107528         , p_from_combination_id     => l_adr_value_combination_id
107529         , p_value_type_code         => l_adr_value_type_code
107530         , p_transaction_coa_id      => l_adr_transaction_coa_id
107531         , p_accounting_coa_id       => l_adr_accounting_coa_id
107532         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
107533         , p_flex_value_set_id       => l_adr_flex_value_set_id
107534         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
107535         , p_adr_type_code           => 'S'
107536         , p_component_type          => l_component_type
107537         , p_component_code          => l_component_code
107538         , p_component_type_code     => l_component_type_code
107539         , p_component_appl_id       => l_component_appl_id
107543         , p_side                    => 'NA'
107540         , p_amb_context_code        => l_amb_context_code
107541         , p_entity_code             => 'AP_PAYMENTS'
107542         , p_event_class_code        => 'PAYMENTS'
107544         );
107545 
107546   END IF;
107547 
107548    l_segment := AcctDerRule_17(
107549            p_application_id           => p_application_id
107550          , p_ae_header_id             => l_ae_header_id 
107551 , p_source_3 => p_source_3
107552 , p_source_3_meaning => p_source_3_meaning
107553 , p_source_26 => p_source_26
107554 , p_source_27 => p_source_27
107555          , x_transaction_coa_id       => l_adr_transaction_coa_id
107556          , x_accounting_coa_id        => l_adr_accounting_coa_id
107557          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
107558          , x_flex_value_set_id        => l_adr_flex_value_set_id
107559          , x_value_type_code          => l_adr_value_type_code
107560          , x_value_combination_id     => l_adr_value_combination_id
107561          , x_value_segment_code       => l_adr_value_segment_code
107562          , p_side                     => 'NA'
107563          , p_override_seg_flag        => 'Y'
107564    );
107565 
107566    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
107567 
107568       xla_ae_lines_pkg.set_segment(
107569           p_to_segment_code         => 'GL_ACCOUNT'
107570         , p_segment_value           => l_segment
107571         , p_from_segment_code       => l_adr_value_segment_code
107572         , p_from_combination_id     => l_adr_value_combination_id
107573         , p_value_type_code         => l_adr_value_type_code
107574         , p_transaction_coa_id      => l_adr_transaction_coa_id
107575         , p_accounting_coa_id       => l_adr_accounting_coa_id
107576         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
107577         , p_flex_value_set_id       => l_adr_flex_value_set_id
107578         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
107579         , p_adr_type_code           => 'S'
107580         , p_component_type          => l_component_type
107581         , p_component_code          => l_component_code
107582         , p_component_type_code     => l_component_type_code
107583         , p_component_appl_id       => l_component_appl_id
107584         , p_amb_context_code        => l_amb_context_code
107585         , p_entity_code             => 'AP_PAYMENTS'
107586         , p_event_class_code        => 'PAYMENTS'
107587         , p_side                    => 'NA'
107588         );
107589 
107590   END IF;
107591 
107592    --
107593    --
107594    END IF;
107595    --
107596    -- Bug 4922099
107597    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
107598           (NVL(l_enc_upg_option, 'N') = 'O')
107599         ) AND
107600         (l_bflow_method_code = 'PRIOR_ENTRY')
107601       )
107602    THEN
107603       IF
107604       --
107605       1 = 2
107606       --
107607       THEN
107608       xla_accounting_err_pkg.build_message
107609                                     (p_appli_s_name            => 'XLA'
107610                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107611                                     ,p_token_1                 => 'LINE_NUMBER'
107612                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
107613                                     ,p_token_2                 => 'LINE_TYPE_NAME'
107614                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
107615                                                                              l_component_type
107616                                                                             ,l_component_code
107620                                                                             ,l_entity_code
107617                                                                             ,l_component_type_code
107618                                                                             ,l_component_appl_id
107619                                                                             ,l_amb_context_code
107621                                                                             ,l_event_class_code
107622                                                                            )
107623                                     ,p_token_3                 => 'OWNER'
107624                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
107625                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
107626                                                                           ,p_lookup_code    => l_component_type_code
107627                                                                          )
107628                                     ,p_token_4                 => 'PRODUCT_NAME'
107632                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
107629                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
107630                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
107631                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
107633                                     ,p_ae_header_id            =>  NULL
107634                                        );
107635 
107636         IF (C_LEVEL_ERROR>= g_log_level) THEN
107637                  trace
107638                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107639                       ,p_level    => C_LEVEL_ERROR
107640                       ,p_module   => l_log_module);
107641         END IF;
107642       END IF;
107643    END IF;
107644    --
107645    --
107646    ------------------------------------------------------------------------------------------------
107647    -- 4219869 Business Flow
107648    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
107649    -- Prior Entry.  Currently, the following code is always generated.
107650    ------------------------------------------------------------------------------------------------
107651    XLA_AE_LINES_PKG.ValidateCurrentLine;
107652 
107653    ------------------------------------------------------------------------------------
107654    -- 4219869 Business Flow
107655    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
107656    ------------------------------------------------------------------------------------
107657    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107658 
107659    ----------------------------------------------------------------------------------
107660    -- 4219869 Business Flow
107661    -- Update journal entry status -- Need to generate this within IF <condition>
107662    ----------------------------------------------------------------------------------
107663    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107664          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
107665          ,p_balance_type_code => l_balance_type_code
107666          );
107667 
107668    -------------------------------------------------------------------------------------------
107669    -- 4262811 - Generate the Accrual Reversal lines
107670    -------------------------------------------------------------------------------------------
107671    BEGIN
107672       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
107673                               (g_array_event(p_event_id).array_value_num('header_index'));
107674       IF l_acc_rev_flag IS NULL THEN
107675          l_acc_rev_flag := 'N';
107676       END IF;
107677    EXCEPTION
107678       WHEN OTHERS THEN
107679          l_acc_rev_flag := 'N';
107680    END;
107681    --
107682    IF (l_acc_rev_flag = 'Y') THEN
107683 
107684        -- 4645092  ------------------------------------------------------------------------------
107685        -- To allow MPA report to determine if it should generate report process
107686        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
107687        ------------------------------------------------------------------------------------------
107688 
107689        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
107690        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
107691    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
107692    -- call ADRs
107693    -- Bug 4922099
107694    --
107695    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107696         (NVL(l_actual_upg_option, 'N') = 'O') OR
107697         (NVL(l_enc_upg_option, 'N') = 'O')
107698       )
107699    THEN
107700    NULL;
107701    --
107702    --
107703    
107704   l_ccid := AcctDerRule_38(
107705            p_application_id           => p_application_id
107706          , p_ae_header_id             => l_ae_header_id 
107707 , p_source_3 => p_source_3
107708 , p_source_3_meaning => p_source_3_meaning
107709 , p_source_18 => p_source_18
107710 , p_source_26 => p_source_26
107711 , p_source_27 => p_source_27
107712          , x_transaction_coa_id       => l_adr_transaction_coa_id
107713          , x_accounting_coa_id        => l_adr_accounting_coa_id
107714          , x_value_type_code          => l_adr_value_type_code
107715          , p_side                     => 'NA'
107716    );
107717 
107718    xla_ae_lines_pkg.set_ccid(
107719     p_code_combination_id          => l_ccid
107720   , p_value_type_code              => l_adr_value_type_code
107721   , p_transaction_coa_id           => l_adr_transaction_coa_id
107722   , p_accounting_coa_id            => l_adr_accounting_coa_id
107723   , p_adr_code                     => 'AP_REAL_LOSS'
107724   , p_adr_type_code                => 'S'
107725   , p_component_type               => l_component_type
107726   , p_component_code               => l_component_code
107727   , p_component_type_code          => l_component_type_code
107728   , p_component_appl_id            => l_component_appl_id
107729   , p_amb_context_code             => l_amb_context_code
107730   , p_side                         => 'NA'
107731   );
107732 
107733 
107734    l_segment := AcctDerRule_21(
107735            p_application_id           => p_application_id
107736          , p_ae_header_id             => l_ae_header_id 
107737 , p_source_3 => p_source_3
107738 , p_source_3_meaning => p_source_3_meaning
107739 , p_source_18 => p_source_18
107740          , x_transaction_coa_id       => l_adr_transaction_coa_id
107741          , x_accounting_coa_id        => l_adr_accounting_coa_id
107745          , x_value_combination_id     => l_adr_value_combination_id
107742          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
107743          , x_flex_value_set_id        => l_adr_flex_value_set_id
107744          , x_value_type_code          => l_adr_value_type_code
107746          , x_value_segment_code       => l_adr_value_segment_code
107747          , p_side                     => 'NA'
107748          , p_override_seg_flag        => 'Y'
107749    );
107750 
107751    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
107752 
107753       xla_ae_lines_pkg.set_segment(
107754           p_to_segment_code         => 'GL_BALANCING'
107755         , p_segment_value           => l_segment
107756         , p_from_segment_code       => l_adr_value_segment_code
107757         , p_from_combination_id     => l_adr_value_combination_id
107758         , p_value_type_code         => l_adr_value_type_code
107759         , p_transaction_coa_id      => l_adr_transaction_coa_id
107760         , p_accounting_coa_id       => l_adr_accounting_coa_id
107761         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
107762         , p_flex_value_set_id       => l_adr_flex_value_set_id
107763         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
107764         , p_adr_type_code           => 'S'
107765         , p_component_type          => l_component_type
107766         , p_component_code          => l_component_code
107767         , p_component_type_code     => l_component_type_code
107768         , p_component_appl_id       => l_component_appl_id
107769         , p_amb_context_code        => l_amb_context_code
107770         , p_entity_code             => 'AP_PAYMENTS'
107771         , p_event_class_code        => 'PAYMENTS'
107772         , p_side                    => 'NA'
107773         );
107774 
107775   END IF;
107776 
107777    l_segment := AcctDerRule_17(
107778            p_application_id           => p_application_id
107779          , p_ae_header_id             => l_ae_header_id 
107780 , p_source_3 => p_source_3
107781 , p_source_3_meaning => p_source_3_meaning
107782 , p_source_26 => p_source_26
107783 , p_source_27 => p_source_27
107784          , x_transaction_coa_id       => l_adr_transaction_coa_id
107785          , x_accounting_coa_id        => l_adr_accounting_coa_id
107786          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
107787          , x_flex_value_set_id        => l_adr_flex_value_set_id
107788          , x_value_type_code          => l_adr_value_type_code
107789          , x_value_combination_id     => l_adr_value_combination_id
107790          , x_value_segment_code       => l_adr_value_segment_code
107791          , p_side                     => 'NA'
107792          , p_override_seg_flag        => 'Y'
107793    );
107794 
107795    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
107796 
107797       xla_ae_lines_pkg.set_segment(
107798           p_to_segment_code         => 'GL_ACCOUNT'
107799         , p_segment_value           => l_segment
107800         , p_from_segment_code       => l_adr_value_segment_code
107801         , p_from_combination_id     => l_adr_value_combination_id
107802         , p_value_type_code         => l_adr_value_type_code
107803         , p_transaction_coa_id      => l_adr_transaction_coa_id
107804         , p_accounting_coa_id       => l_adr_accounting_coa_id
107805         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
107806         , p_flex_value_set_id       => l_adr_flex_value_set_id
107807         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
107808         , p_adr_type_code           => 'S'
107809         , p_component_type          => l_component_type
107810         , p_component_code          => l_component_code
107811         , p_component_type_code     => l_component_type_code
107812         , p_component_appl_id       => l_component_appl_id
107813         , p_amb_context_code        => l_amb_context_code
107814         , p_entity_code             => 'AP_PAYMENTS'
107815         , p_event_class_code        => 'PAYMENTS'
107816         , p_side                    => 'NA'
107817         );
107818 
107819   END IF;
107820 
107821    --
107822    --
107823    END IF;
107824 
107825        --
107826        -- Update the line information that should be overwritten
107827        --
107828        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
107829                                          p_header_num   => 1);
107830        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
107831 
107832        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
107833 
107834        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
107835           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
107836        END IF;
107837 
107838       --
107842           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
107839       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
107840       --
107841       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
107843       ELSE
107844           ---------------------------------------------------------------------------------------------------
107845           -- 4262811a Switch Sign
107846           ---------------------------------------------------------------------------------------------------
107847           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
107848           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107849                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107850           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107851                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107852           -- 5132302
107853           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
107854                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107855 
107856       END IF;
107857 
107858       -- 4955764
107859       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107860       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
107861 
107862 
107863       XLA_AE_LINES_PKG.ValidateCurrentLine;
107864       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107865 
107866       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107867                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
107871 
107868                ,p_balance_type_code => l_balance_type_code);
107869 
107870    END IF;
107872    -----------------------------------------------------------------------------------------
107873    -- 4262811 Multiperiod Accounting
107874    -----------------------------------------------------------------------------------------
107875      -- No MPA option is assigned.
107876 
107877 
107878 END IF;
107879 END IF;
107880 --
107881 
107882 --
107883 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107884    trace
107885       (p_msg      => 'END of AcctLineType_185'
107886       ,p_level    => C_LEVEL_PROCEDURE
107887       ,p_module   => l_log_module);
107888 END IF;
107889 --
107890 EXCEPTION
107891   WHEN xla_exceptions_pkg.application_exception THEN
107892       RAISE;
107893   WHEN OTHERS THEN
107894        xla_exceptions_pkg.raise_message
107895            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_185');
107896 END AcctLineType_185;
107897 --
107898 
107899 ---------------------------------------
107900 --
107901 -- PRIVATE FUNCTION
107902 --         AcctLineType_186
107903 --
107904 ---------------------------------------
107905 PROCEDURE AcctLineType_186 (
107906   p_application_id        IN NUMBER
107907  ,p_event_id              IN NUMBER
107908  ,p_calculate_acctd_flag  IN VARCHAR2
107909  ,p_calculate_g_l_flag    IN VARCHAR2
107910  ,p_actual_flag           IN OUT VARCHAR2
107911  ,p_balance_type_code     OUT VARCHAR2
107912  ,p_gain_or_loss_ref      OUT VARCHAR2
107913  
107914 --Automatic Offsets Value
107915  , p_source_3            IN VARCHAR2
107916  , p_source_3_meaning    IN VARCHAR2
107917 --Invoice Distribution Account
107918  , p_source_18            IN NUMBER
107919 --Internal Realized Loss Account
107920  , p_source_26            IN NUMBER
107921 --Bank Loss Account
107922  , p_source_27            IN NUMBER
107923 --Accounting Reversal Indicator
107924  , p_source_41            IN VARCHAR2
107925 --Distribution Link Type
107926  , p_source_43            IN VARCHAR2
107927 --Override Accounted Amount Indicator
107928  , p_source_68            IN VARCHAR2
107929  , p_source_68_meaning    IN VARCHAR2
107930 --Third Party Type
107931  , p_source_71            IN VARCHAR2
107932 --Invoice Distribution Tax Line Identifier
107933  , p_source_74            IN NUMBER
107934 --Invoice Distribution Summary Tax Line Identifier
107935  , p_source_76            IN NUMBER
107936 --Business Flow Accounts Payable Application Identifier
107937  , p_source_79            IN NUMBER
107938 --When to Account for Payment Option
107939  , p_source_89            IN VARCHAR2
107940 --Payment Distribution Type
107941  , p_source_90            IN VARCHAR2
107942  , p_source_90_meaning    IN VARCHAR2
107943 --Payment Distribution Amount
107944  , p_source_91            IN NUMBER
107945 --Business Flow Payment Distribution Type
107949 --Business Flow Payment Distribution Identifier
107946  , p_source_92            IN VARCHAR2
107947 --Business Flow Payment Entity Code
107948  , p_source_93            IN VARCHAR2
107950  , p_source_94            IN NUMBER
107951 --Business Flow Payment Identifier
107952  , p_source_95            IN NUMBER
107953 --Payment Distribution Identifier
107954  , p_source_96            IN NUMBER
107955 --Cleared Exchange Date
107956  , p_source_98            IN DATE
107957 --Cleared Exchange Rate
107958  , p_source_99            IN NUMBER
107959 --Cleared Exchange Rate Type
107960  , p_source_100            IN VARCHAR2
107961 --Payment Supplier Identifier
107962  , p_source_102            IN NUMBER
107963 --Payment Supplier Site Identifier
107964  , p_source_103            IN NUMBER
107965 --Payment Distribution Reversed Identifier
107966  , p_source_104            IN NUMBER
107967 --Payment Currency Code
107968  , p_source_106            IN VARCHAR2
107969 --Payment Maturity Date
107970  , p_source_107            IN DATE
107971 --Gain or Loss Indicator between Payment and Clearing
107972  , p_source_154            IN VARCHAR2
107973 --Payment/Clearing Ledger Amount Difference
107974  , p_source_155            IN NUMBER
107975 )
107976 IS
107977 
107978 l_component_type              VARCHAR2(80);
107979 l_component_code              VARCHAR2(30);
107980 l_component_type_code         VARCHAR2(1);
107981 l_component_appl_id           INTEGER;
107982 l_amb_context_code            VARCHAR2(30);
107983 l_entity_code                 VARCHAR2(30);
107984 l_event_class_code            VARCHAR2(30);
107985 l_ae_header_id                NUMBER;
107986 l_event_type_code             VARCHAR2(30);
107987 l_line_definition_code        VARCHAR2(30);
107988 l_line_definition_owner_code  VARCHAR2(1);
107989 --
107990 -- adr variables
107991 l_segment                     VARCHAR2(30);
107992 l_ccid                        NUMBER;
107993 l_adr_transaction_coa_id      NUMBER;
107994 l_adr_accounting_coa_id       NUMBER;
107995 l_adr_flexfield_segment_code  VARCHAR2(30);
107996 l_adr_flex_value_set_id       NUMBER;
107997 l_adr_value_type_code         VARCHAR2(30);
107998 l_adr_value_combination_id    NUMBER;
107999 l_adr_value_segment_code      VARCHAR2(30);
108000 
108001 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
108002 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
108003 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
108004 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
108005 
108006 -- 4262811 Variables ------------------------------------------------------------------------------------------
108007 l_entered_amt_idx             NUMBER;
108008 l_accted_amt_idx              NUMBER;
108009 l_acc_rev_flag                VARCHAR2(1);
108010 l_accrual_line_num            NUMBER;
108011 l_tmp_amt                     NUMBER;
108012 l_acc_rev_natural_side_code   VARCHAR2(1);
108013 
108014 l_num_entries                 NUMBER;
108015 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
108016 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
108017 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
108018 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
108019 l_recog_line_1                NUMBER;
108020 l_recog_line_2                NUMBER;
108021 
108022 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
108023 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
108024 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
108025 
108026 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
108027 
108028 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
108032 
108029 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
108030 
108031 ---------------------------------------------------------------------------------------------------------------
108033 
108034 --
108035 -- bulk performance
108036 --
108037 l_balance_type_code           VARCHAR2(1);
108038 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
108039 l_log_module                  VARCHAR2(240);
108040 
108041 --
108042 -- Upgrade strategy
108043 --
108044 l_actual_upg_option           VARCHAR2(1);
108045 l_enc_upg_option           VARCHAR2(1);
108046 
108047 --
108048 BEGIN
108049 --
108050 IF g_log_enabled THEN
108051       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_186';
108052 END IF;
108053 --
108054 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108055 
108056       trace
108057          (p_msg      => 'BEGIN of AcctLineType_186'
108061 END IF;
108058          ,p_level    => C_LEVEL_PROCEDURE
108059          ,p_module   => l_log_module);
108060 
108062 --
108063 l_component_type             := 'AMB_JLT';
108064 l_component_code             := 'AP_LOSS_PMT_CLEAR';
108065 l_component_type_code        := 'S';
108066 l_component_appl_id          :=  200;
108067 l_amb_context_code           := 'DEFAULT';
108068 l_entity_code                := 'AP_PAYMENTS';
108069 l_event_class_code           := 'RECONCILED PAYMENTS';
108070 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
108071 l_line_definition_owner_code := 'S';
108072 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
108073 --
108074 l_balance_type_code          := 'A';
108075 l_segment                     := NULL;
108076 l_ccid                        := NULL;
108077 l_adr_transaction_coa_id      := NULL;
108078 l_adr_accounting_coa_id       := NULL;
108079 l_adr_flexfield_segment_code  := NULL;
108080 l_adr_flex_value_set_id       := NULL;
108081 l_adr_value_type_code         := NULL;
108082 l_adr_value_combination_id    := NULL;
108083 l_adr_value_segment_code      := NULL;
108084 
108085 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
108086 l_bflow_class_code           := '';    -- 4219869 Business Flow
108087 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
108088 l_budgetary_control_flag     := 'N';
108089 
108090 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
108091 l_bflow_applied_to_amt       := NULL; -- 5132302
108092 l_entered_amt_idx            := NULL;          -- 4262811
108093 l_accted_amt_idx             := NULL;          -- 4262811
108094 l_acc_rev_flag               := NULL;          -- 4262811
108095 l_accrual_line_num           := NULL;          -- 4262811
108096 l_tmp_amt                    := NULL;          -- 4262811
108097 --
108098 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
108099             (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
108100                return;
108101   END IF;
108102   
108103 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
108104     l_balance_type_code <> 'B' THEN
108105 IF NVL(p_source_89,'
108106 ') =  'ALWAYS_ALWAYS' AND 
108107 p_source_107 IS NULL AND 
108108 NVL(p_source_154,'
108109 ') =  'LOSS' AND 
108110 NVL(p_source_90,'
108111 ') <>  'EXCHANGE RATE VARIANCE' AND 
108112 NVL(p_source_90,'
108113 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
108114 NVL(p_source_90,'
108115 ') <>  'BANK CHARGE' AND 
108116 NVL(p_source_90,'
108117 ') <>  'BANK ERROR' AND 
108118 NVL(p_source_90,'
108119 ') <>  'AWT'
108120  THEN 
108121 
108122    --
108123    XLA_AE_LINES_PKG.SetNewLine;
108124 
108125    p_balance_type_code          := l_balance_type_code;
108126    -- set the flag so later we will know whether the gain loss line needs to be created
108127    
108128    IF(l_balance_type_code = 'A' ) THEN
108129      p_actual_flag :='G';
108130    END IF;
108131 
108132    --
108133    -- bulk performance
108134    --
108135    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
108136                                       p_header_num   => 0); -- 4262811
108137    --
108138    -- set accounting line options
108139    --
108140    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
108141            p_natural_side_code          => 'C'
108142          , p_gain_or_loss_flag          => 'Y'
108143          , p_gl_transfer_mode_code      => 'S'
108144          , p_acct_entry_type_code       => 'A'
108145          , p_switch_side_flag           => 'Y'
108146          , p_merge_duplicate_code       => 'A'
108147          );
108148    --
108149    l_acc_rev_natural_side_code := 'D';  -- 4262811
108150    -- 
108151    --
108152    -- set accounting line type info
108153    --
108154    xla_ae_lines_pkg.SetAcctLineType
108155       (p_component_type             => l_component_type
108156       ,p_event_type_code            => l_event_type_code
108157       ,p_line_definition_owner_code => l_line_definition_owner_code
108158       ,p_line_definition_code       => l_line_definition_code
108159       ,p_accounting_line_code       => l_component_code
108160       ,p_accounting_line_type_code  => l_component_type_code
108161       ,p_accounting_line_appl_id    => l_component_appl_id
108162       ,p_amb_context_code           => l_amb_context_code
108163       ,p_entity_code                => l_entity_code
108164       ,p_event_class_code           => l_event_class_code);
108165    --
108166    -- set accounting class
108167    --
108168    xla_ae_lines_pkg.SetAcctClass(
108169            p_accounting_class_code  => 'LOSS'
108170          , p_ae_header_id           => l_ae_header_id
108171          );
108172 
108173    --
108174    -- set rounding class
108175    --
108176    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
108177                       'LOSS';
108178 
108179    --
108180    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
108181    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
108182    --
108183    -- bulk performance
108184    --
108185    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
108186 
108187    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
108188       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
108189 
108190    -- 4955764
108194    -- 4458381 Public Sector Enh
108191    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108192       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
108193 
108195    
108196    --
108197    -- set accounting attributes for the line type
108198    --
108199    l_entered_amt_idx := 10;
108200    l_accted_amt_idx  := 15;
108201    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
108202    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
108203    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
108204    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
108205    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
108206    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
108207    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
108208    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
108209    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
108210    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
108211    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
108212    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
108213    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
108214    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
108215    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
108216    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
108217    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
108218    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
108219    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
108220    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
108221    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
108222    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
108223    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
108224    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
108225    l_rec_acct_attrs.array_date_value(12)  := p_source_98;
108226    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
108227    l_rec_acct_attrs.array_num_value(13)  := p_source_99;
108228    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
108229    l_rec_acct_attrs.array_char_value(14)  := p_source_100;
108230    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
108231    l_rec_acct_attrs.array_num_value(15)  := p_source_155;
108232    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
108233    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
108234    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
108235    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
108236    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
108237    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
108238    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
108239    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
108240    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
108241    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
108242    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
108243    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
108244    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
108245    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
108246    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
108247    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
108248    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
108249    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
108250 
108251    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
108252    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
108253 
108254    ---------------------------------------------------------------------------------------------------------------
108255    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
108256    ---------------------------------------------------------------------------------------------------------------
108257    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
108258 
108259    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108260    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108261 
108262    IF xla_accounting_cache_pkg.GetValueChar
108263          (p_source_code         => 'LEDGER_CATEGORY_CODE'
108264          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
108265    AND l_bflow_method_code = 'PRIOR_ENTRY'
108266 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
108267    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
108268          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
108269        )
108270    THEN
108271          xla_ae_lines_pkg.BflowUpgEntry
108272            (p_business_method_code    => l_bflow_method_code
108273            ,p_business_class_code     => l_bflow_class_code
108274            ,p_balance_type            => l_balance_type_code);
108275    ELSE
108276       NULL;
108277 -- No business flow processing for business flow method of NONE.
108278    END IF;
108279 
108280    --
108281    -- call analytical criteria
108282    --
108283    
108284    --
108285    -- call description
108286    --
108287    -- No description or it is inherited.
108288    --
108289    -- call ADRs
108290    -- Bug 4922099
108291    --
108292    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
108293         (NVL(l_actual_upg_option, 'N') = 'O') OR
108294         (NVL(l_enc_upg_option, 'N') = 'O')
108298    --
108295       )
108296    THEN
108297    NULL;
108299    --
108300    
108301   l_ccid := AcctDerRule_38(
108302            p_application_id           => p_application_id
108303          , p_ae_header_id             => l_ae_header_id 
108304 , p_source_3 => p_source_3
108305 , p_source_3_meaning => p_source_3_meaning
108306 , p_source_18 => p_source_18
108307 , p_source_26 => p_source_26
108308 , p_source_27 => p_source_27
108309          , x_transaction_coa_id       => l_adr_transaction_coa_id
108310          , x_accounting_coa_id        => l_adr_accounting_coa_id
108311          , x_value_type_code          => l_adr_value_type_code
108312          , p_side                     => 'NA'
108313    );
108314 
108315    xla_ae_lines_pkg.set_ccid(
108316     p_code_combination_id          => l_ccid
108317   , p_value_type_code              => l_adr_value_type_code
108318   , p_transaction_coa_id           => l_adr_transaction_coa_id
108319   , p_accounting_coa_id            => l_adr_accounting_coa_id
108320   , p_adr_code                     => 'AP_REAL_LOSS'
108321   , p_adr_type_code                => 'S'
108322   , p_component_type               => l_component_type
108323   , p_component_code               => l_component_code
108324   , p_component_type_code          => l_component_type_code
108325   , p_component_appl_id            => l_component_appl_id
108326   , p_amb_context_code             => l_amb_context_code
108327   , p_side                         => 'NA'
108328   );
108329 
108330 
108331    l_segment := AcctDerRule_21(
108332            p_application_id           => p_application_id
108333          , p_ae_header_id             => l_ae_header_id 
108334 , p_source_3 => p_source_3
108335 , p_source_3_meaning => p_source_3_meaning
108336 , p_source_18 => p_source_18
108337          , x_transaction_coa_id       => l_adr_transaction_coa_id
108338          , x_accounting_coa_id        => l_adr_accounting_coa_id
108339          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
108340          , x_flex_value_set_id        => l_adr_flex_value_set_id
108341          , x_value_type_code          => l_adr_value_type_code
108342          , x_value_combination_id     => l_adr_value_combination_id
108343          , x_value_segment_code       => l_adr_value_segment_code
108344          , p_side                     => 'NA'
108345          , p_override_seg_flag        => 'Y'
108346    );
108347 
108348    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
108349 
108350       xla_ae_lines_pkg.set_segment(
108351           p_to_segment_code         => 'GL_BALANCING'
108352         , p_segment_value           => l_segment
108353         , p_from_segment_code       => l_adr_value_segment_code
108354         , p_from_combination_id     => l_adr_value_combination_id
108355         , p_value_type_code         => l_adr_value_type_code
108356         , p_transaction_coa_id      => l_adr_transaction_coa_id
108357         , p_accounting_coa_id       => l_adr_accounting_coa_id
108358         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
108359         , p_flex_value_set_id       => l_adr_flex_value_set_id
108360         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
108361         , p_adr_type_code           => 'S'
108362         , p_component_type          => l_component_type
108363         , p_component_code          => l_component_code
108364         , p_component_type_code     => l_component_type_code
108365         , p_component_appl_id       => l_component_appl_id
108366         , p_amb_context_code        => l_amb_context_code
108367         , p_entity_code             => 'AP_PAYMENTS'
108368         , p_event_class_code        => 'RECONCILED PAYMENTS'
108369         , p_side                    => 'NA'
108370         );
108371 
108372   END IF;
108373 
108374    l_segment := AcctDerRule_17(
108375            p_application_id           => p_application_id
108376          , p_ae_header_id             => l_ae_header_id 
108377 , p_source_3 => p_source_3
108378 , p_source_3_meaning => p_source_3_meaning
108379 , p_source_26 => p_source_26
108380 , p_source_27 => p_source_27
108381          , x_transaction_coa_id       => l_adr_transaction_coa_id
108382          , x_accounting_coa_id        => l_adr_accounting_coa_id
108383          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
108384          , x_flex_value_set_id        => l_adr_flex_value_set_id
108385          , x_value_type_code          => l_adr_value_type_code
108386          , x_value_combination_id     => l_adr_value_combination_id
108387          , x_value_segment_code       => l_adr_value_segment_code
108388          , p_side                     => 'NA'
108389          , p_override_seg_flag        => 'Y'
108390    );
108391 
108392    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
108393 
108394       xla_ae_lines_pkg.set_segment(
108395           p_to_segment_code         => 'GL_ACCOUNT'
108396         , p_segment_value           => l_segment
108397         , p_from_segment_code       => l_adr_value_segment_code
108398         , p_from_combination_id     => l_adr_value_combination_id
108399         , p_value_type_code         => l_adr_value_type_code
108400         , p_transaction_coa_id      => l_adr_transaction_coa_id
108401         , p_accounting_coa_id       => l_adr_accounting_coa_id
108402         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
108403         , p_flex_value_set_id       => l_adr_flex_value_set_id
108404         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
108405         , p_adr_type_code           => 'S'
108406         , p_component_type          => l_component_type
108407         , p_component_code          => l_component_code
108408         , p_component_type_code     => l_component_type_code
108409         , p_component_appl_id       => l_component_appl_id
108410         , p_amb_context_code        => l_amb_context_code
108411         , p_entity_code             => 'AP_PAYMENTS'
108415 
108412         , p_event_class_code        => 'RECONCILED PAYMENTS'
108413         , p_side                    => 'NA'
108414         );
108416   END IF;
108417 
108418    --
108419    --
108420    END IF;
108421    --
108422    -- Bug 4922099
108423    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
108424           (NVL(l_enc_upg_option, 'N') = 'O')
108425         ) AND
108426         (l_bflow_method_code = 'PRIOR_ENTRY')
108427       )
108428    THEN
108429       IF
108430       --
108431       1 = 2
108432       --
108433       THEN
108434       xla_accounting_err_pkg.build_message
108435                                     (p_appli_s_name            => 'XLA'
108436                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108437                                     ,p_token_1                 => 'LINE_NUMBER'
108438                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
108439                                     ,p_token_2                 => 'LINE_TYPE_NAME'
108440                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
108441                                                                              l_component_type
108442                                                                             ,l_component_code
108443                                                                             ,l_component_type_code
108444                                                                             ,l_component_appl_id
108445                                                                             ,l_amb_context_code
108446                                                                             ,l_entity_code
108447                                                                             ,l_event_class_code
108448                                                                            )
108449                                     ,p_token_3                 => 'OWNER'
108450                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
108451                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
108452                                                                           ,p_lookup_code    => l_component_type_code
108453                                                                          )
108454                                     ,p_token_4                 => 'PRODUCT_NAME'
108455                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
108456                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
108457                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
108458                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
108459                                     ,p_ae_header_id            =>  NULL
108460                                        );
108461 
108462         IF (C_LEVEL_ERROR>= g_log_level) THEN
108463                  trace
108464                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108465                       ,p_level    => C_LEVEL_ERROR
108466                       ,p_module   => l_log_module);
108467         END IF;
108468       END IF;
108469    END IF;
108470    --
108471    --
108472    ------------------------------------------------------------------------------------------------
108473    -- 4219869 Business Flow
108474    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
108475    -- Prior Entry.  Currently, the following code is always generated.
108476    ------------------------------------------------------------------------------------------------
108477    XLA_AE_LINES_PKG.ValidateCurrentLine;
108478 
108479    ------------------------------------------------------------------------------------
108480    -- 4219869 Business Flow
108481    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
108482    ------------------------------------------------------------------------------------
108483    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
108484 
108485    ----------------------------------------------------------------------------------
108486    -- 4219869 Business Flow
108487    -- Update journal entry status -- Need to generate this within IF <condition>
108488    ----------------------------------------------------------------------------------
108489    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
108490          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
108491          ,p_balance_type_code => l_balance_type_code
108492          );
108493 
108494    -------------------------------------------------------------------------------------------
108495    -- 4262811 - Generate the Accrual Reversal lines
108496    -------------------------------------------------------------------------------------------
108497    BEGIN
108498       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
108499                               (g_array_event(p_event_id).array_value_num('header_index'));
108500       IF l_acc_rev_flag IS NULL THEN
108501          l_acc_rev_flag := 'N';
108502       END IF;
108503    EXCEPTION
108504       WHEN OTHERS THEN
108505          l_acc_rev_flag := 'N';
108506    END;
108507    --
108508    IF (l_acc_rev_flag = 'Y') THEN
108509 
108510        -- 4645092  ------------------------------------------------------------------------------
108511        -- To allow MPA report to determine if it should generate report process
108512        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
108513        ------------------------------------------------------------------------------------------
108514 
108515        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
108519    -- Bug 4922099
108516        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
108517    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
108518    -- call ADRs
108520    --
108521    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
108522         (NVL(l_actual_upg_option, 'N') = 'O') OR
108523         (NVL(l_enc_upg_option, 'N') = 'O')
108524       )
108525    THEN
108526    NULL;
108527    --
108528    --
108529    
108530   l_ccid := AcctDerRule_38(
108531            p_application_id           => p_application_id
108532          , p_ae_header_id             => l_ae_header_id 
108533 , p_source_3 => p_source_3
108534 , p_source_3_meaning => p_source_3_meaning
108535 , p_source_18 => p_source_18
108536 , p_source_26 => p_source_26
108537 , p_source_27 => p_source_27
108538          , x_transaction_coa_id       => l_adr_transaction_coa_id
108539          , x_accounting_coa_id        => l_adr_accounting_coa_id
108540          , x_value_type_code          => l_adr_value_type_code
108541          , p_side                     => 'NA'
108542    );
108543 
108544    xla_ae_lines_pkg.set_ccid(
108545     p_code_combination_id          => l_ccid
108546   , p_value_type_code              => l_adr_value_type_code
108547   , p_transaction_coa_id           => l_adr_transaction_coa_id
108548   , p_accounting_coa_id            => l_adr_accounting_coa_id
108549   , p_adr_code                     => 'AP_REAL_LOSS'
108550   , p_adr_type_code                => 'S'
108551   , p_component_type               => l_component_type
108552   , p_component_code               => l_component_code
108553   , p_component_type_code          => l_component_type_code
108554   , p_component_appl_id            => l_component_appl_id
108555   , p_amb_context_code             => l_amb_context_code
108556   , p_side                         => 'NA'
108557   );
108558 
108559 
108560    l_segment := AcctDerRule_21(
108561            p_application_id           => p_application_id
108562          , p_ae_header_id             => l_ae_header_id 
108563 , p_source_3 => p_source_3
108564 , p_source_3_meaning => p_source_3_meaning
108565 , p_source_18 => p_source_18
108566          , x_transaction_coa_id       => l_adr_transaction_coa_id
108567          , x_accounting_coa_id        => l_adr_accounting_coa_id
108568          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
108569          , x_flex_value_set_id        => l_adr_flex_value_set_id
108570          , x_value_type_code          => l_adr_value_type_code
108571          , x_value_combination_id     => l_adr_value_combination_id
108572          , x_value_segment_code       => l_adr_value_segment_code
108573          , p_side                     => 'NA'
108574          , p_override_seg_flag        => 'Y'
108575    );
108576 
108577    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
108578 
108579       xla_ae_lines_pkg.set_segment(
108580           p_to_segment_code         => 'GL_BALANCING'
108581         , p_segment_value           => l_segment
108582         , p_from_segment_code       => l_adr_value_segment_code
108583         , p_from_combination_id     => l_adr_value_combination_id
108584         , p_value_type_code         => l_adr_value_type_code
108585         , p_transaction_coa_id      => l_adr_transaction_coa_id
108586         , p_accounting_coa_id       => l_adr_accounting_coa_id
108587         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
108588         , p_flex_value_set_id       => l_adr_flex_value_set_id
108589         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
108590         , p_adr_type_code           => 'S'
108591         , p_component_type          => l_component_type
108592         , p_component_code          => l_component_code
108593         , p_component_type_code     => l_component_type_code
108594         , p_component_appl_id       => l_component_appl_id
108595         , p_amb_context_code        => l_amb_context_code
108596         , p_entity_code             => 'AP_PAYMENTS'
108597         , p_event_class_code        => 'RECONCILED PAYMENTS'
108598         , p_side                    => 'NA'
108599         );
108600 
108601   END IF;
108602 
108603    l_segment := AcctDerRule_17(
108604            p_application_id           => p_application_id
108605          , p_ae_header_id             => l_ae_header_id 
108606 , p_source_3 => p_source_3
108607 , p_source_3_meaning => p_source_3_meaning
108608 , p_source_26 => p_source_26
108609 , p_source_27 => p_source_27
108610          , x_transaction_coa_id       => l_adr_transaction_coa_id
108611          , x_accounting_coa_id        => l_adr_accounting_coa_id
108612          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
108613          , x_flex_value_set_id        => l_adr_flex_value_set_id
108614          , x_value_type_code          => l_adr_value_type_code
108615          , x_value_combination_id     => l_adr_value_combination_id
108616          , x_value_segment_code       => l_adr_value_segment_code
108617          , p_side                     => 'NA'
108618          , p_override_seg_flag        => 'Y'
108619    );
108620 
108621    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
108622 
108623       xla_ae_lines_pkg.set_segment(
108624           p_to_segment_code         => 'GL_ACCOUNT'
108625         , p_segment_value           => l_segment
108626         , p_from_segment_code       => l_adr_value_segment_code
108627         , p_from_combination_id     => l_adr_value_combination_id
108628         , p_value_type_code         => l_adr_value_type_code
108629         , p_transaction_coa_id      => l_adr_transaction_coa_id
108630         , p_accounting_coa_id       => l_adr_accounting_coa_id
108631         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
108632         , p_flex_value_set_id       => l_adr_flex_value_set_id
108633         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
108637         , p_component_type_code     => l_component_type_code
108634         , p_adr_type_code           => 'S'
108635         , p_component_type          => l_component_type
108636         , p_component_code          => l_component_code
108638         , p_component_appl_id       => l_component_appl_id
108639         , p_amb_context_code        => l_amb_context_code
108640         , p_entity_code             => 'AP_PAYMENTS'
108641         , p_event_class_code        => 'RECONCILED PAYMENTS'
108642         , p_side                    => 'NA'
108643         );
108644 
108645   END IF;
108646 
108647    --
108648    --
108649    END IF;
108650 
108651        --
108652        -- Update the line information that should be overwritten
108653        --
108654        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
108655                                          p_header_num   => 1);
108656        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
108657 
108658        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
108659 
108660        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
108661           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
108662        END IF;
108663 
108664       --
108665       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
108666       --
108667       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
108668           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
108669       ELSE
108670           ---------------------------------------------------------------------------------------------------
108671           -- 4262811a Switch Sign
108672           ---------------------------------------------------------------------------------------------------
108673           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
108674           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
108675                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108676           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
108677                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108678           -- 5132302
108679           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
108680                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108681 
108682       END IF;
108683 
108684       -- 4955764
108685       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108686       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
108687 
108688 
108689       XLA_AE_LINES_PKG.ValidateCurrentLine;
108690       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
108691 
108692       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
108693                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
108694                ,p_balance_type_code => l_balance_type_code);
108695 
108696    END IF;
108697 
108698    -----------------------------------------------------------------------------------------
108699    -- 4262811 Multiperiod Accounting
108700    -----------------------------------------------------------------------------------------
108701      -- No MPA option is assigned.
108702 
108703 
108704 END IF;
108705 END IF;
108706 --
108707 
108708 --
108709 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108710    trace
108711       (p_msg      => 'END of AcctLineType_186'
108712       ,p_level    => C_LEVEL_PROCEDURE
108713       ,p_module   => l_log_module);
108714 END IF;
108715 --
108716 EXCEPTION
108717   WHEN xla_exceptions_pkg.application_exception THEN
108718       RAISE;
108719   WHEN OTHERS THEN
108720        xla_exceptions_pkg.raise_message
108721            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_186');
108722 END AcctLineType_186;
108723 --
108724 
108725 ---------------------------------------
108726 --
108727 -- PRIVATE FUNCTION
108728 --         AcctLineType_187
108729 --
108730 ---------------------------------------
108731 PROCEDURE AcctLineType_187 (
108732   p_application_id        IN NUMBER
108733  ,p_event_id              IN NUMBER
108734  ,p_calculate_acctd_flag  IN VARCHAR2
108735  ,p_calculate_g_l_flag    IN VARCHAR2
108736  ,p_actual_flag           IN OUT VARCHAR2
108737  ,p_balance_type_code     OUT VARCHAR2
108738  ,p_gain_or_loss_ref      OUT VARCHAR2
108739  
108740 --Automatic Offsets Value
108741  , p_source_3            IN VARCHAR2
108742  , p_source_3_meaning    IN VARCHAR2
108743 --Invoice Distribution Account
108744  , p_source_18            IN NUMBER
108745 --Internal Realized Loss Account
108746  , p_source_26            IN NUMBER
108747 --Bank Loss Account
108748  , p_source_27            IN NUMBER
108749 --Accounting Reversal Indicator
108750  , p_source_41            IN VARCHAR2
108751 --Distribution Link Type
108752  , p_source_43            IN VARCHAR2
108753 --Override Accounted Amount Indicator
108754  , p_source_68            IN VARCHAR2
108755  , p_source_68_meaning    IN VARCHAR2
108756 --Third Party Type
108757  , p_source_71            IN VARCHAR2
108758 --Business Flow Accounts Payable Application Identifier
108762 --Payment Distribution Type
108759  , p_source_79            IN NUMBER
108760 --When to Account for Payment Option
108761  , p_source_89            IN VARCHAR2
108763  , p_source_90            IN VARCHAR2
108764  , p_source_90_meaning    IN VARCHAR2
108765 --Payment Distribution Amount
108766  , p_source_91            IN NUMBER
108767 --Business Flow Payment Distribution Type
108768  , p_source_92            IN VARCHAR2
108769 --Business Flow Payment Entity Code
108770  , p_source_93            IN VARCHAR2
108771 --Business Flow Payment Distribution Identifier
108772  , p_source_94            IN NUMBER
108773 --Business Flow Payment Identifier
108774  , p_source_95            IN NUMBER
108775 --Payment Distribution Identifier
108776  , p_source_96            IN NUMBER
108777 --Payment Supplier Identifier
108778  , p_source_102            IN NUMBER
108779 --Payment Supplier Site Identifier
108780  , p_source_103            IN NUMBER
108781 --Payment Distribution Reversed Identifier
108782  , p_source_104            IN NUMBER
108783 --Payment Currency Code
108784  , p_source_106            IN VARCHAR2
108785 --Payment Maturity Date
108786  , p_source_107            IN DATE
108787 --Payment Exchange Date
108788  , p_source_110            IN DATE
108789 --Payment Exchange Rate
108790  , p_source_111            IN NUMBER
108791 --Payment Exchange Rate Type
108792  , p_source_112            IN VARCHAR2
108793 --Payment/Maturity Ledger Amount Difference
108794  , p_source_149            IN NUMBER
108795 --Gain or Loss Indicator between Payment and Maturity
108796  , p_source_156            IN VARCHAR2
108797 )
108798 IS
108799 
108800 l_component_type              VARCHAR2(80);
108801 l_component_code              VARCHAR2(30);
108802 l_component_type_code         VARCHAR2(1);
108803 l_component_appl_id           INTEGER;
108804 l_amb_context_code            VARCHAR2(30);
108805 l_entity_code                 VARCHAR2(30);
108806 l_event_class_code            VARCHAR2(30);
108807 l_ae_header_id                NUMBER;
108808 l_event_type_code             VARCHAR2(30);
108809 l_line_definition_code        VARCHAR2(30);
108810 l_line_definition_owner_code  VARCHAR2(1);
108811 --
108812 -- adr variables
108813 l_segment                     VARCHAR2(30);
108814 l_ccid                        NUMBER;
108815 l_adr_transaction_coa_id      NUMBER;
108816 l_adr_accounting_coa_id       NUMBER;
108817 l_adr_flexfield_segment_code  VARCHAR2(30);
108818 l_adr_flex_value_set_id       NUMBER;
108819 l_adr_value_type_code         VARCHAR2(30);
108820 l_adr_value_combination_id    NUMBER;
108821 l_adr_value_segment_code      VARCHAR2(30);
108822 
108823 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
108824 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
108825 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
108826 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
108827 
108828 -- 4262811 Variables ------------------------------------------------------------------------------------------
108829 l_entered_amt_idx             NUMBER;
108830 l_accted_amt_idx              NUMBER;
108831 l_acc_rev_flag                VARCHAR2(1);
108832 l_accrual_line_num            NUMBER;
108833 l_tmp_amt                     NUMBER;
108834 l_acc_rev_natural_side_code   VARCHAR2(1);
108835 
108836 l_num_entries                 NUMBER;
108837 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
108838 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
108839 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
108840 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
108841 l_recog_line_1                NUMBER;
108842 l_recog_line_2                NUMBER;
108843 
108844 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
108845 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
108846 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
108847 
108848 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
108849 
108850 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
108851 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
108852 
108853 ---------------------------------------------------------------------------------------------------------------
108854 
108855 
108856 --
108857 -- bulk performance
108858 --
108859 l_balance_type_code           VARCHAR2(1);
108860 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
108861 l_log_module                  VARCHAR2(240);
108862 
108863 --
108864 -- Upgrade strategy
108865 --
108866 l_actual_upg_option           VARCHAR2(1);
108867 l_enc_upg_option           VARCHAR2(1);
108868 
108869 --
108870 BEGIN
108871 --
108872 IF g_log_enabled THEN
108873       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_187';
108874 END IF;
108875 --
108879          (p_msg      => 'BEGIN of AcctLineType_187'
108876 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108877 
108878       trace
108880          ,p_level    => C_LEVEL_PROCEDURE
108881          ,p_module   => l_log_module);
108882 
108883 END IF;
108884 --
108885 l_component_type             := 'AMB_JLT';
108886 l_component_code             := 'AP_LOSS_PMT_MAT';
108887 l_component_type_code        := 'S';
108888 l_component_appl_id          :=  200;
108889 l_amb_context_code           := 'DEFAULT';
108890 l_entity_code                := 'AP_PAYMENTS';
108891 l_event_class_code           := 'FUTURE DATED PAYMENTS';
108892 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
108893 l_line_definition_owner_code := 'S';
108894 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
108895 --
108896 l_balance_type_code          := 'A';
108897 l_segment                     := NULL;
108898 l_ccid                        := NULL;
108899 l_adr_transaction_coa_id      := NULL;
108900 l_adr_accounting_coa_id       := NULL;
108901 l_adr_flexfield_segment_code  := NULL;
108902 l_adr_flex_value_set_id       := NULL;
108903 l_adr_value_type_code         := NULL;
108904 l_adr_value_combination_id    := NULL;
108905 l_adr_value_segment_code      := NULL;
108906 
108907 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
108908 l_bflow_class_code           := '';    -- 4219869 Business Flow
108909 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
108910 l_budgetary_control_flag     := 'N';
108911 
108912 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
108913 l_bflow_applied_to_amt       := NULL; -- 5132302
108914 l_entered_amt_idx            := NULL;          -- 4262811
108915 l_accted_amt_idx             := NULL;          -- 4262811
108916 l_acc_rev_flag               := NULL;          -- 4262811
108917 l_accrual_line_num           := NULL;          -- 4262811
108918 l_tmp_amt                    := NULL;          -- 4262811
108919 --
108920 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
108921             (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
108922                return;
108923   END IF;
108924   
108925 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
108926     l_balance_type_code <> 'B' THEN
108927 IF (NVL(p_source_89,'
108928 ') =  'ALWAYS_ALWAYS' OR 
108929 NVL(p_source_89,'
108930 ') =  'ISSUE_ISSUE') AND 
108931 p_source_107 IS NOT NULL AND 
108932 NVL(p_source_156,'
108933 ') =  'LOSS' AND 
108934 NVL(p_source_90,'
108935 ') <>  'EXCHANGE RATE VARIANCE' AND 
108936 NVL(p_source_90,'
108937 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
108938 NVL(p_source_90,'
108939 ') <>  'BANK CHARGE' AND 
108940 NVL(p_source_90,'
108941 ') <>  'BANK ERROR' AND 
108942 NVL(p_source_90,'
108943 ') <>  'AWT'
108944  THEN 
108945 
108946    --
108947    XLA_AE_LINES_PKG.SetNewLine;
108948 
108949    p_balance_type_code          := l_balance_type_code;
108950    -- set the flag so later we will know whether the gain loss line needs to be created
108951    
108952    IF(l_balance_type_code = 'A' ) THEN
108953      p_actual_flag :='G';
108954    END IF;
108955 
108956    --
108957    -- bulk performance
108958    --
108959    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
108960                                       p_header_num   => 0); -- 4262811
108961    --
108962    -- set accounting line options
108963    --
108964    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
108965            p_natural_side_code          => 'C'
108966          , p_gain_or_loss_flag          => 'Y'
108967          , p_gl_transfer_mode_code      => 'S'
108968          , p_acct_entry_type_code       => 'A'
108969          , p_switch_side_flag           => 'Y'
108970          , p_merge_duplicate_code       => 'A'
108971          );
108972    --
108973    l_acc_rev_natural_side_code := 'D';  -- 4262811
108974    -- 
108975    --
108976    -- set accounting line type info
108977    --
108978    xla_ae_lines_pkg.SetAcctLineType
108979       (p_component_type             => l_component_type
108980       ,p_event_type_code            => l_event_type_code
108981       ,p_line_definition_owner_code => l_line_definition_owner_code
108982       ,p_line_definition_code       => l_line_definition_code
108983       ,p_accounting_line_code       => l_component_code
108984       ,p_accounting_line_type_code  => l_component_type_code
108985       ,p_accounting_line_appl_id    => l_component_appl_id
108986       ,p_amb_context_code           => l_amb_context_code
108987       ,p_entity_code                => l_entity_code
108988       ,p_event_class_code           => l_event_class_code);
108989    --
108990    -- set accounting class
108991    --
108992    xla_ae_lines_pkg.SetAcctClass(
108993            p_accounting_class_code  => 'LOSS'
108994          , p_ae_header_id           => l_ae_header_id
108995          );
108996 
108997    --
109001                       'LOSS';
108998    -- set rounding class
108999    --
109000    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
109002 
109003    --
109004    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
109005    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
109006    --
109007    -- bulk performance
109008    --
109009    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
109010 
109011    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
109012       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
109013 
109014    -- 4955764
109015    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109016       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
109017 
109018    -- 4458381 Public Sector Enh
109019    
109020    --
109021    -- set accounting attributes for the line type
109022    --
109023    l_entered_amt_idx := 9;
109024    l_accted_amt_idx  := 14;
109025    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
109026    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
109027    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
109028    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
109029    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
109030    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
109034    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
109031    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
109032    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
109033    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
109035    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
109036    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
109037    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
109038    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
109039    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
109040    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
109041    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
109042    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
109043    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
109044    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
109045    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
109046    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
109047    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
109048    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
109049    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
109050    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
109051    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
109052    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
109053    l_rec_acct_attrs.array_num_value(14)  := p_source_149;
109054    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
109055    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
109056    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
109057    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
109058    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
109059    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
109060    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
109061    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
109062    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
109063    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
109064    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
109065    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
109066 
109067    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
109068    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
109069 
109070    ---------------------------------------------------------------------------------------------------------------
109071    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
109072    ---------------------------------------------------------------------------------------------------------------
109073    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
109074 
109075    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
109076    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
109077 
109078    IF xla_accounting_cache_pkg.GetValueChar
109079          (p_source_code         => 'LEDGER_CATEGORY_CODE'
109083    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
109080          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
109081    AND l_bflow_method_code = 'PRIOR_ENTRY'
109082 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
109084          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
109085        )
109086    THEN
109087          xla_ae_lines_pkg.BflowUpgEntry
109088            (p_business_method_code    => l_bflow_method_code
109089            ,p_business_class_code     => l_bflow_class_code
109090            ,p_balance_type            => l_balance_type_code);
109091    ELSE
109092       NULL;
109093 -- No business flow processing for business flow method of NONE.
109094    END IF;
109095 
109096    --
109097    -- call analytical criteria
109098    --
109099    
109100    --
109101    -- call description
109102    --
109103    -- No description or it is inherited.
109104    --
109105    -- call ADRs
109106    -- Bug 4922099
109107    --
109108    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109109         (NVL(l_actual_upg_option, 'N') = 'O') OR
109110         (NVL(l_enc_upg_option, 'N') = 'O')
109111       )
109112    THEN
109113    NULL;
109114    --
109115    --
109116    
109117   l_ccid := AcctDerRule_38(
109118            p_application_id           => p_application_id
109119          , p_ae_header_id             => l_ae_header_id 
109120 , p_source_3 => p_source_3
109121 , p_source_3_meaning => p_source_3_meaning
109122 , p_source_18 => p_source_18
109123 , p_source_26 => p_source_26
109124 , p_source_27 => p_source_27
109125          , x_transaction_coa_id       => l_adr_transaction_coa_id
109126          , x_accounting_coa_id        => l_adr_accounting_coa_id
109127          , x_value_type_code          => l_adr_value_type_code
109128          , p_side                     => 'NA'
109129    );
109130 
109131    xla_ae_lines_pkg.set_ccid(
109132     p_code_combination_id          => l_ccid
109133   , p_value_type_code              => l_adr_value_type_code
109134   , p_transaction_coa_id           => l_adr_transaction_coa_id
109135   , p_accounting_coa_id            => l_adr_accounting_coa_id
109136   , p_adr_code                     => 'AP_REAL_LOSS'
109137   , p_adr_type_code                => 'S'
109138   , p_component_type               => l_component_type
109139   , p_component_code               => l_component_code
109140   , p_component_type_code          => l_component_type_code
109141   , p_component_appl_id            => l_component_appl_id
109142   , p_amb_context_code             => l_amb_context_code
109143   , p_side                         => 'NA'
109144   );
109145 
109146 
109147    l_segment := AcctDerRule_21(
109148            p_application_id           => p_application_id
109149          , p_ae_header_id             => l_ae_header_id 
109150 , p_source_3 => p_source_3
109151 , p_source_3_meaning => p_source_3_meaning
109152 , p_source_18 => p_source_18
109153          , x_transaction_coa_id       => l_adr_transaction_coa_id
109154          , x_accounting_coa_id        => l_adr_accounting_coa_id
109155          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
109156          , x_flex_value_set_id        => l_adr_flex_value_set_id
109157          , x_value_type_code          => l_adr_value_type_code
109158          , x_value_combination_id     => l_adr_value_combination_id
109159          , x_value_segment_code       => l_adr_value_segment_code
109163 
109160          , p_side                     => 'NA'
109161          , p_override_seg_flag        => 'Y'
109162    );
109164    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
109165 
109166       xla_ae_lines_pkg.set_segment(
109167           p_to_segment_code         => 'GL_BALANCING'
109168         , p_segment_value           => l_segment
109169         , p_from_segment_code       => l_adr_value_segment_code
109170         , p_from_combination_id     => l_adr_value_combination_id
109171         , p_value_type_code         => l_adr_value_type_code
109172         , p_transaction_coa_id      => l_adr_transaction_coa_id
109173         , p_accounting_coa_id       => l_adr_accounting_coa_id
109174         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
109175         , p_flex_value_set_id       => l_adr_flex_value_set_id
109176         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
109177         , p_adr_type_code           => 'S'
109178         , p_component_type          => l_component_type
109179         , p_component_code          => l_component_code
109180         , p_component_type_code     => l_component_type_code
109181         , p_component_appl_id       => l_component_appl_id
109182         , p_amb_context_code        => l_amb_context_code
109183         , p_entity_code             => 'AP_PAYMENTS'
109184         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
109185         , p_side                    => 'NA'
109186         );
109187 
109188   END IF;
109189 
109190    l_segment := AcctDerRule_17(
109191            p_application_id           => p_application_id
109192          , p_ae_header_id             => l_ae_header_id 
109193 , p_source_3 => p_source_3
109194 , p_source_3_meaning => p_source_3_meaning
109195 , p_source_26 => p_source_26
109196 , p_source_27 => p_source_27
109197          , x_transaction_coa_id       => l_adr_transaction_coa_id
109198          , x_accounting_coa_id        => l_adr_accounting_coa_id
109199          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
109200          , x_flex_value_set_id        => l_adr_flex_value_set_id
109201          , x_value_type_code          => l_adr_value_type_code
109202          , x_value_combination_id     => l_adr_value_combination_id
109203          , x_value_segment_code       => l_adr_value_segment_code
109204          , p_side                     => 'NA'
109205          , p_override_seg_flag        => 'Y'
109206    );
109207 
109208    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
109209 
109210       xla_ae_lines_pkg.set_segment(
109211           p_to_segment_code         => 'GL_ACCOUNT'
109212         , p_segment_value           => l_segment
109213         , p_from_segment_code       => l_adr_value_segment_code
109214         , p_from_combination_id     => l_adr_value_combination_id
109215         , p_value_type_code         => l_adr_value_type_code
109216         , p_transaction_coa_id      => l_adr_transaction_coa_id
109217         , p_accounting_coa_id       => l_adr_accounting_coa_id
109218         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
109219         , p_flex_value_set_id       => l_adr_flex_value_set_id
109220         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
109221         , p_adr_type_code           => 'S'
109222         , p_component_type          => l_component_type
109223         , p_component_code          => l_component_code
109224         , p_component_type_code     => l_component_type_code
109225         , p_component_appl_id       => l_component_appl_id
109226         , p_amb_context_code        => l_amb_context_code
109227         , p_entity_code             => 'AP_PAYMENTS'
109228         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
109229         , p_side                    => 'NA'
109230         );
109231 
109232   END IF;
109233 
109234    --
109235    --
109236    END IF;
109237    --
109238    -- Bug 4922099
109239    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
109240           (NVL(l_enc_upg_option, 'N') = 'O')
109241         ) AND
109242         (l_bflow_method_code = 'PRIOR_ENTRY')
109243       )
109244    THEN
109245       IF
109246       --
109247       1 = 2
109248       --
109249       THEN
109250       xla_accounting_err_pkg.build_message
109251                                     (p_appli_s_name            => 'XLA'
109252                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109253                                     ,p_token_1                 => 'LINE_NUMBER'
109254                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
109255                                     ,p_token_2                 => 'LINE_TYPE_NAME'
109256                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
109257                                                                              l_component_type
109258                                                                             ,l_component_code
109259                                                                             ,l_component_type_code
109260                                                                             ,l_component_appl_id
109261                                                                             ,l_amb_context_code
109262                                                                             ,l_entity_code
109263                                                                             ,l_event_class_code
109267                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
109264                                                                            )
109265                                     ,p_token_3                 => 'OWNER'
109266                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
109268                                                                           ,p_lookup_code    => l_component_type_code
109269                                                                          )
109270                                     ,p_token_4                 => 'PRODUCT_NAME'
109271                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
109272                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
109273                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
109274                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
109275                                     ,p_ae_header_id            =>  NULL
109276                                        );
109277 
109278         IF (C_LEVEL_ERROR>= g_log_level) THEN
109279                  trace
109280                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109281                       ,p_level    => C_LEVEL_ERROR
109285    END IF;
109282                       ,p_module   => l_log_module);
109283         END IF;
109284       END IF;
109286    --
109287    --
109288    ------------------------------------------------------------------------------------------------
109289    -- 4219869 Business Flow
109290    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
109291    -- Prior Entry.  Currently, the following code is always generated.
109292    ------------------------------------------------------------------------------------------------
109293    XLA_AE_LINES_PKG.ValidateCurrentLine;
109294 
109295    ------------------------------------------------------------------------------------
109296    -- 4219869 Business Flow
109297    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
109298    ------------------------------------------------------------------------------------
109299    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109300 
109301    ----------------------------------------------------------------------------------
109302    -- 4219869 Business Flow
109303    -- Update journal entry status -- Need to generate this within IF <condition>
109304    ----------------------------------------------------------------------------------
109305    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109306          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
109307          ,p_balance_type_code => l_balance_type_code
109308          );
109309 
109310    -------------------------------------------------------------------------------------------
109311    -- 4262811 - Generate the Accrual Reversal lines
109312    -------------------------------------------------------------------------------------------
109313    BEGIN
109314       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
109315                               (g_array_event(p_event_id).array_value_num('header_index'));
109316       IF l_acc_rev_flag IS NULL THEN
109317          l_acc_rev_flag := 'N';
109318       END IF;
109319    EXCEPTION
109320       WHEN OTHERS THEN
109321          l_acc_rev_flag := 'N';
109322    END;
109323    --
109324    IF (l_acc_rev_flag = 'Y') THEN
109325 
109326        -- 4645092  ------------------------------------------------------------------------------
109327        -- To allow MPA report to determine if it should generate report process
109328        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
109329        ------------------------------------------------------------------------------------------
109330 
109331        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
109332        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
109333    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
109334    -- call ADRs
109335    -- Bug 4922099
109336    --
109337    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109338         (NVL(l_actual_upg_option, 'N') = 'O') OR
109339         (NVL(l_enc_upg_option, 'N') = 'O')
109340       )
109341    THEN
109342    NULL;
109343    --
109344    --
109345    
109346   l_ccid := AcctDerRule_38(
109347            p_application_id           => p_application_id
109348          , p_ae_header_id             => l_ae_header_id 
109349 , p_source_3 => p_source_3
109350 , p_source_3_meaning => p_source_3_meaning
109351 , p_source_18 => p_source_18
109352 , p_source_26 => p_source_26
109353 , p_source_27 => p_source_27
109354          , x_transaction_coa_id       => l_adr_transaction_coa_id
109355          , x_accounting_coa_id        => l_adr_accounting_coa_id
109356          , x_value_type_code          => l_adr_value_type_code
109357          , p_side                     => 'NA'
109358    );
109359 
109360    xla_ae_lines_pkg.set_ccid(
109361     p_code_combination_id          => l_ccid
109362   , p_value_type_code              => l_adr_value_type_code
109363   , p_transaction_coa_id           => l_adr_transaction_coa_id
109364   , p_accounting_coa_id            => l_adr_accounting_coa_id
109365   , p_adr_code                     => 'AP_REAL_LOSS'
109366   , p_adr_type_code                => 'S'
109367   , p_component_type               => l_component_type
109368   , p_component_code               => l_component_code
109369   , p_component_type_code          => l_component_type_code
109370   , p_component_appl_id            => l_component_appl_id
109371   , p_amb_context_code             => l_amb_context_code
109372   , p_side                         => 'NA'
109373   );
109374 
109375 
109376    l_segment := AcctDerRule_21(
109377            p_application_id           => p_application_id
109378          , p_ae_header_id             => l_ae_header_id 
109379 , p_source_3 => p_source_3
109380 , p_source_3_meaning => p_source_3_meaning
109381 , p_source_18 => p_source_18
109382          , x_transaction_coa_id       => l_adr_transaction_coa_id
109383          , x_accounting_coa_id        => l_adr_accounting_coa_id
109384          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
109385          , x_flex_value_set_id        => l_adr_flex_value_set_id
109386          , x_value_type_code          => l_adr_value_type_code
109387          , x_value_combination_id     => l_adr_value_combination_id
109391    );
109388          , x_value_segment_code       => l_adr_value_segment_code
109389          , p_side                     => 'NA'
109390          , p_override_seg_flag        => 'Y'
109392 
109393    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
109394 
109395       xla_ae_lines_pkg.set_segment(
109396           p_to_segment_code         => 'GL_BALANCING'
109397         , p_segment_value           => l_segment
109398         , p_from_segment_code       => l_adr_value_segment_code
109399         , p_from_combination_id     => l_adr_value_combination_id
109400         , p_value_type_code         => l_adr_value_type_code
109401         , p_transaction_coa_id      => l_adr_transaction_coa_id
109402         , p_accounting_coa_id       => l_adr_accounting_coa_id
109403         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
109404         , p_flex_value_set_id       => l_adr_flex_value_set_id
109405         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
109406         , p_adr_type_code           => 'S'
109407         , p_component_type          => l_component_type
109408         , p_component_code          => l_component_code
109409         , p_component_type_code     => l_component_type_code
109410         , p_component_appl_id       => l_component_appl_id
109411         , p_amb_context_code        => l_amb_context_code
109412         , p_entity_code             => 'AP_PAYMENTS'
109413         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
109414         , p_side                    => 'NA'
109415         );
109416 
109417   END IF;
109418 
109419    l_segment := AcctDerRule_17(
109420            p_application_id           => p_application_id
109421          , p_ae_header_id             => l_ae_header_id 
109422 , p_source_3 => p_source_3
109423 , p_source_3_meaning => p_source_3_meaning
109424 , p_source_26 => p_source_26
109425 , p_source_27 => p_source_27
109426          , x_transaction_coa_id       => l_adr_transaction_coa_id
109427          , x_accounting_coa_id        => l_adr_accounting_coa_id
109428          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
109429          , x_flex_value_set_id        => l_adr_flex_value_set_id
109430          , x_value_type_code          => l_adr_value_type_code
109431          , x_value_combination_id     => l_adr_value_combination_id
109432          , x_value_segment_code       => l_adr_value_segment_code
109433          , p_side                     => 'NA'
109434          , p_override_seg_flag        => 'Y'
109435    );
109436 
109437    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
109438 
109439       xla_ae_lines_pkg.set_segment(
109440           p_to_segment_code         => 'GL_ACCOUNT'
109441         , p_segment_value           => l_segment
109442         , p_from_segment_code       => l_adr_value_segment_code
109443         , p_from_combination_id     => l_adr_value_combination_id
109444         , p_value_type_code         => l_adr_value_type_code
109445         , p_transaction_coa_id      => l_adr_transaction_coa_id
109446         , p_accounting_coa_id       => l_adr_accounting_coa_id
109447         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
109448         , p_flex_value_set_id       => l_adr_flex_value_set_id
109449         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
109450         , p_adr_type_code           => 'S'
109451         , p_component_type          => l_component_type
109452         , p_component_code          => l_component_code
109453         , p_component_type_code     => l_component_type_code
109454         , p_component_appl_id       => l_component_appl_id
109455         , p_amb_context_code        => l_amb_context_code
109456         , p_entity_code             => 'AP_PAYMENTS'
109457         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
109458         , p_side                    => 'NA'
109459         );
109460 
109461   END IF;
109462 
109463    --
109464    --
109465    END IF;
109466 
109467        --
109468        -- Update the line information that should be overwritten
109469        --
109470        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
109471                                          p_header_num   => 1);
109472        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
109473 
109474        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
109475 
109476        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
109477           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
109478        END IF;
109479 
109480       --
109481       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
109482       --
109483       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
109484           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
109485       ELSE
109486           ---------------------------------------------------------------------------------------------------
109487           -- 4262811a Switch Sign
109488           ---------------------------------------------------------------------------------------------------
109489           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
109490           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109491                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109492           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109493                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109494           -- 5132302
109495           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
109499 
109496                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109497 
109498       END IF;
109500       -- 4955764
109501       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109502       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
109503 
109504 
109505       XLA_AE_LINES_PKG.ValidateCurrentLine;
109506       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109507 
109508       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109509                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
109510                ,p_balance_type_code => l_balance_type_code);
109511 
109512    END IF;
109513 
109514    -----------------------------------------------------------------------------------------
109515    -- 4262811 Multiperiod Accounting
109516    -----------------------------------------------------------------------------------------
109517      -- No MPA option is assigned.
109518 
109519 
109520 END IF;
109521 END IF;
109522 --
109523 
109524 --
109525 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109526    trace
109527       (p_msg      => 'END of AcctLineType_187'
109528       ,p_level    => C_LEVEL_PROCEDURE
109529       ,p_module   => l_log_module);
109530 END IF;
109531 --
109532 EXCEPTION
109533   WHEN xla_exceptions_pkg.application_exception THEN
109534       RAISE;
109535   WHEN OTHERS THEN
109536        xla_exceptions_pkg.raise_message
109537            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_187');
109538 END AcctLineType_187;
109539 --
109540 
109541 ---------------------------------------
109542 --
109543 -- PRIVATE FUNCTION
109544 --         AcctLineType_188
109545 --
109546 ---------------------------------------
109547 PROCEDURE AcctLineType_188 (
109548   p_application_id        IN NUMBER
109549  ,p_event_id              IN NUMBER
109550  ,p_calculate_acctd_flag  IN VARCHAR2
109551  ,p_calculate_g_l_flag    IN VARCHAR2
109552  ,p_actual_flag           IN OUT VARCHAR2
109553  ,p_balance_type_code     OUT VARCHAR2
109554  ,p_gain_or_loss_ref      OUT VARCHAR2
109555  
109556 --Automatic Offsets Value
109557  , p_source_3            IN VARCHAR2
109558  , p_source_3_meaning    IN VARCHAR2
109559 --Invoice Distribution Account
109560  , p_source_18            IN NUMBER
109561 --Internal Realized Loss Account
109562  , p_source_26            IN NUMBER
109563 --Bank Loss Account
109564  , p_source_27            IN NUMBER
109565 --Accounting Reversal Indicator
109566  , p_source_41            IN VARCHAR2
109567 --Distribution Link Type
109568  , p_source_43            IN VARCHAR2
109569 --Invoice Identifier
109570  , p_source_46            IN NUMBER
109571 --Payables Encumbrance Upgrade Credit Account
109572  , p_source_53            IN NUMBER
109573 --Payables Encumbrance Upgrade Credit Amount
109574  , p_source_54            IN NUMBER
109575 --Invoice Currency Code
109576  , p_source_55            IN VARCHAR2
109577 --Payables Encumbrance Upgrade Credit Base Amount
109578  , p_source_56            IN NUMBER
109579 --Payables Encumbrance Upgrade Debit Account
109580  , p_source_57            IN NUMBER
109581 --Payables Encumbrance Upgrade Debit Amount
109582  , p_source_58            IN NUMBER
109583 --Payables Encumbrance Upgrade Debit Base Amount
109584  , p_source_59            IN NUMBER
109585 --Payables Encumbrance Upgrade Option
109586  , p_source_60            IN VARCHAR2
109587 --Deferred Accounting End Date
109588  , p_source_65            IN DATE
109589 --Deferred Accounting Option
109590  , p_source_66            IN VARCHAR2
109591 --Deferred Accounting Start Date
109592  , p_source_67            IN DATE
109593 --Override Accounted Amount Indicator
109594  , p_source_68            IN VARCHAR2
109595  , p_source_68_meaning    IN VARCHAR2
109596 --Invoice Supplier Identifier
109597  , p_source_69            IN NUMBER
109598 --Invoice Supplier Site Identifier
109599  , p_source_70            IN NUMBER
109600 --Third Party Type
109601  , p_source_71            IN VARCHAR2
109602 --Invoice Distribution Tax Line Identifier
109603  , p_source_74            IN NUMBER
109604 --Invoice Distribution Tax Distribution Identifier from Tax
109605  , p_source_75            IN NUMBER
109606 --Invoice Distribution Summary Tax Line Identifier
109607  , p_source_76            IN NUMBER
109608 --Payables Upgrade Credit Encumbrance Type Identifier
109609  , p_source_77            IN NUMBER
109610 --Payables Upgrade Debit Encumbrance Type Identifier
109611  , p_source_78            IN NUMBER
109612 --Business Flow Accounts Payable Application Identifier
109613  , p_source_79            IN NUMBER
109614 --Prepayment Distribution Type
109615  , p_source_118            IN VARCHAR2
109616 --Prepayment Application Distribution Identifier
109617  , p_source_120            IN NUMBER
109618 --Upgrade Encumbrance Credit Account Class
109619  , p_source_125            IN VARCHAR2
109620 --Upgrade Encumbrance Debit Account Class
109621  , p_source_126            IN VARCHAR2
109622 --Prepayment Distribution Amount
109623  , p_source_127            IN NUMBER
109624 --Identifier of the Prepayment Application Reversed
109625  , p_source_129            IN NUMBER
109626 --Invoice Exchange Date
109627  , p_source_136            IN DATE
109628 --Invoice Exchange Rate
109629  , p_source_137            IN NUMBER
109630 --Invoice Exchange Rate Type
109631  , p_source_138            IN VARCHAR2
109632 --Business Flow Prepayment Invoice Distribution Type
109633  , p_source_139            IN VARCHAR2
109634 --Business Flow Prepayment Invoice Entity Code
109635  , p_source_140            IN VARCHAR2
109636 --Business Flow Prepayment Invoice Distribution Identifier
109640 --Prepayment/Invoice Ledger Amount Difference
109637  , p_source_141            IN NUMBER
109638 --Business Flow Prepayment Invoice Identifier
109639  , p_source_142            IN NUMBER
109641  , p_source_150            IN NUMBER
109642 --Gain or Loss Indicator between Prepayment and Invoice
109643  , p_source_157            IN VARCHAR2
109644 )
109645 IS
109646 
109647 l_component_type              VARCHAR2(80);
109648 l_component_code              VARCHAR2(30);
109649 l_component_type_code         VARCHAR2(1);
109650 l_component_appl_id           INTEGER;
109651 l_amb_context_code            VARCHAR2(30);
109652 l_entity_code                 VARCHAR2(30);
109653 l_event_class_code            VARCHAR2(30);
109654 l_ae_header_id                NUMBER;
109655 l_event_type_code             VARCHAR2(30);
109656 l_line_definition_code        VARCHAR2(30);
109657 l_line_definition_owner_code  VARCHAR2(1);
109658 --
109659 -- adr variables
109660 l_segment                     VARCHAR2(30);
109661 l_ccid                        NUMBER;
109662 l_adr_transaction_coa_id      NUMBER;
109663 l_adr_accounting_coa_id       NUMBER;
109664 l_adr_flexfield_segment_code  VARCHAR2(30);
109665 l_adr_flex_value_set_id       NUMBER;
109666 l_adr_value_type_code         VARCHAR2(30);
109667 l_adr_value_combination_id    NUMBER;
109668 l_adr_value_segment_code      VARCHAR2(30);
109669 
109670 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
109671 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
109672 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
109673 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
109674 
109675 -- 4262811 Variables ------------------------------------------------------------------------------------------
109676 l_entered_amt_idx             NUMBER;
109677 l_accted_amt_idx              NUMBER;
109678 l_acc_rev_flag                VARCHAR2(1);
109679 l_accrual_line_num            NUMBER;
109680 l_tmp_amt                     NUMBER;
109681 l_acc_rev_natural_side_code   VARCHAR2(1);
109682 
109683 l_num_entries                 NUMBER;
109684 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
109685 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
109686 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
109687 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
109688 l_recog_line_1                NUMBER;
109689 l_recog_line_2                NUMBER;
109690 
109691 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
109692 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
109693 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
109694 
109695 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
109696 
109697 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
109698 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
109699 
109700 ---------------------------------------------------------------------------------------------------------------
109701 
109702 
109703 --
109704 -- bulk performance
109705 --
109706 l_balance_type_code           VARCHAR2(1);
109707 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
109708 l_log_module                  VARCHAR2(240);
109709 
109710 --
109711 -- Upgrade strategy
109712 --
109713 l_actual_upg_option           VARCHAR2(1);
109714 l_enc_upg_option           VARCHAR2(1);
109715 
109716 --
109717 BEGIN
109718 --
109719 IF g_log_enabled THEN
109720       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_188';
109721 END IF;
109722 --
109723 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109724 
109725       trace
109726          (p_msg      => 'BEGIN of AcctLineType_188'
109727          ,p_level    => C_LEVEL_PROCEDURE
109728          ,p_module   => l_log_module);
109729 
109730 END IF;
109731 --
109732 l_component_type             := 'AMB_JLT';
109733 l_component_code             := 'AP_LOSS_PREPAY_APP';
109734 l_component_type_code        := 'S';
109735 l_component_appl_id          :=  200;
109736 l_amb_context_code           := 'DEFAULT';
109737 l_entity_code                := 'AP_INVOICES';
109738 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
109739 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
109740 l_line_definition_owner_code := 'S';
109741 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
109742 --
109743 l_balance_type_code          := 'A';
109744 l_segment                     := NULL;
109745 l_ccid                        := NULL;
109746 l_adr_transaction_coa_id      := NULL;
109747 l_adr_accounting_coa_id       := NULL;
109748 l_adr_flexfield_segment_code  := NULL;
109749 l_adr_flex_value_set_id       := NULL;
109750 l_adr_value_type_code         := NULL;
109751 l_adr_value_combination_id    := NULL;
109752 l_adr_value_segment_code      := NULL;
109753 
109754 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
109755 l_bflow_class_code           := '';    -- 4219869 Business Flow
109756 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
109757 l_budgetary_control_flag     := 'N';
109758 
109759 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
109760 l_bflow_applied_to_amt       := NULL; -- 5132302
109761 l_entered_amt_idx            := NULL;          -- 4262811
109762 l_accted_amt_idx             := NULL;          -- 4262811
109763 l_acc_rev_flag               := NULL;          -- 4262811
109764 l_accrual_line_num           := NULL;          -- 4262811
109765 l_tmp_amt                    := NULL;          -- 4262811
109766 --
109767 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
109771   
109768             (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
109769                return;
109770   END IF;
109772 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
109773     l_balance_type_code <> 'B' THEN
109774 IF (NVL(p_source_118,'
109775 ') =  'PREPAY APPL' OR 
109776 NVL(p_source_118,'
109777 ') =  'PREPAY APPL NONREC TAX' OR 
109778 NVL(p_source_118,'
109779 ') =  'PREPAY APPL REC TAX') AND 
109780 NVL(p_source_157,'
109781 ') =  'LOSS'
109782  THEN 
109783 
109784    --
109785    XLA_AE_LINES_PKG.SetNewLine;
109786 
109787    p_balance_type_code          := l_balance_type_code;
109788    -- set the flag so later we will know whether the gain loss line needs to be created
109789    
109790    IF(l_balance_type_code = 'A' ) THEN
109791      p_actual_flag :='G';
109792    END IF;
109793 
109794    --
109795    -- bulk performance
109796    --
109797    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
109798                                       p_header_num   => 0); -- 4262811
109799    --
109800    -- set accounting line options
109801    --
109802    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
109803            p_natural_side_code          => 'D'
109804          , p_gain_or_loss_flag          => 'Y'
109805          , p_gl_transfer_mode_code      => 'S'
109806          , p_acct_entry_type_code       => 'A'
109807          , p_switch_side_flag           => 'Y'
109808          , p_merge_duplicate_code       => 'A'
109809          );
109810    --
109811    l_acc_rev_natural_side_code := 'C';  -- 4262811
109812    -- 
109813    --
109814    -- set accounting line type info
109815    --
109816    xla_ae_lines_pkg.SetAcctLineType
109817       (p_component_type             => l_component_type
109818       ,p_event_type_code            => l_event_type_code
109819       ,p_line_definition_owner_code => l_line_definition_owner_code
109820       ,p_line_definition_code       => l_line_definition_code
109821       ,p_accounting_line_code       => l_component_code
109822       ,p_accounting_line_type_code  => l_component_type_code
109823       ,p_accounting_line_appl_id    => l_component_appl_id
109824       ,p_amb_context_code           => l_amb_context_code
109825       ,p_entity_code                => l_entity_code
109826       ,p_event_class_code           => l_event_class_code);
109827    --
109828    -- set accounting class
109829    --
109830    xla_ae_lines_pkg.SetAcctClass(
109831            p_accounting_class_code  => 'LOSS'
109832          , p_ae_header_id           => l_ae_header_id
109833          );
109834 
109835    --
109836    -- set rounding class
109837    --
109838    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
109839                       'LOSS';
109840 
109841    --
109842    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
109843    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
109844    --
109845    -- bulk performance
109846    --
109847    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
109848 
109849    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
109850       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
109851 
109852    -- 4955764
109853    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109854       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
109855 
109856    -- 4458381 Public Sector Enh
109857    
109858    --
109859    -- set accounting attributes for the line type
109860    --
109861    l_entered_amt_idx := 25;
109862    l_accted_amt_idx  := 30;
109863    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
109864    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
109865    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
109866    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
109867    l_rec_acct_attrs.array_num_value(2)  := 
109868 xla_ae_sources_pkg.GetSystemSourceNum(
109869    p_source_code           => 'XLA_EVENT_APPL_ID'
109870  , p_source_type_code      => 'Y'
109871  , p_source_application_id =>  602
109872 );
109873    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
109874    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
109875    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
109876    l_rec_acct_attrs.array_char_value(4)  := 
109877 xla_ae_sources_pkg.GetSystemSourceChar(
109878    p_source_code           => 'XLA_ENTITY_CODE'
109879  , p_source_type_code      => 'Y'
109880  , p_source_application_id =>  602
109881 );
109882    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
109883    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_120);
109884    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
109885    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
109886    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
109887    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
109888    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
109889    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
109890    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
109891    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
109892    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
109893    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
109897    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_120);
109894    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
109895    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
109896    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
109898    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
109899    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
109900    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
109901    l_rec_acct_attrs.array_char_value(14)  := p_source_125;
109902    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
109903    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
109904    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
109905    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
109906    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
109907    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
109908    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
109909    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
109910    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
109911    l_rec_acct_attrs.array_char_value(19)  := p_source_126;
109912    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
109913    l_rec_acct_attrs.array_num_value(20)  := p_source_57;
109914    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
109915    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
109916    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
109917    l_rec_acct_attrs.array_char_value(22)  := p_source_55;
109918    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
109919    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
109920    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
109921    l_rec_acct_attrs.array_char_value(24)  := p_source_60;
109922    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
109923    l_rec_acct_attrs.array_num_value(25)  := p_source_127;
109924    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
109925    l_rec_acct_attrs.array_char_value(26)  := p_source_55;
109926    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
109927    l_rec_acct_attrs.array_date_value(27)  := p_source_136;
109928    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
109929    l_rec_acct_attrs.array_num_value(28)  := p_source_137;
109930    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
109931    l_rec_acct_attrs.array_char_value(29)  := p_source_138;
109932    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
109933    l_rec_acct_attrs.array_num_value(30)  := p_source_150;
109934    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
109935    l_rec_acct_attrs.array_date_value(31)  := p_source_65;
109936    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
109937    l_rec_acct_attrs.array_char_value(32)  := p_source_66;
109938    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
109939    l_rec_acct_attrs.array_date_value(33)  := p_source_67;
109940    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
109941    l_rec_acct_attrs.array_char_value(34)  := p_source_68;
109942    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
109943    l_rec_acct_attrs.array_num_value(35)  := p_source_69;
109944    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
109945    l_rec_acct_attrs.array_num_value(36)  := p_source_70;
109946    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
109947    l_rec_acct_attrs.array_char_value(37)  := p_source_71;
109948    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
109949    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_129);
109950    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
109951    l_rec_acct_attrs.array_char_value(39)  := p_source_43;
109952    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
109953    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
109954    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
109955    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
109956    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
109957    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
109958    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
109959    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
109960    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
109961    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
109962 
109963    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
109964    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
109965 
109966    ---------------------------------------------------------------------------------------------------------------
109967    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
109968    ---------------------------------------------------------------------------------------------------------------
109969    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
109970 
109971    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
109972    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
109973 
109974    IF xla_accounting_cache_pkg.GetValueChar
109975          (p_source_code         => 'LEDGER_CATEGORY_CODE'
109976          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
109977    AND l_bflow_method_code = 'PRIOR_ENTRY'
109978 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
109979    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
109980          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
109981        )
109982    THEN
109983          xla_ae_lines_pkg.BflowUpgEntry
109987    ELSE
109984            (p_business_method_code    => l_bflow_method_code
109985            ,p_business_class_code     => l_bflow_class_code
109986            ,p_balance_type            => l_balance_type_code);
109988       NULL;
109989 -- No business flow processing for business flow method of NONE.
109990    END IF;
109991 
109992    --
109993    -- call analytical criteria
109994    --
109995    
109996    --
109997    -- call description
109998    --
109999    -- No description or it is inherited.
110000    --
110001    -- call ADRs
110002    -- Bug 4922099
110003    --
110004    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110005         (NVL(l_actual_upg_option, 'N') = 'O') OR
110006         (NVL(l_enc_upg_option, 'N') = 'O')
110007       )
110008    THEN
110009    NULL;
110010    --
110011    --
110012    
110013   l_ccid := AcctDerRule_38(
110014            p_application_id           => p_application_id
110015          , p_ae_header_id             => l_ae_header_id 
110016 , p_source_3 => p_source_3
110017 , p_source_3_meaning => p_source_3_meaning
110018 , p_source_18 => p_source_18
110019 , p_source_26 => p_source_26
110020 , p_source_27 => p_source_27
110021          , x_transaction_coa_id       => l_adr_transaction_coa_id
110022          , x_accounting_coa_id        => l_adr_accounting_coa_id
110023          , x_value_type_code          => l_adr_value_type_code
110024          , p_side                     => 'NA'
110025    );
110026 
110027    xla_ae_lines_pkg.set_ccid(
110028     p_code_combination_id          => l_ccid
110029   , p_value_type_code              => l_adr_value_type_code
110030   , p_transaction_coa_id           => l_adr_transaction_coa_id
110031   , p_accounting_coa_id            => l_adr_accounting_coa_id
110032   , p_adr_code                     => 'AP_REAL_LOSS'
110033   , p_adr_type_code                => 'S'
110034   , p_component_type               => l_component_type
110035   , p_component_code               => l_component_code
110036   , p_component_type_code          => l_component_type_code
110037   , p_component_appl_id            => l_component_appl_id
110038   , p_amb_context_code             => l_amb_context_code
110039   , p_side                         => 'NA'
110040   );
110041 
110042 
110043    l_segment := AcctDerRule_21(
110044            p_application_id           => p_application_id
110045          , p_ae_header_id             => l_ae_header_id 
110046 , p_source_3 => p_source_3
110047 , p_source_3_meaning => p_source_3_meaning
110048 , p_source_18 => p_source_18
110049          , x_transaction_coa_id       => l_adr_transaction_coa_id
110050          , x_accounting_coa_id        => l_adr_accounting_coa_id
110051          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
110052          , x_flex_value_set_id        => l_adr_flex_value_set_id
110053          , x_value_type_code          => l_adr_value_type_code
110054          , x_value_combination_id     => l_adr_value_combination_id
110055          , x_value_segment_code       => l_adr_value_segment_code
110056          , p_side                     => 'NA'
110057          , p_override_seg_flag        => 'Y'
110058    );
110059 
110060    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
110061 
110062       xla_ae_lines_pkg.set_segment(
110063           p_to_segment_code         => 'GL_BALANCING'
110064         , p_segment_value           => l_segment
110065         , p_from_segment_code       => l_adr_value_segment_code
110066         , p_from_combination_id     => l_adr_value_combination_id
110067         , p_value_type_code         => l_adr_value_type_code
110068         , p_transaction_coa_id      => l_adr_transaction_coa_id
110069         , p_accounting_coa_id       => l_adr_accounting_coa_id
110070         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
110071         , p_flex_value_set_id       => l_adr_flex_value_set_id
110072         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
110073         , p_adr_type_code           => 'S'
110074         , p_component_type          => l_component_type
110075         , p_component_code          => l_component_code
110076         , p_component_type_code     => l_component_type_code
110077         , p_component_appl_id       => l_component_appl_id
110078         , p_amb_context_code        => l_amb_context_code
110079         , p_entity_code             => 'AP_INVOICES'
110080         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
110081         , p_side                    => 'NA'
110082         );
110083 
110084   END IF;
110085 
110086    l_segment := AcctDerRule_17(
110087            p_application_id           => p_application_id
110088          , p_ae_header_id             => l_ae_header_id 
110089 , p_source_3 => p_source_3
110090 , p_source_3_meaning => p_source_3_meaning
110091 , p_source_26 => p_source_26
110092 , p_source_27 => p_source_27
110093          , x_transaction_coa_id       => l_adr_transaction_coa_id
110094          , x_accounting_coa_id        => l_adr_accounting_coa_id
110095          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
110096          , x_flex_value_set_id        => l_adr_flex_value_set_id
110097          , x_value_type_code          => l_adr_value_type_code
110098          , x_value_combination_id     => l_adr_value_combination_id
110099          , x_value_segment_code       => l_adr_value_segment_code
110100          , p_side                     => 'NA'
110101          , p_override_seg_flag        => 'Y'
110102    );
110103 
110104    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
110105 
110106       xla_ae_lines_pkg.set_segment(
110107           p_to_segment_code         => 'GL_ACCOUNT'
110108         , p_segment_value           => l_segment
110109         , p_from_segment_code       => l_adr_value_segment_code
110110         , p_from_combination_id     => l_adr_value_combination_id
110114         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
110111         , p_value_type_code         => l_adr_value_type_code
110112         , p_transaction_coa_id      => l_adr_transaction_coa_id
110113         , p_accounting_coa_id       => l_adr_accounting_coa_id
110115         , p_flex_value_set_id       => l_adr_flex_value_set_id
110116         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
110117         , p_adr_type_code           => 'S'
110118         , p_component_type          => l_component_type
110119         , p_component_code          => l_component_code
110120         , p_component_type_code     => l_component_type_code
110121         , p_component_appl_id       => l_component_appl_id
110122         , p_amb_context_code        => l_amb_context_code
110123         , p_entity_code             => 'AP_INVOICES'
110124         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
110125         , p_side                    => 'NA'
110126         );
110127 
110128   END IF;
110129 
110130    --
110131    --
110132    END IF;
110133    --
110134    -- Bug 4922099
110135    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
110136           (NVL(l_enc_upg_option, 'N') = 'O')
110137         ) AND
110138         (l_bflow_method_code = 'PRIOR_ENTRY')
110139       )
110140    THEN
110141       IF
110142       --
110143       1 = 2
110144       --
110145       THEN
110146       xla_accounting_err_pkg.build_message
110147                                     (p_appli_s_name            => 'XLA'
110148                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110149                                     ,p_token_1                 => 'LINE_NUMBER'
110150                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
110151                                     ,p_token_2                 => 'LINE_TYPE_NAME'
110152                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
110153                                                                              l_component_type
110154                                                                             ,l_component_code
110155                                                                             ,l_component_type_code
110156                                                                             ,l_component_appl_id
110157                                                                             ,l_amb_context_code
110158                                                                             ,l_entity_code
110159                                                                             ,l_event_class_code
110160                                                                            )
110161                                     ,p_token_3                 => 'OWNER'
110162                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
110163                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
110164                                                                           ,p_lookup_code    => l_component_type_code
110165                                                                          )
110166                                     ,p_token_4                 => 'PRODUCT_NAME'
110167                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
110168                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
110169                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
110170                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
110171                                     ,p_ae_header_id            =>  NULL
110172                                        );
110173 
110174         IF (C_LEVEL_ERROR>= g_log_level) THEN
110175                  trace
110176                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110177                       ,p_level    => C_LEVEL_ERROR
110178                       ,p_module   => l_log_module);
110179         END IF;
110180       END IF;
110181    END IF;
110182    --
110183    --
110184    ------------------------------------------------------------------------------------------------
110185    -- 4219869 Business Flow
110186    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
110187    -- Prior Entry.  Currently, the following code is always generated.
110188    ------------------------------------------------------------------------------------------------
110189    XLA_AE_LINES_PKG.ValidateCurrentLine;
110190 
110191    ------------------------------------------------------------------------------------
110192    -- 4219869 Business Flow
110193    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
110194    ------------------------------------------------------------------------------------
110195    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110196 
110197    ----------------------------------------------------------------------------------
110198    -- 4219869 Business Flow
110199    -- Update journal entry status -- Need to generate this within IF <condition>
110200    ----------------------------------------------------------------------------------
110201    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110202          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
110203          ,p_balance_type_code => l_balance_type_code
110204          );
110205 
110206    -------------------------------------------------------------------------------------------
110207    -- 4262811 - Generate the Accrual Reversal lines
110208    -------------------------------------------------------------------------------------------
110209    BEGIN
110210       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
110214       END IF;
110211                               (g_array_event(p_event_id).array_value_num('header_index'));
110212       IF l_acc_rev_flag IS NULL THEN
110213          l_acc_rev_flag := 'N';
110215    EXCEPTION
110216       WHEN OTHERS THEN
110217          l_acc_rev_flag := 'N';
110218    END;
110219    --
110220    IF (l_acc_rev_flag = 'Y') THEN
110221 
110222        -- 4645092  ------------------------------------------------------------------------------
110223        -- To allow MPA report to determine if it should generate report process
110224        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
110225        ------------------------------------------------------------------------------------------
110226 
110227        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
110228        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
110229    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
110230    -- call ADRs
110231    -- Bug 4922099
110232    --
110233    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110234         (NVL(l_actual_upg_option, 'N') = 'O') OR
110235         (NVL(l_enc_upg_option, 'N') = 'O')
110236       )
110237    THEN
110238    NULL;
110239    --
110240    --
110241    
110242   l_ccid := AcctDerRule_38(
110243            p_application_id           => p_application_id
110244          , p_ae_header_id             => l_ae_header_id 
110245 , p_source_3 => p_source_3
110246 , p_source_3_meaning => p_source_3_meaning
110247 , p_source_18 => p_source_18
110248 , p_source_26 => p_source_26
110249 , p_source_27 => p_source_27
110250          , x_transaction_coa_id       => l_adr_transaction_coa_id
110251          , x_accounting_coa_id        => l_adr_accounting_coa_id
110252          , x_value_type_code          => l_adr_value_type_code
110253          , p_side                     => 'NA'
110254    );
110255 
110256    xla_ae_lines_pkg.set_ccid(
110257     p_code_combination_id          => l_ccid
110258   , p_value_type_code              => l_adr_value_type_code
110259   , p_transaction_coa_id           => l_adr_transaction_coa_id
110260   , p_accounting_coa_id            => l_adr_accounting_coa_id
110261   , p_adr_code                     => 'AP_REAL_LOSS'
110262   , p_adr_type_code                => 'S'
110263   , p_component_type               => l_component_type
110264   , p_component_code               => l_component_code
110265   , p_component_type_code          => l_component_type_code
110266   , p_component_appl_id            => l_component_appl_id
110267   , p_amb_context_code             => l_amb_context_code
110268   , p_side                         => 'NA'
110269   );
110270 
110271 
110272    l_segment := AcctDerRule_21(
110273            p_application_id           => p_application_id
110274          , p_ae_header_id             => l_ae_header_id 
110275 , p_source_3 => p_source_3
110276 , p_source_3_meaning => p_source_3_meaning
110277 , p_source_18 => p_source_18
110278          , x_transaction_coa_id       => l_adr_transaction_coa_id
110279          , x_accounting_coa_id        => l_adr_accounting_coa_id
110280          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
110281          , x_flex_value_set_id        => l_adr_flex_value_set_id
110282          , x_value_type_code          => l_adr_value_type_code
110283          , x_value_combination_id     => l_adr_value_combination_id
110284          , x_value_segment_code       => l_adr_value_segment_code
110285          , p_side                     => 'NA'
110286          , p_override_seg_flag        => 'Y'
110287    );
110288 
110289    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
110290 
110291       xla_ae_lines_pkg.set_segment(
110292           p_to_segment_code         => 'GL_BALANCING'
110293         , p_segment_value           => l_segment
110294         , p_from_segment_code       => l_adr_value_segment_code
110295         , p_from_combination_id     => l_adr_value_combination_id
110296         , p_value_type_code         => l_adr_value_type_code
110297         , p_transaction_coa_id      => l_adr_transaction_coa_id
110298         , p_accounting_coa_id       => l_adr_accounting_coa_id
110299         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
110300         , p_flex_value_set_id       => l_adr_flex_value_set_id
110301         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
110302         , p_adr_type_code           => 'S'
110303         , p_component_type          => l_component_type
110304         , p_component_code          => l_component_code
110305         , p_component_type_code     => l_component_type_code
110306         , p_component_appl_id       => l_component_appl_id
110307         , p_amb_context_code        => l_amb_context_code
110308         , p_entity_code             => 'AP_INVOICES'
110309         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
110310         , p_side                    => 'NA'
110311         );
110312 
110313   END IF;
110314 
110315    l_segment := AcctDerRule_17(
110316            p_application_id           => p_application_id
110317          , p_ae_header_id             => l_ae_header_id 
110318 , p_source_3 => p_source_3
110319 , p_source_3_meaning => p_source_3_meaning
110320 , p_source_26 => p_source_26
110321 , p_source_27 => p_source_27
110322          , x_transaction_coa_id       => l_adr_transaction_coa_id
110323          , x_accounting_coa_id        => l_adr_accounting_coa_id
110324          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
110325          , x_flex_value_set_id        => l_adr_flex_value_set_id
110326          , x_value_type_code          => l_adr_value_type_code
110327          , x_value_combination_id     => l_adr_value_combination_id
110328          , x_value_segment_code       => l_adr_value_segment_code
110329          , p_side                     => 'NA'
110333    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
110330          , p_override_seg_flag        => 'Y'
110331    );
110332 
110334 
110335       xla_ae_lines_pkg.set_segment(
110336           p_to_segment_code         => 'GL_ACCOUNT'
110337         , p_segment_value           => l_segment
110338         , p_from_segment_code       => l_adr_value_segment_code
110339         , p_from_combination_id     => l_adr_value_combination_id
110340         , p_value_type_code         => l_adr_value_type_code
110341         , p_transaction_coa_id      => l_adr_transaction_coa_id
110342         , p_accounting_coa_id       => l_adr_accounting_coa_id
110343         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
110344         , p_flex_value_set_id       => l_adr_flex_value_set_id
110345         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
110346         , p_adr_type_code           => 'S'
110347         , p_component_type          => l_component_type
110348         , p_component_code          => l_component_code
110349         , p_component_type_code     => l_component_type_code
110350         , p_component_appl_id       => l_component_appl_id
110351         , p_amb_context_code        => l_amb_context_code
110352         , p_entity_code             => 'AP_INVOICES'
110353         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
110354         , p_side                    => 'NA'
110355         );
110356 
110357   END IF;
110358 
110359    --
110360    --
110361    END IF;
110362 
110363        --
110364        -- Update the line information that should be overwritten
110365        --
110366        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
110367                                          p_header_num   => 1);
110368        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
110369 
110370        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
110371 
110372        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
110373           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
110374        END IF;
110375 
110376       --
110377       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
110378       --
110379       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
110383           -- 4262811a Switch Sign
110380           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
110381       ELSE
110382           ---------------------------------------------------------------------------------------------------
110384           ---------------------------------------------------------------------------------------------------
110385           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
110386           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110387                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110388           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110389                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110390           -- 5132302
110391           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
110392                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110393 
110394       END IF;
110395 
110396       -- 4955764
110397       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110398       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
110399 
110400 
110401       XLA_AE_LINES_PKG.ValidateCurrentLine;
110402       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110403 
110404       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110405                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
110406                ,p_balance_type_code => l_balance_type_code);
110407 
110408    END IF;
110409 
110410    -----------------------------------------------------------------------------------------
110411    -- 4262811 Multiperiod Accounting
110412    -----------------------------------------------------------------------------------------
110413      -- No MPA option is assigned.
110417 END IF;
110414 
110415 
110416 END IF;
110418 --
110419 
110420 --
110421 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110422    trace
110423       (p_msg      => 'END of AcctLineType_188'
110424       ,p_level    => C_LEVEL_PROCEDURE
110425       ,p_module   => l_log_module);
110426 END IF;
110427 --
110428 EXCEPTION
110429   WHEN xla_exceptions_pkg.application_exception THEN
110430       RAISE;
110431   WHEN OTHERS THEN
110432        xla_exceptions_pkg.raise_message
110433            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_188');
110434 END AcctLineType_188;
110435 --
110436 
110437 ---------------------------------------
110438 --
110439 -- PRIVATE FUNCTION
110440 --         AcctLineType_189
110441 --
110442 ---------------------------------------
110443 PROCEDURE AcctLineType_189 (
110444   p_application_id        IN NUMBER
110445  ,p_event_id              IN NUMBER
110446  ,p_calculate_acctd_flag  IN VARCHAR2
110447  ,p_calculate_g_l_flag    IN VARCHAR2
110448  ,p_actual_flag           IN OUT VARCHAR2
110449  ,p_balance_type_code     OUT VARCHAR2
110450  ,p_gain_or_loss_ref      OUT VARCHAR2
110451  
110452 --Automatic Offsets Value
110453  , p_source_3            IN VARCHAR2
110454  , p_source_3_meaning    IN VARCHAR2
110455 --Invoice Distribution Account
110456  , p_source_18            IN NUMBER
110457 --Internal Realized Loss Account
110458  , p_source_26            IN NUMBER
110459 --Bank Loss Account
110460  , p_source_27            IN NUMBER
110461 --Accounting Reversal Indicator
110462  , p_source_41            IN VARCHAR2
110463 --Distribution Link Type
110464  , p_source_43            IN VARCHAR2
110465 --Override Accounted Amount Indicator
110466  , p_source_68            IN VARCHAR2
110467  , p_source_68_meaning    IN VARCHAR2
110468 --Third Party Type
110469  , p_source_71            IN VARCHAR2
110470 --Invoice Distribution Tax Line Identifier
110471  , p_source_74            IN NUMBER
110472 --Invoice Distribution Tax Distribution Identifier from Tax
110473  , p_source_75            IN NUMBER
110474 --Invoice Distribution Summary Tax Line Identifier
110475  , p_source_76            IN NUMBER
110476 --Business Flow Accounts Payable Application Identifier
110477  , p_source_79            IN NUMBER
110478 --Business Flow Invoice Distribution Type
110479  , p_source_80            IN VARCHAR2
110480 --Business Flow Invoice Entity Code
110481  , p_source_81            IN VARCHAR2
110482 --Business Flow Invoice Distribution Identifier
110483  , p_source_82            IN NUMBER
110484 --Business Flow Invoice Identifier
110485  , p_source_83            IN NUMBER
110486 --When to Account for Payment Option
110487  , p_source_89            IN VARCHAR2
110488 --Payment Distribution Type
110489  , p_source_90            IN VARCHAR2
110490  , p_source_90_meaning    IN VARCHAR2
110491 --Payment Distribution Amount
110492  , p_source_91            IN NUMBER
110493 --Payment Distribution Identifier
110494  , p_source_96            IN NUMBER
110495 --Payment Supplier Identifier
110496  , p_source_102            IN NUMBER
110497 --Payment Supplier Site Identifier
110498  , p_source_103            IN NUMBER
110499 --Payment Distribution Reversed Identifier
110500  , p_source_104            IN NUMBER
110501 --Payment Currency Code
110502  , p_source_106            IN VARCHAR2
110503 --Payment Exchange Date
110504  , p_source_110            IN DATE
110505 --Payment Exchange Rate
110506  , p_source_111            IN NUMBER
110507 --Payment Exchange Rate Type
110508  , p_source_112            IN VARCHAR2
110509 --Payment Type
110510  , p_source_115            IN VARCHAR2
110511  , p_source_115_meaning    IN VARCHAR2
110512 --Invoice/Payment Ledger Amount Difference
110513  , p_source_148            IN NUMBER
110514 --Gain or Loss Indicator between Invoice and Payment
110515  , p_source_153            IN VARCHAR2
110516 )
110517 IS
110518 
110519 l_component_type              VARCHAR2(80);
110520 l_component_code              VARCHAR2(30);
110521 l_component_type_code         VARCHAR2(1);
110522 l_component_appl_id           INTEGER;
110523 l_amb_context_code            VARCHAR2(30);
110524 l_entity_code                 VARCHAR2(30);
110525 l_event_class_code            VARCHAR2(30);
110526 l_ae_header_id                NUMBER;
110527 l_event_type_code             VARCHAR2(30);
110528 l_line_definition_code        VARCHAR2(30);
110529 l_line_definition_owner_code  VARCHAR2(1);
110530 --
110531 -- adr variables
110532 l_segment                     VARCHAR2(30);
110533 l_ccid                        NUMBER;
110534 l_adr_transaction_coa_id      NUMBER;
110535 l_adr_accounting_coa_id       NUMBER;
110541 
110536 l_adr_flexfield_segment_code  VARCHAR2(30);
110537 l_adr_flex_value_set_id       NUMBER;
110538 l_adr_value_type_code         VARCHAR2(30);
110539 l_adr_value_combination_id    NUMBER;
110540 l_adr_value_segment_code      VARCHAR2(30);
110542 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
110543 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
110544 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
110545 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
110546 
110547 -- 4262811 Variables ------------------------------------------------------------------------------------------
110548 l_entered_amt_idx             NUMBER;
110549 l_accted_amt_idx              NUMBER;
110550 l_acc_rev_flag                VARCHAR2(1);
110551 l_accrual_line_num            NUMBER;
110552 l_tmp_amt                     NUMBER;
110553 l_acc_rev_natural_side_code   VARCHAR2(1);
110554 
110555 l_num_entries                 NUMBER;
110556 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
110557 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
110558 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
110559 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
110560 l_recog_line_1                NUMBER;
110561 l_recog_line_2                NUMBER;
110562 
110563 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
110564 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
110565 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
110566 
110567 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
110568 
110569 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
110570 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
110571 
110572 ---------------------------------------------------------------------------------------------------------------
110573 
110574 
110575 --
110576 -- bulk performance
110577 --
110578 l_balance_type_code           VARCHAR2(1);
110579 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
110580 l_log_module                  VARCHAR2(240);
110581 
110582 --
110583 -- Upgrade strategy
110584 --
110585 l_actual_upg_option           VARCHAR2(1);
110586 l_enc_upg_option           VARCHAR2(1);
110587 
110588 --
110589 BEGIN
110590 --
110591 IF g_log_enabled THEN
110592       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_189';
110593 END IF;
110594 --
110595 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110596 
110597       trace
110598          (p_msg      => 'BEGIN of AcctLineType_189'
110599          ,p_level    => C_LEVEL_PROCEDURE
110600          ,p_module   => l_log_module);
110601 
110602 END IF;
110603 --
110604 l_component_type             := 'AMB_JLT';
110605 l_component_code             := 'AP_LOSS_REF';
110606 l_component_type_code        := 'S';
110607 l_component_appl_id          :=  200;
110608 l_amb_context_code           := 'DEFAULT';
110609 l_entity_code                := 'AP_PAYMENTS';
110610 l_event_class_code           := 'REFUNDS';
110611 l_event_type_code            := 'REFUNDS_ALL';
110612 l_line_definition_owner_code := 'S';
110613 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
110614 --
110615 l_balance_type_code          := 'A';
110616 l_segment                     := NULL;
110617 l_ccid                        := NULL;
110618 l_adr_transaction_coa_id      := NULL;
110619 l_adr_accounting_coa_id       := NULL;
110620 l_adr_flexfield_segment_code  := NULL;
110621 l_adr_flex_value_set_id       := NULL;
110622 l_adr_value_type_code         := NULL;
110623 l_adr_value_combination_id    := NULL;
110624 l_adr_value_segment_code      := NULL;
110625 
110626 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
110627 l_bflow_class_code           := '';    -- 4219869 Business Flow
110628 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
110629 l_budgetary_control_flag     := 'N';
110630 
110631 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
110632 l_bflow_applied_to_amt       := NULL; -- 5132302
110633 l_entered_amt_idx            := NULL;          -- 4262811
110634 l_accted_amt_idx             := NULL;          -- 4262811
110635 l_acc_rev_flag               := NULL;          -- 4262811
110636 l_accrual_line_num           := NULL;          -- 4262811
110637 l_tmp_amt                    := NULL;          -- 4262811
110638 --
110639 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
110640             (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
110641                return;
110642   END IF;
110643   
110644 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
110645     l_balance_type_code <> 'B' THEN
110646 IF (NVL(p_source_89,'
110647 ') <>  'CLEAR_CLEAR' AND 
110648 NVL(p_source_89,'
110649 ') <>  'ALWAYS_CLEAR') AND 
110650 NVL(p_source_153,'
110651 ') =  'LOSS' AND 
110652 NVL(p_source_115,'
110653 ') =  'R' AND 
110654 NVL(p_source_90,'
110655 ') <>  'EXCHANGE RATE VARIANCE' AND 
110656 NVL(p_source_90,'
110657 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
110658 NVL(p_source_90,'
110659 ') <>  'BANK CHARGE' AND 
110660 NVL(p_source_90,'
110661 ') <>  'BANK ERROR'
110662  THEN 
110663 
110664    --
110665    XLA_AE_LINES_PKG.SetNewLine;
110666 
110667    p_balance_type_code          := l_balance_type_code;
110668    -- set the flag so later we will know whether the gain loss line needs to be created
110669    
110670    IF(l_balance_type_code = 'A' ) THEN
110674    --
110671      p_actual_flag :='G';
110672    END IF;
110673 
110675    -- bulk performance
110676    --
110677    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
110678                                       p_header_num   => 0); -- 4262811
110679    --
110680    -- set accounting line options
110681    --
110682    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
110683            p_natural_side_code          => 'C'
110684          , p_gain_or_loss_flag          => 'Y'
110685          , p_gl_transfer_mode_code      => 'S'
110686          , p_acct_entry_type_code       => 'A'
110687          , p_switch_side_flag           => 'Y'
110688          , p_merge_duplicate_code       => 'A'
110689          );
110690    --
110691    l_acc_rev_natural_side_code := 'D';  -- 4262811
110692    -- 
110693    --
110694    -- set accounting line type info
110695    --
110699       ,p_line_definition_owner_code => l_line_definition_owner_code
110696    xla_ae_lines_pkg.SetAcctLineType
110697       (p_component_type             => l_component_type
110698       ,p_event_type_code            => l_event_type_code
110700       ,p_line_definition_code       => l_line_definition_code
110701       ,p_accounting_line_code       => l_component_code
110702       ,p_accounting_line_type_code  => l_component_type_code
110703       ,p_accounting_line_appl_id    => l_component_appl_id
110704       ,p_amb_context_code           => l_amb_context_code
110705       ,p_entity_code                => l_entity_code
110706       ,p_event_class_code           => l_event_class_code);
110707    --
110708    -- set accounting class
110709    --
110710    xla_ae_lines_pkg.SetAcctClass(
110711            p_accounting_class_code  => 'LOSS'
110712          , p_ae_header_id           => l_ae_header_id
110713          );
110714 
110715    --
110716    -- set rounding class
110717    --
110718    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
110719                       'LOSS';
110720 
110721    --
110722    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
110723    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
110724    --
110725    -- bulk performance
110726    --
110727    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
110728 
110729    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
110730       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
110731 
110732    -- 4955764
110733    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110734       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
110735 
110736    -- 4458381 Public Sector Enh
110737    
110738    --
110739    -- set accounting attributes for the line type
110740    --
110741    l_entered_amt_idx := 9;
110742    l_accted_amt_idx  := 14;
110743    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
110744    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
110745    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
110746    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
110747    l_rec_acct_attrs.array_num_value(2)  := p_source_79;
110748    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
110749    l_rec_acct_attrs.array_char_value(3)  := p_source_80;
110750    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
110751    l_rec_acct_attrs.array_char_value(4)  := p_source_81;
110752    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
110753    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_82);
110754    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
110755    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_83);
110756    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
110757    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_96);
110758    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
110759    l_rec_acct_attrs.array_char_value(8)  := p_source_43;
110760    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
110761    l_rec_acct_attrs.array_num_value(9)  := p_source_91;
110762    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
110763    l_rec_acct_attrs.array_char_value(10)  := p_source_106;
110764    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
110765    l_rec_acct_attrs.array_date_value(11)  := p_source_110;
110766    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
110767    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
110768    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
110769    l_rec_acct_attrs.array_char_value(13)  := p_source_112;
110770    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
110774    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
110771    l_rec_acct_attrs.array_num_value(14)  := p_source_148;
110772    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
110773    l_rec_acct_attrs.array_char_value(15)  := p_source_68;
110775    l_rec_acct_attrs.array_num_value(16)  := p_source_102;
110776    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
110777    l_rec_acct_attrs.array_num_value(17)  := p_source_103;
110778    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
110779    l_rec_acct_attrs.array_char_value(18)  := p_source_71;
110780    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
110781    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_104);
110782    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
110783    l_rec_acct_attrs.array_char_value(20)  := p_source_43;
110784    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
110785    l_rec_acct_attrs.array_num_value(21)  := p_source_74;
110786    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
110787    l_rec_acct_attrs.array_num_value(22)  := p_source_75;
110788    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
110789    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
110790 
110791    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
110792    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
110793 
110794    ---------------------------------------------------------------------------------------------------------------
110795    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
110796    ---------------------------------------------------------------------------------------------------------------
110797    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
110798 
110799    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110800    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110801 
110802    IF xla_accounting_cache_pkg.GetValueChar
110803          (p_source_code         => 'LEDGER_CATEGORY_CODE'
110804          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
110805    AND l_bflow_method_code = 'PRIOR_ENTRY'
110806 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
110807    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
110808          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
110809        )
110810    THEN
110811          xla_ae_lines_pkg.BflowUpgEntry
110812            (p_business_method_code    => l_bflow_method_code
110813            ,p_business_class_code     => l_bflow_class_code
110817 -- No business flow processing for business flow method of NONE.
110814            ,p_balance_type            => l_balance_type_code);
110815    ELSE
110816       NULL;
110818    END IF;
110819 
110820    --
110821    -- call analytical criteria
110822    --
110823    
110824    --
110825    -- call description
110826    --
110827    -- No description or it is inherited.
110828    --
110829    -- call ADRs
110830    -- Bug 4922099
110831    --
110832    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110833         (NVL(l_actual_upg_option, 'N') = 'O') OR
110834         (NVL(l_enc_upg_option, 'N') = 'O')
110835       )
110836    THEN
110837    NULL;
110838    --
110839    --
110840    
110841   l_ccid := AcctDerRule_38(
110842            p_application_id           => p_application_id
110843          , p_ae_header_id             => l_ae_header_id 
110844 , p_source_3 => p_source_3
110845 , p_source_3_meaning => p_source_3_meaning
110846 , p_source_18 => p_source_18
110847 , p_source_26 => p_source_26
110848 , p_source_27 => p_source_27
110849          , x_transaction_coa_id       => l_adr_transaction_coa_id
110850          , x_accounting_coa_id        => l_adr_accounting_coa_id
110854 
110851          , x_value_type_code          => l_adr_value_type_code
110852          , p_side                     => 'NA'
110853    );
110855    xla_ae_lines_pkg.set_ccid(
110856     p_code_combination_id          => l_ccid
110857   , p_value_type_code              => l_adr_value_type_code
110858   , p_transaction_coa_id           => l_adr_transaction_coa_id
110859   , p_accounting_coa_id            => l_adr_accounting_coa_id
110860   , p_adr_code                     => 'AP_REAL_LOSS'
110861   , p_adr_type_code                => 'S'
110862   , p_component_type               => l_component_type
110863   , p_component_code               => l_component_code
110864   , p_component_type_code          => l_component_type_code
110865   , p_component_appl_id            => l_component_appl_id
110866   , p_amb_context_code             => l_amb_context_code
110867   , p_side                         => 'NA'
110868   );
110869 
110870 
110871    l_segment := AcctDerRule_21(
110872            p_application_id           => p_application_id
110873          , p_ae_header_id             => l_ae_header_id 
110874 , p_source_3 => p_source_3
110875 , p_source_3_meaning => p_source_3_meaning
110876 , p_source_18 => p_source_18
110877          , x_transaction_coa_id       => l_adr_transaction_coa_id
110878          , x_accounting_coa_id        => l_adr_accounting_coa_id
110879          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
110880          , x_flex_value_set_id        => l_adr_flex_value_set_id
110881          , x_value_type_code          => l_adr_value_type_code
110882          , x_value_combination_id     => l_adr_value_combination_id
110883          , x_value_segment_code       => l_adr_value_segment_code
110884          , p_side                     => 'NA'
110885          , p_override_seg_flag        => 'Y'
110886    );
110887 
110888    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
110889 
110890       xla_ae_lines_pkg.set_segment(
110891           p_to_segment_code         => 'GL_BALANCING'
110892         , p_segment_value           => l_segment
110893         , p_from_segment_code       => l_adr_value_segment_code
110894         , p_from_combination_id     => l_adr_value_combination_id
110895         , p_value_type_code         => l_adr_value_type_code
110896         , p_transaction_coa_id      => l_adr_transaction_coa_id
110897         , p_accounting_coa_id       => l_adr_accounting_coa_id
110898         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
110899         , p_flex_value_set_id       => l_adr_flex_value_set_id
110900         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
110901         , p_adr_type_code           => 'S'
110902         , p_component_type          => l_component_type
110903         , p_component_code          => l_component_code
110904         , p_component_type_code     => l_component_type_code
110905         , p_component_appl_id       => l_component_appl_id
110906         , p_amb_context_code        => l_amb_context_code
110907         , p_entity_code             => 'AP_PAYMENTS'
110908         , p_event_class_code        => 'REFUNDS'
110909         , p_side                    => 'NA'
110910         );
110911 
110912   END IF;
110913 
110914    l_segment := AcctDerRule_17(
110915            p_application_id           => p_application_id
110916          , p_ae_header_id             => l_ae_header_id 
110917 , p_source_3 => p_source_3
110918 , p_source_3_meaning => p_source_3_meaning
110919 , p_source_26 => p_source_26
110920 , p_source_27 => p_source_27
110921          , x_transaction_coa_id       => l_adr_transaction_coa_id
110922          , x_accounting_coa_id        => l_adr_accounting_coa_id
110923          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
110924          , x_flex_value_set_id        => l_adr_flex_value_set_id
110925          , x_value_type_code          => l_adr_value_type_code
110926          , x_value_combination_id     => l_adr_value_combination_id
110927          , x_value_segment_code       => l_adr_value_segment_code
110928          , p_side                     => 'NA'
110929          , p_override_seg_flag        => 'Y'
110930    );
110931 
110932    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
110933 
110934       xla_ae_lines_pkg.set_segment(
110935           p_to_segment_code         => 'GL_ACCOUNT'
110936         , p_segment_value           => l_segment
110937         , p_from_segment_code       => l_adr_value_segment_code
110938         , p_from_combination_id     => l_adr_value_combination_id
110939         , p_value_type_code         => l_adr_value_type_code
110940         , p_transaction_coa_id      => l_adr_transaction_coa_id
110941         , p_accounting_coa_id       => l_adr_accounting_coa_id
110942         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
110943         , p_flex_value_set_id       => l_adr_flex_value_set_id
110944         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
110945         , p_adr_type_code           => 'S'
110946         , p_component_type          => l_component_type
110947         , p_component_code          => l_component_code
110948         , p_component_type_code     => l_component_type_code
110949         , p_component_appl_id       => l_component_appl_id
110950         , p_amb_context_code        => l_amb_context_code
110951         , p_entity_code             => 'AP_PAYMENTS'
110952         , p_event_class_code        => 'REFUNDS'
110953         , p_side                    => 'NA'
110954         );
110955 
110956   END IF;
110957 
110958    --
110959    --
110960    END IF;
110961    --
110962    -- Bug 4922099
110968    THEN
110963    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
110964           (NVL(l_enc_upg_option, 'N') = 'O')
110965         ) AND
110966         (l_bflow_method_code = 'PRIOR_ENTRY')
110967       )
110969       IF
110970       --
110971       1 = 2
110972       --
110973       THEN
110974       xla_accounting_err_pkg.build_message
110975                                     (p_appli_s_name            => 'XLA'
110976                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110977                                     ,p_token_1                 => 'LINE_NUMBER'
110978                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
110979                                     ,p_token_2                 => 'LINE_TYPE_NAME'
110980                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
110981                                                                              l_component_type
110982                                                                             ,l_component_code
110983                                                                             ,l_component_type_code
110984                                                                             ,l_component_appl_id
110985                                                                             ,l_amb_context_code
110986                                                                             ,l_entity_code
110987                                                                             ,l_event_class_code
110988                                                                            )
110989                                     ,p_token_3                 => 'OWNER'
110990                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
110991                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
110992                                                                           ,p_lookup_code    => l_component_type_code
110993                                                                          )
110994                                     ,p_token_4                 => 'PRODUCT_NAME'
110995                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
110996                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
110997                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
110998                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
110999                                     ,p_ae_header_id            =>  NULL
111000                                        );
111001 
111002         IF (C_LEVEL_ERROR>= g_log_level) THEN
111003                  trace
111004                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111005                       ,p_level    => C_LEVEL_ERROR
111006                       ,p_module   => l_log_module);
111007         END IF;
111008       END IF;
111009    END IF;
111010    --
111011    --
111012    ------------------------------------------------------------------------------------------------
111013    -- 4219869 Business Flow
111014    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
111015    -- Prior Entry.  Currently, the following code is always generated.
111016    ------------------------------------------------------------------------------------------------
111017    XLA_AE_LINES_PKG.ValidateCurrentLine;
111018 
111019    ------------------------------------------------------------------------------------
111020    -- 4219869 Business Flow
111021    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
111022    ------------------------------------------------------------------------------------
111023    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111024 
111025    ----------------------------------------------------------------------------------
111026    -- 4219869 Business Flow
111027    -- Update journal entry status -- Need to generate this within IF <condition>
111028    ----------------------------------------------------------------------------------
111029    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111030          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
111031          ,p_balance_type_code => l_balance_type_code
111032          );
111033 
111034    -------------------------------------------------------------------------------------------
111035    -- 4262811 - Generate the Accrual Reversal lines
111036    -------------------------------------------------------------------------------------------
111037    BEGIN
111038       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
111039                               (g_array_event(p_event_id).array_value_num('header_index'));
111040       IF l_acc_rev_flag IS NULL THEN
111041          l_acc_rev_flag := 'N';
111042       END IF;
111043    EXCEPTION
111044       WHEN OTHERS THEN
111045          l_acc_rev_flag := 'N';
111046    END;
111047    --
111048    IF (l_acc_rev_flag = 'Y') THEN
111049 
111050        -- 4645092  ------------------------------------------------------------------------------
111054 
111051        -- To allow MPA report to determine if it should generate report process
111052        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
111053        ------------------------------------------------------------------------------------------
111055        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
111056        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
111057    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
111058    -- call ADRs
111059    -- Bug 4922099
111060    --
111061    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111062         (NVL(l_actual_upg_option, 'N') = 'O') OR
111063         (NVL(l_enc_upg_option, 'N') = 'O')
111064       )
111065    THEN
111066    NULL;
111067    --
111068    --
111069    
111070   l_ccid := AcctDerRule_38(
111071            p_application_id           => p_application_id
111072          , p_ae_header_id             => l_ae_header_id 
111073 , p_source_3 => p_source_3
111074 , p_source_3_meaning => p_source_3_meaning
111075 , p_source_18 => p_source_18
111076 , p_source_26 => p_source_26
111077 , p_source_27 => p_source_27
111078          , x_transaction_coa_id       => l_adr_transaction_coa_id
111079          , x_accounting_coa_id        => l_adr_accounting_coa_id
111080          , x_value_type_code          => l_adr_value_type_code
111081          , p_side                     => 'NA'
111082    );
111083 
111084    xla_ae_lines_pkg.set_ccid(
111085     p_code_combination_id          => l_ccid
111089   , p_adr_code                     => 'AP_REAL_LOSS'
111086   , p_value_type_code              => l_adr_value_type_code
111087   , p_transaction_coa_id           => l_adr_transaction_coa_id
111088   , p_accounting_coa_id            => l_adr_accounting_coa_id
111090   , p_adr_type_code                => 'S'
111091   , p_component_type               => l_component_type
111092   , p_component_code               => l_component_code
111093   , p_component_type_code          => l_component_type_code
111094   , p_component_appl_id            => l_component_appl_id
111095   , p_amb_context_code             => l_amb_context_code
111096   , p_side                         => 'NA'
111097   );
111098 
111099 
111100    l_segment := AcctDerRule_21(
111101            p_application_id           => p_application_id
111102          , p_ae_header_id             => l_ae_header_id 
111103 , p_source_3 => p_source_3
111104 , p_source_3_meaning => p_source_3_meaning
111105 , p_source_18 => p_source_18
111106          , x_transaction_coa_id       => l_adr_transaction_coa_id
111107          , x_accounting_coa_id        => l_adr_accounting_coa_id
111108          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
111109          , x_flex_value_set_id        => l_adr_flex_value_set_id
111110          , x_value_type_code          => l_adr_value_type_code
111111          , x_value_combination_id     => l_adr_value_combination_id
111112          , x_value_segment_code       => l_adr_value_segment_code
111113          , p_side                     => 'NA'
111114          , p_override_seg_flag        => 'Y'
111115    );
111116 
111117    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
111118 
111119       xla_ae_lines_pkg.set_segment(
111120           p_to_segment_code         => 'GL_BALANCING'
111121         , p_segment_value           => l_segment
111122         , p_from_segment_code       => l_adr_value_segment_code
111123         , p_from_combination_id     => l_adr_value_combination_id
111124         , p_value_type_code         => l_adr_value_type_code
111125         , p_transaction_coa_id      => l_adr_transaction_coa_id
111126         , p_accounting_coa_id       => l_adr_accounting_coa_id
111127         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
111128         , p_flex_value_set_id       => l_adr_flex_value_set_id
111129         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
111130         , p_adr_type_code           => 'S'
111131         , p_component_type          => l_component_type
111132         , p_component_code          => l_component_code
111133         , p_component_type_code     => l_component_type_code
111134         , p_component_appl_id       => l_component_appl_id
111135         , p_amb_context_code        => l_amb_context_code
111136         , p_entity_code             => 'AP_PAYMENTS'
111137         , p_event_class_code        => 'REFUNDS'
111138         , p_side                    => 'NA'
111139         );
111140 
111141   END IF;
111142 
111143    l_segment := AcctDerRule_17(
111144            p_application_id           => p_application_id
111145          , p_ae_header_id             => l_ae_header_id 
111146 , p_source_3 => p_source_3
111147 , p_source_3_meaning => p_source_3_meaning
111148 , p_source_26 => p_source_26
111149 , p_source_27 => p_source_27
111150          , x_transaction_coa_id       => l_adr_transaction_coa_id
111151          , x_accounting_coa_id        => l_adr_accounting_coa_id
111152          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
111156          , x_value_segment_code       => l_adr_value_segment_code
111153          , x_flex_value_set_id        => l_adr_flex_value_set_id
111154          , x_value_type_code          => l_adr_value_type_code
111155          , x_value_combination_id     => l_adr_value_combination_id
111157          , p_side                     => 'NA'
111158          , p_override_seg_flag        => 'Y'
111159    );
111160 
111161    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
111162 
111163       xla_ae_lines_pkg.set_segment(
111164           p_to_segment_code         => 'GL_ACCOUNT'
111165         , p_segment_value           => l_segment
111166         , p_from_segment_code       => l_adr_value_segment_code
111167         , p_from_combination_id     => l_adr_value_combination_id
111168         , p_value_type_code         => l_adr_value_type_code
111169         , p_transaction_coa_id      => l_adr_transaction_coa_id
111170         , p_accounting_coa_id       => l_adr_accounting_coa_id
111171         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
111172         , p_flex_value_set_id       => l_adr_flex_value_set_id
111173         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
111174         , p_adr_type_code           => 'S'
111175         , p_component_type          => l_component_type
111176         , p_component_code          => l_component_code
111177         , p_component_type_code     => l_component_type_code
111178         , p_component_appl_id       => l_component_appl_id
111179         , p_amb_context_code        => l_amb_context_code
111180         , p_entity_code             => 'AP_PAYMENTS'
111181         , p_event_class_code        => 'REFUNDS'
111182         , p_side                    => 'NA'
111183         );
111184 
111185   END IF;
111186 
111187    --
111188    --
111189    END IF;
111190 
111191        --
111192        -- Update the line information that should be overwritten
111193        --
111194        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
111195                                          p_header_num   => 1);
111196        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
111197 
111198        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
111199 
111200        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
111201           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
111202        END IF;
111203 
111204       --
111205       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
111206       --
111207       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
111208           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
111209       ELSE
111210           ---------------------------------------------------------------------------------------------------
111211           -- 4262811a Switch Sign
111212           ---------------------------------------------------------------------------------------------------
111213           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
111214           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
111218           -- 5132302
111215                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111216           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
111217                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111219           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
111220                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111221 
111222       END IF;
111223 
111224       -- 4955764
111225       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111226       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
111227 
111228 
111229       XLA_AE_LINES_PKG.ValidateCurrentLine;
111230       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111231 
111232       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111233                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
111234                ,p_balance_type_code => l_balance_type_code);
111235 
111236    END IF;
111237 
111238    -----------------------------------------------------------------------------------------
111239    -- 4262811 Multiperiod Accounting
111240    -----------------------------------------------------------------------------------------
111241      -- No MPA option is assigned.
111242 
111243 
111244 END IF;
111245 END IF;
111246 --
111247 
111248 --
111252       ,p_level    => C_LEVEL_PROCEDURE
111249 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
111250    trace
111251       (p_msg      => 'END of AcctLineType_189'
111253       ,p_module   => l_log_module);
111254 END IF;
111255 --
111256 EXCEPTION
111257   WHEN xla_exceptions_pkg.application_exception THEN
111258       RAISE;
111259   WHEN OTHERS THEN
111260        xla_exceptions_pkg.raise_message
111261            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_189');
111262 END AcctLineType_189;
111263 --
111264 
111265 ---------------------------------------
111266 --
111267 -- PRIVATE FUNCTION
111268 --         AcctLineType_190
111269 --
111270 ---------------------------------------
111271 PROCEDURE AcctLineType_190 (
111272   p_application_id        IN NUMBER
111273  ,p_event_id              IN NUMBER
111274  ,p_calculate_acctd_flag  IN VARCHAR2
111275  ,p_calculate_g_l_flag    IN VARCHAR2
111276  ,p_actual_flag           IN OUT VARCHAR2
111277  ,p_balance_type_code     OUT VARCHAR2
111278  ,p_gain_or_loss_ref      OUT VARCHAR2
111279  
111280 --Automatic Offsets Value
111281  , p_source_3            IN VARCHAR2
111282  , p_source_3_meaning    IN VARCHAR2
111283 --Invoice Distribution Account
111284  , p_source_18            IN NUMBER
111285 --Payables Options Rounding Account
111286  , p_source_37            IN NUMBER
111287 --Accounting Reversal Indicator
111288  , p_source_41            IN VARCHAR2
111289 --Distribution Link Type
111290  , p_source_43            IN VARCHAR2
111291 --Override Accounted Amount Indicator
111292  , p_source_68            IN VARCHAR2
111293  , p_source_68_meaning    IN VARCHAR2
111294 --Third Party Type
111295  , p_source_71            IN VARCHAR2
111296 --Invoice Distribution Tax Line Identifier
111297  , p_source_74            IN NUMBER
111298 --Invoice Distribution Summary Tax Line Identifier
111299  , p_source_76            IN NUMBER
111300 --Business Flow Accounts Payable Application Identifier
111301  , p_source_79            IN NUMBER
111302 --When to Account for Payment Option
111303  , p_source_89            IN VARCHAR2
111304 --Payment Distribution Type
111305  , p_source_90            IN VARCHAR2
111306  , p_source_90_meaning    IN VARCHAR2
111307 --Payment Distribution Amount
111308  , p_source_91            IN NUMBER
111309 --Business Flow Payment Distribution Type
111310  , p_source_92            IN VARCHAR2
111311 --Business Flow Payment Entity Code
111312  , p_source_93            IN VARCHAR2
111313 --Business Flow Payment Distribution Identifier
111314  , p_source_94            IN NUMBER
111315 --Business Flow Payment Identifier
111316  , p_source_95            IN NUMBER
111317 --Payment Distribution Identifier
111318  , p_source_96            IN NUMBER
111319 --Cleared Exchange Date
111320  , p_source_98            IN DATE
111321 --Cleared Exchange Rate
111322  , p_source_99            IN NUMBER
111323 --Cleared Exchange Rate Type
111324  , p_source_100            IN VARCHAR2
111325 --Payment Supplier Identifier
111326  , p_source_102            IN NUMBER
111327 --Payment Supplier Site Identifier
111328  , p_source_103            IN NUMBER
111329 --Payment Distribution Reversed Identifier
111330  , p_source_104            IN NUMBER
111331 --Payment Currency Code
111332  , p_source_106            IN VARCHAR2
111333 --Payment Maturity Date
111334  , p_source_107            IN DATE
111335 --Payment Distribution (Matured Rate) Ledger Amount
111336  , p_source_114            IN NUMBER
111337 )
111338 IS
111339 
111340 l_component_type              VARCHAR2(80);
111341 l_component_code              VARCHAR2(30);
111342 l_component_type_code         VARCHAR2(1);
111343 l_component_appl_id           INTEGER;
111344 l_amb_context_code            VARCHAR2(30);
111345 l_entity_code                 VARCHAR2(30);
111346 l_event_class_code            VARCHAR2(30);
111347 l_ae_header_id                NUMBER;
111348 l_event_type_code             VARCHAR2(30);
111349 l_line_definition_code        VARCHAR2(30);
111350 l_line_definition_owner_code  VARCHAR2(1);
111351 --
111352 -- adr variables
111353 l_segment                     VARCHAR2(30);
111354 l_ccid                        NUMBER;
111355 l_adr_transaction_coa_id      NUMBER;
111356 l_adr_accounting_coa_id       NUMBER;
111357 l_adr_flexfield_segment_code  VARCHAR2(30);
111358 l_adr_flex_value_set_id       NUMBER;
111359 l_adr_value_type_code         VARCHAR2(30);
111360 l_adr_value_combination_id    NUMBER;
111361 l_adr_value_segment_code      VARCHAR2(30);
111362 
111363 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
111364 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
111365 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
111366 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
111367 
111368 -- 4262811 Variables ------------------------------------------------------------------------------------------
111369 l_entered_amt_idx             NUMBER;
111370 l_accted_amt_idx              NUMBER;
111371 l_acc_rev_flag                VARCHAR2(1);
111372 l_accrual_line_num            NUMBER;
111373 l_tmp_amt                     NUMBER;
111377 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
111374 l_acc_rev_natural_side_code   VARCHAR2(1);
111375 
111376 l_num_entries                 NUMBER;
111378 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
111379 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
111380 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
111381 l_recog_line_1                NUMBER;
111382 l_recog_line_2                NUMBER;
111383 
111384 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
111385 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
111386 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
111387 
111388 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
111389 
111390 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
111391 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
111392 
111393 ---------------------------------------------------------------------------------------------------------------
111394 
111395 
111396 --
111397 -- bulk performance
111398 --
111399 l_balance_type_code           VARCHAR2(1);
111400 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
111401 l_log_module                  VARCHAR2(240);
111402 
111403 --
111404 -- Upgrade strategy
111405 --
111406 l_actual_upg_option           VARCHAR2(1);
111407 l_enc_upg_option           VARCHAR2(1);
111408 
111409 --
111410 BEGIN
111411 --
111412 IF g_log_enabled THEN
111413       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_190';
111414 END IF;
111415 --
111416 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
111417 
111418       trace
111419          (p_msg      => 'BEGIN of AcctLineType_190'
111420          ,p_level    => C_LEVEL_PROCEDURE
111421          ,p_module   => l_log_module);
111422 
111423 END IF;
111424 --
111425 l_component_type             := 'AMB_JLT';
111426 l_component_code             := 'AP_MAT_CLR_ROUNDING_CLEAR';
111427 l_component_type_code        := 'S';
111428 l_component_appl_id          :=  200;
111429 l_amb_context_code           := 'DEFAULT';
111430 l_entity_code                := 'AP_PAYMENTS';
111431 l_event_class_code           := 'RECONCILED PAYMENTS';
111432 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
111433 l_line_definition_owner_code := 'S';
111434 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
111435 --
111436 l_balance_type_code          := 'A';
111437 l_segment                     := NULL;
111438 l_ccid                        := NULL;
111439 l_adr_transaction_coa_id      := NULL;
111440 l_adr_accounting_coa_id       := NULL;
111441 l_adr_flexfield_segment_code  := NULL;
111442 l_adr_flex_value_set_id       := NULL;
111443 l_adr_value_type_code         := NULL;
111444 l_adr_value_combination_id    := NULL;
111445 l_adr_value_segment_code      := NULL;
111446 
111447 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
111448 l_bflow_class_code           := '';    -- 4219869 Business Flow
111449 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
111450 l_budgetary_control_flag     := 'N';
111451 
111452 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
111453 l_bflow_applied_to_amt       := NULL; -- 5132302
111454 l_entered_amt_idx            := NULL;          -- 4262811
111455 l_accted_amt_idx             := NULL;          -- 4262811
111456 l_acc_rev_flag               := NULL;          -- 4262811
111457 l_accrual_line_num           := NULL;          -- 4262811
111458 l_tmp_amt                    := NULL;          -- 4262811
111459 --
111460  
111461 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
111462     l_balance_type_code <> 'B' THEN
111463 IF (NVL(p_source_89,'
111464 ') =  'ALWAYS_ALWAYS' OR 
111465 NVL(p_source_89,'
111466 ') =  'ALWAYS_CLEAR') AND 
111467 NVL(p_source_90,'
111468 ') =  'MATURITY TO CLEARING ROUNDING' AND 
111469 p_source_107 IS NOT NULL 
111470  THEN 
111471 
111472    --
111473    XLA_AE_LINES_PKG.SetNewLine;
111474 
111475    p_balance_type_code          := l_balance_type_code;
111476    -- set the flag so later we will know whether the gain loss line needs to be created
111477    
111478    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
111479      p_actual_flag :='A';
111480    END IF;
111481 
111482    --
111483    -- bulk performance
111484    --
111485    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
111486                                       p_header_num   => 0); -- 4262811
111487    --
111488    -- set accounting line options
111489    --
111490    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
111491            p_natural_side_code          => 'D'
111492          , p_gain_or_loss_flag          => 'N'
111493          , p_gl_transfer_mode_code      => 'S'
111494          , p_acct_entry_type_code       => 'A'
111495          , p_switch_side_flag           => 'Y'
111496          , p_merge_duplicate_code       => 'A'
111497          );
111498    --
111499    l_acc_rev_natural_side_code := 'C';  -- 4262811
111500    -- 
111501    --
111502    -- set accounting line type info
111503    --
111504    xla_ae_lines_pkg.SetAcctLineType
111508       ,p_line_definition_code       => l_line_definition_code
111505       (p_component_type             => l_component_type
111506       ,p_event_type_code            => l_event_type_code
111507       ,p_line_definition_owner_code => l_line_definition_owner_code
111509       ,p_accounting_line_code       => l_component_code
111510       ,p_accounting_line_type_code  => l_component_type_code
111511       ,p_accounting_line_appl_id    => l_component_appl_id
111512       ,p_amb_context_code           => l_amb_context_code
111513       ,p_entity_code                => l_entity_code
111514       ,p_event_class_code           => l_event_class_code);
111515    --
111516    -- set accounting class
111517    --
111518    xla_ae_lines_pkg.SetAcctClass(
111519            p_accounting_class_code  => 'ROUNDING'
111520          , p_ae_header_id           => l_ae_header_id
111521          );
111522 
111523    --
111524    -- set rounding class
111525    --
111526    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
111527                       'ROUNDING';
111528 
111529    --
111530    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
111531    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
111532    --
111533    -- bulk performance
111534    --
111538       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
111535    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
111536 
111537    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
111539 
111540    -- 4955764
111541    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111542       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
111543 
111544    -- 4458381 Public Sector Enh
111545    
111546    --
111547    -- set accounting attributes for the line type
111548    --
111549    l_entered_amt_idx := 10;
111550    l_accted_amt_idx  := 15;
111551    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
111552    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
111553    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
111554    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
111555    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
111556    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
111557    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
111558    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
111559    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
111560    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
111561    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
111562    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
111563    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
111564    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
111565    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
111566    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
111567    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
111568    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
111569    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
111570    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
111571    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
111572    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
111573    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
111574    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
111575    l_rec_acct_attrs.array_date_value(12)  := p_source_98;
111576    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
111577    l_rec_acct_attrs.array_num_value(13)  := p_source_99;
111578    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
111579    l_rec_acct_attrs.array_char_value(14)  := p_source_100;
111580    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
111581    l_rec_acct_attrs.array_num_value(15)  := p_source_114;
111582    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
111583    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
111584    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
111585    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
111586    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
111587    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
111591    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
111588    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
111589    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
111590    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
111592    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
111593    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
111594    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
111595    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
111596    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
111597    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
111598    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
111599    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
111600 
111601    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
111602    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
111603 
111604    ---------------------------------------------------------------------------------------------------------------
111605    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
111606    ---------------------------------------------------------------------------------------------------------------
111607    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
111608 
111609    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111610    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111611 
111612    IF xla_accounting_cache_pkg.GetValueChar
111613          (p_source_code         => 'LEDGER_CATEGORY_CODE'
111614          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
111615    AND l_bflow_method_code = 'PRIOR_ENTRY'
111616 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
111617    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
111618          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
111619        )
111620    THEN
111621          xla_ae_lines_pkg.BflowUpgEntry
111622            (p_business_method_code    => l_bflow_method_code
111623            ,p_business_class_code     => l_bflow_class_code
111624            ,p_balance_type            => l_balance_type_code);
111625    ELSE
111626       NULL;
111627 -- No business flow processing for business flow method of NONE.
111628    END IF;
111629 
111630    --
111631    -- call analytical criteria
111632    --
111633    
111634    --
111635    -- call description
111636    --
111637    -- No description or it is inherited.
111638    --
111639    -- call ADRs
111640    -- Bug 4922099
111641    --
111642    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111643         (NVL(l_actual_upg_option, 'N') = 'O') OR
111644         (NVL(l_enc_upg_option, 'N') = 'O')
111645       )
111646    THEN
111647    NULL;
111648    --
111649    --
111650    
111651   l_ccid := AcctDerRule_40(
111652            p_application_id           => p_application_id
111653          , p_ae_header_id             => l_ae_header_id 
111654 , p_source_3 => p_source_3
111655 , p_source_3_meaning => p_source_3_meaning
111656 , p_source_18 => p_source_18
111657 , p_source_37 => p_source_37
111658          , x_transaction_coa_id       => l_adr_transaction_coa_id
111659          , x_accounting_coa_id        => l_adr_accounting_coa_id
111660          , x_value_type_code          => l_adr_value_type_code
111664    xla_ae_lines_pkg.set_ccid(
111661          , p_side                     => 'NA'
111662    );
111663 
111665     p_code_combination_id          => l_ccid
111666   , p_value_type_code              => l_adr_value_type_code
111670   , p_adr_type_code                => 'S'
111667   , p_transaction_coa_id           => l_adr_transaction_coa_id
111668   , p_accounting_coa_id            => l_adr_accounting_coa_id
111669   , p_adr_code                     => 'AP_ROUNDING'
111671   , p_component_type               => l_component_type
111672   , p_component_code               => l_component_code
111673   , p_component_type_code          => l_component_type_code
111674   , p_component_appl_id            => l_component_appl_id
111675   , p_amb_context_code             => l_amb_context_code
111676   , p_side                         => 'NA'
111677   );
111678 
111679 
111680    --
111681    --
111682    END IF;
111683    --
111684    -- Bug 4922099
111685    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
111686           (NVL(l_enc_upg_option, 'N') = 'O')
111687         ) AND
111688         (l_bflow_method_code = 'PRIOR_ENTRY')
111689       )
111690    THEN
111691       IF
111692       --
111693       1 = 2
111694       --
111695       THEN
111696       xla_accounting_err_pkg.build_message
111697                                     (p_appli_s_name            => 'XLA'
111698                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111699                                     ,p_token_1                 => 'LINE_NUMBER'
111700                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
111701                                     ,p_token_2                 => 'LINE_TYPE_NAME'
111702                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
111703                                                                              l_component_type
111704                                                                             ,l_component_code
111705                                                                             ,l_component_type_code
111706                                                                             ,l_component_appl_id
111707                                                                             ,l_amb_context_code
111708                                                                             ,l_entity_code
111709                                                                             ,l_event_class_code
111710                                                                            )
111711                                     ,p_token_3                 => 'OWNER'
111712                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
111713                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
111714                                                                           ,p_lookup_code    => l_component_type_code
111715                                                                          )
111716                                     ,p_token_4                 => 'PRODUCT_NAME'
111717                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
111718                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
111719                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
111720                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
111721                                     ,p_ae_header_id            =>  NULL
111722                                        );
111723 
111724         IF (C_LEVEL_ERROR>= g_log_level) THEN
111725                  trace
111726                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111727                       ,p_level    => C_LEVEL_ERROR
111728                       ,p_module   => l_log_module);
111729         END IF;
111730       END IF;
111731    END IF;
111732    --
111733    --
111734    ------------------------------------------------------------------------------------------------
111735    -- 4219869 Business Flow
111736    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
111737    -- Prior Entry.  Currently, the following code is always generated.
111738    ------------------------------------------------------------------------------------------------
111739    XLA_AE_LINES_PKG.ValidateCurrentLine;
111740 
111741    ------------------------------------------------------------------------------------
111742    -- 4219869 Business Flow
111743    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
111744    ------------------------------------------------------------------------------------
111745    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111746 
111747    ----------------------------------------------------------------------------------
111748    -- 4219869 Business Flow
111749    -- Update journal entry status -- Need to generate this within IF <condition>
111750    ----------------------------------------------------------------------------------
111751    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111752          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
111753          ,p_balance_type_code => l_balance_type_code
111754          );
111755 
111756    -------------------------------------------------------------------------------------------
111757    -- 4262811 - Generate the Accrual Reversal lines
111758    -------------------------------------------------------------------------------------------
111759    BEGIN
111760       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
111761                               (g_array_event(p_event_id).array_value_num('header_index'));
111762       IF l_acc_rev_flag IS NULL THEN
111763          l_acc_rev_flag := 'N';
111764       END IF;
111765    EXCEPTION
111766       WHEN OTHERS THEN
111767          l_acc_rev_flag := 'N';
111768    END;
111769    --
111773        -- To allow MPA report to determine if it should generate report process
111770    IF (l_acc_rev_flag = 'Y') THEN
111771 
111772        -- 4645092  ------------------------------------------------------------------------------
111774        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
111775        ------------------------------------------------------------------------------------------
111776 
111777        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
111778        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
111779    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
111780    -- call ADRs
111781    -- Bug 4922099
111782    --
111783    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111787    THEN
111784         (NVL(l_actual_upg_option, 'N') = 'O') OR
111785         (NVL(l_enc_upg_option, 'N') = 'O')
111786       )
111788    NULL;
111789    --
111790    --
111791    
111792   l_ccid := AcctDerRule_40(
111793            p_application_id           => p_application_id
111794          , p_ae_header_id             => l_ae_header_id 
111795 , p_source_3 => p_source_3
111796 , p_source_3_meaning => p_source_3_meaning
111797 , p_source_18 => p_source_18
111798 , p_source_37 => p_source_37
111799          , x_transaction_coa_id       => l_adr_transaction_coa_id
111800          , x_accounting_coa_id        => l_adr_accounting_coa_id
111801          , x_value_type_code          => l_adr_value_type_code
111802          , p_side                     => 'NA'
111803    );
111804 
111805    xla_ae_lines_pkg.set_ccid(
111806     p_code_combination_id          => l_ccid
111807   , p_value_type_code              => l_adr_value_type_code
111808   , p_transaction_coa_id           => l_adr_transaction_coa_id
111809   , p_accounting_coa_id            => l_adr_accounting_coa_id
111810   , p_adr_code                     => 'AP_ROUNDING'
111811   , p_adr_type_code                => 'S'
111812   , p_component_type               => l_component_type
111813   , p_component_code               => l_component_code
111814   , p_component_type_code          => l_component_type_code
111815   , p_component_appl_id            => l_component_appl_id
111816   , p_amb_context_code             => l_amb_context_code
111817   , p_side                         => 'NA'
111818   );
111819 
111820 
111821    --
111822    --
111823    END IF;
111824 
111825        --
111826        -- Update the line information that should be overwritten
111827        --
111828        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
111829                                          p_header_num   => 1);
111830        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
111831 
111832        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
111833 
111834        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
111835           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
111836        END IF;
111837 
111838       --
111839       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
111840       --
111841       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
111842           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
111843       ELSE
111844           ---------------------------------------------------------------------------------------------------
111845           -- 4262811a Switch Sign
111846           ---------------------------------------------------------------------------------------------------
111847           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
111848           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
111849                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111850           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
111851                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111852           -- 5132302
111853           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
111854                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111855 
111856       END IF;
111857 
111858       -- 4955764
111859       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111860       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
111861 
111862 
111863       XLA_AE_LINES_PKG.ValidateCurrentLine;
111864       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111865 
111869 
111866       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111867                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
111868                ,p_balance_type_code => l_balance_type_code);
111870    END IF;
111871 
111872    -----------------------------------------------------------------------------------------
111873    -- 4262811 Multiperiod Accounting
111874    -----------------------------------------------------------------------------------------
111875      -- No MPA option is assigned.
111876 
111877 
111878 END IF;
111879 END IF;
111880 --
111881 
111882 --
111883 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
111884    trace
111885       (p_msg      => 'END of AcctLineType_190'
111886       ,p_level    => C_LEVEL_PROCEDURE
111887       ,p_module   => l_log_module);
111888 END IF;
111889 --
111890 EXCEPTION
111891   WHEN xla_exceptions_pkg.application_exception THEN
111892       RAISE;
111893   WHEN OTHERS THEN
111894        xla_exceptions_pkg.raise_message
111895            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_190');
111896 END AcctLineType_190;
111897 --
111898 
111899 ---------------------------------------
111900 --
111901 -- PRIVATE FUNCTION
111902 --         AcctLineType_191
111903 --
111904 ---------------------------------------
111905 PROCEDURE AcctLineType_191 (
111906   p_application_id        IN NUMBER
111907  ,p_event_id              IN NUMBER
111908  ,p_calculate_acctd_flag  IN VARCHAR2
111909  ,p_calculate_g_l_flag    IN VARCHAR2
111910  ,p_actual_flag           IN OUT VARCHAR2
111911  ,p_balance_type_code     OUT VARCHAR2
111912  ,p_gain_or_loss_ref      OUT VARCHAR2
111913  
111914 --Invoice Distribution Description
111915  , p_source_1            IN VARCHAR2
111916 --Invoice Distribution Ledger Amount
111917  , p_source_9            IN NUMBER
111918 --Invoice Distribution Account
111919  , p_source_18            IN NUMBER
111920 --Invoice Distribution Type
111921  , p_source_21            IN VARCHAR2
111922  , p_source_21_meaning    IN VARCHAR2
111923 --Accounting Reversal Indicator
111924  , p_source_41            IN VARCHAR2
111925 --Distribution Link Type
111926  , p_source_43            IN VARCHAR2
111927 --Allocation to Main Distribution Identifier
111928  , p_source_45            IN NUMBER
111929 --Invoice Identifier
111930  , p_source_46            IN NUMBER
111931 --Invoice Distribution Identifier
111932  , p_source_52            IN NUMBER
111933 --Payables Encumbrance Upgrade Credit Account
111934  , p_source_53            IN NUMBER
111935 --Payables Encumbrance Upgrade Credit Amount
111936  , p_source_54            IN NUMBER
111937 --Invoice Currency Code
111941 --Payables Encumbrance Upgrade Debit Account
111938  , p_source_55            IN VARCHAR2
111939 --Payables Encumbrance Upgrade Credit Base Amount
111940  , p_source_56            IN NUMBER
111942  , p_source_57            IN NUMBER
111943 --Payables Encumbrance Upgrade Debit Amount
111944  , p_source_58            IN NUMBER
111945 --Payables Encumbrance Upgrade Debit Base Amount
111946  , p_source_59            IN NUMBER
111947 --Payables Encumbrance Upgrade Option
111948  , p_source_60            IN VARCHAR2
111949 --Invoice Distribution Amount
111950  , p_source_61            IN NUMBER
111951 --Deferred Accounting End Date
111952  , p_source_65            IN DATE
111953 --Deferred Accounting Option
111954  , p_source_66            IN VARCHAR2
111955 --Deferred Accounting Start Date
111956  , p_source_67            IN DATE
111957 --Override Accounted Amount Indicator
111958  , p_source_68            IN VARCHAR2
111959  , p_source_68_meaning    IN VARCHAR2
111960 --Invoice Supplier Identifier
111961  , p_source_69            IN NUMBER
111962 --Invoice Supplier Site Identifier
111963  , p_source_70            IN NUMBER
111964 --Third Party Type
111965  , p_source_71            IN VARCHAR2
111966 --Parent Reversal Identifier
111967  , p_source_72            IN NUMBER
111968 --Invoice Distribution Statistical Amount
111969  , p_source_73            IN NUMBER
111970 --Invoice Distribution Tax Line Identifier
111971  , p_source_74            IN NUMBER
111972 --Invoice Distribution Tax Distribution Identifier from Tax
111973  , p_source_75            IN NUMBER
111974 --Invoice Distribution Summary Tax Line Identifier
111975  , p_source_76            IN NUMBER
111976 --Payables Upgrade Credit Encumbrance Type Identifier
111977  , p_source_77            IN NUMBER
111978 --Payables Upgrade Debit Encumbrance Type Identifier
111979  , p_source_78            IN NUMBER
111980 --Business Flow Accounts Payable Application Identifier
111981  , p_source_79            IN NUMBER
111982 --Business Flow Invoice Distribution Type
111986 --Business Flow Invoice Distribution Identifier
111983  , p_source_80            IN VARCHAR2
111984 --Business Flow Invoice Entity Code
111985  , p_source_81            IN VARCHAR2
111987  , p_source_82            IN NUMBER
111988 --Business Flow Invoice Identifier
111989  , p_source_83            IN NUMBER
111990 --Invoice Exchange Date
111991  , p_source_136            IN DATE
111992 --Invoice Exchange Rate
111993  , p_source_137            IN NUMBER
111994 --Invoice Exchange Rate Type
111995  , p_source_138            IN VARCHAR2
111996 )
111997 IS
111998 
111999 l_component_type              VARCHAR2(80);
112000 l_component_code              VARCHAR2(30);
112001 l_component_type_code         VARCHAR2(1);
112002 l_component_appl_id           INTEGER;
112003 l_amb_context_code            VARCHAR2(30);
112004 l_entity_code                 VARCHAR2(30);
112005 l_event_class_code            VARCHAR2(30);
112006 l_ae_header_id                NUMBER;
112007 l_event_type_code             VARCHAR2(30);
112008 l_line_definition_code        VARCHAR2(30);
112009 l_line_definition_owner_code  VARCHAR2(1);
112010 --
112011 -- adr variables
112012 l_segment                     VARCHAR2(30);
112013 l_ccid                        NUMBER;
112014 l_adr_transaction_coa_id      NUMBER;
112015 l_adr_accounting_coa_id       NUMBER;
112016 l_adr_flexfield_segment_code  VARCHAR2(30);
112017 l_adr_flex_value_set_id       NUMBER;
112018 l_adr_value_type_code         VARCHAR2(30);
112019 l_adr_value_combination_id    NUMBER;
112020 l_adr_value_segment_code      VARCHAR2(30);
112021 
112022 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
112023 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
112024 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
112025 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
112026 
112027 -- 4262811 Variables ------------------------------------------------------------------------------------------
112028 l_entered_amt_idx             NUMBER;
112029 l_accted_amt_idx              NUMBER;
112030 l_acc_rev_flag                VARCHAR2(1);
112031 l_accrual_line_num            NUMBER;
112032 l_tmp_amt                     NUMBER;
112033 l_acc_rev_natural_side_code   VARCHAR2(1);
112034 
112035 l_num_entries                 NUMBER;
112036 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
112037 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
112038 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
112039 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
112040 l_recog_line_1                NUMBER;
112041 l_recog_line_2                NUMBER;
112042 
112043 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
112044 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
112045 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
112046 
112047 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
112048 
112049 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
112050 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
112051 
112052 ---------------------------------------------------------------------------------------------------------------
112053 
112054 
112055 --
112056 -- bulk performance
112057 --
112058 l_balance_type_code           VARCHAR2(1);
112059 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
112060 l_log_module                  VARCHAR2(240);
112061 
112062 --
112063 -- Upgrade strategy
112064 --
112065 l_actual_upg_option           VARCHAR2(1);
112066 l_enc_upg_option           VARCHAR2(1);
112067 
112068 --
112069 BEGIN
112070 --
112071 IF g_log_enabled THEN
112072       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_191';
112073 END IF;
112074 --
112075 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112076 
112077       trace
112078          (p_msg      => 'BEGIN of AcctLineType_191'
112079          ,p_level    => C_LEVEL_PROCEDURE
112080          ,p_module   => l_log_module);
112081 
112082 END IF;
112083 --
112084 l_component_type             := 'AMB_JLT';
112085 l_component_code             := 'AP_MISC_EXPENSE_CM';
112086 l_component_type_code        := 'S';
112087 l_component_appl_id          :=  200;
112088 l_amb_context_code           := 'DEFAULT';
112089 l_entity_code                := 'AP_INVOICES';
112090 l_event_class_code           := 'CREDIT MEMOS';
112091 l_event_type_code            := 'CREDIT MEMOS_ALL';
112092 l_line_definition_owner_code := 'S';
112093 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
112094 --
112098 l_adr_transaction_coa_id      := NULL;
112095 l_balance_type_code          := 'A';
112096 l_segment                     := NULL;
112097 l_ccid                        := NULL;
112099 l_adr_accounting_coa_id       := NULL;
112100 l_adr_flexfield_segment_code  := NULL;
112101 l_adr_flex_value_set_id       := NULL;
112102 l_adr_value_type_code         := NULL;
112103 l_adr_value_combination_id    := NULL;
112104 l_adr_value_segment_code      := NULL;
112105 
112106 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
112107 l_bflow_class_code           := '';    -- 4219869 Business Flow
112108 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
112109 l_budgetary_control_flag     := 'N';
112110 
112111 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
112112 l_bflow_applied_to_amt       := NULL; -- 5132302
112113 l_entered_amt_idx            := NULL;          -- 4262811
112114 l_accted_amt_idx             := NULL;          -- 4262811
112115 l_acc_rev_flag               := NULL;          -- 4262811
112116 l_accrual_line_num           := NULL;          -- 4262811
112117 l_tmp_amt                    := NULL;          -- 4262811
112118 --
112119  
112120 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
112121     l_balance_type_code <> 'B' THEN
112122 IF NVL(p_source_21,'
112123 ') =  'MISCELLANEOUS'
112124  THEN 
112125 
112126    --
112127    XLA_AE_LINES_PKG.SetNewLine;
112128 
112129    p_balance_type_code          := l_balance_type_code;
112133      p_actual_flag :='A';
112130    -- set the flag so later we will know whether the gain loss line needs to be created
112131    
112132    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
112134    END IF;
112135 
112136    --
112137    -- bulk performance
112138    --
112139    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
112140                                       p_header_num   => 0); -- 4262811
112141    --
112142    -- set accounting line options
112143    --
112144    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
112145            p_natural_side_code          => 'D'
112146          , p_gain_or_loss_flag          => 'N'
112147          , p_gl_transfer_mode_code      => 'S'
112148          , p_acct_entry_type_code       => 'A'
112149          , p_switch_side_flag           => 'Y'
112150          , p_merge_duplicate_code       => 'A'
112151          );
112152    --
112153    l_acc_rev_natural_side_code := 'C';  -- 4262811
112154    -- 
112155    --
112156    -- set accounting line type info
112157    --
112158    xla_ae_lines_pkg.SetAcctLineType
112159       (p_component_type             => l_component_type
112160       ,p_event_type_code            => l_event_type_code
112161       ,p_line_definition_owner_code => l_line_definition_owner_code
112162       ,p_line_definition_code       => l_line_definition_code
112163       ,p_accounting_line_code       => l_component_code
112164       ,p_accounting_line_type_code  => l_component_type_code
112165       ,p_accounting_line_appl_id    => l_component_appl_id
112166       ,p_amb_context_code           => l_amb_context_code
112167       ,p_entity_code                => l_entity_code
112168       ,p_event_class_code           => l_event_class_code);
112169    --
112170    -- set accounting class
112171    --
112172    xla_ae_lines_pkg.SetAcctClass(
112173            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
112174          , p_ae_header_id           => l_ae_header_id
112175          );
112176 
112177    --
112178    -- set rounding class
112179    --
112180    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
112181                       'MISCELLANEOUS EXPENSE';
112182 
112183    --
112184    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
112185    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
112186    --
112187    -- bulk performance
112188    --
112189    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
112190 
112191    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
112192       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
112193 
112194    -- 4955764
112195    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
112196       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
112197 
112198    -- 4458381 Public Sector Enh
112199    
112200    --
112201    -- set accounting attributes for the line type
112202    --
112203    l_entered_amt_idx := 23;
112204    l_accted_amt_idx  := 28;
112205    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
112206    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
112207    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
112208    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
112209    l_rec_acct_attrs.array_num_value(2)  := 
112210 xla_ae_sources_pkg.GetSystemSourceNum(
112211    p_source_code           => 'XLA_EVENT_APPL_ID'
112212  , p_source_type_code      => 'Y'
112213  , p_source_application_id =>  602
112214 );
112215    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
112216    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
112217    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
112218    l_rec_acct_attrs.array_char_value(4)  := 
112219 xla_ae_sources_pkg.GetSystemSourceChar(
112220    p_source_code           => 'XLA_ENTITY_CODE'
112221  , p_source_type_code      => 'Y'
112222  , p_source_application_id =>  602
112223 );
112224    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
112225    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
112226    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
112227    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
112228    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
112229    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
112230    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
112231    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
112232    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
112233    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
112234    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
112235    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
112236    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
112237    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
112238    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
112239    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
112243    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
112240    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
112241    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
112242    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
112244    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
112245    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
112246    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
112247    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
112248    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
112249    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
112250    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
112251    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
112252    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
112253    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
112254    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
112255    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
112256    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
112257    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
112258    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
112259    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
112260    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
112261    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
112262    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
112263    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
112264    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
112265    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
112266    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
112267    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
112268    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
112269    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
112270    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
112271    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
112272    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
112273    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
112274    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
112275    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
112276    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
112277    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
112278    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
112279    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
112280    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
112281    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
112282    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
112283    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
112284    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
112285    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
112286    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
112287    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
112288    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
112289    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
112290    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
112291    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
112292    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
112293    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
112294    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
112295    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
112296    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
112297    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
112298    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
112299    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
112300    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
112301    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
112302 
112303    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
112304    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
112305 
112306    ---------------------------------------------------------------------------------------------------------------
112307    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
112308    ---------------------------------------------------------------------------------------------------------------
112309    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
112310 
112311    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
112315          (p_source_code         => 'LEDGER_CATEGORY_CODE'
112312    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
112313 
112314    IF xla_accounting_cache_pkg.GetValueChar
112316          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
112317    AND l_bflow_method_code = 'PRIOR_ENTRY'
112318 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
112319    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
112320          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
112321        )
112322    THEN
112323          xla_ae_lines_pkg.BflowUpgEntry
112324            (p_business_method_code    => l_bflow_method_code
112325            ,p_business_class_code     => l_bflow_class_code
112326            ,p_balance_type            => l_balance_type_code);
112327    ELSE
112328       NULL;
112329 -- No business flow processing for business flow method of NONE.
112330    END IF;
112331 
112332    --
112333    -- call analytical criteria
112334    --
112335    
112336    --
112337    -- call description
112338    --
112339    
112340 xla_ae_lines_pkg.SetLineDescription(
112341    p_ae_header_id => l_ae_header_id
112342   ,p_description  => Description_2 (
112343      p_application_id         => p_application_id
112344    , p_ae_header_id           => l_ae_header_id 
112345 , p_source_1 => p_source_1
112346    )
112347 );
112348 
112349 
112350    --
112351    -- call ADRs
112352    -- Bug 4922099
112353    --
112354    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
112355         (NVL(l_actual_upg_option, 'N') = 'O') OR
112356         (NVL(l_enc_upg_option, 'N') = 'O')
112357       )
112358    THEN
112359    NULL;
112360    --
112361    --
112362    
112363   l_ccid := AcctDerRule_32(
112367          , x_transaction_coa_id       => l_adr_transaction_coa_id
112364            p_application_id           => p_application_id
112365          , p_ae_header_id             => l_ae_header_id 
112366 , p_source_18 => p_source_18
112368          , x_accounting_coa_id        => l_adr_accounting_coa_id
112369          , x_value_type_code          => l_adr_value_type_code
112370          , p_side                     => 'NA'
112371    );
112372 
112373    xla_ae_lines_pkg.set_ccid(
112374     p_code_combination_id          => l_ccid
112375   , p_value_type_code              => l_adr_value_type_code
112376   , p_transaction_coa_id           => l_adr_transaction_coa_id
112377   , p_accounting_coa_id            => l_adr_accounting_coa_id
112378   , p_adr_code                     => 'AP_INVOICE_DIST'
112379   , p_adr_type_code                => 'S'
112380   , p_component_type               => l_component_type
112381   , p_component_code               => l_component_code
112382   , p_component_type_code          => l_component_type_code
112383   , p_component_appl_id            => l_component_appl_id
112384   , p_amb_context_code             => l_amb_context_code
112385   , p_side                         => 'NA'
112386   );
112387 
112388 
112389    --
112390    --
112391    END IF;
112392    --
112393    -- Bug 4922099
112394    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
112395           (NVL(l_enc_upg_option, 'N') = 'O')
112396         ) AND
112397         (l_bflow_method_code = 'PRIOR_ENTRY')
112398       )
112399    THEN
112400       IF
112401       --
112402       1 = 2
112403       --
112404       THEN
112405       xla_accounting_err_pkg.build_message
112406                                     (p_appli_s_name            => 'XLA'
112407                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
112408                                     ,p_token_1                 => 'LINE_NUMBER'
112409                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
112410                                     ,p_token_2                 => 'LINE_TYPE_NAME'
112411                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
112412                                                                              l_component_type
112413                                                                             ,l_component_code
112414                                                                             ,l_component_type_code
112415                                                                             ,l_component_appl_id
112416                                                                             ,l_amb_context_code
112417                                                                             ,l_entity_code
112418                                                                             ,l_event_class_code
112419                                                                            )
112420                                     ,p_token_3                 => 'OWNER'
112424                                                                          )
112421                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
112422                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
112423                                                                           ,p_lookup_code    => l_component_type_code
112425                                     ,p_token_4                 => 'PRODUCT_NAME'
112426                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
112427                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
112428                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
112429                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
112430                                     ,p_ae_header_id            =>  NULL
112431                                        );
112432 
112433         IF (C_LEVEL_ERROR>= g_log_level) THEN
112434                  trace
112435                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
112436                       ,p_level    => C_LEVEL_ERROR
112437                       ,p_module   => l_log_module);
112438         END IF;
112439       END IF;
112440    END IF;
112441    --
112442    --
112443    ------------------------------------------------------------------------------------------------
112444    -- 4219869 Business Flow
112445    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
112446    -- Prior Entry.  Currently, the following code is always generated.
112447    ------------------------------------------------------------------------------------------------
112448    XLA_AE_LINES_PKG.ValidateCurrentLine;
112449 
112450    ------------------------------------------------------------------------------------
112451    -- 4219869 Business Flow
112452    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
112453    ------------------------------------------------------------------------------------
112454    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
112455 
112456    ----------------------------------------------------------------------------------
112457    -- 4219869 Business Flow
112458    -- Update journal entry status -- Need to generate this within IF <condition>
112459    ----------------------------------------------------------------------------------
112460    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
112461          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
112462          ,p_balance_type_code => l_balance_type_code
112463          );
112464 
112465    -------------------------------------------------------------------------------------------
112466    -- 4262811 - Generate the Accrual Reversal lines
112467    -------------------------------------------------------------------------------------------
112468    BEGIN
112469       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
112470                               (g_array_event(p_event_id).array_value_num('header_index'));
112471       IF l_acc_rev_flag IS NULL THEN
112472          l_acc_rev_flag := 'N';
112473       END IF;
112474    EXCEPTION
112475       WHEN OTHERS THEN
112476          l_acc_rev_flag := 'N';
112477    END;
112478    --
112479    IF (l_acc_rev_flag = 'Y') THEN
112480 
112481        -- 4645092  ------------------------------------------------------------------------------
112482        -- To allow MPA report to determine if it should generate report process
112483        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
112484        ------------------------------------------------------------------------------------------
112485 
112489    -- call ADRs
112486        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
112487        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
112488    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
112490    -- Bug 4922099
112491    --
112492    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
112493         (NVL(l_actual_upg_option, 'N') = 'O') OR
112494         (NVL(l_enc_upg_option, 'N') = 'O')
112495       )
112496    THEN
112497    NULL;
112498    --
112499    --
112500    
112501   l_ccid := AcctDerRule_32(
112502            p_application_id           => p_application_id
112503          , p_ae_header_id             => l_ae_header_id 
112504 , p_source_18 => p_source_18
112505          , x_transaction_coa_id       => l_adr_transaction_coa_id
112506          , x_accounting_coa_id        => l_adr_accounting_coa_id
112510 
112507          , x_value_type_code          => l_adr_value_type_code
112508          , p_side                     => 'NA'
112509    );
112511    xla_ae_lines_pkg.set_ccid(
112512     p_code_combination_id          => l_ccid
112513   , p_value_type_code              => l_adr_value_type_code
112514   , p_transaction_coa_id           => l_adr_transaction_coa_id
112515   , p_accounting_coa_id            => l_adr_accounting_coa_id
112516   , p_adr_code                     => 'AP_INVOICE_DIST'
112517   , p_adr_type_code                => 'S'
112518   , p_component_type               => l_component_type
112519   , p_component_code               => l_component_code
112520   , p_component_type_code          => l_component_type_code
112521   , p_component_appl_id            => l_component_appl_id
112522   , p_amb_context_code             => l_amb_context_code
112523   , p_side                         => 'NA'
112524   );
112525 
112526 
112527    --
112528    --
112529    END IF;
112530 
112531        --
112532        -- Update the line information that should be overwritten
112533        --
112534        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
112535                                          p_header_num   => 1);
112536        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
112537 
112538        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
112539 
112540        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
112541           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
112542        END IF;
112543 
112544       --
112545       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
112546       --
112547       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
112548           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
112549       ELSE
112550           ---------------------------------------------------------------------------------------------------
112551           -- 4262811a Switch Sign
112552           ---------------------------------------------------------------------------------------------------
112553           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
112554           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
112555                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112556           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
112557                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112558           -- 5132302
112559           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
112560                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112561 
112562       END IF;
112563 
112564       -- 4955764
112565       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
112566       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
112567 
112568 
112569       XLA_AE_LINES_PKG.ValidateCurrentLine;
112570       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
112571 
112572       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
112573                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
112574                ,p_balance_type_code => l_balance_type_code);
112575 
112576    END IF;
112577 
112578    -----------------------------------------------------------------------------------------
112579    -- 4262811 Multiperiod Accounting
112580    -----------------------------------------------------------------------------------------
112581      -- No MPA option is assigned.
112582 
112583 
112584 END IF;
112585 END IF;
112586 --
112587 
112588 --
112589 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112590    trace
112591       (p_msg      => 'END of AcctLineType_191'
112592       ,p_level    => C_LEVEL_PROCEDURE
112593       ,p_module   => l_log_module);
112594 END IF;
112595 --
112596 EXCEPTION
112597   WHEN xla_exceptions_pkg.application_exception THEN
112598       RAISE;
112599   WHEN OTHERS THEN
112600        xla_exceptions_pkg.raise_message
112601            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_191');
112602 END AcctLineType_191;
112603 --
112604 
112605 ---------------------------------------
112606 --
112607 -- PRIVATE FUNCTION
112608 --         AcctLineType_192
112609 --
112610 ---------------------------------------
112611 PROCEDURE AcctLineType_192 (
112612   p_application_id        IN NUMBER
112613  ,p_event_id              IN NUMBER
112614  ,p_calculate_acctd_flag  IN VARCHAR2
112615  ,p_calculate_g_l_flag    IN VARCHAR2
112616  ,p_actual_flag           IN OUT VARCHAR2
112617  ,p_balance_type_code     OUT VARCHAR2
112618  ,p_gain_or_loss_ref      OUT VARCHAR2
112619  
112620 --Invoice Distribution Type
112621  , p_source_21            IN VARCHAR2
112622  , p_source_21_meaning    IN VARCHAR2
112623 --Accounting Reversal Indicator
112624  , p_source_41            IN VARCHAR2
112625 --Distribution Link Type
112626  , p_source_43            IN VARCHAR2
112627 --Allocation to Main Distribution Identifier
112628  , p_source_45            IN NUMBER
112629 --Invoice Identifier
112630  , p_source_46            IN NUMBER
112631 --Invoice Distribution Identifier
112632  , p_source_52            IN NUMBER
112633 --Payables Encumbrance Upgrade Credit Account
112634  , p_source_53            IN NUMBER
112635 --Payables Encumbrance Upgrade Credit Amount
112641 --Payables Encumbrance Upgrade Debit Account
112636  , p_source_54            IN NUMBER
112637 --Invoice Currency Code
112638  , p_source_55            IN VARCHAR2
112639 --Payables Encumbrance Upgrade Credit Base Amount
112640  , p_source_56            IN NUMBER
112642  , p_source_57            IN NUMBER
112643 --Payables Encumbrance Upgrade Debit Amount
112644  , p_source_58            IN NUMBER
112645 --Payables Encumbrance Upgrade Debit Base Amount
112646  , p_source_59            IN NUMBER
112647 --Payables Encumbrance Upgrade Option
112648  , p_source_60            IN VARCHAR2
112649 --Deferred Accounting End Date
112650  , p_source_65            IN DATE
112654  , p_source_67            IN DATE
112651 --Deferred Accounting Option
112652  , p_source_66            IN VARCHAR2
112653 --Deferred Accounting Start Date
112655 --Override Accounted Amount Indicator
112656  , p_source_68            IN VARCHAR2
112657  , p_source_68_meaning    IN VARCHAR2
112658 --Third Party Type
112659  , p_source_71            IN VARCHAR2
112660 --Parent Reversal Identifier
112661  , p_source_72            IN NUMBER
112662 --Invoice Distribution Statistical Amount
112663  , p_source_73            IN NUMBER
112664 --Invoice Distribution Tax Line Identifier
112665  , p_source_74            IN NUMBER
112666 --Invoice Distribution Tax Distribution Identifier from Tax
112667  , p_source_75            IN NUMBER
112668 --Invoice Distribution Summary Tax Line Identifier
112669  , p_source_76            IN NUMBER
112670 --Payables Upgrade Credit Encumbrance Type Identifier
112671  , p_source_77            IN NUMBER
112672 --Payables Upgrade Debit Encumbrance Type Identifier
112673  , p_source_78            IN NUMBER
112674 --Business Flow Accounts Payable Application Identifier
112675  , p_source_79            IN NUMBER
112676 --Business Flow Invoice Distribution Type
112677  , p_source_80            IN VARCHAR2
112678 --Business Flow Invoice Entity Code
112679  , p_source_81            IN VARCHAR2
112680 --Business Flow Invoice Distribution Identifier
112681  , p_source_82            IN NUMBER
112682 --Business Flow Invoice Identifier
112683  , p_source_83            IN NUMBER
112684 --Purchasing Encumbrance Option
112685  , p_source_86            IN VARCHAR2
112686  , p_source_86_meaning    IN VARCHAR2
112687 --Invoice Encumbered Option
112688  , p_source_87            IN VARCHAR2
112689  , p_source_87_meaning    IN VARCHAR2
112690 --Invoice Distribution Encumbrance Amount
112691  , p_source_143            IN NUMBER
112692 --Invoice Distribution Encumbrance Ledger Amount
112693  , p_source_144            IN NUMBER
112694 )
112695 IS
112696 
112697 l_component_type              VARCHAR2(80);
112698 l_component_code              VARCHAR2(30);
112699 l_component_type_code         VARCHAR2(1);
112700 l_component_appl_id           INTEGER;
112701 l_amb_context_code            VARCHAR2(30);
112702 l_entity_code                 VARCHAR2(30);
112703 l_event_class_code            VARCHAR2(30);
112704 l_ae_header_id                NUMBER;
112705 l_event_type_code             VARCHAR2(30);
112706 l_line_definition_code        VARCHAR2(30);
112707 l_line_definition_owner_code  VARCHAR2(1);
112708 --
112709 -- adr variables
112710 l_segment                     VARCHAR2(30);
112711 l_ccid                        NUMBER;
112712 l_adr_transaction_coa_id      NUMBER;
112713 l_adr_accounting_coa_id       NUMBER;
112714 l_adr_flexfield_segment_code  VARCHAR2(30);
112715 l_adr_flex_value_set_id       NUMBER;
112716 l_adr_value_type_code         VARCHAR2(30);
112717 l_adr_value_combination_id    NUMBER;
112718 l_adr_value_segment_code      VARCHAR2(30);
112719 
112720 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
112721 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
112722 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
112723 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
112724 
112725 -- 4262811 Variables ------------------------------------------------------------------------------------------
112726 l_entered_amt_idx             NUMBER;
112727 l_accted_amt_idx              NUMBER;
112728 l_acc_rev_flag                VARCHAR2(1);
112729 l_accrual_line_num            NUMBER;
112730 l_tmp_amt                     NUMBER;
112731 l_acc_rev_natural_side_code   VARCHAR2(1);
112732 
112733 l_num_entries                 NUMBER;
112734 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
112735 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
112736 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
112737 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
112738 l_recog_line_1                NUMBER;
112739 l_recog_line_2                NUMBER;
112740 
112741 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
112742 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
112743 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
112744 
112745 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
112746 
112747 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
112748 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
112749 
112750 ---------------------------------------------------------------------------------------------------------------
112751 
112752 
112753 --
112754 -- bulk performance
112755 --
112756 l_balance_type_code           VARCHAR2(1);
112757 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
112758 l_log_module                  VARCHAR2(240);
112759 
112760 --
112761 -- Upgrade strategy
112762 --
112763 l_actual_upg_option           VARCHAR2(1);
112764 l_enc_upg_option           VARCHAR2(1);
112765 
112766 --
112767 BEGIN
112768 --
112769 IF g_log_enabled THEN
112770       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_192';
112771 END IF;
112772 --
112773 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112774 
112775       trace
112776          (p_msg      => 'BEGIN of AcctLineType_192'
112777          ,p_level    => C_LEVEL_PROCEDURE
112778          ,p_module   => l_log_module);
112779 
112780 END IF;
112781 --
112782 l_component_type             := 'AMB_JLT';
112783 l_component_code             := 'AP_MISC_EXPENSE_CR_ENC';
112784 l_component_type_code        := 'S';
112785 l_component_appl_id          :=  200;
112789 l_event_type_code            := 'CREDIT MEMOS_ALL';
112786 l_amb_context_code           := 'DEFAULT';
112787 l_entity_code                := 'AP_INVOICES';
112788 l_event_class_code           := 'CREDIT MEMOS';
112790 l_line_definition_owner_code := 'S';
112791 l_line_definition_code       := 'ENC_REV_CM_ALL';
112792 --
112793 l_balance_type_code          := 'E';
112794 l_segment                     := NULL;
112795 l_ccid                        := NULL;
112796 l_adr_transaction_coa_id      := NULL;
112797 l_adr_accounting_coa_id       := NULL;
112798 l_adr_flexfield_segment_code  := NULL;
112799 l_adr_flex_value_set_id       := NULL;
112800 l_adr_value_type_code         := NULL;
112801 l_adr_value_combination_id    := NULL;
112802 l_adr_value_segment_code      := NULL;
112803 
112804 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
112805 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
112806 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
112807 l_budgetary_control_flag     := 'N';
112808 
112809 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
112810 l_bflow_applied_to_amt       := NULL; -- 5132302
112811 l_entered_amt_idx            := NULL;          -- 4262811
112812 l_accted_amt_idx             := NULL;          -- 4262811
112813 l_acc_rev_flag               := NULL;          -- 4262811
112814 l_accrual_line_num           := NULL;          -- 4262811
112815 l_tmp_amt                    := NULL;          -- 4262811
112816 --
112817  
112818 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
112819     l_balance_type_code <> 'B' THEN
112820 IF NVL(p_source_21,'
112821 ') =  'MISCELLANEOUS' AND 
112822 NVL(p_source_86,'
112823 ') =  'Y' AND 
112824 NVL(p_source_87,'
112825 ') =  'Y'
112826  THEN 
112827 
112828    --
112829    XLA_AE_LINES_PKG.SetNewLine;
112830 
112831    p_balance_type_code          := l_balance_type_code;
112832    -- set the flag so later we will know whether the gain loss line needs to be created
112833    
112834    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
112835      p_actual_flag :='A';
112836    END IF;
112837 
112838    --
112839    -- bulk performance
112840    --
112841    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
112842                                       p_header_num   => 0); -- 4262811
112843    --
112844    -- set accounting line options
112845    --
112846    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
112847            p_natural_side_code          => 'C'
112848          , p_gain_or_loss_flag          => 'N'
112849          , p_gl_transfer_mode_code      => 'S'
112850          , p_acct_entry_type_code       => 'E'
112851          , p_switch_side_flag           => 'Y'
112852          , p_merge_duplicate_code       => 'A'
112853          );
112854    --
112855    l_acc_rev_natural_side_code := 'D';  -- 4262811
112856    -- 
112857    --
112858    -- set accounting line type info
112859    --
112860    xla_ae_lines_pkg.SetAcctLineType
112861       (p_component_type             => l_component_type
112862       ,p_event_type_code            => l_event_type_code
112863       ,p_line_definition_owner_code => l_line_definition_owner_code
112864       ,p_line_definition_code       => l_line_definition_code
112865       ,p_accounting_line_code       => l_component_code
112866       ,p_accounting_line_type_code  => l_component_type_code
112867       ,p_accounting_line_appl_id    => l_component_appl_id
112868       ,p_amb_context_code           => l_amb_context_code
112869       ,p_entity_code                => l_entity_code
112870       ,p_event_class_code           => l_event_class_code);
112871    --
112872    -- set accounting class
112873    --
112874    xla_ae_lines_pkg.SetAcctClass(
112875            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
112876          , p_ae_header_id           => l_ae_header_id
112877          );
112878 
112879    --
112880    -- set rounding class
112881    --
112882    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
112883                       'MISCELLANEOUS EXPENSE';
112884 
112885    --
112886    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
112887    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
112888    --
112889    -- bulk performance
112890    --
112891    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
112892 
112893    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
112894       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
112895 
112896    -- 4955764
112897    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
112898       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
112899 
112900    -- 4458381 Public Sector Enh
112901    
112902    --
112903    -- set accounting attributes for the line type
112904    --
112905    l_entered_amt_idx := 23;
112906    l_accted_amt_idx  := 25;
112907    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
112908    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
112909    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
112910    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
112911    l_rec_acct_attrs.array_num_value(2)  := 
112912 xla_ae_sources_pkg.GetSystemSourceNum(
112913    p_source_code           => 'XLA_EVENT_APPL_ID'
112914  , p_source_type_code      => 'Y'
112915  , p_source_application_id =>  602
112916 );
112917    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
112921 xla_ae_sources_pkg.GetSystemSourceChar(
112918    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
112919    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
112920    l_rec_acct_attrs.array_char_value(4)  := 
112922    p_source_code           => 'XLA_ENTITY_CODE'
112923  , p_source_type_code      => 'Y'
112924  , p_source_application_id =>  602
112925 );
112926    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
112927    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
112928    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
112929    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
112930    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
112931    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
112932    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
112933    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
112934    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
112935    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
112936    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
112937    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
112938    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
112939    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
112943    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
112940    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
112941    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
112942    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
112944    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
112945    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
112946    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
112947    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
112948    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
112949    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
112950    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
112951    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
112952    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
112953    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
112954    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
112955    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
112956    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
112957    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
112958    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
112959    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
112960    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
112961    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
112962    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
112963    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
112964    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
112965    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
112966    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
112967    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
112968    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
112969    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
112970    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
112971    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
112972    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
112973    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
112974    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
112975    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
112976    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
112977    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
112978    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
112979    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
112980    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
112981    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
112982    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
112983    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
112984    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
112985    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
112986    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
112987    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
112988    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
112989    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
112990    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
112991    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
112992    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
112996    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
112993    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
112994 
112995    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
112997 
112998    ---------------------------------------------------------------------------------------------------------------
112999    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
113000    ---------------------------------------------------------------------------------------------------------------
113001    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
113002 
113003    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113004    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113005 
113006    IF xla_accounting_cache_pkg.GetValueChar
113007          (p_source_code         => 'LEDGER_CATEGORY_CODE'
113008          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
113009    AND l_bflow_method_code = 'PRIOR_ENTRY'
113010 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
113011    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
113012          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
113013        )
113014    THEN
113015          xla_ae_lines_pkg.BflowUpgEntry
113016            (p_business_method_code    => l_bflow_method_code
113017            ,p_business_class_code     => l_bflow_class_code
113018            ,p_balance_type            => l_balance_type_code);
113019    ELSE
113020       NULL;
113021 XLA_AE_LINES_PKG.business_flow_validation(
113022                                 p_business_method_code     => l_bflow_method_code
113023                                ,p_business_class_code      => l_bflow_class_code
113024                                ,p_inherit_description_flag => l_inherit_desc_flag);
113025    END IF;
113026 
113027    --
113028    -- call analytical criteria
113029    --
113030    -- Inherited Analytical Criteria for business flow method of Prior Entry.
113031    --
113032    -- call description
113033    --
113034    -- No description or it is inherited.
113035    --
113036    -- call ADRs
113037    -- Bug 4922099
113038    --
113039    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113040         (NVL(l_actual_upg_option, 'N') = 'O') OR
113041         (NVL(l_enc_upg_option, 'N') = 'O')
113042       )
113043    THEN
113044    NULL;
113045    --
113046    --
113047    
113048    --
113049    --
113050    END IF;
113051    --
113052    -- Bug 4922099
113053    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
113054           (NVL(l_enc_upg_option, 'N') = 'O')
113055         ) AND
113056         (l_bflow_method_code = 'PRIOR_ENTRY')
113057       )
113058    THEN
113059       IF
113060       --
113061       1 = 1
113062       --
113063       THEN
113064       xla_accounting_err_pkg.build_message
113065                                     (p_appli_s_name            => 'XLA'
113066                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
113070                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
113067                                     ,p_token_1                 => 'LINE_NUMBER'
113068                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
113069                                     ,p_token_2                 => 'LINE_TYPE_NAME'
113071                                                                              l_component_type
113072                                                                             ,l_component_code
113073                                                                             ,l_component_type_code
113074                                                                             ,l_component_appl_id
113075                                                                             ,l_amb_context_code
113076                                                                             ,l_entity_code
113077                                                                             ,l_event_class_code
113078                                                                            )
113079                                     ,p_token_3                 => 'OWNER'
113080                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
113081                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
113082                                                                           ,p_lookup_code    => l_component_type_code
113086                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
113083                                                                          )
113084                                     ,p_token_4                 => 'PRODUCT_NAME'
113085                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
113087                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
113088                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
113089                                     ,p_ae_header_id            =>  NULL
113090                                        );
113091 
113092         IF (C_LEVEL_ERROR>= g_log_level) THEN
113093                  trace
113094                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
113095                       ,p_level    => C_LEVEL_ERROR
113096                       ,p_module   => l_log_module);
113097         END IF;
113098       END IF;
113099    END IF;
113100    --
113101    --
113102    ------------------------------------------------------------------------------------------------
113103    -- 4219869 Business Flow
113104    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
113105    -- Prior Entry.  Currently, the following code is always generated.
113106    ------------------------------------------------------------------------------------------------
113107    -- No ValidateCurrentLine for business flow method of Prior Entry
113108 
113109    ------------------------------------------------------------------------------------
113110    -- 4219869 Business Flow
113111    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
113112    ------------------------------------------------------------------------------------
113113    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113114 
113115    ----------------------------------------------------------------------------------
113116    -- 4219869 Business Flow
113117    -- Update journal entry status -- Need to generate this within IF <condition>
113118    ----------------------------------------------------------------------------------
113119    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113120          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
113121          ,p_balance_type_code => l_balance_type_code
113122          );
113123 
113124    -------------------------------------------------------------------------------------------
113125    -- 4262811 - Generate the Accrual Reversal lines
113126    -------------------------------------------------------------------------------------------
113127    BEGIN
113128       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
113129                               (g_array_event(p_event_id).array_value_num('header_index'));
113130       IF l_acc_rev_flag IS NULL THEN
113131          l_acc_rev_flag := 'N';
113132       END IF;
113133    EXCEPTION
113134       WHEN OTHERS THEN
113135          l_acc_rev_flag := 'N';
113136    END;
113137    --
113138    IF (l_acc_rev_flag = 'Y') THEN
113139 
113140        -- 4645092  ------------------------------------------------------------------------------
113141        -- To allow MPA report to determine if it should generate report process
113142        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
113143        ------------------------------------------------------------------------------------------
113144 
113145        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
113146        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
113147    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
113148    -- call ADRs
113149    -- Bug 4922099
113150    --
113151    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113152         (NVL(l_actual_upg_option, 'N') = 'O') OR
113153         (NVL(l_enc_upg_option, 'N') = 'O')
113154       )
113155    THEN
113156    NULL;
113157    --
113158    --
113159    
113160    --
113161    --
113162    END IF;
113163 
113164        --
113165        -- Update the line information that should be overwritten
113166        --
113167        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
113168                                          p_header_num   => 1);
113169        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
113170 
113171        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
113172 
113173        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
113174           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
113175        END IF;
113176 
113177       --
113178       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
113179       --
113180       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
113181           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
113182       ELSE
113183           ---------------------------------------------------------------------------------------------------
113184           -- 4262811a Switch Sign
113188                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113185           ---------------------------------------------------------------------------------------------------
113186           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
113187           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113189           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113190                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113191           -- 5132302
113192           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
113193                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113194 
113195       END IF;
113196 
113197       -- 4955764
113198       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113199       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
113200 
113201 
113202       XLA_AE_LINES_PKG.ValidateCurrentLine;
113203       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113204 
113205       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113206                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
113207                ,p_balance_type_code => l_balance_type_code);
113208 
113209    END IF;
113210 
113211    -----------------------------------------------------------------------------------------
113212    -- 4262811 Multiperiod Accounting
113213    -----------------------------------------------------------------------------------------
113214      -- No MPA option is assigned.
113215 
113216 
113217 END IF;
113218 END IF;
113219 --
113220 
113221 --
113222 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
113223    trace
113224       (p_msg      => 'END of AcctLineType_192'
113225       ,p_level    => C_LEVEL_PROCEDURE
113226       ,p_module   => l_log_module);
113227 END IF;
113228 --
113229 EXCEPTION
113230   WHEN xla_exceptions_pkg.application_exception THEN
113231       RAISE;
113232   WHEN OTHERS THEN
113233        xla_exceptions_pkg.raise_message
113234            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_192');
113235 END AcctLineType_192;
113236 --
113237 
113238 ---------------------------------------
113239 --
113240 -- PRIVATE FUNCTION
113241 --         AcctLineType_193
113242 --
113243 ---------------------------------------
113244 PROCEDURE AcctLineType_193 (
113245   p_application_id        IN NUMBER
113246  ,p_event_id              IN NUMBER
113247  ,p_calculate_acctd_flag  IN VARCHAR2
113248  ,p_calculate_g_l_flag    IN VARCHAR2
113249  ,p_actual_flag           IN OUT VARCHAR2
113250  ,p_balance_type_code     OUT VARCHAR2
113251  ,p_gain_or_loss_ref      OUT VARCHAR2
113252  
113253 --Invoice Distribution Description
113254  , p_source_1            IN VARCHAR2
113255 --Invoice Distribution Ledger Amount
113256  , p_source_9            IN NUMBER
113257 --Invoice Distribution Account
113258  , p_source_18            IN NUMBER
113259 --Invoice Distribution Type
113260  , p_source_21            IN VARCHAR2
113261  , p_source_21_meaning    IN VARCHAR2
113262 --Accounting Reversal Indicator
113263  , p_source_41            IN VARCHAR2
113264 --Distribution Link Type
113265  , p_source_43            IN VARCHAR2
113266 --Allocation to Main Distribution Identifier
113267  , p_source_45            IN NUMBER
113268 --Invoice Identifier
113269  , p_source_46            IN NUMBER
113270 --Invoice Distribution Identifier
113271  , p_source_52            IN NUMBER
113272 --Payables Encumbrance Upgrade Credit Account
113273  , p_source_53            IN NUMBER
113274 --Payables Encumbrance Upgrade Credit Amount
113275  , p_source_54            IN NUMBER
113276 --Invoice Currency Code
113277  , p_source_55            IN VARCHAR2
113278 --Payables Encumbrance Upgrade Credit Base Amount
113279  , p_source_56            IN NUMBER
113280 --Payables Encumbrance Upgrade Debit Account
113281  , p_source_57            IN NUMBER
113282 --Payables Encumbrance Upgrade Debit Amount
113283  , p_source_58            IN NUMBER
113284 --Payables Encumbrance Upgrade Debit Base Amount
113285  , p_source_59            IN NUMBER
113286 --Payables Encumbrance Upgrade Option
113287  , p_source_60            IN VARCHAR2
113288 --Invoice Distribution Amount
113289  , p_source_61            IN NUMBER
113290 --Deferred Accounting End Date
113291  , p_source_65            IN DATE
113292 --Deferred Accounting Option
113293  , p_source_66            IN VARCHAR2
113294 --Deferred Accounting Start Date
113295  , p_source_67            IN DATE
113296 --Override Accounted Amount Indicator
113297  , p_source_68            IN VARCHAR2
113298  , p_source_68_meaning    IN VARCHAR2
113299 --Invoice Supplier Identifier
113300  , p_source_69            IN NUMBER
113301 --Invoice Supplier Site Identifier
113302  , p_source_70            IN NUMBER
113303 --Third Party Type
113304  , p_source_71            IN VARCHAR2
113305 --Parent Reversal Identifier
113306  , p_source_72            IN NUMBER
113307 --Invoice Distribution Tax Line Identifier
113308  , p_source_74            IN NUMBER
113312  , p_source_76            IN NUMBER
113309 --Invoice Distribution Tax Distribution Identifier from Tax
113310  , p_source_75            IN NUMBER
113311 --Invoice Distribution Summary Tax Line Identifier
113313 --Payables Upgrade Credit Encumbrance Type Identifier
113314  , p_source_77            IN NUMBER
113315 --Payables Upgrade Debit Encumbrance Type Identifier
113316  , p_source_78            IN NUMBER
113317 --Business Flow Accounts Payable Application Identifier
113318  , p_source_79            IN NUMBER
113319 --Business Flow Invoice Distribution Type
113320  , p_source_80            IN VARCHAR2
113321 --Business Flow Invoice Entity Code
113322  , p_source_81            IN VARCHAR2
113323 --Business Flow Invoice Distribution Identifier
113324  , p_source_82            IN NUMBER
113325 --Business Flow Invoice Identifier
113326  , p_source_83            IN NUMBER
113327 --Invoice Exchange Date
113328  , p_source_136            IN DATE
113329 --Invoice Exchange Rate
113330  , p_source_137            IN NUMBER
113331 --Invoice Exchange Rate Type
113332  , p_source_138            IN VARCHAR2
113333 )
113334 IS
113335 
113336 l_component_type              VARCHAR2(80);
113337 l_component_code              VARCHAR2(30);
113338 l_component_type_code         VARCHAR2(1);
113339 l_component_appl_id           INTEGER;
113340 l_amb_context_code            VARCHAR2(30);
113341 l_entity_code                 VARCHAR2(30);
113345 l_line_definition_code        VARCHAR2(30);
113342 l_event_class_code            VARCHAR2(30);
113343 l_ae_header_id                NUMBER;
113344 l_event_type_code             VARCHAR2(30);
113346 l_line_definition_owner_code  VARCHAR2(1);
113347 --
113348 -- adr variables
113349 l_segment                     VARCHAR2(30);
113350 l_ccid                        NUMBER;
113351 l_adr_transaction_coa_id      NUMBER;
113352 l_adr_accounting_coa_id       NUMBER;
113353 l_adr_flexfield_segment_code  VARCHAR2(30);
113354 l_adr_flex_value_set_id       NUMBER;
113355 l_adr_value_type_code         VARCHAR2(30);
113356 l_adr_value_combination_id    NUMBER;
113357 l_adr_value_segment_code      VARCHAR2(30);
113358 
113359 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
113360 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
113361 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
113362 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
113363 
113364 -- 4262811 Variables ------------------------------------------------------------------------------------------
113365 l_entered_amt_idx             NUMBER;
113366 l_accted_amt_idx              NUMBER;
113367 l_acc_rev_flag                VARCHAR2(1);
113368 l_accrual_line_num            NUMBER;
113369 l_tmp_amt                     NUMBER;
113370 l_acc_rev_natural_side_code   VARCHAR2(1);
113371 
113372 l_num_entries                 NUMBER;
113373 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
113374 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
113375 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
113376 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
113377 l_recog_line_1                NUMBER;
113378 l_recog_line_2                NUMBER;
113379 
113380 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
113381 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
113382 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
113383 
113384 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
113385 
113389 ---------------------------------------------------------------------------------------------------------------
113386 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
113387 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
113388 
113390 
113391 
113392 --
113393 -- bulk performance
113394 --
113395 l_balance_type_code           VARCHAR2(1);
113396 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
113397 l_log_module                  VARCHAR2(240);
113398 
113399 --
113400 -- Upgrade strategy
113401 --
113402 l_actual_upg_option           VARCHAR2(1);
113403 l_enc_upg_option           VARCHAR2(1);
113404 
113405 --
113406 BEGIN
113407 --
113408 IF g_log_enabled THEN
113409       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_193';
113410 END IF;
113411 --
113412 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
113413 
113414       trace
113415          (p_msg      => 'BEGIN of AcctLineType_193'
113416          ,p_level    => C_LEVEL_PROCEDURE
113417          ,p_module   => l_log_module);
113418 
113419 END IF;
113420 --
113421 l_component_type             := 'AMB_JLT';
113422 l_component_code             := 'AP_MISC_EXPENSE_DM';
113423 l_component_type_code        := 'S';
113424 l_component_appl_id          :=  200;
113425 l_amb_context_code           := 'DEFAULT';
113426 l_entity_code                := 'AP_INVOICES';
113427 l_event_class_code           := 'DEBIT MEMOS';
113428 l_event_type_code            := 'DEBIT MEMOS_ALL';
113429 l_line_definition_owner_code := 'S';
113430 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
113431 --
113432 l_balance_type_code          := 'A';
113433 l_segment                     := NULL;
113434 l_ccid                        := NULL;
113435 l_adr_transaction_coa_id      := NULL;
113436 l_adr_accounting_coa_id       := NULL;
113437 l_adr_flexfield_segment_code  := NULL;
113438 l_adr_flex_value_set_id       := NULL;
113439 l_adr_value_type_code         := NULL;
113440 l_adr_value_combination_id    := NULL;
113441 l_adr_value_segment_code      := NULL;
113442 
113443 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
113444 l_bflow_class_code           := '';    -- 4219869 Business Flow
113445 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
113446 l_budgetary_control_flag     := 'N';
113447 
113448 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
113449 l_bflow_applied_to_amt       := NULL; -- 5132302
113450 l_entered_amt_idx            := NULL;          -- 4262811
113451 l_accted_amt_idx             := NULL;          -- 4262811
113452 l_acc_rev_flag               := NULL;          -- 4262811
113453 l_accrual_line_num           := NULL;          -- 4262811
113454 l_tmp_amt                    := NULL;          -- 4262811
113455 --
113456  
113457 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
113458     l_balance_type_code <> 'B' THEN
113459 IF NVL(p_source_21,'
113460 ') =  'MISCELLANEOUS'
113461  THEN 
113462 
113463    --
113464    XLA_AE_LINES_PKG.SetNewLine;
113465 
113466    p_balance_type_code          := l_balance_type_code;
113467    -- set the flag so later we will know whether the gain loss line needs to be created
113468    
113469    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
113470      p_actual_flag :='A';
113471    END IF;
113472 
113473    --
113474    -- bulk performance
113475    --
113476    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
113477                                       p_header_num   => 0); -- 4262811
113478    --
113479    -- set accounting line options
113480    --
113481    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
113482            p_natural_side_code          => 'D'
113483          , p_gain_or_loss_flag          => 'N'
113484          , p_gl_transfer_mode_code      => 'S'
113485          , p_acct_entry_type_code       => 'A'
113486          , p_switch_side_flag           => 'Y'
113487          , p_merge_duplicate_code       => 'A'
113488          );
113489    --
113490    l_acc_rev_natural_side_code := 'C';  -- 4262811
113491    -- 
113492    --
113493    -- set accounting line type info
113494    --
113495    xla_ae_lines_pkg.SetAcctLineType
113496       (p_component_type             => l_component_type
113497       ,p_event_type_code            => l_event_type_code
113498       ,p_line_definition_owner_code => l_line_definition_owner_code
113499       ,p_line_definition_code       => l_line_definition_code
113503       ,p_amb_context_code           => l_amb_context_code
113500       ,p_accounting_line_code       => l_component_code
113501       ,p_accounting_line_type_code  => l_component_type_code
113502       ,p_accounting_line_appl_id    => l_component_appl_id
113504       ,p_entity_code                => l_entity_code
113505       ,p_event_class_code           => l_event_class_code);
113506    --
113507    -- set accounting class
113508    --
113509    xla_ae_lines_pkg.SetAcctClass(
113510            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
113511          , p_ae_header_id           => l_ae_header_id
113512          );
113513 
113514    --
113515    -- set rounding class
113516    --
113517    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
113518                       'MISCELLANEOUS EXPENSE';
113519 
113520    --
113521    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
113522    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
113523    --
113524    -- bulk performance
113525    --
113526    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
113527 
113528    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
113529       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
113530 
113531    -- 4955764
113532    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113533       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
113534 
113535    -- 4458381 Public Sector Enh
113536    
113537    --
113538    -- set accounting attributes for the line type
113539    --
113540    l_entered_amt_idx := 23;
113541    l_accted_amt_idx  := 28;
113542    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
113543    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
113544    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
113545    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
113546    l_rec_acct_attrs.array_num_value(2)  := 
113547 xla_ae_sources_pkg.GetSystemSourceNum(
113548    p_source_code           => 'XLA_EVENT_APPL_ID'
113549  , p_source_type_code      => 'Y'
113550  , p_source_application_id =>  602
113551 );
113552    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
113553    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
113554    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
113555    l_rec_acct_attrs.array_char_value(4)  := 
113556 xla_ae_sources_pkg.GetSystemSourceChar(
113557    p_source_code           => 'XLA_ENTITY_CODE'
113558  , p_source_type_code      => 'Y'
113559  , p_source_application_id =>  602
113560 );
113561    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
113562    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
113563    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
113564    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
113565    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
113566    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
113567    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
113568    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
113569    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
113570    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
113571    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
113572    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
113573    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
113574    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
113575    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
113576    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
113580    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
113577    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
113578    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
113579    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
113581    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
113582    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
113583    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
113584    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
113585    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
113586    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
113587    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
113588    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
113589    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
113590    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
113591    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
113592    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
113593    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
113594    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
113595    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
113596    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
113597    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
113598    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
113599    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
113600    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
113601    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
113602    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
113603    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
113604    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
113605    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
113606    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
113607    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
113608    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
113609    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
113610    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
113611    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
113612    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
113613    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
113614    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
113615    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
113616    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
113617    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
113618    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
113619    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
113623    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
113620    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
113621    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
113622    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
113624    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
113625    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
113626    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
113627    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
113628    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
113629    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
113630    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
113631    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
113632    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
113633    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
113634    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
113635    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
113636    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
113637 
113638    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
113639    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
113640 
113641    ---------------------------------------------------------------------------------------------------------------
113642    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
113643    ---------------------------------------------------------------------------------------------------------------
113647    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113644    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
113645 
113646    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113648 
113649    IF xla_accounting_cache_pkg.GetValueChar
113650          (p_source_code         => 'LEDGER_CATEGORY_CODE'
113651          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
113652    AND l_bflow_method_code = 'PRIOR_ENTRY'
113653 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
113654    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
113655          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
113656        )
113657    THEN
113658          xla_ae_lines_pkg.BflowUpgEntry
113659            (p_business_method_code    => l_bflow_method_code
113660            ,p_business_class_code     => l_bflow_class_code
113661            ,p_balance_type            => l_balance_type_code);
113662    ELSE
113663       NULL;
113664 -- No business flow processing for business flow method of NONE.
113665    END IF;
113666 
113667    --
113668    -- call analytical criteria
113669    --
113670    
113671    --
113672    -- call description
113673    --
113674    
113675 xla_ae_lines_pkg.SetLineDescription(
113676    p_ae_header_id => l_ae_header_id
113677   ,p_description  => Description_2 (
113678      p_application_id         => p_application_id
113679    , p_ae_header_id           => l_ae_header_id 
113680 , p_source_1 => p_source_1
113681    )
113682 );
113683 
113684 
113685    --
113686    -- call ADRs
113687    -- Bug 4922099
113688    --
113689    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113690         (NVL(l_actual_upg_option, 'N') = 'O') OR
113691         (NVL(l_enc_upg_option, 'N') = 'O')
113692       )
113693    THEN
113694    NULL;
113695    --
113696    --
113697    
113698   l_ccid := AcctDerRule_32(
113699            p_application_id           => p_application_id
113700          , p_ae_header_id             => l_ae_header_id 
113701 , p_source_18 => p_source_18
113702          , x_transaction_coa_id       => l_adr_transaction_coa_id
113703          , x_accounting_coa_id        => l_adr_accounting_coa_id
113704          , x_value_type_code          => l_adr_value_type_code
113705          , p_side                     => 'NA'
113706    );
113707 
113708    xla_ae_lines_pkg.set_ccid(
113709     p_code_combination_id          => l_ccid
113710   , p_value_type_code              => l_adr_value_type_code
113711   , p_transaction_coa_id           => l_adr_transaction_coa_id
113712   , p_accounting_coa_id            => l_adr_accounting_coa_id
113713   , p_adr_code                     => 'AP_INVOICE_DIST'
113714   , p_adr_type_code                => 'S'
113715   , p_component_type               => l_component_type
113716   , p_component_code               => l_component_code
113717   , p_component_type_code          => l_component_type_code
113718   , p_component_appl_id            => l_component_appl_id
113719   , p_amb_context_code             => l_amb_context_code
113720   , p_side                         => 'NA'
113721   );
113722 
113723 
113724    --
113725    --
113726    END IF;
113727    --
113728    -- Bug 4922099
113729    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
113730           (NVL(l_enc_upg_option, 'N') = 'O')
113731         ) AND
113732         (l_bflow_method_code = 'PRIOR_ENTRY')
113733       )
113734    THEN
113735       IF
113736       --
113737       1 = 2
113738       --
113739       THEN
113740       xla_accounting_err_pkg.build_message
113741                                     (p_appli_s_name            => 'XLA'
113742                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
113743                                     ,p_token_1                 => 'LINE_NUMBER'
113744                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
113745                                     ,p_token_2                 => 'LINE_TYPE_NAME'
113746                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
113747                                                                              l_component_type
113748                                                                             ,l_component_code
113749                                                                             ,l_component_type_code
113750                                                                             ,l_component_appl_id
113751                                                                             ,l_amb_context_code
113752                                                                             ,l_entity_code
113753                                                                             ,l_event_class_code
113754                                                                            )
113755                                     ,p_token_3                 => 'OWNER'
113759                                                                          )
113756                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
113757                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
113758                                                                           ,p_lookup_code    => l_component_type_code
113760                                     ,p_token_4                 => 'PRODUCT_NAME'
113761                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
113762                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
113763                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
113764                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
113765                                     ,p_ae_header_id            =>  NULL
113766                                        );
113767 
113768         IF (C_LEVEL_ERROR>= g_log_level) THEN
113769                  trace
113770                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
113771                       ,p_level    => C_LEVEL_ERROR
113772                       ,p_module   => l_log_module);
113773         END IF;
113774       END IF;
113775    END IF;
113776    --
113777    --
113778    ------------------------------------------------------------------------------------------------
113779    -- 4219869 Business Flow
113780    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
113781    -- Prior Entry.  Currently, the following code is always generated.
113782    ------------------------------------------------------------------------------------------------
113783    XLA_AE_LINES_PKG.ValidateCurrentLine;
113784 
113785    ------------------------------------------------------------------------------------
113786    -- 4219869 Business Flow
113787    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
113788    ------------------------------------------------------------------------------------
113789    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113790 
113791    ----------------------------------------------------------------------------------
113792    -- 4219869 Business Flow
113793    -- Update journal entry status -- Need to generate this within IF <condition>
113794    ----------------------------------------------------------------------------------
113795    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113796          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
113797          ,p_balance_type_code => l_balance_type_code
113798          );
113799 
113800    -------------------------------------------------------------------------------------------
113801    -- 4262811 - Generate the Accrual Reversal lines
113802    -------------------------------------------------------------------------------------------
113803    BEGIN
113804       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
113805                               (g_array_event(p_event_id).array_value_num('header_index'));
113806       IF l_acc_rev_flag IS NULL THEN
113807          l_acc_rev_flag := 'N';
113808       END IF;
113812    END;
113809    EXCEPTION
113810       WHEN OTHERS THEN
113811          l_acc_rev_flag := 'N';
113813    --
113814    IF (l_acc_rev_flag = 'Y') THEN
113815 
113816        -- 4645092  ------------------------------------------------------------------------------
113817        -- To allow MPA report to determine if it should generate report process
113818        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
113819        ------------------------------------------------------------------------------------------
113820 
113821        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
113822        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
113823    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
113824    -- call ADRs
113825    -- Bug 4922099
113826    --
113827    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113828         (NVL(l_actual_upg_option, 'N') = 'O') OR
113829         (NVL(l_enc_upg_option, 'N') = 'O')
113830       )
113831    THEN
113832    NULL;
113833    --
113834    --
113835    
113836   l_ccid := AcctDerRule_32(
113837            p_application_id           => p_application_id
113838          , p_ae_header_id             => l_ae_header_id 
113839 , p_source_18 => p_source_18
113840          , x_transaction_coa_id       => l_adr_transaction_coa_id
113841          , x_accounting_coa_id        => l_adr_accounting_coa_id
113842          , x_value_type_code          => l_adr_value_type_code
113843          , p_side                     => 'NA'
113844    );
113845 
113846    xla_ae_lines_pkg.set_ccid(
113847     p_code_combination_id          => l_ccid
113848   , p_value_type_code              => l_adr_value_type_code
113849   , p_transaction_coa_id           => l_adr_transaction_coa_id
113850   , p_accounting_coa_id            => l_adr_accounting_coa_id
113851   , p_adr_code                     => 'AP_INVOICE_DIST'
113852   , p_adr_type_code                => 'S'
113853   , p_component_type               => l_component_type
113854   , p_component_code               => l_component_code
113855   , p_component_type_code          => l_component_type_code
113856   , p_component_appl_id            => l_component_appl_id
113857   , p_amb_context_code             => l_amb_context_code
113858   , p_side                         => 'NA'
113859   );
113860 
113861 
113862    --
113863    --
113864    END IF;
113865 
113866        --
113867        -- Update the line information that should be overwritten
113868        --
113869        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
113870                                          p_header_num   => 1);
113871        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
113872 
113873        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
113874 
113875        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
113876           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
113877        END IF;
113878 
113879       --
113880       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
113881       --
113882       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
113883           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
113884       ELSE
113888           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
113885           ---------------------------------------------------------------------------------------------------
113886           -- 4262811a Switch Sign
113887           ---------------------------------------------------------------------------------------------------
113889           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113890                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113891           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113892                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113893           -- 5132302
113894           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
113895                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113896 
113897       END IF;
113898 
113899       -- 4955764
113900       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113901       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
113902 
113903 
113904       XLA_AE_LINES_PKG.ValidateCurrentLine;
113905       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113906 
113910 
113907       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113908                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
113909                ,p_balance_type_code => l_balance_type_code);
113911    END IF;
113912 
113913    -----------------------------------------------------------------------------------------
113914    -- 4262811 Multiperiod Accounting
113915    -----------------------------------------------------------------------------------------
113916      -- No MPA option is assigned.
113917 
113918 
113919 END IF;
113920 END IF;
113921 --
113922 
113923 --
113924 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
113925    trace
113926       (p_msg      => 'END of AcctLineType_193'
113927       ,p_level    => C_LEVEL_PROCEDURE
113928       ,p_module   => l_log_module);
113929 END IF;
113930 --
113931 EXCEPTION
113932   WHEN xla_exceptions_pkg.application_exception THEN
113933       RAISE;
113934   WHEN OTHERS THEN
113935        xla_exceptions_pkg.raise_message
113936            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_193');
113937 END AcctLineType_193;
113938 --
113939 
113940 ---------------------------------------
113941 --
113942 -- PRIVATE FUNCTION
113943 --         AcctLineType_194
113944 --
113945 ---------------------------------------
113946 PROCEDURE AcctLineType_194 (
113947   p_application_id        IN NUMBER
113948  ,p_event_id              IN NUMBER
113949  ,p_calculate_acctd_flag  IN VARCHAR2
113950  ,p_calculate_g_l_flag    IN VARCHAR2
113951  ,p_actual_flag           IN OUT VARCHAR2
113952  ,p_balance_type_code     OUT VARCHAR2
113953  ,p_gain_or_loss_ref      OUT VARCHAR2
113954  
113955 --Invoice Distribution Type
113956  , p_source_21            IN VARCHAR2
113957  , p_source_21_meaning    IN VARCHAR2
113958 --Accounting Reversal Indicator
113959  , p_source_41            IN VARCHAR2
113960 --Distribution Link Type
113961  , p_source_43            IN VARCHAR2
113962 --Allocation to Main Distribution Identifier
113963  , p_source_45            IN NUMBER
113964 --Invoice Identifier
113965  , p_source_46            IN NUMBER
113966 --Invoice Distribution Identifier
113967  , p_source_52            IN NUMBER
113968 --Payables Encumbrance Upgrade Credit Account
113969  , p_source_53            IN NUMBER
113970 --Payables Encumbrance Upgrade Credit Amount
113971  , p_source_54            IN NUMBER
113972 --Invoice Currency Code
113973  , p_source_55            IN VARCHAR2
113974 --Payables Encumbrance Upgrade Credit Base Amount
113975  , p_source_56            IN NUMBER
113976 --Payables Encumbrance Upgrade Debit Account
113977  , p_source_57            IN NUMBER
113978 --Payables Encumbrance Upgrade Debit Amount
113979  , p_source_58            IN NUMBER
113980 --Payables Encumbrance Upgrade Debit Base Amount
113981  , p_source_59            IN NUMBER
113982 --Payables Encumbrance Upgrade Option
113983  , p_source_60            IN VARCHAR2
113984 --Deferred Accounting End Date
113985  , p_source_65            IN DATE
113986 --Deferred Accounting Option
113987  , p_source_66            IN VARCHAR2
113988 --Deferred Accounting Start Date
113989  , p_source_67            IN DATE
113990 --Override Accounted Amount Indicator
113991  , p_source_68            IN VARCHAR2
113992  , p_source_68_meaning    IN VARCHAR2
113993 --Third Party Type
113994  , p_source_71            IN VARCHAR2
113995 --Parent Reversal Identifier
113996  , p_source_72            IN NUMBER
113997 --Invoice Distribution Tax Line Identifier
113998  , p_source_74            IN NUMBER
113999 --Invoice Distribution Tax Distribution Identifier from Tax
114000  , p_source_75            IN NUMBER
114001 --Invoice Distribution Summary Tax Line Identifier
114002  , p_source_76            IN NUMBER
114003 --Payables Upgrade Credit Encumbrance Type Identifier
114004  , p_source_77            IN NUMBER
114005 --Payables Upgrade Debit Encumbrance Type Identifier
114006  , p_source_78            IN NUMBER
114007 --Business Flow Accounts Payable Application Identifier
114008  , p_source_79            IN NUMBER
114009 --Business Flow Invoice Distribution Type
114010  , p_source_80            IN VARCHAR2
114011 --Business Flow Invoice Entity Code
114012  , p_source_81            IN VARCHAR2
114013 --Business Flow Invoice Distribution Identifier
114014  , p_source_82            IN NUMBER
114015 --Business Flow Invoice Identifier
114016  , p_source_83            IN NUMBER
114017 --Purchasing Encumbrance Option
114018  , p_source_86            IN VARCHAR2
114019  , p_source_86_meaning    IN VARCHAR2
114020 --Invoice Encumbered Option
114021  , p_source_87            IN VARCHAR2
114022  , p_source_87_meaning    IN VARCHAR2
114023 --Invoice Distribution Encumbrance Amount
114024  , p_source_143            IN NUMBER
114025 --Invoice Distribution Encumbrance Ledger Amount
114026  , p_source_144            IN NUMBER
114027 )
114028 IS
114029 
114030 l_component_type              VARCHAR2(80);
114031 l_component_code              VARCHAR2(30);
114032 l_component_type_code         VARCHAR2(1);
114033 l_component_appl_id           INTEGER;
114034 l_amb_context_code            VARCHAR2(30);
114035 l_entity_code                 VARCHAR2(30);
114036 l_event_class_code            VARCHAR2(30);
114037 l_ae_header_id                NUMBER;
114038 l_event_type_code             VARCHAR2(30);
114039 l_line_definition_code        VARCHAR2(30);
114045 l_adr_transaction_coa_id      NUMBER;
114040 l_line_definition_owner_code  VARCHAR2(1);
114041 --
114042 -- adr variables
114043 l_segment                     VARCHAR2(30);
114044 l_ccid                        NUMBER;
114046 l_adr_accounting_coa_id       NUMBER;
114047 l_adr_flexfield_segment_code  VARCHAR2(30);
114048 l_adr_flex_value_set_id       NUMBER;
114049 l_adr_value_type_code         VARCHAR2(30);
114050 l_adr_value_combination_id    NUMBER;
114051 l_adr_value_segment_code      VARCHAR2(30);
114052 
114053 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
114054 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
114055 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
114056 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
114057 
114058 -- 4262811 Variables ------------------------------------------------------------------------------------------
114059 l_entered_amt_idx             NUMBER;
114060 l_accted_amt_idx              NUMBER;
114061 l_acc_rev_flag                VARCHAR2(1);
114062 l_accrual_line_num            NUMBER;
114063 l_tmp_amt                     NUMBER;
114064 l_acc_rev_natural_side_code   VARCHAR2(1);
114065 
114066 l_num_entries                 NUMBER;
114067 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
114068 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
114069 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
114070 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
114071 l_recog_line_1                NUMBER;
114072 l_recog_line_2                NUMBER;
114073 
114074 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
114075 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
114076 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
114077 
114078 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
114079 
114080 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
114081 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
114082 
114083 ---------------------------------------------------------------------------------------------------------------
114084 
114085 
114086 --
114087 -- bulk performance
114088 --
114089 l_balance_type_code           VARCHAR2(1);
114090 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
114091 l_log_module                  VARCHAR2(240);
114092 
114093 --
114094 -- Upgrade strategy
114095 --
114096 l_actual_upg_option           VARCHAR2(1);
114097 l_enc_upg_option           VARCHAR2(1);
114098 
114099 --
114100 BEGIN
114101 --
114102 IF g_log_enabled THEN
114103       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_194';
114104 END IF;
114105 --
114106 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114107 
114108       trace
114109          (p_msg      => 'BEGIN of AcctLineType_194'
114110          ,p_level    => C_LEVEL_PROCEDURE
114111          ,p_module   => l_log_module);
114112 
114113 END IF;
114114 --
114115 l_component_type             := 'AMB_JLT';
114116 l_component_code             := 'AP_MISC_EXPENSE_DM_ENC';
114117 l_component_type_code        := 'S';
114118 l_component_appl_id          :=  200;
114119 l_amb_context_code           := 'DEFAULT';
114120 l_entity_code                := 'AP_INVOICES';
114121 l_event_class_code           := 'DEBIT MEMOS';
114122 l_event_type_code            := 'DEBIT MEMOS_ALL';
114123 l_line_definition_owner_code := 'S';
114124 l_line_definition_code       := 'ENC_REV_DM_ALL';
114125 --
114126 l_balance_type_code          := 'E';
114127 l_segment                     := NULL;
114128 l_ccid                        := NULL;
114129 l_adr_transaction_coa_id      := NULL;
114130 l_adr_accounting_coa_id       := NULL;
114131 l_adr_flexfield_segment_code  := NULL;
114132 l_adr_flex_value_set_id       := NULL;
114133 l_adr_value_type_code         := NULL;
114134 l_adr_value_combination_id    := NULL;
114135 l_adr_value_segment_code      := NULL;
114136 
114137 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
114138 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
114139 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
114140 l_budgetary_control_flag     := 'N';
114141 
114142 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
114143 l_bflow_applied_to_amt       := NULL; -- 5132302
114144 l_entered_amt_idx            := NULL;          -- 4262811
114145 l_accted_amt_idx             := NULL;          -- 4262811
114146 l_acc_rev_flag               := NULL;          -- 4262811
114147 l_accrual_line_num           := NULL;          -- 4262811
114148 l_tmp_amt                    := NULL;          -- 4262811
114149 --
114150  
114151 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
114152     l_balance_type_code <> 'B' THEN
114153 IF NVL(p_source_21,'
114154 ') =  'MISCELLANEOUS' AND 
114155 NVL(p_source_86,'
114156 ') =  'Y' AND 
114157 NVL(p_source_87,'
114161    --
114158 ') =  'Y'
114159  THEN 
114160 
114162    XLA_AE_LINES_PKG.SetNewLine;
114163 
114164    p_balance_type_code          := l_balance_type_code;
114165    -- set the flag so later we will know whether the gain loss line needs to be created
114166    
114167    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
114168      p_actual_flag :='A';
114169    END IF;
114170 
114171    --
114172    -- bulk performance
114173    --
114174    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
114175                                       p_header_num   => 0); -- 4262811
114176    --
114177    -- set accounting line options
114178    --
114179    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
114180            p_natural_side_code          => 'C'
114181          , p_gain_or_loss_flag          => 'N'
114182          , p_gl_transfer_mode_code      => 'S'
114183          , p_acct_entry_type_code       => 'E'
114184          , p_switch_side_flag           => 'Y'
114185          , p_merge_duplicate_code       => 'A'
114186          );
114187    --
114188    l_acc_rev_natural_side_code := 'D';  -- 4262811
114189    -- 
114190    --
114191    -- set accounting line type info
114192    --
114193    xla_ae_lines_pkg.SetAcctLineType
114194       (p_component_type             => l_component_type
114195       ,p_event_type_code            => l_event_type_code
114196       ,p_line_definition_owner_code => l_line_definition_owner_code
114197       ,p_line_definition_code       => l_line_definition_code
114201       ,p_amb_context_code           => l_amb_context_code
114198       ,p_accounting_line_code       => l_component_code
114199       ,p_accounting_line_type_code  => l_component_type_code
114200       ,p_accounting_line_appl_id    => l_component_appl_id
114202       ,p_entity_code                => l_entity_code
114203       ,p_event_class_code           => l_event_class_code);
114204    --
114205    -- set accounting class
114206    --
114207    xla_ae_lines_pkg.SetAcctClass(
114208            p_accounting_class_code  => 'FREIGHT'
114209          , p_ae_header_id           => l_ae_header_id
114210          );
114211 
114212    --
114213    -- set rounding class
114214    --
114215    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
114216                       'FREIGHT';
114217 
114218    --
114219    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
114220    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
114221    --
114222    -- bulk performance
114223    --
114224    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
114225 
114226    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
114227       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
114228 
114229    -- 4955764
114230    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
114231       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
114232 
114233    -- 4458381 Public Sector Enh
114234    
114235    --
114236    -- set accounting attributes for the line type
114237    --
114238    l_entered_amt_idx := 23;
114239    l_accted_amt_idx  := 25;
114240    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
114241    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
114242    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
114243    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
114244    l_rec_acct_attrs.array_num_value(2)  := 
114245 xla_ae_sources_pkg.GetSystemSourceNum(
114246    p_source_code           => 'XLA_EVENT_APPL_ID'
114247  , p_source_type_code      => 'Y'
114248  , p_source_application_id =>  602
114249 );
114250    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
114251    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
114252    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
114253    l_rec_acct_attrs.array_char_value(4)  := 
114254 xla_ae_sources_pkg.GetSystemSourceChar(
114255    p_source_code           => 'XLA_ENTITY_CODE'
114256  , p_source_type_code      => 'Y'
114257  , p_source_application_id =>  602
114258 );
114259    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
114260    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
114261    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
114262    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
114266    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
114263    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
114264    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
114265    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
114267    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
114268    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
114269    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
114270    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
114271    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
114272    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
114273    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
114274    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
114275    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
114276    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
114277    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
114278    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
114279    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
114280    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
114281    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
114282    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
114283    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
114284    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
114285    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
114286    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
114287    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
114288    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
114289    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
114290    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
114291    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
114292    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
114293    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
114294    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
114295    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
114296    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
114297    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
114298    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
114299    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
114300    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
114301    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
114302    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
114303    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
114304    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
114305    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
114306    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
114307    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
114308    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
114309    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
114310    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
114311    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
114312    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
114313    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
114314    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
114315    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
114316    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
114317    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
114318    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
114319    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
114320    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
114321    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
114322    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
114323    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
114324    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
114325 
114326    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
114327    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
114328 
114329    ---------------------------------------------------------------------------------------------------------------
114330    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
114331    ---------------------------------------------------------------------------------------------------------------
114332    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
114333 
114334    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
114335    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
114336 
114337    IF xla_accounting_cache_pkg.GetValueChar
114338          (p_source_code         => 'LEDGER_CATEGORY_CODE'
114339          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
114340    AND l_bflow_method_code = 'PRIOR_ENTRY'
114341 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
114342    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
114343          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
114344        )
114345    THEN
114346          xla_ae_lines_pkg.BflowUpgEntry
114347            (p_business_method_code    => l_bflow_method_code
114348            ,p_business_class_code     => l_bflow_class_code
114349            ,p_balance_type            => l_balance_type_code);
114350    ELSE
114351       NULL;
114352 XLA_AE_LINES_PKG.business_flow_validation(
114356    END IF;
114353                                 p_business_method_code     => l_bflow_method_code
114354                                ,p_business_class_code      => l_bflow_class_code
114355                                ,p_inherit_description_flag => l_inherit_desc_flag);
114357 
114358    --
114359    -- call analytical criteria
114360    --
114361    -- Inherited Analytical Criteria for business flow method of Prior Entry.
114362    --
114363    -- call description
114364    --
114365    -- No description or it is inherited.
114366    --
114367    -- call ADRs
114368    -- Bug 4922099
114369    --
114370    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
114371         (NVL(l_actual_upg_option, 'N') = 'O') OR
114372         (NVL(l_enc_upg_option, 'N') = 'O')
114373       )
114374    THEN
114375    NULL;
114376    --
114377    --
114378    
114379    --
114380    --
114381    END IF;
114382    --
114383    -- Bug 4922099
114384    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
114385           (NVL(l_enc_upg_option, 'N') = 'O')
114386         ) AND
114387         (l_bflow_method_code = 'PRIOR_ENTRY')
114388       )
114389    THEN
114390       IF
114391       --
114392       1 = 1
114393       --
114394       THEN
114395       xla_accounting_err_pkg.build_message
114396                                     (p_appli_s_name            => 'XLA'
114397                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
114398                                     ,p_token_1                 => 'LINE_NUMBER'
114399                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
114400                                     ,p_token_2                 => 'LINE_TYPE_NAME'
114401                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
114402                                                                              l_component_type
114403                                                                             ,l_component_code
114404                                                                             ,l_component_type_code
114405                                                                             ,l_component_appl_id
114406                                                                             ,l_amb_context_code
114407                                                                             ,l_entity_code
114408                                                                             ,l_event_class_code
114409                                                                            )
114410                                     ,p_token_3                 => 'OWNER'
114411                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
114412                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
114413                                                                           ,p_lookup_code    => l_component_type_code
114414                                                                          )
114415                                     ,p_token_4                 => 'PRODUCT_NAME'
114416                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
114417                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
114418                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
114419                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
114420                                     ,p_ae_header_id            =>  NULL
114421                                        );
114422 
114423         IF (C_LEVEL_ERROR>= g_log_level) THEN
114424                  trace
114425                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
114426                       ,p_level    => C_LEVEL_ERROR
114427                       ,p_module   => l_log_module);
114428         END IF;
114429       END IF;
114430    END IF;
114431    --
114432    --
114433    ------------------------------------------------------------------------------------------------
114434    -- 4219869 Business Flow
114435    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
114436    -- Prior Entry.  Currently, the following code is always generated.
114437    ------------------------------------------------------------------------------------------------
114438    -- No ValidateCurrentLine for business flow method of Prior Entry
114439 
114443    ------------------------------------------------------------------------------------
114440    ------------------------------------------------------------------------------------
114441    -- 4219869 Business Flow
114442    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
114444    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
114445 
114446    ----------------------------------------------------------------------------------
114447    -- 4219869 Business Flow
114448    -- Update journal entry status -- Need to generate this within IF <condition>
114449    ----------------------------------------------------------------------------------
114450    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
114451          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
114452          ,p_balance_type_code => l_balance_type_code
114453          );
114454 
114455    -------------------------------------------------------------------------------------------
114456    -- 4262811 - Generate the Accrual Reversal lines
114457    -------------------------------------------------------------------------------------------
114458    BEGIN
114459       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
114460                               (g_array_event(p_event_id).array_value_num('header_index'));
114461       IF l_acc_rev_flag IS NULL THEN
114462          l_acc_rev_flag := 'N';
114463       END IF;
114464    EXCEPTION
114465       WHEN OTHERS THEN
114466          l_acc_rev_flag := 'N';
114467    END;
114468    --
114469    IF (l_acc_rev_flag = 'Y') THEN
114470 
114471        -- 4645092  ------------------------------------------------------------------------------
114472        -- To allow MPA report to determine if it should generate report process
114473        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
114474        ------------------------------------------------------------------------------------------
114475 
114476        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
114477        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
114478    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
114479    -- call ADRs
114480    -- Bug 4922099
114481    --
114482    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
114483         (NVL(l_actual_upg_option, 'N') = 'O') OR
114484         (NVL(l_enc_upg_option, 'N') = 'O')
114485       )
114486    THEN
114487    NULL;
114488    --
114489    --
114490    
114491    --
114492    --
114493    END IF;
114494 
114495        --
114496        -- Update the line information that should be overwritten
114497        --
114498        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
114499                                          p_header_num   => 1);
114500        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
114501 
114502        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
114503 
114504        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
114505           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
114506        END IF;
114507 
114508       --
114509       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
114510       --
114511       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
114512           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
114513       ELSE
114514           ---------------------------------------------------------------------------------------------------
114515           -- 4262811a Switch Sign
114516           ---------------------------------------------------------------------------------------------------
114517           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
114518           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
114519                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114520           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
114521                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114522           -- 5132302
114523           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
114524                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114525 
114526       END IF;
114527 
114528       -- 4955764
114532 
114529       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
114530       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
114531 
114533       XLA_AE_LINES_PKG.ValidateCurrentLine;
114534       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
114535 
114536       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
114537                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
114538                ,p_balance_type_code => l_balance_type_code);
114539 
114540    END IF;
114541 
114542    -----------------------------------------------------------------------------------------
114543    -- 4262811 Multiperiod Accounting
114544    -----------------------------------------------------------------------------------------
114545      -- No MPA option is assigned.
114546 
114547 
114548 END IF;
114549 END IF;
114550 --
114551 
114552 --
114553 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114554    trace
114555       (p_msg      => 'END of AcctLineType_194'
114556       ,p_level    => C_LEVEL_PROCEDURE
114557       ,p_module   => l_log_module);
114558 END IF;
114559 --
114560 EXCEPTION
114561   WHEN xla_exceptions_pkg.application_exception THEN
114562       RAISE;
114563   WHEN OTHERS THEN
114564        xla_exceptions_pkg.raise_message
114565            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_194');
114566 END AcctLineType_194;
114567 --
114568 
114569 ---------------------------------------
114570 --
114571 -- PRIVATE FUNCTION
114572 --         AcctLineType_195
114573 --
114574 ---------------------------------------
114575 PROCEDURE AcctLineType_195 (
114576   p_application_id        IN NUMBER
114577  ,p_event_id              IN NUMBER
114578  ,p_calculate_acctd_flag  IN VARCHAR2
114579  ,p_calculate_g_l_flag    IN VARCHAR2
114580  ,p_actual_flag           IN OUT VARCHAR2
114581  ,p_balance_type_code     OUT VARCHAR2
114582  ,p_gain_or_loss_ref      OUT VARCHAR2
114583  
114584 --Invoice Distribution Description
114588 --Invoice Distribution Account
114585  , p_source_1            IN VARCHAR2
114586 --Invoice Distribution Ledger Amount
114587  , p_source_9            IN NUMBER
114589  , p_source_18            IN NUMBER
114590 --Invoice Distribution Type
114591  , p_source_21            IN VARCHAR2
114592  , p_source_21_meaning    IN VARCHAR2
114593 --Accounting Reversal Indicator
114594  , p_source_41            IN VARCHAR2
114595 --Distribution Link Type
114596  , p_source_43            IN VARCHAR2
114597 --Allocation to Main Distribution Identifier
114598  , p_source_45            IN NUMBER
114599 --Invoice Identifier
114600  , p_source_46            IN NUMBER
114601 --Invoice Distribution Identifier
114602  , p_source_52            IN NUMBER
114603 --Payables Encumbrance Upgrade Credit Account
114604  , p_source_53            IN NUMBER
114605 --Payables Encumbrance Upgrade Credit Amount
114606  , p_source_54            IN NUMBER
114607 --Invoice Currency Code
114608  , p_source_55            IN VARCHAR2
114609 --Payables Encumbrance Upgrade Credit Base Amount
114610  , p_source_56            IN NUMBER
114611 --Payables Encumbrance Upgrade Debit Account
114612  , p_source_57            IN NUMBER
114613 --Payables Encumbrance Upgrade Debit Amount
114614  , p_source_58            IN NUMBER
114615 --Payables Encumbrance Upgrade Debit Base Amount
114616  , p_source_59            IN NUMBER
114617 --Payables Encumbrance Upgrade Option
114618  , p_source_60            IN VARCHAR2
114619 --Invoice Distribution Amount
114620  , p_source_61            IN NUMBER
114621 --Deferred Accounting End Date
114622  , p_source_65            IN DATE
114623 --Deferred Accounting Option
114624  , p_source_66            IN VARCHAR2
114625 --Deferred Accounting Start Date
114626  , p_source_67            IN DATE
114627 --Override Accounted Amount Indicator
114628  , p_source_68            IN VARCHAR2
114629  , p_source_68_meaning    IN VARCHAR2
114630 --Invoice Supplier Identifier
114631  , p_source_69            IN NUMBER
114632 --Invoice Supplier Site Identifier
114633  , p_source_70            IN NUMBER
114634 --Third Party Type
114635  , p_source_71            IN VARCHAR2
114636 --Parent Reversal Identifier
114637  , p_source_72            IN NUMBER
114638 --Invoice Distribution Statistical Amount
114639  , p_source_73            IN NUMBER
114640 --Invoice Distribution Tax Line Identifier
114641  , p_source_74            IN NUMBER
114642 --Invoice Distribution Tax Distribution Identifier from Tax
114643  , p_source_75            IN NUMBER
114644 --Invoice Distribution Summary Tax Line Identifier
114645  , p_source_76            IN NUMBER
114646 --Payables Upgrade Credit Encumbrance Type Identifier
114647  , p_source_77            IN NUMBER
114648 --Payables Upgrade Debit Encumbrance Type Identifier
114649  , p_source_78            IN NUMBER
114650 --Business Flow Accounts Payable Application Identifier
114651  , p_source_79            IN NUMBER
114652 --Business Flow Invoice Distribution Type
114653  , p_source_80            IN VARCHAR2
114654 --Business Flow Invoice Entity Code
114655  , p_source_81            IN VARCHAR2
114656 --Business Flow Invoice Distribution Identifier
114657  , p_source_82            IN NUMBER
114658 --Business Flow Invoice Identifier
114659  , p_source_83            IN NUMBER
114660 --Invoice Exchange Date
114661  , p_source_136            IN DATE
114662 --Invoice Exchange Rate
114663  , p_source_137            IN NUMBER
114664 --Invoice Exchange Rate Type
114665  , p_source_138            IN VARCHAR2
114666 )
114667 IS
114668 
114669 l_component_type              VARCHAR2(80);
114670 l_component_code              VARCHAR2(30);
114671 l_component_type_code         VARCHAR2(1);
114672 l_component_appl_id           INTEGER;
114673 l_amb_context_code            VARCHAR2(30);
114674 l_entity_code                 VARCHAR2(30);
114675 l_event_class_code            VARCHAR2(30);
114676 l_ae_header_id                NUMBER;
114677 l_event_type_code             VARCHAR2(30);
114678 l_line_definition_code        VARCHAR2(30);
114679 l_line_definition_owner_code  VARCHAR2(1);
114680 --
114681 -- adr variables
114685 l_adr_accounting_coa_id       NUMBER;
114682 l_segment                     VARCHAR2(30);
114683 l_ccid                        NUMBER;
114684 l_adr_transaction_coa_id      NUMBER;
114686 l_adr_flexfield_segment_code  VARCHAR2(30);
114687 l_adr_flex_value_set_id       NUMBER;
114688 l_adr_value_type_code         VARCHAR2(30);
114689 l_adr_value_combination_id    NUMBER;
114690 l_adr_value_segment_code      VARCHAR2(30);
114691 
114692 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
114693 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
114694 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
114695 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
114696 
114697 -- 4262811 Variables ------------------------------------------------------------------------------------------
114698 l_entered_amt_idx             NUMBER;
114699 l_accted_amt_idx              NUMBER;
114700 l_acc_rev_flag                VARCHAR2(1);
114701 l_accrual_line_num            NUMBER;
114702 l_tmp_amt                     NUMBER;
114703 l_acc_rev_natural_side_code   VARCHAR2(1);
114704 
114705 l_num_entries                 NUMBER;
114706 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
114707 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
114708 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
114709 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
114710 l_recog_line_1                NUMBER;
114711 l_recog_line_2                NUMBER;
114712 
114713 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
114714 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
114715 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
114716 
114717 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
114718 
114719 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
114720 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
114721 
114722 ---------------------------------------------------------------------------------------------------------------
114723 
114724 
114725 --
114726 -- bulk performance
114727 --
114728 l_balance_type_code           VARCHAR2(1);
114729 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
114730 l_log_module                  VARCHAR2(240);
114731 
114732 --
114733 -- Upgrade strategy
114734 --
114735 l_actual_upg_option           VARCHAR2(1);
114736 l_enc_upg_option           VARCHAR2(1);
114737 
114738 --
114739 BEGIN
114740 --
114744 --
114741 IF g_log_enabled THEN
114742       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_195';
114743 END IF;
114745 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114746 
114747       trace
114748          (p_msg      => 'BEGIN of AcctLineType_195'
114749          ,p_level    => C_LEVEL_PROCEDURE
114750          ,p_module   => l_log_module);
114751 
114752 END IF;
114753 --
114754 l_component_type             := 'AMB_JLT';
114755 l_component_code             := 'AP_MISC_EXPENSE_INV';
114756 l_component_type_code        := 'S';
114757 l_component_appl_id          :=  200;
114758 l_amb_context_code           := 'DEFAULT';
114759 l_entity_code                := 'AP_INVOICES';
114760 l_event_class_code           := 'INVOICES';
114761 l_event_type_code            := 'INVOICES_ALL';
114762 l_line_definition_owner_code := 'S';
114763 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
114764 --
114765 l_balance_type_code          := 'A';
114766 l_segment                     := NULL;
114767 l_ccid                        := NULL;
114768 l_adr_transaction_coa_id      := NULL;
114769 l_adr_accounting_coa_id       := NULL;
114770 l_adr_flexfield_segment_code  := NULL;
114771 l_adr_flex_value_set_id       := NULL;
114772 l_adr_value_type_code         := NULL;
114773 l_adr_value_combination_id    := NULL;
114774 l_adr_value_segment_code      := NULL;
114775 
114776 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
114777 l_bflow_class_code           := '';    -- 4219869 Business Flow
114778 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
114779 l_budgetary_control_flag     := 'N';
114780 
114781 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
114782 l_bflow_applied_to_amt       := NULL; -- 5132302
114786 l_accrual_line_num           := NULL;          -- 4262811
114783 l_entered_amt_idx            := NULL;          -- 4262811
114784 l_accted_amt_idx             := NULL;          -- 4262811
114785 l_acc_rev_flag               := NULL;          -- 4262811
114787 l_tmp_amt                    := NULL;          -- 4262811
114788 --
114789  
114790 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
114791     l_balance_type_code <> 'B' THEN
114792 IF NVL(p_source_21,'
114793 ') =  'MISCELLANEOUS'
114794  THEN 
114795 
114796    --
114797    XLA_AE_LINES_PKG.SetNewLine;
114798 
114799    p_balance_type_code          := l_balance_type_code;
114800    -- set the flag so later we will know whether the gain loss line needs to be created
114801    
114802    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
114803      p_actual_flag :='A';
114804    END IF;
114805 
114806    --
114807    -- bulk performance
114808    --
114809    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
114810                                       p_header_num   => 0); -- 4262811
114811    --
114812    -- set accounting line options
114813    --
114814    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
114815            p_natural_side_code          => 'D'
114816          , p_gain_or_loss_flag          => 'N'
114817          , p_gl_transfer_mode_code      => 'S'
114818          , p_acct_entry_type_code       => 'A'
114819          , p_switch_side_flag           => 'Y'
114820          , p_merge_duplicate_code       => 'A'
114821          );
114822    --
114823    l_acc_rev_natural_side_code := 'C';  -- 4262811
114824    -- 
114825    --
114826    -- set accounting line type info
114827    --
114828    xla_ae_lines_pkg.SetAcctLineType
114829       (p_component_type             => l_component_type
114830       ,p_event_type_code            => l_event_type_code
114831       ,p_line_definition_owner_code => l_line_definition_owner_code
114832       ,p_line_definition_code       => l_line_definition_code
114833       ,p_accounting_line_code       => l_component_code
114834       ,p_accounting_line_type_code  => l_component_type_code
114835       ,p_accounting_line_appl_id    => l_component_appl_id
114836       ,p_amb_context_code           => l_amb_context_code
114837       ,p_entity_code                => l_entity_code
114838       ,p_event_class_code           => l_event_class_code);
114839    --
114840    -- set accounting class
114841    --
114842    xla_ae_lines_pkg.SetAcctClass(
114843            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
114844          , p_ae_header_id           => l_ae_header_id
114845          );
114846 
114847    --
114848    -- set rounding class
114849    --
114850    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
114851                       'MISCELLANEOUS EXPENSE';
114852 
114853    --
114854    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
114855    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
114856    --
114857    -- bulk performance
114858    --
114859    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
114860 
114861    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
114862       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
114863 
114864    -- 4955764
114865    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
114866       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
114867 
114868    -- 4458381 Public Sector Enh
114869    
114870    --
114871    -- set accounting attributes for the line type
114872    --
114873    l_entered_amt_idx := 24;
114874    l_accted_amt_idx  := 29;
114875    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
114876    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
114877    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
114878    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
114879    l_rec_acct_attrs.array_num_value(2)  := 
114880 xla_ae_sources_pkg.GetSystemSourceNum(
114881    p_source_code           => 'XLA_EVENT_APPL_ID'
114882  , p_source_type_code      => 'Y'
114883  , p_source_application_id =>  602
114884 );
114885    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
114886    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
114887    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
114888    l_rec_acct_attrs.array_char_value(4)  := 
114889 xla_ae_sources_pkg.GetSystemSourceChar(
114890    p_source_code           => 'XLA_ENTITY_CODE'
114891  , p_source_type_code      => 'Y'
114892  , p_source_application_id =>  602
114893 );
114894    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
114895    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
114896    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
114897    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
114898    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
114899    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
114900    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
114901    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
114902    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
114903    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
114907    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
114904    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
114905    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
114906    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
114908    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
114909    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
114910    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
114911    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
114912    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
114913    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
114914    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
114915    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
114916    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
114917    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
114918    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
114919    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
114920    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
114921    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
114922    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
114923    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
114924    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
114925    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
114926    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
114927    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
114928    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
114929    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
114930    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
114931    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
114932    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
114933    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
114934    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
114935    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
114936    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
114937    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
114938    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
114939    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
114940    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
114941    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
114942    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
114943    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
114944    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
114945    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
114946    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
114947    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
114948    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
114949    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
114950    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
114951    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
114952    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
114953    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
114954    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
114955    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
114956    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
114957    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
114958    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
114959    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
114960    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
114961    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
114962    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
114963    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
114964    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
114965    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
114966    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
114967    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
114968    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
114969    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
114970    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
114971    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
114972    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
114973    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
114974 
114975    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
114976    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
114977 
114978    ---------------------------------------------------------------------------------------------------------------
114979    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
114980    ---------------------------------------------------------------------------------------------------------------
114981    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
114982 
114983    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
114984    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
114985 
114986    IF xla_accounting_cache_pkg.GetValueChar
114987          (p_source_code         => 'LEDGER_CATEGORY_CODE'
114991    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
114988          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
114989    AND l_bflow_method_code = 'PRIOR_ENTRY'
114990 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
114992          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
114993        )
114994    THEN
114995          xla_ae_lines_pkg.BflowUpgEntry
114996            (p_business_method_code    => l_bflow_method_code
114997            ,p_business_class_code     => l_bflow_class_code
114998            ,p_balance_type            => l_balance_type_code);
114999    ELSE
115000       NULL;
115004    --
115001 -- No business flow processing for business flow method of NONE.
115002    END IF;
115003 
115005    -- call analytical criteria
115006    --
115007    
115008    --
115009    -- call description
115010    --
115011    
115012 xla_ae_lines_pkg.SetLineDescription(
115013    p_ae_header_id => l_ae_header_id
115014   ,p_description  => Description_2 (
115015      p_application_id         => p_application_id
115016    , p_ae_header_id           => l_ae_header_id 
115017 , p_source_1 => p_source_1
115018    )
115019 );
115020 
115021 
115022    --
115023    -- call ADRs
115024    -- Bug 4922099
115025    --
115026    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115027         (NVL(l_actual_upg_option, 'N') = 'O') OR
115028         (NVL(l_enc_upg_option, 'N') = 'O')
115029       )
115030    THEN
115031    NULL;
115032    --
115033    --
115034    
115035   l_ccid := AcctDerRule_32(
115036            p_application_id           => p_application_id
115037          , p_ae_header_id             => l_ae_header_id 
115038 , p_source_18 => p_source_18
115039          , x_transaction_coa_id       => l_adr_transaction_coa_id
115040          , x_accounting_coa_id        => l_adr_accounting_coa_id
115041          , x_value_type_code          => l_adr_value_type_code
115042          , p_side                     => 'NA'
115043    );
115044 
115045    xla_ae_lines_pkg.set_ccid(
115046     p_code_combination_id          => l_ccid
115047   , p_value_type_code              => l_adr_value_type_code
115048   , p_transaction_coa_id           => l_adr_transaction_coa_id
115049   , p_accounting_coa_id            => l_adr_accounting_coa_id
115050   , p_adr_code                     => 'AP_INVOICE_DIST'
115051   , p_adr_type_code                => 'S'
115052   , p_component_type               => l_component_type
115053   , p_component_code               => l_component_code
115054   , p_component_type_code          => l_component_type_code
115055   , p_component_appl_id            => l_component_appl_id
115056   , p_amb_context_code             => l_amb_context_code
115057   , p_side                         => 'NA'
115058   );
115059 
115060 
115061    --
115062    --
115063    END IF;
115064    --
115065    -- Bug 4922099
115066    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
115067           (NVL(l_enc_upg_option, 'N') = 'O')
115068         ) AND
115069         (l_bflow_method_code = 'PRIOR_ENTRY')
115070       )
115071    THEN
115072       IF
115073       --
115074       1 = 2
115075       --
115076       THEN
115077       xla_accounting_err_pkg.build_message
115078                                     (p_appli_s_name            => 'XLA'
115079                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115080                                     ,p_token_1                 => 'LINE_NUMBER'
115081                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
115082                                     ,p_token_2                 => 'LINE_TYPE_NAME'
115083                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
115084                                                                              l_component_type
115088                                                                             ,l_amb_context_code
115085                                                                             ,l_component_code
115086                                                                             ,l_component_type_code
115087                                                                             ,l_component_appl_id
115089                                                                             ,l_entity_code
115090                                                                             ,l_event_class_code
115091                                                                            )
115092                                     ,p_token_3                 => 'OWNER'
115093                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
115094                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
115095                                                                           ,p_lookup_code    => l_component_type_code
115096                                                                          )
115097                                     ,p_token_4                 => 'PRODUCT_NAME'
115098                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
115099                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
115100                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
115101                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
115102                                     ,p_ae_header_id            =>  NULL
115103                                        );
115104 
115105         IF (C_LEVEL_ERROR>= g_log_level) THEN
115106                  trace
115107                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115108                       ,p_level    => C_LEVEL_ERROR
115109                       ,p_module   => l_log_module);
115110         END IF;
115111       END IF;
115112    END IF;
115113    --
115114    --
115115    ------------------------------------------------------------------------------------------------
115116    -- 4219869 Business Flow
115117    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
115118    -- Prior Entry.  Currently, the following code is always generated.
115119    ------------------------------------------------------------------------------------------------
115120    XLA_AE_LINES_PKG.ValidateCurrentLine;
115121 
115122    ------------------------------------------------------------------------------------
115123    -- 4219869 Business Flow
115124    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
115125    ------------------------------------------------------------------------------------
115126    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115127 
115128    ----------------------------------------------------------------------------------
115129    -- 4219869 Business Flow
115130    -- Update journal entry status -- Need to generate this within IF <condition>
115131    ----------------------------------------------------------------------------------
115132    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115133          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
115134          ,p_balance_type_code => l_balance_type_code
115135          );
115136 
115140    BEGIN
115137    -------------------------------------------------------------------------------------------
115138    -- 4262811 - Generate the Accrual Reversal lines
115139    -------------------------------------------------------------------------------------------
115141       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
115142                               (g_array_event(p_event_id).array_value_num('header_index'));
115143       IF l_acc_rev_flag IS NULL THEN
115144          l_acc_rev_flag := 'N';
115145       END IF;
115146    EXCEPTION
115147       WHEN OTHERS THEN
115148          l_acc_rev_flag := 'N';
115149    END;
115150    --
115151    IF (l_acc_rev_flag = 'Y') THEN
115152 
115153        -- 4645092  ------------------------------------------------------------------------------
115154        -- To allow MPA report to determine if it should generate report process
115155        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
115156        ------------------------------------------------------------------------------------------
115157 
115158        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
115159        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
115160    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
115161    -- call ADRs
115162    -- Bug 4922099
115163    --
115164    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115165         (NVL(l_actual_upg_option, 'N') = 'O') OR
115169    NULL;
115166         (NVL(l_enc_upg_option, 'N') = 'O')
115167       )
115168    THEN
115170    --
115171    --
115172    
115173   l_ccid := AcctDerRule_32(
115174            p_application_id           => p_application_id
115175          , p_ae_header_id             => l_ae_header_id 
115176 , p_source_18 => p_source_18
115177          , x_transaction_coa_id       => l_adr_transaction_coa_id
115178          , x_accounting_coa_id        => l_adr_accounting_coa_id
115179          , x_value_type_code          => l_adr_value_type_code
115180          , p_side                     => 'NA'
115181    );
115182 
115183    xla_ae_lines_pkg.set_ccid(
115184     p_code_combination_id          => l_ccid
115185   , p_value_type_code              => l_adr_value_type_code
115186   , p_transaction_coa_id           => l_adr_transaction_coa_id
115187   , p_accounting_coa_id            => l_adr_accounting_coa_id
115188   , p_adr_code                     => 'AP_INVOICE_DIST'
115189   , p_adr_type_code                => 'S'
115190   , p_component_type               => l_component_type
115191   , p_component_code               => l_component_code
115192   , p_component_type_code          => l_component_type_code
115193   , p_component_appl_id            => l_component_appl_id
115194   , p_amb_context_code             => l_amb_context_code
115195   , p_side                         => 'NA'
115196   );
115197 
115198 
115199    --
115200    --
115201    END IF;
115202 
115203        --
115204        -- Update the line information that should be overwritten
115205        --
115206        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
115207                                          p_header_num   => 1);
115208        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
115209 
115210        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
115211 
115212        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
115213           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
115214        END IF;
115215 
115216       --
115217       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
115218       --
115219       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
115220           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
115221       ELSE
115222           ---------------------------------------------------------------------------------------------------
115223           -- 4262811a Switch Sign
115224           ---------------------------------------------------------------------------------------------------
115225           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
115226           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
115227                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115228           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
115229                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115230           -- 5132302
115231           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
115232                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115233 
115234       END IF;
115235 
115236       -- 4955764
115237       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
115238       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
115239 
115240 
115241       XLA_AE_LINES_PKG.ValidateCurrentLine;
115242       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115243 
115244       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115245                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
115246                ,p_balance_type_code => l_balance_type_code);
115247 
115248    END IF;
115249 
115250    -----------------------------------------------------------------------------------------
115251    -- 4262811 Multiperiod Accounting
115252    -----------------------------------------------------------------------------------------
115253      -- No MPA option is assigned.
115254 
115255 
115256 END IF;
115257 END IF;
115258 --
115259 
115260 --
115261 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
115262    trace
115263       (p_msg      => 'END of AcctLineType_195'
115264       ,p_level    => C_LEVEL_PROCEDURE
115265       ,p_module   => l_log_module);
115266 END IF;
115267 --
115268 EXCEPTION
115269   WHEN xla_exceptions_pkg.application_exception THEN
115270       RAISE;
115271   WHEN OTHERS THEN
115272        xla_exceptions_pkg.raise_message
115273            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_195');
115274 END AcctLineType_195;
115275 --
115276 
115277 ---------------------------------------
115278 --
115279 -- PRIVATE FUNCTION
115280 --         AcctLineType_196
115281 --
115282 ---------------------------------------
115283 PROCEDURE AcctLineType_196 (
115284   p_application_id        IN NUMBER
115285  ,p_event_id              IN NUMBER
115286  ,p_calculate_acctd_flag  IN VARCHAR2
115287  ,p_calculate_g_l_flag    IN VARCHAR2
115288  ,p_actual_flag           IN OUT VARCHAR2
115289  ,p_balance_type_code     OUT VARCHAR2
115290  ,p_gain_or_loss_ref      OUT VARCHAR2
115291  
115292 --Invoice Distribution Type
115293  , p_source_21            IN VARCHAR2
115294  , p_source_21_meaning    IN VARCHAR2
115298  , p_source_43            IN VARCHAR2
115295 --Accounting Reversal Indicator
115296  , p_source_41            IN VARCHAR2
115297 --Distribution Link Type
115299 --Allocation to Main Distribution Identifier
115300  , p_source_45            IN NUMBER
115301 --Invoice Identifier
115302  , p_source_46            IN NUMBER
115303 --Invoice Distribution Identifier
115304  , p_source_52            IN NUMBER
115305 --Payables Encumbrance Upgrade Credit Account
115306  , p_source_53            IN NUMBER
115307 --Payables Encumbrance Upgrade Credit Amount
115308  , p_source_54            IN NUMBER
115309 --Invoice Currency Code
115310  , p_source_55            IN VARCHAR2
115311 --Payables Encumbrance Upgrade Credit Base Amount
115312  , p_source_56            IN NUMBER
115313 --Payables Encumbrance Upgrade Debit Account
115314  , p_source_57            IN NUMBER
115315 --Payables Encumbrance Upgrade Debit Amount
115316  , p_source_58            IN NUMBER
115317 --Payables Encumbrance Upgrade Debit Base Amount
115318  , p_source_59            IN NUMBER
115319 --Payables Encumbrance Upgrade Option
115320  , p_source_60            IN VARCHAR2
115321 --Invoice Distribution Amount
115322  , p_source_61            IN NUMBER
115323 --Deferred Accounting End Date
115324  , p_source_65            IN DATE
115325 --Deferred Accounting Option
115326  , p_source_66            IN VARCHAR2
115327 --Deferred Accounting Start Date
115328  , p_source_67            IN DATE
115329 --Override Accounted Amount Indicator
115330  , p_source_68            IN VARCHAR2
115331  , p_source_68_meaning    IN VARCHAR2
115332 --Third Party Type
115333  , p_source_71            IN VARCHAR2
115334 --Parent Reversal Identifier
115335  , p_source_72            IN NUMBER
115336 --Invoice Distribution Statistical Amount
115337  , p_source_73            IN NUMBER
115338 --Invoice Distribution Tax Line Identifier
115339  , p_source_74            IN NUMBER
115340 --Invoice Distribution Tax Distribution Identifier from Tax
115341  , p_source_75            IN NUMBER
115342 --Invoice Distribution Summary Tax Line Identifier
115343  , p_source_76            IN NUMBER
115344 --Payables Upgrade Credit Encumbrance Type Identifier
115345  , p_source_77            IN NUMBER
115346 --Payables Upgrade Debit Encumbrance Type Identifier
115347  , p_source_78            IN NUMBER
115348 --Business Flow Accounts Payable Application Identifier
115349  , p_source_79            IN NUMBER
115350 --Business Flow Invoice Distribution Type
115351  , p_source_80            IN VARCHAR2
115352 --Business Flow Invoice Entity Code
115353  , p_source_81            IN VARCHAR2
115354 --Business Flow Invoice Distribution Identifier
115355  , p_source_82            IN NUMBER
115356 --Business Flow Invoice Identifier
115357  , p_source_83            IN NUMBER
115358 --Purchasing Encumbrance Option
115359  , p_source_86            IN VARCHAR2
115360  , p_source_86_meaning    IN VARCHAR2
115361 --Invoice Encumbered Option
115362  , p_source_87            IN VARCHAR2
115363  , p_source_87_meaning    IN VARCHAR2
115364 --Invoice Distribution Encumbrance Amount
115365  , p_source_143            IN NUMBER
115366 --Invoice Distribution Encumbrance Ledger Amount
115367  , p_source_144            IN NUMBER
115368 )
115369 IS
115370 
115371 l_component_type              VARCHAR2(80);
115372 l_component_code              VARCHAR2(30);
115373 l_component_type_code         VARCHAR2(1);
115374 l_component_appl_id           INTEGER;
115375 l_amb_context_code            VARCHAR2(30);
115376 l_entity_code                 VARCHAR2(30);
115377 l_event_class_code            VARCHAR2(30);
115378 l_ae_header_id                NUMBER;
115379 l_event_type_code             VARCHAR2(30);
115380 l_line_definition_code        VARCHAR2(30);
115381 l_line_definition_owner_code  VARCHAR2(1);
115382 --
115383 -- adr variables
115384 l_segment                     VARCHAR2(30);
115385 l_ccid                        NUMBER;
115386 l_adr_transaction_coa_id      NUMBER;
115387 l_adr_accounting_coa_id       NUMBER;
115388 l_adr_flexfield_segment_code  VARCHAR2(30);
115389 l_adr_flex_value_set_id       NUMBER;
115390 l_adr_value_type_code         VARCHAR2(30);
115391 l_adr_value_combination_id    NUMBER;
115392 l_adr_value_segment_code      VARCHAR2(30);
115393 
115394 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
115395 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
115396 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
115397 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
115398 
115399 -- 4262811 Variables ------------------------------------------------------------------------------------------
115400 l_entered_amt_idx             NUMBER;
115401 l_accted_amt_idx              NUMBER;
115402 l_acc_rev_flag                VARCHAR2(1);
115403 l_accrual_line_num            NUMBER;
115404 l_tmp_amt                     NUMBER;
115405 l_acc_rev_natural_side_code   VARCHAR2(1);
115406 
115407 l_num_entries                 NUMBER;
115408 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
115409 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
115410 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
115411 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
115412 l_recog_line_1                NUMBER;
115413 l_recog_line_2                NUMBER;
115414 
115415 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
115416 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
115417 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
115418 
115419 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
115420 
115424 ---------------------------------------------------------------------------------------------------------------
115421 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
115422 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
115423 
115425 
115426 
115427 --
115428 -- bulk performance
115429 --
115430 l_balance_type_code           VARCHAR2(1);
115431 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
115432 l_log_module                  VARCHAR2(240);
115433 
115434 --
115435 -- Upgrade strategy
115436 --
115437 l_actual_upg_option           VARCHAR2(1);
115438 l_enc_upg_option           VARCHAR2(1);
115439 
115440 --
115441 BEGIN
115442 --
115443 IF g_log_enabled THEN
115444       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_196';
115445 END IF;
115446 --
115447 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
115448 
115449       trace
115450          (p_msg      => 'BEGIN of AcctLineType_196'
115451          ,p_level    => C_LEVEL_PROCEDURE
115452          ,p_module   => l_log_module);
115453 
115454 END IF;
115455 --
115456 l_component_type             := 'AMB_JLT';
115457 l_component_code             := 'AP_MISC_EXPENSE_INV_ENC';
115458 l_component_type_code        := 'S';
115459 l_component_appl_id          :=  200;
115460 l_amb_context_code           := 'DEFAULT';
115461 l_entity_code                := 'AP_INVOICES';
115462 l_event_class_code           := 'INVOICES';
115463 l_event_type_code            := 'INVOICES_ALL';
115464 l_line_definition_owner_code := 'S';
115465 l_line_definition_code       := 'ENC_REV_INVOICES_ALL';
115466 --
115467 l_balance_type_code          := 'E';
115468 l_segment                     := NULL;
115469 l_ccid                        := NULL;
115470 l_adr_transaction_coa_id      := NULL;
115471 l_adr_accounting_coa_id       := NULL;
115472 l_adr_flexfield_segment_code  := NULL;
115473 l_adr_flex_value_set_id       := NULL;
115474 l_adr_value_type_code         := NULL;
115475 l_adr_value_combination_id    := NULL;
115476 l_adr_value_segment_code      := NULL;
115477 
115478 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
115479 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
115480 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
115481 l_budgetary_control_flag     := 'N';
115482 
115483 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
115484 l_bflow_applied_to_amt       := NULL; -- 5132302
115485 l_entered_amt_idx            := NULL;          -- 4262811
115486 l_accted_amt_idx             := NULL;          -- 4262811
115487 l_acc_rev_flag               := NULL;          -- 4262811
115488 l_accrual_line_num           := NULL;          -- 4262811
115489 l_tmp_amt                    := NULL;          -- 4262811
115490 --
115491  
115492 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
115493     l_balance_type_code <> 'B' THEN
115494 IF NVL(p_source_21,'
115495 ') =  'MISCELLANEOUS' AND 
115496 NVL(p_source_86,'
115497 ') =  'Y' AND 
115498 NVL(p_source_87,'
115499 ') =  'Y'
115500  THEN 
115501 
115502    --
115503    XLA_AE_LINES_PKG.SetNewLine;
115504 
115505    p_balance_type_code          := l_balance_type_code;
115506    -- set the flag so later we will know whether the gain loss line needs to be created
115507    
115508    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
115509      p_actual_flag :='A';
115510    END IF;
115511 
115512    --
115513    -- bulk performance
115514    --
115515    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
115516                                       p_header_num   => 0); -- 4262811
115517    --
115518    -- set accounting line options
115519    --
115520    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
115521            p_natural_side_code          => 'C'
115522          , p_gain_or_loss_flag          => 'N'
115523          , p_gl_transfer_mode_code      => 'S'
115524          , p_acct_entry_type_code       => 'E'
115525          , p_switch_side_flag           => 'Y'
115526          , p_merge_duplicate_code       => 'A'
115527          );
115528    --
115529    l_acc_rev_natural_side_code := 'D';  -- 4262811
115530    -- 
115531    --
115532    -- set accounting line type info
115533    --
115534    xla_ae_lines_pkg.SetAcctLineType
115535       (p_component_type             => l_component_type
115536       ,p_event_type_code            => l_event_type_code
115537       ,p_line_definition_owner_code => l_line_definition_owner_code
115538       ,p_line_definition_code       => l_line_definition_code
115539       ,p_accounting_line_code       => l_component_code
115540       ,p_accounting_line_type_code  => l_component_type_code
115541       ,p_accounting_line_appl_id    => l_component_appl_id
115542       ,p_amb_context_code           => l_amb_context_code
115543       ,p_entity_code                => l_entity_code
115544       ,p_event_class_code           => l_event_class_code);
115545    --
115546    -- set accounting class
115547    --
115548    xla_ae_lines_pkg.SetAcctClass(
115549            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
115550          , p_ae_header_id           => l_ae_header_id
115551          );
115552 
115553    --
115554    -- set rounding class
115555    --
115556    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
115557                       'MISCELLANEOUS EXPENSE';
115558 
115559    --
115560    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
115561    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
115565    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
115562    --
115563    -- bulk performance
115564    --
115566 
115567    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
115568       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
115569 
115570    -- 4955764
115571    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
115572       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
115573 
115574    -- 4458381 Public Sector Enh
115575    
115576    --
115577    -- set accounting attributes for the line type
115578    --
115579    l_entered_amt_idx := 24;
115580    l_accted_amt_idx  := 26;
115581    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
115582    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
115583    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
115584    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
115585    l_rec_acct_attrs.array_num_value(2)  := 
115586 xla_ae_sources_pkg.GetSystemSourceNum(
115587    p_source_code           => 'XLA_EVENT_APPL_ID'
115588  , p_source_type_code      => 'Y'
115589  , p_source_application_id =>  602
115590 );
115591    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
115592    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
115593    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
115594    l_rec_acct_attrs.array_char_value(4)  := 
115595 xla_ae_sources_pkg.GetSystemSourceChar(
115599 );
115596    p_source_code           => 'XLA_ENTITY_CODE'
115597  , p_source_type_code      => 'Y'
115598  , p_source_application_id =>  602
115600    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
115601    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
115602    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
115603    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
115604    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
115605    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
115606    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
115607    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
115608    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
115609    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
115610    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
115611    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
115612    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
115613    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
115614    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
115615    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
115616    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
115617    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
115618    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
115619    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
115620    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
115621    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
115622    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
115623    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
115624    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
115625    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
115626    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
115627    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
115628    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
115629    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
115630    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
115631    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
115632    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
115633    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
115634    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
115635    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
115636    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
115637    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
115638    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
115639    l_rec_acct_attrs.array_num_value(24)  := p_source_143;
115640    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
115641    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
115645    l_rec_acct_attrs.array_date_value(27)  := p_source_65;
115642    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
115643    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
115644    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
115646    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
115647    l_rec_acct_attrs.array_char_value(28)  := p_source_66;
115648    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
115649    l_rec_acct_attrs.array_date_value(29)  := p_source_67;
115650    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
115651    l_rec_acct_attrs.array_char_value(30)  := p_source_68;
115652    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
115653    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
115654    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
115655    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
115656    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
115657    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
115658    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
115659    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
115660    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
115661    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
115662    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
115663    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
115664    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
115665    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
115666    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
115667    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
115668    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
115669    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
115670 
115671    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
115672    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
115673 
115674    ---------------------------------------------------------------------------------------------------------------
115675    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
115676    ---------------------------------------------------------------------------------------------------------------
115677    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
115678 
115679    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
115680    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
115681 
115682    IF xla_accounting_cache_pkg.GetValueChar
115683          (p_source_code         => 'LEDGER_CATEGORY_CODE'
115684          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
115685    AND l_bflow_method_code = 'PRIOR_ENTRY'
115686 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
115687    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
115688          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
115689        )
115690    THEN
115691          xla_ae_lines_pkg.BflowUpgEntry
115692            (p_business_method_code    => l_bflow_method_code
115693            ,p_business_class_code     => l_bflow_class_code
115694            ,p_balance_type            => l_balance_type_code);
115695    ELSE
115696       NULL;
115697 XLA_AE_LINES_PKG.business_flow_validation(
115698                                 p_business_method_code     => l_bflow_method_code
115699                                ,p_business_class_code      => l_bflow_class_code
115700                                ,p_inherit_description_flag => l_inherit_desc_flag);
115701    END IF;
115705    --
115702 
115703    --
115704    -- call analytical criteria
115706    -- Inherited Analytical Criteria for business flow method of Prior Entry.
115707    --
115708    -- call description
115709    --
115710    -- No description or it is inherited.
115711    --
115712    -- call ADRs
115713    -- Bug 4922099
115714    --
115715    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115716         (NVL(l_actual_upg_option, 'N') = 'O') OR
115717         (NVL(l_enc_upg_option, 'N') = 'O')
115718       )
115719    THEN
115720    NULL;
115721    --
115722    --
115723    
115724    --
115725    --
115726    END IF;
115727    --
115728    -- Bug 4922099
115729    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
115730           (NVL(l_enc_upg_option, 'N') = 'O')
115731         ) AND
115732         (l_bflow_method_code = 'PRIOR_ENTRY')
115736       --
115733       )
115734    THEN
115735       IF
115737       1 = 1
115738       --
115739       THEN
115740       xla_accounting_err_pkg.build_message
115741                                     (p_appli_s_name            => 'XLA'
115742                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115743                                     ,p_token_1                 => 'LINE_NUMBER'
115744                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
115745                                     ,p_token_2                 => 'LINE_TYPE_NAME'
115746                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
115747                                                                              l_component_type
115748                                                                             ,l_component_code
115749                                                                             ,l_component_type_code
115750                                                                             ,l_component_appl_id
115751                                                                             ,l_amb_context_code
115752                                                                             ,l_entity_code
115753                                                                             ,l_event_class_code
115754                                                                            )
115755                                     ,p_token_3                 => 'OWNER'
115756                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
115757                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
115758                                                                           ,p_lookup_code    => l_component_type_code
115759                                                                          )
115760                                     ,p_token_4                 => 'PRODUCT_NAME'
115761                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
115762                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
115763                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
115764                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
115765                                     ,p_ae_header_id            =>  NULL
115766                                        );
115767 
115768         IF (C_LEVEL_ERROR>= g_log_level) THEN
115769                  trace
115770                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115771                       ,p_level    => C_LEVEL_ERROR
115772                       ,p_module   => l_log_module);
115773         END IF;
115774       END IF;
115775    END IF;
115776    --
115777    --
115778    ------------------------------------------------------------------------------------------------
115779    -- 4219869 Business Flow
115780    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
115781    -- Prior Entry.  Currently, the following code is always generated.
115782    ------------------------------------------------------------------------------------------------
115783    -- No ValidateCurrentLine for business flow method of Prior Entry
115784 
115785    ------------------------------------------------------------------------------------
115786    -- 4219869 Business Flow
115787    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
115788    ------------------------------------------------------------------------------------
115789    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115790 
115791    ----------------------------------------------------------------------------------
115792    -- 4219869 Business Flow
115793    -- Update journal entry status -- Need to generate this within IF <condition>
115794    ----------------------------------------------------------------------------------
115795    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115796          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
115797          ,p_balance_type_code => l_balance_type_code
115798          );
115799 
115800    -------------------------------------------------------------------------------------------
115801    -- 4262811 - Generate the Accrual Reversal lines
115802    -------------------------------------------------------------------------------------------
115803    BEGIN
115804       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
115805                               (g_array_event(p_event_id).array_value_num('header_index'));
115806       IF l_acc_rev_flag IS NULL THEN
115807          l_acc_rev_flag := 'N';
115808       END IF;
115809    EXCEPTION
115810       WHEN OTHERS THEN
115811          l_acc_rev_flag := 'N';
115812    END;
115813    --
115814    IF (l_acc_rev_flag = 'Y') THEN
115815 
115816        -- 4645092  ------------------------------------------------------------------------------
115817        -- To allow MPA report to determine if it should generate report process
115818        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
115819        ------------------------------------------------------------------------------------------
115820 
115821        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
115822        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
115823    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
115824    -- call ADRs
115825    -- Bug 4922099
115826    --
115827    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115828         (NVL(l_actual_upg_option, 'N') = 'O') OR
115829         (NVL(l_enc_upg_option, 'N') = 'O')
115830       )
115831    THEN
115832    NULL;
115833    --
115837    --
115834    --
115835    
115836    --
115841        -- Update the line information that should be overwritten
115838    END IF;
115839 
115840        --
115842        --
115843        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
115844                                          p_header_num   => 1);
115845        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
115846 
115847        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
115848 
115849        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
115850           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
115851        END IF;
115852 
115853       --
115854       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
115855       --
115856       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
115857           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
115858       ELSE
115859           ---------------------------------------------------------------------------------------------------
115860           -- 4262811a Switch Sign
115861           ---------------------------------------------------------------------------------------------------
115862           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
115863           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
115864                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115865           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
115866                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115867           -- 5132302
115868           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
115869                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115870 
115871       END IF;
115872 
115873       -- 4955764
115874       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
115875       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
115876 
115877 
115878       XLA_AE_LINES_PKG.ValidateCurrentLine;
115879       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115880 
115881       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115882                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
115883                ,p_balance_type_code => l_balance_type_code);
115884 
115885    END IF;
115886 
115887    -----------------------------------------------------------------------------------------
115888    -- 4262811 Multiperiod Accounting
115889    -----------------------------------------------------------------------------------------
115890      -- No MPA option is assigned.
115891 
115892 
115893 END IF;
115894 END IF;
115895 --
115896 
115897 --
115898 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
115899    trace
115900       (p_msg      => 'END of AcctLineType_196'
115901       ,p_level    => C_LEVEL_PROCEDURE
115902       ,p_module   => l_log_module);
115903 END IF;
115904 --
115905 EXCEPTION
115906   WHEN xla_exceptions_pkg.application_exception THEN
115907       RAISE;
115908   WHEN OTHERS THEN
115909        xla_exceptions_pkg.raise_message
115910            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_196');
115911 END AcctLineType_196;
115912 --
115913 
115917 --         AcctLineType_197
115914 ---------------------------------------
115915 --
115916 -- PRIVATE FUNCTION
115918 --
115919 ---------------------------------------
115920 PROCEDURE AcctLineType_197 (
115921   p_application_id        IN NUMBER
115922  ,p_event_id              IN NUMBER
115923  ,p_calculate_acctd_flag  IN VARCHAR2
115924  ,p_calculate_g_l_flag    IN VARCHAR2
115925  ,p_actual_flag           IN OUT VARCHAR2
115926  ,p_balance_type_code     OUT VARCHAR2
115927  ,p_gain_or_loss_ref      OUT VARCHAR2
115928  
115929 --Invoice Distribution Type
115930  , p_source_21            IN VARCHAR2
115931  , p_source_21_meaning    IN VARCHAR2
115932 --Accounting Reversal Indicator
115933  , p_source_41            IN VARCHAR2
115934 --Distribution Link Type
115935  , p_source_43            IN VARCHAR2
115936 --Allocation to Main Distribution Identifier
115937  , p_source_45            IN NUMBER
115938 --Invoice Identifier
115939  , p_source_46            IN NUMBER
115940 --Invoice Distribution Identifier
115941  , p_source_52            IN NUMBER
115942 --Payables Encumbrance Upgrade Credit Account
115943  , p_source_53            IN NUMBER
115944 --Payables Encumbrance Upgrade Credit Amount
115945  , p_source_54            IN NUMBER
115946 --Invoice Currency Code
115947  , p_source_55            IN VARCHAR2
115948 --Payables Encumbrance Upgrade Credit Base Amount
115949  , p_source_56            IN NUMBER
115950 --Payables Encumbrance Upgrade Debit Account
115951  , p_source_57            IN NUMBER
115952 --Payables Encumbrance Upgrade Debit Amount
115953  , p_source_58            IN NUMBER
115954 --Payables Encumbrance Upgrade Debit Base Amount
115955  , p_source_59            IN NUMBER
115956 --Payables Encumbrance Upgrade Option
115957  , p_source_60            IN VARCHAR2
115958 --Deferred Accounting End Date
115959  , p_source_65            IN DATE
115960 --Deferred Accounting Option
115961  , p_source_66            IN VARCHAR2
115962 --Deferred Accounting Start Date
115963  , p_source_67            IN DATE
115964 --Override Accounted Amount Indicator
115965  , p_source_68            IN VARCHAR2
115966  , p_source_68_meaning    IN VARCHAR2
115967 --Third Party Type
115968  , p_source_71            IN VARCHAR2
115969 --Parent Reversal Identifier
115970  , p_source_72            IN NUMBER
115971 --Invoice Distribution Statistical Amount
115972  , p_source_73            IN NUMBER
115973 --Invoice Distribution Tax Line Identifier
115974  , p_source_74            IN NUMBER
115975 --Invoice Distribution Tax Distribution Identifier from Tax
115976  , p_source_75            IN NUMBER
115977 --Invoice Distribution Summary Tax Line Identifier
115978  , p_source_76            IN NUMBER
115979 --Payables Upgrade Credit Encumbrance Type Identifier
115980  , p_source_77            IN NUMBER
115981 --Payables Upgrade Debit Encumbrance Type Identifier
115982  , p_source_78            IN NUMBER
115983 --Business Flow Accounts Payable Application Identifier
115984  , p_source_79            IN NUMBER
115985 --Business Flow Invoice Distribution Type
115986  , p_source_80            IN VARCHAR2
115987 --Business Flow Invoice Entity Code
115988  , p_source_81            IN VARCHAR2
115989 --Business Flow Invoice Distribution Identifier
115990  , p_source_82            IN NUMBER
115991 --Business Flow Invoice Identifier
115992  , p_source_83            IN NUMBER
115993 --Purchasing Encumbrance Option
115994  , p_source_86            IN VARCHAR2
115995  , p_source_86_meaning    IN VARCHAR2
115996 --Invoice Encumbered Option
115997  , p_source_87            IN VARCHAR2
115998  , p_source_87_meaning    IN VARCHAR2
115999 --Invoice Distribution Encumbrance Amount
116000  , p_source_143            IN NUMBER
116001 --Invoice Distribution Encumbrance Ledger Amount
116002  , p_source_144            IN NUMBER
116003 )
116004 IS
116005 
116006 l_component_type              VARCHAR2(80);
116007 l_component_code              VARCHAR2(30);
116008 l_component_type_code         VARCHAR2(1);
116009 l_component_appl_id           INTEGER;
116010 l_amb_context_code            VARCHAR2(30);
116011 l_entity_code                 VARCHAR2(30);
116012 l_event_class_code            VARCHAR2(30);
116013 l_ae_header_id                NUMBER;
116014 l_event_type_code             VARCHAR2(30);
116015 l_line_definition_code        VARCHAR2(30);
116016 l_line_definition_owner_code  VARCHAR2(1);
116017 --
116018 -- adr variables
116019 l_segment                     VARCHAR2(30);
116020 l_ccid                        NUMBER;
116021 l_adr_transaction_coa_id      NUMBER;
116022 l_adr_accounting_coa_id       NUMBER;
116023 l_adr_flexfield_segment_code  VARCHAR2(30);
116024 l_adr_flex_value_set_id       NUMBER;
116025 l_adr_value_type_code         VARCHAR2(30);
116026 l_adr_value_combination_id    NUMBER;
116027 l_adr_value_segment_code      VARCHAR2(30);
116028 
116029 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
116030 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
116031 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
116032 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
116033 
116034 -- 4262811 Variables ------------------------------------------------------------------------------------------
116035 l_entered_amt_idx             NUMBER;
116036 l_accted_amt_idx              NUMBER;
116037 l_acc_rev_flag                VARCHAR2(1);
116038 l_accrual_line_num            NUMBER;
116039 l_tmp_amt                     NUMBER;
116040 l_acc_rev_natural_side_code   VARCHAR2(1);
116041 
116042 l_num_entries                 NUMBER;
116043 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
116044 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
116045 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
116049 
116046 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
116047 l_recog_line_1                NUMBER;
116048 l_recog_line_2                NUMBER;
116050 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
116051 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
116052 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
116053 
116054 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
116055 
116056 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
116057 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
116058 
116059 ---------------------------------------------------------------------------------------------------------------
116060 
116061 
116062 --
116063 -- bulk performance
116064 --
116065 l_balance_type_code           VARCHAR2(1);
116066 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
116067 l_log_module                  VARCHAR2(240);
116068 
116069 --
116070 -- Upgrade strategy
116071 --
116072 l_actual_upg_option           VARCHAR2(1);
116073 l_enc_upg_option           VARCHAR2(1);
116074 
116075 --
116076 BEGIN
116077 --
116078 IF g_log_enabled THEN
116079       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_197';
116080 END IF;
116081 --
116082 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116083 
116084       trace
116085          (p_msg      => 'BEGIN of AcctLineType_197'
116086          ,p_level    => C_LEVEL_PROCEDURE
116087          ,p_module   => l_log_module);
116088 
116089 END IF;
116090 --
116091 l_component_type             := 'AMB_JLT';
116092 l_component_code             := 'AP_MISC_EXPENSE_PP_ENC';
116093 l_component_type_code        := 'S';
116094 l_component_appl_id          :=  200;
116095 l_amb_context_code           := 'DEFAULT';
116096 l_entity_code                := 'AP_INVOICES';
116097 l_event_class_code           := 'PREPAYMENTS';
116098 l_event_type_code            := 'PREPAYMENTS_ALL';
116099 l_line_definition_owner_code := 'S';
116100 l_line_definition_code       := 'ENC_REV_PREPAY_ALL';
116101 --
116102 l_balance_type_code          := 'E';
116103 l_segment                     := NULL;
116104 l_ccid                        := NULL;
116105 l_adr_transaction_coa_id      := NULL;
116106 l_adr_accounting_coa_id       := NULL;
116107 l_adr_flexfield_segment_code  := NULL;
116108 l_adr_flex_value_set_id       := NULL;
116109 l_adr_value_type_code         := NULL;
116110 l_adr_value_combination_id    := NULL;
116111 l_adr_value_segment_code      := NULL;
116112 
116113 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
116114 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
116115 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
116116 l_budgetary_control_flag     := 'N';
116117 
116118 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
116119 l_bflow_applied_to_amt       := NULL; -- 5132302
116120 l_entered_amt_idx            := NULL;          -- 4262811
116121 l_accted_amt_idx             := NULL;          -- 4262811
116122 l_acc_rev_flag               := NULL;          -- 4262811
116123 l_accrual_line_num           := NULL;          -- 4262811
116124 l_tmp_amt                    := NULL;          -- 4262811
116125 --
116126  
116127 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
116128     l_balance_type_code <> 'B' THEN
116129 IF NVL(p_source_21,'
116130 ') =  'MISCELLANEOUS' AND 
116131 NVL(p_source_86,'
116132 ') =  'Y' AND 
116133 NVL(p_source_87,'
116134 ') =  'Y'
116135  THEN 
116136 
116137    --
116138    XLA_AE_LINES_PKG.SetNewLine;
116139 
116140    p_balance_type_code          := l_balance_type_code;
116141    -- set the flag so later we will know whether the gain loss line needs to be created
116142    
116143    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
116144      p_actual_flag :='A';
116148    -- bulk performance
116145    END IF;
116146 
116147    --
116149    --
116150    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
116151                                       p_header_num   => 0); -- 4262811
116152    --
116153    -- set accounting line options
116154    --
116155    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
116156            p_natural_side_code          => 'C'
116157          , p_gain_or_loss_flag          => 'N'
116158          , p_gl_transfer_mode_code      => 'S'
116159          , p_acct_entry_type_code       => 'E'
116160          , p_switch_side_flag           => 'Y'
116161          , p_merge_duplicate_code       => 'A'
116162          );
116163    --
116164    l_acc_rev_natural_side_code := 'D';  -- 4262811
116165    -- 
116166    --
116170       (p_component_type             => l_component_type
116167    -- set accounting line type info
116168    --
116169    xla_ae_lines_pkg.SetAcctLineType
116171       ,p_event_type_code            => l_event_type_code
116172       ,p_line_definition_owner_code => l_line_definition_owner_code
116173       ,p_line_definition_code       => l_line_definition_code
116174       ,p_accounting_line_code       => l_component_code
116175       ,p_accounting_line_type_code  => l_component_type_code
116176       ,p_accounting_line_appl_id    => l_component_appl_id
116177       ,p_amb_context_code           => l_amb_context_code
116178       ,p_entity_code                => l_entity_code
116179       ,p_event_class_code           => l_event_class_code);
116180    --
116181    -- set accounting class
116182    --
116183    xla_ae_lines_pkg.SetAcctClass(
116184            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
116185          , p_ae_header_id           => l_ae_header_id
116186          );
116187 
116188    --
116189    -- set rounding class
116190    --
116191    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
116192                       'MISCELLANEOUS EXPENSE';
116193 
116194    --
116195    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
116196    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
116197    --
116198    -- bulk performance
116199    --
116200    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
116201 
116202    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
116203       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
116204 
116205    -- 4955764
116206    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116207       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
116208 
116209    -- 4458381 Public Sector Enh
116210    
116211    --
116212    -- set accounting attributes for the line type
116213    --
116214    l_entered_amt_idx := 23;
116215    l_accted_amt_idx  := 25;
116216    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
116217    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
116218    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
116219    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
116220    l_rec_acct_attrs.array_num_value(2)  := 
116221 xla_ae_sources_pkg.GetSystemSourceNum(
116222    p_source_code           => 'XLA_EVENT_APPL_ID'
116223  , p_source_type_code      => 'Y'
116224  , p_source_application_id =>  602
116225 );
116226    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
116227    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
116228    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
116229    l_rec_acct_attrs.array_char_value(4)  := 
116230 xla_ae_sources_pkg.GetSystemSourceChar(
116231    p_source_code           => 'XLA_ENTITY_CODE'
116232  , p_source_type_code      => 'Y'
116233  , p_source_application_id =>  602
116234 );
116235    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
116236    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
116237    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
116238    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
116239    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
116240    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
116241    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
116242    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
116243    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
116244    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
116245    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
116246    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
116247    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
116248    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
116249    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
116250    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
116251    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
116252    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
116253    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
116254    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
116255    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
116256    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
116257    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
116258    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
116259    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
116260    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
116261    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
116262    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
116263    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
116264    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
116265    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
116266    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
116267    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
116268    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
116269    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
116270    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
116271    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
116272    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
116273    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
116279    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
116274    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
116275    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
116276    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
116277    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
116278    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
116280    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
116281    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
116282    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
116283    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
116284    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
116285    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
116286    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
116287    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
116288    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
116289    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
116290    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
116291    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
116292    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
116293    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
116294    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
116295    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
116296    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
116297    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
116298    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
116299    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
116300    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
116301    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
116302    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
116303 
116304    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
116305    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
116306 
116307    ---------------------------------------------------------------------------------------------------------------
116308    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
116309    ---------------------------------------------------------------------------------------------------------------
116310    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
116311 
116312    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
116313    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
116314 
116315    IF xla_accounting_cache_pkg.GetValueChar
116316          (p_source_code         => 'LEDGER_CATEGORY_CODE'
116317          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
116318    AND l_bflow_method_code = 'PRIOR_ENTRY'
116319 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
116320    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
116321          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
116322        )
116323    THEN
116324          xla_ae_lines_pkg.BflowUpgEntry
116325            (p_business_method_code    => l_bflow_method_code
116326            ,p_business_class_code     => l_bflow_class_code
116327            ,p_balance_type            => l_balance_type_code);
116328    ELSE
116329       NULL;
116330 XLA_AE_LINES_PKG.business_flow_validation(
116331                                 p_business_method_code     => l_bflow_method_code
116332                                ,p_business_class_code      => l_bflow_class_code
116333                                ,p_inherit_description_flag => l_inherit_desc_flag);
116334    END IF;
116335 
116336    --
116337    -- call analytical criteria
116338    --
116339    -- Inherited Analytical Criteria for business flow method of Prior Entry.
116340    --
116341    -- call description
116342    --
116343    -- No description or it is inherited.
116344    --
116345    -- call ADRs
116346    -- Bug 4922099
116347    --
116348    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
116349         (NVL(l_actual_upg_option, 'N') = 'O') OR
116350         (NVL(l_enc_upg_option, 'N') = 'O')
116351       )
116352    THEN
116353    NULL;
116354    --
116355    --
116356    
116357    --
116358    --
116359    END IF;
116360    --
116361    -- Bug 4922099
116362    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
116363           (NVL(l_enc_upg_option, 'N') = 'O')
116364         ) AND
116368       IF
116365         (l_bflow_method_code = 'PRIOR_ENTRY')
116366       )
116367    THEN
116369       --
116370       1 = 1
116371       --
116372       THEN
116373       xla_accounting_err_pkg.build_message
116374                                     (p_appli_s_name            => 'XLA'
116375                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
116376                                     ,p_token_1                 => 'LINE_NUMBER'
116377                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
116378                                     ,p_token_2                 => 'LINE_TYPE_NAME'
116379                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
116380                                                                              l_component_type
116381                                                                             ,l_component_code
116382                                                                             ,l_component_type_code
116383                                                                             ,l_component_appl_id
116384                                                                             ,l_amb_context_code
116385                                                                             ,l_entity_code
116386                                                                             ,l_event_class_code
116387                                                                            )
116388                                     ,p_token_3                 => 'OWNER'
116389                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
116390                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
116391                                                                           ,p_lookup_code    => l_component_type_code
116392                                                                          )
116393                                     ,p_token_4                 => 'PRODUCT_NAME'
116394                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
116398                                     ,p_ae_header_id            =>  NULL
116395                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
116396                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
116397                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
116399                                        );
116400 
116401         IF (C_LEVEL_ERROR>= g_log_level) THEN
116402                  trace
116403                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
116404                       ,p_level    => C_LEVEL_ERROR
116405                       ,p_module   => l_log_module);
116406         END IF;
116407       END IF;
116408    END IF;
116409    --
116410    --
116411    ------------------------------------------------------------------------------------------------
116412    -- 4219869 Business Flow
116413    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
116414    -- Prior Entry.  Currently, the following code is always generated.
116415    ------------------------------------------------------------------------------------------------
116416    -- No ValidateCurrentLine for business flow method of Prior Entry
116417 
116418    ------------------------------------------------------------------------------------
116419    -- 4219869 Business Flow
116420    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
116421    ------------------------------------------------------------------------------------
116422    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116423 
116424    ----------------------------------------------------------------------------------
116425    -- 4219869 Business Flow
116429          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
116426    -- Update journal entry status -- Need to generate this within IF <condition>
116427    ----------------------------------------------------------------------------------
116428    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116430          ,p_balance_type_code => l_balance_type_code
116431          );
116432 
116433    -------------------------------------------------------------------------------------------
116434    -- 4262811 - Generate the Accrual Reversal lines
116435    -------------------------------------------------------------------------------------------
116436    BEGIN
116437       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
116438                               (g_array_event(p_event_id).array_value_num('header_index'));
116439       IF l_acc_rev_flag IS NULL THEN
116440          l_acc_rev_flag := 'N';
116441       END IF;
116442    EXCEPTION
116443       WHEN OTHERS THEN
116444          l_acc_rev_flag := 'N';
116445    END;
116446    --
116447    IF (l_acc_rev_flag = 'Y') THEN
116448 
116449        -- 4645092  ------------------------------------------------------------------------------
116450        -- To allow MPA report to determine if it should generate report process
116451        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
116452        ------------------------------------------------------------------------------------------
116453 
116454        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
116455        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
116456    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
116457    -- call ADRs
116458    -- Bug 4922099
116459    --
116460    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
116461         (NVL(l_actual_upg_option, 'N') = 'O') OR
116462         (NVL(l_enc_upg_option, 'N') = 'O')
116463       )
116464    THEN
116465    NULL;
116466    --
116467    --
116468    
116469    --
116470    --
116471    END IF;
116472 
116473        --
116474        -- Update the line information that should be overwritten
116475        --
116476        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
116477                                          p_header_num   => 1);
116478        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
116479 
116480        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
116481 
116482        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
116483           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
116484        END IF;
116485 
116486       --
116487       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
116488       --
116489       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
116490           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
116491       ELSE
116492           ---------------------------------------------------------------------------------------------------
116493           -- 4262811a Switch Sign
116494           ---------------------------------------------------------------------------------------------------
116495           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
116496           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116497                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116498           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116499                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116500           -- 5132302
116501           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
116502                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116503 
116504       END IF;
116505 
116506       -- 4955764
116507       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116508       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
116509 
116510 
116511       XLA_AE_LINES_PKG.ValidateCurrentLine;
116512       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116513 
116514       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116515                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
116516                ,p_balance_type_code => l_balance_type_code);
116517 
116518    END IF;
116519 
116520    -----------------------------------------------------------------------------------------
116521    -- 4262811 Multiperiod Accounting
116522    -----------------------------------------------------------------------------------------
116523      -- No MPA option is assigned.
116524 
116525 
116526 END IF;
116527 END IF;
116528 --
116529 
116530 --
116531 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116532    trace
116533       (p_msg      => 'END of AcctLineType_197'
116534       ,p_level    => C_LEVEL_PROCEDURE
116535       ,p_module   => l_log_module);
116536 END IF;
116537 --
116538 EXCEPTION
116539   WHEN xla_exceptions_pkg.application_exception THEN
116540       RAISE;
116541   WHEN OTHERS THEN
116542        xla_exceptions_pkg.raise_message
116543            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_197');
116544 END AcctLineType_197;
116545 --
116546 
116547 ---------------------------------------
116548 --
116549 -- PRIVATE FUNCTION
116553 PROCEDURE AcctLineType_198 (
116550 --         AcctLineType_198
116551 --
116552 ---------------------------------------
116554   p_application_id        IN NUMBER
116555  ,p_event_id              IN NUMBER
116556  ,p_calculate_acctd_flag  IN VARCHAR2
116557  ,p_calculate_g_l_flag    IN VARCHAR2
116558  ,p_actual_flag           IN OUT VARCHAR2
116559  ,p_balance_type_code     OUT VARCHAR2
116560  ,p_gain_or_loss_ref      OUT VARCHAR2
116561  
116562 --Invoice Distribution Description
116563  , p_source_1            IN VARCHAR2
116564 --Invoice Distribution Ledger Amount
116565  , p_source_9            IN NUMBER
116566 --Invoice Distribution Account
116567  , p_source_18            IN NUMBER
116568 --Invoice Distribution Type
116569  , p_source_21            IN VARCHAR2
116570  , p_source_21_meaning    IN VARCHAR2
116571 --Accounting Reversal Indicator
116572  , p_source_41            IN VARCHAR2
116573 --Distribution Link Type
116574  , p_source_43            IN VARCHAR2
116575 --Allocation to Main Distribution Identifier
116576  , p_source_45            IN NUMBER
116577 --Invoice Identifier
116578  , p_source_46            IN NUMBER
116579 --Invoice Distribution Identifier
116580  , p_source_52            IN NUMBER
116581 --Payables Encumbrance Upgrade Credit Account
116582  , p_source_53            IN NUMBER
116583 --Payables Encumbrance Upgrade Credit Amount
116584  , p_source_54            IN NUMBER
116585 --Invoice Currency Code
116586  , p_source_55            IN VARCHAR2
116587 --Payables Encumbrance Upgrade Credit Base Amount
116588  , p_source_56            IN NUMBER
116589 --Payables Encumbrance Upgrade Debit Account
116590  , p_source_57            IN NUMBER
116591 --Payables Encumbrance Upgrade Debit Amount
116592  , p_source_58            IN NUMBER
116593 --Payables Encumbrance Upgrade Debit Base Amount
116594  , p_source_59            IN NUMBER
116595 --Payables Encumbrance Upgrade Option
116596  , p_source_60            IN VARCHAR2
116597 --Invoice Distribution Amount
116598  , p_source_61            IN NUMBER
116599 --Deferred Accounting End Date
116600  , p_source_65            IN DATE
116601 --Deferred Accounting Option
116602  , p_source_66            IN VARCHAR2
116603 --Deferred Accounting Start Date
116604  , p_source_67            IN DATE
116605 --Override Accounted Amount Indicator
116606  , p_source_68            IN VARCHAR2
116607  , p_source_68_meaning    IN VARCHAR2
116608 --Invoice Supplier Identifier
116609  , p_source_69            IN NUMBER
116610 --Invoice Supplier Site Identifier
116611  , p_source_70            IN NUMBER
116612 --Third Party Type
116613  , p_source_71            IN VARCHAR2
116614 --Parent Reversal Identifier
116615  , p_source_72            IN NUMBER
116616 --Invoice Distribution Statistical Amount
116617  , p_source_73            IN NUMBER
116618 --Invoice Distribution Tax Line Identifier
116619  , p_source_74            IN NUMBER
116620 --Invoice Distribution Tax Distribution Identifier from Tax
116621  , p_source_75            IN NUMBER
116622 --Invoice Distribution Summary Tax Line Identifier
116623  , p_source_76            IN NUMBER
116624 --Payables Upgrade Credit Encumbrance Type Identifier
116625  , p_source_77            IN NUMBER
116626 --Payables Upgrade Debit Encumbrance Type Identifier
116627  , p_source_78            IN NUMBER
116628 --Business Flow Accounts Payable Application Identifier
116629  , p_source_79            IN NUMBER
116630 --Business Flow Invoice Distribution Type
116631  , p_source_80            IN VARCHAR2
116632 --Business Flow Invoice Entity Code
116633  , p_source_81            IN VARCHAR2
116634 --Business Flow Invoice Distribution Identifier
116635  , p_source_82            IN NUMBER
116636 --Business Flow Invoice Identifier
116637  , p_source_83            IN NUMBER
116638 --Invoice Exchange Date
116639  , p_source_136            IN DATE
116640 --Invoice Exchange Rate
116641  , p_source_137            IN NUMBER
116642 --Invoice Exchange Rate Type
116643  , p_source_138            IN VARCHAR2
116644 )
116645 IS
116646 
116647 l_component_type              VARCHAR2(80);
116648 l_component_code              VARCHAR2(30);
116649 l_component_type_code         VARCHAR2(1);
116650 l_component_appl_id           INTEGER;
116651 l_amb_context_code            VARCHAR2(30);
116652 l_entity_code                 VARCHAR2(30);
116653 l_event_class_code            VARCHAR2(30);
116654 l_ae_header_id                NUMBER;
116655 l_event_type_code             VARCHAR2(30);
116656 l_line_definition_code        VARCHAR2(30);
116657 l_line_definition_owner_code  VARCHAR2(1);
116658 --
116659 -- adr variables
116660 l_segment                     VARCHAR2(30);
116661 l_ccid                        NUMBER;
116662 l_adr_transaction_coa_id      NUMBER;
116663 l_adr_accounting_coa_id       NUMBER;
116664 l_adr_flexfield_segment_code  VARCHAR2(30);
116665 l_adr_flex_value_set_id       NUMBER;
116666 l_adr_value_type_code         VARCHAR2(30);
116667 l_adr_value_combination_id    NUMBER;
116668 l_adr_value_segment_code      VARCHAR2(30);
116669 
116670 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
116671 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
116672 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
116673 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
116674 
116675 -- 4262811 Variables ------------------------------------------------------------------------------------------
116676 l_entered_amt_idx             NUMBER;
116677 l_accted_amt_idx              NUMBER;
116678 l_acc_rev_flag                VARCHAR2(1);
116679 l_accrual_line_num            NUMBER;
116680 l_tmp_amt                     NUMBER;
116681 l_acc_rev_natural_side_code   VARCHAR2(1);
116682 
116683 l_num_entries                 NUMBER;
116687 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
116684 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
116685 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
116686 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
116688 l_recog_line_1                NUMBER;
116689 l_recog_line_2                NUMBER;
116690 
116691 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
116692 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
116693 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
116694 
116695 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
116696 
116697 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
116698 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
116699 
116700 ---------------------------------------------------------------------------------------------------------------
116701 
116702 
116703 --
116704 -- bulk performance
116705 --
116706 l_balance_type_code           VARCHAR2(1);
116707 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
116708 l_log_module                  VARCHAR2(240);
116709 
116710 --
116711 -- Upgrade strategy
116712 --
116713 l_actual_upg_option           VARCHAR2(1);
116714 l_enc_upg_option           VARCHAR2(1);
116715 
116716 --
116717 BEGIN
116718 --
116719 IF g_log_enabled THEN
116720       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_198';
116721 END IF;
116722 --
116723 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116724 
116725       trace
116726          (p_msg      => 'BEGIN of AcctLineType_198'
116727          ,p_level    => C_LEVEL_PROCEDURE
116728          ,p_module   => l_log_module);
116729 
116730 END IF;
116731 --
116732 l_component_type             := 'AMB_JLT';
116733 l_component_code             := 'AP_MISC_EXPENSE_PREPAY';
116734 l_component_type_code        := 'S';
116735 l_component_appl_id          :=  200;
116736 l_amb_context_code           := 'DEFAULT';
116737 l_entity_code                := 'AP_INVOICES';
116738 l_event_class_code           := 'PREPAYMENTS';
116739 l_event_type_code            := 'PREPAYMENTS_ALL';
116740 l_line_definition_owner_code := 'S';
116741 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
116742 --
116743 l_balance_type_code          := 'A';
116744 l_segment                     := NULL;
116745 l_ccid                        := NULL;
116746 l_adr_transaction_coa_id      := NULL;
116747 l_adr_accounting_coa_id       := NULL;
116748 l_adr_flexfield_segment_code  := NULL;
116749 l_adr_flex_value_set_id       := NULL;
116750 l_adr_value_type_code         := NULL;
116751 l_adr_value_combination_id    := NULL;
116752 l_adr_value_segment_code      := NULL;
116753 
116754 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
116755 l_bflow_class_code           := '';    -- 4219869 Business Flow
116756 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
116757 l_budgetary_control_flag     := 'N';
116758 
116759 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
116760 l_bflow_applied_to_amt       := NULL; -- 5132302
116761 l_entered_amt_idx            := NULL;          -- 4262811
116762 l_accted_amt_idx             := NULL;          -- 4262811
116763 l_acc_rev_flag               := NULL;          -- 4262811
116764 l_accrual_line_num           := NULL;          -- 4262811
116765 l_tmp_amt                    := NULL;          -- 4262811
116766 --
116767  
116768 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
116769     l_balance_type_code <> 'B' THEN
116770 IF NVL(p_source_21,'
116771 ') =  'MISCELLANEOUS'
116772  THEN 
116773 
116774    --
116775    XLA_AE_LINES_PKG.SetNewLine;
116776 
116777    p_balance_type_code          := l_balance_type_code;
116778    -- set the flag so later we will know whether the gain loss line needs to be created
116779    
116780    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
116781      p_actual_flag :='A';
116782    END IF;
116783 
116784    --
116785    -- bulk performance
116786    --
116787    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
116788                                       p_header_num   => 0); -- 4262811
116789    --
116790    -- set accounting line options
116791    --
116792    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
116793            p_natural_side_code          => 'D'
116794          , p_gain_or_loss_flag          => 'N'
116795          , p_gl_transfer_mode_code      => 'S'
116796          , p_acct_entry_type_code       => 'A'
116797          , p_switch_side_flag           => 'Y'
116798          , p_merge_duplicate_code       => 'A'
116799          );
116800    --
116801    l_acc_rev_natural_side_code := 'C';  -- 4262811
116802    -- 
116803    --
116804    -- set accounting line type info
116805    --
116806    xla_ae_lines_pkg.SetAcctLineType
116807       (p_component_type             => l_component_type
116808       ,p_event_type_code            => l_event_type_code
116809       ,p_line_definition_owner_code => l_line_definition_owner_code
116810       ,p_line_definition_code       => l_line_definition_code
116811       ,p_accounting_line_code       => l_component_code
116812       ,p_accounting_line_type_code  => l_component_type_code
116813       ,p_accounting_line_appl_id    => l_component_appl_id
116814       ,p_amb_context_code           => l_amb_context_code
116815       ,p_entity_code                => l_entity_code
116816       ,p_event_class_code           => l_event_class_code);
116817    --
116818    -- set accounting class
116819    --
116823          );
116820    xla_ae_lines_pkg.SetAcctClass(
116821            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
116822          , p_ae_header_id           => l_ae_header_id
116824 
116825    --
116826    -- set rounding class
116827    --
116828    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
116829                       'MISCELLANEOUS EXPENSE';
116830 
116831    --
116832    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
116833    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
116834    --
116835    -- bulk performance
116836    --
116837    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
116838 
116839    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
116840       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
116841 
116842    -- 4955764
116843    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116844       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
116845 
116846    -- 4458381 Public Sector Enh
116847    
116848    --
116849    -- set accounting attributes for the line type
116850    --
116851    l_entered_amt_idx := 23;
116852    l_accted_amt_idx  := 28;
116853    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
116854    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
116855    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
116856    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
116857    l_rec_acct_attrs.array_num_value(2)  := 
116858 xla_ae_sources_pkg.GetSystemSourceNum(
116859    p_source_code           => 'XLA_EVENT_APPL_ID'
116860  , p_source_type_code      => 'Y'
116861  , p_source_application_id =>  602
116862 );
116863    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
116864    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
116865    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
116866    l_rec_acct_attrs.array_char_value(4)  := 
116867 xla_ae_sources_pkg.GetSystemSourceChar(
116868    p_source_code           => 'XLA_ENTITY_CODE'
116869  , p_source_type_code      => 'Y'
116870  , p_source_application_id =>  602
116871 );
116872    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
116873    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
116874    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
116875    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
116876    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
116877    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
116878    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
116879    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
116880    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
116881    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
116882    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
116883    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
116884    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
116885    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
116886    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
116887    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
116888    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
116889    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
116890    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
116891    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
116892    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
116893    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
116894    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
116895    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
116896    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
116897    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
116898    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
116899    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
116900    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
116901    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
116902    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
116903    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
116904    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
116905    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
116906    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
116907    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
116908    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
116909    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
116910    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
116911    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
116912    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
116913    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
116914    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
116915    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
116916    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
116917    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
116918    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
116919    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
116920    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
116921    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
116922    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
116926    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
116923    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
116924    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
116925    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
116927    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
116928    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
116929    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
116930    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
116931    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
116932    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
116933    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
116934    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
116935    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
116936    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
116937    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
116938    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
116939    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
116940    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
116941    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
116942    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
116943    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
116944    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
116945    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
116946    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
116947    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
116948    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
116949    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
116950 
116951    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
116952    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
116953 
116957    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
116954    ---------------------------------------------------------------------------------------------------------------
116955    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
116956    ---------------------------------------------------------------------------------------------------------------
116958 
116959    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
116960    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
116961 
116962    IF xla_accounting_cache_pkg.GetValueChar
116963          (p_source_code         => 'LEDGER_CATEGORY_CODE'
116964          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
116965    AND l_bflow_method_code = 'PRIOR_ENTRY'
116966 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
116967    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
116968          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
116969        )
116970    THEN
116971          xla_ae_lines_pkg.BflowUpgEntry
116972            (p_business_method_code    => l_bflow_method_code
116973            ,p_business_class_code     => l_bflow_class_code
116974            ,p_balance_type            => l_balance_type_code);
116975    ELSE
116976       NULL;
116977 -- No business flow processing for business flow method of NONE.
116978    END IF;
116979 
116980    --
116981    -- call analytical criteria
116982    --
116983    
116984    --
116985    -- call description
116986    --
116987    
116988 xla_ae_lines_pkg.SetLineDescription(
116989    p_ae_header_id => l_ae_header_id
116990   ,p_description  => Description_2 (
116991      p_application_id         => p_application_id
116992    , p_ae_header_id           => l_ae_header_id 
116993 , p_source_1 => p_source_1
116994    )
116995 );
116996 
116997 
116998    --
116999    -- call ADRs
117000    -- Bug 4922099
117001    --
117002    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
117003         (NVL(l_actual_upg_option, 'N') = 'O') OR
117004         (NVL(l_enc_upg_option, 'N') = 'O')
117005       )
117006    THEN
117007    NULL;
117008    --
117009    --
117010    
117011   l_ccid := AcctDerRule_32(
117012            p_application_id           => p_application_id
117013          , p_ae_header_id             => l_ae_header_id 
117014 , p_source_18 => p_source_18
117015          , x_transaction_coa_id       => l_adr_transaction_coa_id
117016          , x_accounting_coa_id        => l_adr_accounting_coa_id
117017          , x_value_type_code          => l_adr_value_type_code
117018          , p_side                     => 'NA'
117019    );
117020 
117021    xla_ae_lines_pkg.set_ccid(
117022     p_code_combination_id          => l_ccid
117026   , p_adr_code                     => 'AP_INVOICE_DIST'
117023   , p_value_type_code              => l_adr_value_type_code
117024   , p_transaction_coa_id           => l_adr_transaction_coa_id
117025   , p_accounting_coa_id            => l_adr_accounting_coa_id
117027   , p_adr_type_code                => 'S'
117028   , p_component_type               => l_component_type
117029   , p_component_code               => l_component_code
117030   , p_component_type_code          => l_component_type_code
117031   , p_component_appl_id            => l_component_appl_id
117032   , p_amb_context_code             => l_amb_context_code
117033   , p_side                         => 'NA'
117034   );
117035 
117036 
117037    --
117038    --
117039    END IF;
117040    --
117041    -- Bug 4922099
117042    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
117043           (NVL(l_enc_upg_option, 'N') = 'O')
117044         ) AND
117045         (l_bflow_method_code = 'PRIOR_ENTRY')
117046       )
117047    THEN
117048       IF
117049       --
117050       1 = 2
117051       --
117052       THEN
117053       xla_accounting_err_pkg.build_message
117054                                     (p_appli_s_name            => 'XLA'
117055                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
117056                                     ,p_token_1                 => 'LINE_NUMBER'
117057                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
117058                                     ,p_token_2                 => 'LINE_TYPE_NAME'
117059                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
117060                                                                              l_component_type
117061                                                                             ,l_component_code
117062                                                                             ,l_component_type_code
117063                                                                             ,l_component_appl_id
117064                                                                             ,l_amb_context_code
117065                                                                             ,l_entity_code
117066                                                                             ,l_event_class_code
117067                                                                            )
117068                                     ,p_token_3                 => 'OWNER'
117069                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
117070                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
117071                                                                           ,p_lookup_code    => l_component_type_code
117072                                                                          )
117073                                     ,p_token_4                 => 'PRODUCT_NAME'
117074                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
117075                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
117076                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
117077                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
117078                                     ,p_ae_header_id            =>  NULL
117079                                        );
117080 
117081         IF (C_LEVEL_ERROR>= g_log_level) THEN
117082                  trace
117083                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
117084                       ,p_level    => C_LEVEL_ERROR
117085                       ,p_module   => l_log_module);
117086         END IF;
117087       END IF;
117091    ------------------------------------------------------------------------------------------------
117088    END IF;
117089    --
117090    --
117092    -- 4219869 Business Flow
117093    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
117094    -- Prior Entry.  Currently, the following code is always generated.
117095    ------------------------------------------------------------------------------------------------
117096    XLA_AE_LINES_PKG.ValidateCurrentLine;
117097 
117098    ------------------------------------------------------------------------------------
117099    -- 4219869 Business Flow
117100    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
117101    ------------------------------------------------------------------------------------
117102    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
117103 
117104    ----------------------------------------------------------------------------------
117105    -- 4219869 Business Flow
117106    -- Update journal entry status -- Need to generate this within IF <condition>
117110          ,p_balance_type_code => l_balance_type_code
117107    ----------------------------------------------------------------------------------
117108    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
117109          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
117111          );
117112 
117113    -------------------------------------------------------------------------------------------
117114    -- 4262811 - Generate the Accrual Reversal lines
117115    -------------------------------------------------------------------------------------------
117116    BEGIN
117117       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
117118                               (g_array_event(p_event_id).array_value_num('header_index'));
117119       IF l_acc_rev_flag IS NULL THEN
117120          l_acc_rev_flag := 'N';
117121       END IF;
117122    EXCEPTION
117123       WHEN OTHERS THEN
117124          l_acc_rev_flag := 'N';
117125    END;
117126    --
117127    IF (l_acc_rev_flag = 'Y') THEN
117128 
117129        -- 4645092  ------------------------------------------------------------------------------
117130        -- To allow MPA report to determine if it should generate report process
117131        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
117132        ------------------------------------------------------------------------------------------
117133 
117134        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
117135        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
117136    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
117137    -- call ADRs
117138    -- Bug 4922099
117139    --
117140    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
117141         (NVL(l_actual_upg_option, 'N') = 'O') OR
117142         (NVL(l_enc_upg_option, 'N') = 'O')
117143       )
117144    THEN
117145    NULL;
117146    --
117147    --
117148    
117149   l_ccid := AcctDerRule_32(
117150            p_application_id           => p_application_id
117151          , p_ae_header_id             => l_ae_header_id 
117152 , p_source_18 => p_source_18
117153          , x_transaction_coa_id       => l_adr_transaction_coa_id
117154          , x_accounting_coa_id        => l_adr_accounting_coa_id
117155          , x_value_type_code          => l_adr_value_type_code
117156          , p_side                     => 'NA'
117157    );
117158 
117159    xla_ae_lines_pkg.set_ccid(
117160     p_code_combination_id          => l_ccid
117161   , p_value_type_code              => l_adr_value_type_code
117162   , p_transaction_coa_id           => l_adr_transaction_coa_id
117163   , p_accounting_coa_id            => l_adr_accounting_coa_id
117164   , p_adr_code                     => 'AP_INVOICE_DIST'
117165   , p_adr_type_code                => 'S'
117166   , p_component_type               => l_component_type
117167   , p_component_code               => l_component_code
117168   , p_component_type_code          => l_component_type_code
117169   , p_component_appl_id            => l_component_appl_id
117170   , p_amb_context_code             => l_amb_context_code
117171   , p_side                         => 'NA'
117172   );
117173 
117174 
117175    --
117176    --
117177    END IF;
117178 
117179        --
117180        -- Update the line information that should be overwritten
117181        --
117182        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
117183                                          p_header_num   => 1);
117184        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
117185 
117186        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
117187 
117188        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
117189           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
117190        END IF;
117191 
117192       --
117193       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
117194       --
117195       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
117196           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
117197       ELSE
117198           ---------------------------------------------------------------------------------------------------
117199           -- 4262811a Switch Sign
117200           ---------------------------------------------------------------------------------------------------
117201           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
117202           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
117203                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117204           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
117205                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117206           -- 5132302
117207           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
117208                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117209 
117210       END IF;
117211 
117212       -- 4955764
117213       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
117214       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
117215 
117216 
117217       XLA_AE_LINES_PKG.ValidateCurrentLine;
117218       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
117219 
117220       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
117224    END IF;
117221                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
117222                ,p_balance_type_code => l_balance_type_code);
117223 
117225 
117226    -----------------------------------------------------------------------------------------
117227    -- 4262811 Multiperiod Accounting
117228    -----------------------------------------------------------------------------------------
117229      -- No MPA option is assigned.
117230 
117231 
117232 END IF;
117233 END IF;
117234 --
117235 
117236 --
117237 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
117238    trace
117239       (p_msg      => 'END of AcctLineType_198'
117240       ,p_level    => C_LEVEL_PROCEDURE
117241       ,p_module   => l_log_module);
117242 END IF;
117243 --
117244 EXCEPTION
117245   WHEN xla_exceptions_pkg.application_exception THEN
117246       RAISE;
117247   WHEN OTHERS THEN
117248        xla_exceptions_pkg.raise_message
117249            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_198');
117250 END AcctLineType_198;
117251 --
117252 
117253 ---------------------------------------
117254 --
117255 -- PRIVATE FUNCTION
117256 --         AcctLineType_199
117257 --
117258 ---------------------------------------
117259 PROCEDURE AcctLineType_199 (
117260   p_application_id        IN NUMBER
117261  ,p_event_id              IN NUMBER
117262  ,p_calculate_acctd_flag  IN VARCHAR2
117263  ,p_calculate_g_l_flag    IN VARCHAR2
117264  ,p_actual_flag           IN OUT VARCHAR2
117265  ,p_balance_type_code     OUT VARCHAR2
117266  ,p_gain_or_loss_ref      OUT VARCHAR2
117267  
117268 --Invoice Distribution Description
117269  , p_source_1            IN VARCHAR2
117270 --Invoice Distribution Ledger Amount
117271  , p_source_9            IN NUMBER
117272 --Invoice Distribution Account
117273  , p_source_18            IN NUMBER
117274 --Invoice Distribution Type
117275  , p_source_21            IN VARCHAR2
117276  , p_source_21_meaning    IN VARCHAR2
117277 --Accounting Reversal Indicator
117278  , p_source_41            IN VARCHAR2
117279 --Distribution Link Type
117280  , p_source_43            IN VARCHAR2
117281 --Allocation to Main Distribution Identifier
117282  , p_source_45            IN NUMBER
117283 --Invoice Identifier
117284  , p_source_46            IN NUMBER
117285 --Invoice Distribution Identifier
117286  , p_source_52            IN NUMBER
117287 --Payables Encumbrance Upgrade Credit Account
117288  , p_source_53            IN NUMBER
117289 --Payables Encumbrance Upgrade Credit Amount
117290  , p_source_54            IN NUMBER
117291 --Invoice Currency Code
117292  , p_source_55            IN VARCHAR2
117293 --Payables Encumbrance Upgrade Credit Base Amount
117294  , p_source_56            IN NUMBER
117295 --Payables Encumbrance Upgrade Debit Account
117296  , p_source_57            IN NUMBER
117297 --Payables Encumbrance Upgrade Debit Amount
117298  , p_source_58            IN NUMBER
117299 --Payables Encumbrance Upgrade Debit Base Amount
117300  , p_source_59            IN NUMBER
117301 --Payables Encumbrance Upgrade Option
117302  , p_source_60            IN VARCHAR2
117303 --Invoice Distribution Amount
117304  , p_source_61            IN NUMBER
117305 --Purchase Order Exchange Rate Date
117306  , p_source_62            IN DATE
117307 --Purchase Order Exchange Rate
117308  , p_source_63            IN NUMBER
117309 --Purchase Order Exchange Rate Type
117310  , p_source_64            IN VARCHAR2
117311 --Deferred Accounting End Date
117312  , p_source_65            IN DATE
117313 --Deferred Accounting Option
117314  , p_source_66            IN VARCHAR2
117315 --Deferred Accounting Start Date
117316  , p_source_67            IN DATE
117317 --Override Accounted Amount Indicator
117318  , p_source_68            IN VARCHAR2
117319  , p_source_68_meaning    IN VARCHAR2
117320 --Invoice Supplier Identifier
117321  , p_source_69            IN NUMBER
117322 --Invoice Supplier Site Identifier
117323  , p_source_70            IN NUMBER
117324 --Third Party Type
117325  , p_source_71            IN VARCHAR2
117326 --Parent Reversal Identifier
117327  , p_source_72            IN NUMBER
117328 --Invoice Distribution Statistical Amount
117329  , p_source_73            IN NUMBER
117330 --Invoice Distribution Tax Line Identifier
117331  , p_source_74            IN NUMBER
117332 --Invoice Distribution Tax Distribution Identifier from Tax
117333  , p_source_75            IN NUMBER
117334 --Invoice Distribution Summary Tax Line Identifier
117335  , p_source_76            IN NUMBER
117336 --Payables Upgrade Credit Encumbrance Type Identifier
117337  , p_source_77            IN NUMBER
117338 --Payables Upgrade Debit Encumbrance Type Identifier
117339  , p_source_78            IN NUMBER
117340 --Business Flow Accounts Payable Application Identifier
117341  , p_source_79            IN NUMBER
117342 --Business Flow Invoice Distribution Type
117343  , p_source_80            IN VARCHAR2
117344 --Business Flow Invoice Entity Code
117345  , p_source_81            IN VARCHAR2
117346 --Business Flow Invoice Distribution Identifier
117350 --Accrue on Receipt Option
117347  , p_source_82            IN NUMBER
117348 --Business Flow Invoice Identifier
117349  , p_source_83            IN NUMBER
117351  , p_source_84            IN VARCHAR2
117352  , p_source_84_meaning    IN VARCHAR2
117353 --Self-Assessed Tax Flag
117354  , p_source_135            IN VARCHAR2
117355  , p_source_135_meaning    IN VARCHAR2
117356 )
117357 IS
117358 
117359 l_component_type              VARCHAR2(80);
117360 l_component_code              VARCHAR2(30);
117361 l_component_type_code         VARCHAR2(1);
117362 l_component_appl_id           INTEGER;
117363 l_amb_context_code            VARCHAR2(30);
117364 l_entity_code                 VARCHAR2(30);
117365 l_event_class_code            VARCHAR2(30);
117366 l_ae_header_id                NUMBER;
117367 l_event_type_code             VARCHAR2(30);
117368 l_line_definition_code        VARCHAR2(30);
117369 l_line_definition_owner_code  VARCHAR2(1);
117370 --
117371 -- adr variables
117372 l_segment                     VARCHAR2(30);
117373 l_ccid                        NUMBER;
117374 l_adr_transaction_coa_id      NUMBER;
117375 l_adr_accounting_coa_id       NUMBER;
117376 l_adr_flexfield_segment_code  VARCHAR2(30);
117377 l_adr_flex_value_set_id       NUMBER;
117378 l_adr_value_type_code         VARCHAR2(30);
117379 l_adr_value_combination_id    NUMBER;
117380 l_adr_value_segment_code      VARCHAR2(30);
117381 
117382 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
117383 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
117387 -- 4262811 Variables ------------------------------------------------------------------------------------------
117384 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
117385 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
117386 
117388 l_entered_amt_idx             NUMBER;
117389 l_accted_amt_idx              NUMBER;
117390 l_acc_rev_flag                VARCHAR2(1);
117391 l_accrual_line_num            NUMBER;
117392 l_tmp_amt                     NUMBER;
117393 l_acc_rev_natural_side_code   VARCHAR2(1);
117394 
117395 l_num_entries                 NUMBER;
117396 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
117397 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
117398 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
117399 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
117400 l_recog_line_1                NUMBER;
117401 l_recog_line_2                NUMBER;
117402 
117403 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
117404 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
117405 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
117406 
117407 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
117408 
117409 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
117410 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
117411 
117412 ---------------------------------------------------------------------------------------------------------------
117413 
117414 
117415 --
117416 -- bulk performance
117417 --
117418 l_balance_type_code           VARCHAR2(1);
117419 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
117420 l_log_module                  VARCHAR2(240);
117421 
117422 --
117423 -- Upgrade strategy
117424 --
117425 l_actual_upg_option           VARCHAR2(1);
117426 l_enc_upg_option           VARCHAR2(1);
117427 
117428 --
117429 BEGIN
117430 --
117431 IF g_log_enabled THEN
117432       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_199';
117433 END IF;
117434 --
117435 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
117436 
117437       trace
117438          (p_msg      => 'BEGIN of AcctLineType_199'
117439          ,p_level    => C_LEVEL_PROCEDURE
117440          ,p_module   => l_log_module);
117441 
117442 END IF;
117443 --
117444 l_component_type             := 'AMB_JLT';
117445 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_CM';
117446 l_component_type_code        := 'S';
117447 l_component_appl_id          :=  200;
117448 l_amb_context_code           := 'DEFAULT';
117449 l_entity_code                := 'AP_INVOICES';
117450 l_event_class_code           := 'CREDIT MEMOS';
117451 l_event_type_code            := 'CREDIT MEMOS_ALL';
117452 l_line_definition_owner_code := 'S';
117453 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
117454 --
117455 l_balance_type_code          := 'A';
117456 l_segment                     := NULL;
117457 l_ccid                        := NULL;
117458 l_adr_transaction_coa_id      := NULL;
117459 l_adr_accounting_coa_id       := NULL;
117460 l_adr_flexfield_segment_code  := NULL;
117461 l_adr_flex_value_set_id       := NULL;
117462 l_adr_value_type_code         := NULL;
117463 l_adr_value_combination_id    := NULL;
117464 l_adr_value_segment_code      := NULL;
117465 
117466 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
117467 l_bflow_class_code           := '';    -- 4219869 Business Flow
117468 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
117469 l_budgetary_control_flag     := 'N';
117470 
117471 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
117472 l_bflow_applied_to_amt       := NULL; -- 5132302
117473 l_entered_amt_idx            := NULL;          -- 4262811
117474 l_accted_amt_idx             := NULL;          -- 4262811
117475 l_acc_rev_flag               := NULL;          -- 4262811
117476 l_accrual_line_num           := NULL;          -- 4262811
117477 l_tmp_amt                    := NULL;          -- 4262811
117478 --
117479  
117480 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
117481     l_balance_type_code <> 'B' THEN
117482 IF NVL(p_source_21,'
117483 ') =  'NONREC_TAX' AND 
117487 ') <>  'Y'
117484 NVL(p_source_84,'
117485 ') =  'Y' AND 
117486 NVL(p_source_135,'
117488  THEN 
117489 
117490    --
117491    XLA_AE_LINES_PKG.SetNewLine;
117492 
117493    p_balance_type_code          := l_balance_type_code;
117494    -- set the flag so later we will know whether the gain loss line needs to be created
117495    
117496    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
117497      p_actual_flag :='A';
117498    END IF;
117499 
117500    --
117501    -- bulk performance
117502    --
117503    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
117504                                       p_header_num   => 0); -- 4262811
117505    --
117506    -- set accounting line options
117507    --
117508    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
117509            p_natural_side_code          => 'D'
117510          , p_gain_or_loss_flag          => 'N'
117511          , p_gl_transfer_mode_code      => 'S'
117512          , p_acct_entry_type_code       => 'A'
117513          , p_switch_side_flag           => 'Y'
117514          , p_merge_duplicate_code       => 'A'
117515          );
117516    --
117517    l_acc_rev_natural_side_code := 'C';  -- 4262811
117518    -- 
117519    --
117520    -- set accounting line type info
117521    --
117522    xla_ae_lines_pkg.SetAcctLineType
117523       (p_component_type             => l_component_type
117524       ,p_event_type_code            => l_event_type_code
117525       ,p_line_definition_owner_code => l_line_definition_owner_code
117526       ,p_line_definition_code       => l_line_definition_code
117527       ,p_accounting_line_code       => l_component_code
117528       ,p_accounting_line_type_code  => l_component_type_code
117529       ,p_accounting_line_appl_id    => l_component_appl_id
117530       ,p_amb_context_code           => l_amb_context_code
117531       ,p_entity_code                => l_entity_code
117532       ,p_event_class_code           => l_event_class_code);
117533    --
117534    -- set accounting class
117535    --
117536    xla_ae_lines_pkg.SetAcctClass(
117537            p_accounting_class_code  => 'NRTAX'
117538          , p_ae_header_id           => l_ae_header_id
117539          );
117540 
117541    --
117542    -- set rounding class
117543    --
117547    --
117544    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
117545                       'NRTAX';
117546 
117548    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
117552    --
117549    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
117550    --
117551    -- bulk performance
117553    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
117554 
117555    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
117556       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
117557 
117558    -- 4955764
117559    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
117560       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
117561 
117562    -- 4458381 Public Sector Enh
117563    
117564    --
117565    -- set accounting attributes for the line type
117566    --
117567    l_entered_amt_idx := 23;
117568    l_accted_amt_idx  := 28;
117569    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
117570    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
117571    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
117572    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
117573    l_rec_acct_attrs.array_num_value(2)  := 
117574 xla_ae_sources_pkg.GetSystemSourceNum(
117575    p_source_code           => 'XLA_EVENT_APPL_ID'
117576  , p_source_type_code      => 'Y'
117577  , p_source_application_id =>  602
117578 );
117579    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
117580    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
117581    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
117582    l_rec_acct_attrs.array_char_value(4)  := 
117583 xla_ae_sources_pkg.GetSystemSourceChar(
117584    p_source_code           => 'XLA_ENTITY_CODE'
117585  , p_source_type_code      => 'Y'
117586  , p_source_application_id =>  602
117587 );
117588    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
117589    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
117590    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
117591    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
117592    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
117593    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
117594    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
117595    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
117596    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
117597    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
117598    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
117599    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
117600    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
117601    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
117602    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
117603    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
117604    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
117605    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
117606    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
117607    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
117608    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
117609    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
117610    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
117611    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
117612    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
117613    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
117614    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
117615    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
117616    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
117617    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
117618    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
117619    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
117620    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
117621    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
117622    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
117623    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
117624    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
117625    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
117626    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
117627    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
117628    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
117629    l_rec_acct_attrs.array_date_value(25)  := p_source_62;
117630    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
117631    l_rec_acct_attrs.array_num_value(26)  := p_source_63;
117632    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
117633    l_rec_acct_attrs.array_char_value(27)  := p_source_64;
117634    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
117635    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
117636    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
117637    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
117638    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
117639    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
117640    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
117641    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
117642    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
117643    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
117644    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
117645    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
117646    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
117647    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
117651    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
117648    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
117649    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
117650    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
117652    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
117653    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
117654    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
117655    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
117656    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
117657    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
117661    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
117658    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
117659    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
117660    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
117662    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
117663    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
117664    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
117665    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
117666 
117667    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
117668    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
117669 
117670    ---------------------------------------------------------------------------------------------------------------
117671    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
117672    ---------------------------------------------------------------------------------------------------------------
117673    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
117674 
117675    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
117676    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
117677 
117678    IF xla_accounting_cache_pkg.GetValueChar
117679          (p_source_code         => 'LEDGER_CATEGORY_CODE'
117680          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
117681    AND l_bflow_method_code = 'PRIOR_ENTRY'
117682 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
117683    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
117684          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
117685        )
117686    THEN
117687          xla_ae_lines_pkg.BflowUpgEntry
117688            (p_business_method_code    => l_bflow_method_code
117689            ,p_business_class_code     => l_bflow_class_code
117690            ,p_balance_type            => l_balance_type_code);
117691    ELSE
117692       NULL;
117693 -- No business flow processing for business flow method of NONE.
117694    END IF;
117695 
117696    --
117697    -- call analytical criteria
117698    --
117699    
117700    --
117701    -- call description
117702    --
117703    
117704 xla_ae_lines_pkg.SetLineDescription(
117705    p_ae_header_id => l_ae_header_id
117706   ,p_description  => Description_2 (
117707      p_application_id         => p_application_id
117708    , p_ae_header_id           => l_ae_header_id 
117709 , p_source_1 => p_source_1
117710    )
117711 );
117712 
117713 
117714    --
117715    -- call ADRs
117716    -- Bug 4922099
117717    --
117718    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
117719         (NVL(l_actual_upg_option, 'N') = 'O') OR
117720         (NVL(l_enc_upg_option, 'N') = 'O')
117721       )
117722    THEN
117723    NULL;
117724    --
117725    --
117726    
117727   l_ccid := AcctDerRule_32(
117731          , x_transaction_coa_id       => l_adr_transaction_coa_id
117728            p_application_id           => p_application_id
117729          , p_ae_header_id             => l_ae_header_id 
117730 , p_source_18 => p_source_18
117732          , x_accounting_coa_id        => l_adr_accounting_coa_id
117733          , x_value_type_code          => l_adr_value_type_code
117734          , p_side                     => 'NA'
117735    );
117736 
117737    xla_ae_lines_pkg.set_ccid(
117738     p_code_combination_id          => l_ccid
117739   , p_value_type_code              => l_adr_value_type_code
117740   , p_transaction_coa_id           => l_adr_transaction_coa_id
117741   , p_accounting_coa_id            => l_adr_accounting_coa_id
117742   , p_adr_code                     => 'AP_INVOICE_DIST'
117743   , p_adr_type_code                => 'S'
117744   , p_component_type               => l_component_type
117745   , p_component_code               => l_component_code
117746   , p_component_type_code          => l_component_type_code
117747   , p_component_appl_id            => l_component_appl_id
117748   , p_amb_context_code             => l_amb_context_code
117749   , p_side                         => 'NA'
117750   );
117751 
117752 
117753    --
117754    --
117755    END IF;
117756    --
117757    -- Bug 4922099
117758    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
117759           (NVL(l_enc_upg_option, 'N') = 'O')
117760         ) AND
117761         (l_bflow_method_code = 'PRIOR_ENTRY')
117762       )
117763    THEN
117764       IF
117765       --
117766       1 = 2
117767       --
117768       THEN
117769       xla_accounting_err_pkg.build_message
117770                                     (p_appli_s_name            => 'XLA'
117771                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
117772                                     ,p_token_1                 => 'LINE_NUMBER'
117773                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
117774                                     ,p_token_2                 => 'LINE_TYPE_NAME'
117775                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
117776                                                                              l_component_type
117777                                                                             ,l_component_code
117778                                                                             ,l_component_type_code
117779                                                                             ,l_component_appl_id
117780                                                                             ,l_amb_context_code
117781                                                                             ,l_entity_code
117782                                                                             ,l_event_class_code
117783                                                                            )
117784                                     ,p_token_3                 => 'OWNER'
117785                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
117786                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
117787                                                                           ,p_lookup_code    => l_component_type_code
117788                                                                          )
117789                                     ,p_token_4                 => 'PRODUCT_NAME'
117790                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
117794                                     ,p_ae_header_id            =>  NULL
117791                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
117792                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
117793                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
117795                                        );
117796 
117797         IF (C_LEVEL_ERROR>= g_log_level) THEN
117798                  trace
117799                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
117800                       ,p_level    => C_LEVEL_ERROR
117801                       ,p_module   => l_log_module);
117802         END IF;
117803       END IF;
117804    END IF;
117805    --
117806    --
117807    ------------------------------------------------------------------------------------------------
117811    ------------------------------------------------------------------------------------------------
117808    -- 4219869 Business Flow
117809    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
117810    -- Prior Entry.  Currently, the following code is always generated.
117812    XLA_AE_LINES_PKG.ValidateCurrentLine;
117813 
117814    ------------------------------------------------------------------------------------
117815    -- 4219869 Business Flow
117816    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
117817    ------------------------------------------------------------------------------------
117818    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
117819 
117820    ----------------------------------------------------------------------------------
117821    -- 4219869 Business Flow
117822    -- Update journal entry status -- Need to generate this within IF <condition>
117823    ----------------------------------------------------------------------------------
117824    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
117825          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
117826          ,p_balance_type_code => l_balance_type_code
117827          );
117828 
117829    -------------------------------------------------------------------------------------------
117830    -- 4262811 - Generate the Accrual Reversal lines
117831    -------------------------------------------------------------------------------------------
117832    BEGIN
117833       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
117834                               (g_array_event(p_event_id).array_value_num('header_index'));
117835       IF l_acc_rev_flag IS NULL THEN
117836          l_acc_rev_flag := 'N';
117837       END IF;
117838    EXCEPTION
117839       WHEN OTHERS THEN
117840          l_acc_rev_flag := 'N';
117841    END;
117842    --
117843    IF (l_acc_rev_flag = 'Y') THEN
117844 
117845        -- 4645092  ------------------------------------------------------------------------------
117846        -- To allow MPA report to determine if it should generate report process
117847        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
117848        ------------------------------------------------------------------------------------------
117849 
117850        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
117851        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
117852    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
117853    -- call ADRs
117854    -- Bug 4922099
117855    --
117856    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
117857         (NVL(l_actual_upg_option, 'N') = 'O') OR
117858         (NVL(l_enc_upg_option, 'N') = 'O')
117859       )
117860    THEN
117861    NULL;
117862    --
117863    --
117864    
117865   l_ccid := AcctDerRule_32(
117866            p_application_id           => p_application_id
117867          , p_ae_header_id             => l_ae_header_id 
117868 , p_source_18 => p_source_18
117869          , x_transaction_coa_id       => l_adr_transaction_coa_id
117870          , x_accounting_coa_id        => l_adr_accounting_coa_id
117871          , x_value_type_code          => l_adr_value_type_code
117872          , p_side                     => 'NA'
117873    );
117874 
117875    xla_ae_lines_pkg.set_ccid(
117876     p_code_combination_id          => l_ccid
117877   , p_value_type_code              => l_adr_value_type_code
117878   , p_transaction_coa_id           => l_adr_transaction_coa_id
117879   , p_accounting_coa_id            => l_adr_accounting_coa_id
117880   , p_adr_code                     => 'AP_INVOICE_DIST'
117881   , p_adr_type_code                => 'S'
117882   , p_component_type               => l_component_type
117883   , p_component_code               => l_component_code
117884   , p_component_type_code          => l_component_type_code
117885   , p_component_appl_id            => l_component_appl_id
117886   , p_amb_context_code             => l_amb_context_code
117887   , p_side                         => 'NA'
117888   );
117889 
117890 
117891    --
117892    --
117893    END IF;
117894 
117895        --
117896        -- Update the line information that should be overwritten
117897        --
117898        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
117899                                          p_header_num   => 1);
117900        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
117901 
117902        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
117903 
117904        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
117905           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
117906        END IF;
117907 
117908       --
117909       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
117910       --
117911       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
117912           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
117913       ELSE
117914           ---------------------------------------------------------------------------------------------------
117915           -- 4262811a Switch Sign
117916           ---------------------------------------------------------------------------------------------------
117917           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
117918           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
117919                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117920           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
117924                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117921                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117922           -- 5132302
117923           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
117925 
117926       END IF;
117927 
117928       -- 4955764
117929       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
117930       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
117931 
117932 
117933       XLA_AE_LINES_PKG.ValidateCurrentLine;
117934       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
117935 
117936       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
117937                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
117938                ,p_balance_type_code => l_balance_type_code);
117939 
117940    END IF;
117941 
117942    -----------------------------------------------------------------------------------------
117943    -- 4262811 Multiperiod Accounting
117944    -----------------------------------------------------------------------------------------
117945      -- No MPA option is assigned.
117946 
117947 
117948 END IF;
117949 END IF;
117950 --
117951 
117952 --
117953 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
117954    trace
117955       (p_msg      => 'END of AcctLineType_199'
117956       ,p_level    => C_LEVEL_PROCEDURE
117957       ,p_module   => l_log_module);
117958 END IF;
117959 --
117960 EXCEPTION
117961   WHEN xla_exceptions_pkg.application_exception THEN
117962       RAISE;
117963   WHEN OTHERS THEN
117964        xla_exceptions_pkg.raise_message
117965            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_199');
117966 END AcctLineType_199;
117967 --
117968 
117969 ---------------------------------------
117970 --
117971 -- PRIVATE FUNCTION
117972 --         AcctLineType_200
117973 --
117974 ---------------------------------------
117975 PROCEDURE AcctLineType_200 (
117976   p_application_id        IN NUMBER
117977  ,p_event_id              IN NUMBER
117978  ,p_calculate_acctd_flag  IN VARCHAR2
117979  ,p_calculate_g_l_flag    IN VARCHAR2
117980  ,p_actual_flag           IN OUT VARCHAR2
117981  ,p_balance_type_code     OUT VARCHAR2
117982  ,p_gain_or_loss_ref      OUT VARCHAR2
117983  
117984 --Invoice Distribution Description
117985  , p_source_1            IN VARCHAR2
117986 --Invoice Distribution Ledger Amount
117987  , p_source_9            IN NUMBER
117988 --Invoice Distribution Account
117989  , p_source_18            IN NUMBER
117990 --Invoice Distribution Type
117991  , p_source_21            IN VARCHAR2
117992  , p_source_21_meaning    IN VARCHAR2
117993 --Accounting Reversal Indicator
117994  , p_source_41            IN VARCHAR2
117995 --Distribution Link Type
117996  , p_source_43            IN VARCHAR2
117997 --Allocation to Main Distribution Identifier
117998  , p_source_45            IN NUMBER
117999 --Invoice Identifier
118000  , p_source_46            IN NUMBER
118001 --Invoice Distribution Identifier
118002  , p_source_52            IN NUMBER
118003 --Payables Encumbrance Upgrade Credit Account
118004  , p_source_53            IN NUMBER
118005 --Payables Encumbrance Upgrade Credit Amount
118006  , p_source_54            IN NUMBER
118007 --Invoice Currency Code
118008  , p_source_55            IN VARCHAR2
118009 --Payables Encumbrance Upgrade Credit Base Amount
118010  , p_source_56            IN NUMBER
118011 --Payables Encumbrance Upgrade Debit Account
118012  , p_source_57            IN NUMBER
118013 --Payables Encumbrance Upgrade Debit Amount
118014  , p_source_58            IN NUMBER
118015 --Payables Encumbrance Upgrade Debit Base Amount
118016  , p_source_59            IN NUMBER
118017 --Payables Encumbrance Upgrade Option
118018  , p_source_60            IN VARCHAR2
118019 --Invoice Distribution Amount
118020  , p_source_61            IN NUMBER
118021 --Purchase Order Exchange Rate Date
118022  , p_source_62            IN DATE
118023 --Purchase Order Exchange Rate
118024  , p_source_63            IN NUMBER
118025 --Purchase Order Exchange Rate Type
118026  , p_source_64            IN VARCHAR2
118027 --Deferred Accounting End Date
118028  , p_source_65            IN DATE
118029 --Deferred Accounting Option
118030  , p_source_66            IN VARCHAR2
118031 --Deferred Accounting Start Date
118032  , p_source_67            IN DATE
118036 --Invoice Supplier Identifier
118033 --Override Accounted Amount Indicator
118034  , p_source_68            IN VARCHAR2
118035  , p_source_68_meaning    IN VARCHAR2
118037  , p_source_69            IN NUMBER
118038 --Invoice Supplier Site Identifier
118039  , p_source_70            IN NUMBER
118040 --Third Party Type
118041  , p_source_71            IN VARCHAR2
118042 --Parent Reversal Identifier
118043  , p_source_72            IN NUMBER
118044 --Invoice Distribution Tax Line Identifier
118045  , p_source_74            IN NUMBER
118046 --Invoice Distribution Tax Distribution Identifier from Tax
118047  , p_source_75            IN NUMBER
118048 --Invoice Distribution Summary Tax Line Identifier
118049  , p_source_76            IN NUMBER
118050 --Payables Upgrade Credit Encumbrance Type Identifier
118051  , p_source_77            IN NUMBER
118052 --Payables Upgrade Debit Encumbrance Type Identifier
118053  , p_source_78            IN NUMBER
118054 --Business Flow Accounts Payable Application Identifier
118055  , p_source_79            IN NUMBER
118056 --Business Flow Invoice Distribution Type
118057  , p_source_80            IN VARCHAR2
118058 --Business Flow Invoice Entity Code
118059  , p_source_81            IN VARCHAR2
118060 --Business Flow Invoice Distribution Identifier
118061  , p_source_82            IN NUMBER
118062 --Business Flow Invoice Identifier
118063  , p_source_83            IN NUMBER
118064 --Accrue on Receipt Option
118065  , p_source_84            IN VARCHAR2
118066  , p_source_84_meaning    IN VARCHAR2
118067 --Self-Assessed Tax Flag
118068  , p_source_135            IN VARCHAR2
118069  , p_source_135_meaning    IN VARCHAR2
118070 )
118071 IS
118072 
118073 l_component_type              VARCHAR2(80);
118074 l_component_code              VARCHAR2(30);
118075 l_component_type_code         VARCHAR2(1);
118076 l_component_appl_id           INTEGER;
118077 l_amb_context_code            VARCHAR2(30);
118078 l_entity_code                 VARCHAR2(30);
118079 l_event_class_code            VARCHAR2(30);
118080 l_ae_header_id                NUMBER;
118081 l_event_type_code             VARCHAR2(30);
118082 l_line_definition_code        VARCHAR2(30);
118083 l_line_definition_owner_code  VARCHAR2(1);
118087 l_ccid                        NUMBER;
118084 --
118085 -- adr variables
118086 l_segment                     VARCHAR2(30);
118088 l_adr_transaction_coa_id      NUMBER;
118089 l_adr_accounting_coa_id       NUMBER;
118090 l_adr_flexfield_segment_code  VARCHAR2(30);
118091 l_adr_flex_value_set_id       NUMBER;
118092 l_adr_value_type_code         VARCHAR2(30);
118093 l_adr_value_combination_id    NUMBER;
118094 l_adr_value_segment_code      VARCHAR2(30);
118095 
118096 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
118097 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
118098 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
118099 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
118100 
118101 -- 4262811 Variables ------------------------------------------------------------------------------------------
118102 l_entered_amt_idx             NUMBER;
118103 l_accted_amt_idx              NUMBER;
118104 l_acc_rev_flag                VARCHAR2(1);
118105 l_accrual_line_num            NUMBER;
118106 l_tmp_amt                     NUMBER;
118107 l_acc_rev_natural_side_code   VARCHAR2(1);
118108 
118109 l_num_entries                 NUMBER;
118110 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
118111 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
118112 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
118113 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
118114 l_recog_line_1                NUMBER;
118115 l_recog_line_2                NUMBER;
118116 
118117 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
118118 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
118119 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
118120 
118121 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
118122 
118123 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
118124 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
118125 
118126 ---------------------------------------------------------------------------------------------------------------
118127 
118128 
118129 --
118130 -- bulk performance
118131 --
118132 l_balance_type_code           VARCHAR2(1);
118133 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
118134 l_log_module                  VARCHAR2(240);
118138 --
118135 
118136 --
118137 -- Upgrade strategy
118139 l_actual_upg_option           VARCHAR2(1);
118140 l_enc_upg_option           VARCHAR2(1);
118141 
118142 --
118143 BEGIN
118144 --
118145 IF g_log_enabled THEN
118146       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_200';
118147 END IF;
118148 --
118149 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118150 
118151       trace
118152          (p_msg      => 'BEGIN of AcctLineType_200'
118153          ,p_level    => C_LEVEL_PROCEDURE
118154          ,p_module   => l_log_module);
118155 
118156 END IF;
118157 --
118158 l_component_type             := 'AMB_JLT';
118159 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_DM';
118160 l_component_type_code        := 'S';
118161 l_component_appl_id          :=  200;
118162 l_amb_context_code           := 'DEFAULT';
118163 l_entity_code                := 'AP_INVOICES';
118164 l_event_class_code           := 'DEBIT MEMOS';
118165 l_event_type_code            := 'DEBIT MEMOS_ALL';
118166 l_line_definition_owner_code := 'S';
118167 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
118168 --
118169 l_balance_type_code          := 'A';
118170 l_segment                     := NULL;
118171 l_ccid                        := NULL;
118172 l_adr_transaction_coa_id      := NULL;
118173 l_adr_accounting_coa_id       := NULL;
118174 l_adr_flexfield_segment_code  := NULL;
118175 l_adr_flex_value_set_id       := NULL;
118176 l_adr_value_type_code         := NULL;
118177 l_adr_value_combination_id    := NULL;
118178 l_adr_value_segment_code      := NULL;
118179 
118180 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
118181 l_bflow_class_code           := '';    -- 4219869 Business Flow
118182 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
118183 l_budgetary_control_flag     := 'N';
118184 
118185 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
118186 l_bflow_applied_to_amt       := NULL; -- 5132302
118187 l_entered_amt_idx            := NULL;          -- 4262811
118188 l_accted_amt_idx             := NULL;          -- 4262811
118189 l_acc_rev_flag               := NULL;          -- 4262811
118190 l_accrual_line_num           := NULL;          -- 4262811
118191 l_tmp_amt                    := NULL;          -- 4262811
118192 --
118193  
118194 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
118195     l_balance_type_code <> 'B' THEN
118196 IF NVL(p_source_21,'
118197 ') =  'NONREC_TAX' AND 
118198 NVL(p_source_84,'
118199 ') =  'Y' AND 
118200 NVL(p_source_135,'
118201 ') <>  'Y'
118202  THEN 
118203 
118204    --
118205    XLA_AE_LINES_PKG.SetNewLine;
118206 
118207    p_balance_type_code          := l_balance_type_code;
118208    -- set the flag so later we will know whether the gain loss line needs to be created
118209    
118210    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
118211      p_actual_flag :='A';
118212    END IF;
118213 
118214    --
118215    -- bulk performance
118216    --
118217    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
118218                                       p_header_num   => 0); -- 4262811
118219    --
118220    -- set accounting line options
118221    --
118222    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
118223            p_natural_side_code          => 'D'
118224          , p_gain_or_loss_flag          => 'N'
118225          , p_gl_transfer_mode_code      => 'S'
118226          , p_acct_entry_type_code       => 'A'
118227          , p_switch_side_flag           => 'Y'
118228          , p_merge_duplicate_code       => 'A'
118229          );
118230    --
118231    l_acc_rev_natural_side_code := 'C';  -- 4262811
118232    -- 
118233    --
118234    -- set accounting line type info
118235    --
118236    xla_ae_lines_pkg.SetAcctLineType
118237       (p_component_type             => l_component_type
118238       ,p_event_type_code            => l_event_type_code
118239       ,p_line_definition_owner_code => l_line_definition_owner_code
118240       ,p_line_definition_code       => l_line_definition_code
118241       ,p_accounting_line_code       => l_component_code
118242       ,p_accounting_line_type_code  => l_component_type_code
118246       ,p_event_class_code           => l_event_class_code);
118243       ,p_accounting_line_appl_id    => l_component_appl_id
118244       ,p_amb_context_code           => l_amb_context_code
118245       ,p_entity_code                => l_entity_code
118247    --
118251            p_accounting_class_code  => 'NRTAX'
118248    -- set accounting class
118249    --
118250    xla_ae_lines_pkg.SetAcctClass(
118252          , p_ae_header_id           => l_ae_header_id
118253          );
118254 
118255    --
118256    -- set rounding class
118257    --
118258    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
118259                       'NRTAX';
118260 
118261    --
118262    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
118263    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
118264    --
118265    -- bulk performance
118266    --
118267    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
118268 
118269    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
118270       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
118271 
118272    -- 4955764
118273    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
118274       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
118275 
118276    -- 4458381 Public Sector Enh
118277    
118278    --
118279    -- set accounting attributes for the line type
118280    --
118281    l_entered_amt_idx := 23;
118282    l_accted_amt_idx  := 28;
118283    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
118284    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
118285    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
118286    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
118287    l_rec_acct_attrs.array_num_value(2)  := 
118288 xla_ae_sources_pkg.GetSystemSourceNum(
118289    p_source_code           => 'XLA_EVENT_APPL_ID'
118290  , p_source_type_code      => 'Y'
118291  , p_source_application_id =>  602
118292 );
118293    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
118294    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
118295    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
118296    l_rec_acct_attrs.array_char_value(4)  := 
118297 xla_ae_sources_pkg.GetSystemSourceChar(
118298    p_source_code           => 'XLA_ENTITY_CODE'
118299  , p_source_type_code      => 'Y'
118300  , p_source_application_id =>  602
118301 );
118302    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
118303    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
118304    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
118305    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
118306    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
118307    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
118308    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
118309    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
118310    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
118311    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
118312    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
118313    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
118314    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
118315    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
118316    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
118317    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
118318    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
118319    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
118320    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
118321    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
118322    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
118323    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
118324    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
118325    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
118326    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
118327    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
118328    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
118329    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
118330    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
118331    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
118332    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
118333    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
118334    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
118335    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
118336    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
118337    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
118338    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
118339    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
118340    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
118341    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
118342    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
118343    l_rec_acct_attrs.array_date_value(25)  := p_source_62;
118344    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
118345    l_rec_acct_attrs.array_num_value(26)  := p_source_63;
118346    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
118347    l_rec_acct_attrs.array_char_value(27)  := p_source_64;
118348    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
118349    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
118353    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
118350    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
118351    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
118352    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
118354    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
118355    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
118356    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
118357    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
118358    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
118359    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
118360    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
118361    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
118362    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
118363    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
118364    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
118365    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
118366    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
118367    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
118368    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
118369    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
118370    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
118371    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
118372    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
118373    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
118374    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
118375    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
118376    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
118377    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
118378 
118379    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
118380    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
118381 
118382    ---------------------------------------------------------------------------------------------------------------
118383    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
118384    ---------------------------------------------------------------------------------------------------------------
118385    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
118386 
118387    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
118388    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
118389 
118390    IF xla_accounting_cache_pkg.GetValueChar
118391          (p_source_code         => 'LEDGER_CATEGORY_CODE'
118392          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
118393    AND l_bflow_method_code = 'PRIOR_ENTRY'
118394 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
118395    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
118396          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
118397        )
118398    THEN
118399          xla_ae_lines_pkg.BflowUpgEntry
118400            (p_business_method_code    => l_bflow_method_code
118401            ,p_business_class_code     => l_bflow_class_code
118402            ,p_balance_type            => l_balance_type_code);
118403    ELSE
118404       NULL;
118405 -- No business flow processing for business flow method of NONE.
118406    END IF;
118407 
118408    --
118409    -- call analytical criteria
118410    --
118411    
118412    --
118413    -- call description
118414    --
118415    
118416 xla_ae_lines_pkg.SetLineDescription(
118417    p_ae_header_id => l_ae_header_id
118418   ,p_description  => Description_2 (
118419      p_application_id         => p_application_id
118420    , p_ae_header_id           => l_ae_header_id 
118421 , p_source_1 => p_source_1
118422    )
118423 );
118424 
118425 
118426    --
118427    -- call ADRs
118428    -- Bug 4922099
118429    --
118430    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
118431         (NVL(l_actual_upg_option, 'N') = 'O') OR
118432         (NVL(l_enc_upg_option, 'N') = 'O')
118433       )
118434    THEN
118435    NULL;
118436    --
118437    --
118438    
118439   l_ccid := AcctDerRule_32(
118440            p_application_id           => p_application_id
118441          , p_ae_header_id             => l_ae_header_id 
118442 , p_source_18 => p_source_18
118443          , x_transaction_coa_id       => l_adr_transaction_coa_id
118444          , x_accounting_coa_id        => l_adr_accounting_coa_id
118445          , x_value_type_code          => l_adr_value_type_code
118446          , p_side                     => 'NA'
118447    );
118448 
118449    xla_ae_lines_pkg.set_ccid(
118450     p_code_combination_id          => l_ccid
118451   , p_value_type_code              => l_adr_value_type_code
118452   , p_transaction_coa_id           => l_adr_transaction_coa_id
118453   , p_accounting_coa_id            => l_adr_accounting_coa_id
118454   , p_adr_code                     => 'AP_INVOICE_DIST'
118455   , p_adr_type_code                => 'S'
118456   , p_component_type               => l_component_type
118457   , p_component_code               => l_component_code
118458   , p_component_type_code          => l_component_type_code
118459   , p_component_appl_id            => l_component_appl_id
118460   , p_amb_context_code             => l_amb_context_code
118461   , p_side                         => 'NA'
118462   );
118463 
118464 
118465    --
118466    --
118467    END IF;
118468    --
118469    -- Bug 4922099
118473         (l_bflow_method_code = 'PRIOR_ENTRY')
118470    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
118471           (NVL(l_enc_upg_option, 'N') = 'O')
118472         ) AND
118474       )
118475    THEN
118476       IF
118477       --
118478       1 = 2
118479       --
118480       THEN
118481       xla_accounting_err_pkg.build_message
118482                                     (p_appli_s_name            => 'XLA'
118483                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
118484                                     ,p_token_1                 => 'LINE_NUMBER'
118485                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
118486                                     ,p_token_2                 => 'LINE_TYPE_NAME'
118487                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
118488                                                                              l_component_type
118489                                                                             ,l_component_code
118490                                                                             ,l_component_type_code
118491                                                                             ,l_component_appl_id
118492                                                                             ,l_amb_context_code
118493                                                                             ,l_entity_code
118494                                                                             ,l_event_class_code
118495                                                                            )
118496                                     ,p_token_3                 => 'OWNER'
118497                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
118503                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
118498                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
118499                                                                           ,p_lookup_code    => l_component_type_code
118500                                                                          )
118501                                     ,p_token_4                 => 'PRODUCT_NAME'
118502                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
118504                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
118505                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
118506                                     ,p_ae_header_id            =>  NULL
118507                                        );
118508 
118509         IF (C_LEVEL_ERROR>= g_log_level) THEN
118510                  trace
118511                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
118512                       ,p_level    => C_LEVEL_ERROR
118513                       ,p_module   => l_log_module);
118514         END IF;
118515       END IF;
118516    END IF;
118517    --
118518    --
118519    ------------------------------------------------------------------------------------------------
118520    -- 4219869 Business Flow
118521    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
118522    -- Prior Entry.  Currently, the following code is always generated.
118523    ------------------------------------------------------------------------------------------------
118524    XLA_AE_LINES_PKG.ValidateCurrentLine;
118525 
118526    ------------------------------------------------------------------------------------
118527    -- 4219869 Business Flow
118528    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
118529    ------------------------------------------------------------------------------------
118530    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
118531 
118532    ----------------------------------------------------------------------------------
118533    -- 4219869 Business Flow
118534    -- Update journal entry status -- Need to generate this within IF <condition>
118535    ----------------------------------------------------------------------------------
118536    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
118537          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
118538          ,p_balance_type_code => l_balance_type_code
118539          );
118540 
118541    -------------------------------------------------------------------------------------------
118542    -- 4262811 - Generate the Accrual Reversal lines
118543    -------------------------------------------------------------------------------------------
118544    BEGIN
118545       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
118546                               (g_array_event(p_event_id).array_value_num('header_index'));
118547       IF l_acc_rev_flag IS NULL THEN
118548          l_acc_rev_flag := 'N';
118549       END IF;
118550    EXCEPTION
118551       WHEN OTHERS THEN
118552          l_acc_rev_flag := 'N';
118553    END;
118554    --
118555    IF (l_acc_rev_flag = 'Y') THEN
118556 
118557        -- 4645092  ------------------------------------------------------------------------------
118558        -- To allow MPA report to determine if it should generate report process
118559        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
118560        ------------------------------------------------------------------------------------------
118561 
118562        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
118563        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
118564    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
118565    -- call ADRs
118566    -- Bug 4922099
118567    --
118568    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
118569         (NVL(l_actual_upg_option, 'N') = 'O') OR
118570         (NVL(l_enc_upg_option, 'N') = 'O')
118571       )
118572    THEN
118573    NULL;
118574    --
118575    --
118576    
118577   l_ccid := AcctDerRule_32(
118578            p_application_id           => p_application_id
118579          , p_ae_header_id             => l_ae_header_id 
118580 , p_source_18 => p_source_18
118581          , x_transaction_coa_id       => l_adr_transaction_coa_id
118582          , x_accounting_coa_id        => l_adr_accounting_coa_id
118583          , x_value_type_code          => l_adr_value_type_code
118584          , p_side                     => 'NA'
118585    );
118586 
118587    xla_ae_lines_pkg.set_ccid(
118588     p_code_combination_id          => l_ccid
118589   , p_value_type_code              => l_adr_value_type_code
118590   , p_transaction_coa_id           => l_adr_transaction_coa_id
118591   , p_accounting_coa_id            => l_adr_accounting_coa_id
118592   , p_adr_code                     => 'AP_INVOICE_DIST'
118593   , p_adr_type_code                => 'S'
118594   , p_component_type               => l_component_type
118595   , p_component_code               => l_component_code
118596   , p_component_type_code          => l_component_type_code
118597   , p_component_appl_id            => l_component_appl_id
118598   , p_amb_context_code             => l_amb_context_code
118599   , p_side                         => 'NA'
118600   );
118601 
118602 
118603    --
118604    --
118605    END IF;
118606 
118607        --
118608        -- Update the line information that should be overwritten
118609        --
118610        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
118611                                          p_header_num   => 1);
118612        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
118613 
118617           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
118614        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
118615 
118616        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
118618        END IF;
118619 
118620       --
118621       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
118622       --
118623       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
118624           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
118625       ELSE
118626           ---------------------------------------------------------------------------------------------------
118627           -- 4262811a Switch Sign
118628           ---------------------------------------------------------------------------------------------------
118629           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
118630           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
118631                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118632           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
118633                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118634           -- 5132302
118635           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
118636                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118637 
118638       END IF;
118639 
118640       -- 4955764
118641       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
118642       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
118643 
118644 
118645       XLA_AE_LINES_PKG.ValidateCurrentLine;
118646       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
118647 
118648       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
118649                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
118650                ,p_balance_type_code => l_balance_type_code);
118651 
118652    END IF;
118653 
118654    -----------------------------------------------------------------------------------------
118655    -- 4262811 Multiperiod Accounting
118656    -----------------------------------------------------------------------------------------
118657      -- No MPA option is assigned.
118658 
118659 
118660 END IF;
118661 END IF;
118662 --
118663 
118664 --
118665 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118666    trace
118667       (p_msg      => 'END of AcctLineType_200'
118668       ,p_level    => C_LEVEL_PROCEDURE
118669       ,p_module   => l_log_module);
118670 END IF;
118671 --
118672 EXCEPTION
118673   WHEN xla_exceptions_pkg.application_exception THEN
118674       RAISE;
118675   WHEN OTHERS THEN
118676        xla_exceptions_pkg.raise_message
118677            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_200');
118678 END AcctLineType_200;
118679 --
118680 
118681 ---------------------------------------
118682 --
118683 -- PRIVATE FUNCTION
118684 --         AcctLineType_201
118685 --
118686 ---------------------------------------
118687 PROCEDURE AcctLineType_201 (
118688   p_application_id        IN NUMBER
118689  ,p_event_id              IN NUMBER
118690  ,p_calculate_acctd_flag  IN VARCHAR2
118691  ,p_calculate_g_l_flag    IN VARCHAR2
118692  ,p_actual_flag           IN OUT VARCHAR2
118693  ,p_balance_type_code     OUT VARCHAR2
118694  ,p_gain_or_loss_ref      OUT VARCHAR2
118695  
118696 --Invoice Distribution Description
118697  , p_source_1            IN VARCHAR2
118698 --Invoice Distribution Ledger Amount
118699  , p_source_9            IN NUMBER
118700 --Invoice Distribution Account
118701  , p_source_18            IN NUMBER
118702 --Invoice Distribution Type
118703  , p_source_21            IN VARCHAR2
118704  , p_source_21_meaning    IN VARCHAR2
118705 --Accounting Reversal Indicator
118706  , p_source_41            IN VARCHAR2
118707 --Distribution Link Type
118708  , p_source_43            IN VARCHAR2
118709 --Allocation to Main Distribution Identifier
118710  , p_source_45            IN NUMBER
118711 --Invoice Identifier
118712  , p_source_46            IN NUMBER
118713 --Invoice Distribution Identifier
118714  , p_source_52            IN NUMBER
118715 --Payables Encumbrance Upgrade Credit Account
118716  , p_source_53            IN NUMBER
118717 --Payables Encumbrance Upgrade Credit Amount
118718  , p_source_54            IN NUMBER
118719 --Invoice Currency Code
118720  , p_source_55            IN VARCHAR2
118721 --Payables Encumbrance Upgrade Credit Base Amount
118722  , p_source_56            IN NUMBER
118723 --Payables Encumbrance Upgrade Debit Account
118724  , p_source_57            IN NUMBER
118725 --Payables Encumbrance Upgrade Debit Amount
118726  , p_source_58            IN NUMBER
118727 --Payables Encumbrance Upgrade Debit Base Amount
118728  , p_source_59            IN NUMBER
118729 --Payables Encumbrance Upgrade Option
118730  , p_source_60            IN VARCHAR2
118731 --Invoice Distribution Amount
118732  , p_source_61            IN NUMBER
118733 --Purchase Order Exchange Rate Date
118734  , p_source_62            IN DATE
118735 --Purchase Order Exchange Rate
118736  , p_source_63            IN NUMBER
118737 --Purchase Order Exchange Rate Type
118738  , p_source_64            IN VARCHAR2
118739 --Deferred Accounting End Date
118740  , p_source_65            IN DATE
118741 --Deferred Accounting Option
118742  , p_source_66            IN VARCHAR2
118746  , p_source_68            IN VARCHAR2
118743 --Deferred Accounting Start Date
118744  , p_source_67            IN DATE
118745 --Override Accounted Amount Indicator
118747  , p_source_68_meaning    IN VARCHAR2
118748 --Invoice Supplier Identifier
118749  , p_source_69            IN NUMBER
118750 --Invoice Supplier Site Identifier
118751  , p_source_70            IN NUMBER
118752 --Third Party Type
118753  , p_source_71            IN VARCHAR2
118754 --Parent Reversal Identifier
118755  , p_source_72            IN NUMBER
118756 --Invoice Distribution Statistical Amount
118757  , p_source_73            IN NUMBER
118758 --Invoice Distribution Tax Line Identifier
118759  , p_source_74            IN NUMBER
118760 --Invoice Distribution Tax Distribution Identifier from Tax
118761  , p_source_75            IN NUMBER
118762 --Invoice Distribution Summary Tax Line Identifier
118763  , p_source_76            IN NUMBER
118764 --Payables Upgrade Credit Encumbrance Type Identifier
118765  , p_source_77            IN NUMBER
118766 --Payables Upgrade Debit Encumbrance Type Identifier
118767  , p_source_78            IN NUMBER
118768 --Business Flow Accounts Payable Application Identifier
118769  , p_source_79            IN NUMBER
118770 --Business Flow Invoice Distribution Type
118771  , p_source_80            IN VARCHAR2
118772 --Business Flow Invoice Entity Code
118773  , p_source_81            IN VARCHAR2
118774 --Business Flow Invoice Distribution Identifier
118775  , p_source_82            IN NUMBER
118776 --Business Flow Invoice Identifier
118777  , p_source_83            IN NUMBER
118778 --Accrue on Receipt Option
118779  , p_source_84            IN VARCHAR2
118780  , p_source_84_meaning    IN VARCHAR2
118781 --Self-Assessed Tax Flag
118782  , p_source_135            IN VARCHAR2
118783  , p_source_135_meaning    IN VARCHAR2
118784 )
118785 IS
118786 
118787 l_component_type              VARCHAR2(80);
118788 l_component_code              VARCHAR2(30);
118789 l_component_type_code         VARCHAR2(1);
118790 l_component_appl_id           INTEGER;
118791 l_amb_context_code            VARCHAR2(30);
118792 l_entity_code                 VARCHAR2(30);
118793 l_event_class_code            VARCHAR2(30);
118794 l_ae_header_id                NUMBER;
118795 l_event_type_code             VARCHAR2(30);
118796 l_line_definition_code        VARCHAR2(30);
118797 l_line_definition_owner_code  VARCHAR2(1);
118798 --
118799 -- adr variables
118800 l_segment                     VARCHAR2(30);
118801 l_ccid                        NUMBER;
118802 l_adr_transaction_coa_id      NUMBER;
118803 l_adr_accounting_coa_id       NUMBER;
118804 l_adr_flexfield_segment_code  VARCHAR2(30);
118805 l_adr_flex_value_set_id       NUMBER;
118806 l_adr_value_type_code         VARCHAR2(30);
118807 l_adr_value_combination_id    NUMBER;
118808 l_adr_value_segment_code      VARCHAR2(30);
118809 
118810 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
118811 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
118812 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
118813 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
118814 
118815 -- 4262811 Variables ------------------------------------------------------------------------------------------
118816 l_entered_amt_idx             NUMBER;
118817 l_accted_amt_idx              NUMBER;
118818 l_acc_rev_flag                VARCHAR2(1);
118819 l_accrual_line_num            NUMBER;
118820 l_tmp_amt                     NUMBER;
118821 l_acc_rev_natural_side_code   VARCHAR2(1);
118822 
118823 l_num_entries                 NUMBER;
118824 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
118825 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
118826 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
118827 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
118828 l_recog_line_1                NUMBER;
118829 l_recog_line_2                NUMBER;
118830 
118831 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
118832 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
118833 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
118834 
118835 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
118836 
118837 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
118838 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
118839 
118840 ---------------------------------------------------------------------------------------------------------------
118841 
118842 
118843 --
118844 -- bulk performance
118845 --
118846 l_balance_type_code           VARCHAR2(1);
118847 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
118848 l_log_module                  VARCHAR2(240);
118849 
118850 --
118851 -- Upgrade strategy
118852 --
118853 l_actual_upg_option           VARCHAR2(1);
118854 l_enc_upg_option           VARCHAR2(1);
118855 
118856 --
118857 BEGIN
118858 --
118859 IF g_log_enabled THEN
118860       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_201';
118861 END IF;
118862 --
118863 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118864 
118865       trace
118866          (p_msg      => 'BEGIN of AcctLineType_201'
118867          ,p_level    => C_LEVEL_PROCEDURE
118868          ,p_module   => l_log_module);
118869 
118870 END IF;
118871 --
118872 l_component_type             := 'AMB_JLT';
118873 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_INV';
118874 l_component_type_code        := 'S';
118875 l_component_appl_id          :=  200;
118876 l_amb_context_code           := 'DEFAULT';
118877 l_entity_code                := 'AP_INVOICES';
118881 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
118878 l_event_class_code           := 'INVOICES';
118879 l_event_type_code            := 'INVOICES_ALL';
118880 l_line_definition_owner_code := 'S';
118882 --
118883 l_balance_type_code          := 'A';
118884 l_segment                     := NULL;
118885 l_ccid                        := NULL;
118886 l_adr_transaction_coa_id      := NULL;
118887 l_adr_accounting_coa_id       := NULL;
118888 l_adr_flexfield_segment_code  := NULL;
118889 l_adr_flex_value_set_id       := NULL;
118890 l_adr_value_type_code         := NULL;
118891 l_adr_value_combination_id    := NULL;
118892 l_adr_value_segment_code      := NULL;
118893 
118894 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
118895 l_bflow_class_code           := '';    -- 4219869 Business Flow
118896 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
118897 l_budgetary_control_flag     := 'N';
118898 
118899 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
118900 l_bflow_applied_to_amt       := NULL; -- 5132302
118901 l_entered_amt_idx            := NULL;          -- 4262811
118902 l_accted_amt_idx             := NULL;          -- 4262811
118903 l_acc_rev_flag               := NULL;          -- 4262811
118904 l_accrual_line_num           := NULL;          -- 4262811
118905 l_tmp_amt                    := NULL;          -- 4262811
118906 --
118907  
118908 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
118909     l_balance_type_code <> 'B' THEN
118910 IF NVL(p_source_21,'
118911 ') =  'NONREC_TAX' AND 
118912 NVL(p_source_84,'
118913 ') =  'Y' AND 
118914 NVL(p_source_135,'
118915 ') <>  'Y'
118916  THEN 
118917 
118918    --
118919    XLA_AE_LINES_PKG.SetNewLine;
118920 
118921    p_balance_type_code          := l_balance_type_code;
118922    -- set the flag so later we will know whether the gain loss line needs to be created
118923    
118924    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
118925      p_actual_flag :='A';
118926    END IF;
118927 
118928    --
118929    -- bulk performance
118930    --
118931    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
118932                                       p_header_num   => 0); -- 4262811
118933    --
118934    -- set accounting line options
118935    --
118936    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
118937            p_natural_side_code          => 'D'
118938          , p_gain_or_loss_flag          => 'N'
118939          , p_gl_transfer_mode_code      => 'S'
118940          , p_acct_entry_type_code       => 'A'
118941          , p_switch_side_flag           => 'Y'
118942          , p_merge_duplicate_code       => 'A'
118943          );
118944    --
118945    l_acc_rev_natural_side_code := 'C';  -- 4262811
118946    -- 
118947    --
118948    -- set accounting line type info
118949    --
118950    xla_ae_lines_pkg.SetAcctLineType
118951       (p_component_type             => l_component_type
118952       ,p_event_type_code            => l_event_type_code
118953       ,p_line_definition_owner_code => l_line_definition_owner_code
118954       ,p_line_definition_code       => l_line_definition_code
118955       ,p_accounting_line_code       => l_component_code
118956       ,p_accounting_line_type_code  => l_component_type_code
118957       ,p_accounting_line_appl_id    => l_component_appl_id
118958       ,p_amb_context_code           => l_amb_context_code
118959       ,p_entity_code                => l_entity_code
118960       ,p_event_class_code           => l_event_class_code);
118961    --
118962    -- set accounting class
118963    --
118964    xla_ae_lines_pkg.SetAcctClass(
118965            p_accounting_class_code  => 'NRTAX'
118966          , p_ae_header_id           => l_ae_header_id
118967          );
118968 
118969    --
118970    -- set rounding class
118971    --
118972    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
118973                       'NRTAX';
118974 
118975    --
118976    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
118977    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
118978    --
118979    -- bulk performance
118980    --
118981    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
118982 
118983    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
118984       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
118985 
118986    -- 4955764
118987    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
118988       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
118989 
118990    -- 4458381 Public Sector Enh
118991    
118992    --
118993    -- set accounting attributes for the line type
118994    --
118995    l_entered_amt_idx := 24;
118996    l_accted_amt_idx  := 29;
118997    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
118998    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
118999    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
119000    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
119001    l_rec_acct_attrs.array_num_value(2)  := 
119002 xla_ae_sources_pkg.GetSystemSourceNum(
119003    p_source_code           => 'XLA_EVENT_APPL_ID'
119004  , p_source_type_code      => 'Y'
119005  , p_source_application_id =>  602
119006 );
119007    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
119008    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
119009    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
119013  , p_source_type_code      => 'Y'
119010    l_rec_acct_attrs.array_char_value(4)  := 
119011 xla_ae_sources_pkg.GetSystemSourceChar(
119012    p_source_code           => 'XLA_ENTITY_CODE'
119014  , p_source_application_id =>  602
119015 );
119016    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
119017    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
119018    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
119019    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
119020    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
119021    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
119022    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
119023    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
119024    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
119025    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
119026    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
119027    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
119028    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
119029    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
119030    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
119031    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
119032    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
119033    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
119034    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
119035    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
119036    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
119037    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
119038    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
119039    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
119040    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
119041    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
119042    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
119043    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
119044    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
119045    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
119046    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
119047    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
119048    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
119049    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
119050    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
119051    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
119052    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
119053    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
119054    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
119055    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
119056    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
119057    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
119058    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
119059    l_rec_acct_attrs.array_date_value(26)  := p_source_62;
119060    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
119061    l_rec_acct_attrs.array_num_value(27)  := p_source_63;
119062    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
119063    l_rec_acct_attrs.array_char_value(28)  := p_source_64;
119064    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
119065    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
119066    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
119067    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
119068    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
119069    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
119070    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
119071    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
119072    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
119073    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
119074    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
119075    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
119076    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
119077    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
119078    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
119079    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
119080    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
119081    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
119082    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
119083    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
119084    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
119085    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
119086    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
119087    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
119088    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
119089    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
119090    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
119091    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
119092    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
119093    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
119094    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
119095    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
119096 
119097    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
119098    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
119099 
119103    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
119100    ---------------------------------------------------------------------------------------------------------------
119101    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
119102    ---------------------------------------------------------------------------------------------------------------
119104 
119105    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
119106    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
119107 
119108    IF xla_accounting_cache_pkg.GetValueChar
119109          (p_source_code         => 'LEDGER_CATEGORY_CODE'
119110          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
119111    AND l_bflow_method_code = 'PRIOR_ENTRY'
119112 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
119113    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
119114          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
119115        )
119116    THEN
119117          xla_ae_lines_pkg.BflowUpgEntry
119118            (p_business_method_code    => l_bflow_method_code
119119            ,p_business_class_code     => l_bflow_class_code
119120            ,p_balance_type            => l_balance_type_code);
119121    ELSE
119122       NULL;
119123 -- No business flow processing for business flow method of NONE.
119124    END IF;
119125 
119126    --
119127    -- call analytical criteria
119128    --
119129    
119130    --
119131    -- call description
119132    --
119133    
119134 xla_ae_lines_pkg.SetLineDescription(
119135    p_ae_header_id => l_ae_header_id
119136   ,p_description  => Description_2 (
119137      p_application_id         => p_application_id
119138    , p_ae_header_id           => l_ae_header_id 
119139 , p_source_1 => p_source_1
119140    )
119141 );
119142 
119143 
119144    --
119145    -- call ADRs
119146    -- Bug 4922099
119147    --
119148    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
119149         (NVL(l_actual_upg_option, 'N') = 'O') OR
119150         (NVL(l_enc_upg_option, 'N') = 'O')
119151       )
119152    THEN
119153    NULL;
119154    --
119155    --
119156    
119157   l_ccid := AcctDerRule_32(
119158            p_application_id           => p_application_id
119159          , p_ae_header_id             => l_ae_header_id 
119160 , p_source_18 => p_source_18
119161          , x_transaction_coa_id       => l_adr_transaction_coa_id
119162          , x_accounting_coa_id        => l_adr_accounting_coa_id
119163          , x_value_type_code          => l_adr_value_type_code
119164          , p_side                     => 'NA'
119165    );
119166 
119167    xla_ae_lines_pkg.set_ccid(
119168     p_code_combination_id          => l_ccid
119169   , p_value_type_code              => l_adr_value_type_code
119170   , p_transaction_coa_id           => l_adr_transaction_coa_id
119171   , p_accounting_coa_id            => l_adr_accounting_coa_id
119172   , p_adr_code                     => 'AP_INVOICE_DIST'
119173   , p_adr_type_code                => 'S'
119174   , p_component_type               => l_component_type
119175   , p_component_code               => l_component_code
119176   , p_component_type_code          => l_component_type_code
119177   , p_component_appl_id            => l_component_appl_id
119178   , p_amb_context_code             => l_amb_context_code
119179   , p_side                         => 'NA'
119180   );
119181 
119182 
119183    --
119184    --
119185    END IF;
119186    --
119187    -- Bug 4922099
119188    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
119189           (NVL(l_enc_upg_option, 'N') = 'O')
119190         ) AND
119191         (l_bflow_method_code = 'PRIOR_ENTRY')
119192       )
119193    THEN
119194       IF
119195       --
119196       1 = 2
119197       --
119198       THEN
119199       xla_accounting_err_pkg.build_message
119200                                     (p_appli_s_name            => 'XLA'
119201                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
119202                                     ,p_token_1                 => 'LINE_NUMBER'
119203                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
119204                                     ,p_token_2                 => 'LINE_TYPE_NAME'
119205                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
119206                                                                              l_component_type
119212                                                                             ,l_event_class_code
119207                                                                             ,l_component_code
119208                                                                             ,l_component_type_code
119209                                                                             ,l_component_appl_id
119210                                                                             ,l_amb_context_code
119211                                                                             ,l_entity_code
119213                                                                            )
119214                                     ,p_token_3                 => 'OWNER'
119215                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
119216                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
119217                                                                           ,p_lookup_code    => l_component_type_code
119218                                                                          )
119219                                     ,p_token_4                 => 'PRODUCT_NAME'
119220                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
119221                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
119222                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
119223                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
119224                                     ,p_ae_header_id            =>  NULL
119225                                        );
119226 
119227         IF (C_LEVEL_ERROR>= g_log_level) THEN
119228                  trace
119229                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
119230                       ,p_level    => C_LEVEL_ERROR
119231                       ,p_module   => l_log_module);
119232         END IF;
119233       END IF;
119234    END IF;
119235    --
119236    --
119237    ------------------------------------------------------------------------------------------------
119238    -- 4219869 Business Flow
119239    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
119240    -- Prior Entry.  Currently, the following code is always generated.
119241    ------------------------------------------------------------------------------------------------
119242    XLA_AE_LINES_PKG.ValidateCurrentLine;
119243 
119244    ------------------------------------------------------------------------------------
119245    -- 4219869 Business Flow
119246    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
119247    ------------------------------------------------------------------------------------
119248    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
119249 
119250    ----------------------------------------------------------------------------------
119251    -- 4219869 Business Flow
119252    -- Update journal entry status -- Need to generate this within IF <condition>
119253    ----------------------------------------------------------------------------------
119254    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
119255          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
119256          ,p_balance_type_code => l_balance_type_code
119257          );
119258 
119259    -------------------------------------------------------------------------------------------
119260    -- 4262811 - Generate the Accrual Reversal lines
119261    -------------------------------------------------------------------------------------------
119262    BEGIN
119263       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
119264                               (g_array_event(p_event_id).array_value_num('header_index'));
119265       IF l_acc_rev_flag IS NULL THEN
119266          l_acc_rev_flag := 'N';
119267       END IF;
119268    EXCEPTION
119269       WHEN OTHERS THEN
119270          l_acc_rev_flag := 'N';
119271    END;
119272    --
119273    IF (l_acc_rev_flag = 'Y') THEN
119274 
119275        -- 4645092  ------------------------------------------------------------------------------
119276        -- To allow MPA report to determine if it should generate report process
119277        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
119278        ------------------------------------------------------------------------------------------
119279 
119280        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
119281        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
119282    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
119283    -- call ADRs
119284    -- Bug 4922099
119285    --
119286    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
119287         (NVL(l_actual_upg_option, 'N') = 'O') OR
119288         (NVL(l_enc_upg_option, 'N') = 'O')
119289       )
119290    THEN
119291    NULL;
119292    --
119293    --
119294    
119295   l_ccid := AcctDerRule_32(
119296            p_application_id           => p_application_id
119297          , p_ae_header_id             => l_ae_header_id 
119298 , p_source_18 => p_source_18
119299          , x_transaction_coa_id       => l_adr_transaction_coa_id
119300          , x_accounting_coa_id        => l_adr_accounting_coa_id
119301          , x_value_type_code          => l_adr_value_type_code
119302          , p_side                     => 'NA'
119303    );
119304 
119305    xla_ae_lines_pkg.set_ccid(
119306     p_code_combination_id          => l_ccid
119307   , p_value_type_code              => l_adr_value_type_code
119308   , p_transaction_coa_id           => l_adr_transaction_coa_id
119309   , p_accounting_coa_id            => l_adr_accounting_coa_id
119310   , p_adr_code                     => 'AP_INVOICE_DIST'
119311   , p_adr_type_code                => 'S'
119312   , p_component_type               => l_component_type
119313   , p_component_code               => l_component_code
119317   , p_side                         => 'NA'
119314   , p_component_type_code          => l_component_type_code
119315   , p_component_appl_id            => l_component_appl_id
119316   , p_amb_context_code             => l_amb_context_code
119318   );
119319 
119320 
119321    --
119322    --
119323    END IF;
119324 
119325        --
119326        -- Update the line information that should be overwritten
119327        --
119328        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
119329                                          p_header_num   => 1);
119330        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
119331 
119335           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
119332        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
119333 
119334        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
119336        END IF;
119337 
119338       --
119339       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
119340       --
119341       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
119342           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
119343       ELSE
119344           ---------------------------------------------------------------------------------------------------
119345           -- 4262811a Switch Sign
119346           ---------------------------------------------------------------------------------------------------
119347           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
119348           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
119349                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
119350           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
119351                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
119352           -- 5132302
119353           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
119354                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
119355 
119356       END IF;
119357 
119358       -- 4955764
119359       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
119360       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
119361 
119362 
119363       XLA_AE_LINES_PKG.ValidateCurrentLine;
119364       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
119365 
119366       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
119367                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
119368                ,p_balance_type_code => l_balance_type_code);
119369 
119373    -- 4262811 Multiperiod Accounting
119370    END IF;
119371 
119372    -----------------------------------------------------------------------------------------
119374    -----------------------------------------------------------------------------------------
119375      -- No MPA option is assigned.
119376 
119377 
119378 END IF;
119379 END IF;
119380 --
119381 
119382 --
119383 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119384    trace
119385       (p_msg      => 'END of AcctLineType_201'
119386       ,p_level    => C_LEVEL_PROCEDURE
119387       ,p_module   => l_log_module);
119388 END IF;
119389 --
119390 EXCEPTION
119391   WHEN xla_exceptions_pkg.application_exception THEN
119392       RAISE;
119393   WHEN OTHERS THEN
119394        xla_exceptions_pkg.raise_message
119395            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_201');
119396 END AcctLineType_201;
119397 --
119398 
119399 ---------------------------------------
119400 --
119401 -- PRIVATE FUNCTION
119402 --         AcctLineType_202
119403 --
119404 ---------------------------------------
119405 PROCEDURE AcctLineType_202 (
119406   p_application_id        IN NUMBER
119407  ,p_event_id              IN NUMBER
119408  ,p_calculate_acctd_flag  IN VARCHAR2
119409  ,p_calculate_g_l_flag    IN VARCHAR2
119410  ,p_actual_flag           IN OUT VARCHAR2
119411  ,p_balance_type_code     OUT VARCHAR2
119412  ,p_gain_or_loss_ref      OUT VARCHAR2
119413  
119414 --Invoice Distribution Description
119415  , p_source_1            IN VARCHAR2
119416 --Invoice Distribution Ledger Amount
119417  , p_source_9            IN NUMBER
119418 --Invoice Distribution Account
119419  , p_source_18            IN NUMBER
119420 --Invoice Distribution Type
119421  , p_source_21            IN VARCHAR2
119422  , p_source_21_meaning    IN VARCHAR2
119423 --Accounting Reversal Indicator
119424  , p_source_41            IN VARCHAR2
119425 --Distribution Link Type
119426  , p_source_43            IN VARCHAR2
119427 --Allocation to Main Distribution Identifier
119428  , p_source_45            IN NUMBER
119429 --Invoice Identifier
119430  , p_source_46            IN NUMBER
119431 --Invoice Distribution Identifier
119432  , p_source_52            IN NUMBER
119433 --Payables Encumbrance Upgrade Credit Account
119434  , p_source_53            IN NUMBER
119435 --Payables Encumbrance Upgrade Credit Amount
119436  , p_source_54            IN NUMBER
119437 --Invoice Currency Code
119438  , p_source_55            IN VARCHAR2
119439 --Payables Encumbrance Upgrade Credit Base Amount
119440  , p_source_56            IN NUMBER
119441 --Payables Encumbrance Upgrade Debit Account
119442  , p_source_57            IN NUMBER
119443 --Payables Encumbrance Upgrade Debit Amount
119444  , p_source_58            IN NUMBER
119445 --Payables Encumbrance Upgrade Debit Base Amount
119446  , p_source_59            IN NUMBER
119447 --Payables Encumbrance Upgrade Option
119448  , p_source_60            IN VARCHAR2
119449 --Invoice Distribution Amount
119450  , p_source_61            IN NUMBER
119451 --Deferred Accounting End Date
119452  , p_source_65            IN DATE
119453 --Deferred Accounting Option
119454  , p_source_66            IN VARCHAR2
119455 --Deferred Accounting Start Date
119456  , p_source_67            IN DATE
119457 --Override Accounted Amount Indicator
119458  , p_source_68            IN VARCHAR2
119459  , p_source_68_meaning    IN VARCHAR2
119460 --Invoice Supplier Identifier
119461  , p_source_69            IN NUMBER
119462 --Invoice Supplier Site Identifier
119463  , p_source_70            IN NUMBER
119464 --Third Party Type
119465  , p_source_71            IN VARCHAR2
119466 --Parent Reversal Identifier
119467  , p_source_72            IN NUMBER
119468 --Invoice Distribution Statistical Amount
119469  , p_source_73            IN NUMBER
119470 --Invoice Distribution Tax Line Identifier
119471  , p_source_74            IN NUMBER
119472 --Invoice Distribution Tax Distribution Identifier from Tax
119473  , p_source_75            IN NUMBER
119474 --Invoice Distribution Summary Tax Line Identifier
119475  , p_source_76            IN NUMBER
119476 --Payables Upgrade Credit Encumbrance Type Identifier
119477  , p_source_77            IN NUMBER
119478 --Payables Upgrade Debit Encumbrance Type Identifier
119479  , p_source_78            IN NUMBER
119480 --Business Flow Accounts Payable Application Identifier
119481  , p_source_79            IN NUMBER
119482 --Business Flow Invoice Distribution Type
119483  , p_source_80            IN VARCHAR2
119484 --Business Flow Invoice Entity Code
119485  , p_source_81            IN VARCHAR2
119486 --Business Flow Invoice Distribution Identifier
119487  , p_source_82            IN NUMBER
119488 --Business Flow Invoice Identifier
119489  , p_source_83            IN NUMBER
119490 --Accrue on Receipt Option
119491  , p_source_84            IN VARCHAR2
119492  , p_source_84_meaning    IN VARCHAR2
119493 --Self-Assessed Tax Flag
119494  , p_source_135            IN VARCHAR2
119495  , p_source_135_meaning    IN VARCHAR2
119496 --Invoice Exchange Date
119497  , p_source_136            IN DATE
119498 --Invoice Exchange Rate
119499  , p_source_137            IN NUMBER
119500 --Invoice Exchange Rate Type
119501  , p_source_138            IN VARCHAR2
119502 )
119503 IS
119504 
119505 l_component_type              VARCHAR2(80);
119506 l_component_code              VARCHAR2(30);
119507 l_component_type_code         VARCHAR2(1);
119508 l_component_appl_id           INTEGER;
119509 l_amb_context_code            VARCHAR2(30);
119510 l_entity_code                 VARCHAR2(30);
119511 l_event_class_code            VARCHAR2(30);
119512 l_ae_header_id                NUMBER;
119513 l_event_type_code             VARCHAR2(30);
119517 -- adr variables
119514 l_line_definition_code        VARCHAR2(30);
119515 l_line_definition_owner_code  VARCHAR2(1);
119516 --
119518 l_segment                     VARCHAR2(30);
119519 l_ccid                        NUMBER;
119520 l_adr_transaction_coa_id      NUMBER;
119521 l_adr_accounting_coa_id       NUMBER;
119522 l_adr_flexfield_segment_code  VARCHAR2(30);
119523 l_adr_flex_value_set_id       NUMBER;
119524 l_adr_value_type_code         VARCHAR2(30);
119525 l_adr_value_combination_id    NUMBER;
119526 l_adr_value_segment_code      VARCHAR2(30);
119527 
119528 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
119529 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
119530 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
119531 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
119532 
119533 -- 4262811 Variables ------------------------------------------------------------------------------------------
119534 l_entered_amt_idx             NUMBER;
119535 l_accted_amt_idx              NUMBER;
119536 l_acc_rev_flag                VARCHAR2(1);
119537 l_accrual_line_num            NUMBER;
119538 l_tmp_amt                     NUMBER;
119539 l_acc_rev_natural_side_code   VARCHAR2(1);
119540 
119541 l_num_entries                 NUMBER;
119542 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
119543 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
119544 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
119545 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
119546 l_recog_line_1                NUMBER;
119547 l_recog_line_2                NUMBER;
119548 
119549 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
119550 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
119551 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
119552 
119553 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
119554 
119555 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
119556 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
119557 
119558 ---------------------------------------------------------------------------------------------------------------
119559 
119560 
119561 --
119562 -- bulk performance
119563 --
119564 l_balance_type_code           VARCHAR2(1);
119565 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
119566 l_log_module                  VARCHAR2(240);
119567 
119568 --
119569 -- Upgrade strategy
119570 --
119571 l_actual_upg_option           VARCHAR2(1);
119572 l_enc_upg_option           VARCHAR2(1);
119573 
119574 --
119575 BEGIN
119576 --
119577 IF g_log_enabled THEN
119578       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_202';
119579 END IF;
119580 --
119581 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119582 
119583       trace
119584          (p_msg      => 'BEGIN of AcctLineType_202'
119585          ,p_level    => C_LEVEL_PROCEDURE
119586          ,p_module   => l_log_module);
119587 
119588 END IF;
119589 --
119590 l_component_type             := 'AMB_JLT';
119591 l_component_code             := 'AP_NON_RECOV_TAX_CM';
119592 l_component_type_code        := 'S';
119593 l_component_appl_id          :=  200;
119594 l_amb_context_code           := 'DEFAULT';
119595 l_entity_code                := 'AP_INVOICES';
119596 l_event_class_code           := 'CREDIT MEMOS';
119597 l_event_type_code            := 'CREDIT MEMOS_ALL';
119598 l_line_definition_owner_code := 'S';
119599 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
119600 --
119601 l_balance_type_code          := 'A';
119602 l_segment                     := NULL;
119603 l_ccid                        := NULL;
119604 l_adr_transaction_coa_id      := NULL;
119605 l_adr_accounting_coa_id       := NULL;
119606 l_adr_flexfield_segment_code  := NULL;
119607 l_adr_flex_value_set_id       := NULL;
119608 l_adr_value_type_code         := NULL;
119609 l_adr_value_combination_id    := NULL;
119610 l_adr_value_segment_code      := NULL;
119611 
119612 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
119613 l_bflow_class_code           := '';    -- 4219869 Business Flow
119614 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
119615 l_budgetary_control_flag     := 'N';
119616 
119617 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
119618 l_bflow_applied_to_amt       := NULL; -- 5132302
119619 l_entered_amt_idx            := NULL;          -- 4262811
119620 l_accted_amt_idx             := NULL;          -- 4262811
119621 l_acc_rev_flag               := NULL;          -- 4262811
119622 l_accrual_line_num           := NULL;          -- 4262811
119623 l_tmp_amt                    := NULL;          -- 4262811
119624 --
119625  
119626 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
119627     l_balance_type_code <> 'B' THEN
119628 IF (NVL(p_source_21,'
119629 ') =  'NONREC_TAX' OR 
119630 NVL(p_source_21,'
119631 ') =  'TERV' OR 
119632 NVL(p_source_21,'
119633 ') =  'TIPV' OR 
119634 NVL(p_source_21,'
119635 ') =  'TRV') AND 
119636 NVL(p_source_84,'
119637 ') <>  'Y' AND 
119638 NVL(p_source_135,'
119639 ') <>  'Y'
119640  THEN 
119641 
119642    --
119643    XLA_AE_LINES_PKG.SetNewLine;
119644 
119645    p_balance_type_code          := l_balance_type_code;
119646    -- set the flag so later we will know whether the gain loss line needs to be created
119647    
119648    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
119649      p_actual_flag :='A';
119650    END IF;
119651 
119652    --
119656                                       p_header_num   => 0); -- 4262811
119653    -- bulk performance
119654    --
119655    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
119657    --
119658    -- set accounting line options
119659    --
119660    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
119661            p_natural_side_code          => 'D'
119662          , p_gain_or_loss_flag          => 'N'
119663          , p_gl_transfer_mode_code      => 'S'
119664          , p_acct_entry_type_code       => 'A'
119665          , p_switch_side_flag           => 'Y'
119666          , p_merge_duplicate_code       => 'A'
119667          );
119668    --
119669    l_acc_rev_natural_side_code := 'C';  -- 4262811
119670    -- 
119671    --
119672    -- set accounting line type info
119673    --
119674    xla_ae_lines_pkg.SetAcctLineType
119675       (p_component_type             => l_component_type
119676       ,p_event_type_code            => l_event_type_code
119677       ,p_line_definition_owner_code => l_line_definition_owner_code
119678       ,p_line_definition_code       => l_line_definition_code
119679       ,p_accounting_line_code       => l_component_code
119680       ,p_accounting_line_type_code  => l_component_type_code
119681       ,p_accounting_line_appl_id    => l_component_appl_id
119682       ,p_amb_context_code           => l_amb_context_code
119683       ,p_entity_code                => l_entity_code
119684       ,p_event_class_code           => l_event_class_code);
119685    --
119686    -- set accounting class
119687    --
119688    xla_ae_lines_pkg.SetAcctClass(
119689            p_accounting_class_code  => 'NRTAX'
119690          , p_ae_header_id           => l_ae_header_id
119691          );
119692 
119693    --
119694    -- set rounding class
119695    --
119696    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
119697                       'NRTAX';
119698 
119699    --
119700    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
119701    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
119702    --
119703    -- bulk performance
119704    --
119705    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
119706 
119707    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
119708       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
119709 
119710    -- 4955764
119711    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
119712       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
119713 
119714    -- 4458381 Public Sector Enh
119715    
119716    --
119717    -- set accounting attributes for the line type
119718    --
119719    l_entered_amt_idx := 23;
119720    l_accted_amt_idx  := 28;
119721    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
119722    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
119723    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
119724    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
119725    l_rec_acct_attrs.array_num_value(2)  := 
119726 xla_ae_sources_pkg.GetSystemSourceNum(
119727    p_source_code           => 'XLA_EVENT_APPL_ID'
119728  , p_source_type_code      => 'Y'
119729  , p_source_application_id =>  602
119730 );
119731    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
119732    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
119733    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
119734    l_rec_acct_attrs.array_char_value(4)  := 
119735 xla_ae_sources_pkg.GetSystemSourceChar(
119736    p_source_code           => 'XLA_ENTITY_CODE'
119737  , p_source_type_code      => 'Y'
119738  , p_source_application_id =>  602
119739 );
119740    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
119741    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
119742    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
119743    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
119744    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
119745    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
119746    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
119747    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
119748    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
119749    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
119750    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
119751    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
119752    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
119753    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
119754    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
119755    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
119756    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
119757    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
119758    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
119759    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
119760    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
119761    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
119762    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
119763    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
119764    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
119765    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
119766    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
119767    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
119771    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
119768    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
119769    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
119770    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
119772    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
119773    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
119774    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
119775    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
119776    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
119780    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
119777    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
119778    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
119779    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
119781    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
119782    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
119783    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
119784    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
119785    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
119786    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
119787    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
119788    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
119789    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
119790    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
119791    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
119792    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
119793    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
119794    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
119795    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
119796    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
119797    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
119798    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
119799    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
119800    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
119801    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
119802    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
119803    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
119804    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
119805    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
119806    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
119807    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
119808    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
119809    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
119810    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
119811    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
119812    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
119813    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
119814    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
119815    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
119816    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
119817    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
119818 
119819    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
119820    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
119821 
119822    ---------------------------------------------------------------------------------------------------------------
119823    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
119824    ---------------------------------------------------------------------------------------------------------------
119825    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
119826 
119827    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
119828    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
119829 
119830    IF xla_accounting_cache_pkg.GetValueChar
119831          (p_source_code         => 'LEDGER_CATEGORY_CODE'
119832          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
119833    AND l_bflow_method_code = 'PRIOR_ENTRY'
119834 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
119835    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
119836          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
119837        )
119838    THEN
119839          xla_ae_lines_pkg.BflowUpgEntry
119840            (p_business_method_code    => l_bflow_method_code
119841            ,p_business_class_code     => l_bflow_class_code
119842            ,p_balance_type            => l_balance_type_code);
119843    ELSE
119847 
119844       NULL;
119845 -- No business flow processing for business flow method of NONE.
119846    END IF;
119848    --
119849    -- call analytical criteria
119850    --
119851    
119852    --
119853    -- call description
119854    --
119855    
119856 xla_ae_lines_pkg.SetLineDescription(
119857    p_ae_header_id => l_ae_header_id
119858   ,p_description  => Description_2 (
119859      p_application_id         => p_application_id
119860    , p_ae_header_id           => l_ae_header_id 
119861 , p_source_1 => p_source_1
119862    )
119863 );
119864 
119865 
119866    --
119867    -- call ADRs
119868    -- Bug 4922099
119869    --
119870    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
119871         (NVL(l_actual_upg_option, 'N') = 'O') OR
119872         (NVL(l_enc_upg_option, 'N') = 'O')
119873       )
119874    THEN
119875    NULL;
119876    --
119877    --
119878    
119879   l_ccid := AcctDerRule_32(
119880            p_application_id           => p_application_id
119881          , p_ae_header_id             => l_ae_header_id 
119882 , p_source_18 => p_source_18
119883          , x_transaction_coa_id       => l_adr_transaction_coa_id
119884          , x_accounting_coa_id        => l_adr_accounting_coa_id
119885          , x_value_type_code          => l_adr_value_type_code
119886          , p_side                     => 'NA'
119887    );
119888 
119889    xla_ae_lines_pkg.set_ccid(
119890     p_code_combination_id          => l_ccid
119891   , p_value_type_code              => l_adr_value_type_code
119892   , p_transaction_coa_id           => l_adr_transaction_coa_id
119893   , p_accounting_coa_id            => l_adr_accounting_coa_id
119894   , p_adr_code                     => 'AP_INVOICE_DIST'
119895   , p_adr_type_code                => 'S'
119896   , p_component_type               => l_component_type
119897   , p_component_code               => l_component_code
119898   , p_component_type_code          => l_component_type_code
119899   , p_component_appl_id            => l_component_appl_id
119900   , p_amb_context_code             => l_amb_context_code
119901   , p_side                         => 'NA'
119902   );
119903 
119904 
119905    --
119906    --
119907    END IF;
119908    --
119909    -- Bug 4922099
119910    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
119911           (NVL(l_enc_upg_option, 'N') = 'O')
119912         ) AND
119913         (l_bflow_method_code = 'PRIOR_ENTRY')
119914       )
119915    THEN
119916       IF
119917       --
119918       1 = 2
119919       --
119920       THEN
119921       xla_accounting_err_pkg.build_message
119922                                     (p_appli_s_name            => 'XLA'
119923                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
119924                                     ,p_token_1                 => 'LINE_NUMBER'
119925                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
119926                                     ,p_token_2                 => 'LINE_TYPE_NAME'
119927                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
119928                                                                              l_component_type
119929                                                                             ,l_component_code
119930                                                                             ,l_component_type_code
119931                                                                             ,l_component_appl_id
119932                                                                             ,l_amb_context_code
119933                                                                             ,l_entity_code
119934                                                                             ,l_event_class_code
119935                                                                            )
119936                                     ,p_token_3                 => 'OWNER'
119937                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
119938                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
119939                                                                           ,p_lookup_code    => l_component_type_code
119940                                                                          )
119941                                     ,p_token_4                 => 'PRODUCT_NAME'
119942                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
119943                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
119944                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
119945                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
119946                                     ,p_ae_header_id            =>  NULL
119947                                        );
119948 
119949         IF (C_LEVEL_ERROR>= g_log_level) THEN
119950                  trace
119951                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
119952                       ,p_level    => C_LEVEL_ERROR
119953                       ,p_module   => l_log_module);
119954         END IF;
119955       END IF;
119956    END IF;
119957    --
119958    --
119959    ------------------------------------------------------------------------------------------------
119960    -- 4219869 Business Flow
119961    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
119962    -- Prior Entry.  Currently, the following code is always generated.
119963    ------------------------------------------------------------------------------------------------
119967    -- 4219869 Business Flow
119964    XLA_AE_LINES_PKG.ValidateCurrentLine;
119965 
119966    ------------------------------------------------------------------------------------
119968    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
119969    ------------------------------------------------------------------------------------
119970    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
119971 
119972    ----------------------------------------------------------------------------------
119973    -- 4219869 Business Flow
119974    -- Update journal entry status -- Need to generate this within IF <condition>
119975    ----------------------------------------------------------------------------------
119976    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
119977          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
119978          ,p_balance_type_code => l_balance_type_code
119979          );
119980 
119981    -------------------------------------------------------------------------------------------
119982    -- 4262811 - Generate the Accrual Reversal lines
119983    -------------------------------------------------------------------------------------------
119984    BEGIN
119985       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
119986                               (g_array_event(p_event_id).array_value_num('header_index'));
119987       IF l_acc_rev_flag IS NULL THEN
119988          l_acc_rev_flag := 'N';
119989       END IF;
119990    EXCEPTION
119991       WHEN OTHERS THEN
119992          l_acc_rev_flag := 'N';
119993    END;
119994    --
119995    IF (l_acc_rev_flag = 'Y') THEN
119996 
119997        -- 4645092  ------------------------------------------------------------------------------
119998        -- To allow MPA report to determine if it should generate report process
119999        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
120000        ------------------------------------------------------------------------------------------
120001 
120002        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
120003        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
120004    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
120005    -- call ADRs
120006    -- Bug 4922099
120007    --
120008    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
120009         (NVL(l_actual_upg_option, 'N') = 'O') OR
120010         (NVL(l_enc_upg_option, 'N') = 'O')
120011       )
120012    THEN
120013    NULL;
120014    --
120015    --
120016    
120017   l_ccid := AcctDerRule_32(
120018            p_application_id           => p_application_id
120019          , p_ae_header_id             => l_ae_header_id 
120020 , p_source_18 => p_source_18
120021          , x_transaction_coa_id       => l_adr_transaction_coa_id
120022          , x_accounting_coa_id        => l_adr_accounting_coa_id
120023          , x_value_type_code          => l_adr_value_type_code
120024          , p_side                     => 'NA'
120025    );
120026 
120027    xla_ae_lines_pkg.set_ccid(
120028     p_code_combination_id          => l_ccid
120029   , p_value_type_code              => l_adr_value_type_code
120030   , p_transaction_coa_id           => l_adr_transaction_coa_id
120031   , p_accounting_coa_id            => l_adr_accounting_coa_id
120032   , p_adr_code                     => 'AP_INVOICE_DIST'
120033   , p_adr_type_code                => 'S'
120034   , p_component_type               => l_component_type
120035   , p_component_code               => l_component_code
120036   , p_component_type_code          => l_component_type_code
120037   , p_component_appl_id            => l_component_appl_id
120038   , p_amb_context_code             => l_amb_context_code
120039   , p_side                         => 'NA'
120040   );
120041 
120042 
120043    --
120044    --
120045    END IF;
120046 
120047        --
120048        -- Update the line information that should be overwritten
120049        --
120050        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
120051                                          p_header_num   => 1);
120052        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
120053 
120054        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
120055 
120056        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
120057           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
120058        END IF;
120059 
120060       --
120061       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
120062       --
120063       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
120064           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
120065       ELSE
120066           ---------------------------------------------------------------------------------------------------
120067           -- 4262811a Switch Sign
120068           ---------------------------------------------------------------------------------------------------
120069           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
120070           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
120071                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120072           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
120073                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120074           -- 5132302
120075           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
120079 
120076                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120077 
120078       END IF;
120080       -- 4955764
120081       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
120082       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
120083 
120084 
120085       XLA_AE_LINES_PKG.ValidateCurrentLine;
120086       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
120087 
120088       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
120089                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
120090                ,p_balance_type_code => l_balance_type_code);
120091 
120092    END IF;
120093 
120094    -----------------------------------------------------------------------------------------
120095    -- 4262811 Multiperiod Accounting
120096    -----------------------------------------------------------------------------------------
120097      -- No MPA option is assigned.
120098 
120099 
120100 END IF;
120101 END IF;
120102 --
120103 
120104 --
120105 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120106    trace
120107       (p_msg      => 'END of AcctLineType_202'
120108       ,p_level    => C_LEVEL_PROCEDURE
120109       ,p_module   => l_log_module);
120110 END IF;
120111 --
120112 EXCEPTION
120113   WHEN xla_exceptions_pkg.application_exception THEN
120114       RAISE;
120115   WHEN OTHERS THEN
120116        xla_exceptions_pkg.raise_message
120117            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_202');
120118 END AcctLineType_202;
120119 --
120120 
120121 ---------------------------------------
120122 --
120123 -- PRIVATE FUNCTION
120124 --         AcctLineType_203
120125 --
120126 ---------------------------------------
120127 PROCEDURE AcctLineType_203 (
120128   p_application_id        IN NUMBER
120129  ,p_event_id              IN NUMBER
120130  ,p_calculate_acctd_flag  IN VARCHAR2
120131  ,p_calculate_g_l_flag    IN VARCHAR2
120132  ,p_actual_flag           IN OUT VARCHAR2
120133  ,p_balance_type_code     OUT VARCHAR2
120134  ,p_gain_or_loss_ref      OUT VARCHAR2
120135  
120136 --Invoice Distribution Type
120137  , p_source_21            IN VARCHAR2
120138  , p_source_21_meaning    IN VARCHAR2
120139 --Accounting Reversal Indicator
120140  , p_source_41            IN VARCHAR2
120141 --Distribution Link Type
120142  , p_source_43            IN VARCHAR2
120143 --Allocation to Main Distribution Identifier
120144  , p_source_45            IN NUMBER
120145 --Invoice Identifier
120146  , p_source_46            IN NUMBER
120147 --Invoice Distribution Identifier
120148  , p_source_52            IN NUMBER
120149 --Payables Encumbrance Upgrade Credit Account
120150  , p_source_53            IN NUMBER
120151 --Payables Encumbrance Upgrade Credit Amount
120152  , p_source_54            IN NUMBER
120153 --Invoice Currency Code
120154  , p_source_55            IN VARCHAR2
120155 --Payables Encumbrance Upgrade Credit Base Amount
120156  , p_source_56            IN NUMBER
120157 --Payables Encumbrance Upgrade Debit Account
120158  , p_source_57            IN NUMBER
120159 --Payables Encumbrance Upgrade Debit Amount
120160  , p_source_58            IN NUMBER
120161 --Payables Encumbrance Upgrade Debit Base Amount
120162  , p_source_59            IN NUMBER
120163 --Payables Encumbrance Upgrade Option
120164  , p_source_60            IN VARCHAR2
120165 --Deferred Accounting End Date
120166  , p_source_65            IN DATE
120167 --Deferred Accounting Option
120168  , p_source_66            IN VARCHAR2
120169 --Deferred Accounting Start Date
120170  , p_source_67            IN DATE
120171 --Override Accounted Amount Indicator
120172  , p_source_68            IN VARCHAR2
120173  , p_source_68_meaning    IN VARCHAR2
120174 --Third Party Type
120175  , p_source_71            IN VARCHAR2
120176 --Parent Reversal Identifier
120177  , p_source_72            IN NUMBER
120178 --Invoice Distribution Statistical Amount
120179  , p_source_73            IN NUMBER
120180 --Invoice Distribution Tax Line Identifier
120181  , p_source_74            IN NUMBER
120182 --Invoice Distribution Tax Distribution Identifier from Tax
120183  , p_source_75            IN NUMBER
120184 --Invoice Distribution Summary Tax Line Identifier
120185  , p_source_76            IN NUMBER
120189  , p_source_78            IN NUMBER
120186 --Payables Upgrade Credit Encumbrance Type Identifier
120187  , p_source_77            IN NUMBER
120188 --Payables Upgrade Debit Encumbrance Type Identifier
120190 --Business Flow Accounts Payable Application Identifier
120191  , p_source_79            IN NUMBER
120192 --Business Flow Invoice Distribution Type
120193  , p_source_80            IN VARCHAR2
120197  , p_source_82            IN NUMBER
120194 --Business Flow Invoice Entity Code
120195  , p_source_81            IN VARCHAR2
120196 --Business Flow Invoice Distribution Identifier
120198 --Business Flow Invoice Identifier
120199  , p_source_83            IN NUMBER
120200 --Accrue on Receipt Option
120201  , p_source_84            IN VARCHAR2
120202  , p_source_84_meaning    IN VARCHAR2
120203 --Purchasing Encumbrance Option
120204  , p_source_86            IN VARCHAR2
120205  , p_source_86_meaning    IN VARCHAR2
120206 --Invoice Encumbered Option
120207  , p_source_87            IN VARCHAR2
120208  , p_source_87_meaning    IN VARCHAR2
120209 --Self-Assessed Tax Flag
120210  , p_source_135            IN VARCHAR2
120211  , p_source_135_meaning    IN VARCHAR2
120212 --Invoice Distribution Encumbrance Amount
120213  , p_source_143            IN NUMBER
120214 --Invoice Distribution Encumbrance Ledger Amount
120215  , p_source_144            IN NUMBER
120216 )
120217 IS
120218 
120219 l_component_type              VARCHAR2(80);
120220 l_component_code              VARCHAR2(30);
120221 l_component_type_code         VARCHAR2(1);
120222 l_component_appl_id           INTEGER;
120223 l_amb_context_code            VARCHAR2(30);
120224 l_entity_code                 VARCHAR2(30);
120225 l_event_class_code            VARCHAR2(30);
120226 l_ae_header_id                NUMBER;
120227 l_event_type_code             VARCHAR2(30);
120228 l_line_definition_code        VARCHAR2(30);
120229 l_line_definition_owner_code  VARCHAR2(1);
120230 --
120231 -- adr variables
120232 l_segment                     VARCHAR2(30);
120233 l_ccid                        NUMBER;
120234 l_adr_transaction_coa_id      NUMBER;
120235 l_adr_accounting_coa_id       NUMBER;
120236 l_adr_flexfield_segment_code  VARCHAR2(30);
120237 l_adr_flex_value_set_id       NUMBER;
120238 l_adr_value_type_code         VARCHAR2(30);
120239 l_adr_value_combination_id    NUMBER;
120240 l_adr_value_segment_code      VARCHAR2(30);
120241 
120242 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
120243 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
120244 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
120245 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
120246 
120247 -- 4262811 Variables ------------------------------------------------------------------------------------------
120248 l_entered_amt_idx             NUMBER;
120249 l_accted_amt_idx              NUMBER;
120250 l_acc_rev_flag                VARCHAR2(1);
120251 l_accrual_line_num            NUMBER;
120252 l_tmp_amt                     NUMBER;
120253 l_acc_rev_natural_side_code   VARCHAR2(1);
120254 
120255 l_num_entries                 NUMBER;
120256 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
120257 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
120258 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
120259 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
120260 l_recog_line_1                NUMBER;
120261 l_recog_line_2                NUMBER;
120262 
120263 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
120264 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
120265 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
120266 
120267 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
120268 
120269 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
120270 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
120271 
120272 ---------------------------------------------------------------------------------------------------------------
120273 
120274 
120275 --
120276 -- bulk performance
120277 --
120278 l_balance_type_code           VARCHAR2(1);
120279 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
120280 l_log_module                  VARCHAR2(240);
120281 
120282 --
120283 -- Upgrade strategy
120284 --
120285 l_actual_upg_option           VARCHAR2(1);
120286 l_enc_upg_option           VARCHAR2(1);
120287 
120288 --
120289 BEGIN
120290 --
120291 IF g_log_enabled THEN
120292       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_203';
120293 END IF;
120294 --
120295 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120296 
120297       trace
120298          (p_msg      => 'BEGIN of AcctLineType_203'
120299          ,p_level    => C_LEVEL_PROCEDURE
120300          ,p_module   => l_log_module);
120301 
120302 END IF;
120303 --
120304 l_component_type             := 'AMB_JLT';
120305 l_component_code             := 'AP_NON_RECOV_TAX_CM_ENC';
120306 l_component_type_code        := 'S';
120307 l_component_appl_id          :=  200;
120308 l_amb_context_code           := 'DEFAULT';
120309 l_entity_code                := 'AP_INVOICES';
120310 l_event_class_code           := 'CREDIT MEMOS';
120311 l_event_type_code            := 'CREDIT MEMOS_ALL';
120312 l_line_definition_owner_code := 'S';
120313 l_line_definition_code       := 'ENC_REV_CM_ALL';
120314 --
120315 l_balance_type_code          := 'E';
120316 l_segment                     := NULL;
120317 l_ccid                        := NULL;
120318 l_adr_transaction_coa_id      := NULL;
120319 l_adr_accounting_coa_id       := NULL;
120320 l_adr_flexfield_segment_code  := NULL;
120321 l_adr_flex_value_set_id       := NULL;
120322 l_adr_value_type_code         := NULL;
120323 l_adr_value_combination_id    := NULL;
120324 l_adr_value_segment_code      := NULL;
120325 
120329 l_budgetary_control_flag     := 'N';
120326 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
120327 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
120328 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
120330 
120331 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
120332 l_bflow_applied_to_amt       := NULL; -- 5132302
120333 l_entered_amt_idx            := NULL;          -- 4262811
120334 l_accted_amt_idx             := NULL;          -- 4262811
120335 l_acc_rev_flag               := NULL;          -- 4262811
120336 l_accrual_line_num           := NULL;          -- 4262811
120337 l_tmp_amt                    := NULL;          -- 4262811
120338 --
120339  
120343 ') =  'NONREC_TAX' AND 
120340 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
120341     l_balance_type_code <> 'B' THEN
120342 IF NVL(p_source_21,'
120344 NVL(p_source_135,'
120345 ') <>  'Y' AND 
120346 NVL(p_source_86,'
120347 ') =  'Y' AND 
120348 NVL(p_source_87,'
120349 ') =  'Y' AND 
120350 NVL(p_source_84,'
120351 ') <>  'Y'
120352  THEN 
120353 
120354    --
120355    XLA_AE_LINES_PKG.SetNewLine;
120356 
120357    p_balance_type_code          := l_balance_type_code;
120358    -- set the flag so later we will know whether the gain loss line needs to be created
120359    
120360    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
120361      p_actual_flag :='A';
120362    END IF;
120363 
120364    --
120365    -- bulk performance
120366    --
120367    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
120368                                       p_header_num   => 0); -- 4262811
120369    --
120370    -- set accounting line options
120371    --
120372    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
120373            p_natural_side_code          => 'C'
120374          , p_gain_or_loss_flag          => 'N'
120375          , p_gl_transfer_mode_code      => 'S'
120376          , p_acct_entry_type_code       => 'E'
120377          , p_switch_side_flag           => 'Y'
120378          , p_merge_duplicate_code       => 'A'
120379          );
120380    --
120381    l_acc_rev_natural_side_code := 'D';  -- 4262811
120382    -- 
120383    --
120384    -- set accounting line type info
120385    --
120386    xla_ae_lines_pkg.SetAcctLineType
120387       (p_component_type             => l_component_type
120388       ,p_event_type_code            => l_event_type_code
120389       ,p_line_definition_owner_code => l_line_definition_owner_code
120390       ,p_line_definition_code       => l_line_definition_code
120391       ,p_accounting_line_code       => l_component_code
120392       ,p_accounting_line_type_code  => l_component_type_code
120393       ,p_accounting_line_appl_id    => l_component_appl_id
120394       ,p_amb_context_code           => l_amb_context_code
120395       ,p_entity_code                => l_entity_code
120396       ,p_event_class_code           => l_event_class_code);
120397    --
120398    -- set accounting class
120399    --
120400    xla_ae_lines_pkg.SetAcctClass(
120401            p_accounting_class_code  => 'NRTAX'
120402          , p_ae_header_id           => l_ae_header_id
120403          );
120404 
120405    --
120406    -- set rounding class
120407    --
120408    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
120409                       'NRTAX';
120410 
120411    --
120412    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
120413    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
120414    --
120415    -- bulk performance
120416    --
120417    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
120418 
120419    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
120423    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
120420       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
120421 
120422    -- 4955764
120424       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
120425 
120426    -- 4458381 Public Sector Enh
120427    
120428    --
120429    -- set accounting attributes for the line type
120430    --
120431    l_entered_amt_idx := 23;
120432    l_accted_amt_idx  := 25;
120433    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
120434    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
120435    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
120436    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
120437    l_rec_acct_attrs.array_num_value(2)  := 
120438 xla_ae_sources_pkg.GetSystemSourceNum(
120439    p_source_code           => 'XLA_EVENT_APPL_ID'
120440  , p_source_type_code      => 'Y'
120441  , p_source_application_id =>  602
120442 );
120443    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
120444    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
120445    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
120446    l_rec_acct_attrs.array_char_value(4)  := 
120447 xla_ae_sources_pkg.GetSystemSourceChar(
120448    p_source_code           => 'XLA_ENTITY_CODE'
120449  , p_source_type_code      => 'Y'
120450  , p_source_application_id =>  602
120451 );
120452    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
120453    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
120454    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
120455    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
120456    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
120457    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
120458    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
120459    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
120460    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
120461    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
120462    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
120463    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
120464    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
120465    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
120466    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
120467    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
120468    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
120469    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
120470    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
120471    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
120472    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
120473    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
120474    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
120475    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
120476    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
120477    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
120478    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
120479    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
120480    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
120484    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
120481    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
120482    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
120483    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
120485    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
120486    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
120487    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
120488    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
120489    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
120490    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
120491    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
120492    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
120493    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
120494    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
120495    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
120496    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
120497    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
120498    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
120499    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
120500    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
120501    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
120505    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
120502    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
120503    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
120504    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
120506    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
120507    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
120508    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
120509    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
120510    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
120511    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
120512    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
120513    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
120514    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
120515    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
120516    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
120517    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
120518    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
120519    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
120520 
120521    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
120522    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
120523 
120524    ---------------------------------------------------------------------------------------------------------------
120525    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
120526    ---------------------------------------------------------------------------------------------------------------
120527    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
120528 
120529    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
120530    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
120531 
120532    IF xla_accounting_cache_pkg.GetValueChar
120533          (p_source_code         => 'LEDGER_CATEGORY_CODE'
120534          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
120535    AND l_bflow_method_code = 'PRIOR_ENTRY'
120536 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
120537    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
120538          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
120539        )
120540    THEN
120541          xla_ae_lines_pkg.BflowUpgEntry
120542            (p_business_method_code    => l_bflow_method_code
120543            ,p_business_class_code     => l_bflow_class_code
120544            ,p_balance_type            => l_balance_type_code);
120545    ELSE
120546       NULL;
120547 XLA_AE_LINES_PKG.business_flow_validation(
120548                                 p_business_method_code     => l_bflow_method_code
120549                                ,p_business_class_code      => l_bflow_class_code
120550                                ,p_inherit_description_flag => l_inherit_desc_flag);
120551    END IF;
120552 
120553    --
120554    -- call analytical criteria
120555    --
120556    -- Inherited Analytical Criteria for business flow method of Prior Entry.
120557    --
120558    -- call description
120559    --
120560    -- No description or it is inherited.
120561    --
120562    -- call ADRs
120563    -- Bug 4922099
120564    --
120565    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
120566         (NVL(l_actual_upg_option, 'N') = 'O') OR
120567         (NVL(l_enc_upg_option, 'N') = 'O')
120568       )
120569    THEN
120570    NULL;
120571    --
120572    --
120573    
120574    --
120575    --
120576    END IF;
120577    --
120578    -- Bug 4922099
120579    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
120580           (NVL(l_enc_upg_option, 'N') = 'O')
120581         ) AND
120582         (l_bflow_method_code = 'PRIOR_ENTRY')
120583       )
120584    THEN
120585       IF
120586       --
120587       1 = 1
120588       --
120589       THEN
120590       xla_accounting_err_pkg.build_message
120591                                     (p_appli_s_name            => 'XLA'
120592                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
120593                                     ,p_token_1                 => 'LINE_NUMBER'
120594                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
120595                                     ,p_token_2                 => 'LINE_TYPE_NAME'
120596                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
120597                                                                              l_component_type
120598                                                                             ,l_component_code
120599                                                                             ,l_component_type_code
120600                                                                             ,l_component_appl_id
120601                                                                             ,l_amb_context_code
120602                                                                             ,l_entity_code
120603                                                                             ,l_event_class_code
120604                                                                            )
120605                                     ,p_token_3                 => 'OWNER'
120606                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
120607                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
120608                                                                           ,p_lookup_code    => l_component_type_code
120612                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
120609                                                                          )
120610                                     ,p_token_4                 => 'PRODUCT_NAME'
120611                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
120613                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
120614                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
120615                                     ,p_ae_header_id            =>  NULL
120616                                        );
120617 
120618         IF (C_LEVEL_ERROR>= g_log_level) THEN
120619                  trace
120620                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
120621                       ,p_level    => C_LEVEL_ERROR
120622                       ,p_module   => l_log_module);
120623         END IF;
120624       END IF;
120625    END IF;
120626    --
120627    --
120628    ------------------------------------------------------------------------------------------------
120629    -- 4219869 Business Flow
120630    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
120631    -- Prior Entry.  Currently, the following code is always generated.
120632    ------------------------------------------------------------------------------------------------
120633    -- No ValidateCurrentLine for business flow method of Prior Entry
120634 
120635    ------------------------------------------------------------------------------------
120636    -- 4219869 Business Flow
120637    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
120638    ------------------------------------------------------------------------------------
120639    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
120640 
120641    ----------------------------------------------------------------------------------
120642    -- 4219869 Business Flow
120643    -- Update journal entry status -- Need to generate this within IF <condition>
120644    ----------------------------------------------------------------------------------
120645    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
120646          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
120647          ,p_balance_type_code => l_balance_type_code
120648          );
120649 
120650    -------------------------------------------------------------------------------------------
120651    -- 4262811 - Generate the Accrual Reversal lines
120652    -------------------------------------------------------------------------------------------
120653    BEGIN
120654       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
120655                               (g_array_event(p_event_id).array_value_num('header_index'));
120656       IF l_acc_rev_flag IS NULL THEN
120657          l_acc_rev_flag := 'N';
120658       END IF;
120659    EXCEPTION
120660       WHEN OTHERS THEN
120661          l_acc_rev_flag := 'N';
120662    END;
120663    --
120664    IF (l_acc_rev_flag = 'Y') THEN
120665 
120666        -- 4645092  ------------------------------------------------------------------------------
120667        -- To allow MPA report to determine if it should generate report process
120668        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
120669        ------------------------------------------------------------------------------------------
120670 
120671        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
120672        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
120673    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
120674    -- call ADRs
120675    -- Bug 4922099
120676    --
120677    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
120678         (NVL(l_actual_upg_option, 'N') = 'O') OR
120679         (NVL(l_enc_upg_option, 'N') = 'O')
120680       )
120681    THEN
120682    NULL;
120683    --
120684    --
120685    
120686    --
120687    --
120688    END IF;
120689 
120690        --
120691        -- Update the line information that should be overwritten
120692        --
120693        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
120694                                          p_header_num   => 1);
120695        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
120696 
120697        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
120698 
120699        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
120700           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
120701        END IF;
120702 
120703       --
120704       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
120705       --
120706       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
120707           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
120708       ELSE
120709           ---------------------------------------------------------------------------------------------------
120710           -- 4262811a Switch Sign
120711           ---------------------------------------------------------------------------------------------------
120712           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
120713           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
120714                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120715           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
120719                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120716                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120717           -- 5132302
120718           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
120720 
120721       END IF;
120722 
120723       -- 4955764
120724       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
120725       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
120726 
120727 
120728       XLA_AE_LINES_PKG.ValidateCurrentLine;
120729       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
120730 
120731       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
120732                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
120733                ,p_balance_type_code => l_balance_type_code);
120734 
120735    END IF;
120736 
120737    -----------------------------------------------------------------------------------------
120738    -- 4262811 Multiperiod Accounting
120739    -----------------------------------------------------------------------------------------
120740      -- No MPA option is assigned.
120741 
120742 
120743 END IF;
120744 END IF;
120745 --
120746 
120747 --
120748 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120749    trace
120750       (p_msg      => 'END of AcctLineType_203'
120751       ,p_level    => C_LEVEL_PROCEDURE
120752       ,p_module   => l_log_module);
120753 END IF;
120754 --
120755 EXCEPTION
120756   WHEN xla_exceptions_pkg.application_exception THEN
120757       RAISE;
120758   WHEN OTHERS THEN
120759        xla_exceptions_pkg.raise_message
120760            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_203');
120761 END AcctLineType_203;
120762 --
120763 
120764 ---------------------------------------
120765 --
120766 -- PRIVATE FUNCTION
120767 --         AcctLineType_204
120768 --
120769 ---------------------------------------
120770 PROCEDURE AcctLineType_204 (
120771   p_application_id        IN NUMBER
120772  ,p_event_id              IN NUMBER
120773  ,p_calculate_acctd_flag  IN VARCHAR2
120774  ,p_calculate_g_l_flag    IN VARCHAR2
120775  ,p_actual_flag           IN OUT VARCHAR2
120776  ,p_balance_type_code     OUT VARCHAR2
120777  ,p_gain_or_loss_ref      OUT VARCHAR2
120778  
120779 --Invoice Distribution Description
120780  , p_source_1            IN VARCHAR2
120781 --Invoice Distribution Ledger Amount
120782  , p_source_9            IN NUMBER
120783 --Invoice Distribution Account
120784  , p_source_18            IN NUMBER
120785 --Invoice Distribution Type
120786  , p_source_21            IN VARCHAR2
120787  , p_source_21_meaning    IN VARCHAR2
120788 --Accounting Reversal Indicator
120789  , p_source_41            IN VARCHAR2
120790 --Distribution Link Type
120791  , p_source_43            IN VARCHAR2
120792 --Allocation to Main Distribution Identifier
120793  , p_source_45            IN NUMBER
120794 --Invoice Identifier
120795  , p_source_46            IN NUMBER
120796 --Invoice Distribution Identifier
120797  , p_source_52            IN NUMBER
120798 --Payables Encumbrance Upgrade Credit Account
120799  , p_source_53            IN NUMBER
120800 --Payables Encumbrance Upgrade Credit Amount
120801  , p_source_54            IN NUMBER
120802 --Invoice Currency Code
120803  , p_source_55            IN VARCHAR2
120804 --Payables Encumbrance Upgrade Credit Base Amount
120805  , p_source_56            IN NUMBER
120806 --Payables Encumbrance Upgrade Debit Account
120807  , p_source_57            IN NUMBER
120808 --Payables Encumbrance Upgrade Debit Amount
120809  , p_source_58            IN NUMBER
120810 --Payables Encumbrance Upgrade Debit Base Amount
120811  , p_source_59            IN NUMBER
120812 --Payables Encumbrance Upgrade Option
120813  , p_source_60            IN VARCHAR2
120814 --Invoice Distribution Amount
120815  , p_source_61            IN NUMBER
120816 --Deferred Accounting End Date
120817  , p_source_65            IN DATE
120818 --Deferred Accounting Option
120819  , p_source_66            IN VARCHAR2
120820 --Deferred Accounting Start Date
120821  , p_source_67            IN DATE
120822 --Override Accounted Amount Indicator
120823  , p_source_68            IN VARCHAR2
120824  , p_source_68_meaning    IN VARCHAR2
120825 --Invoice Supplier Identifier
120826  , p_source_69            IN NUMBER
120827 --Invoice Supplier Site Identifier
120828  , p_source_70            IN NUMBER
120829 --Third Party Type
120830  , p_source_71            IN VARCHAR2
120831 --Parent Reversal Identifier
120832  , p_source_72            IN NUMBER
120833 --Invoice Distribution Tax Line Identifier
120834  , p_source_74            IN NUMBER
120835 --Invoice Distribution Tax Distribution Identifier from Tax
120836  , p_source_75            IN NUMBER
120837 --Invoice Distribution Summary Tax Line Identifier
120838  , p_source_76            IN NUMBER
120839 --Payables Upgrade Credit Encumbrance Type Identifier
120840  , p_source_77            IN NUMBER
120841 --Payables Upgrade Debit Encumbrance Type Identifier
120842  , p_source_78            IN NUMBER
120843 --Business Flow Accounts Payable Application Identifier
120844  , p_source_79            IN NUMBER
120845 --Business Flow Invoice Distribution Type
120846  , p_source_80            IN VARCHAR2
120847 --Business Flow Invoice Entity Code
120848  , p_source_81            IN VARCHAR2
120849 --Business Flow Invoice Distribution Identifier
120850  , p_source_82            IN NUMBER
120851 --Business Flow Invoice Identifier
120852  , p_source_83            IN NUMBER
120856 --Self-Assessed Tax Flag
120853 --Accrue on Receipt Option
120854  , p_source_84            IN VARCHAR2
120855  , p_source_84_meaning    IN VARCHAR2
120857  , p_source_135            IN VARCHAR2
120858  , p_source_135_meaning    IN VARCHAR2
120859 --Invoice Exchange Date
120860  , p_source_136            IN DATE
120861 --Invoice Exchange Rate
120862  , p_source_137            IN NUMBER
120863 --Invoice Exchange Rate Type
120864  , p_source_138            IN VARCHAR2
120865 )
120866 IS
120867 
120868 l_component_type              VARCHAR2(80);
120869 l_component_code              VARCHAR2(30);
120870 l_component_type_code         VARCHAR2(1);
120871 l_component_appl_id           INTEGER;
120872 l_amb_context_code            VARCHAR2(30);
120873 l_entity_code                 VARCHAR2(30);
120874 l_event_class_code            VARCHAR2(30);
120875 l_ae_header_id                NUMBER;
120876 l_event_type_code             VARCHAR2(30);
120877 l_line_definition_code        VARCHAR2(30);
120878 l_line_definition_owner_code  VARCHAR2(1);
120879 --
120880 -- adr variables
120881 l_segment                     VARCHAR2(30);
120882 l_ccid                        NUMBER;
120883 l_adr_transaction_coa_id      NUMBER;
120884 l_adr_accounting_coa_id       NUMBER;
120885 l_adr_flexfield_segment_code  VARCHAR2(30);
120886 l_adr_flex_value_set_id       NUMBER;
120887 l_adr_value_type_code         VARCHAR2(30);
120888 l_adr_value_combination_id    NUMBER;
120889 l_adr_value_segment_code      VARCHAR2(30);
120890 
120894 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
120891 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
120892 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
120893 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
120895 
120896 -- 4262811 Variables ------------------------------------------------------------------------------------------
120897 l_entered_amt_idx             NUMBER;
120898 l_accted_amt_idx              NUMBER;
120899 l_acc_rev_flag                VARCHAR2(1);
120900 l_accrual_line_num            NUMBER;
120901 l_tmp_amt                     NUMBER;
120902 l_acc_rev_natural_side_code   VARCHAR2(1);
120903 
120904 l_num_entries                 NUMBER;
120905 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
120906 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
120907 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
120908 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
120909 l_recog_line_1                NUMBER;
120910 l_recog_line_2                NUMBER;
120911 
120912 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
120913 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
120914 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
120915 
120916 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
120917 
120918 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
120919 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
120920 
120921 ---------------------------------------------------------------------------------------------------------------
120922 
120923 
120924 --
120925 -- bulk performance
120926 --
120927 l_balance_type_code           VARCHAR2(1);
120928 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
120929 l_log_module                  VARCHAR2(240);
120930 
120931 --
120932 -- Upgrade strategy
120933 --
120934 l_actual_upg_option           VARCHAR2(1);
120935 l_enc_upg_option           VARCHAR2(1);
120936 
120937 --
120938 BEGIN
120939 --
120940 IF g_log_enabled THEN
120941       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_204';
120942 END IF;
120943 --
120944 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120945 
120946       trace
120947          (p_msg      => 'BEGIN of AcctLineType_204'
120948          ,p_level    => C_LEVEL_PROCEDURE
120949          ,p_module   => l_log_module);
120950 
120951 END IF;
120952 --
120953 l_component_type             := 'AMB_JLT';
120954 l_component_code             := 'AP_NON_RECOV_TAX_DM';
120955 l_component_type_code        := 'S';
120956 l_component_appl_id          :=  200;
120957 l_amb_context_code           := 'DEFAULT';
120958 l_entity_code                := 'AP_INVOICES';
120959 l_event_class_code           := 'DEBIT MEMOS';
120960 l_event_type_code            := 'DEBIT MEMOS_ALL';
120961 l_line_definition_owner_code := 'S';
120962 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
120963 --
120964 l_balance_type_code          := 'A';
120965 l_segment                     := NULL;
120966 l_ccid                        := NULL;
120967 l_adr_transaction_coa_id      := NULL;
120968 l_adr_accounting_coa_id       := NULL;
120969 l_adr_flexfield_segment_code  := NULL;
120970 l_adr_flex_value_set_id       := NULL;
120971 l_adr_value_type_code         := NULL;
120972 l_adr_value_combination_id    := NULL;
120973 l_adr_value_segment_code      := NULL;
120974 
120975 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
120976 l_bflow_class_code           := '';    -- 4219869 Business Flow
120977 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
120978 l_budgetary_control_flag     := 'N';
120979 
120980 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
120981 l_bflow_applied_to_amt       := NULL; -- 5132302
120982 l_entered_amt_idx            := NULL;          -- 4262811
120983 l_accted_amt_idx             := NULL;          -- 4262811
120984 l_acc_rev_flag               := NULL;          -- 4262811
120985 l_accrual_line_num           := NULL;          -- 4262811
120986 l_tmp_amt                    := NULL;          -- 4262811
120987 --
120988  
120989 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
120990     l_balance_type_code <> 'B' THEN
120991 IF (NVL(p_source_21,'
120992 ') =  'NONREC_TAX' OR 
120993 NVL(p_source_21,'
120994 ') =  'TERV' OR 
120995 NVL(p_source_21,'
120996 ') =  'TIPV' OR 
120997 NVL(p_source_21,'
120998 ') =  'TRV') AND 
120999 NVL(p_source_84,'
121000 ') <>  'Y' AND 
121001 NVL(p_source_135,'
121002 ') <>  'Y'
121003  THEN 
121004 
121005    --
121006    XLA_AE_LINES_PKG.SetNewLine;
121007 
121008    p_balance_type_code          := l_balance_type_code;
121009    -- set the flag so later we will know whether the gain loss line needs to be created
121010    
121011    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
121012      p_actual_flag :='A';
121013    END IF;
121014 
121015    --
121016    -- bulk performance
121017    --
121018    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
121019                                       p_header_num   => 0); -- 4262811
121020    --
121021    -- set accounting line options
121022    --
121026          , p_gl_transfer_mode_code      => 'S'
121023    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
121024            p_natural_side_code          => 'D'
121025          , p_gain_or_loss_flag          => 'N'
121027          , p_acct_entry_type_code       => 'A'
121028          , p_switch_side_flag           => 'Y'
121029          , p_merge_duplicate_code       => 'A'
121030          );
121031    --
121032    l_acc_rev_natural_side_code := 'C';  -- 4262811
121033    -- 
121034    --
121035    -- set accounting line type info
121036    --
121037    xla_ae_lines_pkg.SetAcctLineType
121038       (p_component_type             => l_component_type
121039       ,p_event_type_code            => l_event_type_code
121040       ,p_line_definition_owner_code => l_line_definition_owner_code
121041       ,p_line_definition_code       => l_line_definition_code
121042       ,p_accounting_line_code       => l_component_code
121043       ,p_accounting_line_type_code  => l_component_type_code
121044       ,p_accounting_line_appl_id    => l_component_appl_id
121045       ,p_amb_context_code           => l_amb_context_code
121046       ,p_entity_code                => l_entity_code
121047       ,p_event_class_code           => l_event_class_code);
121048    --
121049    -- set accounting class
121050    --
121051    xla_ae_lines_pkg.SetAcctClass(
121055 
121052            p_accounting_class_code  => 'NRTAX'
121053          , p_ae_header_id           => l_ae_header_id
121054          );
121056    --
121057    -- set rounding class
121058    --
121059    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
121060                       'NRTAX';
121061 
121062    --
121063    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
121064    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
121065    --
121066    -- bulk performance
121067    --
121068    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
121069 
121070    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
121071       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
121072 
121073    -- 4955764
121074    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
121075       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
121076 
121077    -- 4458381 Public Sector Enh
121078    
121079    --
121080    -- set accounting attributes for the line type
121081    --
121082    l_entered_amt_idx := 23;
121083    l_accted_amt_idx  := 28;
121084    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
121085    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
121086    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
121087    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
121088    l_rec_acct_attrs.array_num_value(2)  := 
121089 xla_ae_sources_pkg.GetSystemSourceNum(
121090    p_source_code           => 'XLA_EVENT_APPL_ID'
121091  , p_source_type_code      => 'Y'
121092  , p_source_application_id =>  602
121093 );
121094    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
121095    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
121096    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
121097    l_rec_acct_attrs.array_char_value(4)  := 
121098 xla_ae_sources_pkg.GetSystemSourceChar(
121099    p_source_code           => 'XLA_ENTITY_CODE'
121100  , p_source_type_code      => 'Y'
121101  , p_source_application_id =>  602
121102 );
121103    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
121104    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
121105    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
121106    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
121107    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
121108    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
121109    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
121110    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
121111    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
121112    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
121113    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
121114    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
121115    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
121116    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
121117    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
121118    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
121122    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
121119    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
121120    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
121121    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
121123    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
121124    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
121125    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
121126    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
121127    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
121128    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
121129    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
121130    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
121131    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
121132    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
121133    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
121134    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
121135    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
121136    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
121137    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
121138    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
121139    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
121140    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
121141    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
121142    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
121143    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
121144    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
121145    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
121146    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
121147    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
121148    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
121149    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
121150    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
121151    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
121152    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
121153    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
121154    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
121155    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
121156    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
121157    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
121158    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
121159    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
121160    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
121161    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
121162    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
121163    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
121164    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
121165    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
121166    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
121167    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
121168    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
121172    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
121169    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
121170    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
121171    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
121173    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
121174    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
121175    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
121176    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
121177    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
121178    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
121179 
121180    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
121181    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
121182 
121183    ---------------------------------------------------------------------------------------------------------------
121184    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
121185    ---------------------------------------------------------------------------------------------------------------
121186    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
121187 
121188    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
121189    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
121190 
121191    IF xla_accounting_cache_pkg.GetValueChar
121195 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
121192          (p_source_code         => 'LEDGER_CATEGORY_CODE'
121193          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
121194    AND l_bflow_method_code = 'PRIOR_ENTRY'
121196    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
121197          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
121198        )
121199    THEN
121200          xla_ae_lines_pkg.BflowUpgEntry
121201            (p_business_method_code    => l_bflow_method_code
121202            ,p_business_class_code     => l_bflow_class_code
121203            ,p_balance_type            => l_balance_type_code);
121204    ELSE
121205       NULL;
121206 -- No business flow processing for business flow method of NONE.
121207    END IF;
121208 
121209    --
121210    -- call analytical criteria
121211    --
121212    
121213    --
121214    -- call description
121215    --
121216    
121217 xla_ae_lines_pkg.SetLineDescription(
121218    p_ae_header_id => l_ae_header_id
121219   ,p_description  => Description_2 (
121220      p_application_id         => p_application_id
121221    , p_ae_header_id           => l_ae_header_id 
121222 , p_source_1 => p_source_1
121223    )
121224 );
121225 
121226 
121227    --
121228    -- call ADRs
121229    -- Bug 4922099
121230    --
121231    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
121232         (NVL(l_actual_upg_option, 'N') = 'O') OR
121233         (NVL(l_enc_upg_option, 'N') = 'O')
121234       )
121235    THEN
121236    NULL;
121237    --
121238    --
121239    
121240   l_ccid := AcctDerRule_32(
121241            p_application_id           => p_application_id
121242          , p_ae_header_id             => l_ae_header_id 
121243 , p_source_18 => p_source_18
121244          , x_transaction_coa_id       => l_adr_transaction_coa_id
121245          , x_accounting_coa_id        => l_adr_accounting_coa_id
121246          , x_value_type_code          => l_adr_value_type_code
121247          , p_side                     => 'NA'
121248    );
121249 
121250    xla_ae_lines_pkg.set_ccid(
121251     p_code_combination_id          => l_ccid
121252   , p_value_type_code              => l_adr_value_type_code
121253   , p_transaction_coa_id           => l_adr_transaction_coa_id
121254   , p_accounting_coa_id            => l_adr_accounting_coa_id
121255   , p_adr_code                     => 'AP_INVOICE_DIST'
121256   , p_adr_type_code                => 'S'
121257   , p_component_type               => l_component_type
121258   , p_component_code               => l_component_code
121259   , p_component_type_code          => l_component_type_code
121260   , p_component_appl_id            => l_component_appl_id
121261   , p_amb_context_code             => l_amb_context_code
121262   , p_side                         => 'NA'
121263   );
121264 
121265 
121266    --
121267    --
121268    END IF;
121269    --
121270    -- Bug 4922099
121271    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
121272           (NVL(l_enc_upg_option, 'N') = 'O')
121273         ) AND
121274         (l_bflow_method_code = 'PRIOR_ENTRY')
121275       )
121276    THEN
121277       IF
121278       --
121279       1 = 2
121280       --
121281       THEN
121282       xla_accounting_err_pkg.build_message
121283                                     (p_appli_s_name            => 'XLA'
121284                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
121285                                     ,p_token_1                 => 'LINE_NUMBER'
121286                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
121287                                     ,p_token_2                 => 'LINE_TYPE_NAME'
121288                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
121289                                                                              l_component_type
121290                                                                             ,l_component_code
121291                                                                             ,l_component_type_code
121292                                                                             ,l_component_appl_id
121293                                                                             ,l_amb_context_code
121294                                                                             ,l_entity_code
121295                                                                             ,l_event_class_code
121296                                                                            )
121297                                     ,p_token_3                 => 'OWNER'
121298                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
121299                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
121300                                                                           ,p_lookup_code    => l_component_type_code
121301                                                                          )
121302                                     ,p_token_4                 => 'PRODUCT_NAME'
121306                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
121303                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
121304                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
121305                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
121307                                     ,p_ae_header_id            =>  NULL
121308                                        );
121309 
121310         IF (C_LEVEL_ERROR>= g_log_level) THEN
121311                  trace
121312                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
121313                       ,p_level    => C_LEVEL_ERROR
121314                       ,p_module   => l_log_module);
121315         END IF;
121316       END IF;
121317    END IF;
121318    --
121319    --
121320    ------------------------------------------------------------------------------------------------
121321    -- 4219869 Business Flow
121322    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
121323    -- Prior Entry.  Currently, the following code is always generated.
121324    ------------------------------------------------------------------------------------------------
121325    XLA_AE_LINES_PKG.ValidateCurrentLine;
121326 
121327    ------------------------------------------------------------------------------------
121328    -- 4219869 Business Flow
121329    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
121330    ------------------------------------------------------------------------------------
121331    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
121332 
121333    ----------------------------------------------------------------------------------
121334    -- 4219869 Business Flow
121335    -- Update journal entry status -- Need to generate this within IF <condition>
121336    ----------------------------------------------------------------------------------
121337    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
121338          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
121339          ,p_balance_type_code => l_balance_type_code
121340          );
121341 
121342    -------------------------------------------------------------------------------------------
121343    -- 4262811 - Generate the Accrual Reversal lines
121344    -------------------------------------------------------------------------------------------
121345    BEGIN
121346       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
121347                               (g_array_event(p_event_id).array_value_num('header_index'));
121348       IF l_acc_rev_flag IS NULL THEN
121349          l_acc_rev_flag := 'N';
121350       END IF;
121351    EXCEPTION
121352       WHEN OTHERS THEN
121353          l_acc_rev_flag := 'N';
121354    END;
121355    --
121356    IF (l_acc_rev_flag = 'Y') THEN
121357 
121358        -- 4645092  ------------------------------------------------------------------------------
121359        -- To allow MPA report to determine if it should generate report process
121360        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
121361        ------------------------------------------------------------------------------------------
121362 
121363        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
121364        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
121365    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
121366    -- call ADRs
121367    -- Bug 4922099
121368    --
121369    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
121370         (NVL(l_actual_upg_option, 'N') = 'O') OR
121371         (NVL(l_enc_upg_option, 'N') = 'O')
121372       )
121373    THEN
121374    NULL;
121375    --
121376    --
121377    
121378   l_ccid := AcctDerRule_32(
121379            p_application_id           => p_application_id
121380          , p_ae_header_id             => l_ae_header_id 
121381 , p_source_18 => p_source_18
121382          , x_transaction_coa_id       => l_adr_transaction_coa_id
121383          , x_accounting_coa_id        => l_adr_accounting_coa_id
121384          , x_value_type_code          => l_adr_value_type_code
121385          , p_side                     => 'NA'
121386    );
121387 
121388    xla_ae_lines_pkg.set_ccid(
121389     p_code_combination_id          => l_ccid
121390   , p_value_type_code              => l_adr_value_type_code
121391   , p_transaction_coa_id           => l_adr_transaction_coa_id
121392   , p_accounting_coa_id            => l_adr_accounting_coa_id
121393   , p_adr_code                     => 'AP_INVOICE_DIST'
121394   , p_adr_type_code                => 'S'
121395   , p_component_type               => l_component_type
121396   , p_component_code               => l_component_code
121397   , p_component_type_code          => l_component_type_code
121398   , p_component_appl_id            => l_component_appl_id
121399   , p_amb_context_code             => l_amb_context_code
121400   , p_side                         => 'NA'
121401   );
121402 
121403 
121404    --
121405    --
121406    END IF;
121407 
121408        --
121409        -- Update the line information that should be overwritten
121410        --
121411        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
121415        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
121412                                          p_header_num   => 1);
121413        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
121414 
121416 
121417        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
121418           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
121419        END IF;
121420 
121421       --
121422       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
121423       --
121424       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
121425           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
121426       ELSE
121427           ---------------------------------------------------------------------------------------------------
121428           -- 4262811a Switch Sign
121429           ---------------------------------------------------------------------------------------------------
121430           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
121431           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
121435           -- 5132302
121432                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121433           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
121434                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121436           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
121437                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121438 
121439       END IF;
121440 
121441       -- 4955764
121442       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
121443       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
121444 
121445 
121446       XLA_AE_LINES_PKG.ValidateCurrentLine;
121447       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
121448 
121449       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
121450                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
121451                ,p_balance_type_code => l_balance_type_code);
121452 
121453    END IF;
121454 
121455    -----------------------------------------------------------------------------------------
121456    -- 4262811 Multiperiod Accounting
121457    -----------------------------------------------------------------------------------------
121458      -- No MPA option is assigned.
121459 
121460 
121461 END IF;
121462 END IF;
121463 --
121464 
121465 --
121466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121467    trace
121468       (p_msg      => 'END of AcctLineType_204'
121469       ,p_level    => C_LEVEL_PROCEDURE
121470       ,p_module   => l_log_module);
121471 END IF;
121472 --
121473 EXCEPTION
121474   WHEN xla_exceptions_pkg.application_exception THEN
121475       RAISE;
121476   WHEN OTHERS THEN
121477        xla_exceptions_pkg.raise_message
121478            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_204');
121479 END AcctLineType_204;
121480 --
121481 
121482 ---------------------------------------
121483 --
121484 -- PRIVATE FUNCTION
121485 --         AcctLineType_205
121486 --
121487 ---------------------------------------
121488 PROCEDURE AcctLineType_205 (
121489   p_application_id        IN NUMBER
121490  ,p_event_id              IN NUMBER
121491  ,p_calculate_acctd_flag  IN VARCHAR2
121492  ,p_calculate_g_l_flag    IN VARCHAR2
121493  ,p_actual_flag           IN OUT VARCHAR2
121494  ,p_balance_type_code     OUT VARCHAR2
121495  ,p_gain_or_loss_ref      OUT VARCHAR2
121496  
121497 --Invoice Distribution Type
121498  , p_source_21            IN VARCHAR2
121499  , p_source_21_meaning    IN VARCHAR2
121500 --Accounting Reversal Indicator
121501  , p_source_41            IN VARCHAR2
121502 --Distribution Link Type
121503  , p_source_43            IN VARCHAR2
121504 --Allocation to Main Distribution Identifier
121505  , p_source_45            IN NUMBER
121506 --Invoice Identifier
121507  , p_source_46            IN NUMBER
121508 --Invoice Distribution Identifier
121509  , p_source_52            IN NUMBER
121510 --Payables Encumbrance Upgrade Credit Account
121511  , p_source_53            IN NUMBER
121512 --Payables Encumbrance Upgrade Credit Amount
121513  , p_source_54            IN NUMBER
121514 --Invoice Currency Code
121515  , p_source_55            IN VARCHAR2
121516 --Payables Encumbrance Upgrade Credit Base Amount
121517  , p_source_56            IN NUMBER
121518 --Payables Encumbrance Upgrade Debit Account
121519  , p_source_57            IN NUMBER
121520 --Payables Encumbrance Upgrade Debit Amount
121521  , p_source_58            IN NUMBER
121522 --Payables Encumbrance Upgrade Debit Base Amount
121523  , p_source_59            IN NUMBER
121524 --Payables Encumbrance Upgrade Option
121525  , p_source_60            IN VARCHAR2
121526 --Deferred Accounting End Date
121527  , p_source_65            IN DATE
121528 --Deferred Accounting Option
121529  , p_source_66            IN VARCHAR2
121530 --Deferred Accounting Start Date
121531  , p_source_67            IN DATE
121532 --Override Accounted Amount Indicator
121533  , p_source_68            IN VARCHAR2
121534  , p_source_68_meaning    IN VARCHAR2
121535 --Third Party Type
121536  , p_source_71            IN VARCHAR2
121537 --Parent Reversal Identifier
121538  , p_source_72            IN NUMBER
121539 --Invoice Distribution Tax Line Identifier
121540  , p_source_74            IN NUMBER
121541 --Invoice Distribution Tax Distribution Identifier from Tax
121542  , p_source_75            IN NUMBER
121543 --Invoice Distribution Summary Tax Line Identifier
121544  , p_source_76            IN NUMBER
121545 --Payables Upgrade Credit Encumbrance Type Identifier
121546  , p_source_77            IN NUMBER
121547 --Payables Upgrade Debit Encumbrance Type Identifier
121548  , p_source_78            IN NUMBER
121552  , p_source_80            IN VARCHAR2
121549 --Business Flow Accounts Payable Application Identifier
121550  , p_source_79            IN NUMBER
121551 --Business Flow Invoice Distribution Type
121553 --Business Flow Invoice Entity Code
121554  , p_source_81            IN VARCHAR2
121555 --Business Flow Invoice Distribution Identifier
121556  , p_source_82            IN NUMBER
121557 --Business Flow Invoice Identifier
121558  , p_source_83            IN NUMBER
121559 --Accrue on Receipt Option
121560  , p_source_84            IN VARCHAR2
121561  , p_source_84_meaning    IN VARCHAR2
121562 --Purchasing Encumbrance Option
121563  , p_source_86            IN VARCHAR2
121564  , p_source_86_meaning    IN VARCHAR2
121565 --Invoice Encumbered Option
121566  , p_source_87            IN VARCHAR2
121567  , p_source_87_meaning    IN VARCHAR2
121568 --Self-Assessed Tax Flag
121569  , p_source_135            IN VARCHAR2
121570  , p_source_135_meaning    IN VARCHAR2
121571 --Invoice Distribution Encumbrance Amount
121572  , p_source_143            IN NUMBER
121573 --Invoice Distribution Encumbrance Ledger Amount
121574  , p_source_144            IN NUMBER
121575 )
121576 IS
121577 
121578 l_component_type              VARCHAR2(80);
121579 l_component_code              VARCHAR2(30);
121580 l_component_type_code         VARCHAR2(1);
121581 l_component_appl_id           INTEGER;
121582 l_amb_context_code            VARCHAR2(30);
121583 l_entity_code                 VARCHAR2(30);
121584 l_event_class_code            VARCHAR2(30);
121585 l_ae_header_id                NUMBER;
121586 l_event_type_code             VARCHAR2(30);
121587 l_line_definition_code        VARCHAR2(30);
121588 l_line_definition_owner_code  VARCHAR2(1);
121589 --
121590 -- adr variables
121591 l_segment                     VARCHAR2(30);
121595 l_adr_flexfield_segment_code  VARCHAR2(30);
121592 l_ccid                        NUMBER;
121593 l_adr_transaction_coa_id      NUMBER;
121594 l_adr_accounting_coa_id       NUMBER;
121596 l_adr_flex_value_set_id       NUMBER;
121597 l_adr_value_type_code         VARCHAR2(30);
121598 l_adr_value_combination_id    NUMBER;
121599 l_adr_value_segment_code      VARCHAR2(30);
121600 
121601 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
121602 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
121603 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
121604 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
121605 
121606 -- 4262811 Variables ------------------------------------------------------------------------------------------
121607 l_entered_amt_idx             NUMBER;
121608 l_accted_amt_idx              NUMBER;
121609 l_acc_rev_flag                VARCHAR2(1);
121610 l_accrual_line_num            NUMBER;
121611 l_tmp_amt                     NUMBER;
121612 l_acc_rev_natural_side_code   VARCHAR2(1);
121613 
121614 l_num_entries                 NUMBER;
121615 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
121616 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
121617 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
121618 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
121619 l_recog_line_1                NUMBER;
121620 l_recog_line_2                NUMBER;
121621 
121622 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
121623 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
121624 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
121625 
121626 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
121627 
121628 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
121629 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
121630 
121631 ---------------------------------------------------------------------------------------------------------------
121632 
121633 
121634 --
121635 -- bulk performance
121636 --
121637 l_balance_type_code           VARCHAR2(1);
121638 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
121639 l_log_module                  VARCHAR2(240);
121640 
121641 --
121642 -- Upgrade strategy
121643 --
121644 l_actual_upg_option           VARCHAR2(1);
121645 l_enc_upg_option           VARCHAR2(1);
121646 
121647 --
121648 BEGIN
121649 --
121650 IF g_log_enabled THEN
121651       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_205';
121652 END IF;
121653 --
121654 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121655 
121656       trace
121657          (p_msg      => 'BEGIN of AcctLineType_205'
121658          ,p_level    => C_LEVEL_PROCEDURE
121659          ,p_module   => l_log_module);
121660 
121661 END IF;
121662 --
121666 l_component_appl_id          :=  200;
121663 l_component_type             := 'AMB_JLT';
121664 l_component_code             := 'AP_NON_RECOV_TAX_DM_ENC';
121665 l_component_type_code        := 'S';
121667 l_amb_context_code           := 'DEFAULT';
121668 l_entity_code                := 'AP_INVOICES';
121669 l_event_class_code           := 'DEBIT MEMOS';
121670 l_event_type_code            := 'DEBIT MEMOS_ALL';
121671 l_line_definition_owner_code := 'S';
121672 l_line_definition_code       := 'ENC_REV_DM_ALL';
121673 --
121674 l_balance_type_code          := 'E';
121675 l_segment                     := NULL;
121676 l_ccid                        := NULL;
121677 l_adr_transaction_coa_id      := NULL;
121678 l_adr_accounting_coa_id       := NULL;
121679 l_adr_flexfield_segment_code  := NULL;
121680 l_adr_flex_value_set_id       := NULL;
121681 l_adr_value_type_code         := NULL;
121682 l_adr_value_combination_id    := NULL;
121683 l_adr_value_segment_code      := NULL;
121684 
121685 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
121686 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
121687 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
121688 l_budgetary_control_flag     := 'N';
121689 
121690 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
121691 l_bflow_applied_to_amt       := NULL; -- 5132302
121692 l_entered_amt_idx            := NULL;          -- 4262811
121693 l_accted_amt_idx             := NULL;          -- 4262811
121694 l_acc_rev_flag               := NULL;          -- 4262811
121695 l_accrual_line_num           := NULL;          -- 4262811
121696 l_tmp_amt                    := NULL;          -- 4262811
121697 --
121698  
121699 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
121700     l_balance_type_code <> 'B' THEN
121701 IF NVL(p_source_21,'
121702 ') =  'NONREC_TAX' AND 
121703 NVL(p_source_135,'
121704 ') <>  'Y' AND 
121705 NVL(p_source_86,'
121706 ') =  'Y' AND 
121707 NVL(p_source_87,'
121708 ') =  'Y' AND 
121709 NVL(p_source_84,'
121710 ') <>  'Y'
121711  THEN 
121712 
121713    --
121714    XLA_AE_LINES_PKG.SetNewLine;
121715 
121716    p_balance_type_code          := l_balance_type_code;
121717    -- set the flag so later we will know whether the gain loss line needs to be created
121718    
121719    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
121720      p_actual_flag :='A';
121721    END IF;
121722 
121723    --
121724    -- bulk performance
121725    --
121726    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
121727                                       p_header_num   => 0); -- 4262811
121728    --
121729    -- set accounting line options
121730    --
121731    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
121732            p_natural_side_code          => 'C'
121733          , p_gain_or_loss_flag          => 'N'
121734          , p_gl_transfer_mode_code      => 'S'
121735          , p_acct_entry_type_code       => 'E'
121736          , p_switch_side_flag           => 'Y'
121737          , p_merge_duplicate_code       => 'A'
121738          );
121739    --
121740    l_acc_rev_natural_side_code := 'D';  -- 4262811
121741    -- 
121742    --
121743    -- set accounting line type info
121744    --
121745    xla_ae_lines_pkg.SetAcctLineType
121746       (p_component_type             => l_component_type
121747       ,p_event_type_code            => l_event_type_code
121748       ,p_line_definition_owner_code => l_line_definition_owner_code
121749       ,p_line_definition_code       => l_line_definition_code
121750       ,p_accounting_line_code       => l_component_code
121751       ,p_accounting_line_type_code  => l_component_type_code
121752       ,p_accounting_line_appl_id    => l_component_appl_id
121753       ,p_amb_context_code           => l_amb_context_code
121754       ,p_entity_code                => l_entity_code
121755       ,p_event_class_code           => l_event_class_code);
121756    --
121757    -- set accounting class
121758    --
121759    xla_ae_lines_pkg.SetAcctClass(
121760            p_accounting_class_code  => 'NRTAX'
121761          , p_ae_header_id           => l_ae_header_id
121762          );
121763 
121764    --
121765    -- set rounding class
121766    --
121767    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
121768                       'NRTAX';
121769 
121770    --
121771    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
121772    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
121773    --
121774    -- bulk performance
121775    --
121776    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
121777 
121778    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
121779       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
121780 
121781    -- 4955764
121782    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
121783       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
121784 
121785    -- 4458381 Public Sector Enh
121786    
121787    --
121788    -- set accounting attributes for the line type
121789    --
121790    l_entered_amt_idx := 23;
121791    l_accted_amt_idx  := 25;
121792    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
121796    l_rec_acct_attrs.array_num_value(2)  := 
121793    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
121794    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
121795    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
121797 xla_ae_sources_pkg.GetSystemSourceNum(
121798    p_source_code           => 'XLA_EVENT_APPL_ID'
121799  , p_source_type_code      => 'Y'
121800  , p_source_application_id =>  602
121801 );
121802    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
121803    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
121804    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
121805    l_rec_acct_attrs.array_char_value(4)  := 
121806 xla_ae_sources_pkg.GetSystemSourceChar(
121807    p_source_code           => 'XLA_ENTITY_CODE'
121808  , p_source_type_code      => 'Y'
121809  , p_source_application_id =>  602
121810 );
121811    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
121812    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
121813    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
121814    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
121815    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
121816    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
121817    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
121818    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
121819    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
121820    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
121821    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
121822    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
121823    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
121824    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
121825    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
121826    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
121827    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
121828    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
121829    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
121830    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
121831    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
121832    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
121833    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
121834    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
121835    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
121836    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
121837    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
121838    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
121839    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
121840    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
121841    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
121842    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
121843    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
121844    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
121845    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
121846    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
121847    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
121848    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
121849    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
121850    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
121851    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
121852    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
121853    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
121854    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
121855    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
121856    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
121857    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
121858    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
121859    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
121860    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
121861    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
121862    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
121863    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
121864    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
121865    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
121866    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
121867    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
121868    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
121869    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
121870    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
121871    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
121872    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
121873    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
121874    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
121875    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
121876    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
121877 
121878    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
121879    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
121880 
121884    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
121881    ---------------------------------------------------------------------------------------------------------------
121882    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
121883    ---------------------------------------------------------------------------------------------------------------
121885 
121886    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
121887    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
121888 
121889    IF xla_accounting_cache_pkg.GetValueChar
121890          (p_source_code         => 'LEDGER_CATEGORY_CODE'
121891          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
121892    AND l_bflow_method_code = 'PRIOR_ENTRY'
121893 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
121894    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
121895          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
121896        )
121897    THEN
121898          xla_ae_lines_pkg.BflowUpgEntry
121899            (p_business_method_code    => l_bflow_method_code
121900            ,p_business_class_code     => l_bflow_class_code
121901            ,p_balance_type            => l_balance_type_code);
121902    ELSE
121903       NULL;
121904 XLA_AE_LINES_PKG.business_flow_validation(
121905                                 p_business_method_code     => l_bflow_method_code
121906                                ,p_business_class_code      => l_bflow_class_code
121907                                ,p_inherit_description_flag => l_inherit_desc_flag);
121908    END IF;
121909 
121910    --
121911    -- call analytical criteria
121912    --
121913    -- Inherited Analytical Criteria for business flow method of Prior Entry.
121914    --
121915    -- call description
121916    --
121917    -- No description or it is inherited.
121918    --
121919    -- call ADRs
121920    -- Bug 4922099
121921    --
121922    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
121923         (NVL(l_actual_upg_option, 'N') = 'O') OR
121924         (NVL(l_enc_upg_option, 'N') = 'O')
121925       )
121926    THEN
121927    NULL;
121928    --
121929    --
121930    
121931    --
121932    --
121933    END IF;
121934    --
121935    -- Bug 4922099
121936    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
121937           (NVL(l_enc_upg_option, 'N') = 'O')
121938         ) AND
121939         (l_bflow_method_code = 'PRIOR_ENTRY')
121940       )
121941    THEN
121942       IF
121943       --
121944       1 = 1
121945       --
121946       THEN
121947       xla_accounting_err_pkg.build_message
121948                                     (p_appli_s_name            => 'XLA'
121949                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
121950                                     ,p_token_1                 => 'LINE_NUMBER'
121951                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
121952                                     ,p_token_2                 => 'LINE_TYPE_NAME'
121953                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
121954                                                                              l_component_type
121955                                                                             ,l_component_code
121956                                                                             ,l_component_type_code
121957                                                                             ,l_component_appl_id
121958                                                                             ,l_amb_context_code
121959                                                                             ,l_entity_code
121960                                                                             ,l_event_class_code
121961                                                                            )
121962                                     ,p_token_3                 => 'OWNER'
121963                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
121964                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
121965                                                                           ,p_lookup_code    => l_component_type_code
121966                                                                          )
121967                                     ,p_token_4                 => 'PRODUCT_NAME'
121968                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
121969                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
121970                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
121971                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
121972                                     ,p_ae_header_id            =>  NULL
121973                                        );
121974 
121975         IF (C_LEVEL_ERROR>= g_log_level) THEN
121976                  trace
121977                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
121978                       ,p_level    => C_LEVEL_ERROR
121979                       ,p_module   => l_log_module);
121980         END IF;
121981       END IF;
121982    END IF;
121983    --
121984    --
121985    ------------------------------------------------------------------------------------------------
121986    -- 4219869 Business Flow
121987    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
121988    -- Prior Entry.  Currently, the following code is always generated.
121992    ------------------------------------------------------------------------------------
121989    ------------------------------------------------------------------------------------------------
121990    -- No ValidateCurrentLine for business flow method of Prior Entry
121991 
121993    -- 4219869 Business Flow
121994    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
121995    ------------------------------------------------------------------------------------
121996    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
121997 
121998    ----------------------------------------------------------------------------------
121999    -- 4219869 Business Flow
122000    -- Update journal entry status -- Need to generate this within IF <condition>
122001    ----------------------------------------------------------------------------------
122002    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
122003          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
122004          ,p_balance_type_code => l_balance_type_code
122005          );
122006 
122007    -------------------------------------------------------------------------------------------
122008    -- 4262811 - Generate the Accrual Reversal lines
122009    -------------------------------------------------------------------------------------------
122010    BEGIN
122011       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
122012                               (g_array_event(p_event_id).array_value_num('header_index'));
122013       IF l_acc_rev_flag IS NULL THEN
122014          l_acc_rev_flag := 'N';
122015       END IF;
122016    EXCEPTION
122017       WHEN OTHERS THEN
122018          l_acc_rev_flag := 'N';
122019    END;
122020    --
122021    IF (l_acc_rev_flag = 'Y') THEN
122022 
122023        -- 4645092  ------------------------------------------------------------------------------
122024        -- To allow MPA report to determine if it should generate report process
122025        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
122026        ------------------------------------------------------------------------------------------
122027 
122028        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
122029        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
122030    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
122031    -- call ADRs
122032    -- Bug 4922099
122033    --
122034    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
122035         (NVL(l_actual_upg_option, 'N') = 'O') OR
122036         (NVL(l_enc_upg_option, 'N') = 'O')
122037       )
122038    THEN
122039    NULL;
122040    --
122041    --
122042    
122043    --
122044    --
122045    END IF;
122046 
122047        --
122048        -- Update the line information that should be overwritten
122049        --
122050        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
122051                                          p_header_num   => 1);
122052        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
122053 
122054        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
122055 
122056        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
122057           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
122058        END IF;
122059 
122060       --
122061       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
122062       --
122063       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
122064           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
122065       ELSE
122066           ---------------------------------------------------------------------------------------------------
122067           -- 4262811a Switch Sign
122068           ---------------------------------------------------------------------------------------------------
122069           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
122070           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
122071                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
122072           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
122073                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
122074           -- 5132302
122075           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
122076                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
122077 
122078       END IF;
122079 
122080       -- 4955764
122081       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
122082       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
122083 
122084 
122085       XLA_AE_LINES_PKG.ValidateCurrentLine;
122086       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
122087 
122088       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
122089                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
122090                ,p_balance_type_code => l_balance_type_code);
122091 
122092    END IF;
122093 
122094    -----------------------------------------------------------------------------------------
122095    -- 4262811 Multiperiod Accounting
122096    -----------------------------------------------------------------------------------------
122097      -- No MPA option is assigned.
122098 
122099 
122100 END IF;
122101 END IF;
122102 --
122103 
122104 --
122105 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
122109       ,p_module   => l_log_module);
122106    trace
122107       (p_msg      => 'END of AcctLineType_205'
122108       ,p_level    => C_LEVEL_PROCEDURE
122110 END IF;
122111 --
122112 EXCEPTION
122113   WHEN xla_exceptions_pkg.application_exception THEN
122114       RAISE;
122115   WHEN OTHERS THEN
122116        xla_exceptions_pkg.raise_message
122117            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_205');
122118 END AcctLineType_205;
122119 --
122120 
122121 ---------------------------------------
122122 --
122123 -- PRIVATE FUNCTION
122124 --         AcctLineType_206
122125 --
122126 ---------------------------------------
122127 PROCEDURE AcctLineType_206 (
122128   p_application_id        IN NUMBER
122129  ,p_event_id              IN NUMBER
122130  ,p_calculate_acctd_flag  IN VARCHAR2
122131  ,p_calculate_g_l_flag    IN VARCHAR2
122132  ,p_actual_flag           IN OUT VARCHAR2
122133  ,p_balance_type_code     OUT VARCHAR2
122134  ,p_gain_or_loss_ref      OUT VARCHAR2
122135  
122136 --Invoice Distribution Description
122137  , p_source_1            IN VARCHAR2
122138 --Invoice Distribution Ledger Amount
122139  , p_source_9            IN NUMBER
122140 --Invoice Distribution Account
122141  , p_source_18            IN NUMBER
122142 --Invoice Distribution Type
122143  , p_source_21            IN VARCHAR2
122144  , p_source_21_meaning    IN VARCHAR2
122145 --Accounting Reversal Indicator
122146  , p_source_41            IN VARCHAR2
122147 --Distribution Link Type
122148  , p_source_43            IN VARCHAR2
122149 --Allocation to Main Distribution Identifier
122150  , p_source_45            IN NUMBER
122151 --Invoice Identifier
122152  , p_source_46            IN NUMBER
122153 --Invoice Distribution Identifier
122154  , p_source_52            IN NUMBER
122155 --Payables Encumbrance Upgrade Credit Account
122156  , p_source_53            IN NUMBER
122157 --Payables Encumbrance Upgrade Credit Amount
122158  , p_source_54            IN NUMBER
122159 --Invoice Currency Code
122160  , p_source_55            IN VARCHAR2
122161 --Payables Encumbrance Upgrade Credit Base Amount
122162  , p_source_56            IN NUMBER
122163 --Payables Encumbrance Upgrade Debit Account
122164  , p_source_57            IN NUMBER
122165 --Payables Encumbrance Upgrade Debit Amount
122166  , p_source_58            IN NUMBER
122167 --Payables Encumbrance Upgrade Debit Base Amount
122168  , p_source_59            IN NUMBER
122169 --Payables Encumbrance Upgrade Option
122170  , p_source_60            IN VARCHAR2
122171 --Invoice Distribution Amount
122172  , p_source_61            IN NUMBER
122173 --Deferred Accounting End Date
122174  , p_source_65            IN DATE
122175 --Deferred Accounting Option
122176  , p_source_66            IN VARCHAR2
122177 --Deferred Accounting Start Date
122178  , p_source_67            IN DATE
122179 --Override Accounted Amount Indicator
122180  , p_source_68            IN VARCHAR2
122181  , p_source_68_meaning    IN VARCHAR2
122182 --Invoice Supplier Identifier
122183  , p_source_69            IN NUMBER
122184 --Invoice Supplier Site Identifier
122185  , p_source_70            IN NUMBER
122186 --Third Party Type
122187  , p_source_71            IN VARCHAR2
122188 --Parent Reversal Identifier
122189  , p_source_72            IN NUMBER
122190 --Invoice Distribution Statistical Amount
122191  , p_source_73            IN NUMBER
122192 --Invoice Distribution Tax Line Identifier
122193  , p_source_74            IN NUMBER
122194 --Invoice Distribution Tax Distribution Identifier from Tax
122195  , p_source_75            IN NUMBER
122196 --Invoice Distribution Summary Tax Line Identifier
122197  , p_source_76            IN NUMBER
122198 --Payables Upgrade Credit Encumbrance Type Identifier
122199  , p_source_77            IN NUMBER
122200 --Payables Upgrade Debit Encumbrance Type Identifier
122201  , p_source_78            IN NUMBER
122202 --Business Flow Accounts Payable Application Identifier
122203  , p_source_79            IN NUMBER
122204 --Business Flow Invoice Distribution Type
122205  , p_source_80            IN VARCHAR2
122206 --Business Flow Invoice Entity Code
122207  , p_source_81            IN VARCHAR2
122208 --Business Flow Invoice Distribution Identifier
122209  , p_source_82            IN NUMBER
122210 --Business Flow Invoice Identifier
122211  , p_source_83            IN NUMBER
122212 --Accrue on Receipt Option
122213  , p_source_84            IN VARCHAR2
122214  , p_source_84_meaning    IN VARCHAR2
122215 --Self-Assessed Tax Flag
122216  , p_source_135            IN VARCHAR2
122217  , p_source_135_meaning    IN VARCHAR2
122218 --Invoice Exchange Date
122219  , p_source_136            IN DATE
122220 --Invoice Exchange Rate
122221  , p_source_137            IN NUMBER
122222 --Invoice Exchange Rate Type
122223  , p_source_138            IN VARCHAR2
122224 )
122225 IS
122226 
122227 l_component_type              VARCHAR2(80);
122228 l_component_code              VARCHAR2(30);
122229 l_component_type_code         VARCHAR2(1);
122230 l_component_appl_id           INTEGER;
122231 l_amb_context_code            VARCHAR2(30);
122232 l_entity_code                 VARCHAR2(30);
122233 l_event_class_code            VARCHAR2(30);
122234 l_ae_header_id                NUMBER;
122235 l_event_type_code             VARCHAR2(30);
122236 l_line_definition_code        VARCHAR2(30);
122237 l_line_definition_owner_code  VARCHAR2(1);
122238 --
122239 -- adr variables
122240 l_segment                     VARCHAR2(30);
122241 l_ccid                        NUMBER;
122242 l_adr_transaction_coa_id      NUMBER;
122243 l_adr_accounting_coa_id       NUMBER;
122244 l_adr_flexfield_segment_code  VARCHAR2(30);
122245 l_adr_flex_value_set_id       NUMBER;
122246 l_adr_value_type_code         VARCHAR2(30);
122247 l_adr_value_combination_id    NUMBER;
122251 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
122248 l_adr_value_segment_code      VARCHAR2(30);
122249 
122250 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
122252 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
122253 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
122254 
122255 -- 4262811 Variables ------------------------------------------------------------------------------------------
122256 l_entered_amt_idx             NUMBER;
122257 l_accted_amt_idx              NUMBER;
122258 l_acc_rev_flag                VARCHAR2(1);
122259 l_accrual_line_num            NUMBER;
122260 l_tmp_amt                     NUMBER;
122261 l_acc_rev_natural_side_code   VARCHAR2(1);
122262 
122263 l_num_entries                 NUMBER;
122264 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
122265 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
122266 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
122267 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
122268 l_recog_line_1                NUMBER;
122269 l_recog_line_2                NUMBER;
122270 
122271 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
122272 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
122273 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
122274 
122275 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
122276 
122277 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
122278 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
122279 
122280 ---------------------------------------------------------------------------------------------------------------
122281 
122282 
122283 --
122284 -- bulk performance
122285 --
122286 l_balance_type_code           VARCHAR2(1);
122287 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
122288 l_log_module                  VARCHAR2(240);
122289 
122290 --
122291 -- Upgrade strategy
122292 --
122293 l_actual_upg_option           VARCHAR2(1);
122294 l_enc_upg_option           VARCHAR2(1);
122295 
122296 --
122297 BEGIN
122298 --
122299 IF g_log_enabled THEN
122300       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_206';
122301 END IF;
122302 --
122303 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
122304 
122305       trace
122306          (p_msg      => 'BEGIN of AcctLineType_206'
122307          ,p_level    => C_LEVEL_PROCEDURE
122308          ,p_module   => l_log_module);
122309 
122310 END IF;
122311 --
122312 l_component_type             := 'AMB_JLT';
122313 l_component_code             := 'AP_NON_RECOV_TAX_INV';
122314 l_component_type_code        := 'S';
122315 l_component_appl_id          :=  200;
122316 l_amb_context_code           := 'DEFAULT';
122317 l_entity_code                := 'AP_INVOICES';
122318 l_event_class_code           := 'INVOICES';
122319 l_event_type_code            := 'INVOICES_ALL';
122320 l_line_definition_owner_code := 'S';
122321 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
122322 --
122323 l_balance_type_code          := 'A';
122324 l_segment                     := NULL;
122325 l_ccid                        := NULL;
122326 l_adr_transaction_coa_id      := NULL;
122327 l_adr_accounting_coa_id       := NULL;
122328 l_adr_flexfield_segment_code  := NULL;
122329 l_adr_flex_value_set_id       := NULL;
122330 l_adr_value_type_code         := NULL;
122331 l_adr_value_combination_id    := NULL;
122332 l_adr_value_segment_code      := NULL;
122333 
122334 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
122335 l_bflow_class_code           := '';    -- 4219869 Business Flow
122336 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
122337 l_budgetary_control_flag     := 'N';
122338 
122339 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
122340 l_bflow_applied_to_amt       := NULL; -- 5132302
122341 l_entered_amt_idx            := NULL;          -- 4262811
122342 l_accted_amt_idx             := NULL;          -- 4262811
122343 l_acc_rev_flag               := NULL;          -- 4262811
122344 l_accrual_line_num           := NULL;          -- 4262811
122345 l_tmp_amt                    := NULL;          -- 4262811
122346 --
122347  
122348 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
122349     l_balance_type_code <> 'B' THEN
122350 IF (NVL(p_source_21,'
122351 ') =  'NONREC_TAX' OR 
122352 NVL(p_source_21,'
122353 ') =  'TERV' OR 
122354 NVL(p_source_21,'
122355 ') =  'TIPV' OR 
122356 NVL(p_source_21,'
122357 ') =  'TRV') AND 
122358 NVL(p_source_84,'
122359 ') <>  'Y' AND 
122360 NVL(p_source_135,'
122361 ') <>  'Y'
122362  THEN 
122363 
122364    --
122365    XLA_AE_LINES_PKG.SetNewLine;
122366 
122367    p_balance_type_code          := l_balance_type_code;
122368    -- set the flag so later we will know whether the gain loss line needs to be created
122369    
122370    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
122371      p_actual_flag :='A';
122372    END IF;
122373 
122374    --
122375    -- bulk performance
122376    --
122377    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
122378                                       p_header_num   => 0); -- 4262811
122379    --
122380    -- set accounting line options
122381    --
122382    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
122383            p_natural_side_code          => 'D'
122384          , p_gain_or_loss_flag          => 'N'
122388          , p_merge_duplicate_code       => 'W'
122385          , p_gl_transfer_mode_code      => 'S'
122386          , p_acct_entry_type_code       => 'A'
122387          , p_switch_side_flag           => 'Y'
122389          );
122390    --
122391    l_acc_rev_natural_side_code := 'C';  -- 4262811
122392    -- 
122393    --
122394    -- set accounting line type info
122395    --
122396    xla_ae_lines_pkg.SetAcctLineType
122397       (p_component_type             => l_component_type
122398       ,p_event_type_code            => l_event_type_code
122399       ,p_line_definition_owner_code => l_line_definition_owner_code
122400       ,p_line_definition_code       => l_line_definition_code
122401       ,p_accounting_line_code       => l_component_code
122402       ,p_accounting_line_type_code  => l_component_type_code
122403       ,p_accounting_line_appl_id    => l_component_appl_id
122404       ,p_amb_context_code           => l_amb_context_code
122405       ,p_entity_code                => l_entity_code
122406       ,p_event_class_code           => l_event_class_code);
122407    --
122408    -- set accounting class
122409    --
122410    xla_ae_lines_pkg.SetAcctClass(
122411            p_accounting_class_code  => 'NRTAX'
122412          , p_ae_header_id           => l_ae_header_id
122413          );
122414 
122415    --
122416    -- set rounding class
122417    --
122418    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
122419                       'NRTAX';
122420 
122421    --
122422    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
122423    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
122424    --
122425    -- bulk performance
122426    --
122427    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
122428 
122429    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
122430       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
122431 
122432    -- 4955764
122433    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
122434       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
122435 
122436    -- 4458381 Public Sector Enh
122437    
122438    --
122439    -- set accounting attributes for the line type
122440    --
122441    l_entered_amt_idx := 24;
122442    l_accted_amt_idx  := 29;
122443    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
122444    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
122445    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
122446    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
122447    l_rec_acct_attrs.array_num_value(2)  := 
122448 xla_ae_sources_pkg.GetSystemSourceNum(
122449    p_source_code           => 'XLA_EVENT_APPL_ID'
122450  , p_source_type_code      => 'Y'
122451  , p_source_application_id =>  602
122452 );
122453    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
122454    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
122458    p_source_code           => 'XLA_ENTITY_CODE'
122455    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
122456    l_rec_acct_attrs.array_char_value(4)  := 
122457 xla_ae_sources_pkg.GetSystemSourceChar(
122459  , p_source_type_code      => 'Y'
122460  , p_source_application_id =>  602
122461 );
122462    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
122463    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
122464    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
122465    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
122466    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
122467    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
122468    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
122469    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
122470    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
122471    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
122472    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
122473    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
122474    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
122475    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
122476    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
122477    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
122478    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
122482    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
122479    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
122480    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
122481    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
122483    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
122484    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
122485    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
122486    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
122487    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
122488    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
122489    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
122490    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
122491    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
122492    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
122493    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
122494    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
122495    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
122496    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
122497    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
122498    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
122499    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
122500    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
122501    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
122502    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
122503    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
122504    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
122505    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
122506    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
122507    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
122508    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
122509    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
122510    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
122511    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
122512    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
122513    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
122514    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
122515    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
122516    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
122517    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
122518    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
122519    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
122520    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
122521    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
122522    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
122523    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
122524    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
122525    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
122526    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
122527    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
122528    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
122529    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
122530    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
122531    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
122532    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
122533    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
122534    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
122535    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
122536    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
122537    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
122538    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
122539    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
122540    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
122541    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
122542 
122543    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
122544    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
122545 
122546    ---------------------------------------------------------------------------------------------------------------
122547    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
122548    ---------------------------------------------------------------------------------------------------------------
122549    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
122550 
122551    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
122552    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
122553 
122554    IF xla_accounting_cache_pkg.GetValueChar
122555          (p_source_code         => 'LEDGER_CATEGORY_CODE'
122556          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
122557    AND l_bflow_method_code = 'PRIOR_ENTRY'
122558 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
122559    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
122560          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
122561        )
122562    THEN
122563          xla_ae_lines_pkg.BflowUpgEntry
122564            (p_business_method_code    => l_bflow_method_code
122565            ,p_business_class_code     => l_bflow_class_code
122566            ,p_balance_type            => l_balance_type_code);
122567    ELSE
122568       NULL;
122572    --
122569 -- No business flow processing for business flow method of NONE.
122570    END IF;
122571 
122573    -- call analytical criteria
122574    --
122575    
122576    --
122577    -- call description
122578    --
122579    
122580 xla_ae_lines_pkg.SetLineDescription(
122581    p_ae_header_id => l_ae_header_id
122582   ,p_description  => Description_2 (
122583      p_application_id         => p_application_id
122584    , p_ae_header_id           => l_ae_header_id 
122585 , p_source_1 => p_source_1
122586    )
122587 );
122588 
122589 
122590    --
122591    -- call ADRs
122592    -- Bug 4922099
122593    --
122594    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
122595         (NVL(l_actual_upg_option, 'N') = 'O') OR
122596         (NVL(l_enc_upg_option, 'N') = 'O')
122597       )
122598    THEN
122599    NULL;
122600    --
122601    --
122602    
122603   l_ccid := AcctDerRule_32(
122604            p_application_id           => p_application_id
122605          , p_ae_header_id             => l_ae_header_id 
122606 , p_source_18 => p_source_18
122607          , x_transaction_coa_id       => l_adr_transaction_coa_id
122608          , x_accounting_coa_id        => l_adr_accounting_coa_id
122609          , x_value_type_code          => l_adr_value_type_code
122610          , p_side                     => 'NA'
122611    );
122612 
122613    xla_ae_lines_pkg.set_ccid(
122614     p_code_combination_id          => l_ccid
122615   , p_value_type_code              => l_adr_value_type_code
122616   , p_transaction_coa_id           => l_adr_transaction_coa_id
122617   , p_accounting_coa_id            => l_adr_accounting_coa_id
122618   , p_adr_code                     => 'AP_INVOICE_DIST'
122619   , p_adr_type_code                => 'S'
122620   , p_component_type               => l_component_type
122621   , p_component_code               => l_component_code
122622   , p_component_type_code          => l_component_type_code
122623   , p_component_appl_id            => l_component_appl_id
122624   , p_amb_context_code             => l_amb_context_code
122625   , p_side                         => 'NA'
122626   );
122627 
122628 
122629    --
122630    --
122631    END IF;
122632    --
122633    -- Bug 4922099
122634    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
122635           (NVL(l_enc_upg_option, 'N') = 'O')
122636         ) AND
122637         (l_bflow_method_code = 'PRIOR_ENTRY')
122638       )
122639    THEN
122640       IF
122641       --
122642       1 = 2
122643       --
122644       THEN
122645       xla_accounting_err_pkg.build_message
122646                                     (p_appli_s_name            => 'XLA'
122647                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
122648                                     ,p_token_1                 => 'LINE_NUMBER'
122649                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
122650                                     ,p_token_2                 => 'LINE_TYPE_NAME'
122651                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
122652                                                                              l_component_type
122653                                                                             ,l_component_code
122654                                                                             ,l_component_type_code
122655                                                                             ,l_component_appl_id
122656                                                                             ,l_amb_context_code
122657                                                                             ,l_entity_code
122658                                                                             ,l_event_class_code
122659                                                                            )
122660                                     ,p_token_3                 => 'OWNER'
122661                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
122662                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
122663                                                                           ,p_lookup_code    => l_component_type_code
122664                                                                          )
122665                                     ,p_token_4                 => 'PRODUCT_NAME'
122666                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
122667                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
122668                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
122669                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
122670                                     ,p_ae_header_id            =>  NULL
122671                                        );
122672 
122673         IF (C_LEVEL_ERROR>= g_log_level) THEN
122674                  trace
122675                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
122676                       ,p_level    => C_LEVEL_ERROR
122677                       ,p_module   => l_log_module);
122678         END IF;
122679       END IF;
122680    END IF;
122681    --
122682    --
122683    ------------------------------------------------------------------------------------------------
122684    -- 4219869 Business Flow
122685    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
122686    -- Prior Entry.  Currently, the following code is always generated.
122690    ------------------------------------------------------------------------------------
122687    ------------------------------------------------------------------------------------------------
122688    XLA_AE_LINES_PKG.ValidateCurrentLine;
122689 
122691    -- 4219869 Business Flow
122692    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
122693    ------------------------------------------------------------------------------------
122694    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
122695 
122699    ----------------------------------------------------------------------------------
122696    ----------------------------------------------------------------------------------
122697    -- 4219869 Business Flow
122698    -- Update journal entry status -- Need to generate this within IF <condition>
122700    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
122701          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
122702          ,p_balance_type_code => l_balance_type_code
122703          );
122704 
122705    -------------------------------------------------------------------------------------------
122706    -- 4262811 - Generate the Accrual Reversal lines
122707    -------------------------------------------------------------------------------------------
122708    BEGIN
122709       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
122710                               (g_array_event(p_event_id).array_value_num('header_index'));
122711       IF l_acc_rev_flag IS NULL THEN
122712          l_acc_rev_flag := 'N';
122713       END IF;
122714    EXCEPTION
122715       WHEN OTHERS THEN
122716          l_acc_rev_flag := 'N';
122717    END;
122718    --
122719    IF (l_acc_rev_flag = 'Y') THEN
122720 
122721        -- 4645092  ------------------------------------------------------------------------------
122722        -- To allow MPA report to determine if it should generate report process
122723        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
122724        ------------------------------------------------------------------------------------------
122725 
122726        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
122727        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
122728    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
122729    -- call ADRs
122730    -- Bug 4922099
122731    --
122732    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
122733         (NVL(l_actual_upg_option, 'N') = 'O') OR
122734         (NVL(l_enc_upg_option, 'N') = 'O')
122735       )
122736    THEN
122737    NULL;
122738    --
122739    --
122740    
122741   l_ccid := AcctDerRule_32(
122742            p_application_id           => p_application_id
122743          , p_ae_header_id             => l_ae_header_id 
122744 , p_source_18 => p_source_18
122745          , x_transaction_coa_id       => l_adr_transaction_coa_id
122746          , x_accounting_coa_id        => l_adr_accounting_coa_id
122747          , x_value_type_code          => l_adr_value_type_code
122748          , p_side                     => 'NA'
122749    );
122750 
122751    xla_ae_lines_pkg.set_ccid(
122752     p_code_combination_id          => l_ccid
122753   , p_value_type_code              => l_adr_value_type_code
122754   , p_transaction_coa_id           => l_adr_transaction_coa_id
122755   , p_accounting_coa_id            => l_adr_accounting_coa_id
122756   , p_adr_code                     => 'AP_INVOICE_DIST'
122757   , p_adr_type_code                => 'S'
122758   , p_component_type               => l_component_type
122759   , p_component_code               => l_component_code
122760   , p_component_type_code          => l_component_type_code
122761   , p_component_appl_id            => l_component_appl_id
122762   , p_amb_context_code             => l_amb_context_code
122763   , p_side                         => 'NA'
122764   );
122765 
122766 
122767    --
122768    --
122769    END IF;
122770 
122771        --
122772        -- Update the line information that should be overwritten
122773        --
122774        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
122775                                          p_header_num   => 1);
122776        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
122777 
122778        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
122779 
122780        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
122781           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
122782        END IF;
122783 
122784       --
122785       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
122786       --
122790           ---------------------------------------------------------------------------------------------------
122787       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
122788           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
122789       ELSE
122791           -- 4262811a Switch Sign
122792           ---------------------------------------------------------------------------------------------------
122793           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
122794           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
122795                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
122796           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
122797                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
122798           -- 5132302
122799           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
122800                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
122801 
122802       END IF;
122803 
122804       -- 4955764
122805       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
122806       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
122807 
122808 
122809       XLA_AE_LINES_PKG.ValidateCurrentLine;
122810       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
122811 
122812       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
122813                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
122814                ,p_balance_type_code => l_balance_type_code);
122815 
122816    END IF;
122817 
122818    -----------------------------------------------------------------------------------------
122819    -- 4262811 Multiperiod Accounting
122820    -----------------------------------------------------------------------------------------
122821      -- No MPA option is assigned.
122822 
122823 
122824 END IF;
122825 END IF;
122826 --
122827 
122828 --
122829 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
122830    trace
122831       (p_msg      => 'END of AcctLineType_206'
122832       ,p_level    => C_LEVEL_PROCEDURE
122833       ,p_module   => l_log_module);
122834 END IF;
122835 --
122836 EXCEPTION
122840        xla_exceptions_pkg.raise_message
122837   WHEN xla_exceptions_pkg.application_exception THEN
122838       RAISE;
122839   WHEN OTHERS THEN
122841            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_206');
122842 END AcctLineType_206;
122843 --
122844 
122845 ---------------------------------------
122846 --
122847 -- PRIVATE FUNCTION
122848 --         AcctLineType_207
122849 --
122850 ---------------------------------------
122851 PROCEDURE AcctLineType_207 (
122852   p_application_id        IN NUMBER
122853  ,p_event_id              IN NUMBER
122854  ,p_calculate_acctd_flag  IN VARCHAR2
122855  ,p_calculate_g_l_flag    IN VARCHAR2
122856  ,p_actual_flag           IN OUT VARCHAR2
122857  ,p_balance_type_code     OUT VARCHAR2
122858  ,p_gain_or_loss_ref      OUT VARCHAR2
122859  
122860 --Invoice Distribution Type
122861  , p_source_21            IN VARCHAR2
122862  , p_source_21_meaning    IN VARCHAR2
122863 --Accounting Reversal Indicator
122864  , p_source_41            IN VARCHAR2
122865 --Distribution Link Type
122866  , p_source_43            IN VARCHAR2
122867 --Allocation to Main Distribution Identifier
122871 --Invoice Distribution Identifier
122868  , p_source_45            IN NUMBER
122869 --Invoice Identifier
122870  , p_source_46            IN NUMBER
122872  , p_source_52            IN NUMBER
122873 --Payables Encumbrance Upgrade Credit Account
122874  , p_source_53            IN NUMBER
122875 --Payables Encumbrance Upgrade Credit Amount
122876  , p_source_54            IN NUMBER
122877 --Invoice Currency Code
122878  , p_source_55            IN VARCHAR2
122879 --Payables Encumbrance Upgrade Credit Base Amount
122880  , p_source_56            IN NUMBER
122881 --Payables Encumbrance Upgrade Debit Account
122882  , p_source_57            IN NUMBER
122883 --Payables Encumbrance Upgrade Debit Amount
122884  , p_source_58            IN NUMBER
122885 --Payables Encumbrance Upgrade Debit Base Amount
122886  , p_source_59            IN NUMBER
122887 --Payables Encumbrance Upgrade Option
122888  , p_source_60            IN VARCHAR2
122889 --Invoice Distribution Amount
122890  , p_source_61            IN NUMBER
122891 --Deferred Accounting End Date
122892  , p_source_65            IN DATE
122893 --Deferred Accounting Option
122894  , p_source_66            IN VARCHAR2
122895 --Deferred Accounting Start Date
122896  , p_source_67            IN DATE
122897 --Override Accounted Amount Indicator
122898  , p_source_68            IN VARCHAR2
122899  , p_source_68_meaning    IN VARCHAR2
122900 --Third Party Type
122901  , p_source_71            IN VARCHAR2
122902 --Parent Reversal Identifier
122903  , p_source_72            IN NUMBER
122904 --Invoice Distribution Statistical Amount
122905  , p_source_73            IN NUMBER
122906 --Invoice Distribution Tax Line Identifier
122907  , p_source_74            IN NUMBER
122908 --Invoice Distribution Tax Distribution Identifier from Tax
122909  , p_source_75            IN NUMBER
122910 --Invoice Distribution Summary Tax Line Identifier
122911  , p_source_76            IN NUMBER
122912 --Payables Upgrade Credit Encumbrance Type Identifier
122913  , p_source_77            IN NUMBER
122914 --Payables Upgrade Debit Encumbrance Type Identifier
122915  , p_source_78            IN NUMBER
122916 --Business Flow Accounts Payable Application Identifier
122917  , p_source_79            IN NUMBER
122918 --Business Flow Invoice Distribution Type
122919  , p_source_80            IN VARCHAR2
122920 --Business Flow Invoice Entity Code
122921  , p_source_81            IN VARCHAR2
122922 --Business Flow Invoice Distribution Identifier
122923  , p_source_82            IN NUMBER
122924 --Business Flow Invoice Identifier
122925  , p_source_83            IN NUMBER
122926 --Accrue on Receipt Option
122927  , p_source_84            IN VARCHAR2
122928  , p_source_84_meaning    IN VARCHAR2
122929 --Purchasing Encumbrance Option
122930  , p_source_86            IN VARCHAR2
122931  , p_source_86_meaning    IN VARCHAR2
122932 --Invoice Encumbered Option
122933  , p_source_87            IN VARCHAR2
122934  , p_source_87_meaning    IN VARCHAR2
122935 --Self-Assessed Tax Flag
122936  , p_source_135            IN VARCHAR2
122937  , p_source_135_meaning    IN VARCHAR2
122938 --Invoice Distribution Encumbrance Amount
122939  , p_source_143            IN NUMBER
122940 --Invoice Distribution Encumbrance Ledger Amount
122941  , p_source_144            IN NUMBER
122942 )
122943 IS
122944 
122945 l_component_type              VARCHAR2(80);
122946 l_component_code              VARCHAR2(30);
122947 l_component_type_code         VARCHAR2(1);
122948 l_component_appl_id           INTEGER;
122949 l_amb_context_code            VARCHAR2(30);
122950 l_entity_code                 VARCHAR2(30);
122951 l_event_class_code            VARCHAR2(30);
122952 l_ae_header_id                NUMBER;
122953 l_event_type_code             VARCHAR2(30);
122954 l_line_definition_code        VARCHAR2(30);
122955 l_line_definition_owner_code  VARCHAR2(1);
122956 --
122957 -- adr variables
122958 l_segment                     VARCHAR2(30);
122959 l_ccid                        NUMBER;
122960 l_adr_transaction_coa_id      NUMBER;
122961 l_adr_accounting_coa_id       NUMBER;
122962 l_adr_flexfield_segment_code  VARCHAR2(30);
122963 l_adr_flex_value_set_id       NUMBER;
122964 l_adr_value_type_code         VARCHAR2(30);
122965 l_adr_value_combination_id    NUMBER;
122966 l_adr_value_segment_code      VARCHAR2(30);
122967 
122968 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
122969 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
122970 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
122971 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
122972 
122973 -- 4262811 Variables ------------------------------------------------------------------------------------------
122974 l_entered_amt_idx             NUMBER;
122975 l_accted_amt_idx              NUMBER;
122976 l_acc_rev_flag                VARCHAR2(1);
122977 l_accrual_line_num            NUMBER;
122978 l_tmp_amt                     NUMBER;
122979 l_acc_rev_natural_side_code   VARCHAR2(1);
122980 
122981 l_num_entries                 NUMBER;
122982 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
122983 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
122984 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
122985 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
122986 l_recog_line_1                NUMBER;
122987 l_recog_line_2                NUMBER;
122988 
122989 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
122990 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
122991 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
122995 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
122992 
122993 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
122994 
122996 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
122997 
122998 ---------------------------------------------------------------------------------------------------------------
122999 
123000 
123001 --
123002 -- bulk performance
123003 --
123004 l_balance_type_code           VARCHAR2(1);
123005 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
123006 l_log_module                  VARCHAR2(240);
123007 
123008 --
123009 -- Upgrade strategy
123010 --
123011 l_actual_upg_option           VARCHAR2(1);
123012 l_enc_upg_option           VARCHAR2(1);
123013 
123014 --
123015 BEGIN
123016 --
123017 IF g_log_enabled THEN
123018       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_207';
123019 END IF;
123020 --
123021 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
123022 
123023       trace
123024          (p_msg      => 'BEGIN of AcctLineType_207'
123025          ,p_level    => C_LEVEL_PROCEDURE
123026          ,p_module   => l_log_module);
123027 
123028 END IF;
123029 --
123030 l_component_type             := 'AMB_JLT';
123031 l_component_code             := 'AP_NON_RECOV_TAX_INV_ENC';
123032 l_component_type_code        := 'S';
123033 l_component_appl_id          :=  200;
123034 l_amb_context_code           := 'DEFAULT';
123035 l_entity_code                := 'AP_INVOICES';
123036 l_event_class_code           := 'INVOICES';
123037 l_event_type_code            := 'INVOICES_ALL';
123038 l_line_definition_owner_code := 'S';
123039 l_line_definition_code       := 'ENC_REV_INVOICES_ALL';
123040 --
123041 l_balance_type_code          := 'E';
123042 l_segment                     := NULL;
123043 l_ccid                        := NULL;
123044 l_adr_transaction_coa_id      := NULL;
123045 l_adr_accounting_coa_id       := NULL;
123046 l_adr_flexfield_segment_code  := NULL;
123047 l_adr_flex_value_set_id       := NULL;
123048 l_adr_value_type_code         := NULL;
123049 l_adr_value_combination_id    := NULL;
123050 l_adr_value_segment_code      := NULL;
123051 
123052 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
123053 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
123054 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
123055 l_budgetary_control_flag     := 'N';
123056 
123057 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
123058 l_bflow_applied_to_amt       := NULL; -- 5132302
123062 l_accrual_line_num           := NULL;          -- 4262811
123059 l_entered_amt_idx            := NULL;          -- 4262811
123060 l_accted_amt_idx             := NULL;          -- 4262811
123061 l_acc_rev_flag               := NULL;          -- 4262811
123063 l_tmp_amt                    := NULL;          -- 4262811
123064 --
123065  
123066 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
123067     l_balance_type_code <> 'B' THEN
123068 IF NVL(p_source_21,'
123069 ') =  'NONREC_TAX' AND 
123070 NVL(p_source_135,'
123071 ') <>  'Y' AND 
123072 NVL(p_source_86,'
123073 ') =  'Y' AND 
123074 NVL(p_source_87,'
123075 ') =  'Y' AND 
123076 NVL(p_source_84,'
123077 ') <>  'Y'
123078  THEN 
123079 
123080    --
123081    XLA_AE_LINES_PKG.SetNewLine;
123082 
123083    p_balance_type_code          := l_balance_type_code;
123084    -- set the flag so later we will know whether the gain loss line needs to be created
123085    
123086    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
123087      p_actual_flag :='A';
123088    END IF;
123089 
123090    --
123091    -- bulk performance
123092    --
123093    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
123094                                       p_header_num   => 0); -- 4262811
123095    --
123096    -- set accounting line options
123097    --
123098    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
123099            p_natural_side_code          => 'C'
123100          , p_gain_or_loss_flag          => 'N'
123101          , p_gl_transfer_mode_code      => 'S'
123102          , p_acct_entry_type_code       => 'E'
123103          , p_switch_side_flag           => 'Y'
123104          , p_merge_duplicate_code       => 'A'
123105          );
123106    --
123107    l_acc_rev_natural_side_code := 'D';  -- 4262811
123108    -- 
123109    --
123110    -- set accounting line type info
123111    --
123112    xla_ae_lines_pkg.SetAcctLineType
123113       (p_component_type             => l_component_type
123114       ,p_event_type_code            => l_event_type_code
123115       ,p_line_definition_owner_code => l_line_definition_owner_code
123116       ,p_line_definition_code       => l_line_definition_code
123117       ,p_accounting_line_code       => l_component_code
123118       ,p_accounting_line_type_code  => l_component_type_code
123119       ,p_accounting_line_appl_id    => l_component_appl_id
123120       ,p_amb_context_code           => l_amb_context_code
123121       ,p_entity_code                => l_entity_code
123122       ,p_event_class_code           => l_event_class_code);
123123    --
123124    -- set accounting class
123125    --
123126    xla_ae_lines_pkg.SetAcctClass(
123127            p_accounting_class_code  => 'NRTAX'
123128          , p_ae_header_id           => l_ae_header_id
123129          );
123130 
123131    --
123132    -- set rounding class
123133    --
123134    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
123135                       'NRTAX';
123136 
123137    --
123138    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
123139    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
123140    --
123141    -- bulk performance
123142    --
123143    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
123144 
123145    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
123146       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
123147 
123148    -- 4955764
123149    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
123150       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
123151 
123152    -- 4458381 Public Sector Enh
123153    
123154    --
123155    -- set accounting attributes for the line type
123156    --
123157    l_entered_amt_idx := 24;
123158    l_accted_amt_idx  := 26;
123162    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
123159    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
123160    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
123161    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
123163    l_rec_acct_attrs.array_num_value(2)  := 
123164 xla_ae_sources_pkg.GetSystemSourceNum(
123165    p_source_code           => 'XLA_EVENT_APPL_ID'
123166  , p_source_type_code      => 'Y'
123167  , p_source_application_id =>  602
123168 );
123172    l_rec_acct_attrs.array_char_value(4)  := 
123169    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
123170    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
123171    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
123173 xla_ae_sources_pkg.GetSystemSourceChar(
123174    p_source_code           => 'XLA_ENTITY_CODE'
123175  , p_source_type_code      => 'Y'
123176  , p_source_application_id =>  602
123177 );
123178    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
123179    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
123180    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
123181    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
123182    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
123183    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
123184    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
123185    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
123186    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
123187    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
123188    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
123189    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
123190    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
123191    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
123192    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
123193    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
123194    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
123195    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
123196    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
123197    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
123198    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
123199    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
123200    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
123201    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
123202    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
123203    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
123204    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
123205    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
123206    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
123207    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
123208    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
123209    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
123210    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
123211    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
123212    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
123213    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
123214    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
123215    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
123216    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
123217    l_rec_acct_attrs.array_num_value(24)  := p_source_143;
123218    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
123219    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
123220    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
123221    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
123222    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
123223    l_rec_acct_attrs.array_date_value(27)  := p_source_65;
123224    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
123225    l_rec_acct_attrs.array_char_value(28)  := p_source_66;
123226    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
123227    l_rec_acct_attrs.array_date_value(29)  := p_source_67;
123228    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
123229    l_rec_acct_attrs.array_char_value(30)  := p_source_68;
123230    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
123231    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
123232    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
123233    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
123234    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
123235    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
123236    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
123237    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
123238    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
123239    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
123240    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
123241    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
123242    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
123243    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
123244    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
123245    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
123246    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
123247    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
123248 
123249    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
123250    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
123251 
123252    ---------------------------------------------------------------------------------------------------------------
123253    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
123254    ---------------------------------------------------------------------------------------------------------------
123255    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
123256 
123260    IF xla_accounting_cache_pkg.GetValueChar
123257    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
123258    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
123259 
123261          (p_source_code         => 'LEDGER_CATEGORY_CODE'
123265    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
123262          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
123263    AND l_bflow_method_code = 'PRIOR_ENTRY'
123264 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
123266          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
123267        )
123268    THEN
123269          xla_ae_lines_pkg.BflowUpgEntry
123270            (p_business_method_code    => l_bflow_method_code
123271            ,p_business_class_code     => l_bflow_class_code
123272            ,p_balance_type            => l_balance_type_code);
123273    ELSE
123274       NULL;
123275 XLA_AE_LINES_PKG.business_flow_validation(
123276                                 p_business_method_code     => l_bflow_method_code
123277                                ,p_business_class_code      => l_bflow_class_code
123278                                ,p_inherit_description_flag => l_inherit_desc_flag);
123279    END IF;
123280 
123281    --
123282    -- call analytical criteria
123283    --
123284    -- Inherited Analytical Criteria for business flow method of Prior Entry.
123285    --
123286    -- call description
123287    --
123288    -- No description or it is inherited.
123289    --
123290    -- call ADRs
123291    -- Bug 4922099
123292    --
123293    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
123294         (NVL(l_actual_upg_option, 'N') = 'O') OR
123295         (NVL(l_enc_upg_option, 'N') = 'O')
123296       )
123297    THEN
123298    NULL;
123299    --
123300    --
123301    
123302    --
123303    --
123304    END IF;
123305    --
123306    -- Bug 4922099
123307    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
123308           (NVL(l_enc_upg_option, 'N') = 'O')
123309         ) AND
123310         (l_bflow_method_code = 'PRIOR_ENTRY')
123311       )
123312    THEN
123313       IF
123314       --
123315       1 = 1
123316       --
123317       THEN
123318       xla_accounting_err_pkg.build_message
123319                                     (p_appli_s_name            => 'XLA'
123320                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
123321                                     ,p_token_1                 => 'LINE_NUMBER'
123322                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
123323                                     ,p_token_2                 => 'LINE_TYPE_NAME'
123324                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
123325                                                                              l_component_type
123326                                                                             ,l_component_code
123327                                                                             ,l_component_type_code
123328                                                                             ,l_component_appl_id
123329                                                                             ,l_amb_context_code
123330                                                                             ,l_entity_code
123331                                                                             ,l_event_class_code
123332                                                                            )
123333                                     ,p_token_3                 => 'OWNER'
123334                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
123335                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
123336                                                                           ,p_lookup_code    => l_component_type_code
123337                                                                          )
123338                                     ,p_token_4                 => 'PRODUCT_NAME'
123339                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
123340                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
123341                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
123342                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
123343                                     ,p_ae_header_id            =>  NULL
123344                                        );
123345 
123346         IF (C_LEVEL_ERROR>= g_log_level) THEN
123347                  trace
123351         END IF;
123348                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
123349                       ,p_level    => C_LEVEL_ERROR
123350                       ,p_module   => l_log_module);
123352       END IF;
123353    END IF;
123354    --
123355    --
123356    ------------------------------------------------------------------------------------------------
123357    -- 4219869 Business Flow
123358    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
123359    -- Prior Entry.  Currently, the following code is always generated.
123360    ------------------------------------------------------------------------------------------------
123361    -- No ValidateCurrentLine for business flow method of Prior Entry
123362 
123363    ------------------------------------------------------------------------------------
123364    -- 4219869 Business Flow
123365    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
123366    ------------------------------------------------------------------------------------
123367    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
123368 
123369    ----------------------------------------------------------------------------------
123370    -- 4219869 Business Flow
123371    -- Update journal entry status -- Need to generate this within IF <condition>
123372    ----------------------------------------------------------------------------------
123373    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
123374          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
123375          ,p_balance_type_code => l_balance_type_code
123376          );
123377 
123378    -------------------------------------------------------------------------------------------
123379    -- 4262811 - Generate the Accrual Reversal lines
123380    -------------------------------------------------------------------------------------------
123381    BEGIN
123382       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
123383                               (g_array_event(p_event_id).array_value_num('header_index'));
123384       IF l_acc_rev_flag IS NULL THEN
123385          l_acc_rev_flag := 'N';
123386       END IF;
123387    EXCEPTION
123388       WHEN OTHERS THEN
123389          l_acc_rev_flag := 'N';
123390    END;
123391    --
123392    IF (l_acc_rev_flag = 'Y') THEN
123393 
123394        -- 4645092  ------------------------------------------------------------------------------
123395        -- To allow MPA report to determine if it should generate report process
123396        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
123397        ------------------------------------------------------------------------------------------
123398 
123399        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
123400        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
123401    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
123402    -- call ADRs
123403    -- Bug 4922099
123404    --
123405    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
123406         (NVL(l_actual_upg_option, 'N') = 'O') OR
123407         (NVL(l_enc_upg_option, 'N') = 'O')
123408       )
123409    THEN
123410    NULL;
123411    --
123412    --
123413    
123414    --
123415    --
123416    END IF;
123417 
123418        --
123419        -- Update the line information that should be overwritten
123420        --
123421        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
123422                                          p_header_num   => 1);
123423        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
123424 
123425        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
123426 
123427        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
123428           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
123429        END IF;
123430 
123431       --
123432       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
123433       --
123434       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
123435           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
123436       ELSE
123437           ---------------------------------------------------------------------------------------------------
123438           -- 4262811a Switch Sign
123439           ---------------------------------------------------------------------------------------------------
123440           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
123441           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
123442                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123443           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
123444                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123445           -- 5132302
123446           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
123447                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123448 
123449       END IF;
123450 
123451       -- 4955764
123452       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
123453       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
123454 
123455 
123456       XLA_AE_LINES_PKG.ValidateCurrentLine;
123457       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
123458 
123459       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
123463    END IF;
123460                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
123461                ,p_balance_type_code => l_balance_type_code);
123462 
123464 
123465    -----------------------------------------------------------------------------------------
123466    -- 4262811 Multiperiod Accounting
123467    -----------------------------------------------------------------------------------------
123468      -- No MPA option is assigned.
123469 
123470 
123471 END IF;
123472 END IF;
123473 --
123474 
123475 --
123476 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
123477    trace
123478       (p_msg      => 'END of AcctLineType_207'
123479       ,p_level    => C_LEVEL_PROCEDURE
123480       ,p_module   => l_log_module);
123481 END IF;
123482 --
123483 EXCEPTION
123484   WHEN xla_exceptions_pkg.application_exception THEN
123485       RAISE;
123486   WHEN OTHERS THEN
123487        xla_exceptions_pkg.raise_message
123488            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_207');
123489 END AcctLineType_207;
123490 --
123491 
123492 ---------------------------------------
123493 --
123494 -- PRIVATE FUNCTION
123495 --         AcctLineType_208
123496 --
123497 ---------------------------------------
123498 PROCEDURE AcctLineType_208 (
123499   p_application_id        IN NUMBER
123500  ,p_event_id              IN NUMBER
123501  ,p_calculate_acctd_flag  IN VARCHAR2
123502  ,p_calculate_g_l_flag    IN VARCHAR2
123503  ,p_actual_flag           IN OUT VARCHAR2
123504  ,p_balance_type_code     OUT VARCHAR2
123505  ,p_gain_or_loss_ref      OUT VARCHAR2
123506  
123507 --Invoice Distribution Type
123508  , p_source_21            IN VARCHAR2
123509  , p_source_21_meaning    IN VARCHAR2
123510 --Accounting Reversal Indicator
123511  , p_source_41            IN VARCHAR2
123512 --Distribution Link Type
123513  , p_source_43            IN VARCHAR2
123514 --Allocation to Main Distribution Identifier
123515  , p_source_45            IN NUMBER
123516 --Invoice Identifier
123517  , p_source_46            IN NUMBER
123518 --Invoice Distribution Identifier
123519  , p_source_52            IN NUMBER
123520 --Payables Encumbrance Upgrade Credit Account
123521  , p_source_53            IN NUMBER
123522 --Payables Encumbrance Upgrade Credit Amount
123523  , p_source_54            IN NUMBER
123524 --Invoice Currency Code
123525  , p_source_55            IN VARCHAR2
123526 --Payables Encumbrance Upgrade Credit Base Amount
123527  , p_source_56            IN NUMBER
123528 --Payables Encumbrance Upgrade Debit Account
123529  , p_source_57            IN NUMBER
123530 --Payables Encumbrance Upgrade Debit Amount
123531  , p_source_58            IN NUMBER
123532 --Payables Encumbrance Upgrade Debit Base Amount
123533  , p_source_59            IN NUMBER
123534 --Payables Encumbrance Upgrade Option
123535  , p_source_60            IN VARCHAR2
123536 --Deferred Accounting End Date
123537  , p_source_65            IN DATE
123538 --Deferred Accounting Option
123539  , p_source_66            IN VARCHAR2
123540 --Deferred Accounting Start Date
123541  , p_source_67            IN DATE
123542 --Override Accounted Amount Indicator
123543  , p_source_68            IN VARCHAR2
123544  , p_source_68_meaning    IN VARCHAR2
123545 --Third Party Type
123546  , p_source_71            IN VARCHAR2
123547 --Parent Reversal Identifier
123548  , p_source_72            IN NUMBER
123549 --Invoice Distribution Statistical Amount
123550  , p_source_73            IN NUMBER
123551 --Invoice Distribution Tax Line Identifier
123552  , p_source_74            IN NUMBER
123553 --Invoice Distribution Tax Distribution Identifier from Tax
123554  , p_source_75            IN NUMBER
123555 --Invoice Distribution Summary Tax Line Identifier
123556  , p_source_76            IN NUMBER
123557 --Payables Upgrade Credit Encumbrance Type Identifier
123558  , p_source_77            IN NUMBER
123559 --Payables Upgrade Debit Encumbrance Type Identifier
123560  , p_source_78            IN NUMBER
123561 --Business Flow Accounts Payable Application Identifier
123562  , p_source_79            IN NUMBER
123563 --Business Flow Invoice Distribution Type
123564  , p_source_80            IN VARCHAR2
123565 --Business Flow Invoice Entity Code
123566  , p_source_81            IN VARCHAR2
123567 --Business Flow Invoice Distribution Identifier
123568  , p_source_82            IN NUMBER
123569 --Business Flow Invoice Identifier
123570  , p_source_83            IN NUMBER
123571 --Accrue on Receipt Option
123572  , p_source_84            IN VARCHAR2
123573  , p_source_84_meaning    IN VARCHAR2
123574 --Purchasing Encumbrance Option
123575  , p_source_86            IN VARCHAR2
123576  , p_source_86_meaning    IN VARCHAR2
123577 --Invoice Encumbered Option
123578  , p_source_87            IN VARCHAR2
123579  , p_source_87_meaning    IN VARCHAR2
123580 --Self-Assessed Tax Flag
123581  , p_source_135            IN VARCHAR2
123582  , p_source_135_meaning    IN VARCHAR2
123583 --Invoice Distribution Encumbrance Amount
123584  , p_source_143            IN NUMBER
123585 --Invoice Distribution Encumbrance Ledger Amount
123586  , p_source_144            IN NUMBER
123587 )
123588 IS
123589 
123590 l_component_type              VARCHAR2(80);
123591 l_component_code              VARCHAR2(30);
123592 l_component_type_code         VARCHAR2(1);
123593 l_component_appl_id           INTEGER;
123594 l_amb_context_code            VARCHAR2(30);
123595 l_entity_code                 VARCHAR2(30);
123596 l_event_class_code            VARCHAR2(30);
123597 l_ae_header_id                NUMBER;
123598 l_event_type_code             VARCHAR2(30);
123599 l_line_definition_code        VARCHAR2(30);
123600 l_line_definition_owner_code  VARCHAR2(1);
123601 --
123605 l_adr_transaction_coa_id      NUMBER;
123602 -- adr variables
123603 l_segment                     VARCHAR2(30);
123604 l_ccid                        NUMBER;
123606 l_adr_accounting_coa_id       NUMBER;
123607 l_adr_flexfield_segment_code  VARCHAR2(30);
123608 l_adr_flex_value_set_id       NUMBER;
123609 l_adr_value_type_code         VARCHAR2(30);
123610 l_adr_value_combination_id    NUMBER;
123611 l_adr_value_segment_code      VARCHAR2(30);
123612 
123613 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
123614 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
123615 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
123616 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
123617 
123618 -- 4262811 Variables ------------------------------------------------------------------------------------------
123619 l_entered_amt_idx             NUMBER;
123620 l_accted_amt_idx              NUMBER;
123621 l_acc_rev_flag                VARCHAR2(1);
123622 l_accrual_line_num            NUMBER;
123623 l_tmp_amt                     NUMBER;
123624 l_acc_rev_natural_side_code   VARCHAR2(1);
123625 
123626 l_num_entries                 NUMBER;
123627 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
123628 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
123629 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
123630 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
123631 l_recog_line_1                NUMBER;
123632 l_recog_line_2                NUMBER;
123633 
123634 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
123635 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
123636 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
123637 
123638 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
123639 
123640 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
123641 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
123642 
123643 ---------------------------------------------------------------------------------------------------------------
123644 
123645 
123646 --
123647 -- bulk performance
123648 --
123649 l_balance_type_code           VARCHAR2(1);
123650 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
123651 l_log_module                  VARCHAR2(240);
123652 
123653 --
123654 -- Upgrade strategy
123655 --
123656 l_actual_upg_option           VARCHAR2(1);
123657 l_enc_upg_option           VARCHAR2(1);
123658 
123659 --
123660 BEGIN
123661 --
123662 IF g_log_enabled THEN
123663       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_208';
123664 END IF;
123665 --
123666 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
123667 
123668       trace
123669          (p_msg      => 'BEGIN of AcctLineType_208'
123670          ,p_level    => C_LEVEL_PROCEDURE
123671          ,p_module   => l_log_module);
123672 
123673 END IF;
123674 --
123675 l_component_type             := 'AMB_JLT';
123676 l_component_code             := 'AP_NON_RECOV_TAX_PP_ENC';
123677 l_component_type_code        := 'S';
123678 l_component_appl_id          :=  200;
123679 l_amb_context_code           := 'DEFAULT';
123680 l_entity_code                := 'AP_INVOICES';
123681 l_event_class_code           := 'PREPAYMENTS';
123682 l_event_type_code            := 'PREPAYMENTS_ALL';
123683 l_line_definition_owner_code := 'S';
123684 l_line_definition_code       := 'ENC_REV_PREPAY_ALL';
123685 --
123686 l_balance_type_code          := 'E';
123687 l_segment                     := NULL;
123688 l_ccid                        := NULL;
123689 l_adr_transaction_coa_id      := NULL;
123690 l_adr_accounting_coa_id       := NULL;
123691 l_adr_flexfield_segment_code  := NULL;
123692 l_adr_flex_value_set_id       := NULL;
123693 l_adr_value_type_code         := NULL;
123694 l_adr_value_combination_id    := NULL;
123695 l_adr_value_segment_code      := NULL;
123696 
123697 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
123698 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
123699 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
123700 l_budgetary_control_flag     := 'N';
123701 
123702 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
123703 l_bflow_applied_to_amt       := NULL; -- 5132302
123704 l_entered_amt_idx            := NULL;          -- 4262811
123705 l_accted_amt_idx             := NULL;          -- 4262811
123706 l_acc_rev_flag               := NULL;          -- 4262811
123707 l_accrual_line_num           := NULL;          -- 4262811
123708 l_tmp_amt                    := NULL;          -- 4262811
123709 --
123710  
123711 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
123712     l_balance_type_code <> 'B' THEN
123713 IF NVL(p_source_21,'
123714 ') =  'NONREC_TAX' AND 
123715 NVL(p_source_135,'
123716 ') <>  'Y' AND 
123717 NVL(p_source_86,'
123718 ') =  'Y' AND 
123719 NVL(p_source_87,'
123720 ') =  'Y' AND 
123721 NVL(p_source_84,'
123722 ') <>  'Y'
123723  THEN 
123724 
123725    --
123726    XLA_AE_LINES_PKG.SetNewLine;
123727 
123728    p_balance_type_code          := l_balance_type_code;
123729    -- set the flag so later we will know whether the gain loss line needs to be created
123730    
123731    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
123732      p_actual_flag :='A';
123733    END IF;
123734 
123735    --
123736    -- bulk performance
123737    --
123738    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
123742    --
123739                                       p_header_num   => 0); -- 4262811
123740    --
123741    -- set accounting line options
123743    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
123744            p_natural_side_code          => 'C'
123745          , p_gain_or_loss_flag          => 'N'
123746          , p_gl_transfer_mode_code      => 'S'
123747          , p_acct_entry_type_code       => 'E'
123748          , p_switch_side_flag           => 'Y'
123749          , p_merge_duplicate_code       => 'A'
123750          );
123751    --
123752    l_acc_rev_natural_side_code := 'D';  -- 4262811
123753    -- 
123754    --
123755    -- set accounting line type info
123756    --
123757    xla_ae_lines_pkg.SetAcctLineType
123758       (p_component_type             => l_component_type
123759       ,p_event_type_code            => l_event_type_code
123760       ,p_line_definition_owner_code => l_line_definition_owner_code
123761       ,p_line_definition_code       => l_line_definition_code
123762       ,p_accounting_line_code       => l_component_code
123763       ,p_accounting_line_type_code  => l_component_type_code
123764       ,p_accounting_line_appl_id    => l_component_appl_id
123765       ,p_amb_context_code           => l_amb_context_code
123766       ,p_entity_code                => l_entity_code
123767       ,p_event_class_code           => l_event_class_code);
123768    --
123769    -- set accounting class
123770    --
123771    xla_ae_lines_pkg.SetAcctClass(
123772            p_accounting_class_code  => 'NRTAX'
123773          , p_ae_header_id           => l_ae_header_id
123774          );
123775 
123776    --
123777    -- set rounding class
123778    --
123779    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
123780                       'NRTAX';
123781 
123782    --
123783    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
123784    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
123785    --
123786    -- bulk performance
123787    --
123788    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
123789 
123790    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
123791       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
123792 
123793    -- 4955764
123794    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
123795       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
123796 
123797    -- 4458381 Public Sector Enh
123798    
123799    --
123800    -- set accounting attributes for the line type
123801    --
123802    l_entered_amt_idx := 23;
123803    l_accted_amt_idx  := 25;
123804    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
123805    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
123806    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
123807    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
123808    l_rec_acct_attrs.array_num_value(2)  := 
123809 xla_ae_sources_pkg.GetSystemSourceNum(
123810    p_source_code           => 'XLA_EVENT_APPL_ID'
123811  , p_source_type_code      => 'Y'
123812  , p_source_application_id =>  602
123813 );
123814    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
123815    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
123816    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
123817    l_rec_acct_attrs.array_char_value(4)  := 
123818 xla_ae_sources_pkg.GetSystemSourceChar(
123819    p_source_code           => 'XLA_ENTITY_CODE'
123820  , p_source_type_code      => 'Y'
123821  , p_source_application_id =>  602
123822 );
123823    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
123824    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
123825    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
123826    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
123827    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
123828    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
123829    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
123830    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
123831    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
123832    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
123833    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
123834    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
123835    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
123836    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
123837    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
123838    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
123839    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
123840    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
123841    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
123842    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
123843    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
123847    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
123844    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
123845    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
123846    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
123848    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
123849    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
123850    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
123851    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
123852    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
123853    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
123854    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
123855    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
123856    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
123857    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
123858    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
123859    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
123860    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
123861    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
123862    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
123863    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
123864    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
123865    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
123866    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
123867    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
123868    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
123869    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
123870    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
123871    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
123872    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
123873    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
123874    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
123875    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
123876    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
123877    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
123878    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
123879    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
123880    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
123881    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
123882    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
123883    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
123884    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
123885    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
123886    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
123887    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
123888    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
123889    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
123890    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
123891 
123892    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
123893    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
123894 
123895    ---------------------------------------------------------------------------------------------------------------
123896    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
123897    ---------------------------------------------------------------------------------------------------------------
123898    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
123899 
123900    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
123901    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
123902 
123903    IF xla_accounting_cache_pkg.GetValueChar
123904          (p_source_code         => 'LEDGER_CATEGORY_CODE'
123905          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
123906    AND l_bflow_method_code = 'PRIOR_ENTRY'
123907 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
123908    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
123909          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
123910        )
123911    THEN
123912          xla_ae_lines_pkg.BflowUpgEntry
123913            (p_business_method_code    => l_bflow_method_code
123914            ,p_business_class_code     => l_bflow_class_code
123915            ,p_balance_type            => l_balance_type_code);
123916    ELSE
123917       NULL;
123918 XLA_AE_LINES_PKG.business_flow_validation(
123919                                 p_business_method_code     => l_bflow_method_code
123920                                ,p_business_class_code      => l_bflow_class_code
123921                                ,p_inherit_description_flag => l_inherit_desc_flag);
123922    END IF;
123923 
123927    -- Inherited Analytical Criteria for business flow method of Prior Entry.
123924    --
123925    -- call analytical criteria
123926    --
123928    --
123929    -- call description
123930    --
123931    -- No description or it is inherited.
123932    --
123933    -- call ADRs
123934    -- Bug 4922099
123935    --
123936    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
123937         (NVL(l_actual_upg_option, 'N') = 'O') OR
123938         (NVL(l_enc_upg_option, 'N') = 'O')
123939       )
123940    THEN
123941    NULL;
123942    --
123943    --
123944    
123945    --
123946    --
123947    END IF;
123948    --
123949    -- Bug 4922099
123950    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
123951           (NVL(l_enc_upg_option, 'N') = 'O')
123952         ) AND
123953         (l_bflow_method_code = 'PRIOR_ENTRY')
123954       )
123955    THEN
123956       IF
123957       --
123958       1 = 1
123959       --
123960       THEN
123961       xla_accounting_err_pkg.build_message
123962                                     (p_appli_s_name            => 'XLA'
123963                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
123964                                     ,p_token_1                 => 'LINE_NUMBER'
123965                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
123966                                     ,p_token_2                 => 'LINE_TYPE_NAME'
123967                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
123968                                                                              l_component_type
123972                                                                             ,l_amb_context_code
123969                                                                             ,l_component_code
123970                                                                             ,l_component_type_code
123971                                                                             ,l_component_appl_id
123973                                                                             ,l_entity_code
123974                                                                             ,l_event_class_code
123975                                                                            )
123976                                     ,p_token_3                 => 'OWNER'
123977                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
123978                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
123979                                                                           ,p_lookup_code    => l_component_type_code
123980                                                                          )
123981                                     ,p_token_4                 => 'PRODUCT_NAME'
123982                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
123983                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
123984                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
123985                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
123986                                     ,p_ae_header_id            =>  NULL
123987                                        );
123988 
123989         IF (C_LEVEL_ERROR>= g_log_level) THEN
123990                  trace
123991                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
123992                       ,p_level    => C_LEVEL_ERROR
123993                       ,p_module   => l_log_module);
123994         END IF;
123995       END IF;
123996    END IF;
123997    --
123998    --
123999    ------------------------------------------------------------------------------------------------
124000    -- 4219869 Business Flow
124001    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
124002    -- Prior Entry.  Currently, the following code is always generated.
124003    ------------------------------------------------------------------------------------------------
124004    -- No ValidateCurrentLine for business flow method of Prior Entry
124005 
124006    ------------------------------------------------------------------------------------
124007    -- 4219869 Business Flow
124008    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
124012    ----------------------------------------------------------------------------------
124009    ------------------------------------------------------------------------------------
124010    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
124011 
124013    -- 4219869 Business Flow
124014    -- Update journal entry status -- Need to generate this within IF <condition>
124015    ----------------------------------------------------------------------------------
124016    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
124017          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
124018          ,p_balance_type_code => l_balance_type_code
124019          );
124020 
124021    -------------------------------------------------------------------------------------------
124022    -- 4262811 - Generate the Accrual Reversal lines
124023    -------------------------------------------------------------------------------------------
124024    BEGIN
124025       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
124026                               (g_array_event(p_event_id).array_value_num('header_index'));
124027       IF l_acc_rev_flag IS NULL THEN
124028          l_acc_rev_flag := 'N';
124029       END IF;
124030    EXCEPTION
124031       WHEN OTHERS THEN
124032          l_acc_rev_flag := 'N';
124033    END;
124034    --
124035    IF (l_acc_rev_flag = 'Y') THEN
124036 
124037        -- 4645092  ------------------------------------------------------------------------------
124038        -- To allow MPA report to determine if it should generate report process
124039        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
124040        ------------------------------------------------------------------------------------------
124041 
124042        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
124043        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
124044    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
124045    -- call ADRs
124046    -- Bug 4922099
124047    --
124048    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
124049         (NVL(l_actual_upg_option, 'N') = 'O') OR
124050         (NVL(l_enc_upg_option, 'N') = 'O')
124051       )
124052    THEN
124053    NULL;
124054    --
124055    --
124056    
124057    --
124058    --
124059    END IF;
124060 
124061        --
124062        -- Update the line information that should be overwritten
124063        --
124064        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
124065                                          p_header_num   => 1);
124066        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
124067 
124068        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
124069 
124070        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
124071           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
124072        END IF;
124073 
124074       --
124075       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
124076       --
124077       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
124078           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
124079       ELSE
124080           ---------------------------------------------------------------------------------------------------
124081           -- 4262811a Switch Sign
124082           ---------------------------------------------------------------------------------------------------
124083           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
124084           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
124085                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124086           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
124087                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124088           -- 5132302
124089           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
124090                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124091 
124092       END IF;
124093 
124094       -- 4955764
124095       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
124096       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
124097 
124098 
124099       XLA_AE_LINES_PKG.ValidateCurrentLine;
124100       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
124101 
124102       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
124103                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
124104                ,p_balance_type_code => l_balance_type_code);
124105 
124106    END IF;
124107 
124108    -----------------------------------------------------------------------------------------
124109    -- 4262811 Multiperiod Accounting
124110    -----------------------------------------------------------------------------------------
124111      -- No MPA option is assigned.
124112 
124113 
124114 END IF;
124115 END IF;
124116 --
124117 
124118 --
124119 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124120    trace
124121       (p_msg      => 'END of AcctLineType_208'
124122       ,p_level    => C_LEVEL_PROCEDURE
124123       ,p_module   => l_log_module);
124124 END IF;
124125 --
124126 EXCEPTION
124127   WHEN xla_exceptions_pkg.application_exception THEN
124128       RAISE;
124129   WHEN OTHERS THEN
124130        xla_exceptions_pkg.raise_message
124134 
124131            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_208');
124132 END AcctLineType_208;
124133 --
124135 ---------------------------------------
124136 --
124137 -- PRIVATE FUNCTION
124138 --         AcctLineType_209
124139 --
124140 ---------------------------------------
124141 PROCEDURE AcctLineType_209 (
124142   p_application_id        IN NUMBER
124143  ,p_event_id              IN NUMBER
124144  ,p_calculate_acctd_flag  IN VARCHAR2
124145  ,p_calculate_g_l_flag    IN VARCHAR2
124146  ,p_actual_flag           IN OUT VARCHAR2
124147  ,p_balance_type_code     OUT VARCHAR2
124148  ,p_gain_or_loss_ref      OUT VARCHAR2
124149  
124150 --Invoice Distribution Description
124151  , p_source_1            IN VARCHAR2
124152 --Invoice Distribution Ledger Amount
124153  , p_source_9            IN NUMBER
124154 --Invoice Distribution Account
124155  , p_source_18            IN NUMBER
124156 --Invoice Distribution Type
124157  , p_source_21            IN VARCHAR2
124158  , p_source_21_meaning    IN VARCHAR2
124159 --Accounting Reversal Indicator
124160  , p_source_41            IN VARCHAR2
124161 --Distribution Link Type
124162  , p_source_43            IN VARCHAR2
124163 --Allocation to Main Distribution Identifier
124164  , p_source_45            IN NUMBER
124165 --Invoice Identifier
124166  , p_source_46            IN NUMBER
124167 --Invoice Distribution Identifier
124168  , p_source_52            IN NUMBER
124169 --Payables Encumbrance Upgrade Credit Account
124170  , p_source_53            IN NUMBER
124171 --Payables Encumbrance Upgrade Credit Amount
124172  , p_source_54            IN NUMBER
124173 --Invoice Currency Code
124174  , p_source_55            IN VARCHAR2
124175 --Payables Encumbrance Upgrade Credit Base Amount
124176  , p_source_56            IN NUMBER
124177 --Payables Encumbrance Upgrade Debit Account
124178  , p_source_57            IN NUMBER
124179 --Payables Encumbrance Upgrade Debit Amount
124180  , p_source_58            IN NUMBER
124181 --Payables Encumbrance Upgrade Debit Base Amount
124182  , p_source_59            IN NUMBER
124183 --Payables Encumbrance Upgrade Option
124184  , p_source_60            IN VARCHAR2
124185 --Invoice Distribution Amount
124186  , p_source_61            IN NUMBER
124187 --Deferred Accounting End Date
124188  , p_source_65            IN DATE
124189 --Deferred Accounting Option
124190  , p_source_66            IN VARCHAR2
124191 --Deferred Accounting Start Date
124192  , p_source_67            IN DATE
124193 --Override Accounted Amount Indicator
124194  , p_source_68            IN VARCHAR2
124195  , p_source_68_meaning    IN VARCHAR2
124196 --Invoice Supplier Identifier
124197  , p_source_69            IN NUMBER
124198 --Invoice Supplier Site Identifier
124199  , p_source_70            IN NUMBER
124200 --Third Party Type
124201  , p_source_71            IN VARCHAR2
124202 --Parent Reversal Identifier
124203  , p_source_72            IN NUMBER
124204 --Invoice Distribution Statistical Amount
124205  , p_source_73            IN NUMBER
124206 --Invoice Distribution Tax Line Identifier
124207  , p_source_74            IN NUMBER
124208 --Invoice Distribution Tax Distribution Identifier from Tax
124209  , p_source_75            IN NUMBER
124210 --Invoice Distribution Summary Tax Line Identifier
124211  , p_source_76            IN NUMBER
124212 --Payables Upgrade Credit Encumbrance Type Identifier
124213  , p_source_77            IN NUMBER
124214 --Payables Upgrade Debit Encumbrance Type Identifier
124215  , p_source_78            IN NUMBER
124216 --Business Flow Accounts Payable Application Identifier
124217  , p_source_79            IN NUMBER
124218 --Business Flow Invoice Distribution Type
124219  , p_source_80            IN VARCHAR2
124220 --Business Flow Invoice Entity Code
124221  , p_source_81            IN VARCHAR2
124222 --Business Flow Invoice Distribution Identifier
124223  , p_source_82            IN NUMBER
124224 --Business Flow Invoice Identifier
124225  , p_source_83            IN NUMBER
124226 --Accrue on Receipt Option
124227  , p_source_84            IN VARCHAR2
124228  , p_source_84_meaning    IN VARCHAR2
124229 --Self-Assessed Tax Flag
124230  , p_source_135            IN VARCHAR2
124231  , p_source_135_meaning    IN VARCHAR2
124232 --Invoice Exchange Date
124233  , p_source_136            IN DATE
124234 --Invoice Exchange Rate
124235  , p_source_137            IN NUMBER
124236 --Invoice Exchange Rate Type
124237  , p_source_138            IN VARCHAR2
124238 )
124239 IS
124240 
124241 l_component_type              VARCHAR2(80);
124242 l_component_code              VARCHAR2(30);
124243 l_component_type_code         VARCHAR2(1);
124244 l_component_appl_id           INTEGER;
124245 l_amb_context_code            VARCHAR2(30);
124246 l_entity_code                 VARCHAR2(30);
124247 l_event_class_code            VARCHAR2(30);
124253 -- adr variables
124248 l_ae_header_id                NUMBER;
124249 l_event_type_code             VARCHAR2(30);
124250 l_line_definition_code        VARCHAR2(30);
124251 l_line_definition_owner_code  VARCHAR2(1);
124252 --
124254 l_segment                     VARCHAR2(30);
124255 l_ccid                        NUMBER;
124256 l_adr_transaction_coa_id      NUMBER;
124257 l_adr_accounting_coa_id       NUMBER;
124258 l_adr_flexfield_segment_code  VARCHAR2(30);
124259 l_adr_flex_value_set_id       NUMBER;
124260 l_adr_value_type_code         VARCHAR2(30);
124261 l_adr_value_combination_id    NUMBER;
124262 l_adr_value_segment_code      VARCHAR2(30);
124263 
124264 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
124265 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
124266 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
124267 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
124268 
124269 -- 4262811 Variables ------------------------------------------------------------------------------------------
124270 l_entered_amt_idx             NUMBER;
124271 l_accted_amt_idx              NUMBER;
124272 l_acc_rev_flag                VARCHAR2(1);
124273 l_accrual_line_num            NUMBER;
124274 l_tmp_amt                     NUMBER;
124275 l_acc_rev_natural_side_code   VARCHAR2(1);
124276 
124277 l_num_entries                 NUMBER;
124278 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
124279 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
124280 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
124281 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
124282 l_recog_line_1                NUMBER;
124283 l_recog_line_2                NUMBER;
124284 
124285 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
124286 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
124287 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
124288 
124289 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
124290 
124291 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
124292 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
124293 
124294 ---------------------------------------------------------------------------------------------------------------
124295 
124296 
124297 --
124298 -- bulk performance
124299 --
124300 l_balance_type_code           VARCHAR2(1);
124301 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
124302 l_log_module                  VARCHAR2(240);
124303 
124304 --
124305 -- Upgrade strategy
124306 --
124307 l_actual_upg_option           VARCHAR2(1);
124308 l_enc_upg_option           VARCHAR2(1);
124309 
124310 --
124311 BEGIN
124312 --
124313 IF g_log_enabled THEN
124314       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_209';
124315 END IF;
124316 --
124317 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124318 
124319       trace
124320          (p_msg      => 'BEGIN of AcctLineType_209'
124321          ,p_level    => C_LEVEL_PROCEDURE
124322          ,p_module   => l_log_module);
124323 
124324 END IF;
124325 --
124326 l_component_type             := 'AMB_JLT';
124327 l_component_code             := 'AP_NON_RECOV_TAX_PREPAY';
124328 l_component_type_code        := 'S';
124329 l_component_appl_id          :=  200;
124330 l_amb_context_code           := 'DEFAULT';
124331 l_entity_code                := 'AP_INVOICES';
124332 l_event_class_code           := 'PREPAYMENTS';
124333 l_event_type_code            := 'PREPAYMENTS_ALL';
124334 l_line_definition_owner_code := 'S';
124335 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
124336 --
124337 l_balance_type_code          := 'A';
124338 l_segment                     := NULL;
124339 l_ccid                        := NULL;
124340 l_adr_transaction_coa_id      := NULL;
124341 l_adr_accounting_coa_id       := NULL;
124342 l_adr_flexfield_segment_code  := NULL;
124343 l_adr_flex_value_set_id       := NULL;
124344 l_adr_value_type_code         := NULL;
124345 l_adr_value_combination_id    := NULL;
124346 l_adr_value_segment_code      := NULL;
124347 
124348 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
124349 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
124350 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
124351 l_budgetary_control_flag     := 'N';
124352 
124353 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
124354 l_bflow_applied_to_amt       := NULL; -- 5132302
124355 l_entered_amt_idx            := NULL;          -- 4262811
124356 l_accted_amt_idx             := NULL;          -- 4262811
124357 l_acc_rev_flag               := NULL;          -- 4262811
124358 l_accrual_line_num           := NULL;          -- 4262811
124359 l_tmp_amt                    := NULL;          -- 4262811
124360 --
124361  
124362 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
124363     l_balance_type_code <> 'B' THEN
124364 IF (NVL(p_source_21,'
124365 ') =  'NONREC_TAX' OR 
124366 NVL(p_source_21,'
124367 ') =  'TERV' OR 
124368 NVL(p_source_21,'
124369 ') =  'TIPV' OR 
124370 NVL(p_source_21,'
124371 ') =  'TRV') AND 
124372 NVL(p_source_84,'
124373 ') <>  'Y' AND 
124374 NVL(p_source_135,'
124375 ') <>  'Y'
124376  THEN 
124377 
124378    --
124379    XLA_AE_LINES_PKG.SetNewLine;
124380 
124381    p_balance_type_code          := l_balance_type_code;
124385      p_actual_flag :='A';
124382    -- set the flag so later we will know whether the gain loss line needs to be created
124383    
124384    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
124386    END IF;
124387 
124388    --
124389    -- bulk performance
124390    --
124391    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
124392                                       p_header_num   => 0); -- 4262811
124393    --
124394    -- set accounting line options
124395    --
124396    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
124397            p_natural_side_code          => 'D'
124398          , p_gain_or_loss_flag          => 'N'
124399          , p_gl_transfer_mode_code      => 'S'
124400          , p_acct_entry_type_code       => 'A'
124401          , p_switch_side_flag           => 'Y'
124402          , p_merge_duplicate_code       => 'A'
124403          );
124404    --
124405    l_acc_rev_natural_side_code := 'C';  -- 4262811
124406    -- 
124407    --
124408    -- set accounting line type info
124409    --
124410    xla_ae_lines_pkg.SetAcctLineType
124414       ,p_line_definition_code       => l_line_definition_code
124411       (p_component_type             => l_component_type
124412       ,p_event_type_code            => l_event_type_code
124413       ,p_line_definition_owner_code => l_line_definition_owner_code
124415       ,p_accounting_line_code       => l_component_code
124416       ,p_accounting_line_type_code  => l_component_type_code
124417       ,p_accounting_line_appl_id    => l_component_appl_id
124418       ,p_amb_context_code           => l_amb_context_code
124419       ,p_entity_code                => l_entity_code
124420       ,p_event_class_code           => l_event_class_code);
124421    --
124422    -- set accounting class
124423    --
124424    xla_ae_lines_pkg.SetAcctClass(
124425            p_accounting_class_code  => 'NRTAX'
124426          , p_ae_header_id           => l_ae_header_id
124427          );
124428 
124429    --
124430    -- set rounding class
124431    --
124432    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
124433                       'NRTAX';
124434 
124435    --
124436    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
124437    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
124438    --
124439    -- bulk performance
124440    --
124441    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
124442 
124443    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
124444       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
124445 
124446    -- 4955764
124447    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
124448       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
124449 
124450    -- 4458381 Public Sector Enh
124451    
124452    --
124453    -- set accounting attributes for the line type
124454    --
124455    l_entered_amt_idx := 23;
124456    l_accted_amt_idx  := 28;
124457    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
124458    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
124459    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
124460    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
124461    l_rec_acct_attrs.array_num_value(2)  := 
124462 xla_ae_sources_pkg.GetSystemSourceNum(
124463    p_source_code           => 'XLA_EVENT_APPL_ID'
124464  , p_source_type_code      => 'Y'
124465  , p_source_application_id =>  602
124466 );
124467    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
124468    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
124469    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
124470    l_rec_acct_attrs.array_char_value(4)  := 
124471 xla_ae_sources_pkg.GetSystemSourceChar(
124472    p_source_code           => 'XLA_ENTITY_CODE'
124473  , p_source_type_code      => 'Y'
124474  , p_source_application_id =>  602
124475 );
124476    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
124477    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
124478    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
124479    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
124480    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
124481    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
124482    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
124483    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
124484    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
124485    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
124486    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
124490    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
124487    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
124488    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
124489    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
124491    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
124492    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
124493    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
124494    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
124495    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
124496    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
124497    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
124498    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
124499    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
124500    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
124501    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
124502    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
124503    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
124504    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
124505    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
124506    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
124507    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
124508    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
124509    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
124510    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
124511    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
124512    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
124513    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
124514    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
124515    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
124516    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
124517    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
124518    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
124519    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
124520    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
124521    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
124522    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
124523    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
124524    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
124525    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
124526    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
124527    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
124528    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
124529    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
124530    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
124534    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
124531    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
124532    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
124533    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
124535    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
124536    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
124537    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
124538    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
124539    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
124540    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
124541    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
124542    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
124543    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
124544    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
124545    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
124546    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
124547    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
124548    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
124549    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
124550    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
124551    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
124552    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
124553    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
124554 
124555    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
124556    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
124557 
124558    ---------------------------------------------------------------------------------------------------------------
124559    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
124560    ---------------------------------------------------------------------------------------------------------------
124564    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
124561    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
124562 
124563    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
124565 
124566    IF xla_accounting_cache_pkg.GetValueChar
124567          (p_source_code         => 'LEDGER_CATEGORY_CODE'
124568          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
124569    AND l_bflow_method_code = 'PRIOR_ENTRY'
124570 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
124571    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
124572          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
124573        )
124574    THEN
124575          xla_ae_lines_pkg.BflowUpgEntry
124576            (p_business_method_code    => l_bflow_method_code
124577            ,p_business_class_code     => l_bflow_class_code
124578            ,p_balance_type            => l_balance_type_code);
124579    ELSE
124580       NULL;
124581 -- No business flow processing for business flow method of NONE.
124582    END IF;
124583 
124584    --
124585    -- call analytical criteria
124586    --
124587    
124588    --
124589    -- call description
124590    --
124591    
124592 xla_ae_lines_pkg.SetLineDescription(
124593    p_ae_header_id => l_ae_header_id
124594   ,p_description  => Description_2 (
124595      p_application_id         => p_application_id
124596    , p_ae_header_id           => l_ae_header_id 
124597 , p_source_1 => p_source_1
124598    )
124599 );
124600 
124601 
124602    --
124603    -- call ADRs
124604    -- Bug 4922099
124605    --
124606    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
124607         (NVL(l_actual_upg_option, 'N') = 'O') OR
124608         (NVL(l_enc_upg_option, 'N') = 'O')
124609       )
124610    THEN
124611    NULL;
124612    --
124613    --
124614    
124615   l_ccid := AcctDerRule_32(
124616            p_application_id           => p_application_id
124617          , p_ae_header_id             => l_ae_header_id 
124618 , p_source_18 => p_source_18
124619          , x_transaction_coa_id       => l_adr_transaction_coa_id
124620          , x_accounting_coa_id        => l_adr_accounting_coa_id
124621          , x_value_type_code          => l_adr_value_type_code
124622          , p_side                     => 'NA'
124623    );
124624 
124625    xla_ae_lines_pkg.set_ccid(
124626     p_code_combination_id          => l_ccid
124627   , p_value_type_code              => l_adr_value_type_code
124628   , p_transaction_coa_id           => l_adr_transaction_coa_id
124629   , p_accounting_coa_id            => l_adr_accounting_coa_id
124630   , p_adr_code                     => 'AP_INVOICE_DIST'
124631   , p_adr_type_code                => 'S'
124632   , p_component_type               => l_component_type
124633   , p_component_code               => l_component_code
124634   , p_component_type_code          => l_component_type_code
124635   , p_component_appl_id            => l_component_appl_id
124636   , p_amb_context_code             => l_amb_context_code
124637   , p_side                         => 'NA'
124638   );
124639 
124640 
124641    --
124642    --
124643    END IF;
124644    --
124645    -- Bug 4922099
124646    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
124647           (NVL(l_enc_upg_option, 'N') = 'O')
124648         ) AND
124649         (l_bflow_method_code = 'PRIOR_ENTRY')
124650       )
124651    THEN
124652       IF
124653       --
124654       1 = 2
124655       --
124656       THEN
124657       xla_accounting_err_pkg.build_message
124658                                     (p_appli_s_name            => 'XLA'
124659                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
124660                                     ,p_token_1                 => 'LINE_NUMBER'
124661                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
124662                                     ,p_token_2                 => 'LINE_TYPE_NAME'
124663                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
124664                                                                              l_component_type
124665                                                                             ,l_component_code
124666                                                                             ,l_component_type_code
124667                                                                             ,l_component_appl_id
124668                                                                             ,l_amb_context_code
124669                                                                             ,l_entity_code
124670                                                                             ,l_event_class_code
124671                                                                            )
124672                                     ,p_token_3                 => 'OWNER'
124673                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
124674                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
124675                                                                           ,p_lookup_code    => l_component_type_code
124676                                                                          )
124677                                     ,p_token_4                 => 'PRODUCT_NAME'
124678                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
124679                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
124683                                        );
124680                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
124681                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
124682                                     ,p_ae_header_id            =>  NULL
124684 
124685         IF (C_LEVEL_ERROR>= g_log_level) THEN
124686                  trace
124687                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
124688                       ,p_level    => C_LEVEL_ERROR
124689                       ,p_module   => l_log_module);
124690         END IF;
124691       END IF;
124692    END IF;
124693    --
124694    --
124695    ------------------------------------------------------------------------------------------------
124696    -- 4219869 Business Flow
124697    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
124698    -- Prior Entry.  Currently, the following code is always generated.
124699    ------------------------------------------------------------------------------------------------
124700    XLA_AE_LINES_PKG.ValidateCurrentLine;
124701 
124702    ------------------------------------------------------------------------------------
124703    -- 4219869 Business Flow
124704    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
124705    ------------------------------------------------------------------------------------
124706    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
124707 
124708    ----------------------------------------------------------------------------------
124709    -- 4219869 Business Flow
124710    -- Update journal entry status -- Need to generate this within IF <condition>
124711    ----------------------------------------------------------------------------------
124712    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
124713          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
124714          ,p_balance_type_code => l_balance_type_code
124715          );
124716 
124717    -------------------------------------------------------------------------------------------
124718    -- 4262811 - Generate the Accrual Reversal lines
124719    -------------------------------------------------------------------------------------------
124720    BEGIN
124721       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
124722                               (g_array_event(p_event_id).array_value_num('header_index'));
124723       IF l_acc_rev_flag IS NULL THEN
124724          l_acc_rev_flag := 'N';
124725       END IF;
124726    EXCEPTION
124727       WHEN OTHERS THEN
124728          l_acc_rev_flag := 'N';
124729    END;
124730    --
124731    IF (l_acc_rev_flag = 'Y') THEN
124732 
124733        -- 4645092  ------------------------------------------------------------------------------
124734        -- To allow MPA report to determine if it should generate report process
124735        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
124736        ------------------------------------------------------------------------------------------
124737 
124738        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
124739        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
124740    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
124741    -- call ADRs
124742    -- Bug 4922099
124743    --
124744    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
124745         (NVL(l_actual_upg_option, 'N') = 'O') OR
124746         (NVL(l_enc_upg_option, 'N') = 'O')
124747       )
124748    THEN
124749    NULL;
124750    --
124751    --
124752    
124753   l_ccid := AcctDerRule_32(
124754            p_application_id           => p_application_id
124755          , p_ae_header_id             => l_ae_header_id 
124756 , p_source_18 => p_source_18
124757          , x_transaction_coa_id       => l_adr_transaction_coa_id
124758          , x_accounting_coa_id        => l_adr_accounting_coa_id
124759          , x_value_type_code          => l_adr_value_type_code
124760          , p_side                     => 'NA'
124761    );
124762 
124763    xla_ae_lines_pkg.set_ccid(
124764     p_code_combination_id          => l_ccid
124765   , p_value_type_code              => l_adr_value_type_code
124766   , p_transaction_coa_id           => l_adr_transaction_coa_id
124767   , p_accounting_coa_id            => l_adr_accounting_coa_id
124768   , p_adr_code                     => 'AP_INVOICE_DIST'
124769   , p_adr_type_code                => 'S'
124770   , p_component_type               => l_component_type
124771   , p_component_code               => l_component_code
124772   , p_component_type_code          => l_component_type_code
124773   , p_component_appl_id            => l_component_appl_id
124774   , p_amb_context_code             => l_amb_context_code
124775   , p_side                         => 'NA'
124776   );
124777 
124778 
124779    --
124780    --
124781    END IF;
124782 
124783        --
124784        -- Update the line information that should be overwritten
124785        --
124786        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
124787                                          p_header_num   => 1);
124788        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
124789 
124790        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
124791 
124792        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
124793           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
124794        END IF;
124795 
124796       --
124797       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
124798       --
124802           ---------------------------------------------------------------------------------------------------
124799       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
124800           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
124801       ELSE
124803           -- 4262811a Switch Sign
124804           ---------------------------------------------------------------------------------------------------
124805           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
124806           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
124807                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124808           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
124809                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124810           -- 5132302
124811           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
124812                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124813 
124814       END IF;
124815 
124816       -- 4955764
124817       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
124818       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
124819 
124820 
124821       XLA_AE_LINES_PKG.ValidateCurrentLine;
124822       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
124823 
124824       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
124825                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
124826                ,p_balance_type_code => l_balance_type_code);
124827 
124828    END IF;
124829 
124830    -----------------------------------------------------------------------------------------
124831    -- 4262811 Multiperiod Accounting
124832    -----------------------------------------------------------------------------------------
124833      -- No MPA option is assigned.
124834 
124835 
124836 END IF;
124837 END IF;
124838 --
124839 
124840 --
124841 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124842    trace
124843       (p_msg      => 'END of AcctLineType_209'
124844       ,p_level    => C_LEVEL_PROCEDURE
124845       ,p_module   => l_log_module);
124846 END IF;
124847 --
124848 EXCEPTION
124849   WHEN xla_exceptions_pkg.application_exception THEN
124850       RAISE;
124851   WHEN OTHERS THEN
124852        xla_exceptions_pkg.raise_message
124853            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_209');
124854 END AcctLineType_209;
124855 --
124856 
124857 ---------------------------------------
124858 --
124859 -- PRIVATE FUNCTION
124860 --         AcctLineType_210
124861 --
124862 ---------------------------------------
124863 PROCEDURE AcctLineType_210 (
124864   p_application_id        IN NUMBER
124865  ,p_event_id              IN NUMBER
124866  ,p_calculate_acctd_flag  IN VARCHAR2
124867  ,p_calculate_g_l_flag    IN VARCHAR2
124868  ,p_actual_flag           IN OUT VARCHAR2
124869  ,p_balance_type_code     OUT VARCHAR2
124870  ,p_gain_or_loss_ref      OUT VARCHAR2
124871  
124872 --Invoice Distribution Description
124873  , p_source_1            IN VARCHAR2
124874 --Invoice Distribution Ledger Amount
124875  , p_source_9            IN NUMBER
124876 --Invoice Distribution Account
124877  , p_source_18            IN NUMBER
124878 --Invoice Distribution Type
124879  , p_source_21            IN VARCHAR2
124880  , p_source_21_meaning    IN VARCHAR2
124881 --Accounting Reversal Indicator
124882  , p_source_41            IN VARCHAR2
124883 --Distribution Link Type
124884  , p_source_43            IN VARCHAR2
124885 --Allocation to Main Distribution Identifier
124886  , p_source_45            IN NUMBER
124887 --Invoice Identifier
124888  , p_source_46            IN NUMBER
124889 --Invoice Distribution Identifier
124890  , p_source_52            IN NUMBER
124891 --Payables Encumbrance Upgrade Credit Account
124892  , p_source_53            IN NUMBER
124893 --Payables Encumbrance Upgrade Credit Amount
124894  , p_source_54            IN NUMBER
124895 --Invoice Currency Code
124896  , p_source_55            IN VARCHAR2
124897 --Payables Encumbrance Upgrade Credit Base Amount
124898  , p_source_56            IN NUMBER
124899 --Payables Encumbrance Upgrade Debit Account
124900  , p_source_57            IN NUMBER
124901 --Payables Encumbrance Upgrade Debit Amount
124902  , p_source_58            IN NUMBER
124903 --Payables Encumbrance Upgrade Debit Base Amount
124904  , p_source_59            IN NUMBER
124905 --Payables Encumbrance Upgrade Option
124906  , p_source_60            IN VARCHAR2
124907 --Invoice Distribution Amount
124908  , p_source_61            IN NUMBER
124909 --Purchase Order Exchange Rate Date
124910  , p_source_62            IN DATE
124911 --Purchase Order Exchange Rate
124912  , p_source_63            IN NUMBER
124913 --Purchase Order Exchange Rate Type
124914  , p_source_64            IN VARCHAR2
124915 --Deferred Accounting End Date
124916  , p_source_65            IN DATE
124917 --Deferred Accounting Option
124918  , p_source_66            IN VARCHAR2
124919 --Deferred Accounting Start Date
124920  , p_source_67            IN DATE
124921 --Override Accounted Amount Indicator
124922  , p_source_68            IN VARCHAR2
124923  , p_source_68_meaning    IN VARCHAR2
124924 --Invoice Supplier Identifier
124925  , p_source_69            IN NUMBER
124926 --Invoice Supplier Site Identifier
124927  , p_source_70            IN NUMBER
124928 --Third Party Type
124929  , p_source_71            IN VARCHAR2
124933  , p_source_73            IN NUMBER
124930 --Parent Reversal Identifier
124931  , p_source_72            IN NUMBER
124932 --Invoice Distribution Statistical Amount
124934 --Invoice Distribution Tax Line Identifier
124935  , p_source_74            IN NUMBER
124936 --Invoice Distribution Tax Distribution Identifier from Tax
124937  , p_source_75            IN NUMBER
124938 --Invoice Distribution Summary Tax Line Identifier
124939  , p_source_76            IN NUMBER
124940 --Payables Upgrade Credit Encumbrance Type Identifier
124941  , p_source_77            IN NUMBER
124942 --Payables Upgrade Debit Encumbrance Type Identifier
124943  , p_source_78            IN NUMBER
124944 --Business Flow Accounts Payable Application Identifier
124945  , p_source_79            IN NUMBER
124946 --Business Flow Invoice Distribution Type
124947  , p_source_80            IN VARCHAR2
124951  , p_source_82            IN NUMBER
124948 --Business Flow Invoice Entity Code
124949  , p_source_81            IN VARCHAR2
124950 --Business Flow Invoice Distribution Identifier
124952 --Business Flow Invoice Identifier
124953  , p_source_83            IN NUMBER
124954 --Accrue on Receipt Option
124955  , p_source_84            IN VARCHAR2
124956  , p_source_84_meaning    IN VARCHAR2
124957 --Self-Assessed Tax Flag
124958  , p_source_135            IN VARCHAR2
124959  , p_source_135_meaning    IN VARCHAR2
124960 )
124961 IS
124962 
124963 l_component_type              VARCHAR2(80);
124964 l_component_code              VARCHAR2(30);
124965 l_component_type_code         VARCHAR2(1);
124966 l_component_appl_id           INTEGER;
124967 l_amb_context_code            VARCHAR2(30);
124968 l_entity_code                 VARCHAR2(30);
124969 l_event_class_code            VARCHAR2(30);
124970 l_ae_header_id                NUMBER;
124971 l_event_type_code             VARCHAR2(30);
124972 l_line_definition_code        VARCHAR2(30);
124973 l_line_definition_owner_code  VARCHAR2(1);
124974 --
124975 -- adr variables
124976 l_segment                     VARCHAR2(30);
124977 l_ccid                        NUMBER;
124978 l_adr_transaction_coa_id      NUMBER;
124979 l_adr_accounting_coa_id       NUMBER;
124980 l_adr_flexfield_segment_code  VARCHAR2(30);
124981 l_adr_flex_value_set_id       NUMBER;
124982 l_adr_value_type_code         VARCHAR2(30);
124983 l_adr_value_combination_id    NUMBER;
124984 l_adr_value_segment_code      VARCHAR2(30);
124985 
124986 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
124987 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
124988 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
124989 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
124990 
124991 -- 4262811 Variables ------------------------------------------------------------------------------------------
124992 l_entered_amt_idx             NUMBER;
124993 l_accted_amt_idx              NUMBER;
124994 l_acc_rev_flag                VARCHAR2(1);
124995 l_accrual_line_num            NUMBER;
124996 l_tmp_amt                     NUMBER;
124997 l_acc_rev_natural_side_code   VARCHAR2(1);
124998 
124999 l_num_entries                 NUMBER;
125000 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
125001 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
125002 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
125003 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
125004 l_recog_line_1                NUMBER;
125005 l_recog_line_2                NUMBER;
125006 
125010 
125007 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
125008 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
125009 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
125011 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
125012 
125013 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
125014 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
125015 
125016 ---------------------------------------------------------------------------------------------------------------
125017 
125018 
125019 --
125020 -- bulk performance
125021 --
125022 l_balance_type_code           VARCHAR2(1);
125023 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
125024 l_log_module                  VARCHAR2(240);
125025 
125026 --
125027 -- Upgrade strategy
125028 --
125029 l_actual_upg_option           VARCHAR2(1);
125030 l_enc_upg_option           VARCHAR2(1);
125031 
125032 --
125033 BEGIN
125034 --
125035 IF g_log_enabled THEN
125036       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_210';
125037 END IF;
125038 --
125039 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
125040 
125041       trace
125042          (p_msg      => 'BEGIN of AcctLineType_210'
125043          ,p_level    => C_LEVEL_PROCEDURE
125044          ,p_module   => l_log_module);
125045 
125046 END IF;
125047 --
125048 l_component_type             := 'AMB_JLT';
125049 l_component_code             := 'AP_NRTAX_ACCRUAL_PREPAY';
125050 l_component_type_code        := 'S';
125051 l_component_appl_id          :=  200;
125052 l_amb_context_code           := 'DEFAULT';
125053 l_entity_code                := 'AP_INVOICES';
125054 l_event_class_code           := 'PREPAYMENTS';
125055 l_event_type_code            := 'PREPAYMENTS_ALL';
125056 l_line_definition_owner_code := 'S';
125057 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
125058 --
125059 l_balance_type_code          := 'A';
125060 l_segment                     := NULL;
125061 l_ccid                        := NULL;
125062 l_adr_transaction_coa_id      := NULL;
125063 l_adr_accounting_coa_id       := NULL;
125064 l_adr_flexfield_segment_code  := NULL;
125065 l_adr_flex_value_set_id       := NULL;
125066 l_adr_value_type_code         := NULL;
125067 l_adr_value_combination_id    := NULL;
125068 l_adr_value_segment_code      := NULL;
125069 
125070 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
125071 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
125072 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
125073 l_budgetary_control_flag     := 'N';
125074 
125075 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
125076 l_bflow_applied_to_amt       := NULL; -- 5132302
125077 l_entered_amt_idx            := NULL;          -- 4262811
125078 l_accted_amt_idx             := NULL;          -- 4262811
125079 l_acc_rev_flag               := NULL;          -- 4262811
125080 l_accrual_line_num           := NULL;          -- 4262811
125081 l_tmp_amt                    := NULL;          -- 4262811
125082 --
125083  
125084 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
125085     l_balance_type_code <> 'B' THEN
125086 IF NVL(p_source_21,'
125087 ') =  'NONREC_TAX' AND 
125088 NVL(p_source_84,'
125089 ') =  'Y' AND 
125090 NVL(p_source_135,'
125091 ') <>  'Y'
125092  THEN 
125093 
125094    --
125095    XLA_AE_LINES_PKG.SetNewLine;
125096 
125097    p_balance_type_code          := l_balance_type_code;
125098    -- set the flag so later we will know whether the gain loss line needs to be created
125099    
125100    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
125101      p_actual_flag :='A';
125102    END IF;
125103 
125104    --
125105    -- bulk performance
125106    --
125107    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
125111    --
125108                                       p_header_num   => 0); -- 4262811
125109    --
125110    -- set accounting line options
125112    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
125113            p_natural_side_code          => 'D'
125114          , p_gain_or_loss_flag          => 'N'
125115          , p_gl_transfer_mode_code      => 'S'
125116          , p_acct_entry_type_code       => 'A'
125117          , p_switch_side_flag           => 'Y'
125118          , p_merge_duplicate_code       => 'A'
125119          );
125120    --
125121    l_acc_rev_natural_side_code := 'C';  -- 4262811
125122    -- 
125123    --
125124    -- set accounting line type info
125125    --
125126    xla_ae_lines_pkg.SetAcctLineType
125130       ,p_line_definition_code       => l_line_definition_code
125127       (p_component_type             => l_component_type
125128       ,p_event_type_code            => l_event_type_code
125129       ,p_line_definition_owner_code => l_line_definition_owner_code
125131       ,p_accounting_line_code       => l_component_code
125132       ,p_accounting_line_type_code  => l_component_type_code
125133       ,p_accounting_line_appl_id    => l_component_appl_id
125134       ,p_amb_context_code           => l_amb_context_code
125135       ,p_entity_code                => l_entity_code
125136       ,p_event_class_code           => l_event_class_code);
125137    --
125138    -- set accounting class
125139    --
125140    xla_ae_lines_pkg.SetAcctClass(
125141            p_accounting_class_code  => 'NRTAX'
125142          , p_ae_header_id           => l_ae_header_id
125143          );
125144 
125145    --
125146    -- set rounding class
125147    --
125148    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
125149                       'NRTAX';
125150 
125151    --
125152    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
125153    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
125154    --
125155    -- bulk performance
125156    --
125157    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
125158 
125159    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
125160       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
125161 
125162    -- 4955764
125163    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
125164       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
125165 
125166    -- 4458381 Public Sector Enh
125167    
125168    --
125169    -- set accounting attributes for the line type
125170    --
125171    l_entered_amt_idx := 23;
125172    l_accted_amt_idx  := 28;
125173    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
125174    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
125175    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
125176    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
125177    l_rec_acct_attrs.array_num_value(2)  := 
125178 xla_ae_sources_pkg.GetSystemSourceNum(
125179    p_source_code           => 'XLA_EVENT_APPL_ID'
125180  , p_source_type_code      => 'Y'
125181  , p_source_application_id =>  602
125182 );
125183    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
125184    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
125185    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
125186    l_rec_acct_attrs.array_char_value(4)  := 
125187 xla_ae_sources_pkg.GetSystemSourceChar(
125188    p_source_code           => 'XLA_ENTITY_CODE'
125189  , p_source_type_code      => 'Y'
125190  , p_source_application_id =>  602
125191 );
125192    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
125193    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
125194    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
125195    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
125196    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
125197    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
125198    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
125199    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
125200    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
125201    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
125202    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
125203    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
125204    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
125205    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
125206    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
125207    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
125208    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
125209    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
125210    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
125211    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
125212    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
125213    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
125214    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
125215    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
125216    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
125217    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
125218    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
125219    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
125220    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
125221    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
125222    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
125223    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
125224    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
125225    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
125226    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
125227    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
125228    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
125229    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
125230    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
125231    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
125232    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
125238    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
125233    l_rec_acct_attrs.array_date_value(25)  := p_source_62;
125234    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
125235    l_rec_acct_attrs.array_num_value(26)  := p_source_63;
125236    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
125237    l_rec_acct_attrs.array_char_value(27)  := p_source_64;
125239    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
125240    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
125241    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
125242    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
125243    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
125244    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
125245    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
125246    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
125247    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
125248    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
125249    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
125250    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
125251    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
125252    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
125253    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
125254    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
125255    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
125256    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
125257    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
125258    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
125259    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
125260    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
125261    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
125262    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
125263    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
125264    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
125265    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
125266    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
125267    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
125268    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
125269    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
125270 
125271    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
125272    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
125273 
125274    ---------------------------------------------------------------------------------------------------------------
125275    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
125276    ---------------------------------------------------------------------------------------------------------------
125277    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
125278 
125279    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
125280    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
125281 
125282    IF xla_accounting_cache_pkg.GetValueChar
125283          (p_source_code         => 'LEDGER_CATEGORY_CODE'
125284          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
125285    AND l_bflow_method_code = 'PRIOR_ENTRY'
125286 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
125287    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
125288          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
125289        )
125290    THEN
125291          xla_ae_lines_pkg.BflowUpgEntry
125292            (p_business_method_code    => l_bflow_method_code
125293            ,p_business_class_code     => l_bflow_class_code
125297 -- No business flow processing for business flow method of NONE.
125294            ,p_balance_type            => l_balance_type_code);
125295    ELSE
125296       NULL;
125298    END IF;
125299 
125300    --
125301    -- call analytical criteria
125302    --
125303    
125304    --
125305    -- call description
125306    --
125307    
125308 xla_ae_lines_pkg.SetLineDescription(
125309    p_ae_header_id => l_ae_header_id
125310   ,p_description  => Description_2 (
125311      p_application_id         => p_application_id
125312    , p_ae_header_id           => l_ae_header_id 
125313 , p_source_1 => p_source_1
125314    )
125315 );
125316 
125317 
125318    --
125319    -- call ADRs
125320    -- Bug 4922099
125321    --
125322    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
125323         (NVL(l_actual_upg_option, 'N') = 'O') OR
125324         (NVL(l_enc_upg_option, 'N') = 'O')
125325       )
125326    THEN
125327    NULL;
125328    --
125329    --
125330    
125331   l_ccid := AcctDerRule_32(
125332            p_application_id           => p_application_id
125333          , p_ae_header_id             => l_ae_header_id 
125334 , p_source_18 => p_source_18
125335          , x_transaction_coa_id       => l_adr_transaction_coa_id
125336          , x_accounting_coa_id        => l_adr_accounting_coa_id
125337          , x_value_type_code          => l_adr_value_type_code
125338          , p_side                     => 'NA'
125339    );
125340 
125341    xla_ae_lines_pkg.set_ccid(
125342     p_code_combination_id          => l_ccid
125343   , p_value_type_code              => l_adr_value_type_code
125344   , p_transaction_coa_id           => l_adr_transaction_coa_id
125345   , p_accounting_coa_id            => l_adr_accounting_coa_id
125346   , p_adr_code                     => 'AP_INVOICE_DIST'
125347   , p_adr_type_code                => 'S'
125348   , p_component_type               => l_component_type
125349   , p_component_code               => l_component_code
125350   , p_component_type_code          => l_component_type_code
125351   , p_component_appl_id            => l_component_appl_id
125352   , p_amb_context_code             => l_amb_context_code
125353   , p_side                         => 'NA'
125354   );
125355 
125356 
125357    --
125358    --
125359    END IF;
125360    --
125361    -- Bug 4922099
125362    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
125363           (NVL(l_enc_upg_option, 'N') = 'O')
125364         ) AND
125365         (l_bflow_method_code = 'PRIOR_ENTRY')
125366       )
125367    THEN
125368       IF
125369       --
125370       1 = 2
125371       --
125372       THEN
125373       xla_accounting_err_pkg.build_message
125374                                     (p_appli_s_name            => 'XLA'
125375                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
125376                                     ,p_token_1                 => 'LINE_NUMBER'
125380                                                                              l_component_type
125377                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
125378                                     ,p_token_2                 => 'LINE_TYPE_NAME'
125379                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
125381                                                                             ,l_component_code
125382                                                                             ,l_component_type_code
125383                                                                             ,l_component_appl_id
125384                                                                             ,l_amb_context_code
125385                                                                             ,l_entity_code
125386                                                                             ,l_event_class_code
125387                                                                            )
125388                                     ,p_token_3                 => 'OWNER'
125389                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
125390                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
125391                                                                           ,p_lookup_code    => l_component_type_code
125392                                                                          )
125396                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
125393                                     ,p_token_4                 => 'PRODUCT_NAME'
125394                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
125395                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
125397                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
125398                                     ,p_ae_header_id            =>  NULL
125399                                        );
125400 
125401         IF (C_LEVEL_ERROR>= g_log_level) THEN
125402                  trace
125403                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
125404                       ,p_level    => C_LEVEL_ERROR
125405                       ,p_module   => l_log_module);
125406         END IF;
125407       END IF;
125408    END IF;
125409    --
125410    --
125411    ------------------------------------------------------------------------------------------------
125412    -- 4219869 Business Flow
125413    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
125414    -- Prior Entry.  Currently, the following code is always generated.
125415    ------------------------------------------------------------------------------------------------
125416    XLA_AE_LINES_PKG.ValidateCurrentLine;
125417 
125418    ------------------------------------------------------------------------------------
125419    -- 4219869 Business Flow
125420    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
125421    ------------------------------------------------------------------------------------
125422    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
125423 
125424    ----------------------------------------------------------------------------------
125425    -- 4219869 Business Flow
125426    -- Update journal entry status -- Need to generate this within IF <condition>
125427    ----------------------------------------------------------------------------------
125428    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
125429          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
125430          ,p_balance_type_code => l_balance_type_code
125431          );
125432 
125433    -------------------------------------------------------------------------------------------
125434    -- 4262811 - Generate the Accrual Reversal lines
125435    -------------------------------------------------------------------------------------------
125436    BEGIN
125437       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
125438                               (g_array_event(p_event_id).array_value_num('header_index'));
125439       IF l_acc_rev_flag IS NULL THEN
125440          l_acc_rev_flag := 'N';
125441       END IF;
125442    EXCEPTION
125443       WHEN OTHERS THEN
125444          l_acc_rev_flag := 'N';
125445    END;
125446    --
125447    IF (l_acc_rev_flag = 'Y') THEN
125448 
125449        -- 4645092  ------------------------------------------------------------------------------
125450        -- To allow MPA report to determine if it should generate report process
125451        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
125452        ------------------------------------------------------------------------------------------
125453 
125454        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
125455        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
125456    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
125457    -- call ADRs
125458    -- Bug 4922099
125459    --
125460    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
125461         (NVL(l_actual_upg_option, 'N') = 'O') OR
125462         (NVL(l_enc_upg_option, 'N') = 'O')
125463       )
125464    THEN
125465    NULL;
125466    --
125467    --
125468    
125469   l_ccid := AcctDerRule_32(
125470            p_application_id           => p_application_id
125471          , p_ae_header_id             => l_ae_header_id 
125472 , p_source_18 => p_source_18
125473          , x_transaction_coa_id       => l_adr_transaction_coa_id
125474          , x_accounting_coa_id        => l_adr_accounting_coa_id
125475          , x_value_type_code          => l_adr_value_type_code
125476          , p_side                     => 'NA'
125477    );
125478 
125479    xla_ae_lines_pkg.set_ccid(
125480     p_code_combination_id          => l_ccid
125481   , p_value_type_code              => l_adr_value_type_code
125482   , p_transaction_coa_id           => l_adr_transaction_coa_id
125483   , p_accounting_coa_id            => l_adr_accounting_coa_id
125484   , p_adr_code                     => 'AP_INVOICE_DIST'
125485   , p_adr_type_code                => 'S'
125486   , p_component_type               => l_component_type
125487   , p_component_code               => l_component_code
125488   , p_component_type_code          => l_component_type_code
125489   , p_component_appl_id            => l_component_appl_id
125490   , p_amb_context_code             => l_amb_context_code
125491   , p_side                         => 'NA'
125492   );
125493 
125494 
125495    --
125496    --
125497    END IF;
125498 
125499        --
125500        -- Update the line information that should be overwritten
125501        --
125502        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
125503                                          p_header_num   => 1);
125507 
125504        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
125505 
125506        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
125508        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
125509           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
125510        END IF;
125511 
125512       --
125513       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
125514       --
125515       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
125516           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
125517       ELSE
125518           ---------------------------------------------------------------------------------------------------
125519           -- 4262811a Switch Sign
125520           ---------------------------------------------------------------------------------------------------
125521           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
125522           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
125523                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
125524           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
125525                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
125526           -- 5132302
125527           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
125528                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
125529 
125530       END IF;
125531 
125532       -- 4955764
125533       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
125534       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
125535 
125536 
125537       XLA_AE_LINES_PKG.ValidateCurrentLine;
125538       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
125539 
125540       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
125541                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
125542                ,p_balance_type_code => l_balance_type_code);
125543 
125544    END IF;
125545 
125546    -----------------------------------------------------------------------------------------
125547    -- 4262811 Multiperiod Accounting
125548    -----------------------------------------------------------------------------------------
125549      -- No MPA option is assigned.
125550 
125551 
125552 END IF;
125553 END IF;
125554 --
125555 
125556 --
125557 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
125558    trace
125559       (p_msg      => 'END of AcctLineType_210'
125560       ,p_level    => C_LEVEL_PROCEDURE
125561       ,p_module   => l_log_module);
125562 END IF;
125563 --
125564 EXCEPTION
125565   WHEN xla_exceptions_pkg.application_exception THEN
125566       RAISE;
125567   WHEN OTHERS THEN
125568        xla_exceptions_pkg.raise_message
125569            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_210');
125570 END AcctLineType_210;
125571 --
125572 
125573 ---------------------------------------
125574 --
125575 -- PRIVATE FUNCTION
125576 --         AcctLineType_211
125577 --
125578 ---------------------------------------
125579 PROCEDURE AcctLineType_211 (
125580   p_application_id        IN NUMBER
125581  ,p_event_id              IN NUMBER
125582  ,p_calculate_acctd_flag  IN VARCHAR2
125583  ,p_calculate_g_l_flag    IN VARCHAR2
125584  ,p_actual_flag           IN OUT VARCHAR2
125585  ,p_balance_type_code     OUT VARCHAR2
125586  ,p_gain_or_loss_ref      OUT VARCHAR2
125587  
125588 --Payment Card Accrued Account
125589  , p_source_36            IN NUMBER
125590 --Accounting Reversal Indicator
125591  , p_source_41            IN VARCHAR2
125592 --Distribution Link Type
125593  , p_source_43            IN VARCHAR2
125594 --Override Accounted Amount Indicator
125595  , p_source_68            IN VARCHAR2
125596  , p_source_68_meaning    IN VARCHAR2
125597 --Third Party Type
125598  , p_source_71            IN VARCHAR2
125599 --Invoice Distribution Tax Line Identifier
125600  , p_source_74            IN NUMBER
125601 --Invoice Distribution Tax Distribution Identifier from Tax
125602  , p_source_75            IN NUMBER
125603 --Invoice Distribution Summary Tax Line Identifier
125604  , p_source_76            IN NUMBER
125605 --Business Flow Accounts Payable Application Identifier
125606  , p_source_79            IN NUMBER
125607 --Business Flow Invoice Distribution Type
125608  , p_source_80            IN VARCHAR2
125609 --Business Flow Invoice Entity Code
125610  , p_source_81            IN VARCHAR2
125611 --Business Flow Invoice Distribution Identifier
125612  , p_source_82            IN NUMBER
125613 --Business Flow Invoice Identifier
125614  , p_source_83            IN NUMBER
125615 --Payment Distribution Amount
125616  , p_source_91            IN NUMBER
125617 --Payment Distribution Identifier
125618  , p_source_96            IN NUMBER
125619 --Payment Supplier Identifier
125620  , p_source_102            IN NUMBER
125621 --Payment Supplier Site Identifier
125622  , p_source_103            IN NUMBER
125623 --Payment Distribution Reversed Identifier
125624  , p_source_104            IN NUMBER
125625 --Payment Currency Code
125626  , p_source_106            IN VARCHAR2
125630  , p_source_110            IN DATE
125627 --Payment Distribution (Payment Rate) Ledger Amount
125628  , p_source_108            IN NUMBER
125629 --Payment Exchange Date
125631 --Payment Exchange Rate
125632  , p_source_111            IN NUMBER
125633 --Payment Exchange Rate Type
125634  , p_source_112            IN VARCHAR2
125635 --Payment Processing Type
125636  , p_source_116            IN VARCHAR2
125637 --Invoice Distribution Amount of the Payment Distribution
125638  , p_source_117            IN NUMBER
125639 )
125640 IS
125641 
125642 l_component_type              VARCHAR2(80);
125643 l_component_code              VARCHAR2(30);
125644 l_component_type_code         VARCHAR2(1);
125645 l_component_appl_id           INTEGER;
125646 l_amb_context_code            VARCHAR2(30);
125647 l_entity_code                 VARCHAR2(30);
125648 l_event_class_code            VARCHAR2(30);
125649 l_ae_header_id                NUMBER;
125650 l_event_type_code             VARCHAR2(30);
125651 l_line_definition_code        VARCHAR2(30);
125652 l_line_definition_owner_code  VARCHAR2(1);
125653 --
125654 -- adr variables
125655 l_segment                     VARCHAR2(30);
125656 l_ccid                        NUMBER;
125657 l_adr_transaction_coa_id      NUMBER;
125658 l_adr_accounting_coa_id       NUMBER;
125659 l_adr_flexfield_segment_code  VARCHAR2(30);
125660 l_adr_flex_value_set_id       NUMBER;
125661 l_adr_value_type_code         VARCHAR2(30);
125662 l_adr_value_combination_id    NUMBER;
125663 l_adr_value_segment_code      VARCHAR2(30);
125664 
125665 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
125666 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
125667 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
125668 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
125669 
125670 -- 4262811 Variables ------------------------------------------------------------------------------------------
125671 l_entered_amt_idx             NUMBER;
125672 l_accted_amt_idx              NUMBER;
125673 l_acc_rev_flag                VARCHAR2(1);
125674 l_accrual_line_num            NUMBER;
125675 l_tmp_amt                     NUMBER;
125676 l_acc_rev_natural_side_code   VARCHAR2(1);
125677 
125678 l_num_entries                 NUMBER;
125679 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
125680 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
125681 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
125682 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
125683 l_recog_line_1                NUMBER;
125684 l_recog_line_2                NUMBER;
125685 
125686 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
125687 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
125688 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
125689 
125690 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
125691 
125692 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
125693 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
125694 
125695 ---------------------------------------------------------------------------------------------------------------
125696 
125697 
125698 --
125699 -- bulk performance
125700 --
125701 l_balance_type_code           VARCHAR2(1);
125702 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
125703 l_log_module                  VARCHAR2(240);
125704 
125705 --
125706 -- Upgrade strategy
125707 --
125708 l_actual_upg_option           VARCHAR2(1);
125709 l_enc_upg_option           VARCHAR2(1);
125710 
125711 --
125712 BEGIN
125713 --
125714 IF g_log_enabled THEN
125715       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_211';
125716 END IF;
125717 --
125718 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
125719 
125720       trace
125721          (p_msg      => 'BEGIN of AcctLineType_211'
125722          ,p_level    => C_LEVEL_PROCEDURE
125723          ,p_module   => l_log_module);
125724 
125725 END IF;
125726 --
125727 l_component_type             := 'AMB_JLT';
125728 l_component_code             := 'AP_PAYCARD_PMT';
125729 l_component_type_code        := 'S';
125730 l_component_appl_id          :=  200;
125731 l_amb_context_code           := 'DEFAULT';
125732 l_entity_code                := 'AP_PAYMENTS';
125733 l_event_class_code           := 'PAYMENTS';
125734 l_event_type_code            := 'PAYMENTS_ALL';
125735 l_line_definition_owner_code := 'S';
125736 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
125737 --
125738 l_balance_type_code          := 'A';
125739 l_segment                     := NULL;
125740 l_ccid                        := NULL;
125741 l_adr_transaction_coa_id      := NULL;
125742 l_adr_accounting_coa_id       := NULL;
125743 l_adr_flexfield_segment_code  := NULL;
125744 l_adr_flex_value_set_id       := NULL;
125745 l_adr_value_type_code         := NULL;
125746 l_adr_value_combination_id    := NULL;
125747 l_adr_value_segment_code      := NULL;
125748 
125749 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
125750 l_bflow_class_code           := '';    -- 4219869 Business Flow
125751 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
125752 l_budgetary_control_flag     := 'N';
125753 
125754 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
125755 l_bflow_applied_to_amt       := NULL; -- 5132302
125756 l_entered_amt_idx            := NULL;          -- 4262811
125757 l_accted_amt_idx             := NULL;          -- 4262811
125758 l_acc_rev_flag               := NULL;          -- 4262811
125759 l_accrual_line_num           := NULL;          -- 4262811
125763 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
125760 l_tmp_amt                    := NULL;          -- 4262811
125761 --
125762  
125764     l_balance_type_code <> 'B' THEN
125765 IF NVL(p_source_116,'
125766 ') =  'PAYMENTCARD'
125767  THEN 
125768 
125769    --
125770    XLA_AE_LINES_PKG.SetNewLine;
125771 
125772    p_balance_type_code          := l_balance_type_code;
125773    -- set the flag so later we will know whether the gain loss line needs to be created
125774    
125775    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
125776      p_actual_flag :='A';
125777    END IF;
125778 
125779    --
125780    -- bulk performance
125781    --
125782    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
125783                                       p_header_num   => 0); -- 4262811
125784    --
125785    -- set accounting line options
125786    --
125787    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
125788            p_natural_side_code          => 'C'
125789          , p_gain_or_loss_flag          => 'N'
125790          , p_gl_transfer_mode_code      => 'S'
125791          , p_acct_entry_type_code       => 'A'
125792          , p_switch_side_flag           => 'Y'
125793          , p_merge_duplicate_code       => 'A'
125794          );
125795    --
125796    l_acc_rev_natural_side_code := 'D';  -- 4262811
125797    -- 
125798    --
125799    -- set accounting line type info
125800    --
125801    xla_ae_lines_pkg.SetAcctLineType
125802       (p_component_type             => l_component_type
125803       ,p_event_type_code            => l_event_type_code
125804       ,p_line_definition_owner_code => l_line_definition_owner_code
125805       ,p_line_definition_code       => l_line_definition_code
125806       ,p_accounting_line_code       => l_component_code
125807       ,p_accounting_line_type_code  => l_component_type_code
125808       ,p_accounting_line_appl_id    => l_component_appl_id
125809       ,p_amb_context_code           => l_amb_context_code
125810       ,p_entity_code                => l_entity_code
125811       ,p_event_class_code           => l_event_class_code);
125812    --
125813    -- set accounting class
125814    --
125815    xla_ae_lines_pkg.SetAcctClass(
125816            p_accounting_class_code  => 'PAYMENTCARD'
125817          , p_ae_header_id           => l_ae_header_id
125818          );
125819 
125820    --
125821    -- set rounding class
125822    --
125823    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
125824                       'PAYMENTCARD';
125825 
125826    --
125827    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
125828    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
125829    --
125830    -- bulk performance
125831    --
125832    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
125833 
125834    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
125835       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
125836 
125837    -- 4955764
125838    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
125839       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
125840 
125841    -- 4458381 Public Sector Enh
125842    
125843    --
125844    -- set accounting attributes for the line type
125845    --
125846    l_entered_amt_idx := 10;
125847    l_accted_amt_idx  := 15;
125848    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
125849    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
125850    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
125851    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
125852    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
125853    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
125854    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
125855    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
125856    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
125857    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
125858    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
125859    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
125860    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
125861    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
125862    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
125863    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
125864    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
125865    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
125866    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
125867    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
125868    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
125869    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
125870    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
125871    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
125872    l_rec_acct_attrs.array_date_value(12)  := p_source_110;
125873    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
125874    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
125875    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
125876    l_rec_acct_attrs.array_char_value(14)  := p_source_112;
125877    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
125878    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
125882    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
125879    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
125880    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
125881    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
125883    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
125884    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
125885    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
125886    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
125887    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
125888    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
125889    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
125890    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
125891    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
125892    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
125893    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
125894    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
125895    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
125896    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
125897 
125898    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
125899    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
125900 
125901    ---------------------------------------------------------------------------------------------------------------
125902    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
125903    ---------------------------------------------------------------------------------------------------------------
125904    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
125905 
125906    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
125907    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
125908 
125909    IF xla_accounting_cache_pkg.GetValueChar
125910          (p_source_code         => 'LEDGER_CATEGORY_CODE'
125911          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
125912    AND l_bflow_method_code = 'PRIOR_ENTRY'
125913 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
125914    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
125915          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
125916        )
125917    THEN
125918          xla_ae_lines_pkg.BflowUpgEntry
125919            (p_business_method_code    => l_bflow_method_code
125920            ,p_business_class_code     => l_bflow_class_code
125921            ,p_balance_type            => l_balance_type_code);
125922    ELSE
125923       NULL;
125924 -- No business flow processing for business flow method of NONE.
125925    END IF;
125926 
125927    --
125928    -- call analytical criteria
125929    --
125930    
125931    --
125932    -- call description
125933    --
125934    -- No description or it is inherited.
125935    --
125936    -- call ADRs
125937    -- Bug 4922099
125938    --
125939    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
125940         (NVL(l_actual_upg_option, 'N') = 'O') OR
125941         (NVL(l_enc_upg_option, 'N') = 'O')
125942       )
125943    THEN
125944    NULL;
125945    --
125946    --
125947    
125948   l_ccid := AcctDerRule_34(
125949            p_application_id           => p_application_id
125950          , p_ae_header_id             => l_ae_header_id 
125951 , p_source_36 => p_source_36
125952          , x_transaction_coa_id       => l_adr_transaction_coa_id
125953          , x_accounting_coa_id        => l_adr_accounting_coa_id
125954          , x_value_type_code          => l_adr_value_type_code
125955          , p_side                     => 'NA'
125956    );
125957 
125958    xla_ae_lines_pkg.set_ccid(
125959     p_code_combination_id          => l_ccid
125960   , p_value_type_code              => l_adr_value_type_code
125961   , p_transaction_coa_id           => l_adr_transaction_coa_id
125962   , p_accounting_coa_id            => l_adr_accounting_coa_id
125963   , p_adr_code                     => 'AP_PAYCARD_ACCRUED_ADR'
125964   , p_adr_type_code                => 'S'
125965   , p_component_type               => l_component_type
125966   , p_component_code               => l_component_code
125967   , p_component_type_code          => l_component_type_code
125968   , p_component_appl_id            => l_component_appl_id
125969   , p_amb_context_code             => l_amb_context_code
125970   , p_side                         => 'NA'
125971   );
125972 
125973 
125974    --
125975    --
125976    END IF;
125977    --
125978    -- Bug 4922099
125979    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
125980           (NVL(l_enc_upg_option, 'N') = 'O')
125981         ) AND
125982         (l_bflow_method_code = 'PRIOR_ENTRY')
125983       )
125984    THEN
125985       IF
125986       --
125987       1 = 2
125988       --
125989       THEN
125990       xla_accounting_err_pkg.build_message
125991                                     (p_appli_s_name            => 'XLA'
125992                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
125993                                     ,p_token_1                 => 'LINE_NUMBER'
125994                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
125995                                     ,p_token_2                 => 'LINE_TYPE_NAME'
125996                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
125997                                                                              l_component_type
126001                                                                             ,l_amb_context_code
125998                                                                             ,l_component_code
125999                                                                             ,l_component_type_code
126000                                                                             ,l_component_appl_id
126002                                                                             ,l_entity_code
126003                                                                             ,l_event_class_code
126004                                                                            )
126005                                     ,p_token_3                 => 'OWNER'
126006                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
126007                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
126008                                                                           ,p_lookup_code    => l_component_type_code
126009                                                                          )
126010                                     ,p_token_4                 => 'PRODUCT_NAME'
126011                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
126012                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
126013                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
126014                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
126015                                     ,p_ae_header_id            =>  NULL
126016                                        );
126017 
126018         IF (C_LEVEL_ERROR>= g_log_level) THEN
126019                  trace
126020                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
126021                       ,p_level    => C_LEVEL_ERROR
126022                       ,p_module   => l_log_module);
126023         END IF;
126024       END IF;
126025    END IF;
126026    --
126027    --
126028    ------------------------------------------------------------------------------------------------
126029    -- 4219869 Business Flow
126030    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
126031    -- Prior Entry.  Currently, the following code is always generated.
126032    ------------------------------------------------------------------------------------------------
126033    XLA_AE_LINES_PKG.ValidateCurrentLine;
126034 
126035    ------------------------------------------------------------------------------------
126036    -- 4219869 Business Flow
126037    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
126038    ------------------------------------------------------------------------------------
126039    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
126040 
126041    ----------------------------------------------------------------------------------
126042    -- 4219869 Business Flow
126043    -- Update journal entry status -- Need to generate this within IF <condition>
126044    ----------------------------------------------------------------------------------
126045    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
126046          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
126047          ,p_balance_type_code => l_balance_type_code
126048          );
126049 
126050    -------------------------------------------------------------------------------------------
126051    -- 4262811 - Generate the Accrual Reversal lines
126052    -------------------------------------------------------------------------------------------
126053    BEGIN
126054       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
126055                               (g_array_event(p_event_id).array_value_num('header_index'));
126056       IF l_acc_rev_flag IS NULL THEN
126057          l_acc_rev_flag := 'N';
126058       END IF;
126059    EXCEPTION
126060       WHEN OTHERS THEN
126061          l_acc_rev_flag := 'N';
126062    END;
126063    --
126064    IF (l_acc_rev_flag = 'Y') THEN
126065 
126066        -- 4645092  ------------------------------------------------------------------------------
126067        -- To allow MPA report to determine if it should generate report process
126068        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
126069        ------------------------------------------------------------------------------------------
126070 
126071        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
126072        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
126073    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
126074    -- call ADRs
126075    -- Bug 4922099
126076    --
126077    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
126078         (NVL(l_actual_upg_option, 'N') = 'O') OR
126079         (NVL(l_enc_upg_option, 'N') = 'O')
126080       )
126081    THEN
126082    NULL;
126083    --
126084    --
126085    
126086   l_ccid := AcctDerRule_34(
126087            p_application_id           => p_application_id
126088          , p_ae_header_id             => l_ae_header_id 
126089 , p_source_36 => p_source_36
126090          , x_transaction_coa_id       => l_adr_transaction_coa_id
126091          , x_accounting_coa_id        => l_adr_accounting_coa_id
126092          , x_value_type_code          => l_adr_value_type_code
126093          , p_side                     => 'NA'
126094    );
126095 
126096    xla_ae_lines_pkg.set_ccid(
126097     p_code_combination_id          => l_ccid
126098   , p_value_type_code              => l_adr_value_type_code
126099   , p_transaction_coa_id           => l_adr_transaction_coa_id
126100   , p_accounting_coa_id            => l_adr_accounting_coa_id
126104   , p_component_code               => l_component_code
126101   , p_adr_code                     => 'AP_PAYCARD_ACCRUED_ADR'
126102   , p_adr_type_code                => 'S'
126103   , p_component_type               => l_component_type
126105   , p_component_type_code          => l_component_type_code
126106   , p_component_appl_id            => l_component_appl_id
126107   , p_amb_context_code             => l_amb_context_code
126108   , p_side                         => 'NA'
126109   );
126110 
126111 
126112    --
126113    --
126114    END IF;
126115 
126116        --
126117        -- Update the line information that should be overwritten
126118        --
126119        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
126120                                          p_header_num   => 1);
126121        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
126122 
126123        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
126124 
126125        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
126126           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
126127        END IF;
126128 
126129       --
126130       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
126131       --
126132       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
126133           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
126134       ELSE
126135           ---------------------------------------------------------------------------------------------------
126136           -- 4262811a Switch Sign
126137           ---------------------------------------------------------------------------------------------------
126138           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
126139           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
126140                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126141           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
126142                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126143           -- 5132302
126144           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
126145                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126146 
126147       END IF;
126148 
126149       -- 4955764
126150       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
126151       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
126152 
126153 
126154       XLA_AE_LINES_PKG.ValidateCurrentLine;
126155       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
126156 
126157       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
126158                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
126159                ,p_balance_type_code => l_balance_type_code);
126160 
126161    END IF;
126162 
126163    -----------------------------------------------------------------------------------------
126164    -- 4262811 Multiperiod Accounting
126165    -----------------------------------------------------------------------------------------
126166      -- No MPA option is assigned.
126167 
126168 
126169 END IF;
126170 END IF;
126171 --
126172 
126173 --
126174 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126175    trace
126176       (p_msg      => 'END of AcctLineType_211'
126177       ,p_level    => C_LEVEL_PROCEDURE
126178       ,p_module   => l_log_module);
126179 END IF;
126180 --
126181 EXCEPTION
126182   WHEN xla_exceptions_pkg.application_exception THEN
126183       RAISE;
126184   WHEN OTHERS THEN
126185        xla_exceptions_pkg.raise_message
126186            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_211');
126187 END AcctLineType_211;
126188 --
126189 
126190 ---------------------------------------
126191 --
126192 -- PRIVATE FUNCTION
126193 --         AcctLineType_212
126194 --
126195 ---------------------------------------
126196 PROCEDURE AcctLineType_212 (
126197   p_application_id        IN NUMBER
126198  ,p_event_id              IN NUMBER
126199  ,p_calculate_acctd_flag  IN VARCHAR2
126200  ,p_calculate_g_l_flag    IN VARCHAR2
126201  ,p_actual_flag           IN OUT VARCHAR2
126202  ,p_balance_type_code     OUT VARCHAR2
126203  ,p_gain_or_loss_ref      OUT VARCHAR2
126204  
126205 --Automatic Offsets Value
126206  , p_source_3            IN VARCHAR2
126207  , p_source_3_meaning    IN VARCHAR2
126211  , p_source_37            IN NUMBER
126208 --Invoice Distribution Account
126209  , p_source_18            IN NUMBER
126210 --Payables Options Rounding Account
126212 --Accounting Reversal Indicator
126213  , p_source_41            IN VARCHAR2
126214 --Distribution Link Type
126215  , p_source_43            IN VARCHAR2
126216 --Override Accounted Amount Indicator
126217  , p_source_68            IN VARCHAR2
126218  , p_source_68_meaning    IN VARCHAR2
126219 --Third Party Type
126220  , p_source_71            IN VARCHAR2
126221 --Invoice Distribution Tax Line Identifier
126222  , p_source_74            IN NUMBER
126223 --Invoice Distribution Summary Tax Line Identifier
126224  , p_source_76            IN NUMBER
126225 --Business Flow Accounts Payable Application Identifier
126226  , p_source_79            IN NUMBER
126227 --When to Account for Payment Option
126228  , p_source_89            IN VARCHAR2
126229 --Payment Distribution Type
126230  , p_source_90            IN VARCHAR2
126231  , p_source_90_meaning    IN VARCHAR2
126232 --Payment Distribution Amount
126233  , p_source_91            IN NUMBER
126234 --Business Flow Payment Distribution Type
126235  , p_source_92            IN VARCHAR2
126236 --Business Flow Payment Entity Code
126237  , p_source_93            IN VARCHAR2
126238 --Business Flow Payment Distribution Identifier
126239  , p_source_94            IN NUMBER
126240 --Business Flow Payment Identifier
126241  , p_source_95            IN NUMBER
126242 --Payment Distribution Identifier
126243  , p_source_96            IN NUMBER
126244 --Payment Supplier Identifier
126245  , p_source_102            IN NUMBER
126246 --Payment Supplier Site Identifier
126247  , p_source_103            IN NUMBER
126248 --Payment Distribution Reversed Identifier
126249  , p_source_104            IN NUMBER
126250 --Payment Currency Code
126251  , p_source_106            IN VARCHAR2
126252 --Payment Maturity Date
126253  , p_source_107            IN DATE
126254 --Payment Distribution (Payment Rate) Ledger Amount
126255  , p_source_108            IN NUMBER
126256 --Payment Exchange Date
126257  , p_source_110            IN DATE
126258 --Payment Exchange Rate
126259  , p_source_111            IN NUMBER
126260 --Payment Exchange Rate Type
126261  , p_source_112            IN VARCHAR2
126262 )
126263 IS
126264 
126265 l_component_type              VARCHAR2(80);
126266 l_component_code              VARCHAR2(30);
126267 l_component_type_code         VARCHAR2(1);
126268 l_component_appl_id           INTEGER;
126269 l_amb_context_code            VARCHAR2(30);
126270 l_entity_code                 VARCHAR2(30);
126271 l_event_class_code            VARCHAR2(30);
126272 l_ae_header_id                NUMBER;
126273 l_event_type_code             VARCHAR2(30);
126274 l_line_definition_code        VARCHAR2(30);
126275 l_line_definition_owner_code  VARCHAR2(1);
126276 --
126277 -- adr variables
126278 l_segment                     VARCHAR2(30);
126279 l_ccid                        NUMBER;
126280 l_adr_transaction_coa_id      NUMBER;
126281 l_adr_accounting_coa_id       NUMBER;
126282 l_adr_flexfield_segment_code  VARCHAR2(30);
126283 l_adr_flex_value_set_id       NUMBER;
126284 l_adr_value_type_code         VARCHAR2(30);
126285 l_adr_value_combination_id    NUMBER;
126286 l_adr_value_segment_code      VARCHAR2(30);
126287 
126288 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
126289 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
126290 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
126291 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
126292 
126293 -- 4262811 Variables ------------------------------------------------------------------------------------------
126294 l_entered_amt_idx             NUMBER;
126295 l_accted_amt_idx              NUMBER;
126296 l_acc_rev_flag                VARCHAR2(1);
126297 l_accrual_line_num            NUMBER;
126298 l_tmp_amt                     NUMBER;
126299 l_acc_rev_natural_side_code   VARCHAR2(1);
126300 
126301 l_num_entries                 NUMBER;
126302 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
126303 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
126304 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
126305 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
126306 l_recog_line_1                NUMBER;
126307 l_recog_line_2                NUMBER;
126308 
126309 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
126310 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
126311 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
126312 
126313 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
126314 
126315 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
126316 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
126317 
126318 ---------------------------------------------------------------------------------------------------------------
126319 
126320 
126321 --
126322 -- bulk performance
126323 --
126324 l_balance_type_code           VARCHAR2(1);
126325 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
126326 l_log_module                  VARCHAR2(240);
126327 
126328 --
126329 -- Upgrade strategy
126330 --
126331 l_actual_upg_option           VARCHAR2(1);
126332 l_enc_upg_option           VARCHAR2(1);
126333 
126334 --
126335 BEGIN
126336 --
126337 IF g_log_enabled THEN
126338       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_212';
126342 
126339 END IF;
126340 --
126341 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126343       trace
126344          (p_msg      => 'BEGIN of AcctLineType_212'
126345          ,p_level    => C_LEVEL_PROCEDURE
126346          ,p_module   => l_log_module);
126347 
126348 END IF;
126349 --
126350 l_component_type             := 'AMB_JLT';
126351 l_component_code             := 'AP_PMT_CLR_ROUNDING_CLEAR';
126352 l_component_type_code        := 'S';
126353 l_component_appl_id          :=  200;
126354 l_amb_context_code           := 'DEFAULT';
126355 l_entity_code                := 'AP_PAYMENTS';
126356 l_event_class_code           := 'RECONCILED PAYMENTS';
126357 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
126358 l_line_definition_owner_code := 'S';
126359 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
126360 --
126361 l_balance_type_code          := 'A';
126362 l_segment                     := NULL;
126363 l_ccid                        := NULL;
126364 l_adr_transaction_coa_id      := NULL;
126365 l_adr_accounting_coa_id       := NULL;
126366 l_adr_flexfield_segment_code  := NULL;
126370 l_adr_value_segment_code      := NULL;
126367 l_adr_flex_value_set_id       := NULL;
126368 l_adr_value_type_code         := NULL;
126369 l_adr_value_combination_id    := NULL;
126371 
126372 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
126373 l_bflow_class_code           := '';    -- 4219869 Business Flow
126374 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
126375 l_budgetary_control_flag     := 'N';
126376 
126377 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
126378 l_bflow_applied_to_amt       := NULL; -- 5132302
126379 l_entered_amt_idx            := NULL;          -- 4262811
126380 l_accted_amt_idx             := NULL;          -- 4262811
126381 l_acc_rev_flag               := NULL;          -- 4262811
126382 l_accrual_line_num           := NULL;          -- 4262811
126383 l_tmp_amt                    := NULL;          -- 4262811
126384 --
126385  
126386 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
126387     l_balance_type_code <> 'B' THEN
126388 IF (NVL(p_source_89,'
126389 ') =  'ALWAYS_ALWAYS' OR 
126390 NVL(p_source_89,'
126391 ') =  'ALWAYS_CLEAR') AND 
126392 NVL(p_source_90,'
126393 ') =  'PAYMENT TO CLEARING ROUNDING' AND 
126394 p_source_107 IS NULL 
126395  THEN 
126396 
126397    --
126398    XLA_AE_LINES_PKG.SetNewLine;
126399 
126400    p_balance_type_code          := l_balance_type_code;
126401    -- set the flag so later we will know whether the gain loss line needs to be created
126402    
126403    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
126404      p_actual_flag :='A';
126405    END IF;
126406 
126407    --
126408    -- bulk performance
126409    --
126410    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
126411                                       p_header_num   => 0); -- 4262811
126412    --
126413    -- set accounting line options
126414    --
126415    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
126416            p_natural_side_code          => 'D'
126417          , p_gain_or_loss_flag          => 'N'
126418          , p_gl_transfer_mode_code      => 'S'
126419          , p_acct_entry_type_code       => 'A'
126420          , p_switch_side_flag           => 'Y'
126421          , p_merge_duplicate_code       => 'A'
126422          );
126423    --
126424    l_acc_rev_natural_side_code := 'C';  -- 4262811
126425    -- 
126426    --
126427    -- set accounting line type info
126428    --
126429    xla_ae_lines_pkg.SetAcctLineType
126430       (p_component_type             => l_component_type
126431       ,p_event_type_code            => l_event_type_code
126432       ,p_line_definition_owner_code => l_line_definition_owner_code
126433       ,p_line_definition_code       => l_line_definition_code
126434       ,p_accounting_line_code       => l_component_code
126435       ,p_accounting_line_type_code  => l_component_type_code
126436       ,p_accounting_line_appl_id    => l_component_appl_id
126437       ,p_amb_context_code           => l_amb_context_code
126438       ,p_entity_code                => l_entity_code
126439       ,p_event_class_code           => l_event_class_code);
126440    --
126441    -- set accounting class
126442    --
126443    xla_ae_lines_pkg.SetAcctClass(
126444            p_accounting_class_code  => 'ROUNDING'
126445          , p_ae_header_id           => l_ae_header_id
126446          );
126447 
126448    --
126449    -- set rounding class
126450    --
126451    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
126452                       'ROUNDING';
126453 
126454    --
126458    -- bulk performance
126455    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
126456    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
126457    --
126459    --
126460    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
126461 
126462    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
126463       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
126464 
126465    -- 4955764
126466    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
126467       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
126468 
126469    -- 4458381 Public Sector Enh
126470    
126471    --
126472    -- set accounting attributes for the line type
126473    --
126474    l_entered_amt_idx := 10;
126475    l_accted_amt_idx  := 15;
126476    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
126477    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
126478    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
126479    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
126480    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
126481    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
126482    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
126483    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
126484    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
126485    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
126486    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
126487    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
126488    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
126489    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
126490    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
126491    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
126492    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
126493    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
126494    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
126495    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
126496    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
126497    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
126498    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
126499    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
126500    l_rec_acct_attrs.array_date_value(12)  := p_source_110;
126501    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
126502    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
126503    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
126504    l_rec_acct_attrs.array_char_value(14)  := p_source_112;
126505    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
126506    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
126507    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
126508    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
126512    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
126509    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
126510    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
126511    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
126513    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
126514    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
126515    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
126516    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
126517    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
126518    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
126519    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
126520    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
126521    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
126522    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
126523    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
126524    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
126525 
126526    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
126527    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
126528 
126529    ---------------------------------------------------------------------------------------------------------------
126530    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
126531    ---------------------------------------------------------------------------------------------------------------
126535    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
126532    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
126533 
126534    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
126536 
126537    IF xla_accounting_cache_pkg.GetValueChar
126538          (p_source_code         => 'LEDGER_CATEGORY_CODE'
126539          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
126540    AND l_bflow_method_code = 'PRIOR_ENTRY'
126541 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
126542    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
126543          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
126544        )
126545    THEN
126546          xla_ae_lines_pkg.BflowUpgEntry
126547            (p_business_method_code    => l_bflow_method_code
126548            ,p_business_class_code     => l_bflow_class_code
126549            ,p_balance_type            => l_balance_type_code);
126550    ELSE
126551       NULL;
126552 -- No business flow processing for business flow method of NONE.
126553    END IF;
126554 
126555    --
126556    -- call analytical criteria
126557    --
126558    
126559    --
126560    -- call description
126561    --
126562    -- No description or it is inherited.
126563    --
126564    -- call ADRs
126565    -- Bug 4922099
126566    --
126567    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
126568         (NVL(l_actual_upg_option, 'N') = 'O') OR
126569         (NVL(l_enc_upg_option, 'N') = 'O')
126570       )
126571    THEN
126572    NULL;
126573    --
126574    --
126575    
126576   l_ccid := AcctDerRule_40(
126577            p_application_id           => p_application_id
126578          , p_ae_header_id             => l_ae_header_id 
126579 , p_source_3 => p_source_3
126580 , p_source_3_meaning => p_source_3_meaning
126581 , p_source_18 => p_source_18
126582 , p_source_37 => p_source_37
126583          , x_transaction_coa_id       => l_adr_transaction_coa_id
126584          , x_accounting_coa_id        => l_adr_accounting_coa_id
126585          , x_value_type_code          => l_adr_value_type_code
126586          , p_side                     => 'NA'
126587    );
126588 
126589    xla_ae_lines_pkg.set_ccid(
126590     p_code_combination_id          => l_ccid
126591   , p_value_type_code              => l_adr_value_type_code
126592   , p_transaction_coa_id           => l_adr_transaction_coa_id
126593   , p_accounting_coa_id            => l_adr_accounting_coa_id
126594   , p_adr_code                     => 'AP_ROUNDING'
126595   , p_adr_type_code                => 'S'
126596   , p_component_type               => l_component_type
126597   , p_component_code               => l_component_code
126598   , p_component_type_code          => l_component_type_code
126599   , p_component_appl_id            => l_component_appl_id
126600   , p_amb_context_code             => l_amb_context_code
126601   , p_side                         => 'NA'
126602   );
126603 
126604 
126605    --
126606    --
126607    END IF;
126608    --
126609    -- Bug 4922099
126610    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
126611           (NVL(l_enc_upg_option, 'N') = 'O')
126612         ) AND
126613         (l_bflow_method_code = 'PRIOR_ENTRY')
126614       )
126615    THEN
126616       IF
126617       --
126618       1 = 2
126619       --
126620       THEN
126621       xla_accounting_err_pkg.build_message
126622                                     (p_appli_s_name            => 'XLA'
126623                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
126624                                     ,p_token_1                 => 'LINE_NUMBER'
126625                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
126626                                     ,p_token_2                 => 'LINE_TYPE_NAME'
126627                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
126628                                                                              l_component_type
126629                                                                             ,l_component_code
126630                                                                             ,l_component_type_code
126631                                                                             ,l_component_appl_id
126632                                                                             ,l_amb_context_code
126633                                                                             ,l_entity_code
126634                                                                             ,l_event_class_code
126635                                                                            )
126636                                     ,p_token_3                 => 'OWNER'
126637                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
126638                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
126639                                                                           ,p_lookup_code    => l_component_type_code
126640                                                                          )
126641                                     ,p_token_4                 => 'PRODUCT_NAME'
126642                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
126646                                     ,p_ae_header_id            =>  NULL
126643                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
126644                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
126645                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
126647                                        );
126648 
126649         IF (C_LEVEL_ERROR>= g_log_level) THEN
126650                  trace
126651                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
126652                       ,p_level    => C_LEVEL_ERROR
126653                       ,p_module   => l_log_module);
126654         END IF;
126655       END IF;
126656    END IF;
126657    --
126658    --
126659    ------------------------------------------------------------------------------------------------
126660    -- 4219869 Business Flow
126661    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
126662    -- Prior Entry.  Currently, the following code is always generated.
126663    ------------------------------------------------------------------------------------------------
126664    XLA_AE_LINES_PKG.ValidateCurrentLine;
126665 
126666    ------------------------------------------------------------------------------------
126667    -- 4219869 Business Flow
126668    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
126669    ------------------------------------------------------------------------------------
126670    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
126671 
126672    ----------------------------------------------------------------------------------
126673    -- 4219869 Business Flow
126674    -- Update journal entry status -- Need to generate this within IF <condition>
126675    ----------------------------------------------------------------------------------
126676    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
126677          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
126678          ,p_balance_type_code => l_balance_type_code
126679          );
126680 
126681    -------------------------------------------------------------------------------------------
126682    -- 4262811 - Generate the Accrual Reversal lines
126683    -------------------------------------------------------------------------------------------
126684    BEGIN
126685       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
126686                               (g_array_event(p_event_id).array_value_num('header_index'));
126687       IF l_acc_rev_flag IS NULL THEN
126688          l_acc_rev_flag := 'N';
126689       END IF;
126690    EXCEPTION
126691       WHEN OTHERS THEN
126692          l_acc_rev_flag := 'N';
126693    END;
126694    --
126695    IF (l_acc_rev_flag = 'Y') THEN
126696 
126697        -- 4645092  ------------------------------------------------------------------------------
126698        -- To allow MPA report to determine if it should generate report process
126699        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
126700        ------------------------------------------------------------------------------------------
126701 
126702        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
126703        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
126704    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
126705    -- call ADRs
126706    -- Bug 4922099
126707    --
126708    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
126709         (NVL(l_actual_upg_option, 'N') = 'O') OR
126710         (NVL(l_enc_upg_option, 'N') = 'O')
126711       )
126712    THEN
126713    NULL;
126714    --
126715    --
126716    
126717   l_ccid := AcctDerRule_40(
126718            p_application_id           => p_application_id
126719          , p_ae_header_id             => l_ae_header_id 
126720 , p_source_3 => p_source_3
126721 , p_source_3_meaning => p_source_3_meaning
126722 , p_source_18 => p_source_18
126723 , p_source_37 => p_source_37
126724          , x_transaction_coa_id       => l_adr_transaction_coa_id
126725          , x_accounting_coa_id        => l_adr_accounting_coa_id
126726          , x_value_type_code          => l_adr_value_type_code
126727          , p_side                     => 'NA'
126728    );
126729 
126730    xla_ae_lines_pkg.set_ccid(
126731     p_code_combination_id          => l_ccid
126732   , p_value_type_code              => l_adr_value_type_code
126733   , p_transaction_coa_id           => l_adr_transaction_coa_id
126734   , p_accounting_coa_id            => l_adr_accounting_coa_id
126735   , p_adr_code                     => 'AP_ROUNDING'
126736   , p_adr_type_code                => 'S'
126737   , p_component_type               => l_component_type
126738   , p_component_code               => l_component_code
126739   , p_component_type_code          => l_component_type_code
126740   , p_component_appl_id            => l_component_appl_id
126741   , p_amb_context_code             => l_amb_context_code
126742   , p_side                         => 'NA'
126743   );
126744 
126745 
126746    --
126747    --
126748    END IF;
126749 
126750        --
126751        -- Update the line information that should be overwritten
126752        --
126753        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
126754                                          p_header_num   => 1);
126755        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
126756 
126757        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
126758 
126759        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
126763       --
126760           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
126761        END IF;
126762 
126764       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
126765       --
126766       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
126767           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
126768       ELSE
126769           ---------------------------------------------------------------------------------------------------
126770           -- 4262811a Switch Sign
126774                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126771           ---------------------------------------------------------------------------------------------------
126772           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
126773           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
126775           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
126776                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126777           -- 5132302
126778           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
126779                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126780 
126781       END IF;
126782 
126783       -- 4955764
126784       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
126785       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
126786 
126787 
126788       XLA_AE_LINES_PKG.ValidateCurrentLine;
126789       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
126790 
126791       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
126792                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
126793                ,p_balance_type_code => l_balance_type_code);
126794 
126795    END IF;
126796 
126797    -----------------------------------------------------------------------------------------
126798    -- 4262811 Multiperiod Accounting
126799    -----------------------------------------------------------------------------------------
126800      -- No MPA option is assigned.
126801 
126802 
126803 END IF;
126804 END IF;
126805 --
126806 
126807 --
126808 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126809    trace
126810       (p_msg      => 'END of AcctLineType_212'
126811       ,p_level    => C_LEVEL_PROCEDURE
126812       ,p_module   => l_log_module);
126813 END IF;
126814 --
126815 EXCEPTION
126816   WHEN xla_exceptions_pkg.application_exception THEN
126817       RAISE;
126818   WHEN OTHERS THEN
126819        xla_exceptions_pkg.raise_message
126820            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_212');
126821 END AcctLineType_212;
126822 --
126823 
126824 ---------------------------------------
126825 --
126826 -- PRIVATE FUNCTION
126827 --         AcctLineType_213
126828 --
126829 ---------------------------------------
126830 PROCEDURE AcctLineType_213 (
126831   p_application_id        IN NUMBER
126832  ,p_event_id              IN NUMBER
126833  ,p_calculate_acctd_flag  IN VARCHAR2
126834  ,p_calculate_g_l_flag    IN VARCHAR2
126835  ,p_actual_flag           IN OUT VARCHAR2
126836  ,p_balance_type_code     OUT VARCHAR2
126837  ,p_gain_or_loss_ref      OUT VARCHAR2
126838  
126839 --Invoice Distribution Description
126840  , p_source_1            IN VARCHAR2
126841 --Invoice Distribution Ledger Amount
126842  , p_source_9            IN NUMBER
126843 --Invoice Distribution Account
126844  , p_source_18            IN NUMBER
126845 --Prepaid Expense Account Source Option
126846  , p_source_19            IN VARCHAR2
126847  , p_source_19_meaning    IN VARCHAR2
126848 --Purchase Order Number
126849  , p_source_20            IN VARCHAR2
126850 --Invoice Distribution Type
126851  , p_source_21            IN VARCHAR2
126852  , p_source_21_meaning    IN VARCHAR2
126853 --Purchase Order Charge Account
126854  , p_source_33            IN NUMBER
126855 --Accounting Reversal Indicator
126856  , p_source_41            IN VARCHAR2
126857 --Distribution Link Type
126858  , p_source_43            IN VARCHAR2
126859 --Allocation to Main Distribution Identifier
126860  , p_source_45            IN NUMBER
126861 --Invoice Identifier
126862  , p_source_46            IN NUMBER
126863 --Invoice Distribution Identifier
126864  , p_source_52            IN NUMBER
126865 --Payables Encumbrance Upgrade Credit Account
126866  , p_source_53            IN NUMBER
126867 --Payables Encumbrance Upgrade Credit Amount
126871 --Payables Encumbrance Upgrade Credit Base Amount
126868  , p_source_54            IN NUMBER
126869 --Invoice Currency Code
126870  , p_source_55            IN VARCHAR2
126872  , p_source_56            IN NUMBER
126873 --Payables Encumbrance Upgrade Debit Account
126874  , p_source_57            IN NUMBER
126875 --Payables Encumbrance Upgrade Debit Amount
126876  , p_source_58            IN NUMBER
126877 --Payables Encumbrance Upgrade Debit Base Amount
126878  , p_source_59            IN NUMBER
126879 --Payables Encumbrance Upgrade Option
126880  , p_source_60            IN VARCHAR2
126881 --Invoice Distribution Amount
126882  , p_source_61            IN NUMBER
126883 --Deferred Accounting End Date
126884  , p_source_65            IN DATE
126885 --Deferred Accounting Option
126886  , p_source_66            IN VARCHAR2
126887 --Deferred Accounting Start Date
126888  , p_source_67            IN DATE
126889 --Override Accounted Amount Indicator
126890  , p_source_68            IN VARCHAR2
126891  , p_source_68_meaning    IN VARCHAR2
126892 --Invoice Supplier Identifier
126893  , p_source_69            IN NUMBER
126894 --Invoice Supplier Site Identifier
126895  , p_source_70            IN NUMBER
126896 --Third Party Type
126897  , p_source_71            IN VARCHAR2
126898 --Parent Reversal Identifier
126899  , p_source_72            IN NUMBER
126900 --Invoice Distribution Statistical Amount
126901  , p_source_73            IN NUMBER
126902 --Invoice Distribution Tax Line Identifier
126903  , p_source_74            IN NUMBER
126904 --Invoice Distribution Tax Distribution Identifier from Tax
126905  , p_source_75            IN NUMBER
126906 --Invoice Distribution Summary Tax Line Identifier
126907  , p_source_76            IN NUMBER
126908 --Payables Upgrade Credit Encumbrance Type Identifier
126909  , p_source_77            IN NUMBER
126910 --Payables Upgrade Debit Encumbrance Type Identifier
126911  , p_source_78            IN NUMBER
126912 --Business Flow Accounts Payable Application Identifier
126913  , p_source_79            IN NUMBER
126914 --Business Flow Invoice Distribution Type
126915  , p_source_80            IN VARCHAR2
126916 --Business Flow Invoice Entity Code
126917  , p_source_81            IN VARCHAR2
126918 --Business Flow Invoice Distribution Identifier
126919  , p_source_82            IN NUMBER
126920 --Business Flow Invoice Identifier
126921  , p_source_83            IN NUMBER
126922 --Accrue on Receipt Option
126923  , p_source_84            IN VARCHAR2
126924  , p_source_84_meaning    IN VARCHAR2
126925 --Invoice Exchange Date
126926  , p_source_136            IN DATE
126930  , p_source_138            IN VARCHAR2
126927 --Invoice Exchange Rate
126928  , p_source_137            IN NUMBER
126929 --Invoice Exchange Rate Type
126931 )
126932 IS
126933 
126934 l_component_type              VARCHAR2(80);
126935 l_component_code              VARCHAR2(30);
126936 l_component_type_code         VARCHAR2(1);
126937 l_component_appl_id           INTEGER;
126938 l_amb_context_code            VARCHAR2(30);
126939 l_entity_code                 VARCHAR2(30);
126940 l_event_class_code            VARCHAR2(30);
126941 l_ae_header_id                NUMBER;
126942 l_event_type_code             VARCHAR2(30);
126943 l_line_definition_code        VARCHAR2(30);
126944 l_line_definition_owner_code  VARCHAR2(1);
126945 --
126946 -- adr variables
126947 l_segment                     VARCHAR2(30);
126948 l_ccid                        NUMBER;
126949 l_adr_transaction_coa_id      NUMBER;
126950 l_adr_accounting_coa_id       NUMBER;
126951 l_adr_flexfield_segment_code  VARCHAR2(30);
126952 l_adr_flex_value_set_id       NUMBER;
126953 l_adr_value_type_code         VARCHAR2(30);
126954 l_adr_value_combination_id    NUMBER;
126955 l_adr_value_segment_code      VARCHAR2(30);
126956 
126957 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
126958 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
126959 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
126960 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
126961 
126962 -- 4262811 Variables ------------------------------------------------------------------------------------------
126963 l_entered_amt_idx             NUMBER;
126964 l_accted_amt_idx              NUMBER;
126965 l_acc_rev_flag                VARCHAR2(1);
126966 l_accrual_line_num            NUMBER;
126967 l_tmp_amt                     NUMBER;
126968 l_acc_rev_natural_side_code   VARCHAR2(1);
126969 
126970 l_num_entries                 NUMBER;
126971 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
126975 l_recog_line_1                NUMBER;
126972 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
126973 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
126974 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
126976 l_recog_line_2                NUMBER;
126977 
126978 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
126979 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
126980 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
126981 
126982 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
126983 
126984 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
126985 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
126986 
126987 ---------------------------------------------------------------------------------------------------------------
126988 
126989 
126990 --
126991 -- bulk performance
126992 --
126993 l_balance_type_code           VARCHAR2(1);
126994 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
126995 l_log_module                  VARCHAR2(240);
126996 
126997 --
126998 -- Upgrade strategy
126999 --
127000 l_actual_upg_option           VARCHAR2(1);
127001 l_enc_upg_option           VARCHAR2(1);
127002 
127003 --
127004 BEGIN
127005 --
127006 IF g_log_enabled THEN
127007       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_213';
127008 END IF;
127009 --
127010 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
127011 
127012       trace
127013          (p_msg      => 'BEGIN of AcctLineType_213'
127014          ,p_level    => C_LEVEL_PROCEDURE
127015          ,p_module   => l_log_module);
127016 
127017 END IF;
127018 --
127019 l_component_type             := 'AMB_JLT';
127020 l_component_code             := 'AP_PREPAID_EXPENSE_PREPAY';
127021 l_component_type_code        := 'S';
127022 l_component_appl_id          :=  200;
127023 l_amb_context_code           := 'DEFAULT';
127024 l_entity_code                := 'AP_INVOICES';
127025 l_event_class_code           := 'PREPAYMENTS';
127026 l_event_type_code            := 'PREPAYMENTS_ALL';
127027 l_line_definition_owner_code := 'S';
127028 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
127029 --
127030 l_balance_type_code          := 'A';
127031 l_segment                     := NULL;
127032 l_ccid                        := NULL;
127033 l_adr_transaction_coa_id      := NULL;
127034 l_adr_accounting_coa_id       := NULL;
127035 l_adr_flexfield_segment_code  := NULL;
127036 l_adr_flex_value_set_id       := NULL;
127037 l_adr_value_type_code         := NULL;
127038 l_adr_value_combination_id    := NULL;
127039 l_adr_value_segment_code      := NULL;
127040 
127041 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
127042 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
127043 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
127044 l_budgetary_control_flag     := 'N';
127045 
127046 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
127047 l_bflow_applied_to_amt       := NULL; -- 5132302
127048 l_entered_amt_idx            := NULL;          -- 4262811
127049 l_accted_amt_idx             := NULL;          -- 4262811
127050 l_acc_rev_flag               := NULL;          -- 4262811
127051 l_accrual_line_num           := NULL;          -- 4262811
127052 l_tmp_amt                    := NULL;          -- 4262811
127053 --
127054  
127055 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
127056     l_balance_type_code <> 'B' THEN
127057 IF NVL(p_source_21,'
127058 ') =  'RETROEXPENSE' OR 
127059 NVL(p_source_21,'
127060 ') =  'ITEM' OR 
127061 (NVL(p_source_21,'
127062 ') =  'ERV' AND 
127063 NVL(p_source_84,'
127064 ') <>  'Y') OR 
127065 (NVL(p_source_21,'
127066 ') =  'IPV' AND 
127067 NVL(p_source_84,'
127068 ') <>  'Y')
127069  THEN 
127070 
127071    --
127072    XLA_AE_LINES_PKG.SetNewLine;
127073 
127074    p_balance_type_code          := l_balance_type_code;
127075    -- set the flag so later we will know whether the gain loss line needs to be created
127076    
127077    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
127078      p_actual_flag :='A';
127079    END IF;
127080 
127081    --
127082    -- bulk performance
127083    --
127084    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
127085                                       p_header_num   => 0); -- 4262811
127086    --
127087    -- set accounting line options
127088    --
127089    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
127093          , p_acct_entry_type_code       => 'A'
127090            p_natural_side_code          => 'D'
127091          , p_gain_or_loss_flag          => 'N'
127092          , p_gl_transfer_mode_code      => 'S'
127094          , p_switch_side_flag           => 'Y'
127095          , p_merge_duplicate_code       => 'A'
127096          );
127097    --
127098    l_acc_rev_natural_side_code := 'C';  -- 4262811
127099    -- 
127100    --
127101    -- set accounting line type info
127102    --
127103    xla_ae_lines_pkg.SetAcctLineType
127104       (p_component_type             => l_component_type
127105       ,p_event_type_code            => l_event_type_code
127106       ,p_line_definition_owner_code => l_line_definition_owner_code
127107       ,p_line_definition_code       => l_line_definition_code
127108       ,p_accounting_line_code       => l_component_code
127109       ,p_accounting_line_type_code  => l_component_type_code
127110       ,p_accounting_line_appl_id    => l_component_appl_id
127111       ,p_amb_context_code           => l_amb_context_code
127112       ,p_entity_code                => l_entity_code
127113       ,p_event_class_code           => l_event_class_code);
127114    --
127115    -- set accounting class
127116    --
127117    xla_ae_lines_pkg.SetAcctClass(
127118            p_accounting_class_code  => 'PREPAID_EXPENSE'
127119          , p_ae_header_id           => l_ae_header_id
127120          );
127121 
127122    --
127123    -- set rounding class
127124    --
127125    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
127126                       'PREPAID_EXPENSE';
127127 
127128    --
127129    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
127130    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
127131    --
127132    -- bulk performance
127133    --
127134    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
127135 
127136    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
127137       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
127138 
127139    -- 4955764
127140    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
127141       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
127142 
127143    -- 4458381 Public Sector Enh
127144    
127145    --
127146    -- set accounting attributes for the line type
127147    --
127148    l_entered_amt_idx := 23;
127149    l_accted_amt_idx  := 28;
127150    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
127151    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
127152    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
127153    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
127154    l_rec_acct_attrs.array_num_value(2)  := 
127155 xla_ae_sources_pkg.GetSystemSourceNum(
127156    p_source_code           => 'XLA_EVENT_APPL_ID'
127157  , p_source_type_code      => 'Y'
127158  , p_source_application_id =>  602
127159 );
127160    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
127161    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
127162    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
127163    l_rec_acct_attrs.array_char_value(4)  := 
127164 xla_ae_sources_pkg.GetSystemSourceChar(
127165    p_source_code           => 'XLA_ENTITY_CODE'
127166  , p_source_type_code      => 'Y'
127167  , p_source_application_id =>  602
127168 );
127169    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
127170    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
127171    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
127172    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
127173    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
127174    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
127175    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
127176    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
127177    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
127178    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
127179    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
127180    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
127181    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
127182    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
127183    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
127184    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
127188    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
127185    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
127186    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
127187    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
127189    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
127190    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
127191    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
127192    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
127193    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
127194    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
127195    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
127196    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
127197    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
127198    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
127199    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
127200    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
127201    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
127202    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
127203    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
127204    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
127205    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
127206    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
127207    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
127208    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
127209    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
127210    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
127211    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
127212    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
127213    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
127214    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
127215    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
127216    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
127217    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
127218    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
127219    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
127220    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
127221    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
127222    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
127223    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
127224    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
127225    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
127226    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
127227    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
127228    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
127229    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
127230    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
127231    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
127232    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
127233    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
127234    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
127235    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
127236    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
127237    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
127238    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
127239    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
127240    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
127241    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
127242    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
127243    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
127244    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
127245    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
127246    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
127247 
127248    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
127249    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
127250 
127251    ---------------------------------------------------------------------------------------------------------------
127252    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
127253    ---------------------------------------------------------------------------------------------------------------
127254    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
127255 
127256    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
127257    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
127258 
127259    IF xla_accounting_cache_pkg.GetValueChar
127260          (p_source_code         => 'LEDGER_CATEGORY_CODE'
127261          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
127262    AND l_bflow_method_code = 'PRIOR_ENTRY'
127263 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
127264    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
127265          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
127266        )
127267    THEN
127268          xla_ae_lines_pkg.BflowUpgEntry
127269            (p_business_method_code    => l_bflow_method_code
127270            ,p_business_class_code     => l_bflow_class_code
127271            ,p_balance_type            => l_balance_type_code);
127272    ELSE
127273       NULL;
127274 -- No business flow processing for business flow method of NONE.
127275    END IF;
127276 
127277    --
127278    -- call analytical criteria
127279    --
127283    --
127280    
127281    --
127282    -- call description
127284    
127285 xla_ae_lines_pkg.SetLineDescription(
127286    p_ae_header_id => l_ae_header_id
127287   ,p_description  => Description_2 (
127288      p_application_id         => p_application_id
127289    , p_ae_header_id           => l_ae_header_id 
127290 , p_source_1 => p_source_1
127291    )
127292 );
127293 
127294 
127295    --
127296    -- call ADRs
127297    -- Bug 4922099
127298    --
127299    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
127300         (NVL(l_actual_upg_option, 'N') = 'O') OR
127301         (NVL(l_enc_upg_option, 'N') = 'O')
127302       )
127303    THEN
127304    NULL;
127305    --
127306    --
127307    
127308   l_ccid := AcctDerRule_36(
127309            p_application_id           => p_application_id
127310          , p_ae_header_id             => l_ae_header_id 
127311 , p_source_18 => p_source_18
127312 , p_source_19 => p_source_19
127313 , p_source_19_meaning => p_source_19_meaning
127314 , p_source_20 => p_source_20
127315 , p_source_21 => p_source_21
127316 , p_source_21_meaning => p_source_21_meaning
127317 , p_source_33 => p_source_33
127318          , x_transaction_coa_id       => l_adr_transaction_coa_id
127319          , x_accounting_coa_id        => l_adr_accounting_coa_id
127320          , x_value_type_code          => l_adr_value_type_code
127321          , p_side                     => 'NA'
127322    );
127323 
127324    xla_ae_lines_pkg.set_ccid(
127325     p_code_combination_id          => l_ccid
127326   , p_value_type_code              => l_adr_value_type_code
127327   , p_transaction_coa_id           => l_adr_transaction_coa_id
127328   , p_accounting_coa_id            => l_adr_accounting_coa_id
127329   , p_adr_code                     => 'AP_PREPAY_INVOICE_DIST'
127330   , p_adr_type_code                => 'S'
127331   , p_component_type               => l_component_type
127332   , p_component_code               => l_component_code
127333   , p_component_type_code          => l_component_type_code
127334   , p_component_appl_id            => l_component_appl_id
127335   , p_amb_context_code             => l_amb_context_code
127336   , p_side                         => 'NA'
127337   );
127338 
127339 
127340    l_segment := AcctDerRule_12(
127341            p_application_id           => p_application_id
127342          , p_ae_header_id             => l_ae_header_id 
127343 , p_source_18 => p_source_18
127344 , p_source_19 => p_source_19
127345 , p_source_19_meaning => p_source_19_meaning
127346 , p_source_20 => p_source_20
127347 , p_source_21 => p_source_21
127348 , p_source_21_meaning => p_source_21_meaning
127349          , x_transaction_coa_id       => l_adr_transaction_coa_id
127350          , x_accounting_coa_id        => l_adr_accounting_coa_id
127351          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
127352          , x_flex_value_set_id        => l_adr_flex_value_set_id
127353          , x_value_type_code          => l_adr_value_type_code
127354          , x_value_combination_id     => l_adr_value_combination_id
127355          , x_value_segment_code       => l_adr_value_segment_code
127356          , p_side                     => 'NA'
127357          , p_override_seg_flag        => 'Y'
127358    );
127359 
127360    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
127361 
127362       xla_ae_lines_pkg.set_segment(
127363           p_to_segment_code         => 'GL_ACCOUNT'
127364         , p_segment_value           => l_segment
127365         , p_from_segment_code       => l_adr_value_segment_code
127366         , p_from_combination_id     => l_adr_value_combination_id
127367         , p_value_type_code         => l_adr_value_type_code
127368         , p_transaction_coa_id      => l_adr_transaction_coa_id
127369         , p_accounting_coa_id       => l_adr_accounting_coa_id
127370         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
127371         , p_flex_value_set_id       => l_adr_flex_value_set_id
127372         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_ITEM'
127373         , p_adr_type_code           => 'S'
127374         , p_component_type          => l_component_type
127375         , p_component_code          => l_component_code
127376         , p_component_type_code     => l_component_type_code
127377         , p_component_appl_id       => l_component_appl_id
127378         , p_amb_context_code        => l_amb_context_code
127379         , p_entity_code             => 'AP_INVOICES'
127380         , p_event_class_code        => 'PREPAYMENTS'
127381         , p_side                    => 'NA'
127382         );
127383 
127384   END IF;
127385 
127386    --
127387    --
127388    END IF;
127389    --
127390    -- Bug 4922099
127391    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
127392           (NVL(l_enc_upg_option, 'N') = 'O')
127393         ) AND
127394         (l_bflow_method_code = 'PRIOR_ENTRY')
127395       )
127396    THEN
127397       IF
127398       --
127399       1 = 2
127400       --
127401       THEN
127402       xla_accounting_err_pkg.build_message
127403                                     (p_appli_s_name            => 'XLA'
127404                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
127405                                     ,p_token_1                 => 'LINE_NUMBER'
127406                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
127407                                     ,p_token_2                 => 'LINE_TYPE_NAME'
127408                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
127409                                                                              l_component_type
127410                                                                             ,l_component_code
127414                                                                             ,l_entity_code
127411                                                                             ,l_component_type_code
127412                                                                             ,l_component_appl_id
127413                                                                             ,l_amb_context_code
127415                                                                             ,l_event_class_code
127416                                                                            )
127417                                     ,p_token_3                 => 'OWNER'
127418                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
127419                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
127420                                                                           ,p_lookup_code    => l_component_type_code
127421                                                                          )
127422                                     ,p_token_4                 => 'PRODUCT_NAME'
127423                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
127424                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
127425                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
127426                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
127427                                     ,p_ae_header_id            =>  NULL
127428                                        );
127429 
127430         IF (C_LEVEL_ERROR>= g_log_level) THEN
127431                  trace
127432                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
127433                       ,p_level    => C_LEVEL_ERROR
127434                       ,p_module   => l_log_module);
127435         END IF;
127436       END IF;
127437    END IF;
127438    --
127439    --
127440    ------------------------------------------------------------------------------------------------
127441    -- 4219869 Business Flow
127442    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
127443    -- Prior Entry.  Currently, the following code is always generated.
127444    ------------------------------------------------------------------------------------------------
127445    XLA_AE_LINES_PKG.ValidateCurrentLine;
127446 
127447    ------------------------------------------------------------------------------------
127448    -- 4219869 Business Flow
127449    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
127450    ------------------------------------------------------------------------------------
127451    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
127452 
127453    ----------------------------------------------------------------------------------
127454    -- 4219869 Business Flow
127455    -- Update journal entry status -- Need to generate this within IF <condition>
127456    ----------------------------------------------------------------------------------
127457    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
127458          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
127459          ,p_balance_type_code => l_balance_type_code
127460          );
127461 
127462    -------------------------------------------------------------------------------------------
127463    -- 4262811 - Generate the Accrual Reversal lines
127464    -------------------------------------------------------------------------------------------
127465    BEGIN
127466       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
127467                               (g_array_event(p_event_id).array_value_num('header_index'));
127468       IF l_acc_rev_flag IS NULL THEN
127469          l_acc_rev_flag := 'N';
127470       END IF;
127471    EXCEPTION
127472       WHEN OTHERS THEN
127473          l_acc_rev_flag := 'N';
127477 
127474    END;
127475    --
127476    IF (l_acc_rev_flag = 'Y') THEN
127478        -- 4645092  ------------------------------------------------------------------------------
127479        -- To allow MPA report to determine if it should generate report process
127480        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
127481        ------------------------------------------------------------------------------------------
127482 
127483        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
127484        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
127485    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
127486    -- call ADRs
127487    -- Bug 4922099
127488    --
127489    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
127490         (NVL(l_actual_upg_option, 'N') = 'O') OR
127491         (NVL(l_enc_upg_option, 'N') = 'O')
127492       )
127493    THEN
127494    NULL;
127495    --
127496    --
127497    
127498   l_ccid := AcctDerRule_36(
127499            p_application_id           => p_application_id
127500          , p_ae_header_id             => l_ae_header_id 
127501 , p_source_18 => p_source_18
127502 , p_source_19 => p_source_19
127503 , p_source_19_meaning => p_source_19_meaning
127504 , p_source_20 => p_source_20
127505 , p_source_21 => p_source_21
127506 , p_source_21_meaning => p_source_21_meaning
127507 , p_source_33 => p_source_33
127508          , x_transaction_coa_id       => l_adr_transaction_coa_id
127509          , x_accounting_coa_id        => l_adr_accounting_coa_id
127510          , x_value_type_code          => l_adr_value_type_code
127511          , p_side                     => 'NA'
127512    );
127513 
127514    xla_ae_lines_pkg.set_ccid(
127515     p_code_combination_id          => l_ccid
127516   , p_value_type_code              => l_adr_value_type_code
127517   , p_transaction_coa_id           => l_adr_transaction_coa_id
127518   , p_accounting_coa_id            => l_adr_accounting_coa_id
127519   , p_adr_code                     => 'AP_PREPAY_INVOICE_DIST'
127520   , p_adr_type_code                => 'S'
127521   , p_component_type               => l_component_type
127522   , p_component_code               => l_component_code
127523   , p_component_type_code          => l_component_type_code
127524   , p_component_appl_id            => l_component_appl_id
127525   , p_amb_context_code             => l_amb_context_code
127526   , p_side                         => 'NA'
127527   );
127528 
127529 
127530    l_segment := AcctDerRule_12(
127531            p_application_id           => p_application_id
127532          , p_ae_header_id             => l_ae_header_id 
127533 , p_source_18 => p_source_18
127534 , p_source_19 => p_source_19
127535 , p_source_19_meaning => p_source_19_meaning
127536 , p_source_20 => p_source_20
127537 , p_source_21 => p_source_21
127538 , p_source_21_meaning => p_source_21_meaning
127539          , x_transaction_coa_id       => l_adr_transaction_coa_id
127540          , x_accounting_coa_id        => l_adr_accounting_coa_id
127541          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
127542          , x_flex_value_set_id        => l_adr_flex_value_set_id
127543          , x_value_type_code          => l_adr_value_type_code
127544          , x_value_combination_id     => l_adr_value_combination_id
127545          , x_value_segment_code       => l_adr_value_segment_code
127546          , p_side                     => 'NA'
127547          , p_override_seg_flag        => 'Y'
127548    );
127549 
127550    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
127551 
127552       xla_ae_lines_pkg.set_segment(
127553           p_to_segment_code         => 'GL_ACCOUNT'
127554         , p_segment_value           => l_segment
127555         , p_from_segment_code       => l_adr_value_segment_code
127556         , p_from_combination_id     => l_adr_value_combination_id
127557         , p_value_type_code         => l_adr_value_type_code
127558         , p_transaction_coa_id      => l_adr_transaction_coa_id
127559         , p_accounting_coa_id       => l_adr_accounting_coa_id
127560         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
127561         , p_flex_value_set_id       => l_adr_flex_value_set_id
127562         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_ITEM'
127563         , p_adr_type_code           => 'S'
127564         , p_component_type          => l_component_type
127565         , p_component_code          => l_component_code
127566         , p_component_type_code     => l_component_type_code
127567         , p_component_appl_id       => l_component_appl_id
127568         , p_amb_context_code        => l_amb_context_code
127569         , p_entity_code             => 'AP_INVOICES'
127570         , p_event_class_code        => 'PREPAYMENTS'
127571         , p_side                    => 'NA'
127572         );
127573 
127574   END IF;
127575 
127576    --
127577    --
127578    END IF;
127579 
127580        --
127581        -- Update the line information that should be overwritten
127582        --
127583        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
127584                                          p_header_num   => 1);
127585        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
127586 
127587        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
127588 
127589        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
127590           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
127591        END IF;
127592 
127593       --
127597           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
127594       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
127595       --
127596       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
127598       ELSE
127599           ---------------------------------------------------------------------------------------------------
127600           -- 4262811a Switch Sign
127601           ---------------------------------------------------------------------------------------------------
127602           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
127603           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
127604                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
127605           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
127606                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
127607           -- 5132302
127611       END IF;
127608           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
127609                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
127610 
127612 
127613       -- 4955764
127614       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
127615       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
127616 
127617 
127618       XLA_AE_LINES_PKG.ValidateCurrentLine;
127619       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
127620 
127621       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
127622                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
127623                ,p_balance_type_code => l_balance_type_code);
127624 
127625    END IF;
127626 
127627    -----------------------------------------------------------------------------------------
127628    -- 4262811 Multiperiod Accounting
127629    -----------------------------------------------------------------------------------------
127630      -- No MPA option is assigned.
127631 
127632 
127633 END IF;
127634 END IF;
127635 --
127636 
127637 --
127638 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
127639    trace
127640       (p_msg      => 'END of AcctLineType_213'
127641       ,p_level    => C_LEVEL_PROCEDURE
127642       ,p_module   => l_log_module);
127643 END IF;
127644 --
127645 EXCEPTION
127646   WHEN xla_exceptions_pkg.application_exception THEN
127647       RAISE;
127648   WHEN OTHERS THEN
127649        xla_exceptions_pkg.raise_message
127650            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_213');
127651 END AcctLineType_213;
127652 --
127653 
127654 ---------------------------------------
127655 --
127656 -- PRIVATE FUNCTION
127657 --         AcctLineType_214
127658 --
127659 ---------------------------------------
127660 PROCEDURE AcctLineType_214 (
127661   p_application_id        IN NUMBER
127662  ,p_event_id              IN NUMBER
127663  ,p_calculate_acctd_flag  IN VARCHAR2
127664  ,p_calculate_g_l_flag    IN VARCHAR2
127665  ,p_actual_flag           IN OUT VARCHAR2
127666  ,p_balance_type_code     OUT VARCHAR2
127667  ,p_gain_or_loss_ref      OUT VARCHAR2
127668  
127669 --Accounting Reversal Indicator
127670  , p_source_41            IN VARCHAR2
127671 --Distribution Link Type
127672  , p_source_43            IN VARCHAR2
127673 --Invoice Identifier
127674  , p_source_46            IN NUMBER
127675 --Payables Encumbrance Upgrade Credit Account
127676  , p_source_53            IN NUMBER
127677 --Payables Encumbrance Upgrade Credit Amount
127678  , p_source_54            IN NUMBER
127679 --Invoice Currency Code
127680  , p_source_55            IN VARCHAR2
127681 --Payables Encumbrance Upgrade Credit Base Amount
127682  , p_source_56            IN NUMBER
127683 --Payables Encumbrance Upgrade Debit Account
127684  , p_source_57            IN NUMBER
127685 --Payables Encumbrance Upgrade Debit Amount
127686  , p_source_58            IN NUMBER
127687 --Payables Encumbrance Upgrade Debit Base Amount
127688  , p_source_59            IN NUMBER
127689 --Payables Encumbrance Upgrade Option
127690  , p_source_60            IN VARCHAR2
127691 --Deferred Accounting End Date
127692  , p_source_65            IN DATE
127693 --Deferred Accounting Option
127694  , p_source_66            IN VARCHAR2
127698  , p_source_68            IN VARCHAR2
127695 --Deferred Accounting Start Date
127696  , p_source_67            IN DATE
127697 --Override Accounted Amount Indicator
127699  , p_source_68_meaning    IN VARCHAR2
127700 --Third Party Type
127701  , p_source_71            IN VARCHAR2
127702 --Invoice Distribution Tax Line Identifier
127703  , p_source_74            IN NUMBER
127704 --Invoice Distribution Tax Distribution Identifier from Tax
127705  , p_source_75            IN NUMBER
127706 --Invoice Distribution Summary Tax Line Identifier
127707  , p_source_76            IN NUMBER
127708 --Payables Upgrade Credit Encumbrance Type Identifier
127709  , p_source_77            IN NUMBER
127710 --Payables Upgrade Debit Encumbrance Type Identifier
127711  , p_source_78            IN NUMBER
127712 --Business Flow Accounts Payable Application Identifier
127713  , p_source_79            IN NUMBER
127714 --Prepayment Distribution Type
127715  , p_source_118            IN VARCHAR2
127716 --Deferred Prepayment Settlement Option Code
127717  , p_source_119            IN VARCHAR2
127718  , p_source_119_meaning    IN VARCHAR2
127719 --Prepayment Application Distribution Identifier
127720  , p_source_120            IN NUMBER
127721 --Upgrade Encumbrance Credit Account Class
127722  , p_source_125            IN VARCHAR2
127723 --Upgrade Encumbrance Debit Account Class
127724  , p_source_126            IN VARCHAR2
127725 --Prepayment Distribution Amount
127726  , p_source_127            IN NUMBER
127727 --Prepayment Distribution (Prepayment Rate) Ledger Amount
127728  , p_source_128            IN NUMBER
127729 --Identifier of the Prepayment Application Reversed
127730  , p_source_129            IN NUMBER
127731 --Business Flow Prepayment Invoice Distribution Type
127732  , p_source_139            IN VARCHAR2
127733 --Business Flow Prepayment Invoice Entity Code
127734  , p_source_140            IN VARCHAR2
127735 --Business Flow Prepayment Invoice Distribution Identifier
127736  , p_source_141            IN NUMBER
127737 --Business Flow Prepayment Invoice Identifier
127738  , p_source_142            IN NUMBER
127739 )
127740 IS
127741 
127742 l_component_type              VARCHAR2(80);
127743 l_component_code              VARCHAR2(30);
127744 l_component_type_code         VARCHAR2(1);
127745 l_component_appl_id           INTEGER;
127746 l_amb_context_code            VARCHAR2(30);
127747 l_entity_code                 VARCHAR2(30);
127748 l_event_class_code            VARCHAR2(30);
127749 l_ae_header_id                NUMBER;
127750 l_event_type_code             VARCHAR2(30);
127751 l_line_definition_code        VARCHAR2(30);
127752 l_line_definition_owner_code  VARCHAR2(1);
127753 --
127754 -- adr variables
127755 l_segment                     VARCHAR2(30);
127756 l_ccid                        NUMBER;
127757 l_adr_transaction_coa_id      NUMBER;
127758 l_adr_accounting_coa_id       NUMBER;
127759 l_adr_flexfield_segment_code  VARCHAR2(30);
127760 l_adr_flex_value_set_id       NUMBER;
127761 l_adr_value_type_code         VARCHAR2(30);
127762 l_adr_value_combination_id    NUMBER;
127763 l_adr_value_segment_code      VARCHAR2(30);
127764 
127765 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
127766 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
127770 -- 4262811 Variables ------------------------------------------------------------------------------------------
127767 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
127768 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
127769 
127771 l_entered_amt_idx             NUMBER;
127772 l_accted_amt_idx              NUMBER;
127773 l_acc_rev_flag                VARCHAR2(1);
127774 l_accrual_line_num            NUMBER;
127775 l_tmp_amt                     NUMBER;
127776 l_acc_rev_natural_side_code   VARCHAR2(1);
127777 
127778 l_num_entries                 NUMBER;
127779 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
127780 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
127781 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
127782 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
127783 l_recog_line_1                NUMBER;
127784 l_recog_line_2                NUMBER;
127785 
127786 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
127787 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
127788 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
127789 
127790 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
127791 
127792 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
127793 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
127794 
127798 --
127795 ---------------------------------------------------------------------------------------------------------------
127796 
127797 
127799 -- bulk performance
127800 --
127801 l_balance_type_code           VARCHAR2(1);
127802 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
127803 l_log_module                  VARCHAR2(240);
127804 
127805 --
127806 -- Upgrade strategy
127807 --
127808 l_actual_upg_option           VARCHAR2(1);
127809 l_enc_upg_option           VARCHAR2(1);
127810 
127811 --
127812 BEGIN
127813 --
127814 IF g_log_enabled THEN
127815       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_214';
127816 END IF;
127817 --
127818 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
127819 
127820       trace
127821          (p_msg      => 'BEGIN of AcctLineType_214'
127822          ,p_level    => C_LEVEL_PROCEDURE
127823          ,p_module   => l_log_module);
127824 
127825 END IF;
127826 --
127827 l_component_type             := 'AMB_JLT';
127828 l_component_code             := 'AP_PREPAID_EXP_ACCR_PREPAY_APP';
127829 l_component_type_code        := 'S';
127830 l_component_appl_id          :=  200;
127831 l_amb_context_code           := 'DEFAULT';
127832 l_entity_code                := 'AP_INVOICES';
127833 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
127834 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
127835 l_line_definition_owner_code := 'S';
127836 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
127837 --
127838 l_balance_type_code          := 'A';
127839 l_segment                     := NULL;
127840 l_ccid                        := NULL;
127841 l_adr_transaction_coa_id      := NULL;
127842 l_adr_accounting_coa_id       := NULL;
127843 l_adr_flexfield_segment_code  := NULL;
127844 l_adr_flex_value_set_id       := NULL;
127845 l_adr_value_type_code         := NULL;
127846 l_adr_value_combination_id    := NULL;
127847 l_adr_value_segment_code      := NULL;
127848 
127849 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
127850 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
127851 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
127852 l_budgetary_control_flag     := 'N';
127853 
127854 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
127855 l_bflow_applied_to_amt       := NULL; -- 5132302
127856 l_entered_amt_idx            := NULL;          -- 4262811
127857 l_accted_amt_idx             := NULL;          -- 4262811
127858 l_acc_rev_flag               := NULL;          -- 4262811
127859 l_accrual_line_num           := NULL;          -- 4262811
127860 l_tmp_amt                    := NULL;          -- 4262811
127861 --
127862  
127863 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
127864     l_balance_type_code <> 'B' THEN
127865 IF NVL(p_source_118,'
127866 ') =  'PREPAY APPL' OR 
127867 NVL(p_source_118,'
127868 ') =  'TAX DIFF' OR 
127869 NVL(p_source_118,'
127870 ') =  'FINAL APPLICATION ROUNDING' OR 
127871 (NVL(p_source_118,'
127872 ') =  'PREPAY APPL REC TAX' AND 
127873 NVL(p_source_119,'
127874 ') <>  'DEFERRED') OR 
127875 NVL(p_source_118,'
127876 ') =  'PREPAY APPL NONREC TAX'
127877  THEN 
127878 
127879    --
127880    XLA_AE_LINES_PKG.SetNewLine;
127881 
127882    p_balance_type_code          := l_balance_type_code;
127883    -- set the flag so later we will know whether the gain loss line needs to be created
127884    
127885    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
127886      p_actual_flag :='A';
127887    END IF;
127888 
127889    --
127890    -- bulk performance
127891    --
127892    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
127893                                       p_header_num   => 0); -- 4262811
127894    --
127895    -- set accounting line options
127896    --
127897    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
127898            p_natural_side_code          => 'D'
127899          , p_gain_or_loss_flag          => 'N'
127900          , p_gl_transfer_mode_code      => 'S'
127901          , p_acct_entry_type_code       => 'A'
127902          , p_switch_side_flag           => 'Y'
127903          , p_merge_duplicate_code       => 'A'
127904          );
127905    --
127906    l_acc_rev_natural_side_code := 'C';  -- 4262811
127907    -- 
127908    --
127909    -- set accounting line type info
127910    --
127911    xla_ae_lines_pkg.SetAcctLineType
127912       (p_component_type             => l_component_type
127913       ,p_event_type_code            => l_event_type_code
127914       ,p_line_definition_owner_code => l_line_definition_owner_code
127915       ,p_line_definition_code       => l_line_definition_code
127916       ,p_accounting_line_code       => l_component_code
127917       ,p_accounting_line_type_code  => l_component_type_code
127918       ,p_accounting_line_appl_id    => l_component_appl_id
127919       ,p_amb_context_code           => l_amb_context_code
127920       ,p_entity_code                => l_entity_code
127921       ,p_event_class_code           => l_event_class_code);
127922    --
127923    -- set accounting class
127924    --
127925    xla_ae_lines_pkg.SetAcctClass(
127926            p_accounting_class_code  => 'PREPAID_EXPENSE'
127927          , p_ae_header_id           => l_ae_header_id
127928          );
127929 
127930    --
127931    -- set rounding class
127932    --
127933    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
127934                       'PREPAID_EXPENSE';
127935 
127936    --
127937    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
127941    --
127938    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
127939    --
127940    -- bulk performance
127942    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
127943 
127944    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
127945       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
127946 
127947    -- 4955764
127948    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
127949       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
127950 
127951    -- 4458381 Public Sector Enh
127952    
127953    --
127954    -- set accounting attributes for the line type
127955    --
127956    l_entered_amt_idx := 25;
127957    l_accted_amt_idx  := 27;
127958    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
127959    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
127960    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
127961    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
127962    l_rec_acct_attrs.array_num_value(2)  := 
127963 xla_ae_sources_pkg.GetSystemSourceNum(
127964    p_source_code           => 'XLA_EVENT_APPL_ID'
127965  , p_source_type_code      => 'Y'
127966  , p_source_application_id =>  602
127967 );
127968    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
127969    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
127970    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
127971    l_rec_acct_attrs.array_char_value(4)  := 
127972 xla_ae_sources_pkg.GetSystemSourceChar(
127973    p_source_code           => 'XLA_ENTITY_CODE'
127974  , p_source_type_code      => 'Y'
127975  , p_source_application_id =>  602
127976 );
127977    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
127978    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_120);
127979    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
127980    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
127981    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
127982    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
127983    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
127984    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
127985    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
127986    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
127987    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
127988    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
127989    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
127990    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
127991    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
127992    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_120);
127993    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
127994    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
127995    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
127996    l_rec_acct_attrs.array_char_value(14)  := p_source_125;
127997    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
127998    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
127999    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
128000    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
128001    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
128002    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
128003    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
128004    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
128005    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
128006    l_rec_acct_attrs.array_char_value(19)  := p_source_126;
128007    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
128008    l_rec_acct_attrs.array_num_value(20)  := p_source_57;
128009    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
128010    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
128011    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
128012    l_rec_acct_attrs.array_char_value(22)  := p_source_55;
128013    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
128014    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
128015    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
128016    l_rec_acct_attrs.array_char_value(24)  := p_source_60;
128017    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
128018    l_rec_acct_attrs.array_num_value(25)  := p_source_127;
128019    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
128020    l_rec_acct_attrs.array_char_value(26)  := p_source_55;
128021    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
128022    l_rec_acct_attrs.array_num_value(27)  := p_source_128;
128023    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
128024    l_rec_acct_attrs.array_date_value(28)  := p_source_65;
128025    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
128026    l_rec_acct_attrs.array_char_value(29)  := p_source_66;
128027    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
128028    l_rec_acct_attrs.array_date_value(30)  := p_source_67;
128029    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
128030    l_rec_acct_attrs.array_char_value(31)  := p_source_68;
128031    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
128032    l_rec_acct_attrs.array_char_value(32)  := p_source_71;
128033    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
128034    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_129);
128035    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
128039    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
128036    l_rec_acct_attrs.array_char_value(34)  := p_source_43;
128037    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
128038    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
128040    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
128041    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
128045    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
128042    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
128043    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
128044    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
128046    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
128047 
128048    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
128049    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
128050 
128051    ---------------------------------------------------------------------------------------------------------------
128052    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
128053    ---------------------------------------------------------------------------------------------------------------
128054    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
128055 
128056    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
128057    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
128058 
128059    IF xla_accounting_cache_pkg.GetValueChar
128060          (p_source_code         => 'LEDGER_CATEGORY_CODE'
128061          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
128062    AND l_bflow_method_code = 'PRIOR_ENTRY'
128063 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
128064    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
128065          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
128066        )
128067    THEN
128068          xla_ae_lines_pkg.BflowUpgEntry
128069            (p_business_method_code    => l_bflow_method_code
128070            ,p_business_class_code     => l_bflow_class_code
128071            ,p_balance_type            => l_balance_type_code);
128072    ELSE
128073       NULL;
128074 XLA_AE_LINES_PKG.business_flow_validation(
128075                                 p_business_method_code     => l_bflow_method_code
128076                                ,p_business_class_code      => l_bflow_class_code
128077                                ,p_inherit_description_flag => l_inherit_desc_flag);
128078    END IF;
128079 
128080    --
128081    -- call analytical criteria
128082    --
128083    -- Inherited Analytical Criteria for business flow method of Prior Entry.
128084    --
128085    -- call description
128086    --
128087    -- No description or it is inherited.
128088    --
128089    -- call ADRs
128090    -- Bug 4922099
128091    --
128092    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
128093         (NVL(l_actual_upg_option, 'N') = 'O') OR
128094         (NVL(l_enc_upg_option, 'N') = 'O')
128095       )
128096    THEN
128097    NULL;
128098    --
128099    --
128100    
128101    --
128102    --
128103    END IF;
128104    --
128105    -- Bug 4922099
128106    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
128107           (NVL(l_enc_upg_option, 'N') = 'O')
128108         ) AND
128109         (l_bflow_method_code = 'PRIOR_ENTRY')
128110       )
128111    THEN
128112       IF
128113       --
128114       1 = 1
128115       --
128116       THEN
128117       xla_accounting_err_pkg.build_message
128118                                     (p_appli_s_name            => 'XLA'
128119                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
128120                                     ,p_token_1                 => 'LINE_NUMBER'
128121                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
128122                                     ,p_token_2                 => 'LINE_TYPE_NAME'
128123                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
128124                                                                              l_component_type
128125                                                                             ,l_component_code
128126                                                                             ,l_component_type_code
128127                                                                             ,l_component_appl_id
128128                                                                             ,l_amb_context_code
128129                                                                             ,l_entity_code
128133                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
128130                                                                             ,l_event_class_code
128131                                                                            )
128132                                     ,p_token_3                 => 'OWNER'
128134                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
128135                                                                           ,p_lookup_code    => l_component_type_code
128136                                                                          )
128137                                     ,p_token_4                 => 'PRODUCT_NAME'
128138                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
128139                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
128140                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
128141                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
128142                                     ,p_ae_header_id            =>  NULL
128143                                        );
128144 
128145         IF (C_LEVEL_ERROR>= g_log_level) THEN
128146                  trace
128147                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
128148                       ,p_level    => C_LEVEL_ERROR
128149                       ,p_module   => l_log_module);
128150         END IF;
128151       END IF;
128152    END IF;
128153    --
128154    --
128155    ------------------------------------------------------------------------------------------------
128156    -- 4219869 Business Flow
128157    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
128158    -- Prior Entry.  Currently, the following code is always generated.
128159    ------------------------------------------------------------------------------------------------
128160    -- No ValidateCurrentLine for business flow method of Prior Entry
128161 
128162    ------------------------------------------------------------------------------------
128163    -- 4219869 Business Flow
128164    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
128168    ----------------------------------------------------------------------------------
128165    ------------------------------------------------------------------------------------
128166    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
128167 
128169    -- 4219869 Business Flow
128170    -- Update journal entry status -- Need to generate this within IF <condition>
128171    ----------------------------------------------------------------------------------
128172    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
128173          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
128174          ,p_balance_type_code => l_balance_type_code
128175          );
128176 
128177    -------------------------------------------------------------------------------------------
128178    -- 4262811 - Generate the Accrual Reversal lines
128179    -------------------------------------------------------------------------------------------
128180    BEGIN
128181       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
128182                               (g_array_event(p_event_id).array_value_num('header_index'));
128183       IF l_acc_rev_flag IS NULL THEN
128184          l_acc_rev_flag := 'N';
128185       END IF;
128186    EXCEPTION
128187       WHEN OTHERS THEN
128188          l_acc_rev_flag := 'N';
128189    END;
128190    --
128191    IF (l_acc_rev_flag = 'Y') THEN
128192 
128193        -- 4645092  ------------------------------------------------------------------------------
128194        -- To allow MPA report to determine if it should generate report process
128195        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
128196        ------------------------------------------------------------------------------------------
128197 
128198        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
128199        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
128200    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
128201    -- call ADRs
128202    -- Bug 4922099
128203    --
128204    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
128205         (NVL(l_actual_upg_option, 'N') = 'O') OR
128206         (NVL(l_enc_upg_option, 'N') = 'O')
128207       )
128208    THEN
128209    NULL;
128210    --
128211    --
128212    
128213    --
128214    --
128215    END IF;
128216 
128217        --
128218        -- Update the line information that should be overwritten
128219        --
128220        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
128221                                          p_header_num   => 1);
128225 
128222        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
128223 
128224        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
128226        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
128227           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
128228        END IF;
128229 
128230       --
128231       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
128232       --
128233       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
128234           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
128235       ELSE
128236           ---------------------------------------------------------------------------------------------------
128237           -- 4262811a Switch Sign
128238           ---------------------------------------------------------------------------------------------------
128239           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
128240           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
128241                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128242           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
128243                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128244           -- 5132302
128245           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
128246                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128247 
128248       END IF;
128249 
128250       -- 4955764
128251       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
128252       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
128253 
128254 
128255       XLA_AE_LINES_PKG.ValidateCurrentLine;
128256       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
128257 
128258       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
128259                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
128260                ,p_balance_type_code => l_balance_type_code);
128261 
128262    END IF;
128263 
128264    -----------------------------------------------------------------------------------------
128265    -- 4262811 Multiperiod Accounting
128266    -----------------------------------------------------------------------------------------
128267      -- No MPA option is assigned.
128268 
128269 
128270 END IF;
128271 END IF;
128272 --
128273 
128274 --
128275 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
128276    trace
128277       (p_msg      => 'END of AcctLineType_214'
128278       ,p_level    => C_LEVEL_PROCEDURE
128279       ,p_module   => l_log_module);
128280 END IF;
128281 --
128282 EXCEPTION
128283   WHEN xla_exceptions_pkg.application_exception THEN
128284       RAISE;
128285   WHEN OTHERS THEN
128286        xla_exceptions_pkg.raise_message
128287            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_214');
128288 END AcctLineType_214;
128289 --
128290 
128291 ---------------------------------------
128292 --
128293 -- PRIVATE FUNCTION
128294 --         AcctLineType_215
128295 --
128296 ---------------------------------------
128297 PROCEDURE AcctLineType_215 (
128298   p_application_id        IN NUMBER
128299  ,p_event_id              IN NUMBER
128300  ,p_calculate_acctd_flag  IN VARCHAR2
128301  ,p_calculate_g_l_flag    IN VARCHAR2
128302  ,p_actual_flag           IN OUT VARCHAR2
128303  ,p_balance_type_code     OUT VARCHAR2
128304  ,p_gain_or_loss_ref      OUT VARCHAR2
128305  
128306 --Invoice Distribution Account
128307  , p_source_18            IN NUMBER
128308 --Accounting Reversal Indicator
128309  , p_source_41            IN VARCHAR2
128310 --Distribution Link Type
128311  , p_source_43            IN VARCHAR2
128312 --Invoice Identifier
128316 --Payables Encumbrance Upgrade Credit Amount
128313  , p_source_46            IN NUMBER
128314 --Payables Encumbrance Upgrade Credit Account
128315  , p_source_53            IN NUMBER
128317  , p_source_54            IN NUMBER
128318 --Invoice Currency Code
128319  , p_source_55            IN VARCHAR2
128320 --Payables Encumbrance Upgrade Credit Base Amount
128321  , p_source_56            IN NUMBER
128322 --Payables Encumbrance Upgrade Debit Account
128323  , p_source_57            IN NUMBER
128324 --Payables Encumbrance Upgrade Debit Amount
128325  , p_source_58            IN NUMBER
128326 --Payables Encumbrance Upgrade Debit Base Amount
128327  , p_source_59            IN NUMBER
128328 --Payables Encumbrance Upgrade Option
128329  , p_source_60            IN VARCHAR2
128330 --Deferred Accounting End Date
128331  , p_source_65            IN DATE
128332 --Deferred Accounting Option
128333  , p_source_66            IN VARCHAR2
128334 --Deferred Accounting Start Date
128335  , p_source_67            IN DATE
128336 --Override Accounted Amount Indicator
128337  , p_source_68            IN VARCHAR2
128338  , p_source_68_meaning    IN VARCHAR2
128339 --Invoice Supplier Identifier
128340  , p_source_69            IN NUMBER
128341 --Invoice Supplier Site Identifier
128342  , p_source_70            IN NUMBER
128343 --Third Party Type
128344  , p_source_71            IN VARCHAR2
128345 --Invoice Distribution Tax Line Identifier
128346  , p_source_74            IN NUMBER
128347 --Invoice Distribution Tax Distribution Identifier from Tax
128348  , p_source_75            IN NUMBER
128349 --Invoice Distribution Summary Tax Line Identifier
128350  , p_source_76            IN NUMBER
128351 --Payables Upgrade Credit Encumbrance Type Identifier
128352  , p_source_77            IN NUMBER
128353 --Payables Upgrade Debit Encumbrance Type Identifier
128354  , p_source_78            IN NUMBER
128355 --Business Flow Accounts Payable Application Identifier
128356  , p_source_79            IN NUMBER
128357 --Purchasing Encumbrance Option
128358  , p_source_86            IN VARCHAR2
128359  , p_source_86_meaning    IN VARCHAR2
128360 --Invoice Encumbered Option
128361  , p_source_87            IN VARCHAR2
128362  , p_source_87_meaning    IN VARCHAR2
128363 --Prepayment Distribution Type
128364  , p_source_118            IN VARCHAR2
128365 --Prepayment Application Distribution Identifier
128366  , p_source_120            IN NUMBER
128367 --Upgrade Encumbrance Credit Account Class
128368  , p_source_125            IN VARCHAR2
128369 --Upgrade Encumbrance Debit Account Class
128370  , p_source_126            IN VARCHAR2
128371 --Prepayment Distribution Amount
128372  , p_source_127            IN NUMBER
128373 --Identifier of the Prepayment Application Reversed
128374  , p_source_129            IN NUMBER
128375 --Prepayment Distribution (Invoice Rate) Ledger Amount
128376  , p_source_134            IN NUMBER
128377 --Invoice Exchange Date
128378  , p_source_136            IN DATE
128379 --Invoice Exchange Rate
128380  , p_source_137            IN NUMBER
128381 --Invoice Exchange Rate Type
128382  , p_source_138            IN VARCHAR2
128383 --Business Flow Prepayment Invoice Distribution Type
128384  , p_source_139            IN VARCHAR2
128385 --Business Flow Prepayment Invoice Entity Code
128386  , p_source_140            IN VARCHAR2
128387 --Business Flow Prepayment Invoice Distribution Identifier
128388  , p_source_141            IN NUMBER
128389 --Business Flow Prepayment Invoice Identifier
128390  , p_source_142            IN NUMBER
128391 )
128392 IS
128393 
128394 l_component_type              VARCHAR2(80);
128395 l_component_code              VARCHAR2(30);
128396 l_component_type_code         VARCHAR2(1);
128397 l_component_appl_id           INTEGER;
128398 l_amb_context_code            VARCHAR2(30);
128399 l_entity_code                 VARCHAR2(30);
128400 l_event_class_code            VARCHAR2(30);
128401 l_ae_header_id                NUMBER;
128402 l_event_type_code             VARCHAR2(30);
128403 l_line_definition_code        VARCHAR2(30);
128404 l_line_definition_owner_code  VARCHAR2(1);
128405 --
128406 -- adr variables
128407 l_segment                     VARCHAR2(30);
128408 l_ccid                        NUMBER;
128409 l_adr_transaction_coa_id      NUMBER;
128410 l_adr_accounting_coa_id       NUMBER;
128411 l_adr_flexfield_segment_code  VARCHAR2(30);
128412 l_adr_flex_value_set_id       NUMBER;
128413 l_adr_value_type_code         VARCHAR2(30);
128414 l_adr_value_combination_id    NUMBER;
128418 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
128415 l_adr_value_segment_code      VARCHAR2(30);
128416 
128417 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
128419 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
128420 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
128421 
128422 -- 4262811 Variables ------------------------------------------------------------------------------------------
128423 l_entered_amt_idx             NUMBER;
128424 l_accted_amt_idx              NUMBER;
128425 l_acc_rev_flag                VARCHAR2(1);
128426 l_accrual_line_num            NUMBER;
128427 l_tmp_amt                     NUMBER;
128428 l_acc_rev_natural_side_code   VARCHAR2(1);
128429 
128430 l_num_entries                 NUMBER;
128431 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
128432 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
128433 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
128434 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
128435 l_recog_line_1                NUMBER;
128436 l_recog_line_2                NUMBER;
128437 
128438 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
128439 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
128440 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
128441 
128442 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
128443 
128444 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
128445 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
128446 
128447 ---------------------------------------------------------------------------------------------------------------
128448 
128449 
128450 --
128451 -- bulk performance
128452 --
128453 l_balance_type_code           VARCHAR2(1);
128454 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
128455 l_log_module                  VARCHAR2(240);
128456 
128457 --
128458 -- Upgrade strategy
128459 --
128460 l_actual_upg_option           VARCHAR2(1);
128461 l_enc_upg_option           VARCHAR2(1);
128462 
128463 --
128464 BEGIN
128465 --
128466 IF g_log_enabled THEN
128467       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_215';
128468 END IF;
128469 --
128470 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
128471 
128472       trace
128473          (p_msg      => 'BEGIN of AcctLineType_215'
128474          ,p_level    => C_LEVEL_PROCEDURE
128475          ,p_module   => l_log_module);
128476 
128477 END IF;
128478 --
128479 l_component_type             := 'AMB_JLT';
128480 l_component_code             := 'AP_PREPAID_EXP_PREPAY_APP_ENC';
128481 l_component_type_code        := 'S';
128482 l_component_appl_id          :=  200;
128483 l_amb_context_code           := 'DEFAULT';
128484 l_entity_code                := 'AP_INVOICES';
128485 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
128486 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
128487 l_line_definition_owner_code := 'S';
128488 l_line_definition_code       := 'AP_ENC_REV_PREPAY_APPL_ALL';
128489 --
128490 l_balance_type_code          := 'E';
128491 l_segment                     := NULL;
128492 l_ccid                        := NULL;
128493 l_adr_transaction_coa_id      := NULL;
128494 l_adr_accounting_coa_id       := NULL;
128495 l_adr_flexfield_segment_code  := NULL;
128496 l_adr_flex_value_set_id       := NULL;
128497 l_adr_value_type_code         := NULL;
128498 l_adr_value_combination_id    := NULL;
128499 l_adr_value_segment_code      := NULL;
128500 
128501 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
128502 l_bflow_class_code           := '';    -- 4219869 Business Flow
128503 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
128504 l_budgetary_control_flag     := 'N';
128505 
128506 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
128507 l_bflow_applied_to_amt       := NULL; -- 5132302
128508 l_entered_amt_idx            := NULL;          -- 4262811
128509 l_accted_amt_idx             := NULL;          -- 4262811
128510 l_acc_rev_flag               := NULL;          -- 4262811
128511 l_accrual_line_num           := NULL;          -- 4262811
128512 l_tmp_amt                    := NULL;          -- 4262811
128513 --
128514  
128515 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
128516     l_balance_type_code <> 'B' THEN
128517 IF (NVL(p_source_118,'
128518 ') =  'PREPAY APPL' OR 
128519 NVL(p_source_118,'
128520 ') =  'PREPAY APPL NONREC TAX' OR 
128521 NVL(p_source_118,'
128522 ') =  'PREPAY APPL REC TAX' OR 
128523 NVL(p_source_118,'
128524 ') =  'TAX DIFF' OR 
128525 NVL(p_source_118,'
128526 ') =  'FINAL APPLICATION ROUNDING') AND 
128527 NVL(p_source_86,'
128528 ') =  'Y' AND 
128529 NVL(p_source_87,'
128530 ') =  'Y'
128531  THEN 
128532 
128533    --
128534    XLA_AE_LINES_PKG.SetNewLine;
128535 
128536    p_balance_type_code          := l_balance_type_code;
128537    -- set the flag so later we will know whether the gain loss line needs to be created
128538    
128539    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
128540      p_actual_flag :='A';
128541    END IF;
128542 
128543    --
128544    -- bulk performance
128545    --
128546    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
128547                                       p_header_num   => 0); -- 4262811
128548    --
128549    -- set accounting line options
128550    --
128551    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
128552            p_natural_side_code          => 'C'
128556          , p_switch_side_flag           => 'Y'
128553          , p_gain_or_loss_flag          => 'N'
128554          , p_gl_transfer_mode_code      => 'S'
128555          , p_acct_entry_type_code       => 'E'
128557          , p_merge_duplicate_code       => 'A'
128558          );
128559    --
128560    l_acc_rev_natural_side_code := 'D';  -- 4262811
128561    -- 
128562    --
128563    -- set accounting line type info
128564    --
128565    xla_ae_lines_pkg.SetAcctLineType
128566       (p_component_type             => l_component_type
128567       ,p_event_type_code            => l_event_type_code
128568       ,p_line_definition_owner_code => l_line_definition_owner_code
128569       ,p_line_definition_code       => l_line_definition_code
128570       ,p_accounting_line_code       => l_component_code
128571       ,p_accounting_line_type_code  => l_component_type_code
128572       ,p_accounting_line_appl_id    => l_component_appl_id
128573       ,p_amb_context_code           => l_amb_context_code
128574       ,p_entity_code                => l_entity_code
128575       ,p_event_class_code           => l_event_class_code);
128576    --
128577    -- set accounting class
128578    --
128579    xla_ae_lines_pkg.SetAcctClass(
128580            p_accounting_class_code  => 'PREPAID_EXPENSE'
128581          , p_ae_header_id           => l_ae_header_id
128582          );
128583 
128584    --
128585    -- set rounding class
128586    --
128587    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
128588                       'PREPAID_EXPENSE';
128589 
128590    --
128591    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
128592    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
128593    --
128594    -- bulk performance
128595    --
128596    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
128597 
128598    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
128599       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
128600 
128601    -- 4955764
128602    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
128603       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
128604 
128605    -- 4458381 Public Sector Enh
128606       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
128607    --
128608    -- set accounting attributes for the line type
128609    --
128610    l_entered_amt_idx := 25;
128611    l_accted_amt_idx  := 30;
128612    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
128613    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
128614    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
128615    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
128616    l_rec_acct_attrs.array_num_value(2)  := 
128617 xla_ae_sources_pkg.GetSystemSourceNum(
128618    p_source_code           => 'XLA_EVENT_APPL_ID'
128619  , p_source_type_code      => 'Y'
128620  , p_source_application_id =>  602
128621 );
128622    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
128626 xla_ae_sources_pkg.GetSystemSourceChar(
128623    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
128624    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
128625    l_rec_acct_attrs.array_char_value(4)  := 
128627    p_source_code           => 'XLA_ENTITY_CODE'
128628  , p_source_type_code      => 'Y'
128629  , p_source_application_id =>  602
128630 );
128631    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
128632    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_120);
128633    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
128634    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
128635    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
128636    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
128637    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
128638    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
128639    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
128640    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
128641    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
128642    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
128643    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
128644    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
128645    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
128646    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_120);
128647    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
128648    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
128649    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
128650    l_rec_acct_attrs.array_char_value(14)  := p_source_125;
128651    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
128652    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
128653    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
128654    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
128655    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
128656    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
128657    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
128658    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
128659    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
128660    l_rec_acct_attrs.array_char_value(19)  := p_source_126;
128661    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
128662    l_rec_acct_attrs.array_num_value(20)  := p_source_57;
128663    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
128664    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
128665    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
128666    l_rec_acct_attrs.array_char_value(22)  := p_source_55;
128667    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
128668    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
128669    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
128670    l_rec_acct_attrs.array_char_value(24)  := p_source_60;
128671    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
128672    l_rec_acct_attrs.array_num_value(25)  := p_source_127;
128673    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
128674    l_rec_acct_attrs.array_char_value(26)  := p_source_55;
128675    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
128676    l_rec_acct_attrs.array_date_value(27)  := p_source_136;
128677    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
128678    l_rec_acct_attrs.array_num_value(28)  := p_source_137;
128679    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
128680    l_rec_acct_attrs.array_char_value(29)  := p_source_138;
128681    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
128682    l_rec_acct_attrs.array_num_value(30)  := p_source_134;
128686    l_rec_acct_attrs.array_char_value(32)  := p_source_66;
128683    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
128684    l_rec_acct_attrs.array_date_value(31)  := p_source_65;
128685    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
128687    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
128688    l_rec_acct_attrs.array_date_value(33)  := p_source_67;
128689    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
128690    l_rec_acct_attrs.array_char_value(34)  := p_source_68;
128691    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
128692    l_rec_acct_attrs.array_num_value(35)  := p_source_69;
128693    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
128694    l_rec_acct_attrs.array_num_value(36)  := p_source_70;
128695    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
128696    l_rec_acct_attrs.array_char_value(37)  := p_source_71;
128697    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
128698    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_129);
128699    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
128700    l_rec_acct_attrs.array_char_value(39)  := p_source_43;
128701    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
128702    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
128703    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
128704    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
128705    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
128706    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
128707    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
128708    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
128709    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
128710    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
128711 
128712    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
128713    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
128714 
128715    ---------------------------------------------------------------------------------------------------------------
128716    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
128717    ---------------------------------------------------------------------------------------------------------------
128718    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
128719 
128720    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
128721    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
128722 
128723    IF xla_accounting_cache_pkg.GetValueChar
128724          (p_source_code         => 'LEDGER_CATEGORY_CODE'
128728    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
128725          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
128726    AND l_bflow_method_code = 'PRIOR_ENTRY'
128727 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
128729          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
128730        )
128731    THEN
128732          xla_ae_lines_pkg.BflowUpgEntry
128733            (p_business_method_code    => l_bflow_method_code
128734            ,p_business_class_code     => l_bflow_class_code
128735            ,p_balance_type            => l_balance_type_code);
128736    ELSE
128737       NULL;
128738 -- No business flow processing for business flow method of NONE.
128739    END IF;
128740 
128741    --
128742    -- call analytical criteria
128743    --
128744    
128745    --
128746    -- call description
128747    --
128748    -- No description or it is inherited.
128749    --
128750    -- call ADRs
128751    -- Bug 4922099
128752    --
128753    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
128754         (NVL(l_actual_upg_option, 'N') = 'O') OR
128755         (NVL(l_enc_upg_option, 'N') = 'O')
128756       )
128757    THEN
128758    NULL;
128759    --
128760    --
128761    
128762   l_ccid := AcctDerRule_46(
128763            p_application_id           => p_application_id
128764          , p_ae_header_id             => l_ae_header_id 
128765 , p_source_18 => p_source_18
128766          , x_transaction_coa_id       => l_adr_transaction_coa_id
128767          , x_accounting_coa_id        => l_adr_accounting_coa_id
128768          , x_value_type_code          => l_adr_value_type_code
128769          , p_side                     => 'NA'
128770    );
128771 
128772    xla_ae_lines_pkg.set_ccid(
128776   , p_accounting_coa_id            => l_adr_accounting_coa_id
128773     p_code_combination_id          => l_ccid
128774   , p_value_type_code              => l_adr_value_type_code
128775   , p_transaction_coa_id           => l_adr_transaction_coa_id
128777   , p_adr_code                     => 'FV_AP_INV_DISTRBUTION_CCID'
128778   , p_adr_type_code                => 'S'
128779   , p_component_type               => l_component_type
128780   , p_component_code               => l_component_code
128781   , p_component_type_code          => l_component_type_code
128782   , p_component_appl_id            => l_component_appl_id
128783   , p_amb_context_code             => l_amb_context_code
128784   , p_side                         => 'NA'
128785   );
128786 
128787 
128788    --
128789    --
128790    END IF;
128791    --
128792    -- Bug 4922099
128793    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
128794           (NVL(l_enc_upg_option, 'N') = 'O')
128795         ) AND
128796         (l_bflow_method_code = 'PRIOR_ENTRY')
128797       )
128798    THEN
128799       IF
128800       --
128801       1 = 2
128802       --
128803       THEN
128804       xla_accounting_err_pkg.build_message
128805                                     (p_appli_s_name            => 'XLA'
128806                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
128807                                     ,p_token_1                 => 'LINE_NUMBER'
128808                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
128809                                     ,p_token_2                 => 'LINE_TYPE_NAME'
128813                                                                             ,l_component_type_code
128810                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
128811                                                                              l_component_type
128812                                                                             ,l_component_code
128814                                                                             ,l_component_appl_id
128815                                                                             ,l_amb_context_code
128816                                                                             ,l_entity_code
128817                                                                             ,l_event_class_code
128818                                                                            )
128819                                     ,p_token_3                 => 'OWNER'
128820                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
128821                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
128822                                                                           ,p_lookup_code    => l_component_type_code
128823                                                                          )
128824                                     ,p_token_4                 => 'PRODUCT_NAME'
128825                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
128826                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
128827                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
128828                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
128829                                     ,p_ae_header_id            =>  NULL
128830                                        );
128831 
128832         IF (C_LEVEL_ERROR>= g_log_level) THEN
128833                  trace
128834                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
128835                       ,p_level    => C_LEVEL_ERROR
128836                       ,p_module   => l_log_module);
128837         END IF;
128838       END IF;
128839    END IF;
128840    --
128841    --
128842    ------------------------------------------------------------------------------------------------
128843    -- 4219869 Business Flow
128844    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
128845    -- Prior Entry.  Currently, the following code is always generated.
128846    ------------------------------------------------------------------------------------------------
128847    XLA_AE_LINES_PKG.ValidateCurrentLine;
128848 
128849    ------------------------------------------------------------------------------------
128850    -- 4219869 Business Flow
128851    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
128852    ------------------------------------------------------------------------------------
128853    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
128854 
128855    ----------------------------------------------------------------------------------
128856    -- 4219869 Business Flow
128857    -- Update journal entry status -- Need to generate this within IF <condition>
128861          ,p_balance_type_code => l_balance_type_code
128858    ----------------------------------------------------------------------------------
128859    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
128860          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
128862          );
128863 
128864    -------------------------------------------------------------------------------------------
128865    -- 4262811 - Generate the Accrual Reversal lines
128866    -------------------------------------------------------------------------------------------
128867    BEGIN
128868       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
128869                               (g_array_event(p_event_id).array_value_num('header_index'));
128870       IF l_acc_rev_flag IS NULL THEN
128871          l_acc_rev_flag := 'N';
128872       END IF;
128873    EXCEPTION
128874       WHEN OTHERS THEN
128875          l_acc_rev_flag := 'N';
128876    END;
128877    --
128878    IF (l_acc_rev_flag = 'Y') THEN
128879 
128880        -- 4645092  ------------------------------------------------------------------------------
128881        -- To allow MPA report to determine if it should generate report process
128882        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
128883        ------------------------------------------------------------------------------------------
128884 
128885        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
128886        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
128887    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
128888    -- call ADRs
128889    -- Bug 4922099
128890    --
128891    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
128892         (NVL(l_actual_upg_option, 'N') = 'O') OR
128893         (NVL(l_enc_upg_option, 'N') = 'O')
128894       )
128895    THEN
128896    NULL;
128897    --
128898    --
128899    
128900   l_ccid := AcctDerRule_46(
128901            p_application_id           => p_application_id
128902          , p_ae_header_id             => l_ae_header_id 
128903 , p_source_18 => p_source_18
128904          , x_transaction_coa_id       => l_adr_transaction_coa_id
128905          , x_accounting_coa_id        => l_adr_accounting_coa_id
128906          , x_value_type_code          => l_adr_value_type_code
128907          , p_side                     => 'NA'
128908    );
128909 
128910    xla_ae_lines_pkg.set_ccid(
128911     p_code_combination_id          => l_ccid
128912   , p_value_type_code              => l_adr_value_type_code
128913   , p_transaction_coa_id           => l_adr_transaction_coa_id
128914   , p_accounting_coa_id            => l_adr_accounting_coa_id
128915   , p_adr_code                     => 'FV_AP_INV_DISTRBUTION_CCID'
128916   , p_adr_type_code                => 'S'
128917   , p_component_type               => l_component_type
128921   , p_amb_context_code             => l_amb_context_code
128918   , p_component_code               => l_component_code
128919   , p_component_type_code          => l_component_type_code
128920   , p_component_appl_id            => l_component_appl_id
128922   , p_side                         => 'NA'
128923   );
128924 
128925 
128926    --
128927    --
128928    END IF;
128929 
128930        --
128931        -- Update the line information that should be overwritten
128932        --
128933        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
128934                                          p_header_num   => 1);
128935        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
128936 
128937        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
128938 
128939        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
128940           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
128941        END IF;
128942 
128943       --
128944       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
128945       --
128946       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
128947           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
128948       ELSE
128949           ---------------------------------------------------------------------------------------------------
128950           -- 4262811a Switch Sign
128951           ---------------------------------------------------------------------------------------------------
128952           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
128953           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
128954                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128955           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
128956                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128957           -- 5132302
128958           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
128959                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128960 
128961       END IF;
128962 
128963       -- 4955764
128964       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
128965       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
128966 
128967 
128968       XLA_AE_LINES_PKG.ValidateCurrentLine;
128969       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
128970 
128971       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
128972                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
128973                ,p_balance_type_code => l_balance_type_code);
128974 
128975    END IF;
128976 
128977    -----------------------------------------------------------------------------------------
128978    -- 4262811 Multiperiod Accounting
128979    -----------------------------------------------------------------------------------------
128980      -- No MPA option is assigned.
128981 
128982 
128983 END IF;
128984 END IF;
128985 --
128986 
128987 --
128988 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
128989    trace
128990       (p_msg      => 'END of AcctLineType_215'
128991       ,p_level    => C_LEVEL_PROCEDURE
128992       ,p_module   => l_log_module);
128993 END IF;
128994 --
128995 EXCEPTION
128996   WHEN xla_exceptions_pkg.application_exception THEN
128997       RAISE;
128998   WHEN OTHERS THEN
128999        xla_exceptions_pkg.raise_message
129003 
129000            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_215');
129001 END AcctLineType_215;
129002 --
129004 ---------------------------------------
129005 --
129006 -- PRIVATE FUNCTION
129007 --         AcctLineType_216
129008 --
129009 ---------------------------------------
129010 PROCEDURE AcctLineType_216 (
129011   p_application_id        IN NUMBER
129012  ,p_event_id              IN NUMBER
129013  ,p_calculate_acctd_flag  IN VARCHAR2
129014  ,p_calculate_g_l_flag    IN VARCHAR2
129018  
129015  ,p_actual_flag           IN OUT VARCHAR2
129016  ,p_balance_type_code     OUT VARCHAR2
129017  ,p_gain_or_loss_ref      OUT VARCHAR2
129019 --Invoice Distribution Type
129020  , p_source_21            IN VARCHAR2
129021  , p_source_21_meaning    IN VARCHAR2
129022 --Accounting Reversal Indicator
129023  , p_source_41            IN VARCHAR2
129024 --Distribution Link Type
129025  , p_source_43            IN VARCHAR2
129026 --Allocation to Main Distribution Identifier
129027  , p_source_45            IN NUMBER
129028 --Invoice Identifier
129029  , p_source_46            IN NUMBER
129030 --Invoice Distribution Identifier
129031  , p_source_52            IN NUMBER
129032 --Payables Encumbrance Upgrade Credit Account
129033  , p_source_53            IN NUMBER
129034 --Payables Encumbrance Upgrade Credit Amount
129035  , p_source_54            IN NUMBER
129036 --Invoice Currency Code
129037  , p_source_55            IN VARCHAR2
129038 --Payables Encumbrance Upgrade Credit Base Amount
129039  , p_source_56            IN NUMBER
129040 --Payables Encumbrance Upgrade Debit Account
129041  , p_source_57            IN NUMBER
129042 --Payables Encumbrance Upgrade Debit Amount
129043  , p_source_58            IN NUMBER
129044 --Payables Encumbrance Upgrade Debit Base Amount
129045  , p_source_59            IN NUMBER
129046 --Payables Encumbrance Upgrade Option
129047  , p_source_60            IN VARCHAR2
129048 --Deferred Accounting End Date
129049  , p_source_65            IN DATE
129050 --Deferred Accounting Option
129051  , p_source_66            IN VARCHAR2
129052 --Deferred Accounting Start Date
129053  , p_source_67            IN DATE
129054 --Override Accounted Amount Indicator
129055  , p_source_68            IN VARCHAR2
129056  , p_source_68_meaning    IN VARCHAR2
129057 --Third Party Type
129058  , p_source_71            IN VARCHAR2
129059 --Parent Reversal Identifier
129060  , p_source_72            IN NUMBER
129061 --Invoice Distribution Statistical Amount
129062  , p_source_73            IN NUMBER
129063 --Invoice Distribution Tax Line Identifier
129064  , p_source_74            IN NUMBER
129065 --Invoice Distribution Tax Distribution Identifier from Tax
129066  , p_source_75            IN NUMBER
129067 --Invoice Distribution Summary Tax Line Identifier
129068  , p_source_76            IN NUMBER
129069 --Payables Upgrade Credit Encumbrance Type Identifier
129070  , p_source_77            IN NUMBER
129071 --Payables Upgrade Debit Encumbrance Type Identifier
129072  , p_source_78            IN NUMBER
129073 --Business Flow Accounts Payable Application Identifier
129074  , p_source_79            IN NUMBER
129075 --Business Flow Invoice Distribution Type
129076  , p_source_80            IN VARCHAR2
129077 --Business Flow Invoice Entity Code
129078  , p_source_81            IN VARCHAR2
129079 --Business Flow Invoice Distribution Identifier
129080  , p_source_82            IN NUMBER
129081 --Business Flow Invoice Identifier
129082  , p_source_83            IN NUMBER
129083 --Accrue on Receipt Option
129084  , p_source_84            IN VARCHAR2
129085  , p_source_84_meaning    IN VARCHAR2
129086 --Purchasing Encumbrance Option
129087  , p_source_86            IN VARCHAR2
129088  , p_source_86_meaning    IN VARCHAR2
129089 --Invoice Encumbered Option
129090  , p_source_87            IN VARCHAR2
129091  , p_source_87_meaning    IN VARCHAR2
129092 --Quantity Variance Amount
129093  , p_source_161            IN NUMBER
129094 --Quantity Variance Amount in Ledger Currency
129095  , p_source_162            IN NUMBER
129096 )
129097 IS
129098 
129099 l_component_type              VARCHAR2(80);
129100 l_component_code              VARCHAR2(30);
129101 l_component_type_code         VARCHAR2(1);
129102 l_component_appl_id           INTEGER;
129103 l_amb_context_code            VARCHAR2(30);
129104 l_entity_code                 VARCHAR2(30);
129105 l_event_class_code            VARCHAR2(30);
129106 l_ae_header_id                NUMBER;
129107 l_event_type_code             VARCHAR2(30);
129108 l_line_definition_code        VARCHAR2(30);
129109 l_line_definition_owner_code  VARCHAR2(1);
129110 --
129111 -- adr variables
129112 l_segment                     VARCHAR2(30);
129113 l_ccid                        NUMBER;
129114 l_adr_transaction_coa_id      NUMBER;
129115 l_adr_accounting_coa_id       NUMBER;
129116 l_adr_flexfield_segment_code  VARCHAR2(30);
129117 l_adr_flex_value_set_id       NUMBER;
129118 l_adr_value_type_code         VARCHAR2(30);
129119 l_adr_value_combination_id    NUMBER;
129120 l_adr_value_segment_code      VARCHAR2(30);
129121 
129122 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
129123 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
129124 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
129125 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
129126 
129127 -- 4262811 Variables ------------------------------------------------------------------------------------------
129128 l_entered_amt_idx             NUMBER;
129129 l_accted_amt_idx              NUMBER;
129130 l_acc_rev_flag                VARCHAR2(1);
129131 l_accrual_line_num            NUMBER;
129132 l_tmp_amt                     NUMBER;
129133 l_acc_rev_natural_side_code   VARCHAR2(1);
129134 
129135 l_num_entries                 NUMBER;
129136 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
129137 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
129138 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
129139 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
129140 l_recog_line_1                NUMBER;
129141 l_recog_line_2                NUMBER;
129142 
129143 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
129147 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
129144 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
129145 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
129146 
129148 
129149 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
129150 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
129151 
129155 --
129152 ---------------------------------------------------------------------------------------------------------------
129153 
129154 
129156 -- bulk performance
129157 --
129158 l_balance_type_code           VARCHAR2(1);
129159 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
129160 l_log_module                  VARCHAR2(240);
129161 
129162 --
129163 -- Upgrade strategy
129164 --
129165 l_actual_upg_option           VARCHAR2(1);
129166 l_enc_upg_option           VARCHAR2(1);
129167 
129168 --
129169 BEGIN
129170 --
129171 IF g_log_enabled THEN
129172       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_216';
129173 END IF;
129174 --
129175 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
129176 
129177       trace
129178          (p_msg      => 'BEGIN of AcctLineType_216'
129179          ,p_level    => C_LEVEL_PROCEDURE
129180          ,p_module   => l_log_module);
129181 
129182 END IF;
129183 --
129184 l_component_type             := 'AMB_JLT';
129185 l_component_code             := 'AP_QUANTITY_VARIANCE_CM_ENC';
129186 l_component_type_code        := 'S';
129187 l_component_appl_id          :=  200;
129188 l_amb_context_code           := 'DEFAULT';
129189 l_entity_code                := 'AP_INVOICES';
129190 l_event_class_code           := 'CREDIT MEMOS';
129191 l_event_type_code            := 'CREDIT MEMOS_ALL';
129192 l_line_definition_owner_code := 'S';
129193 l_line_definition_code       := 'ENC_REV_CM_ALL';
129194 --
129195 l_balance_type_code          := 'E';
129196 l_segment                     := NULL;
129197 l_ccid                        := NULL;
129198 l_adr_transaction_coa_id      := NULL;
129199 l_adr_accounting_coa_id       := NULL;
129200 l_adr_flexfield_segment_code  := NULL;
129201 l_adr_flex_value_set_id       := NULL;
129202 l_adr_value_type_code         := NULL;
129203 l_adr_value_combination_id    := NULL;
129204 l_adr_value_segment_code      := NULL;
129205 
129206 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
129207 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
129208 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
129209 l_budgetary_control_flag     := 'N';
129210 
129211 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
129212 l_bflow_applied_to_amt       := NULL; -- 5132302
129213 l_entered_amt_idx            := NULL;          -- 4262811
129214 l_accted_amt_idx             := NULL;          -- 4262811
129215 l_acc_rev_flag               := NULL;          -- 4262811
129216 l_accrual_line_num           := NULL;          -- 4262811
129217 l_tmp_amt                    := NULL;          -- 4262811
129218 --
129219  
129220 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
129221     l_balance_type_code <> 'B' THEN
129222 IF NVL(p_source_21,'
129223 ') =  'ITEM' AND 
129224 p_source_161 IS NOT NULL AND 
129225 NVL(p_source_86,'
129226 ') =  'Y' AND 
129227 NVL(p_source_84,'
129228 ') <>  'Y' AND 
129229 NVL(p_source_87,'
129230 ') =  'Y'
129231  THEN 
129232 
129233    --
129234    XLA_AE_LINES_PKG.SetNewLine;
129235 
129236    p_balance_type_code          := l_balance_type_code;
129237    -- set the flag so later we will know whether the gain loss line needs to be created
129238    
129239    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
129243    --
129240      p_actual_flag :='A';
129241    END IF;
129242 
129244    -- bulk performance
129245    --
129246    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
129247                                       p_header_num   => 0); -- 4262811
129248    --
129249    -- set accounting line options
129250    --
129251    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
129252            p_natural_side_code          => 'C'
129253          , p_gain_or_loss_flag          => 'N'
129254          , p_gl_transfer_mode_code      => 'S'
129255          , p_acct_entry_type_code       => 'E'
129256          , p_switch_side_flag           => 'Y'
129257          , p_merge_duplicate_code       => 'A'
129258          );
129259    --
129260    l_acc_rev_natural_side_code := 'D';  -- 4262811
129261    -- 
129262    --
129263    -- set accounting line type info
129264    --
129265    xla_ae_lines_pkg.SetAcctLineType
129266       (p_component_type             => l_component_type
129267       ,p_event_type_code            => l_event_type_code
129268       ,p_line_definition_owner_code => l_line_definition_owner_code
129269       ,p_line_definition_code       => l_line_definition_code
129270       ,p_accounting_line_code       => l_component_code
129271       ,p_accounting_line_type_code  => l_component_type_code
129272       ,p_accounting_line_appl_id    => l_component_appl_id
129273       ,p_amb_context_code           => l_amb_context_code
129274       ,p_entity_code                => l_entity_code
129275       ,p_event_class_code           => l_event_class_code);
129276    --
129277    -- set accounting class
129278    --
129279    xla_ae_lines_pkg.SetAcctClass(
129280            p_accounting_class_code  => 'QV'
129281          , p_ae_header_id           => l_ae_header_id
129282          );
129283 
129284    --
129285    -- set rounding class
129286    --
129287    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
129288                       'QV';
129289 
129290    --
129291    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
129292    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
129293    --
129294    -- bulk performance
129295    --
129296    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
129297 
129298    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
129299       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
129300 
129301    -- 4955764
129302    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
129303       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
129304 
129305    -- 4458381 Public Sector Enh
129306    
129307    --
129308    -- set accounting attributes for the line type
129309    --
129310    l_entered_amt_idx := 23;
129311    l_accted_amt_idx  := 25;
129312    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
129313    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
129314    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
129315    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
129316    l_rec_acct_attrs.array_num_value(2)  := 
129320  , p_source_application_id =>  602
129317 xla_ae_sources_pkg.GetSystemSourceNum(
129318    p_source_code           => 'XLA_EVENT_APPL_ID'
129319  , p_source_type_code      => 'Y'
129321 );
129322    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
129323    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
129324    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
129325    l_rec_acct_attrs.array_char_value(4)  := 
129326 xla_ae_sources_pkg.GetSystemSourceChar(
129330 );
129327    p_source_code           => 'XLA_ENTITY_CODE'
129328  , p_source_type_code      => 'Y'
129329  , p_source_application_id =>  602
129331    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
129332    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
129333    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
129334    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
129335    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
129336    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
129337    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
129338    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
129339    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
129340    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
129341    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
129342    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
129343    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
129344    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
129345    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
129346    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
129347    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
129348    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
129349    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
129350    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
129354    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
129351    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
129352    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
129353    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
129355    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
129356    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
129357    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
129358    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
129359    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
129360    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
129361    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
129362    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
129363    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
129364    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
129365    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
129366    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
129367    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
129368    l_rec_acct_attrs.array_num_value(23)  := p_source_161;
129369    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
129370    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
129371    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
129372    l_rec_acct_attrs.array_num_value(25)  := p_source_162;
129373    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
129374    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
129375    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
129376    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
129377    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
129378    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
129379    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
129380    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
129381    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
129382    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
129383    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
129384    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
129385    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
129386    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
129387    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
129388    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
129389    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
129390    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
129391    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
129392    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
129393    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
129394    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
129395    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
129396    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
129397    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
129398    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
129399 
129400    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
129404    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
129401    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
129402 
129403    ---------------------------------------------------------------------------------------------------------------
129405    ---------------------------------------------------------------------------------------------------------------
129406    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
129407 
129408    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
129409    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
129410 
129411    IF xla_accounting_cache_pkg.GetValueChar
129412          (p_source_code         => 'LEDGER_CATEGORY_CODE'
129413          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
129414    AND l_bflow_method_code = 'PRIOR_ENTRY'
129415 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
129416    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
129417          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
129418        )
129419    THEN
129420          xla_ae_lines_pkg.BflowUpgEntry
129421            (p_business_method_code    => l_bflow_method_code
129422            ,p_business_class_code     => l_bflow_class_code
129426 XLA_AE_LINES_PKG.business_flow_validation(
129423            ,p_balance_type            => l_balance_type_code);
129424    ELSE
129425       NULL;
129427                                 p_business_method_code     => l_bflow_method_code
129428                                ,p_business_class_code      => l_bflow_class_code
129429                                ,p_inherit_description_flag => l_inherit_desc_flag);
129430    END IF;
129431 
129432    --
129433    -- call analytical criteria
129434    --
129435    -- Inherited Analytical Criteria for business flow method of Prior Entry.
129436    --
129437    -- call description
129438    --
129439    -- No description or it is inherited.
129440    --
129441    -- call ADRs
129442    -- Bug 4922099
129443    --
129444    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
129445         (NVL(l_actual_upg_option, 'N') = 'O') OR
129446         (NVL(l_enc_upg_option, 'N') = 'O')
129447       )
129448    THEN
129449    NULL;
129450    --
129451    --
129452    
129453    --
129454    --
129455    END IF;
129456    --
129457    -- Bug 4922099
129458    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
129459           (NVL(l_enc_upg_option, 'N') = 'O')
129460         ) AND
129461         (l_bflow_method_code = 'PRIOR_ENTRY')
129462       )
129463    THEN
129464       IF
129465       --
129466       1 = 1
129467       --
129468       THEN
129469       xla_accounting_err_pkg.build_message
129470                                     (p_appli_s_name            => 'XLA'
129471                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
129472                                     ,p_token_1                 => 'LINE_NUMBER'
129473                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
129474                                     ,p_token_2                 => 'LINE_TYPE_NAME'
129475                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
129476                                                                              l_component_type
129477                                                                             ,l_component_code
129478                                                                             ,l_component_type_code
129479                                                                             ,l_component_appl_id
129480                                                                             ,l_amb_context_code
129481                                                                             ,l_entity_code
129482                                                                             ,l_event_class_code
129483                                                                            )
129484                                     ,p_token_3                 => 'OWNER'
129485                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
129486                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
129487                                                                           ,p_lookup_code    => l_component_type_code
129488                                                                          )
129489                                     ,p_token_4                 => 'PRODUCT_NAME'
129493                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
129490                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
129491                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
129492                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
129494                                     ,p_ae_header_id            =>  NULL
129495                                        );
129496 
129497         IF (C_LEVEL_ERROR>= g_log_level) THEN
129498                  trace
129499                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
129500                       ,p_level    => C_LEVEL_ERROR
129501                       ,p_module   => l_log_module);
129502         END IF;
129503       END IF;
129504    END IF;
129505    --
129506    --
129507    ------------------------------------------------------------------------------------------------
129508    -- 4219869 Business Flow
129509    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
129510    -- Prior Entry.  Currently, the following code is always generated.
129511    ------------------------------------------------------------------------------------------------
129512    -- No ValidateCurrentLine for business flow method of Prior Entry
129513 
129514    ------------------------------------------------------------------------------------
129515    -- 4219869 Business Flow
129516    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
129517    ------------------------------------------------------------------------------------
129518    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
129519 
129520    ----------------------------------------------------------------------------------
129521    -- 4219869 Business Flow
129522    -- Update journal entry status -- Need to generate this within IF <condition>
129523    ----------------------------------------------------------------------------------
129524    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
129525          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
129526          ,p_balance_type_code => l_balance_type_code
129527          );
129528 
129529    -------------------------------------------------------------------------------------------
129533       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
129530    -- 4262811 - Generate the Accrual Reversal lines
129531    -------------------------------------------------------------------------------------------
129532    BEGIN
129534                               (g_array_event(p_event_id).array_value_num('header_index'));
129535       IF l_acc_rev_flag IS NULL THEN
129536          l_acc_rev_flag := 'N';
129537       END IF;
129538    EXCEPTION
129539       WHEN OTHERS THEN
129540          l_acc_rev_flag := 'N';
129541    END;
129542    --
129543    IF (l_acc_rev_flag = 'Y') THEN
129544 
129545        -- 4645092  ------------------------------------------------------------------------------
129546        -- To allow MPA report to determine if it should generate report process
129547        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
129548        ------------------------------------------------------------------------------------------
129549 
129550        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
129551        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
129555    --
129552    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
129553    -- call ADRs
129554    -- Bug 4922099
129556    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
129557         (NVL(l_actual_upg_option, 'N') = 'O') OR
129558         (NVL(l_enc_upg_option, 'N') = 'O')
129559       )
129560    THEN
129561    NULL;
129562    --
129563    --
129564    
129565    --
129566    --
129567    END IF;
129568 
129569        --
129573                                          p_header_num   => 1);
129570        -- Update the line information that should be overwritten
129571        --
129572        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
129574        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
129575 
129576        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
129577 
129578        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
129579           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
129580        END IF;
129581 
129582       --
129583       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
129584       --
129585       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
129586           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
129587       ELSE
129588           ---------------------------------------------------------------------------------------------------
129589           -- 4262811a Switch Sign
129590           ---------------------------------------------------------------------------------------------------
129591           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
129592           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
129593                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
129594           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
129595                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
129596           -- 5132302
129597           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
129598                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
129599 
129600       END IF;
129601 
129602       -- 4955764
129603       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
129604       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
129605 
129606 
129607       XLA_AE_LINES_PKG.ValidateCurrentLine;
129608       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
129609 
129610       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
129611                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
129612                ,p_balance_type_code => l_balance_type_code);
129613 
129614    END IF;
129615 
129616    -----------------------------------------------------------------------------------------
129617    -- 4262811 Multiperiod Accounting
129618    -----------------------------------------------------------------------------------------
129619      -- No MPA option is assigned.
129620 
129621 
129622 END IF;
129623 END IF;
129624 --
129625 
129626 --
129627 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
129628    trace
129629       (p_msg      => 'END of AcctLineType_216'
129630       ,p_level    => C_LEVEL_PROCEDURE
129631       ,p_module   => l_log_module);
129632 END IF;
129633 --
129634 EXCEPTION
129635   WHEN xla_exceptions_pkg.application_exception THEN
129636       RAISE;
129637   WHEN OTHERS THEN
129638        xla_exceptions_pkg.raise_message
129639            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_216');
129640 END AcctLineType_216;
129641 --
129642 
129643 ---------------------------------------
129644 --
129645 -- PRIVATE FUNCTION
129646 --         AcctLineType_217
129647 --
129648 ---------------------------------------
129649 PROCEDURE AcctLineType_217 (
129650   p_application_id        IN NUMBER
129651  ,p_event_id              IN NUMBER
129652  ,p_calculate_acctd_flag  IN VARCHAR2
129653  ,p_calculate_g_l_flag    IN VARCHAR2
129654  ,p_actual_flag           IN OUT VARCHAR2
129655  ,p_balance_type_code     OUT VARCHAR2
129656  ,p_gain_or_loss_ref      OUT VARCHAR2
129657  
129658 --Invoice Distribution Type
129659  , p_source_21            IN VARCHAR2
129660  , p_source_21_meaning    IN VARCHAR2
129661 --Accounting Reversal Indicator
129662  , p_source_41            IN VARCHAR2
129663 --Distribution Link Type
129664  , p_source_43            IN VARCHAR2
129665 --Allocation to Main Distribution Identifier
129666  , p_source_45            IN NUMBER
129667 --Invoice Identifier
129668  , p_source_46            IN NUMBER
129669 --Invoice Distribution Identifier
129670  , p_source_52            IN NUMBER
129671 --Payables Encumbrance Upgrade Credit Account
129672  , p_source_53            IN NUMBER
129673 --Payables Encumbrance Upgrade Credit Amount
129674  , p_source_54            IN NUMBER
129675 --Invoice Currency Code
129676  , p_source_55            IN VARCHAR2
129677 --Payables Encumbrance Upgrade Credit Base Amount
129678  , p_source_56            IN NUMBER
129679 --Payables Encumbrance Upgrade Debit Account
129680  , p_source_57            IN NUMBER
129681 --Payables Encumbrance Upgrade Debit Amount
129682  , p_source_58            IN NUMBER
129683 --Payables Encumbrance Upgrade Debit Base Amount
129684  , p_source_59            IN NUMBER
129685 --Payables Encumbrance Upgrade Option
129686  , p_source_60            IN VARCHAR2
129687 --Deferred Accounting End Date
129688  , p_source_65            IN DATE
129689 --Deferred Accounting Option
129690  , p_source_66            IN VARCHAR2
129691 --Deferred Accounting Start Date
129692  , p_source_67            IN DATE
129693 --Override Accounted Amount Indicator
129694  , p_source_68            IN VARCHAR2
129695  , p_source_68_meaning    IN VARCHAR2
129696 --Third Party Type
129700 --Invoice Distribution Tax Line Identifier
129697  , p_source_71            IN VARCHAR2
129698 --Parent Reversal Identifier
129699  , p_source_72            IN NUMBER
129701  , p_source_74            IN NUMBER
129702 --Invoice Distribution Tax Distribution Identifier from Tax
129703  , p_source_75            IN NUMBER
129704 --Invoice Distribution Summary Tax Line Identifier
129705  , p_source_76            IN NUMBER
129709  , p_source_78            IN NUMBER
129706 --Payables Upgrade Credit Encumbrance Type Identifier
129707  , p_source_77            IN NUMBER
129708 --Payables Upgrade Debit Encumbrance Type Identifier
129710 --Business Flow Accounts Payable Application Identifier
129711  , p_source_79            IN NUMBER
129712 --Business Flow Invoice Distribution Type
129713  , p_source_80            IN VARCHAR2
129714 --Business Flow Invoice Entity Code
129715  , p_source_81            IN VARCHAR2
129716 --Business Flow Invoice Distribution Identifier
129717  , p_source_82            IN NUMBER
129718 --Business Flow Invoice Identifier
129719  , p_source_83            IN NUMBER
129720 --Accrue on Receipt Option
129721  , p_source_84            IN VARCHAR2
129722  , p_source_84_meaning    IN VARCHAR2
129723 --Amount for Variance Amount
129724  , p_source_85            IN NUMBER
129725 --Purchasing Encumbrance Option
129726  , p_source_86            IN VARCHAR2
129727  , p_source_86_meaning    IN VARCHAR2
129728 --Invoice Encumbered Option
129729  , p_source_87            IN VARCHAR2
129730  , p_source_87_meaning    IN VARCHAR2
129731 --Quantity Variance Amount
129732  , p_source_161            IN NUMBER
129733 --Quantity Variance Amount in Ledger Currency
129734  , p_source_162            IN NUMBER
129735 )
129736 IS
129737 
129738 l_component_type              VARCHAR2(80);
129739 l_component_code              VARCHAR2(30);
129740 l_component_type_code         VARCHAR2(1);
129741 l_component_appl_id           INTEGER;
129742 l_amb_context_code            VARCHAR2(30);
129743 l_entity_code                 VARCHAR2(30);
129744 l_event_class_code            VARCHAR2(30);
129745 l_ae_header_id                NUMBER;
129746 l_event_type_code             VARCHAR2(30);
129747 l_line_definition_code        VARCHAR2(30);
129748 l_line_definition_owner_code  VARCHAR2(1);
129749 --
129750 -- adr variables
129751 l_segment                     VARCHAR2(30);
129752 l_ccid                        NUMBER;
129753 l_adr_transaction_coa_id      NUMBER;
129754 l_adr_accounting_coa_id       NUMBER;
129755 l_adr_flexfield_segment_code  VARCHAR2(30);
129756 l_adr_flex_value_set_id       NUMBER;
129757 l_adr_value_type_code         VARCHAR2(30);
129758 l_adr_value_combination_id    NUMBER;
129759 l_adr_value_segment_code      VARCHAR2(30);
129760 
129761 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
129762 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
129763 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
129764 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
129765 
129766 -- 4262811 Variables ------------------------------------------------------------------------------------------
129767 l_entered_amt_idx             NUMBER;
129768 l_accted_amt_idx              NUMBER;
129769 l_acc_rev_flag                VARCHAR2(1);
129770 l_accrual_line_num            NUMBER;
129771 l_tmp_amt                     NUMBER;
129772 l_acc_rev_natural_side_code   VARCHAR2(1);
129773 
129774 l_num_entries                 NUMBER;
129775 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
129776 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
129777 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
129778 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
129779 l_recog_line_1                NUMBER;
129780 l_recog_line_2                NUMBER;
129781 
129782 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
129783 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
129784 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
129785 
129786 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
129787 
129788 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
129789 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
129790 
129791 ---------------------------------------------------------------------------------------------------------------
129792 
129793 
129794 --
129795 -- bulk performance
129796 --
129797 l_balance_type_code           VARCHAR2(1);
129798 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
129799 l_log_module                  VARCHAR2(240);
129800 
129801 --
129802 -- Upgrade strategy
129803 --
129804 l_actual_upg_option           VARCHAR2(1);
129808 BEGIN
129805 l_enc_upg_option           VARCHAR2(1);
129806 
129807 --
129809 --
129810 IF g_log_enabled THEN
129811       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_217';
129812 END IF;
129813 --
129814 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
129815 
129816       trace
129817          (p_msg      => 'BEGIN of AcctLineType_217'
129818          ,p_level    => C_LEVEL_PROCEDURE
129819          ,p_module   => l_log_module);
129820 
129821 END IF;
129822 --
129823 l_component_type             := 'AMB_JLT';
129824 l_component_code             := 'AP_QUANTITY_VARIANCE_DM_ENC';
129825 l_component_type_code        := 'S';
129826 l_component_appl_id          :=  200;
129827 l_amb_context_code           := 'DEFAULT';
129828 l_entity_code                := 'AP_INVOICES';
129829 l_event_class_code           := 'DEBIT MEMOS';
129830 l_event_type_code            := 'DEBIT MEMOS_ALL';
129831 l_line_definition_owner_code := 'S';
129832 l_line_definition_code       := 'ENC_REV_DM_ALL';
129833 --
129834 l_balance_type_code          := 'E';
129835 l_segment                     := NULL;
129836 l_ccid                        := NULL;
129837 l_adr_transaction_coa_id      := NULL;
129838 l_adr_accounting_coa_id       := NULL;
129839 l_adr_flexfield_segment_code  := NULL;
129840 l_adr_flex_value_set_id       := NULL;
129841 l_adr_value_type_code         := NULL;
129842 l_adr_value_combination_id    := NULL;
129843 l_adr_value_segment_code      := NULL;
129844 
129845 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
129846 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
129847 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
129848 l_budgetary_control_flag     := 'N';
129849 
129850 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
129851 l_bflow_applied_to_amt       := NULL; -- 5132302
129852 l_entered_amt_idx            := NULL;          -- 4262811
129853 l_accted_amt_idx             := NULL;          -- 4262811
129854 l_acc_rev_flag               := NULL;          -- 4262811
129855 l_accrual_line_num           := NULL;          -- 4262811
129856 l_tmp_amt                    := NULL;          -- 4262811
129857 --
129858  
129859 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
129863 p_source_85 IS NOT NULL AND 
129860     l_balance_type_code <> 'B' THEN
129861 IF NVL(p_source_21,'
129862 ') =  'ITEM' AND 
129864 NVL(p_source_84,'
129865 ') <>  'Y' AND 
129866 NVL(p_source_86,'
129867 ') =  'Y' AND 
129868 NVL(p_source_87,'
129869 ') =  'Y'
129870  THEN 
129871 
129872    --
129873    XLA_AE_LINES_PKG.SetNewLine;
129874 
129875    p_balance_type_code          := l_balance_type_code;
129876    -- set the flag so later we will know whether the gain loss line needs to be created
129877    
129878    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
129879      p_actual_flag :='A';
129880    END IF;
129881 
129882    --
129883    -- bulk performance
129884    --
129885    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
129886                                       p_header_num   => 0); -- 4262811
129887    --
129888    -- set accounting line options
129889    --
129890    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
129891            p_natural_side_code          => 'C'
129892          , p_gain_or_loss_flag          => 'N'
129893          , p_gl_transfer_mode_code      => 'S'
129894          , p_acct_entry_type_code       => 'E'
129895          , p_switch_side_flag           => 'Y'
129896          , p_merge_duplicate_code       => 'A'
129897          );
129898    --
129899    l_acc_rev_natural_side_code := 'D';  -- 4262811
129900    -- 
129901    --
129902    -- set accounting line type info
129903    --
129904    xla_ae_lines_pkg.SetAcctLineType
129905       (p_component_type             => l_component_type
129906       ,p_event_type_code            => l_event_type_code
129907       ,p_line_definition_owner_code => l_line_definition_owner_code
129908       ,p_line_definition_code       => l_line_definition_code
129909       ,p_accounting_line_code       => l_component_code
129910       ,p_accounting_line_type_code  => l_component_type_code
129911       ,p_accounting_line_appl_id    => l_component_appl_id
129912       ,p_amb_context_code           => l_amb_context_code
129913       ,p_entity_code                => l_entity_code
129914       ,p_event_class_code           => l_event_class_code);
129915    --
129916    -- set accounting class
129917    --
129918    xla_ae_lines_pkg.SetAcctClass(
129919            p_accounting_class_code  => 'QV'
129920          , p_ae_header_id           => l_ae_header_id
129921          );
129922 
129923    --
129924    -- set rounding class
129925    --
129929    --
129926    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
129927                       'QV';
129928 
129930    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
129931    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
129932    --
129933    -- bulk performance
129934    --
129935    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
129936 
129937    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
129938       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
129939 
129940    -- 4955764
129941    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
129942       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
129943 
129944    -- 4458381 Public Sector Enh
129945    
129946    --
129947    -- set accounting attributes for the line type
129948    --
129949    l_entered_amt_idx := 23;
129950    l_accted_amt_idx  := 25;
129951    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
129952    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
129953    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
129954    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
129955    l_rec_acct_attrs.array_num_value(2)  := 
129956 xla_ae_sources_pkg.GetSystemSourceNum(
129957    p_source_code           => 'XLA_EVENT_APPL_ID'
129958  , p_source_type_code      => 'Y'
129959  , p_source_application_id =>  602
129960 );
129961    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
129962    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
129963    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
129964    l_rec_acct_attrs.array_char_value(4)  := 
129965 xla_ae_sources_pkg.GetSystemSourceChar(
129966    p_source_code           => 'XLA_ENTITY_CODE'
129967  , p_source_type_code      => 'Y'
129968  , p_source_application_id =>  602
129969 );
129970    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
129971    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
129972    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
129973    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
129974    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
129975    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
129976    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
129977    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
129978    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
129979    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
129980    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
129981    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
129982    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
129983    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
129984    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
129985    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
129986    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
129987    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
129988    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
129989    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
129990    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
129991    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
129992    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
129993    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
129994    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
129995    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
129996    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
129997    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
129998    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
129999    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
130000    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
130001    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
130002    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
130003    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
130004    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
130005    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
130006    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
130007    l_rec_acct_attrs.array_num_value(23)  := p_source_161;
130008    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
130009    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
130010    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
130011    l_rec_acct_attrs.array_num_value(25)  := p_source_162;
130012    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
130013    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
130014    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
130015    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
130016    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
130017    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
130018    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
130019    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
130020    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
130021    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
130022    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
130023    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
130024    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
130028    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
130025    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
130026    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
130027    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
130029    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
130030    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
130031    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
130032    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
130033    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
130034    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
130035    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
130036 
130037    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
130038    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
130039 
130040    ---------------------------------------------------------------------------------------------------------------
130041    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
130042    ---------------------------------------------------------------------------------------------------------------
130043    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
130044 
130045    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
130046    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
130047 
130048    IF xla_accounting_cache_pkg.GetValueChar
130049          (p_source_code         => 'LEDGER_CATEGORY_CODE'
130050          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
130051    AND l_bflow_method_code = 'PRIOR_ENTRY'
130052 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
130053    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
130054          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
130055        )
130056    THEN
130057          xla_ae_lines_pkg.BflowUpgEntry
130058            (p_business_method_code    => l_bflow_method_code
130059            ,p_business_class_code     => l_bflow_class_code
130060            ,p_balance_type            => l_balance_type_code);
130061    ELSE
130062       NULL;
130063 XLA_AE_LINES_PKG.business_flow_validation(
130064                                 p_business_method_code     => l_bflow_method_code
130065                                ,p_business_class_code      => l_bflow_class_code
130066                                ,p_inherit_description_flag => l_inherit_desc_flag);
130067    END IF;
130068 
130069    --
130070    -- call analytical criteria
130071    --
130072    -- Inherited Analytical Criteria for business flow method of Prior Entry.
130073    --
130074    -- call description
130075    --
130076    -- No description or it is inherited.
130077    --
130078    -- call ADRs
130079    -- Bug 4922099
130080    --
130081    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
130082         (NVL(l_actual_upg_option, 'N') = 'O') OR
130083         (NVL(l_enc_upg_option, 'N') = 'O')
130084       )
130085    THEN
130086    NULL;
130087    --
130088    --
130089    
130090    --
130091    --
130092    END IF;
130093    --
130094    -- Bug 4922099
130095    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
130096           (NVL(l_enc_upg_option, 'N') = 'O')
130097         ) AND
130098         (l_bflow_method_code = 'PRIOR_ENTRY')
130099       )
130100    THEN
130101       IF
130102       --
130103       1 = 1
130104       --
130105       THEN
130106       xla_accounting_err_pkg.build_message
130107                                     (p_appli_s_name            => 'XLA'
130108                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
130109                                     ,p_token_1                 => 'LINE_NUMBER'
130110                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
130111                                     ,p_token_2                 => 'LINE_TYPE_NAME'
130112                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
130113                                                                              l_component_type
130114                                                                             ,l_component_code
130115                                                                             ,l_component_type_code
130116                                                                             ,l_component_appl_id
130117                                                                             ,l_amb_context_code
130118                                                                             ,l_entity_code
130119                                                                             ,l_event_class_code
130120                                                                            )
130121                                     ,p_token_3                 => 'OWNER'
130122                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
130123                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
130124                                                                           ,p_lookup_code    => l_component_type_code
130125                                                                          )
130126                                     ,p_token_4                 => 'PRODUCT_NAME'
130127                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
130128                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
130132                                        );
130129                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
130130                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
130131                                     ,p_ae_header_id            =>  NULL
130133 
130134         IF (C_LEVEL_ERROR>= g_log_level) THEN
130135                  trace
130136                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
130137                       ,p_level    => C_LEVEL_ERROR
130138                       ,p_module   => l_log_module);
130139         END IF;
130140       END IF;
130141    END IF;
130142    --
130143    --
130144    ------------------------------------------------------------------------------------------------
130145    -- 4219869 Business Flow
130146    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
130147    -- Prior Entry.  Currently, the following code is always generated.
130148    ------------------------------------------------------------------------------------------------
130149    -- No ValidateCurrentLine for business flow method of Prior Entry
130150 
130151    ------------------------------------------------------------------------------------
130152    -- 4219869 Business Flow
130153    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
130154    ------------------------------------------------------------------------------------
130155    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
130156 
130157    ----------------------------------------------------------------------------------
130158    -- 4219869 Business Flow
130159    -- Update journal entry status -- Need to generate this within IF <condition>
130160    ----------------------------------------------------------------------------------
130161    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
130162          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
130163          ,p_balance_type_code => l_balance_type_code
130164          );
130165 
130166    -------------------------------------------------------------------------------------------
130167    -- 4262811 - Generate the Accrual Reversal lines
130168    -------------------------------------------------------------------------------------------
130169    BEGIN
130170       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
130171                               (g_array_event(p_event_id).array_value_num('header_index'));
130172       IF l_acc_rev_flag IS NULL THEN
130173          l_acc_rev_flag := 'N';
130174       END IF;
130175    EXCEPTION
130176       WHEN OTHERS THEN
130177          l_acc_rev_flag := 'N';
130178    END;
130179    --
130180    IF (l_acc_rev_flag = 'Y') THEN
130181 
130182        -- 4645092  ------------------------------------------------------------------------------
130183        -- To allow MPA report to determine if it should generate report process
130184        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
130185        ------------------------------------------------------------------------------------------
130186 
130187        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
130188        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
130189    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
130190    -- call ADRs
130191    -- Bug 4922099
130192    --
130193    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
130194         (NVL(l_actual_upg_option, 'N') = 'O') OR
130195         (NVL(l_enc_upg_option, 'N') = 'O')
130196       )
130197    THEN
130198    NULL;
130199    --
130200    --
130201    
130202    --
130203    --
130204    END IF;
130205 
130206        --
130207        -- Update the line information that should be overwritten
130208        --
130209        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
130210                                          p_header_num   => 1);
130211        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
130212 
130213        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
130214 
130215        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
130216           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
130217        END IF;
130218 
130219       --
130220       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
130221       --
130222       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
130223           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
130224       ELSE
130225           ---------------------------------------------------------------------------------------------------
130226           -- 4262811a Switch Sign
130227           ---------------------------------------------------------------------------------------------------
130228           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
130229           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
130230                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
130231           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
130232                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
130233           -- 5132302
130234           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
130235                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
130236 
130237       END IF;
130238 
130242 
130239       -- 4955764
130240       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
130241       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
130243 
130244       XLA_AE_LINES_PKG.ValidateCurrentLine;
130245       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
130246 
130247       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
130248                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
130249                ,p_balance_type_code => l_balance_type_code);
130250 
130251    END IF;
130252 
130253    -----------------------------------------------------------------------------------------
130254    -- 4262811 Multiperiod Accounting
130255    -----------------------------------------------------------------------------------------
130256      -- No MPA option is assigned.
130257 
130258 
130259 END IF;
130260 END IF;
130261 --
130262 
130263 --
130264 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
130265    trace
130266       (p_msg      => 'END of AcctLineType_217'
130267       ,p_level    => C_LEVEL_PROCEDURE
130268       ,p_module   => l_log_module);
130269 END IF;
130270 --
130271 EXCEPTION
130272   WHEN xla_exceptions_pkg.application_exception THEN
130273       RAISE;
130274   WHEN OTHERS THEN
130275        xla_exceptions_pkg.raise_message
130276            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_217');
130277 END AcctLineType_217;
130278 --
130279 
130280 ---------------------------------------
130281 --
130282 -- PRIVATE FUNCTION
130283 --         AcctLineType_218
130284 --
130285 ---------------------------------------
130286 PROCEDURE AcctLineType_218 (
130287   p_application_id        IN NUMBER
130288  ,p_event_id              IN NUMBER
130289  ,p_calculate_acctd_flag  IN VARCHAR2
130290  ,p_calculate_g_l_flag    IN VARCHAR2
130291  ,p_actual_flag           IN OUT VARCHAR2
130292  ,p_balance_type_code     OUT VARCHAR2
130293  ,p_gain_or_loss_ref      OUT VARCHAR2
130294  
130295 --Invoice Distribution Type
130296  , p_source_21            IN VARCHAR2
130297  , p_source_21_meaning    IN VARCHAR2
130298 --Accounting Reversal Indicator
130299  , p_source_41            IN VARCHAR2
130300 --Distribution Link Type
130301  , p_source_43            IN VARCHAR2
130302 --Allocation to Main Distribution Identifier
130303  , p_source_45            IN NUMBER
130304 --Invoice Identifier
130305  , p_source_46            IN NUMBER
130306 --Invoice Distribution Identifier
130307  , p_source_52            IN NUMBER
130308 --Payables Encumbrance Upgrade Credit Account
130309  , p_source_53            IN NUMBER
130310 --Payables Encumbrance Upgrade Credit Amount
130311  , p_source_54            IN NUMBER
130312 --Invoice Currency Code
130313  , p_source_55            IN VARCHAR2
130314 --Payables Encumbrance Upgrade Credit Base Amount
130315  , p_source_56            IN NUMBER
130316 --Payables Encumbrance Upgrade Debit Account
130317  , p_source_57            IN NUMBER
130318 --Payables Encumbrance Upgrade Debit Amount
130319  , p_source_58            IN NUMBER
130320 --Payables Encumbrance Upgrade Debit Base Amount
130321  , p_source_59            IN NUMBER
130322 --Payables Encumbrance Upgrade Option
130323  , p_source_60            IN VARCHAR2
130324 --Invoice Distribution Amount
130325  , p_source_61            IN NUMBER
130326 --Deferred Accounting End Date
130327  , p_source_65            IN DATE
130328 --Deferred Accounting Option
130329  , p_source_66            IN VARCHAR2
130330 --Deferred Accounting Start Date
130331  , p_source_67            IN DATE
130332 --Override Accounted Amount Indicator
130333  , p_source_68            IN VARCHAR2
130334  , p_source_68_meaning    IN VARCHAR2
130335 --Third Party Type
130336  , p_source_71            IN VARCHAR2
130337 --Parent Reversal Identifier
130338  , p_source_72            IN NUMBER
130339 --Invoice Distribution Statistical Amount
130340  , p_source_73            IN NUMBER
130341 --Invoice Distribution Tax Line Identifier
130342  , p_source_74            IN NUMBER
130343 --Invoice Distribution Tax Distribution Identifier from Tax
130344  , p_source_75            IN NUMBER
130345 --Invoice Distribution Summary Tax Line Identifier
130346  , p_source_76            IN NUMBER
130347 --Payables Upgrade Credit Encumbrance Type Identifier
130348  , p_source_77            IN NUMBER
130349 --Payables Upgrade Debit Encumbrance Type Identifier
130350  , p_source_78            IN NUMBER
130351 --Business Flow Accounts Payable Application Identifier
130352  , p_source_79            IN NUMBER
130353 --Business Flow Invoice Distribution Type
130354  , p_source_80            IN VARCHAR2
130355 --Business Flow Invoice Entity Code
130356  , p_source_81            IN VARCHAR2
130357 --Business Flow Invoice Distribution Identifier
130358  , p_source_82            IN NUMBER
130359 --Business Flow Invoice Identifier
130360  , p_source_83            IN NUMBER
130361 --Accrue on Receipt Option
130362  , p_source_84            IN VARCHAR2
130363  , p_source_84_meaning    IN VARCHAR2
130364 --Purchasing Encumbrance Option
130365  , p_source_86            IN VARCHAR2
130366  , p_source_86_meaning    IN VARCHAR2
130367 --Invoice Encumbered Option
130368  , p_source_87            IN VARCHAR2
130369  , p_source_87_meaning    IN VARCHAR2
130370 --Quantity Variance Amount
130371  , p_source_161            IN NUMBER
130372 --Quantity Variance Amount in Ledger Currency
130373  , p_source_162            IN NUMBER
130374 )
130375 IS
130376 
130377 l_component_type              VARCHAR2(80);
130378 l_component_code              VARCHAR2(30);
130379 l_component_type_code         VARCHAR2(1);
130383 l_event_class_code            VARCHAR2(30);
130380 l_component_appl_id           INTEGER;
130381 l_amb_context_code            VARCHAR2(30);
130382 l_entity_code                 VARCHAR2(30);
130384 l_ae_header_id                NUMBER;
130385 l_event_type_code             VARCHAR2(30);
130386 l_line_definition_code        VARCHAR2(30);
130387 l_line_definition_owner_code  VARCHAR2(1);
130388 --
130389 -- adr variables
130390 l_segment                     VARCHAR2(30);
130391 l_ccid                        NUMBER;
130392 l_adr_transaction_coa_id      NUMBER;
130393 l_adr_accounting_coa_id       NUMBER;
130394 l_adr_flexfield_segment_code  VARCHAR2(30);
130395 l_adr_flex_value_set_id       NUMBER;
130396 l_adr_value_type_code         VARCHAR2(30);
130397 l_adr_value_combination_id    NUMBER;
130398 l_adr_value_segment_code      VARCHAR2(30);
130399 
130400 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
130401 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
130402 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
130403 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
130404 
130405 -- 4262811 Variables ------------------------------------------------------------------------------------------
130406 l_entered_amt_idx             NUMBER;
130407 l_accted_amt_idx              NUMBER;
130408 l_acc_rev_flag                VARCHAR2(1);
130409 l_accrual_line_num            NUMBER;
130410 l_tmp_amt                     NUMBER;
130411 l_acc_rev_natural_side_code   VARCHAR2(1);
130412 
130413 l_num_entries                 NUMBER;
130414 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
130415 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
130416 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
130417 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
130418 l_recog_line_1                NUMBER;
130419 l_recog_line_2                NUMBER;
130420 
130421 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
130422 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
130423 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
130424 
130425 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
130426 
130427 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
130428 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
130429 
130430 ---------------------------------------------------------------------------------------------------------------
130431 
130432 
130433 --
130434 -- bulk performance
130435 --
130436 l_balance_type_code           VARCHAR2(1);
130437 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
130438 l_log_module                  VARCHAR2(240);
130439 
130440 --
130441 -- Upgrade strategy
130442 --
130443 l_actual_upg_option           VARCHAR2(1);
130444 l_enc_upg_option           VARCHAR2(1);
130445 
130446 --
130447 BEGIN
130448 --
130449 IF g_log_enabled THEN
130450       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_218';
130451 END IF;
130452 --
130453 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
130454 
130455       trace
130456          (p_msg      => 'BEGIN of AcctLineType_218'
130457          ,p_level    => C_LEVEL_PROCEDURE
130458          ,p_module   => l_log_module);
130459 
130460 END IF;
130461 --
130462 l_component_type             := 'AMB_JLT';
130463 l_component_code             := 'AP_QUANTITY_VARIANCE_INV_ENC';
130464 l_component_type_code        := 'S';
130465 l_component_appl_id          :=  200;
130466 l_amb_context_code           := 'DEFAULT';
130467 l_entity_code                := 'AP_INVOICES';
130468 l_event_class_code           := 'INVOICES';
130469 l_event_type_code            := 'INVOICES_ALL';
130470 l_line_definition_owner_code := 'S';
130471 l_line_definition_code       := 'ENC_REV_INVOICES_ALL';
130472 --
130473 l_balance_type_code          := 'E';
130474 l_segment                     := NULL;
130475 l_ccid                        := NULL;
130476 l_adr_transaction_coa_id      := NULL;
130477 l_adr_accounting_coa_id       := NULL;
130478 l_adr_flexfield_segment_code  := NULL;
130479 l_adr_flex_value_set_id       := NULL;
130480 l_adr_value_type_code         := NULL;
130481 l_adr_value_combination_id    := NULL;
130482 l_adr_value_segment_code      := NULL;
130483 
130484 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
130485 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
130486 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
130487 l_budgetary_control_flag     := 'N';
130488 
130489 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
130490 l_bflow_applied_to_amt       := NULL; -- 5132302
130491 l_entered_amt_idx            := NULL;          -- 4262811
130492 l_accted_amt_idx             := NULL;          -- 4262811
130493 l_acc_rev_flag               := NULL;          -- 4262811
130494 l_accrual_line_num           := NULL;          -- 4262811
130495 l_tmp_amt                    := NULL;          -- 4262811
130496 --
130497  
130498 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
130499     l_balance_type_code <> 'B' THEN
130500 IF NVL(p_source_21,'
130501 ') =  'ITEM' AND 
130502 p_source_161 IS NOT NULL AND 
130503 NVL(p_source_86,'
130504 ') =  'Y' AND 
130505 NVL(p_source_84,'
130506 ') <>  'Y' AND 
130507 NVL(p_source_87,'
130508 ') =  'Y'
130509  THEN 
130510 
130511    --
130512    XLA_AE_LINES_PKG.SetNewLine;
130513 
130517    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
130514    p_balance_type_code          := l_balance_type_code;
130515    -- set the flag so later we will know whether the gain loss line needs to be created
130516    
130518      p_actual_flag :='A';
130519    END IF;
130520 
130521    --
130522    -- bulk performance
130523    --
130524    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
130525                                       p_header_num   => 0); -- 4262811
130526    --
130527    -- set accounting line options
130528    --
130529    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
130530            p_natural_side_code          => 'C'
130531          , p_gain_or_loss_flag          => 'N'
130532          , p_gl_transfer_mode_code      => 'S'
130533          , p_acct_entry_type_code       => 'E'
130534          , p_switch_side_flag           => 'Y'
130535          , p_merge_duplicate_code       => 'A'
130536          );
130537    --
130538    l_acc_rev_natural_side_code := 'D';  -- 4262811
130539    -- 
130540    --
130541    -- set accounting line type info
130542    --
130543    xla_ae_lines_pkg.SetAcctLineType
130544       (p_component_type             => l_component_type
130545       ,p_event_type_code            => l_event_type_code
130546       ,p_line_definition_owner_code => l_line_definition_owner_code
130547       ,p_line_definition_code       => l_line_definition_code
130548       ,p_accounting_line_code       => l_component_code
130549       ,p_accounting_line_type_code  => l_component_type_code
130550       ,p_accounting_line_appl_id    => l_component_appl_id
130551       ,p_amb_context_code           => l_amb_context_code
130552       ,p_entity_code                => l_entity_code
130553       ,p_event_class_code           => l_event_class_code);
130554    --
130555    -- set accounting class
130556    --
130557    xla_ae_lines_pkg.SetAcctClass(
130558            p_accounting_class_code  => 'QV'
130559          , p_ae_header_id           => l_ae_header_id
130560          );
130561 
130562    --
130563    -- set rounding class
130564    --
130565    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
130566                       'QV';
130567 
130568    --
130569    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
130570    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
130571    --
130572    -- bulk performance
130573    --
130574    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
130575 
130576    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
130577       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
130578 
130579    -- 4955764
130580    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
130581       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
130582 
130583    -- 4458381 Public Sector Enh
130584    
130585    --
130586    -- set accounting attributes for the line type
130587    --
130588    l_entered_amt_idx := 24;
130589    l_accted_amt_idx  := 26;
130590    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
130591    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
130592    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
130593    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
130594    l_rec_acct_attrs.array_num_value(2)  := 
130595 xla_ae_sources_pkg.GetSystemSourceNum(
130596    p_source_code           => 'XLA_EVENT_APPL_ID'
130597  , p_source_type_code      => 'Y'
130598  , p_source_application_id =>  602
130599 );
130600    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
130601    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
130602    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
130603    l_rec_acct_attrs.array_char_value(4)  := 
130604 xla_ae_sources_pkg.GetSystemSourceChar(
130605    p_source_code           => 'XLA_ENTITY_CODE'
130606  , p_source_type_code      => 'Y'
130607  , p_source_application_id =>  602
130608 );
130609    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
130610    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
130611    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
130612    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
130613    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
130614    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
130615    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
130616    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
130617    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
130618    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
130619    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
130620    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
130621    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
130622    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
130623    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
130624    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
130625    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
130626    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
130627    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
130628    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
130629    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
130633    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
130630    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
130631    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
130632    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
130634    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
130635    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
130636    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
130637    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
130638    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
130639    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
130640    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
130641    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
130642    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
130643    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
130644    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
130645    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
130646    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
130647    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
130648    l_rec_acct_attrs.array_num_value(24)  := p_source_161;
130649    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
130650    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
130651    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
130652    l_rec_acct_attrs.array_num_value(26)  := p_source_162;
130653    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
130654    l_rec_acct_attrs.array_date_value(27)  := p_source_65;
130655    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
130656    l_rec_acct_attrs.array_char_value(28)  := p_source_66;
130657    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
130658    l_rec_acct_attrs.array_date_value(29)  := p_source_67;
130659    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
130660    l_rec_acct_attrs.array_char_value(30)  := p_source_68;
130661    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
130662    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
130663    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
130664    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
130665    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
130666    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
130667    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
130668    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
130669    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
130670    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
130671    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
130672    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
130673    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
130674    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
130675    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
130676    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
130677    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
130678    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
130679 
130680    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
130681    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
130682 
130683    ---------------------------------------------------------------------------------------------------------------
130687 
130684    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
130685    ---------------------------------------------------------------------------------------------------------------
130686    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
130688    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
130689    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
130690 
130691    IF xla_accounting_cache_pkg.GetValueChar
130692          (p_source_code         => 'LEDGER_CATEGORY_CODE'
130693          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
130694    AND l_bflow_method_code = 'PRIOR_ENTRY'
130695 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
130696    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
130697          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
130698        )
130699    THEN
130700          xla_ae_lines_pkg.BflowUpgEntry
130701            (p_business_method_code    => l_bflow_method_code
130702            ,p_business_class_code     => l_bflow_class_code
130706 XLA_AE_LINES_PKG.business_flow_validation(
130703            ,p_balance_type            => l_balance_type_code);
130704    ELSE
130705       NULL;
130707                                 p_business_method_code     => l_bflow_method_code
130708                                ,p_business_class_code      => l_bflow_class_code
130709                                ,p_inherit_description_flag => l_inherit_desc_flag);
130710    END IF;
130711 
130712    --
130713    -- call analytical criteria
130714    --
130715    -- Inherited Analytical Criteria for business flow method of Prior Entry.
130716    --
130717    -- call description
130718    --
130719    -- No description or it is inherited.
130720    --
130721    -- call ADRs
130722    -- Bug 4922099
130723    --
130724    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
130725         (NVL(l_actual_upg_option, 'N') = 'O') OR
130726         (NVL(l_enc_upg_option, 'N') = 'O')
130727       )
130728    THEN
130729    NULL;
130730    --
130731    --
130732    
130733    --
130734    --
130735    END IF;
130736    --
130737    -- Bug 4922099
130738    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
130739           (NVL(l_enc_upg_option, 'N') = 'O')
130740         ) AND
130741         (l_bflow_method_code = 'PRIOR_ENTRY')
130742       )
130743    THEN
130744       IF
130745       --
130746       1 = 1
130747       --
130748       THEN
130749       xla_accounting_err_pkg.build_message
130750                                     (p_appli_s_name            => 'XLA'
130751                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
130752                                     ,p_token_1                 => 'LINE_NUMBER'
130753                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
130754                                     ,p_token_2                 => 'LINE_TYPE_NAME'
130755                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
130756                                                                              l_component_type
130757                                                                             ,l_component_code
130758                                                                             ,l_component_type_code
130759                                                                             ,l_component_appl_id
130760                                                                             ,l_amb_context_code
130761                                                                             ,l_entity_code
130762                                                                             ,l_event_class_code
130763                                                                            )
130764                                     ,p_token_3                 => 'OWNER'
130765                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
130766                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
130767                                                                           ,p_lookup_code    => l_component_type_code
130768                                                                          )
130769                                     ,p_token_4                 => 'PRODUCT_NAME'
130770                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
130771                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
130772                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
130773                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
130774                                     ,p_ae_header_id            =>  NULL
130775                                        );
130776 
130777         IF (C_LEVEL_ERROR>= g_log_level) THEN
130778                  trace
130779                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
130780                       ,p_level    => C_LEVEL_ERROR
130781                       ,p_module   => l_log_module);
130782         END IF;
130783       END IF;
130784    END IF;
130785    --
130786    --
130787    ------------------------------------------------------------------------------------------------
130788    -- 4219869 Business Flow
130789    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
130790    -- Prior Entry.  Currently, the following code is always generated.
130791    ------------------------------------------------------------------------------------------------
130792    -- No ValidateCurrentLine for business flow method of Prior Entry
130793 
130794    ------------------------------------------------------------------------------------
130795    -- 4219869 Business Flow
130796    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
130797    ------------------------------------------------------------------------------------
130798    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
130799 
130800    ----------------------------------------------------------------------------------
130801    -- 4219869 Business Flow
130802    -- Update journal entry status -- Need to generate this within IF <condition>
130803    ----------------------------------------------------------------------------------
130804    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
130805          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
130806          ,p_balance_type_code => l_balance_type_code
130807          );
130808 
130809    -------------------------------------------------------------------------------------------
130810    -- 4262811 - Generate the Accrual Reversal lines
130811    -------------------------------------------------------------------------------------------
130812    BEGIN
130816          l_acc_rev_flag := 'N';
130813       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
130814                               (g_array_event(p_event_id).array_value_num('header_index'));
130815       IF l_acc_rev_flag IS NULL THEN
130817       END IF;
130818    EXCEPTION
130819       WHEN OTHERS THEN
130820          l_acc_rev_flag := 'N';
130821    END;
130822    --
130823    IF (l_acc_rev_flag = 'Y') THEN
130824 
130825        -- 4645092  ------------------------------------------------------------------------------
130826        -- To allow MPA report to determine if it should generate report process
130827        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
130828        ------------------------------------------------------------------------------------------
130829 
130830        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
130831        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
130832    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
130833    -- call ADRs
130834    -- Bug 4922099
130835    --
130836    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
130837         (NVL(l_actual_upg_option, 'N') = 'O') OR
130838         (NVL(l_enc_upg_option, 'N') = 'O')
130839       )
130840    THEN
130841    NULL;
130842    --
130843    --
130844    
130845    --
130846    --
130847    END IF;
130848 
130849        --
130850        -- Update the line information that should be overwritten
130851        --
130852        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
130853                                          p_header_num   => 1);
130854        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
130855 
130856        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
130857 
130858        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
130859           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
130860        END IF;
130861 
130862       --
130863       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
130864       --
130865       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
130866           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
130867       ELSE
130868           ---------------------------------------------------------------------------------------------------
130869           -- 4262811a Switch Sign
130870           ---------------------------------------------------------------------------------------------------
130871           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
130872           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
130873                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
130874           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
130875                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
130876           -- 5132302
130877           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
130878                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
130879 
130880       END IF;
130881 
130882       -- 4955764
130883       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
130884       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
130885 
130886 
130887       XLA_AE_LINES_PKG.ValidateCurrentLine;
130888       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
130889 
130890       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
130891                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
130892                ,p_balance_type_code => l_balance_type_code);
130893 
130894    END IF;
130895 
130896    -----------------------------------------------------------------------------------------
130897    -- 4262811 Multiperiod Accounting
130898    -----------------------------------------------------------------------------------------
130899      -- No MPA option is assigned.
130900 
130901 
130902 END IF;
130903 END IF;
130904 --
130905 
130906 --
130907 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
130908    trace
130909       (p_msg      => 'END of AcctLineType_218'
130910       ,p_level    => C_LEVEL_PROCEDURE
130911       ,p_module   => l_log_module);
130912 END IF;
130913 --
130914 EXCEPTION
130915   WHEN xla_exceptions_pkg.application_exception THEN
130916       RAISE;
130917   WHEN OTHERS THEN
130918        xla_exceptions_pkg.raise_message
130919            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_218');
130920 END AcctLineType_218;
130921 --
130922 
130923 ---------------------------------------
130924 --
130925 -- PRIVATE FUNCTION
130926 --         AcctLineType_219
130927 --
130928 ---------------------------------------
130929 PROCEDURE AcctLineType_219 (
130930   p_application_id        IN NUMBER
130931  ,p_event_id              IN NUMBER
130932  ,p_calculate_acctd_flag  IN VARCHAR2
130933  ,p_calculate_g_l_flag    IN VARCHAR2
130934  ,p_actual_flag           IN OUT VARCHAR2
130935  ,p_balance_type_code     OUT VARCHAR2
130936  ,p_gain_or_loss_ref      OUT VARCHAR2
130937  
130938 --Invoice Distribution Type
130939  , p_source_21            IN VARCHAR2
130940  , p_source_21_meaning    IN VARCHAR2
130941 --Accounting Reversal Indicator
130942  , p_source_41            IN VARCHAR2
130943 --Distribution Link Type
130947 --Invoice Identifier
130944  , p_source_43            IN VARCHAR2
130945 --Allocation to Main Distribution Identifier
130946  , p_source_45            IN NUMBER
130948  , p_source_46            IN NUMBER
130949 --Invoice Distribution Identifier
130950  , p_source_52            IN NUMBER
130951 --Payables Encumbrance Upgrade Credit Account
130952  , p_source_53            IN NUMBER
130953 --Payables Encumbrance Upgrade Credit Amount
130954  , p_source_54            IN NUMBER
130955 --Invoice Currency Code
130956  , p_source_55            IN VARCHAR2
130957 --Payables Encumbrance Upgrade Credit Base Amount
130958  , p_source_56            IN NUMBER
130962  , p_source_58            IN NUMBER
130959 --Payables Encumbrance Upgrade Debit Account
130960  , p_source_57            IN NUMBER
130961 --Payables Encumbrance Upgrade Debit Amount
130963 --Payables Encumbrance Upgrade Debit Base Amount
130964  , p_source_59            IN NUMBER
130965 --Payables Encumbrance Upgrade Option
130966  , p_source_60            IN VARCHAR2
130967 --Deferred Accounting End Date
130968  , p_source_65            IN DATE
130969 --Deferred Accounting Option
130970  , p_source_66            IN VARCHAR2
130971 --Deferred Accounting Start Date
130972  , p_source_67            IN DATE
130973 --Override Accounted Amount Indicator
130974  , p_source_68            IN VARCHAR2
130975  , p_source_68_meaning    IN VARCHAR2
130976 --Third Party Type
130977  , p_source_71            IN VARCHAR2
130978 --Parent Reversal Identifier
130979  , p_source_72            IN NUMBER
130980 --Invoice Distribution Statistical Amount
130981  , p_source_73            IN NUMBER
130982 --Invoice Distribution Tax Line Identifier
130983  , p_source_74            IN NUMBER
130984 --Invoice Distribution Tax Distribution Identifier from Tax
130985  , p_source_75            IN NUMBER
130986 --Invoice Distribution Summary Tax Line Identifier
130987  , p_source_76            IN NUMBER
130988 --Payables Upgrade Credit Encumbrance Type Identifier
130989  , p_source_77            IN NUMBER
130990 --Payables Upgrade Debit Encumbrance Type Identifier
130991  , p_source_78            IN NUMBER
130992 --Business Flow Accounts Payable Application Identifier
130993  , p_source_79            IN NUMBER
130994 --Business Flow Invoice Distribution Type
130995  , p_source_80            IN VARCHAR2
130996 --Business Flow Invoice Entity Code
130997  , p_source_81            IN VARCHAR2
130998 --Business Flow Invoice Distribution Identifier
130999  , p_source_82            IN NUMBER
131000 --Business Flow Invoice Identifier
131001  , p_source_83            IN NUMBER
131002 --Accrue on Receipt Option
131003  , p_source_84            IN VARCHAR2
131004  , p_source_84_meaning    IN VARCHAR2
131005 --Amount for Variance Amount
131006  , p_source_85            IN NUMBER
131007 --Purchasing Encumbrance Option
131008  , p_source_86            IN VARCHAR2
131009  , p_source_86_meaning    IN VARCHAR2
131010 --Invoice Encumbered Option
131011  , p_source_87            IN VARCHAR2
131012  , p_source_87_meaning    IN VARCHAR2
131013 --Quantity Variance Amount
131014  , p_source_161            IN NUMBER
131015 --Quantity Variance Amount in Ledger Currency
131016  , p_source_162            IN NUMBER
131017 )
131018 IS
131019 
131020 l_component_type              VARCHAR2(80);
131021 l_component_code              VARCHAR2(30);
131022 l_component_type_code         VARCHAR2(1);
131023 l_component_appl_id           INTEGER;
131024 l_amb_context_code            VARCHAR2(30);
131025 l_entity_code                 VARCHAR2(30);
131026 l_event_class_code            VARCHAR2(30);
131027 l_ae_header_id                NUMBER;
131028 l_event_type_code             VARCHAR2(30);
131029 l_line_definition_code        VARCHAR2(30);
131030 l_line_definition_owner_code  VARCHAR2(1);
131031 --
131032 -- adr variables
131033 l_segment                     VARCHAR2(30);
131034 l_ccid                        NUMBER;
131035 l_adr_transaction_coa_id      NUMBER;
131036 l_adr_accounting_coa_id       NUMBER;
131037 l_adr_flexfield_segment_code  VARCHAR2(30);
131038 l_adr_flex_value_set_id       NUMBER;
131039 l_adr_value_type_code         VARCHAR2(30);
131040 l_adr_value_combination_id    NUMBER;
131041 l_adr_value_segment_code      VARCHAR2(30);
131042 
131043 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
131044 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
131045 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
131046 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
131047 
131048 -- 4262811 Variables ------------------------------------------------------------------------------------------
131049 l_entered_amt_idx             NUMBER;
131050 l_accted_amt_idx              NUMBER;
131054 l_acc_rev_natural_side_code   VARCHAR2(1);
131051 l_acc_rev_flag                VARCHAR2(1);
131052 l_accrual_line_num            NUMBER;
131053 l_tmp_amt                     NUMBER;
131055 
131056 l_num_entries                 NUMBER;
131057 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
131058 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
131059 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
131060 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
131061 l_recog_line_1                NUMBER;
131062 l_recog_line_2                NUMBER;
131063 
131064 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
131065 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
131066 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
131067 
131068 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
131069 
131070 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
131071 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
131072 
131073 ---------------------------------------------------------------------------------------------------------------
131074 
131075 
131076 --
131077 -- bulk performance
131078 --
131079 l_balance_type_code           VARCHAR2(1);
131080 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
131081 l_log_module                  VARCHAR2(240);
131082 
131083 --
131084 -- Upgrade strategy
131085 --
131086 l_actual_upg_option           VARCHAR2(1);
131087 l_enc_upg_option           VARCHAR2(1);
131088 
131089 --
131090 BEGIN
131091 --
131092 IF g_log_enabled THEN
131093       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_219';
131094 END IF;
131095 --
131096 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
131097 
131098       trace
131099          (p_msg      => 'BEGIN of AcctLineType_219'
131100          ,p_level    => C_LEVEL_PROCEDURE
131101          ,p_module   => l_log_module);
131102 
131103 END IF;
131104 --
131105 l_component_type             := 'AMB_JLT';
131106 l_component_code             := 'AP_QUANTITY_VARIANCE_PP_ENC';
131107 l_component_type_code        := 'S';
131108 l_component_appl_id          :=  200;
131109 l_amb_context_code           := 'DEFAULT';
131110 l_entity_code                := 'AP_INVOICES';
131111 l_event_class_code           := 'PREPAYMENTS';
131112 l_event_type_code            := 'PREPAYMENTS_ALL';
131113 l_line_definition_owner_code := 'S';
131114 l_line_definition_code       := 'ENC_REV_PREPAY_ALL';
131115 --
131119 l_adr_transaction_coa_id      := NULL;
131116 l_balance_type_code          := 'E';
131117 l_segment                     := NULL;
131118 l_ccid                        := NULL;
131120 l_adr_accounting_coa_id       := NULL;
131121 l_adr_flexfield_segment_code  := NULL;
131122 l_adr_flex_value_set_id       := NULL;
131123 l_adr_value_type_code         := NULL;
131127 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
131124 l_adr_value_combination_id    := NULL;
131125 l_adr_value_segment_code      := NULL;
131126 
131128 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
131129 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
131130 l_budgetary_control_flag     := 'N';
131131 
131132 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
131133 l_bflow_applied_to_amt       := NULL; -- 5132302
131134 l_entered_amt_idx            := NULL;          -- 4262811
131135 l_accted_amt_idx             := NULL;          -- 4262811
131136 l_acc_rev_flag               := NULL;          -- 4262811
131137 l_accrual_line_num           := NULL;          -- 4262811
131138 l_tmp_amt                    := NULL;          -- 4262811
131139 --
131140  
131141 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
131142     l_balance_type_code <> 'B' THEN
131143 IF NVL(p_source_21,'
131144 ') =  'ITEM' AND 
131145 p_source_85 IS NOT NULL AND 
131146 NVL(p_source_84,'
131147 ') <>  'Y' AND 
131148 NVL(p_source_86,'
131149 ') =  'Y' AND 
131150 NVL(p_source_87,'
131151 ') =  'Y'
131152  THEN 
131153 
131154    --
131155    XLA_AE_LINES_PKG.SetNewLine;
131156 
131157    p_balance_type_code          := l_balance_type_code;
131158    -- set the flag so later we will know whether the gain loss line needs to be created
131159    
131160    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
131161      p_actual_flag :='A';
131162    END IF;
131163 
131164    --
131165    -- bulk performance
131166    --
131167    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
131168                                       p_header_num   => 0); -- 4262811
131169    --
131170    -- set accounting line options
131171    --
131172    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
131173            p_natural_side_code          => 'C'
131174          , p_gain_or_loss_flag          => 'N'
131175          , p_gl_transfer_mode_code      => 'S'
131176          , p_acct_entry_type_code       => 'E'
131177          , p_switch_side_flag           => 'Y'
131178          , p_merge_duplicate_code       => 'A'
131179          );
131180    --
131181    l_acc_rev_natural_side_code := 'D';  -- 4262811
131182    -- 
131183    --
131184    -- set accounting line type info
131185    --
131186    xla_ae_lines_pkg.SetAcctLineType
131187       (p_component_type             => l_component_type
131188       ,p_event_type_code            => l_event_type_code
131189       ,p_line_definition_owner_code => l_line_definition_owner_code
131190       ,p_line_definition_code       => l_line_definition_code
131191       ,p_accounting_line_code       => l_component_code
131192       ,p_accounting_line_type_code  => l_component_type_code
131193       ,p_accounting_line_appl_id    => l_component_appl_id
131194       ,p_amb_context_code           => l_amb_context_code
131195       ,p_entity_code                => l_entity_code
131196       ,p_event_class_code           => l_event_class_code);
131197    --
131198    -- set accounting class
131199    --
131200    xla_ae_lines_pkg.SetAcctClass(
131201            p_accounting_class_code  => 'QV'
131202          , p_ae_header_id           => l_ae_header_id
131203          );
131204 
131205    --
131206    -- set rounding class
131207    --
131208    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
131209                       'QV';
131210 
131211    --
131212    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
131213    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
131214    --
131215    -- bulk performance
131216    --
131217    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
131218 
131219    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
131220       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
131221 
131222    -- 4955764
131223    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
131224       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
131225 
131226    -- 4458381 Public Sector Enh
131227    
131228    --
131229    -- set accounting attributes for the line type
131230    --
131231    l_entered_amt_idx := 23;
131232    l_accted_amt_idx  := 25;
131233    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
131234    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
131235    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
131236    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
131237    l_rec_acct_attrs.array_num_value(2)  := 
131238 xla_ae_sources_pkg.GetSystemSourceNum(
131239    p_source_code           => 'XLA_EVENT_APPL_ID'
131240  , p_source_type_code      => 'Y'
131241  , p_source_application_id =>  602
131242 );
131243    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
131244    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
131245    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
131246    l_rec_acct_attrs.array_char_value(4)  := 
131247 xla_ae_sources_pkg.GetSystemSourceChar(
131248    p_source_code           => 'XLA_ENTITY_CODE'
131249  , p_source_type_code      => 'Y'
131250  , p_source_application_id =>  602
131251 );
131252    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
131253    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
131254    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
131258    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
131255    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
131256    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
131257    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
131259    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
131260    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
131261    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
131262    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
131263    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
131267    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
131264    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
131265    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
131266    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
131268    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
131269    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
131270    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
131271    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
131272    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
131273    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
131274    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
131275    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
131276    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
131277    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
131278    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
131279    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
131280    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
131281    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
131282    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
131283    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
131284    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
131285    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
131286    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
131287    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
131288    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
131289    l_rec_acct_attrs.array_num_value(23)  := p_source_161;
131290    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
131291    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
131292    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
131293    l_rec_acct_attrs.array_num_value(25)  := p_source_162;
131294    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
131295    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
131296    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
131297    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
131298    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
131299    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
131300    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
131301    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
131302    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
131303    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
131304    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
131305    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
131306    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
131307    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
131308    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
131309    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
131310    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
131311    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
131312    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
131313    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
131314    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
131315    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
131316    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
131317    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
131318    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
131319    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
131320 
131321    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
131322    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
131323 
131324    ---------------------------------------------------------------------------------------------------------------
131325    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
131326    ---------------------------------------------------------------------------------------------------------------
131330    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
131327    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
131328 
131329    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
131331 
131332    IF xla_accounting_cache_pkg.GetValueChar
131333          (p_source_code         => 'LEDGER_CATEGORY_CODE'
131334          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
131335    AND l_bflow_method_code = 'PRIOR_ENTRY'
131336 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
131337    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
131338          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
131339        )
131340    THEN
131341          xla_ae_lines_pkg.BflowUpgEntry
131342            (p_business_method_code    => l_bflow_method_code
131343            ,p_business_class_code     => l_bflow_class_code
131344            ,p_balance_type            => l_balance_type_code);
131345    ELSE
131346       NULL;
131347 XLA_AE_LINES_PKG.business_flow_validation(
131348                                 p_business_method_code     => l_bflow_method_code
131349                                ,p_business_class_code      => l_bflow_class_code
131350                                ,p_inherit_description_flag => l_inherit_desc_flag);
131351    END IF;
131352 
131353    --
131354    -- call analytical criteria
131355    --
131356    -- Inherited Analytical Criteria for business flow method of Prior Entry.
131357    --
131358    -- call description
131359    --
131360    -- No description or it is inherited.
131361    --
131362    -- call ADRs
131363    -- Bug 4922099
131364    --
131365    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
131366         (NVL(l_actual_upg_option, 'N') = 'O') OR
131367         (NVL(l_enc_upg_option, 'N') = 'O')
131368       )
131369    THEN
131370    NULL;
131371    --
131372    --
131373    
131374    --
131375    --
131376    END IF;
131377    --
131378    -- Bug 4922099
131379    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
131380           (NVL(l_enc_upg_option, 'N') = 'O')
131381         ) AND
131382         (l_bflow_method_code = 'PRIOR_ENTRY')
131383       )
131384    THEN
131385       IF
131386       --
131387       1 = 1
131388       --
131389       THEN
131390       xla_accounting_err_pkg.build_message
131394                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
131391                                     (p_appli_s_name            => 'XLA'
131392                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
131393                                     ,p_token_1                 => 'LINE_NUMBER'
131395                                     ,p_token_2                 => 'LINE_TYPE_NAME'
131396                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
131397                                                                              l_component_type
131398                                                                             ,l_component_code
131399                                                                             ,l_component_type_code
131400                                                                             ,l_component_appl_id
131401                                                                             ,l_amb_context_code
131402                                                                             ,l_entity_code
131403                                                                             ,l_event_class_code
131404                                                                            )
131405                                     ,p_token_3                 => 'OWNER'
131406                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
131407                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
131408                                                                           ,p_lookup_code    => l_component_type_code
131409                                                                          )
131410                                     ,p_token_4                 => 'PRODUCT_NAME'
131411                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
131412                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
131413                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
131414                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
131415                                     ,p_ae_header_id            =>  NULL
131416                                        );
131417 
131421                       ,p_level    => C_LEVEL_ERROR
131418         IF (C_LEVEL_ERROR>= g_log_level) THEN
131419                  trace
131420                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
131422                       ,p_module   => l_log_module);
131423         END IF;
131424       END IF;
131425    END IF;
131426    --
131427    --
131428    ------------------------------------------------------------------------------------------------
131429    -- 4219869 Business Flow
131430    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
131431    -- Prior Entry.  Currently, the following code is always generated.
131432    ------------------------------------------------------------------------------------------------
131433    -- No ValidateCurrentLine for business flow method of Prior Entry
131434 
131435    ------------------------------------------------------------------------------------
131436    -- 4219869 Business Flow
131437    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
131438    ------------------------------------------------------------------------------------
131439    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
131440 
131441    ----------------------------------------------------------------------------------
131442    -- 4219869 Business Flow
131443    -- Update journal entry status -- Need to generate this within IF <condition>
131444    ----------------------------------------------------------------------------------
131445    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
131446          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
131447          ,p_balance_type_code => l_balance_type_code
131448          );
131449 
131450    -------------------------------------------------------------------------------------------
131451    -- 4262811 - Generate the Accrual Reversal lines
131452    -------------------------------------------------------------------------------------------
131453    BEGIN
131454       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
131455                               (g_array_event(p_event_id).array_value_num('header_index'));
131456       IF l_acc_rev_flag IS NULL THEN
131457          l_acc_rev_flag := 'N';
131458       END IF;
131459    EXCEPTION
131460       WHEN OTHERS THEN
131461          l_acc_rev_flag := 'N';
131462    END;
131463    --
131464    IF (l_acc_rev_flag = 'Y') THEN
131465 
131466        -- 4645092  ------------------------------------------------------------------------------
131467        -- To allow MPA report to determine if it should generate report process
131468        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
131469        ------------------------------------------------------------------------------------------
131470 
131471        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
131472        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
131473    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
131474    -- call ADRs
131475    -- Bug 4922099
131476    --
131477    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
131478         (NVL(l_actual_upg_option, 'N') = 'O') OR
131479         (NVL(l_enc_upg_option, 'N') = 'O')
131480       )
131481    THEN
131482    NULL;
131483    --
131484    --
131485    
131486    --
131487    --
131488    END IF;
131489 
131490        --
131491        -- Update the line information that should be overwritten
131492        --
131493        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
131494                                          p_header_num   => 1);
131495        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
131496 
131497        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
131498 
131499        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
131500           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
131501        END IF;
131502 
131503       --
131504       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
131505       --
131506       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
131507           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
131508       ELSE
131514                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
131509           ---------------------------------------------------------------------------------------------------
131510           -- 4262811a Switch Sign
131511           ---------------------------------------------------------------------------------------------------
131512           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
131513           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
131515           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
131516                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
131517           -- 5132302
131518           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
131519                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
131520 
131521       END IF;
131522 
131523       -- 4955764
131524       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
131525       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
131526 
131527 
131528       XLA_AE_LINES_PKG.ValidateCurrentLine;
131529       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
131530 
131531       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
131532                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
131533                ,p_balance_type_code => l_balance_type_code);
131534 
131535    END IF;
131536 
131537    -----------------------------------------------------------------------------------------
131538    -- 4262811 Multiperiod Accounting
131539    -----------------------------------------------------------------------------------------
131540      -- No MPA option is assigned.
131541 
131542 
131543 END IF;
131544 END IF;
131545 --
131546 
131547 --
131548 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
131549    trace
131550       (p_msg      => 'END of AcctLineType_219'
131551       ,p_level    => C_LEVEL_PROCEDURE
131552       ,p_module   => l_log_module);
131553 END IF;
131554 --
131555 EXCEPTION
131556   WHEN xla_exceptions_pkg.application_exception THEN
131557       RAISE;
131558   WHEN OTHERS THEN
131559        xla_exceptions_pkg.raise_message
131560            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_219');
131561 END AcctLineType_219;
131562 --
131563 
131564 ---------------------------------------
131565 --
131566 -- PRIVATE FUNCTION
131567 --         AcctLineType_220
131568 --
131569 ---------------------------------------
131570 PROCEDURE AcctLineType_220 (
131571   p_application_id        IN NUMBER
131572  ,p_event_id              IN NUMBER
131573  ,p_calculate_acctd_flag  IN VARCHAR2
131574  ,p_calculate_g_l_flag    IN VARCHAR2
131575  ,p_actual_flag           IN OUT VARCHAR2
131576  ,p_balance_type_code     OUT VARCHAR2
131577  ,p_gain_or_loss_ref      OUT VARCHAR2
131578  
131579 --Invoice Distribution Description
131580  , p_source_1            IN VARCHAR2
131581 --Invoice Distribution Ledger Amount
131582  , p_source_9            IN NUMBER
131583 --Invoice Distribution Account
131584  , p_source_18            IN NUMBER
131585 --Invoice Distribution Type
131586  , p_source_21            IN VARCHAR2
131587  , p_source_21_meaning    IN VARCHAR2
131588 --Accounting Reversal Indicator
131589  , p_source_41            IN VARCHAR2
131590 --Distribution Link Type
131591  , p_source_43            IN VARCHAR2
131592 --Allocation to Main Distribution Identifier
131593  , p_source_45            IN NUMBER
131594 --Invoice Identifier
131595  , p_source_46            IN NUMBER
131596 --Invoice Distribution Identifier
131597  , p_source_52            IN NUMBER
131598 --Payables Encumbrance Upgrade Credit Account
131599  , p_source_53            IN NUMBER
131600 --Payables Encumbrance Upgrade Credit Amount
131601  , p_source_54            IN NUMBER
131602 --Invoice Currency Code
131603  , p_source_55            IN VARCHAR2
131604 --Payables Encumbrance Upgrade Credit Base Amount
131605  , p_source_56            IN NUMBER
131606 --Payables Encumbrance Upgrade Debit Account
131607  , p_source_57            IN NUMBER
131608 --Payables Encumbrance Upgrade Debit Amount
131609  , p_source_58            IN NUMBER
131610 --Payables Encumbrance Upgrade Debit Base Amount
131611  , p_source_59            IN NUMBER
131612 --Payables Encumbrance Upgrade Option
131613  , p_source_60            IN VARCHAR2
131614 --Invoice Distribution Amount
131615  , p_source_61            IN NUMBER
131616 --Deferred Accounting End Date
131617  , p_source_65            IN DATE
131618 --Deferred Accounting Option
131619  , p_source_66            IN VARCHAR2
131620 --Deferred Accounting Start Date
131621  , p_source_67            IN DATE
131622 --Override Accounted Amount Indicator
131623  , p_source_68            IN VARCHAR2
131624  , p_source_68_meaning    IN VARCHAR2
131625 --Invoice Supplier Identifier
131626  , p_source_69            IN NUMBER
131627 --Invoice Supplier Site Identifier
131628  , p_source_70            IN NUMBER
131629 --Third Party Type
131630  , p_source_71            IN VARCHAR2
131631 --Parent Reversal Identifier
131632  , p_source_72            IN NUMBER
131633 --Invoice Distribution Statistical Amount
131634  , p_source_73            IN NUMBER
131635 --Invoice Distribution Tax Line Identifier
131636  , p_source_74            IN NUMBER
131637 --Invoice Distribution Tax Distribution Identifier from Tax
131638  , p_source_75            IN NUMBER
131639 --Invoice Distribution Summary Tax Line Identifier
131640  , p_source_76            IN NUMBER
131641 --Payables Upgrade Credit Encumbrance Type Identifier
131642  , p_source_77            IN NUMBER
131643 --Payables Upgrade Debit Encumbrance Type Identifier
131647 --Business Flow Invoice Distribution Type
131644  , p_source_78            IN NUMBER
131645 --Business Flow Accounts Payable Application Identifier
131646  , p_source_79            IN NUMBER
131648  , p_source_80            IN VARCHAR2
131649 --Business Flow Invoice Entity Code
131650  , p_source_81            IN VARCHAR2
131651 --Business Flow Invoice Distribution Identifier
131652  , p_source_82            IN NUMBER
131653 --Business Flow Invoice Identifier
131654  , p_source_83            IN NUMBER
131655 --Self-Assessed Tax Flag
131656  , p_source_135            IN VARCHAR2
131657  , p_source_135_meaning    IN VARCHAR2
131658 --Invoice Exchange Date
131659  , p_source_136            IN DATE
131660 --Invoice Exchange Rate
131661  , p_source_137            IN NUMBER
131662 --Invoice Exchange Rate Type
131666 
131663  , p_source_138            IN VARCHAR2
131664 )
131665 IS
131667 l_component_type              VARCHAR2(80);
131668 l_component_code              VARCHAR2(30);
131669 l_component_type_code         VARCHAR2(1);
131670 l_component_appl_id           INTEGER;
131671 l_amb_context_code            VARCHAR2(30);
131672 l_entity_code                 VARCHAR2(30);
131673 l_event_class_code            VARCHAR2(30);
131674 l_ae_header_id                NUMBER;
131675 l_event_type_code             VARCHAR2(30);
131676 l_line_definition_code        VARCHAR2(30);
131677 l_line_definition_owner_code  VARCHAR2(1);
131678 --
131679 -- adr variables
131680 l_segment                     VARCHAR2(30);
131681 l_ccid                        NUMBER;
131682 l_adr_transaction_coa_id      NUMBER;
131683 l_adr_accounting_coa_id       NUMBER;
131684 l_adr_flexfield_segment_code  VARCHAR2(30);
131685 l_adr_flex_value_set_id       NUMBER;
131686 l_adr_value_type_code         VARCHAR2(30);
131687 l_adr_value_combination_id    NUMBER;
131688 l_adr_value_segment_code      VARCHAR2(30);
131689 
131690 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
131691 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
131692 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
131693 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
131694 
131695 -- 4262811 Variables ------------------------------------------------------------------------------------------
131696 l_entered_amt_idx             NUMBER;
131697 l_accted_amt_idx              NUMBER;
131698 l_acc_rev_flag                VARCHAR2(1);
131699 l_accrual_line_num            NUMBER;
131700 l_tmp_amt                     NUMBER;
131701 l_acc_rev_natural_side_code   VARCHAR2(1);
131702 
131703 l_num_entries                 NUMBER;
131704 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
131705 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
131706 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
131707 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
131708 l_recog_line_1                NUMBER;
131709 l_recog_line_2                NUMBER;
131710 
131711 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
131712 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
131713 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
131714 
131715 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
131716 
131717 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
131718 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
131719 
131720 ---------------------------------------------------------------------------------------------------------------
131721 
131722 
131723 --
131724 -- bulk performance
131725 --
131726 l_balance_type_code           VARCHAR2(1);
131727 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
131728 l_log_module                  VARCHAR2(240);
131729 
131730 --
131731 -- Upgrade strategy
131732 --
131733 l_actual_upg_option           VARCHAR2(1);
131734 l_enc_upg_option           VARCHAR2(1);
131738 --
131735 
131736 --
131737 BEGIN
131739 IF g_log_enabled THEN
131740       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_220';
131741 END IF;
131742 --
131743 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
131744 
131745       trace
131746          (p_msg      => 'BEGIN of AcctLineType_220'
131747          ,p_level    => C_LEVEL_PROCEDURE
131748          ,p_module   => l_log_module);
131749 
131750 END IF;
131751 --
131752 l_component_type             := 'AMB_JLT';
131753 l_component_code             := 'AP_RECOV_TAX_CM';
131754 l_component_type_code        := 'S';
131755 l_component_appl_id          :=  200;
131756 l_amb_context_code           := 'DEFAULT';
131757 l_entity_code                := 'AP_INVOICES';
131758 l_event_class_code           := 'CREDIT MEMOS';
131759 l_event_type_code            := 'CREDIT MEMOS_ALL';
131760 l_line_definition_owner_code := 'S';
131761 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
131762 --
131763 l_balance_type_code          := 'A';
131764 l_segment                     := NULL;
131765 l_ccid                        := NULL;
131766 l_adr_transaction_coa_id      := NULL;
131767 l_adr_accounting_coa_id       := NULL;
131768 l_adr_flexfield_segment_code  := NULL;
131769 l_adr_flex_value_set_id       := NULL;
131770 l_adr_value_type_code         := NULL;
131771 l_adr_value_combination_id    := NULL;
131772 l_adr_value_segment_code      := NULL;
131773 
131774 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
131775 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
131776 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
131777 l_budgetary_control_flag     := 'N';
131778 
131779 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
131780 l_bflow_applied_to_amt       := NULL; -- 5132302
131781 l_entered_amt_idx            := NULL;          -- 4262811
131782 l_accted_amt_idx             := NULL;          -- 4262811
131783 l_acc_rev_flag               := NULL;          -- 4262811
131784 l_accrual_line_num           := NULL;          -- 4262811
131785 l_tmp_amt                    := NULL;          -- 4262811
131786 --
131787  
131788 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
131789     l_balance_type_code <> 'B' THEN
131790 IF NVL(p_source_21,'
131791 ') =  'REC_TAX' AND 
131792 NVL(p_source_135,'
131793 ') <>  'Y'
131794  THEN 
131795 
131796    --
131797    XLA_AE_LINES_PKG.SetNewLine;
131798 
131799    p_balance_type_code          := l_balance_type_code;
131800    -- set the flag so later we will know whether the gain loss line needs to be created
131801    
131802    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
131803      p_actual_flag :='A';
131804    END IF;
131805 
131806    --
131807    -- bulk performance
131808    --
131809    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
131810                                       p_header_num   => 0); -- 4262811
131811    --
131812    -- set accounting line options
131813    --
131814    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
131815            p_natural_side_code          => 'D'
131816          , p_gain_or_loss_flag          => 'N'
131817          , p_gl_transfer_mode_code      => 'S'
131818          , p_acct_entry_type_code       => 'A'
131819          , p_switch_side_flag           => 'Y'
131820          , p_merge_duplicate_code       => 'A'
131821          );
131822    --
131823    l_acc_rev_natural_side_code := 'C';  -- 4262811
131824    -- 
131825    --
131826    -- set accounting line type info
131827    --
131828    xla_ae_lines_pkg.SetAcctLineType
131829       (p_component_type             => l_component_type
131830       ,p_event_type_code            => l_event_type_code
131831       ,p_line_definition_owner_code => l_line_definition_owner_code
131832       ,p_line_definition_code       => l_line_definition_code
131833       ,p_accounting_line_code       => l_component_code
131834       ,p_accounting_line_type_code  => l_component_type_code
131835       ,p_accounting_line_appl_id    => l_component_appl_id
131836       ,p_amb_context_code           => l_amb_context_code
131837       ,p_entity_code                => l_entity_code
131838       ,p_event_class_code           => l_event_class_code);
131839    --
131840    -- set accounting class
131841    --
131842    xla_ae_lines_pkg.SetAcctClass(
131843            p_accounting_class_code  => 'RTAX'
131844          , p_ae_header_id           => l_ae_header_id
131845          );
131846 
131847    --
131848    -- set rounding class
131849    --
131850    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
131851                       'RTAX';
131852 
131853    --
131854    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
131855    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
131856    --
131857    -- bulk performance
131858    --
131859    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
131860 
131861    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
131862       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
131863 
131864    -- 4955764
131865    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
131866       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
131867 
131868    -- 4458381 Public Sector Enh
131869    
131870    --
131871    -- set accounting attributes for the line type
131872    --
131873    l_entered_amt_idx := 23;
131874    l_accted_amt_idx  := 28;
131878    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
131875    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
131876    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
131877    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
131879    l_rec_acct_attrs.array_num_value(2)  := 
131880 xla_ae_sources_pkg.GetSystemSourceNum(
131881    p_source_code           => 'XLA_EVENT_APPL_ID'
131882  , p_source_type_code      => 'Y'
131883  , p_source_application_id =>  602
131884 );
131885    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
131886    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
131887    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
131888    l_rec_acct_attrs.array_char_value(4)  := 
131889 xla_ae_sources_pkg.GetSystemSourceChar(
131890    p_source_code           => 'XLA_ENTITY_CODE'
131891  , p_source_type_code      => 'Y'
131892  , p_source_application_id =>  602
131893 );
131894    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
131895    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
131896    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
131897    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
131898    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
131899    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
131900    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
131901    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
131902    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
131903    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
131904    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
131905    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
131906    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
131907    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
131908    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
131909    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
131910    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
131911    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
131912    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
131913    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
131914    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
131915    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
131916    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
131917    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
131918    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
131919    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
131920    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
131921    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
131922    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
131923    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
131924    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
131925    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
131926    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
131927    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
131928    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
131929    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
131930    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
131931    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
131932    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
131933    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
131934    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
131935    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
131936    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
131937    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
131938    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
131939    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
131940    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
131941    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
131942    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
131943    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
131944    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
131945    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
131946    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
131947    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
131948    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
131949    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
131950    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
131951    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
131952    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
131953    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
131954    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
131955    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
131956    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
131957    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
131958    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
131959    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
131960    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
131961    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
131962    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
131963    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
131964    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
131965    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
131966    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
131967    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
131968    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
131969    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
131970    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
131971    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
131972 
131973    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
131974    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
131975 
131976    ---------------------------------------------------------------------------------------------------------------
131977    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
131978    ---------------------------------------------------------------------------------------------------------------
131979    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
131980 
131981    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
131982    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
131983 
131984    IF xla_accounting_cache_pkg.GetValueChar
131985          (p_source_code         => 'LEDGER_CATEGORY_CODE'
131986          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
131987    AND l_bflow_method_code = 'PRIOR_ENTRY'
131988 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
131989    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
131990          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
131991        )
131992    THEN
131993          xla_ae_lines_pkg.BflowUpgEntry
131994            (p_business_method_code    => l_bflow_method_code
131995            ,p_business_class_code     => l_bflow_class_code
131996            ,p_balance_type            => l_balance_type_code);
131997    ELSE
131998       NULL;
131999 -- No business flow processing for business flow method of NONE.
132000    END IF;
132001 
132002    --
132003    -- call analytical criteria
132004    --
132005    
132006    --
132007    -- call description
132008    --
132009    
132010 xla_ae_lines_pkg.SetLineDescription(
132011    p_ae_header_id => l_ae_header_id
132012   ,p_description  => Description_2 (
132013      p_application_id         => p_application_id
132014    , p_ae_header_id           => l_ae_header_id 
132015 , p_source_1 => p_source_1
132016    )
132017 );
132018 
132019 
132020    --
132021    -- call ADRs
132022    -- Bug 4922099
132023    --
132024    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
132025         (NVL(l_actual_upg_option, 'N') = 'O') OR
132026         (NVL(l_enc_upg_option, 'N') = 'O')
132027       )
132028    THEN
132029    NULL;
132030    --
132031    --
132032    
132033   l_ccid := AcctDerRule_32(
132034            p_application_id           => p_application_id
132035          , p_ae_header_id             => l_ae_header_id 
132036 , p_source_18 => p_source_18
132037          , x_transaction_coa_id       => l_adr_transaction_coa_id
132038          , x_accounting_coa_id        => l_adr_accounting_coa_id
132039          , x_value_type_code          => l_adr_value_type_code
132040          , p_side                     => 'NA'
132041    );
132042 
132043    xla_ae_lines_pkg.set_ccid(
132044     p_code_combination_id          => l_ccid
132045   , p_value_type_code              => l_adr_value_type_code
132046   , p_transaction_coa_id           => l_adr_transaction_coa_id
132047   , p_accounting_coa_id            => l_adr_accounting_coa_id
132048   , p_adr_code                     => 'AP_INVOICE_DIST'
132049   , p_adr_type_code                => 'S'
132050   , p_component_type               => l_component_type
132051   , p_component_code               => l_component_code
132052   , p_component_type_code          => l_component_type_code
132053   , p_component_appl_id            => l_component_appl_id
132054   , p_amb_context_code             => l_amb_context_code
132055   , p_side                         => 'NA'
132056   );
132057 
132058 
132059    --
132060    --
132061    END IF;
132062    --
132063    -- Bug 4922099
132064    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
132065           (NVL(l_enc_upg_option, 'N') = 'O')
132066         ) AND
132067         (l_bflow_method_code = 'PRIOR_ENTRY')
132068       )
132069    THEN
132070       IF
132071       --
132072       1 = 2
132073       --
132074       THEN
132075       xla_accounting_err_pkg.build_message
132076                                     (p_appli_s_name            => 'XLA'
132077                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
132078                                     ,p_token_1                 => 'LINE_NUMBER'
132079                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
132080                                     ,p_token_2                 => 'LINE_TYPE_NAME'
132081                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
132082                                                                              l_component_type
132083                                                                             ,l_component_code
132084                                                                             ,l_component_type_code
132085                                                                             ,l_component_appl_id
132086                                                                             ,l_amb_context_code
132087                                                                             ,l_entity_code
132088                                                                             ,l_event_class_code
132089                                                                            )
132090                                     ,p_token_3                 => 'OWNER'
132091                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
132092                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
132093                                                                           ,p_lookup_code    => l_component_type_code
132094                                                                          )
132095                                     ,p_token_4                 => 'PRODUCT_NAME'
132096                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
132097                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
132098                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
132099                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
132100                                     ,p_ae_header_id            =>  NULL
132101                                        );
132102 
132103         IF (C_LEVEL_ERROR>= g_log_level) THEN
132104                  trace
132105                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
132106                       ,p_level    => C_LEVEL_ERROR
132107                       ,p_module   => l_log_module);
132108         END IF;
132109       END IF;
132110    END IF;
132111    --
132112    --
132113    ------------------------------------------------------------------------------------------------
132114    -- 4219869 Business Flow
132115    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
132116    -- Prior Entry.  Currently, the following code is always generated.
132117    ------------------------------------------------------------------------------------------------
132118    XLA_AE_LINES_PKG.ValidateCurrentLine;
132119 
132120    ------------------------------------------------------------------------------------
132121    -- 4219869 Business Flow
132122    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
132123    ------------------------------------------------------------------------------------
132124    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
132125 
132126    ----------------------------------------------------------------------------------
132127    -- 4219869 Business Flow
132128    -- Update journal entry status -- Need to generate this within IF <condition>
132129    ----------------------------------------------------------------------------------
132130    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
132131          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
132132          ,p_balance_type_code => l_balance_type_code
132133          );
132134 
132135    -------------------------------------------------------------------------------------------
132136    -- 4262811 - Generate the Accrual Reversal lines
132137    -------------------------------------------------------------------------------------------
132138    BEGIN
132139       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
132140                               (g_array_event(p_event_id).array_value_num('header_index'));
132141       IF l_acc_rev_flag IS NULL THEN
132142          l_acc_rev_flag := 'N';
132143       END IF;
132144    EXCEPTION
132145       WHEN OTHERS THEN
132146          l_acc_rev_flag := 'N';
132147    END;
132148    --
132149    IF (l_acc_rev_flag = 'Y') THEN
132150 
132151        -- 4645092  ------------------------------------------------------------------------------
132152        -- To allow MPA report to determine if it should generate report process
132153        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
132154        ------------------------------------------------------------------------------------------
132155 
132156        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
132157        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
132158    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
132159    -- call ADRs
132160    -- Bug 4922099
132161    --
132162    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
132163         (NVL(l_actual_upg_option, 'N') = 'O') OR
132164         (NVL(l_enc_upg_option, 'N') = 'O')
132165       )
132166    THEN
132167    NULL;
132168    --
132169    --
132170    
132171   l_ccid := AcctDerRule_32(
132172            p_application_id           => p_application_id
132173          , p_ae_header_id             => l_ae_header_id 
132174 , p_source_18 => p_source_18
132178          , p_side                     => 'NA'
132175          , x_transaction_coa_id       => l_adr_transaction_coa_id
132176          , x_accounting_coa_id        => l_adr_accounting_coa_id
132177          , x_value_type_code          => l_adr_value_type_code
132179    );
132180 
132181    xla_ae_lines_pkg.set_ccid(
132182     p_code_combination_id          => l_ccid
132183   , p_value_type_code              => l_adr_value_type_code
132184   , p_transaction_coa_id           => l_adr_transaction_coa_id
132185   , p_accounting_coa_id            => l_adr_accounting_coa_id
132186   , p_adr_code                     => 'AP_INVOICE_DIST'
132187   , p_adr_type_code                => 'S'
132188   , p_component_type               => l_component_type
132189   , p_component_code               => l_component_code
132190   , p_component_type_code          => l_component_type_code
132191   , p_component_appl_id            => l_component_appl_id
132192   , p_amb_context_code             => l_amb_context_code
132193   , p_side                         => 'NA'
132194   );
132195 
132196 
132197    --
132198    --
132199    END IF;
132200 
132201        --
132202        -- Update the line information that should be overwritten
132203        --
132204        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
132205                                          p_header_num   => 1);
132206        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
132207 
132208        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
132209 
132213 
132210        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
132211           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
132212        END IF;
132214       --
132215       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
132216       --
132217       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
132218           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
132219       ELSE
132220           ---------------------------------------------------------------------------------------------------
132221           -- 4262811a Switch Sign
132222           ---------------------------------------------------------------------------------------------------
132223           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
132224           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
132225                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132226           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
132227                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132228           -- 5132302
132229           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
132230                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132231 
132232       END IF;
132233 
132234       -- 4955764
132235       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
132236       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
132237 
132238 
132239       XLA_AE_LINES_PKG.ValidateCurrentLine;
132240       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
132241 
132242       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
132243                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
132244                ,p_balance_type_code => l_balance_type_code);
132245 
132246    END IF;
132247 
132248    -----------------------------------------------------------------------------------------
132249    -- 4262811 Multiperiod Accounting
132250    -----------------------------------------------------------------------------------------
132251      -- No MPA option is assigned.
132252 
132253 
132254 END IF;
132255 END IF;
132256 --
132257 
132258 --
132259 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
132260    trace
132261       (p_msg      => 'END of AcctLineType_220'
132262       ,p_level    => C_LEVEL_PROCEDURE
132263       ,p_module   => l_log_module);
132264 END IF;
132265 --
132266 EXCEPTION
132267   WHEN xla_exceptions_pkg.application_exception THEN
132268       RAISE;
132269   WHEN OTHERS THEN
132270        xla_exceptions_pkg.raise_message
132271            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_220');
132272 END AcctLineType_220;
132273 --
132274 
132275 ---------------------------------------
132276 --
132277 -- PRIVATE FUNCTION
132278 --         AcctLineType_221
132279 --
132280 ---------------------------------------
132281 PROCEDURE AcctLineType_221 (
132282   p_application_id        IN NUMBER
132283  ,p_event_id              IN NUMBER
132284  ,p_calculate_acctd_flag  IN VARCHAR2
132285  ,p_calculate_g_l_flag    IN VARCHAR2
132286  ,p_actual_flag           IN OUT VARCHAR2
132287  ,p_balance_type_code     OUT VARCHAR2
132288  ,p_gain_or_loss_ref      OUT VARCHAR2
132289  
132290 --Invoice Distribution Type
132291  , p_source_21            IN VARCHAR2
132292  , p_source_21_meaning    IN VARCHAR2
132293 --Accounting Reversal Indicator
132294  , p_source_41            IN VARCHAR2
132295 --Distribution Link Type
132296  , p_source_43            IN VARCHAR2
132297 --Allocation to Main Distribution Identifier
132298  , p_source_45            IN NUMBER
132299 --Invoice Identifier
132300  , p_source_46            IN NUMBER
132301 --Invoice Distribution Identifier
132302  , p_source_52            IN NUMBER
132303 --Payables Encumbrance Upgrade Credit Account
132304  , p_source_53            IN NUMBER
132305 --Payables Encumbrance Upgrade Credit Amount
132306  , p_source_54            IN NUMBER
132307 --Invoice Currency Code
132308  , p_source_55            IN VARCHAR2
132309 --Payables Encumbrance Upgrade Credit Base Amount
132310  , p_source_56            IN NUMBER
132311 --Payables Encumbrance Upgrade Debit Account
132312  , p_source_57            IN NUMBER
132313 --Payables Encumbrance Upgrade Debit Amount
132314  , p_source_58            IN NUMBER
132315 --Payables Encumbrance Upgrade Debit Base Amount
132316  , p_source_59            IN NUMBER
132317 --Payables Encumbrance Upgrade Option
132318  , p_source_60            IN VARCHAR2
132319 --Deferred Accounting End Date
132320  , p_source_65            IN DATE
132321 --Deferred Accounting Option
132322  , p_source_66            IN VARCHAR2
132323 --Deferred Accounting Start Date
132324  , p_source_67            IN DATE
132325 --Override Accounted Amount Indicator
132326  , p_source_68            IN VARCHAR2
132327  , p_source_68_meaning    IN VARCHAR2
132328 --Third Party Type
132329  , p_source_71            IN VARCHAR2
132330 --Parent Reversal Identifier
132331  , p_source_72            IN NUMBER
132332 --Invoice Distribution Statistical Amount
132333  , p_source_73            IN NUMBER
132334 --Invoice Distribution Tax Line Identifier
132335  , p_source_74            IN NUMBER
132336 --Invoice Distribution Tax Distribution Identifier from Tax
132337  , p_source_75            IN NUMBER
132338 --Invoice Distribution Summary Tax Line Identifier
132339  , p_source_76            IN NUMBER
132340 --Payables Upgrade Credit Encumbrance Type Identifier
132341  , p_source_77            IN NUMBER
132342 --Payables Upgrade Debit Encumbrance Type Identifier
132343  , p_source_78            IN NUMBER
132344 --Business Flow Accounts Payable Application Identifier
132345  , p_source_79            IN NUMBER
132346 --Business Flow Invoice Distribution Type
132347  , p_source_80            IN VARCHAR2
132348 --Business Flow Invoice Entity Code
132349  , p_source_81            IN VARCHAR2
132350 --Business Flow Invoice Distribution Identifier
132351  , p_source_82            IN NUMBER
132352 --Business Flow Invoice Identifier
132353  , p_source_83            IN NUMBER
132354 --Purchasing Encumbrance Option
132355  , p_source_86            IN VARCHAR2
132356  , p_source_86_meaning    IN VARCHAR2
132357 --Invoice Encumbered Option
132358  , p_source_87            IN VARCHAR2
132359  , p_source_87_meaning    IN VARCHAR2
132363 --Invoice Distribution Encumbrance Amount
132360 --Self-Assessed Tax Flag
132361  , p_source_135            IN VARCHAR2
132362  , p_source_135_meaning    IN VARCHAR2
132364  , p_source_143            IN NUMBER
132365 --Invoice Distribution Encumbrance Ledger Amount
132366  , p_source_144            IN NUMBER
132367 )
132368 IS
132369 
132370 l_component_type              VARCHAR2(80);
132371 l_component_code              VARCHAR2(30);
132372 l_component_type_code         VARCHAR2(1);
132373 l_component_appl_id           INTEGER;
132374 l_amb_context_code            VARCHAR2(30);
132375 l_entity_code                 VARCHAR2(30);
132376 l_event_class_code            VARCHAR2(30);
132377 l_ae_header_id                NUMBER;
132378 l_event_type_code             VARCHAR2(30);
132379 l_line_definition_code        VARCHAR2(30);
132380 l_line_definition_owner_code  VARCHAR2(1);
132381 --
132382 -- adr variables
132383 l_segment                     VARCHAR2(30);
132384 l_ccid                        NUMBER;
132385 l_adr_transaction_coa_id      NUMBER;
132386 l_adr_accounting_coa_id       NUMBER;
132387 l_adr_flexfield_segment_code  VARCHAR2(30);
132388 l_adr_flex_value_set_id       NUMBER;
132389 l_adr_value_type_code         VARCHAR2(30);
132390 l_adr_value_combination_id    NUMBER;
132391 l_adr_value_segment_code      VARCHAR2(30);
132392 
132393 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
132394 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
132395 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
132396 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
132397 
132398 -- 4262811 Variables ------------------------------------------------------------------------------------------
132399 l_entered_amt_idx             NUMBER;
132400 l_accted_amt_idx              NUMBER;
132401 l_acc_rev_flag                VARCHAR2(1);
132402 l_accrual_line_num            NUMBER;
132403 l_tmp_amt                     NUMBER;
132404 l_acc_rev_natural_side_code   VARCHAR2(1);
132405 
132406 l_num_entries                 NUMBER;
132407 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
132408 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
132409 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
132410 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
132411 l_recog_line_1                NUMBER;
132412 l_recog_line_2                NUMBER;
132413 
132414 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
132415 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
132416 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
132417 
132418 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
132419 
132420 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
132421 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
132422 
132423 ---------------------------------------------------------------------------------------------------------------
132424 
132425 
132426 --
132427 -- bulk performance
132428 --
132429 l_balance_type_code           VARCHAR2(1);
132430 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
132431 l_log_module                  VARCHAR2(240);
132432 
132433 --
132434 -- Upgrade strategy
132435 --
132436 l_actual_upg_option           VARCHAR2(1);
132437 l_enc_upg_option           VARCHAR2(1);
132438 
132439 --
132440 BEGIN
132441 --
132442 IF g_log_enabled THEN
132443       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_221';
132444 END IF;
132445 --
132446 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
132447 
132448       trace
132449          (p_msg      => 'BEGIN of AcctLineType_221'
132450          ,p_level    => C_LEVEL_PROCEDURE
132451          ,p_module   => l_log_module);
132452 
132453 END IF;
132454 --
132455 l_component_type             := 'AMB_JLT';
132456 l_component_code             := 'AP_RECOV_TAX_CM_ENC';
132457 l_component_type_code        := 'S';
132458 l_component_appl_id          :=  200;
132459 l_amb_context_code           := 'DEFAULT';
132460 l_entity_code                := 'AP_INVOICES';
132461 l_event_class_code           := 'CREDIT MEMOS';
132462 l_event_type_code            := 'CREDIT MEMOS_ALL';
132463 l_line_definition_owner_code := 'S';
132464 l_line_definition_code       := 'ENC_REV_CM_ALL';
132465 --
132466 l_balance_type_code          := 'E';
132467 l_segment                     := NULL;
132468 l_ccid                        := NULL;
132469 l_adr_transaction_coa_id      := NULL;
132470 l_adr_accounting_coa_id       := NULL;
132471 l_adr_flexfield_segment_code  := NULL;
132472 l_adr_flex_value_set_id       := NULL;
132473 l_adr_value_type_code         := NULL;
132474 l_adr_value_combination_id    := NULL;
132475 l_adr_value_segment_code      := NULL;
132476 
132477 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
132478 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
132479 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
132483 l_bflow_applied_to_amt       := NULL; -- 5132302
132480 l_budgetary_control_flag     := 'N';
132481 
132482 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
132484 l_entered_amt_idx            := NULL;          -- 4262811
132485 l_accted_amt_idx             := NULL;          -- 4262811
132486 l_acc_rev_flag               := NULL;          -- 4262811
132487 l_accrual_line_num           := NULL;          -- 4262811
132488 l_tmp_amt                    := NULL;          -- 4262811
132489 --
132490  
132491 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
132492     l_balance_type_code <> 'B' THEN
132493 IF NVL(p_source_21,'
132494 ') =  'REC_TAX' AND 
132495 NVL(p_source_135,'
132496 ') <>  'Y' AND 
132497 NVL(p_source_86,'
132498 ') =  'Y' AND 
132499 NVL(p_source_87,'
132500 ') =  'Y'
132501  THEN 
132502 
132503    --
132504    XLA_AE_LINES_PKG.SetNewLine;
132505 
132506    p_balance_type_code          := l_balance_type_code;
132507    -- set the flag so later we will know whether the gain loss line needs to be created
132508    
132509    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
132510      p_actual_flag :='A';
132511    END IF;
132512 
132513    --
132514    -- bulk performance
132515    --
132516    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
132517                                       p_header_num   => 0); -- 4262811
132518    --
132519    -- set accounting line options
132520    --
132521    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
132523          , p_gain_or_loss_flag          => 'N'
132524          , p_gl_transfer_mode_code      => 'S'
132525          , p_acct_entry_type_code       => 'E'
132526          , p_switch_side_flag           => 'Y'
132527          , p_merge_duplicate_code       => 'A'
132528          );
132529    --
132530    l_acc_rev_natural_side_code := 'D';  -- 4262811
132531    -- 
132532    --
132533    -- set accounting line type info
132534    --
132535    xla_ae_lines_pkg.SetAcctLineType
132536       (p_component_type             => l_component_type
132537       ,p_event_type_code            => l_event_type_code
132538       ,p_line_definition_owner_code => l_line_definition_owner_code
132539       ,p_line_definition_code       => l_line_definition_code
132540       ,p_accounting_line_code       => l_component_code
132541       ,p_accounting_line_type_code  => l_component_type_code
132542       ,p_accounting_line_appl_id    => l_component_appl_id
132543       ,p_amb_context_code           => l_amb_context_code
132544       ,p_entity_code                => l_entity_code
132545       ,p_event_class_code           => l_event_class_code);
132546    --
132547    -- set accounting class
132548    --
132549    xla_ae_lines_pkg.SetAcctClass(
132550            p_accounting_class_code  => 'RTAX'
132551          , p_ae_header_id           => l_ae_header_id
132552          );
132553 
132554    --
132555    -- set rounding class
132556    --
132557    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
132558                       'RTAX';
132559 
132560    --
132561    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
132562    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
132563    --
132564    -- bulk performance
132565    --
132566    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
132567 
132568    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
132569       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
132570 
132571    -- 4955764
132572    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
132573       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
132574 
132575    -- 4458381 Public Sector Enh
132576    
132577    --
132578    -- set accounting attributes for the line type
132579    --
132580    l_entered_amt_idx := 23;
132581    l_accted_amt_idx  := 25;
132582    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
132583    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
132584    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
132585    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
132586    l_rec_acct_attrs.array_num_value(2)  := 
132587 xla_ae_sources_pkg.GetSystemSourceNum(
132588    p_source_code           => 'XLA_EVENT_APPL_ID'
132589  , p_source_type_code      => 'Y'
132590  , p_source_application_id =>  602
132591 );
132592    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
132593    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
132594    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
132595    l_rec_acct_attrs.array_char_value(4)  := 
132596 xla_ae_sources_pkg.GetSystemSourceChar(
132597    p_source_code           => 'XLA_ENTITY_CODE'
132598  , p_source_type_code      => 'Y'
132599  , p_source_application_id =>  602
132600 );
132601    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
132602    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
132603    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
132604    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
132605    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
132606    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
132607    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
132608    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
132609    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
132610    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
132611    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
132612    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
132613    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
132614    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
132615    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
132616    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
132617    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
132618    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
132619    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
132620    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
132621    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
132622    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
132623    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
132624    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
132625    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
132626    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
132627    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
132628    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
132629    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
132630    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
132631    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
132632    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
132633    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
132638    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
132522            p_natural_side_code          => 'C'
132634    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
132635    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
132636    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
132637    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
132639    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
132640    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
132641    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
132642    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
132643    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
132644    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
132645    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
132646    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
132647    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
132651    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
132648    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
132649    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
132650    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
132652    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
132653    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
132654    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
132655    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
132656    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
132657    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
132658    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
132659    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
132660    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
132661    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
132662    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
132663    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
132664    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
132665    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
132666    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
132667    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
132668    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
132669 
132670    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
132671    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
132672 
132673    ---------------------------------------------------------------------------------------------------------------
132674    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
132675    ---------------------------------------------------------------------------------------------------------------
132676    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
132677 
132678    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
132679    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
132680 
132681    IF xla_accounting_cache_pkg.GetValueChar
132682          (p_source_code         => 'LEDGER_CATEGORY_CODE'
132683          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
132684    AND l_bflow_method_code = 'PRIOR_ENTRY'
132685 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
132686    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
132687          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
132688        )
132689    THEN
132690          xla_ae_lines_pkg.BflowUpgEntry
132691            (p_business_method_code    => l_bflow_method_code
132692            ,p_business_class_code     => l_bflow_class_code
132693            ,p_balance_type            => l_balance_type_code);
132694    ELSE
132695       NULL;
132696 XLA_AE_LINES_PKG.business_flow_validation(
132697                                 p_business_method_code     => l_bflow_method_code
132698                                ,p_business_class_code      => l_bflow_class_code
132699                                ,p_inherit_description_flag => l_inherit_desc_flag);
132700    END IF;
132701 
132702    --
132703    -- call analytical criteria
132704    --
132705    -- Inherited Analytical Criteria for business flow method of Prior Entry.
132706    --
132707    -- call description
132708    --
132709    -- No description or it is inherited.
132710    --
132711    -- call ADRs
132712    -- Bug 4922099
132713    --
132714    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
132715         (NVL(l_actual_upg_option, 'N') = 'O') OR
132716         (NVL(l_enc_upg_option, 'N') = 'O')
132717       )
132718    THEN
132719    NULL;
132720    --
132721    --
132722    
132723    --
132727    -- Bug 4922099
132724    --
132725    END IF;
132726    --
132728    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
132729           (NVL(l_enc_upg_option, 'N') = 'O')
132730         ) AND
132731         (l_bflow_method_code = 'PRIOR_ENTRY')
132732       )
132733    THEN
132734       IF
132735       --
132736       1 = 1
132737       --
132738       THEN
132739       xla_accounting_err_pkg.build_message
132740                                     (p_appli_s_name            => 'XLA'
132741                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
132742                                     ,p_token_1                 => 'LINE_NUMBER'
132743                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
132744                                     ,p_token_2                 => 'LINE_TYPE_NAME'
132745                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
132746                                                                              l_component_type
132747                                                                             ,l_component_code
132748                                                                             ,l_component_type_code
132749                                                                             ,l_component_appl_id
132750                                                                             ,l_amb_context_code
132751                                                                             ,l_entity_code
132752                                                                             ,l_event_class_code
132753                                                                            )
132754                                     ,p_token_3                 => 'OWNER'
132755                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
132756                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
132757                                                                           ,p_lookup_code    => l_component_type_code
132758                                                                          )
132759                                     ,p_token_4                 => 'PRODUCT_NAME'
132760                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
132761                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
132762                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
132763                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
132764                                     ,p_ae_header_id            =>  NULL
132765                                        );
132766 
132767         IF (C_LEVEL_ERROR>= g_log_level) THEN
132768                  trace
132769                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
132770                       ,p_level    => C_LEVEL_ERROR
132771                       ,p_module   => l_log_module);
132772         END IF;
132773       END IF;
132774    END IF;
132775    --
132776    --
132777    ------------------------------------------------------------------------------------------------
132778    -- 4219869 Business Flow
132779    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
132780    -- Prior Entry.  Currently, the following code is always generated.
132781    ------------------------------------------------------------------------------------------------
132782    -- No ValidateCurrentLine for business flow method of Prior Entry
132783 
132784    ------------------------------------------------------------------------------------
132785    -- 4219869 Business Flow
132786    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
132787    ------------------------------------------------------------------------------------
132788    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
132789 
132790    ----------------------------------------------------------------------------------
132791    -- 4219869 Business Flow
132792    -- Update journal entry status -- Need to generate this within IF <condition>
132793    ----------------------------------------------------------------------------------
132794    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
132795          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
132796          ,p_balance_type_code => l_balance_type_code
132797          );
132798 
132799    -------------------------------------------------------------------------------------------
132800    -- 4262811 - Generate the Accrual Reversal lines
132801    -------------------------------------------------------------------------------------------
132802    BEGIN
132803       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
132804                               (g_array_event(p_event_id).array_value_num('header_index'));
132805       IF l_acc_rev_flag IS NULL THEN
132806          l_acc_rev_flag := 'N';
132807       END IF;
132808    EXCEPTION
132809       WHEN OTHERS THEN
132810          l_acc_rev_flag := 'N';
132811    END;
132812    --
132813    IF (l_acc_rev_flag = 'Y') THEN
132814 
132815        -- 4645092  ------------------------------------------------------------------------------
132816        -- To allow MPA report to determine if it should generate report process
132817        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
132818        ------------------------------------------------------------------------------------------
132819 
132820        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
132821        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
132822    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
132823    -- call ADRs
132824    -- Bug 4922099
132825    --
132826    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
132827         (NVL(l_actual_upg_option, 'N') = 'O') OR
132828         (NVL(l_enc_upg_option, 'N') = 'O')
132829       )
132830    THEN
132831    NULL;
132832    --
132833    --
132834    
132835    --
132836    --
132837    END IF;
132838 
132839        --
132840        -- Update the line information that should be overwritten
132841        --
132842        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
132843                                          p_header_num   => 1);
132844        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
132845 
132846        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
132847 
132848        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
132849           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
132850        END IF;
132851 
132852       --
132853       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
132854       --
132855       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
132856           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
132857       ELSE
132858           ---------------------------------------------------------------------------------------------------
132859           -- 4262811a Switch Sign
132860           ---------------------------------------------------------------------------------------------------
132861           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
132862           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
132863                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132864           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
132865                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132866           -- 5132302
132867           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
132868                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132869 
132870       END IF;
132871 
132872       -- 4955764
132873       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
132874       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
132875 
132876 
132877       XLA_AE_LINES_PKG.ValidateCurrentLine;
132878       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
132879 
132880       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
132881                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
132882                ,p_balance_type_code => l_balance_type_code);
132883 
132884    END IF;
132885 
132886    -----------------------------------------------------------------------------------------
132887    -- 4262811 Multiperiod Accounting
132888    -----------------------------------------------------------------------------------------
132889      -- No MPA option is assigned.
132890 
132891 
132892 END IF;
132893 END IF;
132894 --
132895 
132896 --
132897 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
132898    trace
132899       (p_msg      => 'END of AcctLineType_221'
132900       ,p_level    => C_LEVEL_PROCEDURE
132901       ,p_module   => l_log_module);
132902 END IF;
132903 --
132904 EXCEPTION
132908        xla_exceptions_pkg.raise_message
132905   WHEN xla_exceptions_pkg.application_exception THEN
132906       RAISE;
132907   WHEN OTHERS THEN
132909            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_221');
132910 END AcctLineType_221;
132911 --
132912 
132913 ---------------------------------------
132914 --
132915 -- PRIVATE FUNCTION
132916 --         AcctLineType_222
132917 --
132918 ---------------------------------------
132919 PROCEDURE AcctLineType_222 (
132920   p_application_id        IN NUMBER
132921  ,p_event_id              IN NUMBER
132922  ,p_calculate_acctd_flag  IN VARCHAR2
132923  ,p_calculate_g_l_flag    IN VARCHAR2
132924  ,p_actual_flag           IN OUT VARCHAR2
132925  ,p_balance_type_code     OUT VARCHAR2
132926  ,p_gain_or_loss_ref      OUT VARCHAR2
132927  
132928 --Invoice Distribution Description
132929  , p_source_1            IN VARCHAR2
132930 --Invoice Distribution Ledger Amount
132931  , p_source_9            IN NUMBER
132932 --Invoice Distribution Account
132933  , p_source_18            IN NUMBER
132934 --Invoice Distribution Type
132935  , p_source_21            IN VARCHAR2
132936  , p_source_21_meaning    IN VARCHAR2
132937 --Accounting Reversal Indicator
132938  , p_source_41            IN VARCHAR2
132939 --Distribution Link Type
132940  , p_source_43            IN VARCHAR2
132941 --Allocation to Main Distribution Identifier
132942  , p_source_45            IN NUMBER
132943 --Invoice Identifier
132944  , p_source_46            IN NUMBER
132945 --Invoice Distribution Identifier
132946  , p_source_52            IN NUMBER
132947 --Payables Encumbrance Upgrade Credit Account
132948  , p_source_53            IN NUMBER
132949 --Payables Encumbrance Upgrade Credit Amount
132950  , p_source_54            IN NUMBER
132951 --Invoice Currency Code
132952  , p_source_55            IN VARCHAR2
132953 --Payables Encumbrance Upgrade Credit Base Amount
132954  , p_source_56            IN NUMBER
132955 --Payables Encumbrance Upgrade Debit Account
132956  , p_source_57            IN NUMBER
132957 --Payables Encumbrance Upgrade Debit Amount
132958  , p_source_58            IN NUMBER
132959 --Payables Encumbrance Upgrade Debit Base Amount
132960  , p_source_59            IN NUMBER
132961 --Payables Encumbrance Upgrade Option
132962  , p_source_60            IN VARCHAR2
132963 --Invoice Distribution Amount
132964  , p_source_61            IN NUMBER
132965 --Deferred Accounting End Date
132966  , p_source_65            IN DATE
132967 --Deferred Accounting Option
132968  , p_source_66            IN VARCHAR2
132969 --Deferred Accounting Start Date
132970  , p_source_67            IN DATE
132971 --Override Accounted Amount Indicator
132972  , p_source_68            IN VARCHAR2
132973  , p_source_68_meaning    IN VARCHAR2
132974 --Invoice Supplier Identifier
132975  , p_source_69            IN NUMBER
132976 --Invoice Supplier Site Identifier
132977  , p_source_70            IN NUMBER
132978 --Third Party Type
132979  , p_source_71            IN VARCHAR2
132980 --Parent Reversal Identifier
132981  , p_source_72            IN NUMBER
132982 --Invoice Distribution Tax Line Identifier
132983  , p_source_74            IN NUMBER
132984 --Invoice Distribution Tax Distribution Identifier from Tax
132985  , p_source_75            IN NUMBER
132986 --Invoice Distribution Summary Tax Line Identifier
132987  , p_source_76            IN NUMBER
132988 --Payables Upgrade Credit Encumbrance Type Identifier
132989  , p_source_77            IN NUMBER
132990 --Payables Upgrade Debit Encumbrance Type Identifier
132991  , p_source_78            IN NUMBER
132992 --Business Flow Accounts Payable Application Identifier
132993  , p_source_79            IN NUMBER
132994 --Business Flow Invoice Distribution Type
132995  , p_source_80            IN VARCHAR2
132996 --Business Flow Invoice Entity Code
132997  , p_source_81            IN VARCHAR2
132998 --Business Flow Invoice Distribution Identifier
132999  , p_source_82            IN NUMBER
133000 --Business Flow Invoice Identifier
133001  , p_source_83            IN NUMBER
133005 --Invoice Exchange Date
133002 --Self-Assessed Tax Flag
133003  , p_source_135            IN VARCHAR2
133004  , p_source_135_meaning    IN VARCHAR2
133006  , p_source_136            IN DATE
133007 --Invoice Exchange Rate
133008  , p_source_137            IN NUMBER
133009 --Invoice Exchange Rate Type
133010  , p_source_138            IN VARCHAR2
133011 )
133012 IS
133013 
133014 l_component_type              VARCHAR2(80);
133015 l_component_code              VARCHAR2(30);
133016 l_component_type_code         VARCHAR2(1);
133017 l_component_appl_id           INTEGER;
133018 l_amb_context_code            VARCHAR2(30);
133019 l_entity_code                 VARCHAR2(30);
133020 l_event_class_code            VARCHAR2(30);
133021 l_ae_header_id                NUMBER;
133022 l_event_type_code             VARCHAR2(30);
133023 l_line_definition_code        VARCHAR2(30);
133024 l_line_definition_owner_code  VARCHAR2(1);
133025 --
133026 -- adr variables
133027 l_segment                     VARCHAR2(30);
133028 l_ccid                        NUMBER;
133029 l_adr_transaction_coa_id      NUMBER;
133030 l_adr_accounting_coa_id       NUMBER;
133031 l_adr_flexfield_segment_code  VARCHAR2(30);
133032 l_adr_flex_value_set_id       NUMBER;
133033 l_adr_value_type_code         VARCHAR2(30);
133034 l_adr_value_combination_id    NUMBER;
133035 l_adr_value_segment_code      VARCHAR2(30);
133036 
133037 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
133038 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
133039 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
133040 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
133041 
133042 -- 4262811 Variables ------------------------------------------------------------------------------------------
133043 l_entered_amt_idx             NUMBER;
133044 l_accted_amt_idx              NUMBER;
133045 l_acc_rev_flag                VARCHAR2(1);
133046 l_accrual_line_num            NUMBER;
133047 l_tmp_amt                     NUMBER;
133048 l_acc_rev_natural_side_code   VARCHAR2(1);
133049 
133050 l_num_entries                 NUMBER;
133051 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
133052 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
133053 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
133054 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
133055 l_recog_line_1                NUMBER;
133056 l_recog_line_2                NUMBER;
133057 
133058 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
133059 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
133063 
133060 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
133061 
133062 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
133064 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
133065 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
133066 
133067 ---------------------------------------------------------------------------------------------------------------
133068 
133069 
133070 --
133071 -- bulk performance
133072 --
133073 l_balance_type_code           VARCHAR2(1);
133074 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
133075 l_log_module                  VARCHAR2(240);
133076 
133077 --
133078 -- Upgrade strategy
133079 --
133080 l_actual_upg_option           VARCHAR2(1);
133081 l_enc_upg_option           VARCHAR2(1);
133082 
133083 --
133084 BEGIN
133085 --
133086 IF g_log_enabled THEN
133087       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_222';
133088 END IF;
133089 --
133093          (p_msg      => 'BEGIN of AcctLineType_222'
133090 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133091 
133092       trace
133094          ,p_level    => C_LEVEL_PROCEDURE
133095          ,p_module   => l_log_module);
133096 
133097 END IF;
133098 --
133099 l_component_type             := 'AMB_JLT';
133100 l_component_code             := 'AP_RECOV_TAX_DM';
133101 l_component_type_code        := 'S';
133102 l_component_appl_id          :=  200;
133103 l_amb_context_code           := 'DEFAULT';
133104 l_entity_code                := 'AP_INVOICES';
133105 l_event_class_code           := 'DEBIT MEMOS';
133106 l_event_type_code            := 'DEBIT MEMOS_ALL';
133107 l_line_definition_owner_code := 'S';
133108 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
133109 --
133110 l_balance_type_code          := 'A';
133111 l_segment                     := NULL;
133112 l_ccid                        := NULL;
133113 l_adr_transaction_coa_id      := NULL;
133114 l_adr_accounting_coa_id       := NULL;
133115 l_adr_flexfield_segment_code  := NULL;
133116 l_adr_flex_value_set_id       := NULL;
133117 l_adr_value_type_code         := NULL;
133118 l_adr_value_combination_id    := NULL;
133119 l_adr_value_segment_code      := NULL;
133120 
133121 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
133122 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
133123 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
133124 l_budgetary_control_flag     := 'N';
133125 
133126 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
133127 l_bflow_applied_to_amt       := NULL; -- 5132302
133128 l_entered_amt_idx            := NULL;          -- 4262811
133129 l_accted_amt_idx             := NULL;          -- 4262811
133130 l_acc_rev_flag               := NULL;          -- 4262811
133131 l_accrual_line_num           := NULL;          -- 4262811
133132 l_tmp_amt                    := NULL;          -- 4262811
133133 --
133134  
133135 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
133136     l_balance_type_code <> 'B' THEN
133137 IF NVL(p_source_21,'
133138 ') =  'REC_TAX' AND 
133139 NVL(p_source_135,'
133140 ') <>  'Y'
133141  THEN 
133142 
133143    --
133144    XLA_AE_LINES_PKG.SetNewLine;
133145 
133146    p_balance_type_code          := l_balance_type_code;
133147    -- set the flag so later we will know whether the gain loss line needs to be created
133148    
133149    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
133150      p_actual_flag :='A';
133151    END IF;
133152 
133153    --
133154    -- bulk performance
133155    --
133156    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
133157                                       p_header_num   => 0); -- 4262811
133158    --
133159    -- set accounting line options
133160    --
133161    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
133162            p_natural_side_code          => 'D'
133163          , p_gain_or_loss_flag          => 'N'
133164          , p_gl_transfer_mode_code      => 'S'
133165          , p_acct_entry_type_code       => 'A'
133166          , p_switch_side_flag           => 'Y'
133167          , p_merge_duplicate_code       => 'A'
133168          );
133169    --
133170    l_acc_rev_natural_side_code := 'C';  -- 4262811
133171    -- 
133172    --
133173    -- set accounting line type info
133174    --
133175    xla_ae_lines_pkg.SetAcctLineType
133176       (p_component_type             => l_component_type
133177       ,p_event_type_code            => l_event_type_code
133178       ,p_line_definition_owner_code => l_line_definition_owner_code
133179       ,p_line_definition_code       => l_line_definition_code
133180       ,p_accounting_line_code       => l_component_code
133181       ,p_accounting_line_type_code  => l_component_type_code
133182       ,p_accounting_line_appl_id    => l_component_appl_id
133183       ,p_amb_context_code           => l_amb_context_code
133184       ,p_entity_code                => l_entity_code
133185       ,p_event_class_code           => l_event_class_code);
133186    --
133187    -- set accounting class
133188    --
133189    xla_ae_lines_pkg.SetAcctClass(
133190            p_accounting_class_code  => 'RTAX'
133191          , p_ae_header_id           => l_ae_header_id
133192          );
133193 
133194    --
133195    -- set rounding class
133196    --
133197    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
133198                       'RTAX';
133199 
133200    --
133201    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
133202    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
133203    --
133204    -- bulk performance
133205    --
133206    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
133207 
133208    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
133209       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
133210 
133211    -- 4955764
133212    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
133213       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
133214 
133215    -- 4458381 Public Sector Enh
133216    
133217    --
133218    -- set accounting attributes for the line type
133219    --
133220    l_entered_amt_idx := 23;
133221    l_accted_amt_idx  := 28;
133222    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
133226    l_rec_acct_attrs.array_num_value(2)  := 
133223    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
133224    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
133225    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
133227 xla_ae_sources_pkg.GetSystemSourceNum(
133228    p_source_code           => 'XLA_EVENT_APPL_ID'
133229  , p_source_type_code      => 'Y'
133230  , p_source_application_id =>  602
133231 );
133232    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
133233    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
133234    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
133235    l_rec_acct_attrs.array_char_value(4)  := 
133236 xla_ae_sources_pkg.GetSystemSourceChar(
133237    p_source_code           => 'XLA_ENTITY_CODE'
133238  , p_source_type_code      => 'Y'
133239  , p_source_application_id =>  602
133240 );
133241    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
133242    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
133243    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
133244    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
133245    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
133246    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
133247    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
133248    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
133249    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
133250    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
133251    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
133252    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
133253    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
133254    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
133255    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
133256    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
133257    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
133258    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
133259    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
133260    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
133261    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
133262    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
133263    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
133264    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
133265    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
133266    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
133267    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
133268    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
133269    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
133270    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
133271    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
133272    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
133273    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
133274    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
133275    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
133276    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
133277    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
133278    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
133279    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
133280    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
133281    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
133282    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
133283    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
133284    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
133285    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
133286    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
133287    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
133288    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
133289    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
133290    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
133291    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
133292    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
133293    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
133294    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
133295    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
133296    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
133297    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
133301    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
133298    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
133299    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
133300    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
133302    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
133303    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
133304    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
133305    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
133306    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
133307    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
133308    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
133309    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
133310    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
133311    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
133312    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
133313    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
133314    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
133315    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
133316    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
133317 
133318    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
133319    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
133320 
133321    ---------------------------------------------------------------------------------------------------------------
133322    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
133323    ---------------------------------------------------------------------------------------------------------------
133324    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
133325 
133326    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
133330          (p_source_code         => 'LEDGER_CATEGORY_CODE'
133327    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
133328 
133329    IF xla_accounting_cache_pkg.GetValueChar
133331          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
133332    AND l_bflow_method_code = 'PRIOR_ENTRY'
133333 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
133334    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
133335          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
133336        )
133337    THEN
133338          xla_ae_lines_pkg.BflowUpgEntry
133339            (p_business_method_code    => l_bflow_method_code
133340            ,p_business_class_code     => l_bflow_class_code
133341            ,p_balance_type            => l_balance_type_code);
133342    ELSE
133343       NULL;
133344 -- No business flow processing for business flow method of NONE.
133345    END IF;
133346 
133347    --
133348    -- call analytical criteria
133349    --
133350    
133351    --
133352    -- call description
133353    --
133354    
133355 xla_ae_lines_pkg.SetLineDescription(
133356    p_ae_header_id => l_ae_header_id
133357   ,p_description  => Description_2 (
133358      p_application_id         => p_application_id
133359    , p_ae_header_id           => l_ae_header_id 
133360 , p_source_1 => p_source_1
133361    )
133362 );
133363 
133364 
133365    --
133366    -- call ADRs
133367    -- Bug 4922099
133368    --
133369    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
133370         (NVL(l_actual_upg_option, 'N') = 'O') OR
133371         (NVL(l_enc_upg_option, 'N') = 'O')
133372       )
133373    THEN
133374    NULL;
133375    --
133376    --
133377    
133378   l_ccid := AcctDerRule_32(
133379            p_application_id           => p_application_id
133380          , p_ae_header_id             => l_ae_header_id 
133381 , p_source_18 => p_source_18
133382          , x_transaction_coa_id       => l_adr_transaction_coa_id
133383          , x_accounting_coa_id        => l_adr_accounting_coa_id
133384          , x_value_type_code          => l_adr_value_type_code
133385          , p_side                     => 'NA'
133386    );
133387 
133388    xla_ae_lines_pkg.set_ccid(
133389     p_code_combination_id          => l_ccid
133390   , p_value_type_code              => l_adr_value_type_code
133391   , p_transaction_coa_id           => l_adr_transaction_coa_id
133392   , p_accounting_coa_id            => l_adr_accounting_coa_id
133393   , p_adr_code                     => 'AP_INVOICE_DIST'
133394   , p_adr_type_code                => 'S'
133395   , p_component_type               => l_component_type
133396   , p_component_code               => l_component_code
133397   , p_component_type_code          => l_component_type_code
133401   );
133398   , p_component_appl_id            => l_component_appl_id
133399   , p_amb_context_code             => l_amb_context_code
133400   , p_side                         => 'NA'
133402 
133403 
133404    --
133405    --
133406    END IF;
133407    --
133408    -- Bug 4922099
133409    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
133410           (NVL(l_enc_upg_option, 'N') = 'O')
133411         ) AND
133412         (l_bflow_method_code = 'PRIOR_ENTRY')
133413       )
133414    THEN
133415       IF
133416       --
133417       1 = 2
133418       --
133419       THEN
133420       xla_accounting_err_pkg.build_message
133421                                     (p_appli_s_name            => 'XLA'
133422                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
133423                                     ,p_token_1                 => 'LINE_NUMBER'
133424                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
133425                                     ,p_token_2                 => 'LINE_TYPE_NAME'
133426                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
133427                                                                              l_component_type
133428                                                                             ,l_component_code
133429                                                                             ,l_component_type_code
133430                                                                             ,l_component_appl_id
133431                                                                             ,l_amb_context_code
133432                                                                             ,l_entity_code
133433                                                                             ,l_event_class_code
133434                                                                            )
133435                                     ,p_token_3                 => 'OWNER'
133436                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
133437                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
133438                                                                           ,p_lookup_code    => l_component_type_code
133439                                                                          )
133440                                     ,p_token_4                 => 'PRODUCT_NAME'
133441                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
133442                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
133443                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
133444                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
133445                                     ,p_ae_header_id            =>  NULL
133446                                        );
133447 
133448         IF (C_LEVEL_ERROR>= g_log_level) THEN
133449                  trace
133450                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
133451                       ,p_level    => C_LEVEL_ERROR
133452                       ,p_module   => l_log_module);
133453         END IF;
133454       END IF;
133455    END IF;
133456    --
133457    --
133458    ------------------------------------------------------------------------------------------------
133459    -- 4219869 Business Flow
133460    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
133461    -- Prior Entry.  Currently, the following code is always generated.
133462    ------------------------------------------------------------------------------------------------
133463    XLA_AE_LINES_PKG.ValidateCurrentLine;
133464 
133468    ------------------------------------------------------------------------------------
133465    ------------------------------------------------------------------------------------
133466    -- 4219869 Business Flow
133467    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
133469    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
133470 
133471    ----------------------------------------------------------------------------------
133472    -- 4219869 Business Flow
133473    -- Update journal entry status -- Need to generate this within IF <condition>
133474    ----------------------------------------------------------------------------------
133475    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
133476          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
133477          ,p_balance_type_code => l_balance_type_code
133478          );
133479 
133483    BEGIN
133480    -------------------------------------------------------------------------------------------
133481    -- 4262811 - Generate the Accrual Reversal lines
133482    -------------------------------------------------------------------------------------------
133484       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
133485                               (g_array_event(p_event_id).array_value_num('header_index'));
133486       IF l_acc_rev_flag IS NULL THEN
133487          l_acc_rev_flag := 'N';
133488       END IF;
133489    EXCEPTION
133490       WHEN OTHERS THEN
133491          l_acc_rev_flag := 'N';
133492    END;
133493    --
133494    IF (l_acc_rev_flag = 'Y') THEN
133495 
133496        -- 4645092  ------------------------------------------------------------------------------
133497        -- To allow MPA report to determine if it should generate report process
133498        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
133499        ------------------------------------------------------------------------------------------
133500 
133501        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
133502        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
133503    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
133504    -- call ADRs
133505    -- Bug 4922099
133506    --
133507    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
133508         (NVL(l_actual_upg_option, 'N') = 'O') OR
133509         (NVL(l_enc_upg_option, 'N') = 'O')
133510       )
133511    THEN
133512    NULL;
133513    --
133514    --
133515    
133516   l_ccid := AcctDerRule_32(
133517            p_application_id           => p_application_id
133518          , p_ae_header_id             => l_ae_header_id 
133519 , p_source_18 => p_source_18
133520          , x_transaction_coa_id       => l_adr_transaction_coa_id
133521          , x_accounting_coa_id        => l_adr_accounting_coa_id
133522          , x_value_type_code          => l_adr_value_type_code
133523          , p_side                     => 'NA'
133524    );
133525 
133526    xla_ae_lines_pkg.set_ccid(
133527     p_code_combination_id          => l_ccid
133528   , p_value_type_code              => l_adr_value_type_code
133529   , p_transaction_coa_id           => l_adr_transaction_coa_id
133530   , p_accounting_coa_id            => l_adr_accounting_coa_id
133531   , p_adr_code                     => 'AP_INVOICE_DIST'
133532   , p_adr_type_code                => 'S'
133533   , p_component_type               => l_component_type
133534   , p_component_code               => l_component_code
133535   , p_component_type_code          => l_component_type_code
133536   , p_component_appl_id            => l_component_appl_id
133537   , p_amb_context_code             => l_amb_context_code
133538   , p_side                         => 'NA'
133539   );
133540 
133541 
133542    --
133543    --
133544    END IF;
133545 
133546        --
133547        -- Update the line information that should be overwritten
133548        --
133549        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
133550                                          p_header_num   => 1);
133551        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
133552 
133553        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
133554 
133555        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
133556           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
133557        END IF;
133558 
133559       --
133560       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
133561       --
133562       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
133563           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
133564       ELSE
133565           ---------------------------------------------------------------------------------------------------
133566           -- 4262811a Switch Sign
133567           ---------------------------------------------------------------------------------------------------
133568           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
133569           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
133570                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
133571           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
133572                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
133573           -- 5132302
133574           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
133575                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
133576 
133577       END IF;
133578 
133579       -- 4955764
133580       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
133581       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
133582 
133583 
133584       XLA_AE_LINES_PKG.ValidateCurrentLine;
133585       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
133586 
133587       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
133588                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
133589                ,p_balance_type_code => l_balance_type_code);
133590 
133591    END IF;
133595    -----------------------------------------------------------------------------------------
133592 
133593    -----------------------------------------------------------------------------------------
133594    -- 4262811 Multiperiod Accounting
133596      -- No MPA option is assigned.
133597 
133598 
133599 END IF;
133603 --
133600 END IF;
133601 --
133602 
133604 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133605    trace
133606       (p_msg      => 'END of AcctLineType_222'
133607       ,p_level    => C_LEVEL_PROCEDURE
133608       ,p_module   => l_log_module);
133609 END IF;
133610 --
133611 EXCEPTION
133612   WHEN xla_exceptions_pkg.application_exception THEN
133613       RAISE;
133614   WHEN OTHERS THEN
133615        xla_exceptions_pkg.raise_message
133616            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_222');
133617 END AcctLineType_222;
133618 --
133619 
133620 ---------------------------------------
133621 --
133622 -- PRIVATE FUNCTION
133623 --         AcctLineType_223
133624 --
133625 ---------------------------------------
133626 PROCEDURE AcctLineType_223 (
133627   p_application_id        IN NUMBER
133628  ,p_event_id              IN NUMBER
133629  ,p_calculate_acctd_flag  IN VARCHAR2
133630  ,p_calculate_g_l_flag    IN VARCHAR2
133631  ,p_actual_flag           IN OUT VARCHAR2
133632  ,p_balance_type_code     OUT VARCHAR2
133633  ,p_gain_or_loss_ref      OUT VARCHAR2
133634  
133635 --Invoice Distribution Type
133636  , p_source_21            IN VARCHAR2
133637  , p_source_21_meaning    IN VARCHAR2
133638 --Accounting Reversal Indicator
133639  , p_source_41            IN VARCHAR2
133640 --Distribution Link Type
133641  , p_source_43            IN VARCHAR2
133642 --Allocation to Main Distribution Identifier
133643  , p_source_45            IN NUMBER
133644 --Invoice Identifier
133645  , p_source_46            IN NUMBER
133646 --Invoice Distribution Identifier
133647  , p_source_52            IN NUMBER
133648 --Payables Encumbrance Upgrade Credit Account
133649  , p_source_53            IN NUMBER
133650 --Payables Encumbrance Upgrade Credit Amount
133651  , p_source_54            IN NUMBER
133652 --Invoice Currency Code
133653  , p_source_55            IN VARCHAR2
133654 --Payables Encumbrance Upgrade Credit Base Amount
133655  , p_source_56            IN NUMBER
133656 --Payables Encumbrance Upgrade Debit Account
133657  , p_source_57            IN NUMBER
133658 --Payables Encumbrance Upgrade Debit Amount
133659  , p_source_58            IN NUMBER
133660 --Payables Encumbrance Upgrade Debit Base Amount
133661  , p_source_59            IN NUMBER
133662 --Payables Encumbrance Upgrade Option
133663  , p_source_60            IN VARCHAR2
133664 --Deferred Accounting End Date
133665  , p_source_65            IN DATE
133666 --Deferred Accounting Option
133667  , p_source_66            IN VARCHAR2
133668 --Deferred Accounting Start Date
133669  , p_source_67            IN DATE
133670 --Override Accounted Amount Indicator
133671  , p_source_68            IN VARCHAR2
133672  , p_source_68_meaning    IN VARCHAR2
133673 --Third Party Type
133674  , p_source_71            IN VARCHAR2
133675 --Parent Reversal Identifier
133676  , p_source_72            IN NUMBER
133677 --Invoice Distribution Tax Line Identifier
133678  , p_source_74            IN NUMBER
133679 --Invoice Distribution Tax Distribution Identifier from Tax
133680  , p_source_75            IN NUMBER
133681 --Invoice Distribution Summary Tax Line Identifier
133682  , p_source_76            IN NUMBER
133683 --Payables Upgrade Credit Encumbrance Type Identifier
133684  , p_source_77            IN NUMBER
133685 --Payables Upgrade Debit Encumbrance Type Identifier
133686  , p_source_78            IN NUMBER
133687 --Business Flow Accounts Payable Application Identifier
133688  , p_source_79            IN NUMBER
133689 --Business Flow Invoice Distribution Type
133690  , p_source_80            IN VARCHAR2
133691 --Business Flow Invoice Entity Code
133692  , p_source_81            IN VARCHAR2
133693 --Business Flow Invoice Distribution Identifier
133694  , p_source_82            IN NUMBER
133695 --Business Flow Invoice Identifier
133696  , p_source_83            IN NUMBER
133697 --Purchasing Encumbrance Option
133698  , p_source_86            IN VARCHAR2
133699  , p_source_86_meaning    IN VARCHAR2
133700 --Invoice Encumbered Option
133701  , p_source_87            IN VARCHAR2
133702  , p_source_87_meaning    IN VARCHAR2
133703 --Self-Assessed Tax Flag
133704  , p_source_135            IN VARCHAR2
133705  , p_source_135_meaning    IN VARCHAR2
133706 --Invoice Distribution Encumbrance Amount
133707  , p_source_143            IN NUMBER
133708 --Invoice Distribution Encumbrance Ledger Amount
133709  , p_source_144            IN NUMBER
133710 )
133711 IS
133712 
133713 l_component_type              VARCHAR2(80);
133717 l_amb_context_code            VARCHAR2(30);
133714 l_component_code              VARCHAR2(30);
133715 l_component_type_code         VARCHAR2(1);
133716 l_component_appl_id           INTEGER;
133718 l_entity_code                 VARCHAR2(30);
133719 l_event_class_code            VARCHAR2(30);
133720 l_ae_header_id                NUMBER;
133721 l_event_type_code             VARCHAR2(30);
133722 l_line_definition_code        VARCHAR2(30);
133723 l_line_definition_owner_code  VARCHAR2(1);
133724 --
133725 -- adr variables
133726 l_segment                     VARCHAR2(30);
133727 l_ccid                        NUMBER;
133728 l_adr_transaction_coa_id      NUMBER;
133729 l_adr_accounting_coa_id       NUMBER;
133730 l_adr_flexfield_segment_code  VARCHAR2(30);
133731 l_adr_flex_value_set_id       NUMBER;
133732 l_adr_value_type_code         VARCHAR2(30);
133733 l_adr_value_combination_id    NUMBER;
133734 l_adr_value_segment_code      VARCHAR2(30);
133735 
133736 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
133737 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
133738 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
133739 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
133740 
133741 -- 4262811 Variables ------------------------------------------------------------------------------------------
133742 l_entered_amt_idx             NUMBER;
133743 l_accted_amt_idx              NUMBER;
133744 l_acc_rev_flag                VARCHAR2(1);
133745 l_accrual_line_num            NUMBER;
133746 l_tmp_amt                     NUMBER;
133747 l_acc_rev_natural_side_code   VARCHAR2(1);
133748 
133749 l_num_entries                 NUMBER;
133750 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
133751 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
133752 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
133753 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
133754 l_recog_line_1                NUMBER;
133755 l_recog_line_2                NUMBER;
133756 
133757 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
133761 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
133758 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
133759 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
133760 
133762 
133763 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
133764 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
133765 
133766 ---------------------------------------------------------------------------------------------------------------
133767 
133768 
133769 --
133770 -- bulk performance
133771 --
133772 l_balance_type_code           VARCHAR2(1);
133773 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
133774 l_log_module                  VARCHAR2(240);
133775 
133776 --
133777 -- Upgrade strategy
133778 --
133779 l_actual_upg_option           VARCHAR2(1);
133780 l_enc_upg_option           VARCHAR2(1);
133781 
133782 --
133783 BEGIN
133784 --
133785 IF g_log_enabled THEN
133786       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_223';
133787 END IF;
133788 --
133789 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133790 
133791       trace
133792          (p_msg      => 'BEGIN of AcctLineType_223'
133793          ,p_level    => C_LEVEL_PROCEDURE
133794          ,p_module   => l_log_module);
133795 
133796 END IF;
133797 --
133798 l_component_type             := 'AMB_JLT';
133799 l_component_code             := 'AP_RECOV_TAX_DM_ENC';
133800 l_component_type_code        := 'S';
133801 l_component_appl_id          :=  200;
133802 l_amb_context_code           := 'DEFAULT';
133803 l_entity_code                := 'AP_INVOICES';
133804 l_event_class_code           := 'DEBIT MEMOS';
133805 l_event_type_code            := 'DEBIT MEMOS_ALL';
133806 l_line_definition_owner_code := 'S';
133807 l_line_definition_code       := 'ENC_REV_DM_ALL';
133808 --
133809 l_balance_type_code          := 'E';
133810 l_segment                     := NULL;
133811 l_ccid                        := NULL;
133812 l_adr_transaction_coa_id      := NULL;
133813 l_adr_accounting_coa_id       := NULL;
133814 l_adr_flexfield_segment_code  := NULL;
133815 l_adr_flex_value_set_id       := NULL;
133816 l_adr_value_type_code         := NULL;
133817 l_adr_value_combination_id    := NULL;
133818 l_adr_value_segment_code      := NULL;
133819 
133820 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
133821 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
133822 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
133823 l_budgetary_control_flag     := 'N';
133824 
133825 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
133826 l_bflow_applied_to_amt       := NULL; -- 5132302
133830 l_accrual_line_num           := NULL;          -- 4262811
133827 l_entered_amt_idx            := NULL;          -- 4262811
133828 l_accted_amt_idx             := NULL;          -- 4262811
133829 l_acc_rev_flag               := NULL;          -- 4262811
133831 l_tmp_amt                    := NULL;          -- 4262811
133832 --
133833  
133834 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
133835     l_balance_type_code <> 'B' THEN
133836 IF NVL(p_source_21,'
133837 ') =  'REC_TAX' AND 
133838 NVL(p_source_135,'
133839 ') <>  'Y' AND 
133840 NVL(p_source_86,'
133841 ') =  'Y' AND 
133842 NVL(p_source_87,'
133843 ') =  'Y'
133844  THEN 
133845 
133846    --
133847    XLA_AE_LINES_PKG.SetNewLine;
133848 
133849    p_balance_type_code          := l_balance_type_code;
133850    -- set the flag so later we will know whether the gain loss line needs to be created
133851    
133852    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
133853      p_actual_flag :='A';
133854    END IF;
133855 
133856    --
133857    -- bulk performance
133858    --
133859    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
133860                                       p_header_num   => 0); -- 4262811
133861    --
133862    -- set accounting line options
133863    --
133864    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
133865            p_natural_side_code          => 'C'
133866          , p_gain_or_loss_flag          => 'N'
133867          , p_gl_transfer_mode_code      => 'S'
133868          , p_acct_entry_type_code       => 'E'
133869          , p_switch_side_flag           => 'Y'
133870          , p_merge_duplicate_code       => 'A'
133871          );
133872    --
133873    l_acc_rev_natural_side_code := 'D';  -- 4262811
133874    -- 
133875    --
133876    -- set accounting line type info
133877    --
133878    xla_ae_lines_pkg.SetAcctLineType
133879       (p_component_type             => l_component_type
133880       ,p_event_type_code            => l_event_type_code
133881       ,p_line_definition_owner_code => l_line_definition_owner_code
133882       ,p_line_definition_code       => l_line_definition_code
133883       ,p_accounting_line_code       => l_component_code
133884       ,p_accounting_line_type_code  => l_component_type_code
133885       ,p_accounting_line_appl_id    => l_component_appl_id
133886       ,p_amb_context_code           => l_amb_context_code
133887       ,p_entity_code                => l_entity_code
133888       ,p_event_class_code           => l_event_class_code);
133889    --
133890    -- set accounting class
133891    --
133892    xla_ae_lines_pkg.SetAcctClass(
133893            p_accounting_class_code  => 'RTAX'
133894          , p_ae_header_id           => l_ae_header_id
133895          );
133896 
133897    --
133898    -- set rounding class
133899    --
133900    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
133901                       'RTAX';
133902 
133903    --
133904    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
133905    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
133906    --
133907    -- bulk performance
133908    --
133909    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
133910 
133911    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
133912       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
133913 
133914    -- 4955764
133915    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
133916       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
133917 
133918    -- 4458381 Public Sector Enh
133919    
133920    --
133921    -- set accounting attributes for the line type
133922    --
133926    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
133923    l_entered_amt_idx := 23;
133924    l_accted_amt_idx  := 25;
133925    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
133927    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
133928    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
133929    l_rec_acct_attrs.array_num_value(2)  := 
133930 xla_ae_sources_pkg.GetSystemSourceNum(
133931    p_source_code           => 'XLA_EVENT_APPL_ID'
133932  , p_source_type_code      => 'Y'
133933  , p_source_application_id =>  602
133934 );
133935    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
133936    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
133937    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
133938    l_rec_acct_attrs.array_char_value(4)  := 
133939 xla_ae_sources_pkg.GetSystemSourceChar(
133940    p_source_code           => 'XLA_ENTITY_CODE'
133941  , p_source_type_code      => 'Y'
133942  , p_source_application_id =>  602
133943 );
133944    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
133945    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
133946    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
133947    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
133948    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
133949    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
133950    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
133951    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
133952    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
133953    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
133954    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
133955    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
133956    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
133957    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
133958    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
133959    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
133960    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
133961    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
133962    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
133963    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
133964    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
133965    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
133966    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
133967    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
133968    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
133969    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
133970    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
133971    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
133972    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
133973    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
133974    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
133975    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
133976    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
133977    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
133978    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
133979    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
133980    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
133981    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
133982    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
133983    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
133984    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
133985    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
133986    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
133987    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
133988    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
133989    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
133990    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
133991    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
133992    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
133993    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
133994    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
133995    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
133996    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
133997    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
133998    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
133999    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
134000    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
134001    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
134002    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
134003    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
134004    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
134005    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
134006    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
134007    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
134008    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
134009    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
134010 
134011    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
134012    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
134013 
134014    ---------------------------------------------------------------------------------------------------------------
134015    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
134016    ---------------------------------------------------------------------------------------------------------------
134017    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
134018 
134019    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
134020    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
134021 
134022    IF xla_accounting_cache_pkg.GetValueChar
134023          (p_source_code         => 'LEDGER_CATEGORY_CODE'
134024          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
134025    AND l_bflow_method_code = 'PRIOR_ENTRY'
134026 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
134027    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
134031          xla_ae_lines_pkg.BflowUpgEntry
134028          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
134029        )
134030    THEN
134032            (p_business_method_code    => l_bflow_method_code
134033            ,p_business_class_code     => l_bflow_class_code
134034            ,p_balance_type            => l_balance_type_code);
134035    ELSE
134036       NULL;
134037 XLA_AE_LINES_PKG.business_flow_validation(
134038                                 p_business_method_code     => l_bflow_method_code
134042 
134039                                ,p_business_class_code      => l_bflow_class_code
134040                                ,p_inherit_description_flag => l_inherit_desc_flag);
134041    END IF;
134043    --
134044    -- call analytical criteria
134045    --
134046    -- Inherited Analytical Criteria for business flow method of Prior Entry.
134047    --
134048    -- call description
134049    --
134050    -- No description or it is inherited.
134051    --
134052    -- call ADRs
134053    -- Bug 4922099
134054    --
134055    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
134056         (NVL(l_actual_upg_option, 'N') = 'O') OR
134057         (NVL(l_enc_upg_option, 'N') = 'O')
134058       )
134059    THEN
134060    NULL;
134061    --
134062    --
134063    
134064    --
134065    --
134066    END IF;
134067    --
134068    -- Bug 4922099
134069    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
134070           (NVL(l_enc_upg_option, 'N') = 'O')
134071         ) AND
134072         (l_bflow_method_code = 'PRIOR_ENTRY')
134073       )
134074    THEN
134075       IF
134076       --
134077       1 = 1
134078       --
134079       THEN
134080       xla_accounting_err_pkg.build_message
134081                                     (p_appli_s_name            => 'XLA'
134082                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
134083                                     ,p_token_1                 => 'LINE_NUMBER'
134084                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
134085                                     ,p_token_2                 => 'LINE_TYPE_NAME'
134086                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
134087                                                                              l_component_type
134088                                                                             ,l_component_code
134089                                                                             ,l_component_type_code
134090                                                                             ,l_component_appl_id
134091                                                                             ,l_amb_context_code
134092                                                                             ,l_entity_code
134093                                                                             ,l_event_class_code
134094                                                                            )
134095                                     ,p_token_3                 => 'OWNER'
134096                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
134097                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
134098                                                                           ,p_lookup_code    => l_component_type_code
134099                                                                          )
134100                                     ,p_token_4                 => 'PRODUCT_NAME'
134101                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
134102                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
134103                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
134104                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
134105                                     ,p_ae_header_id            =>  NULL
134106                                        );
134107 
134108         IF (C_LEVEL_ERROR>= g_log_level) THEN
134109                  trace
134110                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
134111                       ,p_level    => C_LEVEL_ERROR
134112                       ,p_module   => l_log_module);
134113         END IF;
134114       END IF;
134115    END IF;
134116    --
134117    --
134118    ------------------------------------------------------------------------------------------------
134119    -- 4219869 Business Flow
134120    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
134121    -- Prior Entry.  Currently, the following code is always generated.
134122    ------------------------------------------------------------------------------------------------
134123    -- No ValidateCurrentLine for business flow method of Prior Entry
134124 
134125    ------------------------------------------------------------------------------------
134126    -- 4219869 Business Flow
134127    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
134128    ------------------------------------------------------------------------------------
134129    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
134130 
134131    ----------------------------------------------------------------------------------
134132    -- 4219869 Business Flow
134133    -- Update journal entry status -- Need to generate this within IF <condition>
134134    ----------------------------------------------------------------------------------
134135    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
134136          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
134137          ,p_balance_type_code => l_balance_type_code
134138          );
134139 
134140    -------------------------------------------------------------------------------------------
134141    -- 4262811 - Generate the Accrual Reversal lines
134142    -------------------------------------------------------------------------------------------
134143    BEGIN
134144       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
134145                               (g_array_event(p_event_id).array_value_num('header_index'));
134146       IF l_acc_rev_flag IS NULL THEN
134147          l_acc_rev_flag := 'N';
134148       END IF;
134149    EXCEPTION
134150       WHEN OTHERS THEN
134151          l_acc_rev_flag := 'N';
134152    END;
134153    --
134154    IF (l_acc_rev_flag = 'Y') THEN
134155 
134156        -- 4645092  ------------------------------------------------------------------------------
134157        -- To allow MPA report to determine if it should generate report process
134161        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
134158        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
134159        ------------------------------------------------------------------------------------------
134160 
134162        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
134163    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
134164    -- call ADRs
134165    -- Bug 4922099
134166    --
134167    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
134168         (NVL(l_actual_upg_option, 'N') = 'O') OR
134169         (NVL(l_enc_upg_option, 'N') = 'O')
134170       )
134171    THEN
134172    NULL;
134173    --
134174    --
134175    
134176    --
134177    --
134178    END IF;
134179 
134180        --
134181        -- Update the line information that should be overwritten
134182        --
134183        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
134184                                          p_header_num   => 1);
134185        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
134186 
134187        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
134188 
134189        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
134190           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
134191        END IF;
134192 
134193       --
134194       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
134195       --
134196       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
134197           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
134198       ELSE
134199           ---------------------------------------------------------------------------------------------------
134200           -- 4262811a Switch Sign
134201           ---------------------------------------------------------------------------------------------------
134202           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
134203           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
134204                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134205           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
134206                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134207           -- 5132302
134208           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
134209                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134210 
134211       END IF;
134212 
134213       -- 4955764
134214       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
134215       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
134216 
134217 
134218       XLA_AE_LINES_PKG.ValidateCurrentLine;
134219       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
134220 
134221       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
134222                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
134223                ,p_balance_type_code => l_balance_type_code);
134224 
134225    END IF;
134226 
134227    -----------------------------------------------------------------------------------------
134228    -- 4262811 Multiperiod Accounting
134229    -----------------------------------------------------------------------------------------
134230      -- No MPA option is assigned.
134231 
134232 
134233 END IF;
134234 END IF;
134235 --
134236 
134237 --
134238 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134239    trace
134240       (p_msg      => 'END of AcctLineType_223'
134241       ,p_level    => C_LEVEL_PROCEDURE
134242       ,p_module   => l_log_module);
134243 END IF;
134244 --
134245 EXCEPTION
134246   WHEN xla_exceptions_pkg.application_exception THEN
134247       RAISE;
134248   WHEN OTHERS THEN
134249        xla_exceptions_pkg.raise_message
134250            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_223');
134251 END AcctLineType_223;
134252 --
134253 
134254 ---------------------------------------
134255 --
134256 -- PRIVATE FUNCTION
134257 --         AcctLineType_224
134258 --
134259 ---------------------------------------
134260 PROCEDURE AcctLineType_224 (
134261   p_application_id        IN NUMBER
134262  ,p_event_id              IN NUMBER
134263  ,p_calculate_acctd_flag  IN VARCHAR2
134264  ,p_calculate_g_l_flag    IN VARCHAR2
134265  ,p_actual_flag           IN OUT VARCHAR2
134266  ,p_balance_type_code     OUT VARCHAR2
134267  ,p_gain_or_loss_ref      OUT VARCHAR2
134268  
134269 --Invoice Distribution Description
134270  , p_source_1            IN VARCHAR2
134271 --Invoice Distribution Ledger Amount
134272  , p_source_9            IN NUMBER
134273 --Invoice Distribution Account
134274  , p_source_18            IN NUMBER
134275 --Invoice Distribution Type
134276  , p_source_21            IN VARCHAR2
134277  , p_source_21_meaning    IN VARCHAR2
134278 --Accounting Reversal Indicator
134279  , p_source_41            IN VARCHAR2
134280 --Distribution Link Type
134281  , p_source_43            IN VARCHAR2
134282 --Allocation to Main Distribution Identifier
134283  , p_source_45            IN NUMBER
134284 --Invoice Identifier
134285  , p_source_46            IN NUMBER
134286 --Invoice Distribution Identifier
134287  , p_source_52            IN NUMBER
134288 --Payables Encumbrance Upgrade Credit Account
134289  , p_source_53            IN NUMBER
134290 --Payables Encumbrance Upgrade Credit Amount
134291  , p_source_54            IN NUMBER
134292 --Invoice Currency Code
134293  , p_source_55            IN VARCHAR2
134294 --Payables Encumbrance Upgrade Credit Base Amount
134295  , p_source_56            IN NUMBER
134296 --Payables Encumbrance Upgrade Debit Account
134297  , p_source_57            IN NUMBER
134298 --Payables Encumbrance Upgrade Debit Amount
134299  , p_source_58            IN NUMBER
134300 --Payables Encumbrance Upgrade Debit Base Amount
134301  , p_source_59            IN NUMBER
134302 --Payables Encumbrance Upgrade Option
134303  , p_source_60            IN VARCHAR2
134304 --Invoice Distribution Amount
134305  , p_source_61            IN NUMBER
134306 --Deferred Accounting End Date
134307  , p_source_65            IN DATE
134308 --Deferred Accounting Option
134309  , p_source_66            IN VARCHAR2
134310 --Deferred Accounting Start Date
134311  , p_source_67            IN DATE
134312 --Override Accounted Amount Indicator
134313  , p_source_68            IN VARCHAR2
134314  , p_source_68_meaning    IN VARCHAR2
134315 --Invoice Supplier Identifier
134316  , p_source_69            IN NUMBER
134317 --Invoice Supplier Site Identifier
134318  , p_source_70            IN NUMBER
134319 --Third Party Type
134320  , p_source_71            IN VARCHAR2
134321 --Parent Reversal Identifier
134322  , p_source_72            IN NUMBER
134323 --Invoice Distribution Statistical Amount
134324  , p_source_73            IN NUMBER
134325 --Invoice Distribution Tax Line Identifier
134326  , p_source_74            IN NUMBER
134327 --Invoice Distribution Tax Distribution Identifier from Tax
134328  , p_source_75            IN NUMBER
134329 --Invoice Distribution Summary Tax Line Identifier
134330  , p_source_76            IN NUMBER
134331 --Payables Upgrade Credit Encumbrance Type Identifier
134332  , p_source_77            IN NUMBER
134333 --Payables Upgrade Debit Encumbrance Type Identifier
134334  , p_source_78            IN NUMBER
134335 --Business Flow Accounts Payable Application Identifier
134336  , p_source_79            IN NUMBER
134337 --Business Flow Invoice Distribution Type
134338  , p_source_80            IN VARCHAR2
134339 --Business Flow Invoice Entity Code
134340  , p_source_81            IN VARCHAR2
134341 --Business Flow Invoice Distribution Identifier
134342  , p_source_82            IN NUMBER
134343 --Business Flow Invoice Identifier
134344  , p_source_83            IN NUMBER
134345 --Self-Assessed Tax Flag
134346  , p_source_135            IN VARCHAR2
134347  , p_source_135_meaning    IN VARCHAR2
134348 --Invoice Exchange Date
134349  , p_source_136            IN DATE
134350 --Invoice Exchange Rate
134351  , p_source_137            IN NUMBER
134352 --Invoice Exchange Rate Type
134353  , p_source_138            IN VARCHAR2
134354 )
134355 IS
134356 
134357 l_component_type              VARCHAR2(80);
134358 l_component_code              VARCHAR2(30);
134359 l_component_type_code         VARCHAR2(1);
134360 l_component_appl_id           INTEGER;
134361 l_amb_context_code            VARCHAR2(30);
134362 l_entity_code                 VARCHAR2(30);
134363 l_event_class_code            VARCHAR2(30);
134364 l_ae_header_id                NUMBER;
134365 l_event_type_code             VARCHAR2(30);
134366 l_line_definition_code        VARCHAR2(30);
134367 l_line_definition_owner_code  VARCHAR2(1);
134368 --
134369 -- adr variables
134370 l_segment                     VARCHAR2(30);
134371 l_ccid                        NUMBER;
134372 l_adr_transaction_coa_id      NUMBER;
134373 l_adr_accounting_coa_id       NUMBER;
134374 l_adr_flexfield_segment_code  VARCHAR2(30);
134375 l_adr_flex_value_set_id       NUMBER;
134376 l_adr_value_type_code         VARCHAR2(30);
134377 l_adr_value_combination_id    NUMBER;
134378 l_adr_value_segment_code      VARCHAR2(30);
134379 
134380 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
134381 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
134382 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
134383 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
134384 
134385 -- 4262811 Variables ------------------------------------------------------------------------------------------
134386 l_entered_amt_idx             NUMBER;
134387 l_accted_amt_idx              NUMBER;
134388 l_acc_rev_flag                VARCHAR2(1);
134389 l_accrual_line_num            NUMBER;
134390 l_tmp_amt                     NUMBER;
134391 l_acc_rev_natural_side_code   VARCHAR2(1);
134392 
134393 l_num_entries                 NUMBER;
134394 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
134395 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
134396 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
134397 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
134398 l_recog_line_1                NUMBER;
134399 l_recog_line_2                NUMBER;
134400 
134401 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
134402 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
134403 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
134404 
134405 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
134406 
134407 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
134408 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
134409 
134410 ---------------------------------------------------------------------------------------------------------------
134411 
134412 
134413 --
134414 -- bulk performance
134415 --
134416 l_balance_type_code           VARCHAR2(1);
134417 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
134418 l_log_module                  VARCHAR2(240);
134422 --
134419 
134420 --
134421 -- Upgrade strategy
134423 l_actual_upg_option           VARCHAR2(1);
134424 l_enc_upg_option           VARCHAR2(1);
134425 
134426 --
134427 BEGIN
134428 --
134429 IF g_log_enabled THEN
134430       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_224';
134431 END IF;
134432 --
134433 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134434 
134435       trace
134436          (p_msg      => 'BEGIN of AcctLineType_224'
134437          ,p_level    => C_LEVEL_PROCEDURE
134438          ,p_module   => l_log_module);
134439 
134440 END IF;
134441 --
134442 l_component_type             := 'AMB_JLT';
134443 l_component_code             := 'AP_RECOV_TAX_INV';
134444 l_component_type_code        := 'S';
134445 l_component_appl_id          :=  200;
134446 l_amb_context_code           := 'DEFAULT';
134447 l_entity_code                := 'AP_INVOICES';
134448 l_event_class_code           := 'INVOICES';
134449 l_event_type_code            := 'INVOICES_ALL';
134450 l_line_definition_owner_code := 'S';
134451 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
134452 --
134453 l_balance_type_code          := 'A';
134454 l_segment                     := NULL;
134455 l_ccid                        := NULL;
134456 l_adr_transaction_coa_id      := NULL;
134457 l_adr_accounting_coa_id       := NULL;
134458 l_adr_flexfield_segment_code  := NULL;
134459 l_adr_flex_value_set_id       := NULL;
134460 l_adr_value_type_code         := NULL;
134461 l_adr_value_combination_id    := NULL;
134462 l_adr_value_segment_code      := NULL;
134463 
134464 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
134465 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
134466 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
134467 l_budgetary_control_flag     := 'N';
134468 
134469 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
134470 l_bflow_applied_to_amt       := NULL; -- 5132302
134471 l_entered_amt_idx            := NULL;          -- 4262811
134472 l_accted_amt_idx             := NULL;          -- 4262811
134473 l_acc_rev_flag               := NULL;          -- 4262811
134474 l_accrual_line_num           := NULL;          -- 4262811
134475 l_tmp_amt                    := NULL;          -- 4262811
134476 --
134477  
134478 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
134479     l_balance_type_code <> 'B' THEN
134480 IF NVL(p_source_21,'
134481 ') =  'REC_TAX' AND 
134482 NVL(p_source_135,'
134483 ') <>  'Y'
134484  THEN 
134485 
134486    --
134487    XLA_AE_LINES_PKG.SetNewLine;
134488 
134489    p_balance_type_code          := l_balance_type_code;
134490    -- set the flag so later we will know whether the gain loss line needs to be created
134491    
134492    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
134493      p_actual_flag :='A';
134494    END IF;
134495 
134496    --
134497    -- bulk performance
134498    --
134499    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
134500                                       p_header_num   => 0); -- 4262811
134501    --
134502    -- set accounting line options
134503    --
134504    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
134505            p_natural_side_code          => 'D'
134506          , p_gain_or_loss_flag          => 'N'
134507          , p_gl_transfer_mode_code      => 'S'
134508          , p_acct_entry_type_code       => 'A'
134509          , p_switch_side_flag           => 'Y'
134510          , p_merge_duplicate_code       => 'A'
134511          );
134512    --
134513    l_acc_rev_natural_side_code := 'C';  -- 4262811
134514    -- 
134515    --
134516    -- set accounting line type info
134517    --
134518    xla_ae_lines_pkg.SetAcctLineType
134519       (p_component_type             => l_component_type
134520       ,p_event_type_code            => l_event_type_code
134521       ,p_line_definition_owner_code => l_line_definition_owner_code
134522       ,p_line_definition_code       => l_line_definition_code
134523       ,p_accounting_line_code       => l_component_code
134524       ,p_accounting_line_type_code  => l_component_type_code
134528       ,p_event_class_code           => l_event_class_code);
134525       ,p_accounting_line_appl_id    => l_component_appl_id
134526       ,p_amb_context_code           => l_amb_context_code
134527       ,p_entity_code                => l_entity_code
134529    --
134530    -- set accounting class
134531    --
134532    xla_ae_lines_pkg.SetAcctClass(
134533            p_accounting_class_code  => 'RTAX'
134534          , p_ae_header_id           => l_ae_header_id
134535          );
134536 
134537    --
134538    -- set rounding class
134539    --
134540    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
134541                       'RTAX';
134542 
134543    --
134544    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
134545    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
134546    --
134547    -- bulk performance
134548    --
134549    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
134550 
134551    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
134552       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
134553 
134554    -- 4955764
134555    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
134556       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
134557 
134558    -- 4458381 Public Sector Enh
134559    
134560    --
134561    -- set accounting attributes for the line type
134562    --
134563    l_entered_amt_idx := 24;
134564    l_accted_amt_idx  := 29;
134565    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
134566    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
134567    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
134568    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
134569    l_rec_acct_attrs.array_num_value(2)  := 
134570 xla_ae_sources_pkg.GetSystemSourceNum(
134571    p_source_code           => 'XLA_EVENT_APPL_ID'
134572  , p_source_type_code      => 'Y'
134573  , p_source_application_id =>  602
134574 );
134575    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
134576    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
134577    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
134578    l_rec_acct_attrs.array_char_value(4)  := 
134579 xla_ae_sources_pkg.GetSystemSourceChar(
134580    p_source_code           => 'XLA_ENTITY_CODE'
134581  , p_source_type_code      => 'Y'
134582  , p_source_application_id =>  602
134583 );
134584    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
134585    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
134586    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
134587    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
134588    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
134589    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
134590    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
134591    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
134592    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
134593    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
134594    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
134595    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
134596    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
134597    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
134598    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
134599    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
134600    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
134601    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
134602    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
134603    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
134604    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
134605    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
134606    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
134607    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
134608    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
134609    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
134610    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
134611    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
134612    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
134613    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
134614    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
134615    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
134616    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
134617    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
134618    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
134619    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
134620    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
134621    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
134622    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
134623    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
134624    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
134625    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
134626    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
134627    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
134628    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
134629    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
134630    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
134631    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
134632    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
134633    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
134634    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
134635    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
134636    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
134637    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
134638    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
134639    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
134640    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
134641    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
134642    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
134643    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
134644    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
134645    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
134646    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
134647    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
134648    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
134649    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
134650    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
134651    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
134652    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
134653    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
134654    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
134655    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
134656    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
134657    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
134658    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
134659    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
134660    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
134661    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
134662    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
134663    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
134664 
134665    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
134666    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
134667 
134668    ---------------------------------------------------------------------------------------------------------------
134669    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
134670    ---------------------------------------------------------------------------------------------------------------
134671    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
134672 
134673    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
134674    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
134675 
134676    IF xla_accounting_cache_pkg.GetValueChar
134677          (p_source_code         => 'LEDGER_CATEGORY_CODE'
134678          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
134679    AND l_bflow_method_code = 'PRIOR_ENTRY'
134680 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
134681    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
134682          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
134683        )
134684    THEN
134685          xla_ae_lines_pkg.BflowUpgEntry
134686            (p_business_method_code    => l_bflow_method_code
134687            ,p_business_class_code     => l_bflow_class_code
134688            ,p_balance_type            => l_balance_type_code);
134689    ELSE
134690       NULL;
134691 -- No business flow processing for business flow method of NONE.
134692    END IF;
134693 
134694    --
134695    -- call analytical criteria
134696    --
134697    
134698    --
134699    -- call description
134700    --
134701    
134702 xla_ae_lines_pkg.SetLineDescription(
134703    p_ae_header_id => l_ae_header_id
134704   ,p_description  => Description_2 (
134708    )
134705      p_application_id         => p_application_id
134706    , p_ae_header_id           => l_ae_header_id 
134707 , p_source_1 => p_source_1
134709 );
134710 
134711 
134712    --
134713    -- call ADRs
134714    -- Bug 4922099
134715    --
134716    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
134717         (NVL(l_actual_upg_option, 'N') = 'O') OR
134718         (NVL(l_enc_upg_option, 'N') = 'O')
134719       )
134720    THEN
134721    NULL;
134722    --
134723    --
134724    
134725   l_ccid := AcctDerRule_32(
134726            p_application_id           => p_application_id
134727          , p_ae_header_id             => l_ae_header_id 
134728 , p_source_18 => p_source_18
134729          , x_transaction_coa_id       => l_adr_transaction_coa_id
134730          , x_accounting_coa_id        => l_adr_accounting_coa_id
134731          , x_value_type_code          => l_adr_value_type_code
134732          , p_side                     => 'NA'
134733    );
134734 
134735    xla_ae_lines_pkg.set_ccid(
134736     p_code_combination_id          => l_ccid
134740   , p_adr_code                     => 'AP_INVOICE_DIST'
134737   , p_value_type_code              => l_adr_value_type_code
134738   , p_transaction_coa_id           => l_adr_transaction_coa_id
134739   , p_accounting_coa_id            => l_adr_accounting_coa_id
134741   , p_adr_type_code                => 'S'
134742   , p_component_type               => l_component_type
134743   , p_component_code               => l_component_code
134744   , p_component_type_code          => l_component_type_code
134745   , p_component_appl_id            => l_component_appl_id
134746   , p_amb_context_code             => l_amb_context_code
134747   , p_side                         => 'NA'
134748   );
134749 
134750 
134751    --
134752    --
134753    END IF;
134754    --
134755    -- Bug 4922099
134756    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
134757           (NVL(l_enc_upg_option, 'N') = 'O')
134758         ) AND
134759         (l_bflow_method_code = 'PRIOR_ENTRY')
134760       )
134761    THEN
134762       IF
134763       --
134764       1 = 2
134765       --
134766       THEN
134770                                     ,p_token_1                 => 'LINE_NUMBER'
134767       xla_accounting_err_pkg.build_message
134768                                     (p_appli_s_name            => 'XLA'
134769                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
134771                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
134772                                     ,p_token_2                 => 'LINE_TYPE_NAME'
134773                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
134774                                                                              l_component_type
134775                                                                             ,l_component_code
134776                                                                             ,l_component_type_code
134777                                                                             ,l_component_appl_id
134778                                                                             ,l_amb_context_code
134779                                                                             ,l_entity_code
134780                                                                             ,l_event_class_code
134781                                                                            )
134782                                     ,p_token_3                 => 'OWNER'
134783                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
134784                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
134785                                                                           ,p_lookup_code    => l_component_type_code
134786                                                                          )
134787                                     ,p_token_4                 => 'PRODUCT_NAME'
134788                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
134789                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
134790                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
134791                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
134792                                     ,p_ae_header_id            =>  NULL
134793                                        );
134794 
134795         IF (C_LEVEL_ERROR>= g_log_level) THEN
134796                  trace
134797                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
134798                       ,p_level    => C_LEVEL_ERROR
134799                       ,p_module   => l_log_module);
134800         END IF;
134801       END IF;
134802    END IF;
134803    --
134804    --
134805    ------------------------------------------------------------------------------------------------
134806    -- 4219869 Business Flow
134807    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
134808    -- Prior Entry.  Currently, the following code is always generated.
134809    ------------------------------------------------------------------------------------------------
134810    XLA_AE_LINES_PKG.ValidateCurrentLine;
134811 
134812    ------------------------------------------------------------------------------------
134813    -- 4219869 Business Flow
134814    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
134815    ------------------------------------------------------------------------------------
134816    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
134817 
134818    ----------------------------------------------------------------------------------
134819    -- 4219869 Business Flow
134820    -- Update journal entry status -- Need to generate this within IF <condition>
134821    ----------------------------------------------------------------------------------
134822    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
134823          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
134824          ,p_balance_type_code => l_balance_type_code
134825          );
134826 
134827    -------------------------------------------------------------------------------------------
134828    -- 4262811 - Generate the Accrual Reversal lines
134829    -------------------------------------------------------------------------------------------
134830    BEGIN
134831       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
134832                               (g_array_event(p_event_id).array_value_num('header_index'));
134833       IF l_acc_rev_flag IS NULL THEN
134834          l_acc_rev_flag := 'N';
134835       END IF;
134836    EXCEPTION
134837       WHEN OTHERS THEN
134838          l_acc_rev_flag := 'N';
134839    END;
134840    --
134841    IF (l_acc_rev_flag = 'Y') THEN
134842 
134843        -- 4645092  ------------------------------------------------------------------------------
134844        -- To allow MPA report to determine if it should generate report process
134845        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
134846        ------------------------------------------------------------------------------------------
134847 
134848        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
134849        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
134850    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
134851    -- call ADRs
134852    -- Bug 4922099
134853    --
134854    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
134855         (NVL(l_actual_upg_option, 'N') = 'O') OR
134856         (NVL(l_enc_upg_option, 'N') = 'O')
134857       )
134858    THEN
134859    NULL;
134860    --
134861    --
134862    
134863   l_ccid := AcctDerRule_32(
134867          , x_transaction_coa_id       => l_adr_transaction_coa_id
134864            p_application_id           => p_application_id
134865          , p_ae_header_id             => l_ae_header_id 
134866 , p_source_18 => p_source_18
134868          , x_accounting_coa_id        => l_adr_accounting_coa_id
134869          , x_value_type_code          => l_adr_value_type_code
134870          , p_side                     => 'NA'
134871    );
134872 
134873    xla_ae_lines_pkg.set_ccid(
134874     p_code_combination_id          => l_ccid
134875   , p_value_type_code              => l_adr_value_type_code
134876   , p_transaction_coa_id           => l_adr_transaction_coa_id
134877   , p_accounting_coa_id            => l_adr_accounting_coa_id
134878   , p_adr_code                     => 'AP_INVOICE_DIST'
134879   , p_adr_type_code                => 'S'
134880   , p_component_type               => l_component_type
134881   , p_component_code               => l_component_code
134882   , p_component_type_code          => l_component_type_code
134883   , p_component_appl_id            => l_component_appl_id
134884   , p_amb_context_code             => l_amb_context_code
134885   , p_side                         => 'NA'
134886   );
134887 
134888 
134889    --
134890    --
134891    END IF;
134892 
134893        --
134894        -- Update the line information that should be overwritten
134895        --
134896        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
134897                                          p_header_num   => 1);
134898        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
134899 
134900        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
134901 
134902        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
134903           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
134904        END IF;
134905 
134906       --
134907       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
134908       --
134909       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
134910           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
134911       ELSE
134912           ---------------------------------------------------------------------------------------------------
134913           -- 4262811a Switch Sign
134914           ---------------------------------------------------------------------------------------------------
134915           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
134916           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
134917                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134918           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
134919                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134920           -- 5132302
134921           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
134922                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134923 
134924       END IF;
134925 
134926       -- 4955764
134927       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
134928       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
134929 
134930 
134931       XLA_AE_LINES_PKG.ValidateCurrentLine;
134932       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
134933 
134934       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
134935                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
134936                ,p_balance_type_code => l_balance_type_code);
134937 
134938    END IF;
134939 
134940    -----------------------------------------------------------------------------------------
134941    -- 4262811 Multiperiod Accounting
134942    -----------------------------------------------------------------------------------------
134943      -- No MPA option is assigned.
134944 
134945 
134946 END IF;
134947 END IF;
134948 --
134949 
134950 --
134951 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134952    trace
134953       (p_msg      => 'END of AcctLineType_224'
134954       ,p_level    => C_LEVEL_PROCEDURE
134955       ,p_module   => l_log_module);
134956 END IF;
134957 --
134958 EXCEPTION
134959   WHEN xla_exceptions_pkg.application_exception THEN
134960       RAISE;
134961   WHEN OTHERS THEN
134962        xla_exceptions_pkg.raise_message
134963            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_224');
134964 END AcctLineType_224;
134965 --
134966 
134967 ---------------------------------------
134968 --
134969 -- PRIVATE FUNCTION
134970 --         AcctLineType_225
134971 --
134972 ---------------------------------------
134973 PROCEDURE AcctLineType_225 (
134974   p_application_id        IN NUMBER
134975  ,p_event_id              IN NUMBER
134976  ,p_calculate_acctd_flag  IN VARCHAR2
134977  ,p_calculate_g_l_flag    IN VARCHAR2
134978  ,p_actual_flag           IN OUT VARCHAR2
134979  ,p_balance_type_code     OUT VARCHAR2
134980  ,p_gain_or_loss_ref      OUT VARCHAR2
134981  
134982 --Invoice Distribution Type
134983  , p_source_21            IN VARCHAR2
134984  , p_source_21_meaning    IN VARCHAR2
134985 --Accounting Reversal Indicator
134986  , p_source_41            IN VARCHAR2
134987 --Distribution Link Type
134991 --Invoice Identifier
134988  , p_source_43            IN VARCHAR2
134989 --Allocation to Main Distribution Identifier
134990  , p_source_45            IN NUMBER
134992  , p_source_46            IN NUMBER
134993 --Invoice Distribution Identifier
134994  , p_source_52            IN NUMBER
134995 --Payables Encumbrance Upgrade Credit Account
134996  , p_source_53            IN NUMBER
134997 --Payables Encumbrance Upgrade Credit Amount
134998  , p_source_54            IN NUMBER
134999 --Invoice Currency Code
135000  , p_source_55            IN VARCHAR2
135001 --Payables Encumbrance Upgrade Credit Base Amount
135002  , p_source_56            IN NUMBER
135003 --Payables Encumbrance Upgrade Debit Account
135004  , p_source_57            IN NUMBER
135005 --Payables Encumbrance Upgrade Debit Amount
135006  , p_source_58            IN NUMBER
135007 --Payables Encumbrance Upgrade Debit Base Amount
135008  , p_source_59            IN NUMBER
135009 --Payables Encumbrance Upgrade Option
135010  , p_source_60            IN VARCHAR2
135011 --Invoice Distribution Amount
135012  , p_source_61            IN NUMBER
135013 --Deferred Accounting End Date
135014  , p_source_65            IN DATE
135015 --Deferred Accounting Option
135016  , p_source_66            IN VARCHAR2
135017 --Deferred Accounting Start Date
135018  , p_source_67            IN DATE
135019 --Override Accounted Amount Indicator
135020  , p_source_68            IN VARCHAR2
135021  , p_source_68_meaning    IN VARCHAR2
135022 --Third Party Type
135023  , p_source_71            IN VARCHAR2
135024 --Parent Reversal Identifier
135025  , p_source_72            IN NUMBER
135026 --Invoice Distribution Statistical Amount
135027  , p_source_73            IN NUMBER
135028 --Invoice Distribution Tax Line Identifier
135029  , p_source_74            IN NUMBER
135030 --Invoice Distribution Tax Distribution Identifier from Tax
135031  , p_source_75            IN NUMBER
135032 --Invoice Distribution Summary Tax Line Identifier
135033  , p_source_76            IN NUMBER
135034 --Payables Upgrade Credit Encumbrance Type Identifier
135035  , p_source_77            IN NUMBER
135036 --Payables Upgrade Debit Encumbrance Type Identifier
135037  , p_source_78            IN NUMBER
135038 --Business Flow Accounts Payable Application Identifier
135039  , p_source_79            IN NUMBER
135040 --Business Flow Invoice Distribution Type
135041  , p_source_80            IN VARCHAR2
135042 --Business Flow Invoice Entity Code
135043  , p_source_81            IN VARCHAR2
135044 --Business Flow Invoice Distribution Identifier
135045  , p_source_82            IN NUMBER
135046 --Business Flow Invoice Identifier
135047  , p_source_83            IN NUMBER
135048 --Purchasing Encumbrance Option
135049  , p_source_86            IN VARCHAR2
135050  , p_source_86_meaning    IN VARCHAR2
135051 --Invoice Encumbered Option
135052  , p_source_87            IN VARCHAR2
135053  , p_source_87_meaning    IN VARCHAR2
135054 --Self-Assessed Tax Flag
135055  , p_source_135            IN VARCHAR2
135056  , p_source_135_meaning    IN VARCHAR2
135057 --Invoice Distribution Encumbrance Amount
135058  , p_source_143            IN NUMBER
135059 --Invoice Distribution Encumbrance Ledger Amount
135060  , p_source_144            IN NUMBER
135061 )
135062 IS
135063 
135064 l_component_type              VARCHAR2(80);
135065 l_component_code              VARCHAR2(30);
135066 l_component_type_code         VARCHAR2(1);
135067 l_component_appl_id           INTEGER;
135068 l_amb_context_code            VARCHAR2(30);
135069 l_entity_code                 VARCHAR2(30);
135070 l_event_class_code            VARCHAR2(30);
135071 l_ae_header_id                NUMBER;
135072 l_event_type_code             VARCHAR2(30);
135073 l_line_definition_code        VARCHAR2(30);
135074 l_line_definition_owner_code  VARCHAR2(1);
135075 --
135076 -- adr variables
135077 l_segment                     VARCHAR2(30);
135078 l_ccid                        NUMBER;
135079 l_adr_transaction_coa_id      NUMBER;
135080 l_adr_accounting_coa_id       NUMBER;
135081 l_adr_flexfield_segment_code  VARCHAR2(30);
135082 l_adr_flex_value_set_id       NUMBER;
135083 l_adr_value_type_code         VARCHAR2(30);
135084 l_adr_value_combination_id    NUMBER;
135085 l_adr_value_segment_code      VARCHAR2(30);
135086 
135087 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
135088 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
135089 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
135090 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
135091 
135092 -- 4262811 Variables ------------------------------------------------------------------------------------------
135093 l_entered_amt_idx             NUMBER;
135094 l_accted_amt_idx              NUMBER;
135095 l_acc_rev_flag                VARCHAR2(1);
135096 l_accrual_line_num            NUMBER;
135097 l_tmp_amt                     NUMBER;
135098 l_acc_rev_natural_side_code   VARCHAR2(1);
135099 
135100 l_num_entries                 NUMBER;
135101 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
135102 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
135103 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
135104 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
135105 l_recog_line_1                NUMBER;
135106 l_recog_line_2                NUMBER;
135107 
135108 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
135109 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
135110 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
135111 
135112 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
135113 
135114 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
135115 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
135116 
135117 ---------------------------------------------------------------------------------------------------------------
135118 
135119 
135120 --
135121 -- bulk performance
135122 --
135123 l_balance_type_code           VARCHAR2(1);
135124 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
135125 l_log_module                  VARCHAR2(240);
135126 
135127 --
135128 -- Upgrade strategy
135129 --
135130 l_actual_upg_option           VARCHAR2(1);
135131 l_enc_upg_option           VARCHAR2(1);
135132 
135133 --
135134 BEGIN
135135 --
135136 IF g_log_enabled THEN
135137       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_225';
135138 END IF;
135139 --
135140 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135141 
135142       trace
135143          (p_msg      => 'BEGIN of AcctLineType_225'
135144          ,p_level    => C_LEVEL_PROCEDURE
135145          ,p_module   => l_log_module);
135146 
135147 END IF;
135148 --
135149 l_component_type             := 'AMB_JLT';
135150 l_component_code             := 'AP_RECOV_TAX_INV_ENC';
135151 l_component_type_code        := 'S';
135152 l_component_appl_id          :=  200;
135153 l_amb_context_code           := 'DEFAULT';
135154 l_entity_code                := 'AP_INVOICES';
135155 l_event_class_code           := 'INVOICES';
135156 l_event_type_code            := 'INVOICES_ALL';
135157 l_line_definition_owner_code := 'S';
135158 l_line_definition_code       := 'ENC_REV_INVOICES_ALL';
135159 --
135160 l_balance_type_code          := 'E';
135161 l_segment                     := NULL;
135162 l_ccid                        := NULL;
135163 l_adr_transaction_coa_id      := NULL;
135164 l_adr_accounting_coa_id       := NULL;
135165 l_adr_flexfield_segment_code  := NULL;
135166 l_adr_flex_value_set_id       := NULL;
135167 l_adr_value_type_code         := NULL;
135171 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
135168 l_adr_value_combination_id    := NULL;
135169 l_adr_value_segment_code      := NULL;
135170 
135172 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
135173 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
135174 l_budgetary_control_flag     := 'N';
135175 
135176 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
135177 l_bflow_applied_to_amt       := NULL; -- 5132302
135178 l_entered_amt_idx            := NULL;          -- 4262811
135179 l_accted_amt_idx             := NULL;          -- 4262811
135180 l_acc_rev_flag               := NULL;          -- 4262811
135181 l_accrual_line_num           := NULL;          -- 4262811
135182 l_tmp_amt                    := NULL;          -- 4262811
135183 --
135184  
135185 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
135186     l_balance_type_code <> 'B' THEN
135187 IF NVL(p_source_21,'
135188 ') =  'REC_TAX' AND 
135189 NVL(p_source_135,'
135190 ') <>  'Y' AND 
135191 NVL(p_source_86,'
135192 ') =  'Y' AND 
135193 NVL(p_source_87,'
135194 ') =  'Y'
135195  THEN 
135196 
135197    --
135198    XLA_AE_LINES_PKG.SetNewLine;
135199 
135200    p_balance_type_code          := l_balance_type_code;
135201    -- set the flag so later we will know whether the gain loss line needs to be created
135202    
135203    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
135204      p_actual_flag :='A';
135205    END IF;
135206 
135207    --
135208    -- bulk performance
135209    --
135210    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
135211                                       p_header_num   => 0); -- 4262811
135212    --
135213    -- set accounting line options
135214    --
135215    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
135216            p_natural_side_code          => 'C'
135217          , p_gain_or_loss_flag          => 'N'
135218          , p_gl_transfer_mode_code      => 'S'
135219          , p_acct_entry_type_code       => 'E'
135220          , p_switch_side_flag           => 'Y'
135221          , p_merge_duplicate_code       => 'A'
135222          );
135223    --
135224    l_acc_rev_natural_side_code := 'D';  -- 4262811
135225    -- 
135226    --
135227    -- set accounting line type info
135228    --
135229    xla_ae_lines_pkg.SetAcctLineType
135230       (p_component_type             => l_component_type
135231       ,p_event_type_code            => l_event_type_code
135232       ,p_line_definition_owner_code => l_line_definition_owner_code
135233       ,p_line_definition_code       => l_line_definition_code
135234       ,p_accounting_line_code       => l_component_code
135235       ,p_accounting_line_type_code  => l_component_type_code
135236       ,p_accounting_line_appl_id    => l_component_appl_id
135237       ,p_amb_context_code           => l_amb_context_code
135238       ,p_entity_code                => l_entity_code
135239       ,p_event_class_code           => l_event_class_code);
135240    --
135241    -- set accounting class
135242    --
135243    xla_ae_lines_pkg.SetAcctClass(
135244            p_accounting_class_code  => 'RTAX'
135245          , p_ae_header_id           => l_ae_header_id
135246          );
135247 
135248    --
135249    -- set rounding class
135250    --
135251    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
135252                       'RTAX';
135253 
135254    --
135255    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
135256    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
135257    --
135258    -- bulk performance
135259    --
135260    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
135261 
135262    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
135263       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
135264 
135265    -- 4955764
135266    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
135267       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
135268 
135269    -- 4458381 Public Sector Enh
135270    
135271    --
135272    -- set accounting attributes for the line type
135273    --
135274    l_entered_amt_idx := 24;
135275    l_accted_amt_idx  := 26;
135276    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
135277    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
135278    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
135279    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
135280    l_rec_acct_attrs.array_num_value(2)  := 
135281 xla_ae_sources_pkg.GetSystemSourceNum(
135282    p_source_code           => 'XLA_EVENT_APPL_ID'
135283  , p_source_type_code      => 'Y'
135284  , p_source_application_id =>  602
135285 );
135286    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
135287    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
135288    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
135289    l_rec_acct_attrs.array_char_value(4)  := 
135290 xla_ae_sources_pkg.GetSystemSourceChar(
135291    p_source_code           => 'XLA_ENTITY_CODE'
135292  , p_source_type_code      => 'Y'
135293  , p_source_application_id =>  602
135294 );
135295    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
135296    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
135297    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
135298    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
135299    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
135300    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
135301    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
135302    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
135303    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
135304    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
135305    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
135306    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
135307    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
135308    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
135309    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
135310    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
135311    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
135312    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
135316    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
135313    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
135314    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
135315    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
135317    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
135318    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
135319    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
135320    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
135321    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
135322    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
135323    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
135324    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
135325    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
135326    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
135327    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
135328    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
135329    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
135330    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
135331    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
135332    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
135333    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
135334    l_rec_acct_attrs.array_num_value(24)  := p_source_143;
135335    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
135336    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
135337    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
135338    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
135339    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
135340    l_rec_acct_attrs.array_date_value(27)  := p_source_65;
135341    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
135342    l_rec_acct_attrs.array_char_value(28)  := p_source_66;
135343    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
135344    l_rec_acct_attrs.array_date_value(29)  := p_source_67;
135345    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
135346    l_rec_acct_attrs.array_char_value(30)  := p_source_68;
135350    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
135347    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
135348    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
135349    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
135351    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
135352    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
135353    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
135354    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
135355    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
135356    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
135357    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
135358    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
135359    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
135360    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
135361    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
135362    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
135363    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
135364    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
135365 
135366    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
135367    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
135368 
135369    ---------------------------------------------------------------------------------------------------------------
135370    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
135371    ---------------------------------------------------------------------------------------------------------------
135372    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
135373 
135374    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
135375    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
135376 
135377    IF xla_accounting_cache_pkg.GetValueChar
135378          (p_source_code         => 'LEDGER_CATEGORY_CODE'
135379          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
135380    AND l_bflow_method_code = 'PRIOR_ENTRY'
135381 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
135382    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
135383          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
135384        )
135385    THEN
135386          xla_ae_lines_pkg.BflowUpgEntry
135387            (p_business_method_code    => l_bflow_method_code
135388            ,p_business_class_code     => l_bflow_class_code
135389            ,p_balance_type            => l_balance_type_code);
135390    ELSE
135391       NULL;
135392 XLA_AE_LINES_PKG.business_flow_validation(
135393                                 p_business_method_code     => l_bflow_method_code
135394                                ,p_business_class_code      => l_bflow_class_code
135395                                ,p_inherit_description_flag => l_inherit_desc_flag);
135396    END IF;
135397 
135398    --
135399    -- call analytical criteria
135400    --
135401    -- Inherited Analytical Criteria for business flow method of Prior Entry.
135402    --
135403    -- call description
135404    --
135405    -- No description or it is inherited.
135406    --
135407    -- call ADRs
135408    -- Bug 4922099
135409    --
135410    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
135411         (NVL(l_actual_upg_option, 'N') = 'O') OR
135412         (NVL(l_enc_upg_option, 'N') = 'O')
135413       )
135414    THEN
135415    NULL;
135416    --
135417    --
135418    
135419    --
135420    --
135421    END IF;
135422    --
135423    -- Bug 4922099
135424    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
135425           (NVL(l_enc_upg_option, 'N') = 'O')
135426         ) AND
135427         (l_bflow_method_code = 'PRIOR_ENTRY')
135428       )
135429    THEN
135430       IF
135431       --
135432       1 = 1
135433       --
135434       THEN
135435       xla_accounting_err_pkg.build_message
135436                                     (p_appli_s_name            => 'XLA'
135437                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
135438                                     ,p_token_1                 => 'LINE_NUMBER'
135439                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
135440                                     ,p_token_2                 => 'LINE_TYPE_NAME'
135441                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
135442                                                                              l_component_type
135443                                                                             ,l_component_code
135444                                                                             ,l_component_type_code
135445                                                                             ,l_component_appl_id
135446                                                                             ,l_amb_context_code
135447                                                                             ,l_entity_code
135448                                                                             ,l_event_class_code
135449                                                                            )
135450                                     ,p_token_3                 => 'OWNER'
135451                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
135452                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
135453                                                                           ,p_lookup_code    => l_component_type_code
135454                                                                          )
135455                                     ,p_token_4                 => 'PRODUCT_NAME'
135456                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
135457                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
135458                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
135459                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
135460                                     ,p_ae_header_id            =>  NULL
135461                                        );
135462 
135463         IF (C_LEVEL_ERROR>= g_log_level) THEN
135464                  trace
135465                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
135466                       ,p_level    => C_LEVEL_ERROR
135467                       ,p_module   => l_log_module);
135468         END IF;
135469       END IF;
135470    END IF;
135471    --
135472    --
135473    ------------------------------------------------------------------------------------------------
135474    -- 4219869 Business Flow
135475    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
135476    -- Prior Entry.  Currently, the following code is always generated.
135477    ------------------------------------------------------------------------------------------------
135478    -- No ValidateCurrentLine for business flow method of Prior Entry
135479 
135480    ------------------------------------------------------------------------------------
135481    -- 4219869 Business Flow
135482    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
135483    ------------------------------------------------------------------------------------
135484    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
135485 
135486    ----------------------------------------------------------------------------------
135487    -- 4219869 Business Flow
135488    -- Update journal entry status -- Need to generate this within IF <condition>
135489    ----------------------------------------------------------------------------------
135490    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
135491          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
135492          ,p_balance_type_code => l_balance_type_code
135493          );
135494 
135495    -------------------------------------------------------------------------------------------
135496    -- 4262811 - Generate the Accrual Reversal lines
135497    -------------------------------------------------------------------------------------------
135498    BEGIN
135499       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
135500                               (g_array_event(p_event_id).array_value_num('header_index'));
135501       IF l_acc_rev_flag IS NULL THEN
135502          l_acc_rev_flag := 'N';
135503       END IF;
135504    EXCEPTION
135505       WHEN OTHERS THEN
135506          l_acc_rev_flag := 'N';
135507    END;
135508    --
135509    IF (l_acc_rev_flag = 'Y') THEN
135510 
135511        -- 4645092  ------------------------------------------------------------------------------
135515 
135512        -- To allow MPA report to determine if it should generate report process
135513        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
135514        ------------------------------------------------------------------------------------------
135516        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
135517        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
135518    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
135519    -- call ADRs
135520    -- Bug 4922099
135521    --
135522    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
135523         (NVL(l_actual_upg_option, 'N') = 'O') OR
135524         (NVL(l_enc_upg_option, 'N') = 'O')
135525       )
135526    THEN
135527    NULL;
135528    --
135529    --
135530    
135531    --
135532    --
135533    END IF;
135534 
135535        --
135536        -- Update the line information that should be overwritten
135537        --
135538        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
135539                                          p_header_num   => 1);
135540        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
135541 
135542        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
135543 
135544        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
135545           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
135546        END IF;
135547 
135548       --
135549       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
135550       --
135551       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
135552           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
135553       ELSE
135554           ---------------------------------------------------------------------------------------------------
135555           -- 4262811a Switch Sign
135556           ---------------------------------------------------------------------------------------------------
135557           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
135558           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
135559                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
135560           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
135561                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
135562           -- 5132302
135563           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
135564                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
135565 
135566       END IF;
135567 
135568       -- 4955764
135569       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
135570       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
135571 
135572 
135573       XLA_AE_LINES_PKG.ValidateCurrentLine;
135574       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
135575 
135576       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
135577                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
135578                ,p_balance_type_code => l_balance_type_code);
135579 
135580    END IF;
135581 
135582    -----------------------------------------------------------------------------------------
135583    -- 4262811 Multiperiod Accounting
135584    -----------------------------------------------------------------------------------------
135585      -- No MPA option is assigned.
135586 
135587 
135588 END IF;
135589 END IF;
135590 --
135591 
135592 --
135593 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135594    trace
135595       (p_msg      => 'END of AcctLineType_225'
135596       ,p_level    => C_LEVEL_PROCEDURE
135597       ,p_module   => l_log_module);
135598 END IF;
135599 --
135603   WHEN OTHERS THEN
135600 EXCEPTION
135601   WHEN xla_exceptions_pkg.application_exception THEN
135602       RAISE;
135604        xla_exceptions_pkg.raise_message
135605            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_225');
135606 END AcctLineType_225;
135607 --
135608 
135609 ---------------------------------------
135610 --
135611 -- PRIVATE FUNCTION
135612 --         AcctLineType_226
135613 --
135614 ---------------------------------------
135615 PROCEDURE AcctLineType_226 (
135616   p_application_id        IN NUMBER
135617  ,p_event_id              IN NUMBER
135618  ,p_calculate_acctd_flag  IN VARCHAR2
135619  ,p_calculate_g_l_flag    IN VARCHAR2
135620  ,p_actual_flag           IN OUT VARCHAR2
135621  ,p_balance_type_code     OUT VARCHAR2
135622  ,p_gain_or_loss_ref      OUT VARCHAR2
135623  
135624 --Invoice Distribution Type
135625  , p_source_21            IN VARCHAR2
135626  , p_source_21_meaning    IN VARCHAR2
135627 --Accounting Reversal Indicator
135628  , p_source_41            IN VARCHAR2
135629 --Distribution Link Type
135630  , p_source_43            IN VARCHAR2
135631 --Allocation to Main Distribution Identifier
135632  , p_source_45            IN NUMBER
135633 --Invoice Identifier
135634  , p_source_46            IN NUMBER
135635 --Invoice Distribution Identifier
135636  , p_source_52            IN NUMBER
135637 --Payables Encumbrance Upgrade Credit Account
135638  , p_source_53            IN NUMBER
135639 --Payables Encumbrance Upgrade Credit Amount
135640  , p_source_54            IN NUMBER
135641 --Invoice Currency Code
135642  , p_source_55            IN VARCHAR2
135643 --Payables Encumbrance Upgrade Credit Base Amount
135644  , p_source_56            IN NUMBER
135645 --Payables Encumbrance Upgrade Debit Account
135646  , p_source_57            IN NUMBER
135647 --Payables Encumbrance Upgrade Debit Amount
135648  , p_source_58            IN NUMBER
135649 --Payables Encumbrance Upgrade Debit Base Amount
135650  , p_source_59            IN NUMBER
135651 --Payables Encumbrance Upgrade Option
135652  , p_source_60            IN VARCHAR2
135653 --Deferred Accounting End Date
135654  , p_source_65            IN DATE
135655 --Deferred Accounting Option
135656  , p_source_66            IN VARCHAR2
135657 --Deferred Accounting Start Date
135658  , p_source_67            IN DATE
135659 --Override Accounted Amount Indicator
135660  , p_source_68            IN VARCHAR2
135661  , p_source_68_meaning    IN VARCHAR2
135662 --Third Party Type
135663  , p_source_71            IN VARCHAR2
135664 --Parent Reversal Identifier
135665  , p_source_72            IN NUMBER
135666 --Invoice Distribution Statistical Amount
135667  , p_source_73            IN NUMBER
135668 --Invoice Distribution Tax Line Identifier
135669  , p_source_74            IN NUMBER
135670 --Invoice Distribution Tax Distribution Identifier from Tax
135671  , p_source_75            IN NUMBER
135672 --Invoice Distribution Summary Tax Line Identifier
135673  , p_source_76            IN NUMBER
135674 --Payables Upgrade Credit Encumbrance Type Identifier
135675  , p_source_77            IN NUMBER
135676 --Payables Upgrade Debit Encumbrance Type Identifier
135677  , p_source_78            IN NUMBER
135678 --Business Flow Accounts Payable Application Identifier
135679  , p_source_79            IN NUMBER
135680 --Business Flow Invoice Distribution Type
135681  , p_source_80            IN VARCHAR2
135682 --Business Flow Invoice Entity Code
135683  , p_source_81            IN VARCHAR2
135684 --Business Flow Invoice Distribution Identifier
135685  , p_source_82            IN NUMBER
135686 --Business Flow Invoice Identifier
135687  , p_source_83            IN NUMBER
135688 --Purchasing Encumbrance Option
135689  , p_source_86            IN VARCHAR2
135690  , p_source_86_meaning    IN VARCHAR2
135691 --Invoice Encumbered Option
135692  , p_source_87            IN VARCHAR2
135693  , p_source_87_meaning    IN VARCHAR2
135694 --Self-Assessed Tax Flag
135695  , p_source_135            IN VARCHAR2
135696  , p_source_135_meaning    IN VARCHAR2
135697 --Invoice Distribution Encumbrance Amount
135698  , p_source_143            IN NUMBER
135699 --Invoice Distribution Encumbrance Ledger Amount
135700  , p_source_144            IN NUMBER
135701 )
135702 IS
135703 
135704 l_component_type              VARCHAR2(80);
135705 l_component_code              VARCHAR2(30);
135706 l_component_type_code         VARCHAR2(1);
135707 l_component_appl_id           INTEGER;
135708 l_amb_context_code            VARCHAR2(30);
135709 l_entity_code                 VARCHAR2(30);
135710 l_event_class_code            VARCHAR2(30);
135711 l_ae_header_id                NUMBER;
135712 l_event_type_code             VARCHAR2(30);
135713 l_line_definition_code        VARCHAR2(30);
135714 l_line_definition_owner_code  VARCHAR2(1);
135715 --
135716 -- adr variables
135717 l_segment                     VARCHAR2(30);
135718 l_ccid                        NUMBER;
135719 l_adr_transaction_coa_id      NUMBER;
135720 l_adr_accounting_coa_id       NUMBER;
135721 l_adr_flexfield_segment_code  VARCHAR2(30);
135722 l_adr_flex_value_set_id       NUMBER;
135723 l_adr_value_type_code         VARCHAR2(30);
135724 l_adr_value_combination_id    NUMBER;
135725 l_adr_value_segment_code      VARCHAR2(30);
135726 
135727 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
135728 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
135729 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
135730 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
135731 
135735 l_acc_rev_flag                VARCHAR2(1);
135732 -- 4262811 Variables ------------------------------------------------------------------------------------------
135733 l_entered_amt_idx             NUMBER;
135734 l_accted_amt_idx              NUMBER;
135736 l_accrual_line_num            NUMBER;
135737 l_tmp_amt                     NUMBER;
135738 l_acc_rev_natural_side_code   VARCHAR2(1);
135739 
135740 l_num_entries                 NUMBER;
135741 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
135742 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
135743 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
135744 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
135745 l_recog_line_1                NUMBER;
135746 l_recog_line_2                NUMBER;
135747 
135748 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
135749 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
135750 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
135751 
135752 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
135753 
135754 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
135755 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
135756 
135757 ---------------------------------------------------------------------------------------------------------------
135758 
135759 
135760 --
135761 -- bulk performance
135762 --
135763 l_balance_type_code           VARCHAR2(1);
135764 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
135765 l_log_module                  VARCHAR2(240);
135766 
135767 --
135768 -- Upgrade strategy
135769 --
135770 l_actual_upg_option           VARCHAR2(1);
135771 l_enc_upg_option           VARCHAR2(1);
135772 
135773 --
135774 BEGIN
135775 --
135776 IF g_log_enabled THEN
135777       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_226';
135778 END IF;
135779 --
135780 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135781 
135782       trace
135783          (p_msg      => 'BEGIN of AcctLineType_226'
135784          ,p_level    => C_LEVEL_PROCEDURE
135785          ,p_module   => l_log_module);
135786 
135787 END IF;
135788 --
135789 l_component_type             := 'AMB_JLT';
135790 l_component_code             := 'AP_RECOV_TAX_PP_ENC';
135791 l_component_type_code        := 'S';
135792 l_component_appl_id          :=  200;
135793 l_amb_context_code           := 'DEFAULT';
135794 l_entity_code                := 'AP_INVOICES';
135795 l_event_class_code           := 'PREPAYMENTS';
135796 l_event_type_code            := 'PREPAYMENTS_ALL';
135797 l_line_definition_owner_code := 'S';
135798 l_line_definition_code       := 'ENC_REV_PREPAY_ALL';
135799 --
135800 l_balance_type_code          := 'E';
135801 l_segment                     := NULL;
135802 l_ccid                        := NULL;
135803 l_adr_transaction_coa_id      := NULL;
135804 l_adr_accounting_coa_id       := NULL;
135805 l_adr_flexfield_segment_code  := NULL;
135806 l_adr_flex_value_set_id       := NULL;
135807 l_adr_value_type_code         := NULL;
135808 l_adr_value_combination_id    := NULL;
135809 l_adr_value_segment_code      := NULL;
135810 
135811 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
135812 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
135813 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
135814 l_budgetary_control_flag     := 'N';
135815 
135816 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
135817 l_bflow_applied_to_amt       := NULL; -- 5132302
135818 l_entered_amt_idx            := NULL;          -- 4262811
135819 l_accted_amt_idx             := NULL;          -- 4262811
135820 l_acc_rev_flag               := NULL;          -- 4262811
135821 l_accrual_line_num           := NULL;          -- 4262811
135822 l_tmp_amt                    := NULL;          -- 4262811
135823 --
135824  
135825 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
135826     l_balance_type_code <> 'B' THEN
135827 IF NVL(p_source_21,'
135828 ') =  'REC_TAX' AND 
135829 NVL(p_source_135,'
135830 ') <>  'Y' AND 
135831 NVL(p_source_86,'
135832 ') =  'Y' AND 
135833 NVL(p_source_87,'
135834 ') =  'Y'
135835  THEN 
135836 
135837    --
135838    XLA_AE_LINES_PKG.SetNewLine;
135839 
135840    p_balance_type_code          := l_balance_type_code;
135841    -- set the flag so later we will know whether the gain loss line needs to be created
135842    
135843    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
135844      p_actual_flag :='A';
135845    END IF;
135846 
135847    --
135848    -- bulk performance
135849    --
135850    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
135851                                       p_header_num   => 0); -- 4262811
135852    --
135853    -- set accounting line options
135854    --
135855    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
135856            p_natural_side_code          => 'C'
135857          , p_gain_or_loss_flag          => 'N'
135858          , p_gl_transfer_mode_code      => 'S'
135859          , p_acct_entry_type_code       => 'E'
135860          , p_switch_side_flag           => 'Y'
135861          , p_merge_duplicate_code       => 'A'
135862          );
135863    --
135864    l_acc_rev_natural_side_code := 'D';  -- 4262811
135865    -- 
135866    --
135867    -- set accounting line type info
135868    --
135872       ,p_line_definition_owner_code => l_line_definition_owner_code
135869    xla_ae_lines_pkg.SetAcctLineType
135870       (p_component_type             => l_component_type
135871       ,p_event_type_code            => l_event_type_code
135873       ,p_line_definition_code       => l_line_definition_code
135874       ,p_accounting_line_code       => l_component_code
135875       ,p_accounting_line_type_code  => l_component_type_code
135876       ,p_accounting_line_appl_id    => l_component_appl_id
135877       ,p_amb_context_code           => l_amb_context_code
135878       ,p_entity_code                => l_entity_code
135879       ,p_event_class_code           => l_event_class_code);
135880    --
135881    -- set accounting class
135882    --
135883    xla_ae_lines_pkg.SetAcctClass(
135884            p_accounting_class_code  => 'RTAX'
135885          , p_ae_header_id           => l_ae_header_id
135886          );
135887 
135888    --
135889    -- set rounding class
135890    --
135891    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
135892                       'RTAX';
135893 
135894    --
135895    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
135896    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
135897    --
135898    -- bulk performance
135899    --
135900    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
135901 
135902    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
135903       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
135904 
135905    -- 4955764
135906    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
135907       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
135908 
135909    -- 4458381 Public Sector Enh
135910    
135911    --
135912    -- set accounting attributes for the line type
135913    --
135914    l_entered_amt_idx := 23;
135915    l_accted_amt_idx  := 25;
135916    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
135917    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
135918    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
135919    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
135920    l_rec_acct_attrs.array_num_value(2)  := 
135921 xla_ae_sources_pkg.GetSystemSourceNum(
135922    p_source_code           => 'XLA_EVENT_APPL_ID'
135923  , p_source_type_code      => 'Y'
135924  , p_source_application_id =>  602
135925 );
135926    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
135927    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
135928    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
135929    l_rec_acct_attrs.array_char_value(4)  := 
135930 xla_ae_sources_pkg.GetSystemSourceChar(
135931    p_source_code           => 'XLA_ENTITY_CODE'
135932  , p_source_type_code      => 'Y'
135933  , p_source_application_id =>  602
135934 );
135935    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
135936    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
135937    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
135938    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
135939    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
135940    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
135941    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
135942    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
135943    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
135944    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
135945    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
135946    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
135947    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
135948    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
135949    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
135950    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
135951    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
135952    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
135953    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
135954    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
135955    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
135956    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
135957    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
135958    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
135959    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
135960    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
135961    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
135962    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
135963    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
135964    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
135965    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
135966    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
135967    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
135968    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
135969    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
135970    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
135971    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
135972    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
135973    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
135974    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
135978    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
135975    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
135976    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
135977    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
135979    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
135980    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
135981    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
135982    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
135983    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
135984    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
135985    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
135986    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
135987    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
135988    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
135989    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
135990    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
135991    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
135992    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
135993    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
135994    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
135995    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
135996    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
135997    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
135998    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
135999    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
136000    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
136001    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
136002    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
136003 
136004    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
136005    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
136006 
136007    ---------------------------------------------------------------------------------------------------------------
136008    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
136009    ---------------------------------------------------------------------------------------------------------------
136010    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
136011 
136012    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
136013    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
136014 
136015    IF xla_accounting_cache_pkg.GetValueChar
136016          (p_source_code         => 'LEDGER_CATEGORY_CODE'
136017          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
136018    AND l_bflow_method_code = 'PRIOR_ENTRY'
136019 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
136020    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
136021          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
136022        )
136023    THEN
136024          xla_ae_lines_pkg.BflowUpgEntry
136025            (p_business_method_code    => l_bflow_method_code
136026            ,p_business_class_code     => l_bflow_class_code
136027            ,p_balance_type            => l_balance_type_code);
136028    ELSE
136029       NULL;
136030 XLA_AE_LINES_PKG.business_flow_validation(
136031                                 p_business_method_code     => l_bflow_method_code
136032                                ,p_business_class_code      => l_bflow_class_code
136033                                ,p_inherit_description_flag => l_inherit_desc_flag);
136034    END IF;
136035 
136036    --
136037    -- call analytical criteria
136038    --
136039    -- Inherited Analytical Criteria for business flow method of Prior Entry.
136040    --
136041    -- call description
136042    --
136043    -- No description or it is inherited.
136044    --
136045    -- call ADRs
136046    -- Bug 4922099
136047    --
136048    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
136049         (NVL(l_actual_upg_option, 'N') = 'O') OR
136050         (NVL(l_enc_upg_option, 'N') = 'O')
136051       )
136052    THEN
136053    NULL;
136054    --
136055    --
136056    
136057    --
136058    --
136059    END IF;
136060    --
136061    -- Bug 4922099
136062    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
136063           (NVL(l_enc_upg_option, 'N') = 'O')
136064         ) AND
136065         (l_bflow_method_code = 'PRIOR_ENTRY')
136066       )
136067    THEN
136068       IF
136069       --
136070       1 = 1
136071       --
136072       THEN
136073       xla_accounting_err_pkg.build_message
136074                                     (p_appli_s_name            => 'XLA'
136075                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
136076                                     ,p_token_1                 => 'LINE_NUMBER'
136077                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
136078                                     ,p_token_2                 => 'LINE_TYPE_NAME'
136079                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
136080                                                                              l_component_type
136081                                                                             ,l_component_code
136082                                                                             ,l_component_type_code
136083                                                                             ,l_component_appl_id
136087                                                                            )
136084                                                                             ,l_amb_context_code
136085                                                                             ,l_entity_code
136086                                                                             ,l_event_class_code
136088                                     ,p_token_3                 => 'OWNER'
136089                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
136090                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
136091                                                                           ,p_lookup_code    => l_component_type_code
136092                                                                          )
136093                                     ,p_token_4                 => 'PRODUCT_NAME'
136094                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
136095                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
136096                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
136097                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
136098                                     ,p_ae_header_id            =>  NULL
136099                                        );
136100 
136101         IF (C_LEVEL_ERROR>= g_log_level) THEN
136102                  trace
136103                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
136104                       ,p_level    => C_LEVEL_ERROR
136105                       ,p_module   => l_log_module);
136106         END IF;
136107       END IF;
136108    END IF;
136109    --
136110    --
136111    ------------------------------------------------------------------------------------------------
136112    -- 4219869 Business Flow
136113    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
136114    -- Prior Entry.  Currently, the following code is always generated.
136118    ------------------------------------------------------------------------------------
136115    ------------------------------------------------------------------------------------------------
136116    -- No ValidateCurrentLine for business flow method of Prior Entry
136117 
136119    -- 4219869 Business Flow
136120    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
136121    ------------------------------------------------------------------------------------
136125    -- 4219869 Business Flow
136122    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
136123 
136124    ----------------------------------------------------------------------------------
136126    -- Update journal entry status -- Need to generate this within IF <condition>
136127    ----------------------------------------------------------------------------------
136128    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
136129          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
136130          ,p_balance_type_code => l_balance_type_code
136131          );
136132 
136133    -------------------------------------------------------------------------------------------
136134    -- 4262811 - Generate the Accrual Reversal lines
136135    -------------------------------------------------------------------------------------------
136136    BEGIN
136137       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
136138                               (g_array_event(p_event_id).array_value_num('header_index'));
136139       IF l_acc_rev_flag IS NULL THEN
136140          l_acc_rev_flag := 'N';
136141       END IF;
136142    EXCEPTION
136143       WHEN OTHERS THEN
136144          l_acc_rev_flag := 'N';
136145    END;
136146    --
136147    IF (l_acc_rev_flag = 'Y') THEN
136148 
136149        -- 4645092  ------------------------------------------------------------------------------
136150        -- To allow MPA report to determine if it should generate report process
136151        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
136152        ------------------------------------------------------------------------------------------
136153 
136154        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
136155        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
136156    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
136157    -- call ADRs
136158    -- Bug 4922099
136159    --
136160    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
136161         (NVL(l_actual_upg_option, 'N') = 'O') OR
136162         (NVL(l_enc_upg_option, 'N') = 'O')
136163       )
136164    THEN
136165    NULL;
136166    --
136167    --
136168    
136169    --
136170    --
136171    END IF;
136172 
136173        --
136174        -- Update the line information that should be overwritten
136175        --
136176        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
136177                                          p_header_num   => 1);
136178        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
136179 
136180        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
136181 
136182        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
136183           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
136184        END IF;
136185 
136186       --
136187       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
136188       --
136189       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
136190           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
136191       ELSE
136192           ---------------------------------------------------------------------------------------------------
136193           -- 4262811a Switch Sign
136194           ---------------------------------------------------------------------------------------------------
136195           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
136196           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
136197                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136198           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
136199                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136200           -- 5132302
136201           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
136202                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136203 
136204       END IF;
136205 
136206       -- 4955764
136207       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
136208       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
136209 
136210 
136211       XLA_AE_LINES_PKG.ValidateCurrentLine;
136212       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
136213 
136214       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
136215                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
136216                ,p_balance_type_code => l_balance_type_code);
136217 
136218    END IF;
136219 
136220    -----------------------------------------------------------------------------------------
136221    -- 4262811 Multiperiod Accounting
136222    -----------------------------------------------------------------------------------------
136223      -- No MPA option is assigned.
136224 
136225 
136226 END IF;
136227 END IF;
136228 --
136229 
136230 --
136231 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136232    trace
136233       (p_msg      => 'END of AcctLineType_226'
136234       ,p_level    => C_LEVEL_PROCEDURE
136235       ,p_module   => l_log_module);
136236 END IF;
136237 --
136238 EXCEPTION
136239   WHEN xla_exceptions_pkg.application_exception THEN
136240       RAISE;
136241   WHEN OTHERS THEN
136245 --
136242        xla_exceptions_pkg.raise_message
136243            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_226');
136244 END AcctLineType_226;
136246 
136247 ---------------------------------------
136248 --
136249 -- PRIVATE FUNCTION
136250 --         AcctLineType_227
136251 --
136252 ---------------------------------------
136253 PROCEDURE AcctLineType_227 (
136254   p_application_id        IN NUMBER
136255  ,p_event_id              IN NUMBER
136256  ,p_calculate_acctd_flag  IN VARCHAR2
136257  ,p_calculate_g_l_flag    IN VARCHAR2
136259  ,p_balance_type_code     OUT VARCHAR2
136260  ,p_gain_or_loss_ref      OUT VARCHAR2
136261  
136262 --Invoice Distribution Description
136263  , p_source_1            IN VARCHAR2
136264 --Invoice Distribution Ledger Amount
136265  , p_source_9            IN NUMBER
136266 --Invoice Distribution Account
136267  , p_source_18            IN NUMBER
136268 --Invoice Distribution Type
136269  , p_source_21            IN VARCHAR2
136270  , p_source_21_meaning    IN VARCHAR2
136271 --Accounting Reversal Indicator
136272  , p_source_41            IN VARCHAR2
136273 --Distribution Link Type
136274  , p_source_43            IN VARCHAR2
136275 --Allocation to Main Distribution Identifier
136276  , p_source_45            IN NUMBER
136277 --Invoice Identifier
136278  , p_source_46            IN NUMBER
136279 --Invoice Distribution Identifier
136280  , p_source_52            IN NUMBER
136281 --Payables Encumbrance Upgrade Credit Account
136282  , p_source_53            IN NUMBER
136283 --Payables Encumbrance Upgrade Credit Amount
136284  , p_source_54            IN NUMBER
136285 --Invoice Currency Code
136286  , p_source_55            IN VARCHAR2
136287 --Payables Encumbrance Upgrade Credit Base Amount
136292  , p_source_58            IN NUMBER
136258  ,p_actual_flag           IN OUT VARCHAR2
136288  , p_source_56            IN NUMBER
136289 --Payables Encumbrance Upgrade Debit Account
136290  , p_source_57            IN NUMBER
136291 --Payables Encumbrance Upgrade Debit Amount
136293 --Payables Encumbrance Upgrade Debit Base Amount
136294  , p_source_59            IN NUMBER
136295 --Payables Encumbrance Upgrade Option
136296  , p_source_60            IN VARCHAR2
136297 --Invoice Distribution Amount
136298  , p_source_61            IN NUMBER
136299 --Deferred Accounting End Date
136300  , p_source_65            IN DATE
136301 --Deferred Accounting Option
136302  , p_source_66            IN VARCHAR2
136303 --Deferred Accounting Start Date
136304  , p_source_67            IN DATE
136305 --Override Accounted Amount Indicator
136306  , p_source_68            IN VARCHAR2
136307  , p_source_68_meaning    IN VARCHAR2
136308 --Invoice Supplier Identifier
136309  , p_source_69            IN NUMBER
136310 --Invoice Supplier Site Identifier
136311  , p_source_70            IN NUMBER
136312 --Third Party Type
136313  , p_source_71            IN VARCHAR2
136314 --Parent Reversal Identifier
136315  , p_source_72            IN NUMBER
136316 --Invoice Distribution Statistical Amount
136317  , p_source_73            IN NUMBER
136318 --Invoice Distribution Tax Line Identifier
136319  , p_source_74            IN NUMBER
136320 --Invoice Distribution Tax Distribution Identifier from Tax
136321  , p_source_75            IN NUMBER
136322 --Invoice Distribution Summary Tax Line Identifier
136323  , p_source_76            IN NUMBER
136324 --Payables Upgrade Credit Encumbrance Type Identifier
136325  , p_source_77            IN NUMBER
136326 --Payables Upgrade Debit Encumbrance Type Identifier
136327  , p_source_78            IN NUMBER
136328 --Business Flow Accounts Payable Application Identifier
136329  , p_source_79            IN NUMBER
136330 --Business Flow Invoice Distribution Type
136331  , p_source_80            IN VARCHAR2
136332 --Business Flow Invoice Entity Code
136333  , p_source_81            IN VARCHAR2
136334 --Business Flow Invoice Distribution Identifier
136335  , p_source_82            IN NUMBER
136336 --Business Flow Invoice Identifier
136337  , p_source_83            IN NUMBER
136338 --Deferred Recoverable Tax Option
136339  , p_source_130            IN VARCHAR2
136340  , p_source_130_meaning    IN VARCHAR2
136341 --Self-Assessed Tax Flag
136342  , p_source_135            IN VARCHAR2
136343  , p_source_135_meaning    IN VARCHAR2
136344 --Invoice Exchange Date
136345  , p_source_136            IN DATE
136346 --Invoice Exchange Rate
136347  , p_source_137            IN NUMBER
136348 --Invoice Exchange Rate Type
136349  , p_source_138            IN VARCHAR2
136350 )
136351 IS
136352 
136353 l_component_type              VARCHAR2(80);
136354 l_component_code              VARCHAR2(30);
136355 l_component_type_code         VARCHAR2(1);
136356 l_component_appl_id           INTEGER;
136357 l_amb_context_code            VARCHAR2(30);
136358 l_entity_code                 VARCHAR2(30);
136359 l_event_class_code            VARCHAR2(30);
136360 l_ae_header_id                NUMBER;
136361 l_event_type_code             VARCHAR2(30);
136362 l_line_definition_code        VARCHAR2(30);
136363 l_line_definition_owner_code  VARCHAR2(1);
136364 --
136365 -- adr variables
136366 l_segment                     VARCHAR2(30);
136367 l_ccid                        NUMBER;
136368 l_adr_transaction_coa_id      NUMBER;
136369 l_adr_accounting_coa_id       NUMBER;
136370 l_adr_flexfield_segment_code  VARCHAR2(30);
136371 l_adr_flex_value_set_id       NUMBER;
136372 l_adr_value_type_code         VARCHAR2(30);
136373 l_adr_value_combination_id    NUMBER;
136374 l_adr_value_segment_code      VARCHAR2(30);
136375 
136376 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
136377 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
136378 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
136379 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
136380 
136381 -- 4262811 Variables ------------------------------------------------------------------------------------------
136382 l_entered_amt_idx             NUMBER;
136383 l_accted_amt_idx              NUMBER;
136384 l_acc_rev_flag                VARCHAR2(1);
136385 l_accrual_line_num            NUMBER;
136386 l_tmp_amt                     NUMBER;
136387 l_acc_rev_natural_side_code   VARCHAR2(1);
136388 
136389 l_num_entries                 NUMBER;
136390 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
136391 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
136392 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
136393 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
136394 l_recog_line_1                NUMBER;
136395 l_recog_line_2                NUMBER;
136396 
136397 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
136398 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
136399 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
136400 
136401 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
136402 
136403 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
136404 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
136405 
136406 ---------------------------------------------------------------------------------------------------------------
136407 
136408 
136409 --
136410 -- bulk performance
136411 --
136412 l_balance_type_code           VARCHAR2(1);
136413 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
136414 l_log_module                  VARCHAR2(240);
136415 
136416 --
136417 -- Upgrade strategy
136418 --
136419 l_actual_upg_option           VARCHAR2(1);
136420 l_enc_upg_option           VARCHAR2(1);
136421 
136422 --
136423 BEGIN
136424 --
136425 IF g_log_enabled THEN
136426       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_227';
136427 END IF;
136428 --
136429 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136430 
136431       trace
136432          (p_msg      => 'BEGIN of AcctLineType_227'
136433          ,p_level    => C_LEVEL_PROCEDURE
136434          ,p_module   => l_log_module);
136435 
136436 END IF;
136437 --
136438 l_component_type             := 'AMB_JLT';
136439 l_component_code             := 'AP_RECOV_TAX_PREPAY';
136440 l_component_type_code        := 'S';
136441 l_component_appl_id          :=  200;
136442 l_amb_context_code           := 'DEFAULT';
136443 l_entity_code                := 'AP_INVOICES';
136444 l_event_class_code           := 'PREPAYMENTS';
136445 l_event_type_code            := 'PREPAYMENTS_ALL';
136446 l_line_definition_owner_code := 'S';
136447 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
136448 --
136449 l_balance_type_code          := 'A';
136450 l_segment                     := NULL;
136451 l_ccid                        := NULL;
136452 l_adr_transaction_coa_id      := NULL;
136453 l_adr_accounting_coa_id       := NULL;
136454 l_adr_flexfield_segment_code  := NULL;
136455 l_adr_flex_value_set_id       := NULL;
136456 l_adr_value_type_code         := NULL;
136457 l_adr_value_combination_id    := NULL;
136458 l_adr_value_segment_code      := NULL;
136459 
136460 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
136461 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
136462 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
136463 l_budgetary_control_flag     := 'N';
136464 
136465 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
136466 l_bflow_applied_to_amt       := NULL; -- 5132302
136467 l_entered_amt_idx            := NULL;          -- 4262811
136468 l_accted_amt_idx             := NULL;          -- 4262811
136469 l_acc_rev_flag               := NULL;          -- 4262811
136470 l_accrual_line_num           := NULL;          -- 4262811
136471 l_tmp_amt                    := NULL;          -- 4262811
136472 --
136473  
136474 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
136475     l_balance_type_code <> 'B' THEN
136476 IF NVL(p_source_21,'
136477 ') =  'REC_TAX' AND 
136478 NVL(p_source_130,'
136479 ') =  'IMMEDIATE' AND 
136480 NVL(p_source_135,'
136481 ') <>  'Y'
136482  THEN 
136483 
136487    p_balance_type_code          := l_balance_type_code;
136484    --
136485    XLA_AE_LINES_PKG.SetNewLine;
136486 
136488    -- set the flag so later we will know whether the gain loss line needs to be created
136489    
136490    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
136491      p_actual_flag :='A';
136492    END IF;
136493 
136494    --
136495    -- bulk performance
136496    --
136497    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
136498                                       p_header_num   => 0); -- 4262811
136499    --
136500    -- set accounting line options
136501    --
136502    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
136503            p_natural_side_code          => 'D'
136504          , p_gain_or_loss_flag          => 'N'
136505          , p_gl_transfer_mode_code      => 'S'
136506          , p_acct_entry_type_code       => 'A'
136507          , p_switch_side_flag           => 'Y'
136508          , p_merge_duplicate_code       => 'A'
136509          );
136510    --
136511    l_acc_rev_natural_side_code := 'C';  -- 4262811
136512    -- 
136513    --
136514    -- set accounting line type info
136515    --
136516    xla_ae_lines_pkg.SetAcctLineType
136517       (p_component_type             => l_component_type
136518       ,p_event_type_code            => l_event_type_code
136519       ,p_line_definition_owner_code => l_line_definition_owner_code
136520       ,p_line_definition_code       => l_line_definition_code
136521       ,p_accounting_line_code       => l_component_code
136522       ,p_accounting_line_type_code  => l_component_type_code
136523       ,p_accounting_line_appl_id    => l_component_appl_id
136524       ,p_amb_context_code           => l_amb_context_code
136525       ,p_entity_code                => l_entity_code
136526       ,p_event_class_code           => l_event_class_code);
136527    --
136528    -- set accounting class
136529    --
136530    xla_ae_lines_pkg.SetAcctClass(
136531            p_accounting_class_code  => 'RTAX'
136532          , p_ae_header_id           => l_ae_header_id
136533          );
136534 
136535    --
136536    -- set rounding class
136537    --
136538    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
136539                       'RTAX';
136540 
136541    --
136542    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
136543    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
136544    --
136545    -- bulk performance
136546    --
136547    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
136548 
136549    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
136550       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
136551 
136552    -- 4955764
136553    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
136554       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
136555 
136556    -- 4458381 Public Sector Enh
136557    
136558    --
136559    -- set accounting attributes for the line type
136560    --
136561    l_entered_amt_idx := 23;
136562    l_accted_amt_idx  := 28;
136563    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
136564    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
136565    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
136566    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
136567    l_rec_acct_attrs.array_num_value(2)  := 
136568 xla_ae_sources_pkg.GetSystemSourceNum(
136569    p_source_code           => 'XLA_EVENT_APPL_ID'
136570  , p_source_type_code      => 'Y'
136571  , p_source_application_id =>  602
136572 );
136573    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
136574    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
136575    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
136576    l_rec_acct_attrs.array_char_value(4)  := 
136577 xla_ae_sources_pkg.GetSystemSourceChar(
136578    p_source_code           => 'XLA_ENTITY_CODE'
136579  , p_source_type_code      => 'Y'
136580  , p_source_application_id =>  602
136581 );
136582    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
136583    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
136584    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
136585    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
136586    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
136587    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
136588    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
136589    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
136590    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
136591    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
136592    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
136593    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
136594    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
136595    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
136596    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
136597    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
136598    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
136599    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
136600    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
136601    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
136602    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
136603    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
136607    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
136604    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
136605    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
136606    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
136608    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
136609    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
136610    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
136611    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
136612    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
136613    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
136614    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
136615    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
136616    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
136617    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
136618    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
136619    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
136620    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
136621    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
136622    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
136623    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
136624    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
136625    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
136626    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
136627    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
136628    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
136629    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
136630    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
136631    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
136632    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
136633    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
136634    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
136635    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
136636    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
136637    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
136638    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
136639    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
136640    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
136641    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
136642    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
136643    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
136644    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
136645    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
136646    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
136647    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
136648    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
136649    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
136650    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
136651    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
136652    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
136653    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
136654    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
136655    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
136656    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
136657    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
136658    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
136659    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
136660 
136661    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
136662    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
136663 
136664    ---------------------------------------------------------------------------------------------------------------
136665    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
136666    ---------------------------------------------------------------------------------------------------------------
136667    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
136668 
136669    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
136670    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
136671 
136672    IF xla_accounting_cache_pkg.GetValueChar
136673          (p_source_code         => 'LEDGER_CATEGORY_CODE'
136674          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
136675    AND l_bflow_method_code = 'PRIOR_ENTRY'
136676 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
136677    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
136678          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
136679        )
136680    THEN
136681          xla_ae_lines_pkg.BflowUpgEntry
136682            (p_business_method_code    => l_bflow_method_code
136683            ,p_business_class_code     => l_bflow_class_code
136684            ,p_balance_type            => l_balance_type_code);
136685    ELSE
136686       NULL;
136687 -- No business flow processing for business flow method of NONE.
136688    END IF;
136689 
136690    --
136691    -- call analytical criteria
136692    --
136693    
136694    --
136695    -- call description
136696    --
136697    
136698 xla_ae_lines_pkg.SetLineDescription(
136699    p_ae_header_id => l_ae_header_id
136700   ,p_description  => Description_2 (
136701      p_application_id         => p_application_id
136702    , p_ae_header_id           => l_ae_header_id 
136706 
136703 , p_source_1 => p_source_1
136704    )
136705 );
136707 
136708    --
136709    -- call ADRs
136710    -- Bug 4922099
136711    --
136712    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
136713         (NVL(l_actual_upg_option, 'N') = 'O') OR
136714         (NVL(l_enc_upg_option, 'N') = 'O')
136715       )
136716    THEN
136717    NULL;
136718    --
136719    --
136720    
136721   l_ccid := AcctDerRule_32(
136722            p_application_id           => p_application_id
136723          , p_ae_header_id             => l_ae_header_id 
136724 , p_source_18 => p_source_18
136725          , x_transaction_coa_id       => l_adr_transaction_coa_id
136726          , x_accounting_coa_id        => l_adr_accounting_coa_id
136727          , x_value_type_code          => l_adr_value_type_code
136728          , p_side                     => 'NA'
136729    );
136730 
136731    xla_ae_lines_pkg.set_ccid(
136732     p_code_combination_id          => l_ccid
136733   , p_value_type_code              => l_adr_value_type_code
136734   , p_transaction_coa_id           => l_adr_transaction_coa_id
136735   , p_accounting_coa_id            => l_adr_accounting_coa_id
136736   , p_adr_code                     => 'AP_INVOICE_DIST'
136737   , p_adr_type_code                => 'S'
136738   , p_component_type               => l_component_type
136739   , p_component_code               => l_component_code
136740   , p_component_type_code          => l_component_type_code
136741   , p_component_appl_id            => l_component_appl_id
136742   , p_amb_context_code             => l_amb_context_code
136743   , p_side                         => 'NA'
136744   );
136745 
136746 
136747    --
136748    --
136749    END IF;
136750    --
136751    -- Bug 4922099
136752    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
136753           (NVL(l_enc_upg_option, 'N') = 'O')
136754         ) AND
136755         (l_bflow_method_code = 'PRIOR_ENTRY')
136756       )
136757    THEN
136758       IF
136759       --
136760       1 = 2
136761       --
136762       THEN
136763       xla_accounting_err_pkg.build_message
136764                                     (p_appli_s_name            => 'XLA'
136765                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
136766                                     ,p_token_1                 => 'LINE_NUMBER'
136767                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
136768                                     ,p_token_2                 => 'LINE_TYPE_NAME'
136769                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
136770                                                                              l_component_type
136771                                                                             ,l_component_code
136772                                                                             ,l_component_type_code
136773                                                                             ,l_component_appl_id
136774                                                                             ,l_amb_context_code
136775                                                                             ,l_entity_code
136776                                                                             ,l_event_class_code
136777                                                                            )
136778                                     ,p_token_3                 => 'OWNER'
136779                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
136780                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
136781                                                                           ,p_lookup_code    => l_component_type_code
136782                                                                          )
136783                                     ,p_token_4                 => 'PRODUCT_NAME'
136784                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
136785                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
136786                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
136787                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
136788                                     ,p_ae_header_id            =>  NULL
136789                                        );
136790 
136791         IF (C_LEVEL_ERROR>= g_log_level) THEN
136792                  trace
136793                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
136794                       ,p_level    => C_LEVEL_ERROR
136795                       ,p_module   => l_log_module);
136796         END IF;
136797       END IF;
136798    END IF;
136799    --
136800    --
136801    ------------------------------------------------------------------------------------------------
136802    -- 4219869 Business Flow
136803    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
136804    -- Prior Entry.  Currently, the following code is always generated.
136805    ------------------------------------------------------------------------------------------------
136806    XLA_AE_LINES_PKG.ValidateCurrentLine;
136807 
136808    ------------------------------------------------------------------------------------
136809    -- 4219869 Business Flow
136810    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
136811    ------------------------------------------------------------------------------------
136817    ----------------------------------------------------------------------------------
136812    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
136813 
136814    ----------------------------------------------------------------------------------
136815    -- 4219869 Business Flow
136816    -- Update journal entry status -- Need to generate this within IF <condition>
136818    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
136819          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
136820          ,p_balance_type_code => l_balance_type_code
136821          );
136822 
136823    -------------------------------------------------------------------------------------------
136824    -- 4262811 - Generate the Accrual Reversal lines
136825    -------------------------------------------------------------------------------------------
136826    BEGIN
136827       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
136828                               (g_array_event(p_event_id).array_value_num('header_index'));
136829       IF l_acc_rev_flag IS NULL THEN
136830          l_acc_rev_flag := 'N';
136831       END IF;
136832    EXCEPTION
136833       WHEN OTHERS THEN
136834          l_acc_rev_flag := 'N';
136835    END;
136836    --
136837    IF (l_acc_rev_flag = 'Y') THEN
136838 
136839        -- 4645092  ------------------------------------------------------------------------------
136840        -- To allow MPA report to determine if it should generate report process
136841        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
136842        ------------------------------------------------------------------------------------------
136843 
136844        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
136845        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
136846    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
136847    -- call ADRs
136848    -- Bug 4922099
136849    --
136850    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
136851         (NVL(l_actual_upg_option, 'N') = 'O') OR
136852         (NVL(l_enc_upg_option, 'N') = 'O')
136853       )
136854    THEN
136855    NULL;
136856    --
136857    --
136858    
136859   l_ccid := AcctDerRule_32(
136860            p_application_id           => p_application_id
136861          , p_ae_header_id             => l_ae_header_id 
136862 , p_source_18 => p_source_18
136863          , x_transaction_coa_id       => l_adr_transaction_coa_id
136864          , x_accounting_coa_id        => l_adr_accounting_coa_id
136865          , x_value_type_code          => l_adr_value_type_code
136866          , p_side                     => 'NA'
136867    );
136868 
136869    xla_ae_lines_pkg.set_ccid(
136870     p_code_combination_id          => l_ccid
136871   , p_value_type_code              => l_adr_value_type_code
136872   , p_transaction_coa_id           => l_adr_transaction_coa_id
136873   , p_accounting_coa_id            => l_adr_accounting_coa_id
136874   , p_adr_code                     => 'AP_INVOICE_DIST'
136875   , p_adr_type_code                => 'S'
136876   , p_component_type               => l_component_type
136877   , p_component_code               => l_component_code
136878   , p_component_type_code          => l_component_type_code
136879   , p_component_appl_id            => l_component_appl_id
136880   , p_amb_context_code             => l_amb_context_code
136881   , p_side                         => 'NA'
136882   );
136883 
136884 
136885    --
136886    --
136887    END IF;
136888 
136889        --
136890        -- Update the line information that should be overwritten
136891        --
136892        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
136893                                          p_header_num   => 1);
136894        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
136895 
136896        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
136897 
136898        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
136899           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
136900        END IF;
136901 
136902       --
136903       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
136904       --
136905       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
136906           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
136907       ELSE
136908           ---------------------------------------------------------------------------------------------------
136909           -- 4262811a Switch Sign
136910           ---------------------------------------------------------------------------------------------------
136914           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
136911           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
136912           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
136913                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136915                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136916           -- 5132302
136917           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
136918                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136919 
136920       END IF;
136921 
136922       -- 4955764
136923       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
136924       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
136925 
136926 
136927       XLA_AE_LINES_PKG.ValidateCurrentLine;
136928       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
136929 
136930       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
136931                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
136932                ,p_balance_type_code => l_balance_type_code);
136933 
136934    END IF;
136935 
136936    -----------------------------------------------------------------------------------------
136937    -- 4262811 Multiperiod Accounting
136938    -----------------------------------------------------------------------------------------
136939      -- No MPA option is assigned.
136940 
136941 
136942 END IF;
136943 END IF;
136944 --
136945 
136946 --
136947 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136948    trace
136949       (p_msg      => 'END of AcctLineType_227'
136950       ,p_level    => C_LEVEL_PROCEDURE
136951       ,p_module   => l_log_module);
136952 END IF;
136953 --
136954 EXCEPTION
136958        xla_exceptions_pkg.raise_message
136955   WHEN xla_exceptions_pkg.application_exception THEN
136956       RAISE;
136957   WHEN OTHERS THEN
136959            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_227');
136960 END AcctLineType_227;
136961 --
136962 
136963 ---------------------------------------
136964 --
136965 -- PRIVATE FUNCTION
136966 --         AcctLineType_228
136967 --
136968 ---------------------------------------
136969 PROCEDURE AcctLineType_228 (
136970   p_application_id        IN NUMBER
136971  ,p_event_id              IN NUMBER
136972  ,p_calculate_acctd_flag  IN VARCHAR2
136973  ,p_calculate_g_l_flag    IN VARCHAR2
136974  ,p_actual_flag           IN OUT VARCHAR2
136975  ,p_balance_type_code     OUT VARCHAR2
136976  ,p_gain_or_loss_ref      OUT VARCHAR2
136977  
136978 --Invoice Distribution Description
136979  , p_source_1            IN VARCHAR2
136980 --Automatic Offsets Value
136981  , p_source_3            IN VARCHAR2
136982  , p_source_3_meaning    IN VARCHAR2
136983 --Invoice Distribution Ledger Amount
136984  , p_source_9            IN NUMBER
136985 --Invoice Distribution Account
136986  , p_source_18            IN NUMBER
136987 --Invoice Distribution Type
136988  , p_source_21            IN VARCHAR2
136989  , p_source_21_meaning    IN VARCHAR2
136990 --Retainage Account
136991  , p_source_28            IN NUMBER
136992 --Retainage Related Item Distribution Account
136993  , p_source_30            IN NUMBER
136994 --Accounting Reversal Indicator
136995  , p_source_41            IN VARCHAR2
136996 --Distribution Link Type
136997  , p_source_43            IN VARCHAR2
136998 --Allocation to Main Distribution Identifier
136999  , p_source_45            IN NUMBER
137000 --Invoice Identifier
137001  , p_source_46            IN NUMBER
137002 --Invoice Distribution Identifier
137003  , p_source_52            IN NUMBER
137004 --Payables Encumbrance Upgrade Credit Account
137008 --Invoice Currency Code
137005  , p_source_53            IN NUMBER
137006 --Payables Encumbrance Upgrade Credit Amount
137007  , p_source_54            IN NUMBER
137009  , p_source_55            IN VARCHAR2
137010 --Payables Encumbrance Upgrade Credit Base Amount
137011  , p_source_56            IN NUMBER
137012 --Payables Encumbrance Upgrade Debit Account
137013  , p_source_57            IN NUMBER
137014 --Payables Encumbrance Upgrade Debit Amount
137015  , p_source_58            IN NUMBER
137016 --Payables Encumbrance Upgrade Debit Base Amount
137017  , p_source_59            IN NUMBER
137018 --Payables Encumbrance Upgrade Option
137019  , p_source_60            IN VARCHAR2
137020 --Invoice Distribution Amount
137021  , p_source_61            IN NUMBER
137022 --Deferred Accounting End Date
137023  , p_source_65            IN DATE
137024 --Deferred Accounting Option
137025  , p_source_66            IN VARCHAR2
137026 --Deferred Accounting Start Date
137027  , p_source_67            IN DATE
137028 --Override Accounted Amount Indicator
137029  , p_source_68            IN VARCHAR2
137030  , p_source_68_meaning    IN VARCHAR2
137031 --Invoice Supplier Identifier
137032  , p_source_69            IN NUMBER
137033 --Invoice Supplier Site Identifier
137034  , p_source_70            IN NUMBER
137035 --Third Party Type
137036  , p_source_71            IN VARCHAR2
137037 --Parent Reversal Identifier
137038  , p_source_72            IN NUMBER
137039 --Invoice Distribution Statistical Amount
137040  , p_source_73            IN NUMBER
137041 --Invoice Distribution Tax Line Identifier
137042  , p_source_74            IN NUMBER
137043 --Invoice Distribution Tax Distribution Identifier from Tax
137044  , p_source_75            IN NUMBER
137045 --Invoice Distribution Summary Tax Line Identifier
137046  , p_source_76            IN NUMBER
137047 --Payables Upgrade Credit Encumbrance Type Identifier
137048  , p_source_77            IN NUMBER
137049 --Payables Upgrade Debit Encumbrance Type Identifier
137050  , p_source_78            IN NUMBER
137051 --Business Flow Accounts Payable Application Identifier
137052  , p_source_79            IN NUMBER
137053 --Business Flow Invoice Distribution Type
137054  , p_source_80            IN VARCHAR2
137055 --Business Flow Invoice Entity Code
137056  , p_source_81            IN VARCHAR2
137057 --Business Flow Invoice Distribution Identifier
137058  , p_source_82            IN NUMBER
137059 --Business Flow Invoice Identifier
137060  , p_source_83            IN NUMBER
137061 --Invoice Exchange Date
137062  , p_source_136            IN DATE
137063 --Invoice Exchange Rate
137064  , p_source_137            IN NUMBER
137065 --Invoice Exchange Rate Type
137066  , p_source_138            IN VARCHAR2
137067 --Invoice Type
137068  , p_source_159            IN VARCHAR2
137069  , p_source_159_meaning    IN VARCHAR2
137070 )
137071 IS
137072 
137073 l_component_type              VARCHAR2(80);
137074 l_component_code              VARCHAR2(30);
137075 l_component_type_code         VARCHAR2(1);
137076 l_component_appl_id           INTEGER;
137077 l_amb_context_code            VARCHAR2(30);
137078 l_entity_code                 VARCHAR2(30);
137079 l_event_class_code            VARCHAR2(30);
137080 l_ae_header_id                NUMBER;
137081 l_event_type_code             VARCHAR2(30);
137082 l_line_definition_code        VARCHAR2(30);
137083 l_line_definition_owner_code  VARCHAR2(1);
137084 --
137085 -- adr variables
137086 l_segment                     VARCHAR2(30);
137087 l_ccid                        NUMBER;
137088 l_adr_transaction_coa_id      NUMBER;
137089 l_adr_accounting_coa_id       NUMBER;
137090 l_adr_flexfield_segment_code  VARCHAR2(30);
137091 l_adr_flex_value_set_id       NUMBER;
137092 l_adr_value_type_code         VARCHAR2(30);
137093 l_adr_value_combination_id    NUMBER;
137094 l_adr_value_segment_code      VARCHAR2(30);
137095 
137096 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
137097 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
137098 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
137099 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
137100 
137101 -- 4262811 Variables ------------------------------------------------------------------------------------------
137102 l_entered_amt_idx             NUMBER;
137103 l_accted_amt_idx              NUMBER;
137104 l_acc_rev_flag                VARCHAR2(1);
137105 l_accrual_line_num            NUMBER;
137106 l_tmp_amt                     NUMBER;
137107 l_acc_rev_natural_side_code   VARCHAR2(1);
137108 
137109 l_num_entries                 NUMBER;
137110 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
137111 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
137112 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
137116 
137113 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
137114 l_recog_line_1                NUMBER;
137115 l_recog_line_2                NUMBER;
137120 
137117 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
137118 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
137119 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
137121 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
137122 
137123 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
137124 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
137125 
137126 ---------------------------------------------------------------------------------------------------------------
137127 
137128 
137129 --
137130 -- bulk performance
137131 --
137132 l_balance_type_code           VARCHAR2(1);
137133 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
137134 l_log_module                  VARCHAR2(240);
137135 
137136 --
137137 -- Upgrade strategy
137138 --
137139 l_actual_upg_option           VARCHAR2(1);
137140 l_enc_upg_option           VARCHAR2(1);
137141 
137142 --
137143 BEGIN
137144 --
137145 IF g_log_enabled THEN
137146       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_228';
137147 END IF;
137148 --
137149 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137150 
137151       trace
137152          (p_msg      => 'BEGIN of AcctLineType_228'
137153          ,p_level    => C_LEVEL_PROCEDURE
137154          ,p_module   => l_log_module);
137155 
137156 END IF;
137157 --
137158 l_component_type             := 'AMB_JLT';
137159 l_component_code             := 'AP_RETAINAGE_ACC';
137160 l_component_type_code        := 'S';
137161 l_component_appl_id          :=  200;
137162 l_amb_context_code           := 'DEFAULT';
137163 l_entity_code                := 'AP_INVOICES';
137164 l_event_class_code           := 'INVOICES';
137165 l_event_type_code            := 'INVOICES_ALL';
137166 l_line_definition_owner_code := 'S';
137167 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
137168 --
137169 l_balance_type_code          := 'A';
137170 l_segment                     := NULL;
137171 l_ccid                        := NULL;
137172 l_adr_transaction_coa_id      := NULL;
137173 l_adr_accounting_coa_id       := NULL;
137174 l_adr_flexfield_segment_code  := NULL;
137175 l_adr_flex_value_set_id       := NULL;
137176 l_adr_value_type_code         := NULL;
137177 l_adr_value_combination_id    := NULL;
137178 l_adr_value_segment_code      := NULL;
137179 
137180 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
137181 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
137182 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
137183 l_budgetary_control_flag     := 'N';
137184 
137185 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
137186 l_bflow_applied_to_amt       := NULL; -- 5132302
137187 l_entered_amt_idx            := NULL;          -- 4262811
137188 l_accted_amt_idx             := NULL;          -- 4262811
137189 l_acc_rev_flag               := NULL;          -- 4262811
137190 l_accrual_line_num           := NULL;          -- 4262811
137191 l_tmp_amt                    := NULL;          -- 4262811
137192 --
137193  
137194 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
137195     l_balance_type_code <> 'B' THEN
137196 IF NVL(p_source_159,'
137197 ') =  'STANDARD' AND 
137198 NVL(p_source_21,'
137199 ') =  'RETAINAGE'
137200  THEN 
137201 
137202    --
137203    XLA_AE_LINES_PKG.SetNewLine;
137204 
137205    p_balance_type_code          := l_balance_type_code;
137206    -- set the flag so later we will know whether the gain loss line needs to be created
137207    
137208    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
137209      p_actual_flag :='A';
137210    END IF;
137211 
137212    --
137213    -- bulk performance
137214    --
137215    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
137216                                       p_header_num   => 0); -- 4262811
137217    --
137218    -- set accounting line options
137219    --
137220    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
137221            p_natural_side_code          => 'D'
137222          , p_gain_or_loss_flag          => 'N'
137223          , p_gl_transfer_mode_code      => 'S'
137224          , p_acct_entry_type_code       => 'A'
137225          , p_switch_side_flag           => 'Y'
137226          , p_merge_duplicate_code       => 'A'
137227          );
137228    --
137229    l_acc_rev_natural_side_code := 'C';  -- 4262811
137230    -- 
137231    --
137232    -- set accounting line type info
137233    --
137234    xla_ae_lines_pkg.SetAcctLineType
137235       (p_component_type             => l_component_type
137236       ,p_event_type_code            => l_event_type_code
137237       ,p_line_definition_owner_code => l_line_definition_owner_code
137238       ,p_line_definition_code       => l_line_definition_code
137239       ,p_accounting_line_code       => l_component_code
137240       ,p_accounting_line_type_code  => l_component_type_code
137241       ,p_accounting_line_appl_id    => l_component_appl_id
137242       ,p_amb_context_code           => l_amb_context_code
137243       ,p_entity_code                => l_entity_code
137244       ,p_event_class_code           => l_event_class_code);
137245    --
137246    -- set accounting class
137247    --
137248    xla_ae_lines_pkg.SetAcctClass(
137249            p_accounting_class_code  => 'RETAINAGE'
137250          , p_ae_header_id           => l_ae_header_id
137251          );
137252 
137253    --
137254    -- set rounding class
137255    --
137256    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
137257                       'RETAINAGE';
137258 
137259    --
137260    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
137261    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
137262    --
137263    -- bulk performance
137264    --
137265    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
137266 
137267    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
137268       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
137269 
137270    -- 4955764
137271    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
137275    
137272       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
137273 
137274    -- 4458381 Public Sector Enh
137276    --
137277    -- set accounting attributes for the line type
137278    --
137279    l_entered_amt_idx := 24;
137280    l_accted_amt_idx  := 29;
137281    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
137282    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
137283    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
137284    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
137285    l_rec_acct_attrs.array_num_value(2)  := 
137286 xla_ae_sources_pkg.GetSystemSourceNum(
137287    p_source_code           => 'XLA_EVENT_APPL_ID'
137288  , p_source_type_code      => 'Y'
137289  , p_source_application_id =>  602
137290 );
137291    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
137292    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
137293    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
137294    l_rec_acct_attrs.array_char_value(4)  := 
137295 xla_ae_sources_pkg.GetSystemSourceChar(
137296    p_source_code           => 'XLA_ENTITY_CODE'
137297  , p_source_type_code      => 'Y'
137298  , p_source_application_id =>  602
137299 );
137300    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
137301    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
137302    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
137303    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
137304    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
137305    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
137306    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
137307    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
137308    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
137309    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
137310    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
137311    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
137312    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
137313    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
137314    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
137315    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
137316    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
137317    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
137318    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
137319    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
137320    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
137321    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
137322    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
137323    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
137324    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
137325    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
137326    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
137327    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
137328    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
137329    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
137330    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
137331    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
137332    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
137333    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
137334    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
137335    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
137336    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
137337    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
137338    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
137339    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
137340    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
137341    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
137342    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
137343    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
137344    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
137345    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
137346    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
137347    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
137348    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
137349    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
137350    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
137351    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
137352    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
137353    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
137354    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
137355    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
137356    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
137357    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
137358    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
137359    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
137360    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
137361    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
137362    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
137366    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
137363    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
137364    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
137365    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
137367    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
137368    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
137369    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
137370    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
137371    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
137372    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
137373    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
137374    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
137375    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
137376    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
137377    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
137378    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
137379    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
137380 
137381    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
137385    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
137382    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
137383 
137384    ---------------------------------------------------------------------------------------------------------------
137386    ---------------------------------------------------------------------------------------------------------------
137387    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
137388 
137389    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
137390    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
137391 
137392    IF xla_accounting_cache_pkg.GetValueChar
137393          (p_source_code         => 'LEDGER_CATEGORY_CODE'
137394          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
137395    AND l_bflow_method_code = 'PRIOR_ENTRY'
137396 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
137397    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
137398          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
137399        )
137400    THEN
137401          xla_ae_lines_pkg.BflowUpgEntry
137402            (p_business_method_code    => l_bflow_method_code
137403            ,p_business_class_code     => l_bflow_class_code
137404            ,p_balance_type            => l_balance_type_code);
137405    ELSE
137406       NULL;
137407 -- No business flow processing for business flow method of NONE.
137408    END IF;
137409 
137410    --
137411    -- call analytical criteria
137412    --
137413    
137414    --
137415    -- call description
137416    --
137417    
137418 xla_ae_lines_pkg.SetLineDescription(
137419    p_ae_header_id => l_ae_header_id
137420   ,p_description  => Description_2 (
137421      p_application_id         => p_application_id
137422    , p_ae_header_id           => l_ae_header_id 
137423 , p_source_1 => p_source_1
137424    )
137425 );
137426 
137427 
137428    --
137429    -- call ADRs
137430    -- Bug 4922099
137431    --
137432    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
137433         (NVL(l_actual_upg_option, 'N') = 'O') OR
137434         (NVL(l_enc_upg_option, 'N') = 'O')
137435       )
137436    THEN
137437    NULL;
137438    --
137439    --
137440    
137441   l_ccid := AcctDerRule_39(
137442            p_application_id           => p_application_id
137443          , p_ae_header_id             => l_ae_header_id 
137444 , p_source_3 => p_source_3
137445 , p_source_3_meaning => p_source_3_meaning
137446 , p_source_18 => p_source_18
137447 , p_source_30 => p_source_30
137448          , x_transaction_coa_id       => l_adr_transaction_coa_id
137449          , x_accounting_coa_id        => l_adr_accounting_coa_id
137450          , x_value_type_code          => l_adr_value_type_code
137451          , p_side                     => 'NA'
137452    );
137453 
137454    xla_ae_lines_pkg.set_ccid(
137455     p_code_combination_id          => l_ccid
137456   , p_value_type_code              => l_adr_value_type_code
137457   , p_transaction_coa_id           => l_adr_transaction_coa_id
137458   , p_accounting_coa_id            => l_adr_accounting_coa_id
137459   , p_adr_code                     => 'AP_RETAINAGE'
137460   , p_adr_type_code                => 'S'
137461   , p_component_type               => l_component_type
137462   , p_component_code               => l_component_code
137466   , p_side                         => 'NA'
137463   , p_component_type_code          => l_component_type_code
137464   , p_component_appl_id            => l_component_appl_id
137465   , p_amb_context_code             => l_amb_context_code
137467   );
137468 
137469 
137470    l_segment := AcctDerRule_18(
137471            p_application_id           => p_application_id
137472          , p_ae_header_id             => l_ae_header_id 
137473 , p_source_28 => p_source_28
137474          , x_transaction_coa_id       => l_adr_transaction_coa_id
137475          , x_accounting_coa_id        => l_adr_accounting_coa_id
137476          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
137477          , x_flex_value_set_id        => l_adr_flex_value_set_id
137478          , x_value_type_code          => l_adr_value_type_code
137479          , x_value_combination_id     => l_adr_value_combination_id
137480          , x_value_segment_code       => l_adr_value_segment_code
137481          , p_side                     => 'NA'
137482          , p_override_seg_flag        => 'Y'
137483    );
137484 
137485    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
137486 
137487       xla_ae_lines_pkg.set_segment(
137488           p_to_segment_code         => 'GL_ACCOUNT'
137489         , p_segment_value           => l_segment
137490         , p_from_segment_code       => l_adr_value_segment_code
137491         , p_from_combination_id     => l_adr_value_combination_id
137492         , p_value_type_code         => l_adr_value_type_code
137493         , p_transaction_coa_id      => l_adr_transaction_coa_id
137494         , p_accounting_coa_id       => l_adr_accounting_coa_id
137495         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
137496         , p_flex_value_set_id       => l_adr_flex_value_set_id
137497         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
137498         , p_adr_type_code           => 'S'
137499         , p_component_type          => l_component_type
137500         , p_component_code          => l_component_code
137501         , p_component_type_code     => l_component_type_code
137502         , p_component_appl_id       => l_component_appl_id
137503         , p_amb_context_code        => l_amb_context_code
137504         , p_entity_code             => 'AP_INVOICES'
137505         , p_event_class_code        => 'INVOICES'
137506         , p_side                    => 'NA'
137507         );
137508 
137509   END IF;
137510 
137511    l_segment := AcctDerRule_23(
137512            p_application_id           => p_application_id
137513          , p_ae_header_id             => l_ae_header_id 
137514 , p_source_3 => p_source_3
137515 , p_source_3_meaning => p_source_3_meaning
137516 , p_source_30 => p_source_30
137517          , x_transaction_coa_id       => l_adr_transaction_coa_id
137518          , x_accounting_coa_id        => l_adr_accounting_coa_id
137519          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
137520          , x_flex_value_set_id        => l_adr_flex_value_set_id
137521          , x_value_type_code          => l_adr_value_type_code
137522          , x_value_combination_id     => l_adr_value_combination_id
137523          , x_value_segment_code       => l_adr_value_segment_code
137527 
137524          , p_side                     => 'NA'
137525          , p_override_seg_flag        => 'Y'
137526    );
137528    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
137529 
137530       xla_ae_lines_pkg.set_segment(
137531           p_to_segment_code         => 'GL_BALANCING'
137532         , p_segment_value           => l_segment
137533         , p_from_segment_code       => l_adr_value_segment_code
137534         , p_from_combination_id     => l_adr_value_combination_id
137535         , p_value_type_code         => l_adr_value_type_code
137536         , p_transaction_coa_id      => l_adr_transaction_coa_id
137537         , p_accounting_coa_id       => l_adr_accounting_coa_id
137538         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
137539         , p_flex_value_set_id       => l_adr_flex_value_set_id
137540         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
137541         , p_adr_type_code           => 'S'
137542         , p_component_type          => l_component_type
137543         , p_component_code          => l_component_code
137544         , p_component_type_code     => l_component_type_code
137545         , p_component_appl_id       => l_component_appl_id
137546         , p_amb_context_code        => l_amb_context_code
137547         , p_entity_code             => 'AP_INVOICES'
137548         , p_event_class_code        => 'INVOICES'
137549         , p_side                    => 'NA'
137550         );
137551 
137552   END IF;
137553 
137554    --
137555    --
137556    END IF;
137557    --
137558    -- Bug 4922099
137559    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
137560           (NVL(l_enc_upg_option, 'N') = 'O')
137561         ) AND
137562         (l_bflow_method_code = 'PRIOR_ENTRY')
137563       )
137564    THEN
137565       IF
137566       --
137567       1 = 2
137568       --
137569       THEN
137570       xla_accounting_err_pkg.build_message
137571                                     (p_appli_s_name            => 'XLA'
137572                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
137573                                     ,p_token_1                 => 'LINE_NUMBER'
137574                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
137575                                     ,p_token_2                 => 'LINE_TYPE_NAME'
137576                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
137577                                                                              l_component_type
137578                                                                             ,l_component_code
137579                                                                             ,l_component_type_code
137580                                                                             ,l_component_appl_id
137581                                                                             ,l_amb_context_code
137582                                                                             ,l_entity_code
137583                                                                             ,l_event_class_code
137584                                                                            )
137585                                     ,p_token_3                 => 'OWNER'
137586                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
137587                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
137588                                                                           ,p_lookup_code    => l_component_type_code
137589                                                                          )
137590                                     ,p_token_4                 => 'PRODUCT_NAME'
137591                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
137592                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
137593                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
137594                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
137595                                     ,p_ae_header_id            =>  NULL
137596                                        );
137597 
137598         IF (C_LEVEL_ERROR>= g_log_level) THEN
137599                  trace
137600                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
137601                       ,p_level    => C_LEVEL_ERROR
137602                       ,p_module   => l_log_module);
137603         END IF;
137604       END IF;
137605    END IF;
137606    --
137607    --
137608    ------------------------------------------------------------------------------------------------
137609    -- 4219869 Business Flow
137610    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
137611    -- Prior Entry.  Currently, the following code is always generated.
137615    ------------------------------------------------------------------------------------
137612    ------------------------------------------------------------------------------------------------
137613    XLA_AE_LINES_PKG.ValidateCurrentLine;
137614 
137616    -- 4219869 Business Flow
137617    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
137618    ------------------------------------------------------------------------------------
137619    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
137620 
137621    ----------------------------------------------------------------------------------
137622    -- 4219869 Business Flow
137623    -- Update journal entry status -- Need to generate this within IF <condition>
137624    ----------------------------------------------------------------------------------
137625    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
137626          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
137627          ,p_balance_type_code => l_balance_type_code
137628          );
137629 
137630    -------------------------------------------------------------------------------------------
137631    -- 4262811 - Generate the Accrual Reversal lines
137632    -------------------------------------------------------------------------------------------
137633    BEGIN
137634       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
137635                               (g_array_event(p_event_id).array_value_num('header_index'));
137636       IF l_acc_rev_flag IS NULL THEN
137637          l_acc_rev_flag := 'N';
137638       END IF;
137639    EXCEPTION
137640       WHEN OTHERS THEN
137641          l_acc_rev_flag := 'N';
137642    END;
137643    --
137644    IF (l_acc_rev_flag = 'Y') THEN
137645 
137649        ------------------------------------------------------------------------------------------
137646        -- 4645092  ------------------------------------------------------------------------------
137647        -- To allow MPA report to determine if it should generate report process
137648        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
137650 
137651        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
137652        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
137653    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
137654    -- call ADRs
137655    -- Bug 4922099
137656    --
137657    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
137658         (NVL(l_actual_upg_option, 'N') = 'O') OR
137659         (NVL(l_enc_upg_option, 'N') = 'O')
137660       )
137661    THEN
137662    NULL;
137663    --
137664    --
137665    
137666   l_ccid := AcctDerRule_39(
137667            p_application_id           => p_application_id
137668          , p_ae_header_id             => l_ae_header_id 
137669 , p_source_3 => p_source_3
137670 , p_source_3_meaning => p_source_3_meaning
137671 , p_source_18 => p_source_18
137672 , p_source_30 => p_source_30
137673          , x_transaction_coa_id       => l_adr_transaction_coa_id
137674          , x_accounting_coa_id        => l_adr_accounting_coa_id
137675          , x_value_type_code          => l_adr_value_type_code
137676          , p_side                     => 'NA'
137677    );
137678 
137679    xla_ae_lines_pkg.set_ccid(
137680     p_code_combination_id          => l_ccid
137681   , p_value_type_code              => l_adr_value_type_code
137682   , p_transaction_coa_id           => l_adr_transaction_coa_id
137683   , p_accounting_coa_id            => l_adr_accounting_coa_id
137684   , p_adr_code                     => 'AP_RETAINAGE'
137685   , p_adr_type_code                => 'S'
137686   , p_component_type               => l_component_type
137687   , p_component_code               => l_component_code
137688   , p_component_type_code          => l_component_type_code
137689   , p_component_appl_id            => l_component_appl_id
137690   , p_amb_context_code             => l_amb_context_code
137691   , p_side                         => 'NA'
137692   );
137693 
137694 
137695    l_segment := AcctDerRule_18(
137696            p_application_id           => p_application_id
137697          , p_ae_header_id             => l_ae_header_id 
137698 , p_source_28 => p_source_28
137699          , x_transaction_coa_id       => l_adr_transaction_coa_id
137700          , x_accounting_coa_id        => l_adr_accounting_coa_id
137701          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
137702          , x_flex_value_set_id        => l_adr_flex_value_set_id
137703          , x_value_type_code          => l_adr_value_type_code
137704          , x_value_combination_id     => l_adr_value_combination_id
137705          , x_value_segment_code       => l_adr_value_segment_code
137706          , p_side                     => 'NA'
137707          , p_override_seg_flag        => 'Y'
137708    );
137709 
137713           p_to_segment_code         => 'GL_ACCOUNT'
137710    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
137711 
137712       xla_ae_lines_pkg.set_segment(
137714         , p_segment_value           => l_segment
137715         , p_from_segment_code       => l_adr_value_segment_code
137716         , p_from_combination_id     => l_adr_value_combination_id
137717         , p_value_type_code         => l_adr_value_type_code
137718         , p_transaction_coa_id      => l_adr_transaction_coa_id
137719         , p_accounting_coa_id       => l_adr_accounting_coa_id
137720         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
137721         , p_flex_value_set_id       => l_adr_flex_value_set_id
137722         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
137723         , p_adr_type_code           => 'S'
137724         , p_component_type          => l_component_type
137725         , p_component_code          => l_component_code
137726         , p_component_type_code     => l_component_type_code
137727         , p_component_appl_id       => l_component_appl_id
137728         , p_amb_context_code        => l_amb_context_code
137729         , p_entity_code             => 'AP_INVOICES'
137730         , p_event_class_code        => 'INVOICES'
137731         , p_side                    => 'NA'
137732         );
137733 
137734   END IF;
137735 
137736    l_segment := AcctDerRule_23(
137737            p_application_id           => p_application_id
137738          , p_ae_header_id             => l_ae_header_id 
137739 , p_source_3 => p_source_3
137740 , p_source_3_meaning => p_source_3_meaning
137741 , p_source_30 => p_source_30
137742          , x_transaction_coa_id       => l_adr_transaction_coa_id
137743          , x_accounting_coa_id        => l_adr_accounting_coa_id
137744          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
137745          , x_flex_value_set_id        => l_adr_flex_value_set_id
137746          , x_value_type_code          => l_adr_value_type_code
137747          , x_value_combination_id     => l_adr_value_combination_id
137748          , x_value_segment_code       => l_adr_value_segment_code
137749          , p_side                     => 'NA'
137750          , p_override_seg_flag        => 'Y'
137751    );
137752 
137753    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
137754 
137755       xla_ae_lines_pkg.set_segment(
137756           p_to_segment_code         => 'GL_BALANCING'
137757         , p_segment_value           => l_segment
137758         , p_from_segment_code       => l_adr_value_segment_code
137759         , p_from_combination_id     => l_adr_value_combination_id
137760         , p_value_type_code         => l_adr_value_type_code
137761         , p_transaction_coa_id      => l_adr_transaction_coa_id
137762         , p_accounting_coa_id       => l_adr_accounting_coa_id
137763         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
137764         , p_flex_value_set_id       => l_adr_flex_value_set_id
137765         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
137766         , p_adr_type_code           => 'S'
137767         , p_component_type          => l_component_type
137768         , p_component_code          => l_component_code
137769         , p_component_type_code     => l_component_type_code
137770         , p_component_appl_id       => l_component_appl_id
137771         , p_amb_context_code        => l_amb_context_code
137772         , p_entity_code             => 'AP_INVOICES'
137773         , p_event_class_code        => 'INVOICES'
137774         , p_side                    => 'NA'
137775         );
137776 
137777   END IF;
137778 
137779    --
137780    --
137781    END IF;
137782 
137783        --
137784        -- Update the line information that should be overwritten
137785        --
137786        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
137787                                          p_header_num   => 1);
137788        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
137789 
137790        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
137791 
137792        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
137793           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
137794        END IF;
137795 
137796       --
137797       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
137798       --
137799       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
137800           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
137801       ELSE
137802           ---------------------------------------------------------------------------------------------------
137803           -- 4262811a Switch Sign
137804           ---------------------------------------------------------------------------------------------------
137805           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
137806           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
137807                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137808           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
137809                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137810           -- 5132302
137811           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
137812                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137813 
137814       END IF;
137815 
137816       -- 4955764
137820 
137817       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
137818       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
137819 
137821       XLA_AE_LINES_PKG.ValidateCurrentLine;
137822       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
137823 
137824       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
137825                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
137826                ,p_balance_type_code => l_balance_type_code);
137827 
137828    END IF;
137829 
137830    -----------------------------------------------------------------------------------------
137831    -- 4262811 Multiperiod Accounting
137832    -----------------------------------------------------------------------------------------
137833      -- No MPA option is assigned.
137834 
137835 
137836 END IF;
137837 END IF;
137838 --
137839 
137840 --
137841 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137842    trace
137843       (p_msg      => 'END of AcctLineType_228'
137844       ,p_level    => C_LEVEL_PROCEDURE
137845       ,p_module   => l_log_module);
137846 END IF;
137847 --
137848 EXCEPTION
137849   WHEN xla_exceptions_pkg.application_exception THEN
137850       RAISE;
137851   WHEN OTHERS THEN
137852        xla_exceptions_pkg.raise_message
137853            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_228');
137854 END AcctLineType_228;
137855 --
137856 
137857 ---------------------------------------
137858 --
137859 -- PRIVATE FUNCTION
137860 --         AcctLineType_229
137861 --
137862 ---------------------------------------
137863 PROCEDURE AcctLineType_229 (
137864   p_application_id        IN NUMBER
137865  ,p_event_id              IN NUMBER
137866  ,p_calculate_acctd_flag  IN VARCHAR2
137867  ,p_calculate_g_l_flag    IN VARCHAR2
137868  ,p_actual_flag           IN OUT VARCHAR2
137869  ,p_balance_type_code     OUT VARCHAR2
137870  ,p_gain_or_loss_ref      OUT VARCHAR2
137871  
137872 --Invoice Distribution Description
137873  , p_source_1            IN VARCHAR2
137874 --Automatic Offsets Value
137875  , p_source_3            IN VARCHAR2
137876  , p_source_3_meaning    IN VARCHAR2
137877 --Invoice Distribution Ledger Amount
137878  , p_source_9            IN NUMBER
137879 --Invoice Distribution Account
137880  , p_source_18            IN NUMBER
137881 --Invoice Distribution Type
137882  , p_source_21            IN VARCHAR2
137883  , p_source_21_meaning    IN VARCHAR2
137884 --Retainage Account
137885  , p_source_28            IN NUMBER
137886 --Retainage Related Item Distribution Account
137887  , p_source_30            IN NUMBER
137888 --Accounting Reversal Indicator
137889  , p_source_41            IN VARCHAR2
137890 --Distribution Link Type
137891  , p_source_43            IN VARCHAR2
137892 --Allocation to Main Distribution Identifier
137893  , p_source_45            IN NUMBER
137894 --Invoice Identifier
137895  , p_source_46            IN NUMBER
137896 --Invoice Distribution Identifier
137897  , p_source_52            IN NUMBER
137898 --Payables Encumbrance Upgrade Credit Account
137899  , p_source_53            IN NUMBER
137900 --Payables Encumbrance Upgrade Credit Amount
137901  , p_source_54            IN NUMBER
137902 --Invoice Currency Code
137903  , p_source_55            IN VARCHAR2
137904 --Payables Encumbrance Upgrade Credit Base Amount
137905  , p_source_56            IN NUMBER
137906 --Payables Encumbrance Upgrade Debit Account
137907  , p_source_57            IN NUMBER
137908 --Payables Encumbrance Upgrade Debit Amount
137909  , p_source_58            IN NUMBER
137910 --Payables Encumbrance Upgrade Debit Base Amount
137911  , p_source_59            IN NUMBER
137912 --Payables Encumbrance Upgrade Option
137913  , p_source_60            IN VARCHAR2
137914 --Invoice Distribution Amount
137915  , p_source_61            IN NUMBER
137916 --Deferred Accounting End Date
137917  , p_source_65            IN DATE
137918 --Deferred Accounting Option
137919  , p_source_66            IN VARCHAR2
137920 --Deferred Accounting Start Date
137921  , p_source_67            IN DATE
137922 --Override Accounted Amount Indicator
137923  , p_source_68            IN VARCHAR2
137924  , p_source_68_meaning    IN VARCHAR2
137925 --Invoice Supplier Identifier
137926  , p_source_69            IN NUMBER
137927 --Invoice Supplier Site Identifier
137928  , p_source_70            IN NUMBER
137929 --Third Party Type
137930  , p_source_71            IN VARCHAR2
137931 --Parent Reversal Identifier
137932  , p_source_72            IN NUMBER
137933 --Invoice Distribution Statistical Amount
137934  , p_source_73            IN NUMBER
137935 --Invoice Distribution Tax Line Identifier
137936  , p_source_74            IN NUMBER
137937 --Invoice Distribution Tax Distribution Identifier from Tax
137938  , p_source_75            IN NUMBER
137939 --Invoice Distribution Summary Tax Line Identifier
137940  , p_source_76            IN NUMBER
137941 --Payables Upgrade Credit Encumbrance Type Identifier
137942  , p_source_77            IN NUMBER
137943 --Payables Upgrade Debit Encumbrance Type Identifier
137944  , p_source_78            IN NUMBER
137945 --Business Flow Accounts Payable Application Identifier
137946  , p_source_79            IN NUMBER
137947 --Business Flow Invoice Distribution Type
137948  , p_source_80            IN VARCHAR2
137949 --Business Flow Invoice Entity Code
137950  , p_source_81            IN VARCHAR2
137951 --Business Flow Invoice Distribution Identifier
137952  , p_source_82            IN NUMBER
137953 --Business Flow Invoice Identifier
137954  , p_source_83            IN NUMBER
137955 --Invoice Exchange Date
137956  , p_source_136            IN DATE
137957 --Invoice Exchange Rate
137961 --Invoice Type
137958  , p_source_137            IN NUMBER
137959 --Invoice Exchange Rate Type
137960  , p_source_138            IN VARCHAR2
137962  , p_source_159            IN VARCHAR2
137963  , p_source_159_meaning    IN VARCHAR2
137964 )
137965 IS
137966 
137967 l_component_type              VARCHAR2(80);
137968 l_component_code              VARCHAR2(30);
137969 l_component_type_code         VARCHAR2(1);
137970 l_component_appl_id           INTEGER;
137971 l_amb_context_code            VARCHAR2(30);
137972 l_entity_code                 VARCHAR2(30);
137973 l_event_class_code            VARCHAR2(30);
137974 l_ae_header_id                NUMBER;
137975 l_event_type_code             VARCHAR2(30);
137976 l_line_definition_code        VARCHAR2(30);
137977 l_line_definition_owner_code  VARCHAR2(1);
137978 --
137979 -- adr variables
137980 l_segment                     VARCHAR2(30);
137981 l_ccid                        NUMBER;
137982 l_adr_transaction_coa_id      NUMBER;
137983 l_adr_accounting_coa_id       NUMBER;
137984 l_adr_flexfield_segment_code  VARCHAR2(30);
137985 l_adr_flex_value_set_id       NUMBER;
137986 l_adr_value_type_code         VARCHAR2(30);
137987 l_adr_value_combination_id    NUMBER;
137988 l_adr_value_segment_code      VARCHAR2(30);
137989 
137990 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
137991 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
137992 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
137993 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
137994 
137995 -- 4262811 Variables ------------------------------------------------------------------------------------------
137996 l_entered_amt_idx             NUMBER;
137997 l_accted_amt_idx              NUMBER;
137998 l_acc_rev_flag                VARCHAR2(1);
137999 l_accrual_line_num            NUMBER;
138000 l_tmp_amt                     NUMBER;
138001 l_acc_rev_natural_side_code   VARCHAR2(1);
138002 
138003 l_num_entries                 NUMBER;
138004 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
138005 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
138006 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
138007 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
138008 l_recog_line_1                NUMBER;
138009 l_recog_line_2                NUMBER;
138010 
138011 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
138012 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
138013 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
138014 
138015 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
138016 
138017 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
138018 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
138019 
138020 ---------------------------------------------------------------------------------------------------------------
138021 
138022 
138023 --
138024 -- bulk performance
138025 --
138026 l_balance_type_code           VARCHAR2(1);
138027 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
138028 l_log_module                  VARCHAR2(240);
138029 
138030 --
138031 -- Upgrade strategy
138032 --
138033 l_actual_upg_option           VARCHAR2(1);
138034 l_enc_upg_option           VARCHAR2(1);
138035 
138036 --
138037 BEGIN
138038 --
138039 IF g_log_enabled THEN
138040       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_229';
138041 END IF;
138042 --
138043 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
138044 
138045       trace
138046          (p_msg      => 'BEGIN of AcctLineType_229'
138047          ,p_level    => C_LEVEL_PROCEDURE
138048          ,p_module   => l_log_module);
138049 
138050 END IF;
138051 --
138052 l_component_type             := 'AMB_JLT';
138053 l_component_code             := 'AP_RETAINAGE_ACC_CM';
138054 l_component_type_code        := 'S';
138055 l_component_appl_id          :=  200;
138056 l_amb_context_code           := 'DEFAULT';
138057 l_entity_code                := 'AP_INVOICES';
138058 l_event_class_code           := 'CREDIT MEMOS';
138059 l_event_type_code            := 'CREDIT MEMOS_ALL';
138060 l_line_definition_owner_code := 'S';
138061 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
138062 --
138063 l_balance_type_code          := 'A';
138064 l_segment                     := NULL;
138065 l_ccid                        := NULL;
138066 l_adr_transaction_coa_id      := NULL;
138067 l_adr_accounting_coa_id       := NULL;
138068 l_adr_flexfield_segment_code  := NULL;
138069 l_adr_flex_value_set_id       := NULL;
138070 l_adr_value_type_code         := NULL;
138071 l_adr_value_combination_id    := NULL;
138072 l_adr_value_segment_code      := NULL;
138073 
138074 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
138075 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
138076 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
138077 l_budgetary_control_flag     := 'N';
138078 
138079 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
138080 l_bflow_applied_to_amt       := NULL; -- 5132302
138081 l_entered_amt_idx            := NULL;          -- 4262811
138082 l_accted_amt_idx             := NULL;          -- 4262811
138083 l_acc_rev_flag               := NULL;          -- 4262811
138084 l_accrual_line_num           := NULL;          -- 4262811
138085 l_tmp_amt                    := NULL;          -- 4262811
138089     l_balance_type_code <> 'B' THEN
138086 --
138087  
138088 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
138090 IF NVL(p_source_21,'
138094  THEN 
138091 ') =  'RETAINAGE' AND 
138092 NVL(p_source_159,'
138093 ') <>  'RETAINAGE RELEASE'
138095 
138096    --
138097    XLA_AE_LINES_PKG.SetNewLine;
138098 
138099    p_balance_type_code          := l_balance_type_code;
138100    -- set the flag so later we will know whether the gain loss line needs to be created
138101    
138102    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
138103      p_actual_flag :='A';
138104    END IF;
138105 
138106    --
138107    -- bulk performance
138108    --
138109    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
138110                                       p_header_num   => 0); -- 4262811
138111    --
138112    -- set accounting line options
138113    --
138114    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
138115            p_natural_side_code          => 'D'
138116          , p_gain_or_loss_flag          => 'N'
138117          , p_gl_transfer_mode_code      => 'S'
138118          , p_acct_entry_type_code       => 'A'
138119          , p_switch_side_flag           => 'Y'
138120          , p_merge_duplicate_code       => 'A'
138121          );
138122    --
138123    l_acc_rev_natural_side_code := 'C';  -- 4262811
138124    -- 
138125    --
138126    -- set accounting line type info
138127    --
138128    xla_ae_lines_pkg.SetAcctLineType
138129       (p_component_type             => l_component_type
138130       ,p_event_type_code            => l_event_type_code
138131       ,p_line_definition_owner_code => l_line_definition_owner_code
138132       ,p_line_definition_code       => l_line_definition_code
138133       ,p_accounting_line_code       => l_component_code
138134       ,p_accounting_line_type_code  => l_component_type_code
138135       ,p_accounting_line_appl_id    => l_component_appl_id
138136       ,p_amb_context_code           => l_amb_context_code
138137       ,p_entity_code                => l_entity_code
138138       ,p_event_class_code           => l_event_class_code);
138139    --
138140    -- set accounting class
138141    --
138142    xla_ae_lines_pkg.SetAcctClass(
138143            p_accounting_class_code  => 'RETAINAGE'
138144          , p_ae_header_id           => l_ae_header_id
138145          );
138146 
138147    --
138148    -- set rounding class
138149    --
138150    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
138151                       'RETAINAGE';
138152 
138153    --
138154    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
138155    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
138156    --
138157    -- bulk performance
138158    --
138159    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
138160 
138161    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
138162       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
138163 
138164    -- 4955764
138165    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
138166       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
138167 
138168    -- 4458381 Public Sector Enh
138169    
138170    --
138171    -- set accounting attributes for the line type
138172    --
138173    l_entered_amt_idx := 23;
138174    l_accted_amt_idx  := 28;
138175    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
138176    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
138177    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
138178    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
138179    l_rec_acct_attrs.array_num_value(2)  := 
138180 xla_ae_sources_pkg.GetSystemSourceNum(
138181    p_source_code           => 'XLA_EVENT_APPL_ID'
138182  , p_source_type_code      => 'Y'
138183  , p_source_application_id =>  602
138184 );
138185    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
138186    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
138187    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
138188    l_rec_acct_attrs.array_char_value(4)  := 
138189 xla_ae_sources_pkg.GetSystemSourceChar(
138190    p_source_code           => 'XLA_ENTITY_CODE'
138191  , p_source_type_code      => 'Y'
138192  , p_source_application_id =>  602
138193 );
138194    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
138195    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
138196    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
138200    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
138197    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
138198    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
138199    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
138201    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
138202    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
138203    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
138204    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
138205    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
138206    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
138207    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
138208    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
138209    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
138210    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
138211    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
138212    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
138213    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
138214    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
138215    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
138216    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
138217    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
138218    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
138219    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
138220    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
138221    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
138222    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
138223    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
138224    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
138225    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
138226    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
138227    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
138231    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
138228    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
138229    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
138230    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
138232    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
138233    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
138234    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
138235    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
138236    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
138237    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
138238    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
138239    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
138240    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
138241    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
138242    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
138243    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
138244    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
138245    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
138246    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
138247    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
138248    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
138249    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
138250    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
138251    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
138252    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
138253    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
138254    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
138255    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
138256    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
138257    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
138258    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
138259    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
138260    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
138261    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
138262    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
138263    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
138264    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
138265    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
138266    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
138267    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
138268    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
138269    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
138270    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
138274    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
138271    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
138272 
138273    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
138275 
138276    ---------------------------------------------------------------------------------------------------------------
138277    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
138278    ---------------------------------------------------------------------------------------------------------------
138279    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
138280 
138281    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
138282    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
138283 
138284    IF xla_accounting_cache_pkg.GetValueChar
138285          (p_source_code         => 'LEDGER_CATEGORY_CODE'
138286          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
138287    AND l_bflow_method_code = 'PRIOR_ENTRY'
138288 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
138289    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
138290          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
138291        )
138292    THEN
138293          xla_ae_lines_pkg.BflowUpgEntry
138294            (p_business_method_code    => l_bflow_method_code
138295            ,p_business_class_code     => l_bflow_class_code
138296            ,p_balance_type            => l_balance_type_code);
138297    ELSE
138298       NULL;
138299 -- No business flow processing for business flow method of NONE.
138300    END IF;
138301 
138302    --
138303    -- call analytical criteria
138304    --
138305    
138306    --
138307    -- call description
138308    --
138309    
138310 xla_ae_lines_pkg.SetLineDescription(
138311    p_ae_header_id => l_ae_header_id
138312   ,p_description  => Description_2 (
138313      p_application_id         => p_application_id
138314    , p_ae_header_id           => l_ae_header_id 
138315 , p_source_1 => p_source_1
138316    )
138317 );
138318 
138319 
138320    --
138321    -- call ADRs
138322    -- Bug 4922099
138323    --
138324    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
138325         (NVL(l_actual_upg_option, 'N') = 'O') OR
138326         (NVL(l_enc_upg_option, 'N') = 'O')
138327       )
138328    THEN
138329    NULL;
138330    --
138331    --
138332    
138333   l_ccid := AcctDerRule_39(
138334            p_application_id           => p_application_id
138335          , p_ae_header_id             => l_ae_header_id 
138336 , p_source_3 => p_source_3
138337 , p_source_3_meaning => p_source_3_meaning
138338 , p_source_18 => p_source_18
138339 , p_source_30 => p_source_30
138340          , x_transaction_coa_id       => l_adr_transaction_coa_id
138341          , x_accounting_coa_id        => l_adr_accounting_coa_id
138342          , x_value_type_code          => l_adr_value_type_code
138343          , p_side                     => 'NA'
138344    );
138345 
138346    xla_ae_lines_pkg.set_ccid(
138347     p_code_combination_id          => l_ccid
138348   , p_value_type_code              => l_adr_value_type_code
138349   , p_transaction_coa_id           => l_adr_transaction_coa_id
138350   , p_accounting_coa_id            => l_adr_accounting_coa_id
138351   , p_adr_code                     => 'AP_RETAINAGE'
138352   , p_adr_type_code                => 'S'
138353   , p_component_type               => l_component_type
138354   , p_component_code               => l_component_code
138355   , p_component_type_code          => l_component_type_code
138356   , p_component_appl_id            => l_component_appl_id
138357   , p_amb_context_code             => l_amb_context_code
138358   , p_side                         => 'NA'
138362    l_segment := AcctDerRule_18(
138359   );
138360 
138361 
138363            p_application_id           => p_application_id
138364          , p_ae_header_id             => l_ae_header_id 
138365 , p_source_28 => p_source_28
138366          , x_transaction_coa_id       => l_adr_transaction_coa_id
138367          , x_accounting_coa_id        => l_adr_accounting_coa_id
138368          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
138369          , x_flex_value_set_id        => l_adr_flex_value_set_id
138370          , x_value_type_code          => l_adr_value_type_code
138371          , x_value_combination_id     => l_adr_value_combination_id
138372          , x_value_segment_code       => l_adr_value_segment_code
138373          , p_side                     => 'NA'
138374          , p_override_seg_flag        => 'Y'
138375    );
138376 
138380           p_to_segment_code         => 'GL_ACCOUNT'
138377    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
138378 
138379       xla_ae_lines_pkg.set_segment(
138381         , p_segment_value           => l_segment
138382         , p_from_segment_code       => l_adr_value_segment_code
138383         , p_from_combination_id     => l_adr_value_combination_id
138384         , p_value_type_code         => l_adr_value_type_code
138385         , p_transaction_coa_id      => l_adr_transaction_coa_id
138386         , p_accounting_coa_id       => l_adr_accounting_coa_id
138387         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
138388         , p_flex_value_set_id       => l_adr_flex_value_set_id
138389         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
138390         , p_adr_type_code           => 'S'
138391         , p_component_type          => l_component_type
138392         , p_component_code          => l_component_code
138393         , p_component_type_code     => l_component_type_code
138394         , p_component_appl_id       => l_component_appl_id
138395         , p_amb_context_code        => l_amb_context_code
138396         , p_entity_code             => 'AP_INVOICES'
138397         , p_event_class_code        => 'CREDIT MEMOS'
138398         , p_side                    => 'NA'
138399         );
138400 
138401   END IF;
138402 
138403    l_segment := AcctDerRule_23(
138404            p_application_id           => p_application_id
138405          , p_ae_header_id             => l_ae_header_id 
138406 , p_source_3 => p_source_3
138407 , p_source_3_meaning => p_source_3_meaning
138408 , p_source_30 => p_source_30
138409          , x_transaction_coa_id       => l_adr_transaction_coa_id
138410          , x_accounting_coa_id        => l_adr_accounting_coa_id
138411          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
138412          , x_flex_value_set_id        => l_adr_flex_value_set_id
138413          , x_value_type_code          => l_adr_value_type_code
138414          , x_value_combination_id     => l_adr_value_combination_id
138415          , x_value_segment_code       => l_adr_value_segment_code
138416          , p_side                     => 'NA'
138417          , p_override_seg_flag        => 'Y'
138418    );
138419 
138420    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
138421 
138422       xla_ae_lines_pkg.set_segment(
138423           p_to_segment_code         => 'GL_BALANCING'
138424         , p_segment_value           => l_segment
138425         , p_from_segment_code       => l_adr_value_segment_code
138426         , p_from_combination_id     => l_adr_value_combination_id
138427         , p_value_type_code         => l_adr_value_type_code
138428         , p_transaction_coa_id      => l_adr_transaction_coa_id
138429         , p_accounting_coa_id       => l_adr_accounting_coa_id
138430         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
138431         , p_flex_value_set_id       => l_adr_flex_value_set_id
138432         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
138433         , p_adr_type_code           => 'S'
138434         , p_component_type          => l_component_type
138435         , p_component_code          => l_component_code
138436         , p_component_type_code     => l_component_type_code
138437         , p_component_appl_id       => l_component_appl_id
138438         , p_amb_context_code        => l_amb_context_code
138439         , p_entity_code             => 'AP_INVOICES'
138440         , p_event_class_code        => 'CREDIT MEMOS'
138441         , p_side                    => 'NA'
138442         );
138443 
138444   END IF;
138445 
138446    --
138447    --
138448    END IF;
138449    --
138450    -- Bug 4922099
138451    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
138452           (NVL(l_enc_upg_option, 'N') = 'O')
138453         ) AND
138454         (l_bflow_method_code = 'PRIOR_ENTRY')
138455       )
138456    THEN
138457       IF
138458       --
138459       1 = 2
138460       --
138461       THEN
138462       xla_accounting_err_pkg.build_message
138463                                     (p_appli_s_name            => 'XLA'
138464                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
138465                                     ,p_token_1                 => 'LINE_NUMBER'
138466                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
138467                                     ,p_token_2                 => 'LINE_TYPE_NAME'
138468                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
138469                                                                              l_component_type
138470                                                                             ,l_component_code
138471                                                                             ,l_component_type_code
138472                                                                             ,l_component_appl_id
138473                                                                             ,l_amb_context_code
138474                                                                             ,l_entity_code
138475                                                                             ,l_event_class_code
138476                                                                            )
138477                                     ,p_token_3                 => 'OWNER'
138478                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
138479                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
138483                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
138480                                                                           ,p_lookup_code    => l_component_type_code
138481                                                                          )
138482                                     ,p_token_4                 => 'PRODUCT_NAME'
138487                                     ,p_ae_header_id            =>  NULL
138484                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
138485                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
138486                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
138488                                        );
138489 
138490         IF (C_LEVEL_ERROR>= g_log_level) THEN
138491                  trace
138492                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
138493                       ,p_level    => C_LEVEL_ERROR
138494                       ,p_module   => l_log_module);
138495         END IF;
138496       END IF;
138497    END IF;
138498    --
138499    --
138500    ------------------------------------------------------------------------------------------------
138501    -- 4219869 Business Flow
138502    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
138503    -- Prior Entry.  Currently, the following code is always generated.
138504    ------------------------------------------------------------------------------------------------
138505    XLA_AE_LINES_PKG.ValidateCurrentLine;
138506 
138507    ------------------------------------------------------------------------------------
138508    -- 4219869 Business Flow
138509    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
138510    ------------------------------------------------------------------------------------
138511    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
138512 
138513    ----------------------------------------------------------------------------------
138514    -- 4219869 Business Flow
138515    -- Update journal entry status -- Need to generate this within IF <condition>
138516    ----------------------------------------------------------------------------------
138517    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
138518          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
138519          ,p_balance_type_code => l_balance_type_code
138520          );
138521 
138522    -------------------------------------------------------------------------------------------
138523    -- 4262811 - Generate the Accrual Reversal lines
138524    -------------------------------------------------------------------------------------------
138525    BEGIN
138526       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
138527                               (g_array_event(p_event_id).array_value_num('header_index'));
138528       IF l_acc_rev_flag IS NULL THEN
138529          l_acc_rev_flag := 'N';
138530       END IF;
138531    EXCEPTION
138532       WHEN OTHERS THEN
138533          l_acc_rev_flag := 'N';
138534    END;
138535    --
138536    IF (l_acc_rev_flag = 'Y') THEN
138537 
138538        -- 4645092  ------------------------------------------------------------------------------
138539        -- To allow MPA report to determine if it should generate report process
138540        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
138541        ------------------------------------------------------------------------------------------
138542 
138543        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
138544        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
138545    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
138546    -- call ADRs
138547    -- Bug 4922099
138548    --
138549    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
138550         (NVL(l_actual_upg_option, 'N') = 'O') OR
138551         (NVL(l_enc_upg_option, 'N') = 'O')
138552       )
138553    THEN
138554    NULL;
138555    --
138556    --
138557    
138558   l_ccid := AcctDerRule_39(
138559            p_application_id           => p_application_id
138560          , p_ae_header_id             => l_ae_header_id 
138561 , p_source_3 => p_source_3
138562 , p_source_3_meaning => p_source_3_meaning
138563 , p_source_18 => p_source_18
138564 , p_source_30 => p_source_30
138565          , x_transaction_coa_id       => l_adr_transaction_coa_id
138566          , x_accounting_coa_id        => l_adr_accounting_coa_id
138567          , x_value_type_code          => l_adr_value_type_code
138568          , p_side                     => 'NA'
138569    );
138570 
138571    xla_ae_lines_pkg.set_ccid(
138572     p_code_combination_id          => l_ccid
138573   , p_value_type_code              => l_adr_value_type_code
138574   , p_transaction_coa_id           => l_adr_transaction_coa_id
138578   , p_component_type               => l_component_type
138575   , p_accounting_coa_id            => l_adr_accounting_coa_id
138576   , p_adr_code                     => 'AP_RETAINAGE'
138577   , p_adr_type_code                => 'S'
138579   , p_component_code               => l_component_code
138580   , p_component_type_code          => l_component_type_code
138581   , p_component_appl_id            => l_component_appl_id
138582   , p_amb_context_code             => l_amb_context_code
138583   , p_side                         => 'NA'
138584   );
138585 
138586 
138587    l_segment := AcctDerRule_18(
138588            p_application_id           => p_application_id
138589          , p_ae_header_id             => l_ae_header_id 
138590 , p_source_28 => p_source_28
138591          , x_transaction_coa_id       => l_adr_transaction_coa_id
138592          , x_accounting_coa_id        => l_adr_accounting_coa_id
138593          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
138594          , x_flex_value_set_id        => l_adr_flex_value_set_id
138595          , x_value_type_code          => l_adr_value_type_code
138596          , x_value_combination_id     => l_adr_value_combination_id
138597          , x_value_segment_code       => l_adr_value_segment_code
138598          , p_side                     => 'NA'
138599          , p_override_seg_flag        => 'Y'
138600    );
138601 
138602    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
138603 
138604       xla_ae_lines_pkg.set_segment(
138605           p_to_segment_code         => 'GL_ACCOUNT'
138606         , p_segment_value           => l_segment
138607         , p_from_segment_code       => l_adr_value_segment_code
138608         , p_from_combination_id     => l_adr_value_combination_id
138609         , p_value_type_code         => l_adr_value_type_code
138610         , p_transaction_coa_id      => l_adr_transaction_coa_id
138611         , p_accounting_coa_id       => l_adr_accounting_coa_id
138612         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
138613         , p_flex_value_set_id       => l_adr_flex_value_set_id
138614         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
138615         , p_adr_type_code           => 'S'
138619         , p_component_appl_id       => l_component_appl_id
138616         , p_component_type          => l_component_type
138617         , p_component_code          => l_component_code
138618         , p_component_type_code     => l_component_type_code
138620         , p_amb_context_code        => l_amb_context_code
138621         , p_entity_code             => 'AP_INVOICES'
138622         , p_event_class_code        => 'CREDIT MEMOS'
138623         , p_side                    => 'NA'
138624         );
138625 
138626   END IF;
138627 
138628    l_segment := AcctDerRule_23(
138629            p_application_id           => p_application_id
138630          , p_ae_header_id             => l_ae_header_id 
138631 , p_source_3 => p_source_3
138632 , p_source_3_meaning => p_source_3_meaning
138633 , p_source_30 => p_source_30
138634          , x_transaction_coa_id       => l_adr_transaction_coa_id
138635          , x_accounting_coa_id        => l_adr_accounting_coa_id
138636          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
138637          , x_flex_value_set_id        => l_adr_flex_value_set_id
138638          , x_value_type_code          => l_adr_value_type_code
138639          , x_value_combination_id     => l_adr_value_combination_id
138640          , x_value_segment_code       => l_adr_value_segment_code
138641          , p_side                     => 'NA'
138642          , p_override_seg_flag        => 'Y'
138643    );
138644 
138645    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
138646 
138647       xla_ae_lines_pkg.set_segment(
138648           p_to_segment_code         => 'GL_BALANCING'
138649         , p_segment_value           => l_segment
138650         , p_from_segment_code       => l_adr_value_segment_code
138651         , p_from_combination_id     => l_adr_value_combination_id
138652         , p_value_type_code         => l_adr_value_type_code
138653         , p_transaction_coa_id      => l_adr_transaction_coa_id
138654         , p_accounting_coa_id       => l_adr_accounting_coa_id
138655         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
138656         , p_flex_value_set_id       => l_adr_flex_value_set_id
138657         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
138658         , p_adr_type_code           => 'S'
138659         , p_component_type          => l_component_type
138660         , p_component_code          => l_component_code
138661         , p_component_type_code     => l_component_type_code
138662         , p_component_appl_id       => l_component_appl_id
138663         , p_amb_context_code        => l_amb_context_code
138664         , p_entity_code             => 'AP_INVOICES'
138665         , p_event_class_code        => 'CREDIT MEMOS'
138666         , p_side                    => 'NA'
138667         );
138668 
138669   END IF;
138673    END IF;
138670 
138671    --
138672    --
138674 
138675        --
138676        -- Update the line information that should be overwritten
138677        --
138678        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
138679                                          p_header_num   => 1);
138680        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
138681 
138682        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
138683 
138684        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
138685           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
138686        END IF;
138687 
138688       --
138689       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
138690       --
138691       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
138692           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
138693       ELSE
138694           ---------------------------------------------------------------------------------------------------
138695           -- 4262811a Switch Sign
138696           ---------------------------------------------------------------------------------------------------
138697           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
138698           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
138699                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
138700           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
138701                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
138702           -- 5132302
138703           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
138704                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
138705 
138706       END IF;
138707 
138708       -- 4955764
138709       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
138710       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
138711 
138712 
138713       XLA_AE_LINES_PKG.ValidateCurrentLine;
138714       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
138715 
138716       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
138717                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
138718                ,p_balance_type_code => l_balance_type_code);
138719 
138720    END IF;
138721 
138722    -----------------------------------------------------------------------------------------
138723    -- 4262811 Multiperiod Accounting
138724    -----------------------------------------------------------------------------------------
138725      -- No MPA option is assigned.
138726 
138727 
138728 END IF;
138729 END IF;
138730 --
138731 
138732 --
138733 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
138734    trace
138735       (p_msg      => 'END of AcctLineType_229'
138736       ,p_level    => C_LEVEL_PROCEDURE
138737       ,p_module   => l_log_module);
138738 END IF;
138739 --
138740 EXCEPTION
138741   WHEN xla_exceptions_pkg.application_exception THEN
138742       RAISE;
138743   WHEN OTHERS THEN
138744        xla_exceptions_pkg.raise_message
138745            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_229');
138746 END AcctLineType_229;
138747 --
138748 
138749 ---------------------------------------
138750 --
138751 -- PRIVATE FUNCTION
138752 --         AcctLineType_230
138753 --
138754 ---------------------------------------
138755 PROCEDURE AcctLineType_230 (
138756   p_application_id        IN NUMBER
138757  ,p_event_id              IN NUMBER
138761  ,p_balance_type_code     OUT VARCHAR2
138758  ,p_calculate_acctd_flag  IN VARCHAR2
138759  ,p_calculate_g_l_flag    IN VARCHAR2
138760  ,p_actual_flag           IN OUT VARCHAR2
138762  ,p_gain_or_loss_ref      OUT VARCHAR2
138763  
138764 --Invoice Distribution Description
138765  , p_source_1            IN VARCHAR2
138766 --Automatic Offsets Value
138767  , p_source_3            IN VARCHAR2
138768  , p_source_3_meaning    IN VARCHAR2
138769 --Invoice Distribution Ledger Amount
138770  , p_source_9            IN NUMBER
138771 --Invoice Distribution Account
138772  , p_source_18            IN NUMBER
138773 --Invoice Distribution Type
138774  , p_source_21            IN VARCHAR2
138775  , p_source_21_meaning    IN VARCHAR2
138776 --Retainage Account
138777  , p_source_28            IN NUMBER
138778 --Retainage Related Item Distribution Account
138782 --Distribution Link Type
138779  , p_source_30            IN NUMBER
138780 --Accounting Reversal Indicator
138781  , p_source_41            IN VARCHAR2
138783  , p_source_43            IN VARCHAR2
138784 --Allocation to Main Distribution Identifier
138785  , p_source_45            IN NUMBER
138786 --Invoice Identifier
138787  , p_source_46            IN NUMBER
138788 --Invoice Distribution Identifier
138789  , p_source_52            IN NUMBER
138790 --Payables Encumbrance Upgrade Credit Account
138791  , p_source_53            IN NUMBER
138792 --Payables Encumbrance Upgrade Credit Amount
138793  , p_source_54            IN NUMBER
138794 --Invoice Currency Code
138795  , p_source_55            IN VARCHAR2
138796 --Payables Encumbrance Upgrade Credit Base Amount
138797  , p_source_56            IN NUMBER
138798 --Payables Encumbrance Upgrade Debit Account
138799  , p_source_57            IN NUMBER
138800 --Payables Encumbrance Upgrade Debit Amount
138801  , p_source_58            IN NUMBER
138802 --Payables Encumbrance Upgrade Debit Base Amount
138803  , p_source_59            IN NUMBER
138804 --Payables Encumbrance Upgrade Option
138805  , p_source_60            IN VARCHAR2
138806 --Invoice Distribution Amount
138807  , p_source_61            IN NUMBER
138808 --Deferred Accounting End Date
138809  , p_source_65            IN DATE
138810 --Deferred Accounting Option
138811  , p_source_66            IN VARCHAR2
138812 --Deferred Accounting Start Date
138813  , p_source_67            IN DATE
138814 --Override Accounted Amount Indicator
138815  , p_source_68            IN VARCHAR2
138816  , p_source_68_meaning    IN VARCHAR2
138817 --Invoice Supplier Identifier
138818  , p_source_69            IN NUMBER
138819 --Invoice Supplier Site Identifier
138820  , p_source_70            IN NUMBER
138821 --Third Party Type
138822  , p_source_71            IN VARCHAR2
138823 --Parent Reversal Identifier
138824  , p_source_72            IN NUMBER
138825 --Invoice Distribution Tax Line Identifier
138826  , p_source_74            IN NUMBER
138827 --Invoice Distribution Tax Distribution Identifier from Tax
138828  , p_source_75            IN NUMBER
138829 --Invoice Distribution Summary Tax Line Identifier
138830  , p_source_76            IN NUMBER
138831 --Payables Upgrade Credit Encumbrance Type Identifier
138832  , p_source_77            IN NUMBER
138833 --Payables Upgrade Debit Encumbrance Type Identifier
138834  , p_source_78            IN NUMBER
138835 --Business Flow Accounts Payable Application Identifier
138836  , p_source_79            IN NUMBER
138837 --Business Flow Invoice Distribution Type
138838  , p_source_80            IN VARCHAR2
138839 --Business Flow Invoice Entity Code
138840  , p_source_81            IN VARCHAR2
138841 --Business Flow Invoice Distribution Identifier
138842  , p_source_82            IN NUMBER
138843 --Business Flow Invoice Identifier
138844  , p_source_83            IN NUMBER
138845 --Invoice Exchange Date
138846  , p_source_136            IN DATE
138847 --Invoice Exchange Rate
138848  , p_source_137            IN NUMBER
138849 --Invoice Exchange Rate Type
138850  , p_source_138            IN VARCHAR2
138851 )
138852 IS
138853 
138854 l_component_type              VARCHAR2(80);
138855 l_component_code              VARCHAR2(30);
138856 l_component_type_code         VARCHAR2(1);
138857 l_component_appl_id           INTEGER;
138858 l_amb_context_code            VARCHAR2(30);
138859 l_entity_code                 VARCHAR2(30);
138860 l_event_class_code            VARCHAR2(30);
138861 l_ae_header_id                NUMBER;
138862 l_event_type_code             VARCHAR2(30);
138863 l_line_definition_code        VARCHAR2(30);
138864 l_line_definition_owner_code  VARCHAR2(1);
138865 --
138866 -- adr variables
138867 l_segment                     VARCHAR2(30);
138868 l_ccid                        NUMBER;
138869 l_adr_transaction_coa_id      NUMBER;
138870 l_adr_accounting_coa_id       NUMBER;
138871 l_adr_flexfield_segment_code  VARCHAR2(30);
138872 l_adr_flex_value_set_id       NUMBER;
138873 l_adr_value_type_code         VARCHAR2(30);
138874 l_adr_value_combination_id    NUMBER;
138875 l_adr_value_segment_code      VARCHAR2(30);
138876 
138877 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
138878 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
138879 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
138880 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
138881 
138882 -- 4262811 Variables ------------------------------------------------------------------------------------------
138883 l_entered_amt_idx             NUMBER;
138884 l_accted_amt_idx              NUMBER;
138885 l_acc_rev_flag                VARCHAR2(1);
138886 l_accrual_line_num            NUMBER;
138887 l_tmp_amt                     NUMBER;
138888 l_acc_rev_natural_side_code   VARCHAR2(1);
138889 
138890 l_num_entries                 NUMBER;
138891 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
138892 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
138893 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
138894 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
138895 l_recog_line_1                NUMBER;
138896 l_recog_line_2                NUMBER;
138897 
138898 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
138899 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
138900 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
138901 
138902 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
138903 
138907 ---------------------------------------------------------------------------------------------------------------
138904 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
138905 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
138906 
138908 
138909 
138910 --
138911 -- bulk performance
138912 --
138913 l_balance_type_code           VARCHAR2(1);
138914 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
138915 l_log_module                  VARCHAR2(240);
138916 
138917 --
138918 -- Upgrade strategy
138919 --
138920 l_actual_upg_option           VARCHAR2(1);
138921 l_enc_upg_option           VARCHAR2(1);
138922 
138923 --
138924 BEGIN
138925 --
138926 IF g_log_enabled THEN
138927       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_230';
138928 END IF;
138929 --
138930 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
138931 
138932       trace
138933          (p_msg      => 'BEGIN of AcctLineType_230'
138934          ,p_level    => C_LEVEL_PROCEDURE
138935          ,p_module   => l_log_module);
138936 
138937 END IF;
138938 --
138939 l_component_type             := 'AMB_JLT';
138940 l_component_code             := 'AP_RETAINAGE_ACC_DM';
138941 l_component_type_code        := 'S';
138942 l_component_appl_id          :=  200;
138943 l_amb_context_code           := 'DEFAULT';
138944 l_entity_code                := 'AP_INVOICES';
138945 l_event_class_code           := 'DEBIT MEMOS';
138946 l_event_type_code            := 'DEBIT MEMOS_ALL';
138947 l_line_definition_owner_code := 'S';
138948 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
138949 --
138950 l_balance_type_code          := 'A';
138951 l_segment                     := NULL;
138952 l_ccid                        := NULL;
138953 l_adr_transaction_coa_id      := NULL;
138954 l_adr_accounting_coa_id       := NULL;
138955 l_adr_flexfield_segment_code  := NULL;
138956 l_adr_flex_value_set_id       := NULL;
138957 l_adr_value_type_code         := NULL;
138958 l_adr_value_combination_id    := NULL;
138959 l_adr_value_segment_code      := NULL;
138960 
138961 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
138962 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
138963 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
138964 l_budgetary_control_flag     := 'N';
138965 
138966 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
138967 l_bflow_applied_to_amt       := NULL; -- 5132302
138968 l_entered_amt_idx            := NULL;          -- 4262811
138969 l_accted_amt_idx             := NULL;          -- 4262811
138970 l_acc_rev_flag               := NULL;          -- 4262811
138971 l_accrual_line_num           := NULL;          -- 4262811
138972 l_tmp_amt                    := NULL;          -- 4262811
138973 --
138974  
138975 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
138976     l_balance_type_code <> 'B' THEN
138977 IF NVL(p_source_21,'
138978 ') =  'RETAINAGE'
138979  THEN 
138980 
138981    --
138982    XLA_AE_LINES_PKG.SetNewLine;
138983 
138984    p_balance_type_code          := l_balance_type_code;
138985    -- set the flag so later we will know whether the gain loss line needs to be created
138986    
138987    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
138988      p_actual_flag :='A';
138989    END IF;
138990 
138991    --
138992    -- bulk performance
138993    --
138994    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
138995                                       p_header_num   => 0); -- 4262811
138996    --
138997    -- set accounting line options
138998    --
138999    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
139000            p_natural_side_code          => 'D'
139001          , p_gain_or_loss_flag          => 'N'
139002          , p_gl_transfer_mode_code      => 'S'
139003          , p_acct_entry_type_code       => 'A'
139004          , p_switch_side_flag           => 'Y'
139005          , p_merge_duplicate_code       => 'A'
139006          );
139007    --
139008    l_acc_rev_natural_side_code := 'C';  -- 4262811
139009    -- 
139010    --
139011    -- set accounting line type info
139012    --
139013    xla_ae_lines_pkg.SetAcctLineType
139014       (p_component_type             => l_component_type
139015       ,p_event_type_code            => l_event_type_code
139016       ,p_line_definition_owner_code => l_line_definition_owner_code
139017       ,p_line_definition_code       => l_line_definition_code
139018       ,p_accounting_line_code       => l_component_code
139019       ,p_accounting_line_type_code  => l_component_type_code
139020       ,p_accounting_line_appl_id    => l_component_appl_id
139021       ,p_amb_context_code           => l_amb_context_code
139022       ,p_entity_code                => l_entity_code
139023       ,p_event_class_code           => l_event_class_code);
139024    --
139025    -- set accounting class
139026    --
139027    xla_ae_lines_pkg.SetAcctClass(
139028            p_accounting_class_code  => 'RETAINAGE'
139029          , p_ae_header_id           => l_ae_header_id
139030          );
139031 
139032    --
139033    -- set rounding class
139034    --
139035    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
139036                       'RETAINAGE';
139037 
139038    --
139039    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
139040    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
139041    --
139042    -- bulk performance
139043    --
139044    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
139048 
139045 
139046    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
139047       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
139049    -- 4955764
139050    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
139051       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
139052 
139053    -- 4458381 Public Sector Enh
139054    
139055    --
139056    -- set accounting attributes for the line type
139057    --
139058    l_entered_amt_idx := 23;
139059    l_accted_amt_idx  := 28;
139060    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
139061    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
139062    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
139063    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
139064    l_rec_acct_attrs.array_num_value(2)  := 
139065 xla_ae_sources_pkg.GetSystemSourceNum(
139066    p_source_code           => 'XLA_EVENT_APPL_ID'
139067  , p_source_type_code      => 'Y'
139068  , p_source_application_id =>  602
139069 );
139070    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
139074 xla_ae_sources_pkg.GetSystemSourceChar(
139071    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
139072    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
139073    l_rec_acct_attrs.array_char_value(4)  := 
139075    p_source_code           => 'XLA_ENTITY_CODE'
139076  , p_source_type_code      => 'Y'
139077  , p_source_application_id =>  602
139078 );
139079    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
139080    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
139081    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
139082    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
139083    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
139084    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
139085    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
139086    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
139087    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
139088    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
139089    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
139090    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
139091    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
139092    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
139093    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
139094    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
139095    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
139096    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
139097    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
139098    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
139099    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
139100    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
139101    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
139102    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
139103    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
139104    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
139105    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
139106    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
139107    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
139108    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
139109    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
139110    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
139111    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
139112    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
139116    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
139113    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
139114    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
139115    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
139117    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
139118    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
139119    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
139120    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
139121    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
139122    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
139123    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
139124    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
139125    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
139126    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
139127    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
139128    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
139129    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
139130    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
139131    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
139132    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
139133    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
139134    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
139135    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
139136    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
139137    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
139138    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
139139    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
139140    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
139141    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
139142    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
139143    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
139144    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
139145    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
139146    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
139147    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
139148    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
139149    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
139150    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
139151    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
139152    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
139153    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
139154    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
139155 
139156    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
139157    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
139158 
139159    ---------------------------------------------------------------------------------------------------------------
139160    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
139161    ---------------------------------------------------------------------------------------------------------------
139162    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
139163 
139164    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
139165    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
139166 
139167    IF xla_accounting_cache_pkg.GetValueChar
139168          (p_source_code         => 'LEDGER_CATEGORY_CODE'
139169          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
139170    AND l_bflow_method_code = 'PRIOR_ENTRY'
139171 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
139172    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
139173          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
139174        )
139178            ,p_business_class_code     => l_bflow_class_code
139175    THEN
139176          xla_ae_lines_pkg.BflowUpgEntry
139177            (p_business_method_code    => l_bflow_method_code
139179            ,p_balance_type            => l_balance_type_code);
139180    ELSE
139181       NULL;
139182 -- No business flow processing for business flow method of NONE.
139183    END IF;
139184 
139185    --
139186    -- call analytical criteria
139187    --
139188    
139189    --
139190    -- call description
139191    --
139192    
139193 xla_ae_lines_pkg.SetLineDescription(
139194    p_ae_header_id => l_ae_header_id
139195   ,p_description  => Description_2 (
139196      p_application_id         => p_application_id
139197    , p_ae_header_id           => l_ae_header_id 
139198 , p_source_1 => p_source_1
139199    )
139200 );
139201 
139202 
139203    --
139204    -- call ADRs
139205    -- Bug 4922099
139206    --
139207    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
139208         (NVL(l_actual_upg_option, 'N') = 'O') OR
139209         (NVL(l_enc_upg_option, 'N') = 'O')
139210       )
139211    THEN
139212    NULL;
139213    --
139214    --
139215    
139216   l_ccid := AcctDerRule_39(
139217            p_application_id           => p_application_id
139218          , p_ae_header_id             => l_ae_header_id 
139219 , p_source_3 => p_source_3
139220 , p_source_3_meaning => p_source_3_meaning
139221 , p_source_18 => p_source_18
139222 , p_source_30 => p_source_30
139223          , x_transaction_coa_id       => l_adr_transaction_coa_id
139224          , x_accounting_coa_id        => l_adr_accounting_coa_id
139225          , x_value_type_code          => l_adr_value_type_code
139226          , p_side                     => 'NA'
139227    );
139228 
139229    xla_ae_lines_pkg.set_ccid(
139230     p_code_combination_id          => l_ccid
139231   , p_value_type_code              => l_adr_value_type_code
139232   , p_transaction_coa_id           => l_adr_transaction_coa_id
139233   , p_accounting_coa_id            => l_adr_accounting_coa_id
139234   , p_adr_code                     => 'AP_RETAINAGE'
139235   , p_adr_type_code                => 'S'
139236   , p_component_type               => l_component_type
139237   , p_component_code               => l_component_code
139238   , p_component_type_code          => l_component_type_code
139239   , p_component_appl_id            => l_component_appl_id
139240   , p_amb_context_code             => l_amb_context_code
139241   , p_side                         => 'NA'
139242   );
139243 
139244 
139245    l_segment := AcctDerRule_18(
139246            p_application_id           => p_application_id
139247          , p_ae_header_id             => l_ae_header_id 
139248 , p_source_28 => p_source_28
139249          , x_transaction_coa_id       => l_adr_transaction_coa_id
139250          , x_accounting_coa_id        => l_adr_accounting_coa_id
139251          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
139252          , x_flex_value_set_id        => l_adr_flex_value_set_id
139253          , x_value_type_code          => l_adr_value_type_code
139254          , x_value_combination_id     => l_adr_value_combination_id
139255          , x_value_segment_code       => l_adr_value_segment_code
139256          , p_side                     => 'NA'
139257          , p_override_seg_flag        => 'Y'
139258    );
139259 
139260    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
139261 
139262       xla_ae_lines_pkg.set_segment(
139263           p_to_segment_code         => 'GL_ACCOUNT'
139264         , p_segment_value           => l_segment
139265         , p_from_segment_code       => l_adr_value_segment_code
139266         , p_from_combination_id     => l_adr_value_combination_id
139267         , p_value_type_code         => l_adr_value_type_code
139268         , p_transaction_coa_id      => l_adr_transaction_coa_id
139269         , p_accounting_coa_id       => l_adr_accounting_coa_id
139270         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
139271         , p_flex_value_set_id       => l_adr_flex_value_set_id
139272         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
139273         , p_adr_type_code           => 'S'
139274         , p_component_type          => l_component_type
139275         , p_component_code          => l_component_code
139276         , p_component_type_code     => l_component_type_code
139277         , p_component_appl_id       => l_component_appl_id
139278         , p_amb_context_code        => l_amb_context_code
139279         , p_entity_code             => 'AP_INVOICES'
139283 
139280         , p_event_class_code        => 'DEBIT MEMOS'
139281         , p_side                    => 'NA'
139282         );
139284   END IF;
139285 
139286    l_segment := AcctDerRule_23(
139287            p_application_id           => p_application_id
139288          , p_ae_header_id             => l_ae_header_id 
139289 , p_source_3 => p_source_3
139290 , p_source_3_meaning => p_source_3_meaning
139291 , p_source_30 => p_source_30
139292          , x_transaction_coa_id       => l_adr_transaction_coa_id
139293          , x_accounting_coa_id        => l_adr_accounting_coa_id
139294          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
139295          , x_flex_value_set_id        => l_adr_flex_value_set_id
139296          , x_value_type_code          => l_adr_value_type_code
139297          , x_value_combination_id     => l_adr_value_combination_id
139298          , x_value_segment_code       => l_adr_value_segment_code
139299          , p_side                     => 'NA'
139300          , p_override_seg_flag        => 'Y'
139301    );
139302 
139303    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
139304 
139305       xla_ae_lines_pkg.set_segment(
139306           p_to_segment_code         => 'GL_BALANCING'
139307         , p_segment_value           => l_segment
139308         , p_from_segment_code       => l_adr_value_segment_code
139309         , p_from_combination_id     => l_adr_value_combination_id
139310         , p_value_type_code         => l_adr_value_type_code
139311         , p_transaction_coa_id      => l_adr_transaction_coa_id
139312         , p_accounting_coa_id       => l_adr_accounting_coa_id
139313         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
139314         , p_flex_value_set_id       => l_adr_flex_value_set_id
139315         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
139316         , p_adr_type_code           => 'S'
139317         , p_component_type          => l_component_type
139318         , p_component_code          => l_component_code
139319         , p_component_type_code     => l_component_type_code
139320         , p_component_appl_id       => l_component_appl_id
139321         , p_amb_context_code        => l_amb_context_code
139325         );
139322         , p_entity_code             => 'AP_INVOICES'
139323         , p_event_class_code        => 'DEBIT MEMOS'
139324         , p_side                    => 'NA'
139326 
139327   END IF;
139328 
139329    --
139330    --
139331    END IF;
139332    --
139333    -- Bug 4922099
139334    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
139335           (NVL(l_enc_upg_option, 'N') = 'O')
139336         ) AND
139337         (l_bflow_method_code = 'PRIOR_ENTRY')
139338       )
139339    THEN
139340       IF
139341       --
139342       1 = 2
139343       --
139344       THEN
139345       xla_accounting_err_pkg.build_message
139346                                     (p_appli_s_name            => 'XLA'
139347                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
139348                                     ,p_token_1                 => 'LINE_NUMBER'
139349                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
139350                                     ,p_token_2                 => 'LINE_TYPE_NAME'
139351                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
139352                                                                              l_component_type
139353                                                                             ,l_component_code
139354                                                                             ,l_component_type_code
139355                                                                             ,l_component_appl_id
139356                                                                             ,l_amb_context_code
139357                                                                             ,l_entity_code
139358                                                                             ,l_event_class_code
139359                                                                            )
139360                                     ,p_token_3                 => 'OWNER'
139361                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
139362                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
139363                                                                           ,p_lookup_code    => l_component_type_code
139364                                                                          )
139365                                     ,p_token_4                 => 'PRODUCT_NAME'
139366                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
139367                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
139371                                        );
139368                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
139369                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
139370                                     ,p_ae_header_id            =>  NULL
139372 
139373         IF (C_LEVEL_ERROR>= g_log_level) THEN
139374                  trace
139375                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
139376                       ,p_level    => C_LEVEL_ERROR
139377                       ,p_module   => l_log_module);
139378         END IF;
139379       END IF;
139380    END IF;
139381    --
139382    --
139383    ------------------------------------------------------------------------------------------------
139384    -- 4219869 Business Flow
139385    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
139386    -- Prior Entry.  Currently, the following code is always generated.
139387    ------------------------------------------------------------------------------------------------
139388    XLA_AE_LINES_PKG.ValidateCurrentLine;
139389 
139390    ------------------------------------------------------------------------------------
139391    -- 4219869 Business Flow
139392    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
139393    ------------------------------------------------------------------------------------
139394    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
139395 
139396    ----------------------------------------------------------------------------------
139397    -- 4219869 Business Flow
139398    -- Update journal entry status -- Need to generate this within IF <condition>
139399    ----------------------------------------------------------------------------------
139400    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
139401          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
139402          ,p_balance_type_code => l_balance_type_code
139403          );
139404 
139405    -------------------------------------------------------------------------------------------
139406    -- 4262811 - Generate the Accrual Reversal lines
139407    -------------------------------------------------------------------------------------------
139408    BEGIN
139409       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
139410                               (g_array_event(p_event_id).array_value_num('header_index'));
139411       IF l_acc_rev_flag IS NULL THEN
139412          l_acc_rev_flag := 'N';
139413       END IF;
139414    EXCEPTION
139415       WHEN OTHERS THEN
139416          l_acc_rev_flag := 'N';
139417    END;
139418    --
139419    IF (l_acc_rev_flag = 'Y') THEN
139420 
139421        -- 4645092  ------------------------------------------------------------------------------
139422        -- To allow MPA report to determine if it should generate report process
139423        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
139424        ------------------------------------------------------------------------------------------
139425 
139426        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
139427        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
139428    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
139429    -- call ADRs
139430    -- Bug 4922099
139431    --
139432    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
139433         (NVL(l_actual_upg_option, 'N') = 'O') OR
139434         (NVL(l_enc_upg_option, 'N') = 'O')
139435       )
139436    THEN
139437    NULL;
139438    --
139439    --
139440    
139441   l_ccid := AcctDerRule_39(
139442            p_application_id           => p_application_id
139443          , p_ae_header_id             => l_ae_header_id 
139444 , p_source_3 => p_source_3
139445 , p_source_3_meaning => p_source_3_meaning
139446 , p_source_18 => p_source_18
139447 , p_source_30 => p_source_30
139448          , x_transaction_coa_id       => l_adr_transaction_coa_id
139452    );
139449          , x_accounting_coa_id        => l_adr_accounting_coa_id
139450          , x_value_type_code          => l_adr_value_type_code
139451          , p_side                     => 'NA'
139453 
139454    xla_ae_lines_pkg.set_ccid(
139455     p_code_combination_id          => l_ccid
139456   , p_value_type_code              => l_adr_value_type_code
139457   , p_transaction_coa_id           => l_adr_transaction_coa_id
139458   , p_accounting_coa_id            => l_adr_accounting_coa_id
139459   , p_adr_code                     => 'AP_RETAINAGE'
139460   , p_adr_type_code                => 'S'
139464   , p_component_appl_id            => l_component_appl_id
139461   , p_component_type               => l_component_type
139462   , p_component_code               => l_component_code
139463   , p_component_type_code          => l_component_type_code
139465   , p_amb_context_code             => l_amb_context_code
139466   , p_side                         => 'NA'
139467   );
139468 
139469 
139470    l_segment := AcctDerRule_18(
139471            p_application_id           => p_application_id
139472          , p_ae_header_id             => l_ae_header_id 
139473 , p_source_28 => p_source_28
139474          , x_transaction_coa_id       => l_adr_transaction_coa_id
139475          , x_accounting_coa_id        => l_adr_accounting_coa_id
139476          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
139477          , x_flex_value_set_id        => l_adr_flex_value_set_id
139478          , x_value_type_code          => l_adr_value_type_code
139479          , x_value_combination_id     => l_adr_value_combination_id
139480          , x_value_segment_code       => l_adr_value_segment_code
139481          , p_side                     => 'NA'
139482          , p_override_seg_flag        => 'Y'
139483    );
139484 
139485    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
139486 
139487       xla_ae_lines_pkg.set_segment(
139488           p_to_segment_code         => 'GL_ACCOUNT'
139489         , p_segment_value           => l_segment
139490         , p_from_segment_code       => l_adr_value_segment_code
139491         , p_from_combination_id     => l_adr_value_combination_id
139492         , p_value_type_code         => l_adr_value_type_code
139493         , p_transaction_coa_id      => l_adr_transaction_coa_id
139494         , p_accounting_coa_id       => l_adr_accounting_coa_id
139495         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
139496         , p_flex_value_set_id       => l_adr_flex_value_set_id
139497         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
139498         , p_adr_type_code           => 'S'
139499         , p_component_type          => l_component_type
139500         , p_component_code          => l_component_code
139501         , p_component_type_code     => l_component_type_code
139502         , p_component_appl_id       => l_component_appl_id
139503         , p_amb_context_code        => l_amb_context_code
139504         , p_entity_code             => 'AP_INVOICES'
139505         , p_event_class_code        => 'DEBIT MEMOS'
139506         , p_side                    => 'NA'
139507         );
139508 
139509   END IF;
139510 
139511    l_segment := AcctDerRule_23(
139512            p_application_id           => p_application_id
139513          , p_ae_header_id             => l_ae_header_id 
139514 , p_source_3 => p_source_3
139515 , p_source_3_meaning => p_source_3_meaning
139516 , p_source_30 => p_source_30
139517          , x_transaction_coa_id       => l_adr_transaction_coa_id
139518          , x_accounting_coa_id        => l_adr_accounting_coa_id
139519          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
139520          , x_flex_value_set_id        => l_adr_flex_value_set_id
139521          , x_value_type_code          => l_adr_value_type_code
139522          , x_value_combination_id     => l_adr_value_combination_id
139523          , x_value_segment_code       => l_adr_value_segment_code
139524          , p_side                     => 'NA'
139525          , p_override_seg_flag        => 'Y'
139526    );
139527 
139528    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
139529 
139530       xla_ae_lines_pkg.set_segment(
139531           p_to_segment_code         => 'GL_BALANCING'
139532         , p_segment_value           => l_segment
139533         , p_from_segment_code       => l_adr_value_segment_code
139534         , p_from_combination_id     => l_adr_value_combination_id
139535         , p_value_type_code         => l_adr_value_type_code
139536         , p_transaction_coa_id      => l_adr_transaction_coa_id
139537         , p_accounting_coa_id       => l_adr_accounting_coa_id
139538         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
139539         , p_flex_value_set_id       => l_adr_flex_value_set_id
139540         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
139541         , p_adr_type_code           => 'S'
139542         , p_component_type          => l_component_type
139543         , p_component_code          => l_component_code
139544         , p_component_type_code     => l_component_type_code
139545         , p_component_appl_id       => l_component_appl_id
139546         , p_amb_context_code        => l_amb_context_code
139547         , p_entity_code             => 'AP_INVOICES'
139548         , p_event_class_code        => 'DEBIT MEMOS'
139549         , p_side                    => 'NA'
139550         );
139551 
139552   END IF;
139553 
139554    --
139555    --
139556    END IF;
139557 
139558        --
139559        -- Update the line information that should be overwritten
139560        --
139561        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
139562                                          p_header_num   => 1);
139563        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
139564 
139565        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
139566 
139567        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
139568           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
139569        END IF;
139570 
139571       --
139572       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
139573       --
139577           ---------------------------------------------------------------------------------------------------
139574       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
139575           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
139576       ELSE
139578           -- 4262811a Switch Sign
139579           ---------------------------------------------------------------------------------------------------
139583           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
139580           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
139581           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
139582                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
139584                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
139585           -- 5132302
139586           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
139587                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
139588 
139589       END IF;
139590 
139591       -- 4955764
139592       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
139593       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
139594 
139595 
139596       XLA_AE_LINES_PKG.ValidateCurrentLine;
139597       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
139598 
139599       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
139600                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
139601                ,p_balance_type_code => l_balance_type_code);
139602 
139603    END IF;
139604 
139605    -----------------------------------------------------------------------------------------
139606    -- 4262811 Multiperiod Accounting
139607    -----------------------------------------------------------------------------------------
139608      -- No MPA option is assigned.
139609 
139610 
139611 END IF;
139612 END IF;
139613 --
139614 
139615 --
139616 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
139617    trace
139618       (p_msg      => 'END of AcctLineType_230'
139619       ,p_level    => C_LEVEL_PROCEDURE
139620       ,p_module   => l_log_module);
139621 END IF;
139622 --
139623 EXCEPTION
139624   WHEN xla_exceptions_pkg.application_exception THEN
139625       RAISE;
139626   WHEN OTHERS THEN
139627        xla_exceptions_pkg.raise_message
139628            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_230');
139629 END AcctLineType_230;
139630 --
139631 
139632 ---------------------------------------
139633 --
139634 -- PRIVATE FUNCTION
139635 --         AcctLineType_231
139636 --
139637 ---------------------------------------
139638 PROCEDURE AcctLineType_231 (
139639   p_application_id        IN NUMBER
139640  ,p_event_id              IN NUMBER
139641  ,p_calculate_acctd_flag  IN VARCHAR2
139642  ,p_calculate_g_l_flag    IN VARCHAR2
139643  ,p_actual_flag           IN OUT VARCHAR2
139644  ,p_balance_type_code     OUT VARCHAR2
139645  ,p_gain_or_loss_ref      OUT VARCHAR2
139646  
139647 --Invoice Distribution Description
139648  , p_source_1            IN VARCHAR2
139649 --Invoice Distribution Ledger Amount
139650  , p_source_9            IN NUMBER
139651 --Invoice Distribution Type
139652  , p_source_21            IN VARCHAR2
139653  , p_source_21_meaning    IN VARCHAR2
139654 --Accounting Reversal Indicator
139655  , p_source_41            IN VARCHAR2
139656 --Distribution Link Type
139657  , p_source_43            IN VARCHAR2
139658 --Allocation to Main Distribution Identifier
139659  , p_source_45            IN NUMBER
139660 --Invoice Identifier
139661  , p_source_46            IN NUMBER
139662 --Invoice Distribution Identifier
139663  , p_source_52            IN NUMBER
139664 --Payables Encumbrance Upgrade Credit Account
139665  , p_source_53            IN NUMBER
139666 --Payables Encumbrance Upgrade Credit Amount
139667  , p_source_54            IN NUMBER
139668 --Invoice Currency Code
139669  , p_source_55            IN VARCHAR2
139670 --Payables Encumbrance Upgrade Credit Base Amount
139671  , p_source_56            IN NUMBER
139672 --Payables Encumbrance Upgrade Debit Account
139673  , p_source_57            IN NUMBER
139674 --Payables Encumbrance Upgrade Debit Amount
139675  , p_source_58            IN NUMBER
139676 --Payables Encumbrance Upgrade Debit Base Amount
139677  , p_source_59            IN NUMBER
139678 --Payables Encumbrance Upgrade Option
139679  , p_source_60            IN VARCHAR2
139680 --Invoice Distribution Amount
139684 --Deferred Accounting Option
139681  , p_source_61            IN NUMBER
139682 --Deferred Accounting End Date
139683  , p_source_65            IN DATE
139685  , p_source_66            IN VARCHAR2
139686 --Deferred Accounting Start Date
139687  , p_source_67            IN DATE
139688 --Override Accounted Amount Indicator
139689  , p_source_68            IN VARCHAR2
139690  , p_source_68_meaning    IN VARCHAR2
139691 --Third Party Type
139692  , p_source_71            IN VARCHAR2
139693 --Parent Reversal Identifier
139694  , p_source_72            IN NUMBER
139695 --Invoice Distribution Statistical Amount
139696  , p_source_73            IN NUMBER
139697 --Invoice Distribution Tax Line Identifier
139698  , p_source_74            IN NUMBER
139699 --Invoice Distribution Tax Distribution Identifier from Tax
139700  , p_source_75            IN NUMBER
139701 --Invoice Distribution Summary Tax Line Identifier
139702  , p_source_76            IN NUMBER
139703 --Payables Upgrade Credit Encumbrance Type Identifier
139704  , p_source_77            IN NUMBER
139705 --Payables Upgrade Debit Encumbrance Type Identifier
139706  , p_source_78            IN NUMBER
139707 --Business Flow Accounts Payable Application Identifier
139708  , p_source_79            IN NUMBER
139709 --Business Flow Invoice Distribution Type
139710  , p_source_80            IN VARCHAR2
139711 --Business Flow Invoice Entity Code
139712  , p_source_81            IN VARCHAR2
139713 --Invoice Type
139714  , p_source_159            IN VARCHAR2
139715  , p_source_159_meaning    IN VARCHAR2
139716 --Business Flow Retained Invoice Distribution
139717  , p_source_163            IN NUMBER
139718 --Business Flow Retained Invoice
139719  , p_source_164            IN NUMBER
139720 )
139721 IS
139722 
139723 l_component_type              VARCHAR2(80);
139724 l_component_code              VARCHAR2(30);
139725 l_component_type_code         VARCHAR2(1);
139726 l_component_appl_id           INTEGER;
139727 l_amb_context_code            VARCHAR2(30);
139728 l_entity_code                 VARCHAR2(30);
139729 l_event_class_code            VARCHAR2(30);
139730 l_ae_header_id                NUMBER;
139731 l_event_type_code             VARCHAR2(30);
139732 l_line_definition_code        VARCHAR2(30);
139733 l_line_definition_owner_code  VARCHAR2(1);
139734 --
139735 -- adr variables
139736 l_segment                     VARCHAR2(30);
139737 l_ccid                        NUMBER;
139741 l_adr_flex_value_set_id       NUMBER;
139738 l_adr_transaction_coa_id      NUMBER;
139739 l_adr_accounting_coa_id       NUMBER;
139740 l_adr_flexfield_segment_code  VARCHAR2(30);
139742 l_adr_value_type_code         VARCHAR2(30);
139743 l_adr_value_combination_id    NUMBER;
139744 l_adr_value_segment_code      VARCHAR2(30);
139745 
139746 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
139747 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
139748 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
139749 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
139750 
139751 -- 4262811 Variables ------------------------------------------------------------------------------------------
139752 l_entered_amt_idx             NUMBER;
139753 l_accted_amt_idx              NUMBER;
139754 l_acc_rev_flag                VARCHAR2(1);
139755 l_accrual_line_num            NUMBER;
139756 l_tmp_amt                     NUMBER;
139757 l_acc_rev_natural_side_code   VARCHAR2(1);
139758 
139759 l_num_entries                 NUMBER;
139760 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
139761 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
139762 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
139763 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
139764 l_recog_line_1                NUMBER;
139765 l_recog_line_2                NUMBER;
139766 
139767 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
139768 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
139769 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
139770 
139771 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
139772 
139773 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
139774 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
139775 
139776 ---------------------------------------------------------------------------------------------------------------
139777 
139778 
139779 --
139780 -- bulk performance
139781 --
139782 l_balance_type_code           VARCHAR2(1);
139783 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
139784 l_log_module                  VARCHAR2(240);
139785 
139786 --
139790 l_enc_upg_option           VARCHAR2(1);
139787 -- Upgrade strategy
139788 --
139789 l_actual_upg_option           VARCHAR2(1);
139791 
139792 --
139793 BEGIN
139794 --
139795 IF g_log_enabled THEN
139796       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_231';
139797 END IF;
139798 --
139799 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
139800 
139801       trace
139802          (p_msg      => 'BEGIN of AcctLineType_231'
139803          ,p_level    => C_LEVEL_PROCEDURE
139804          ,p_module   => l_log_module);
139805 
139806 END IF;
139807 --
139808 l_component_type             := 'AMB_JLT';
139809 l_component_code             := 'AP_RETAINAGE_RELEASE_ACCR';
139810 l_component_type_code        := 'S';
139811 l_component_appl_id          :=  200;
139812 l_amb_context_code           := 'DEFAULT';
139813 l_entity_code                := 'AP_INVOICES';
139814 l_event_class_code           := 'INVOICES';
139815 l_event_type_code            := 'INVOICES_ALL';
139816 l_line_definition_owner_code := 'S';
139817 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
139818 --
139819 l_balance_type_code          := 'A';
139820 l_segment                     := NULL;
139821 l_ccid                        := NULL;
139822 l_adr_transaction_coa_id      := NULL;
139823 l_adr_accounting_coa_id       := NULL;
139824 l_adr_flexfield_segment_code  := NULL;
139825 l_adr_flex_value_set_id       := NULL;
139826 l_adr_value_type_code         := NULL;
139827 l_adr_value_combination_id    := NULL;
139828 l_adr_value_segment_code      := NULL;
139829 
139830 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
139831 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
139832 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
139833 l_budgetary_control_flag     := 'N';
139834 
139835 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
139836 l_bflow_applied_to_amt       := NULL; -- 5132302
139837 l_entered_amt_idx            := NULL;          -- 4262811
139838 l_accted_amt_idx             := NULL;          -- 4262811
139839 l_acc_rev_flag               := NULL;          -- 4262811
139840 l_accrual_line_num           := NULL;          -- 4262811
139841 l_tmp_amt                    := NULL;          -- 4262811
139842 --
139843  
139844 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
139845     l_balance_type_code <> 'B' THEN
139846 IF NVL(p_source_159,'
139847 ') =  'RETAINAGE RELEASE' AND 
139848 NVL(p_source_21,'
139849 ') =  'RETAINAGE'
139850  THEN 
139851 
139852    --
139853    XLA_AE_LINES_PKG.SetNewLine;
139854 
139855    p_balance_type_code          := l_balance_type_code;
139856    -- set the flag so later we will know whether the gain loss line needs to be created
139857    
139858    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
139859      p_actual_flag :='A';
139860    END IF;
139861 
139862    --
139863    -- bulk performance
139864    --
139865    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
139866                                       p_header_num   => 0); -- 4262811
139867    --
139868    -- set accounting line options
139869    --
139870    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
139871            p_natural_side_code          => 'D'
139872          , p_gain_or_loss_flag          => 'N'
139873          , p_gl_transfer_mode_code      => 'S'
139874          , p_acct_entry_type_code       => 'A'
139875          , p_switch_side_flag           => 'Y'
139876          , p_merge_duplicate_code       => 'A'
139877          );
139878    --
139879    l_acc_rev_natural_side_code := 'C';  -- 4262811
139880    -- 
139881    --
139882    -- set accounting line type info
139883    --
139884    xla_ae_lines_pkg.SetAcctLineType
139885       (p_component_type             => l_component_type
139886       ,p_event_type_code            => l_event_type_code
139887       ,p_line_definition_owner_code => l_line_definition_owner_code
139888       ,p_line_definition_code       => l_line_definition_code
139889       ,p_accounting_line_code       => l_component_code
139890       ,p_accounting_line_type_code  => l_component_type_code
139891       ,p_accounting_line_appl_id    => l_component_appl_id
139892       ,p_amb_context_code           => l_amb_context_code
139893       ,p_entity_code                => l_entity_code
139897    --
139894       ,p_event_class_code           => l_event_class_code);
139895    --
139896    -- set accounting class
139898    xla_ae_lines_pkg.SetAcctClass(
139902 
139899            p_accounting_class_code  => 'RETAINAGE'
139900          , p_ae_header_id           => l_ae_header_id
139901          );
139903    --
139904    -- set rounding class
139905    --
139906    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
139907                       'RETAINAGE';
139908 
139909    --
139910    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
139911    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
139912    --
139913    -- bulk performance
139914    --
139915    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
139916 
139917    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
139918       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
139919 
139920    -- 4955764
139921    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
139922       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
139923 
139924    -- 4458381 Public Sector Enh
139925    
139926    --
139927    -- set accounting attributes for the line type
139928    --
139929    l_entered_amt_idx := 24;
139930    l_accted_amt_idx  := 26;
139931    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
139932    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
139933    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
139934    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
139935    l_rec_acct_attrs.array_num_value(2)  := 
139936 xla_ae_sources_pkg.GetSystemSourceNum(
139937    p_source_code           => 'XLA_EVENT_APPL_ID'
139938  , p_source_type_code      => 'Y'
139939  , p_source_application_id =>  602
139940 );
139941    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
139942    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
139943    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
139944    l_rec_acct_attrs.array_char_value(4)  := 
139945 xla_ae_sources_pkg.GetSystemSourceChar(
139946    p_source_code           => 'XLA_ENTITY_CODE'
139947  , p_source_type_code      => 'Y'
139948  , p_source_application_id =>  602
139949 );
139950    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
139951    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
139952    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
139953    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
139954    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
139955    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
139956    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
139957    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
139958    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
139959    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
139960    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
139961    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
139962    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
139963    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_163);
139964    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
139965    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_164);
139966    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
139967    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
139968    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
139969    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
139970    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
139971    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
139972    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
139973    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
139974    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
139975    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
139976    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
139977    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
139978    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
139979    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
139980    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
139981    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
139982    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
139983    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
139984    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
139985    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
139986    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
139987    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
139988    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
139989    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
139990    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
139991    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
139992    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
139993    l_rec_acct_attrs.array_num_value(26)  := p_source_9;
139994    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
139995    l_rec_acct_attrs.array_date_value(27)  := p_source_65;
139996    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
139997    l_rec_acct_attrs.array_char_value(28)  := p_source_66;
139998    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
139999    l_rec_acct_attrs.array_date_value(29)  := p_source_67;
140003    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
140000    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
140001    l_rec_acct_attrs.array_char_value(30)  := p_source_68;
140002    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
140004    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
140005    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
140006    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
140007    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
140008    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
140009    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
140010    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
140011    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
140012    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
140013    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
140014    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
140015    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
140016    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
140017    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
140018    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
140019    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
140020 
140021    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
140022    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
140023 
140024    ---------------------------------------------------------------------------------------------------------------
140025    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
140026    ---------------------------------------------------------------------------------------------------------------
140027    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
140028 
140029    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
140030    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
140031 
140032    IF xla_accounting_cache_pkg.GetValueChar
140033          (p_source_code         => 'LEDGER_CATEGORY_CODE'
140034          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
140035    AND l_bflow_method_code = 'PRIOR_ENTRY'
140036 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
140037    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
140038          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
140039        )
140040    THEN
140041          xla_ae_lines_pkg.BflowUpgEntry
140042            (p_business_method_code    => l_bflow_method_code
140043            ,p_business_class_code     => l_bflow_class_code
140044            ,p_balance_type            => l_balance_type_code);
140045    ELSE
140046       NULL;
140047 XLA_AE_LINES_PKG.business_flow_validation(
140048                                 p_business_method_code     => l_bflow_method_code
140049                                ,p_business_class_code      => l_bflow_class_code
140050                                ,p_inherit_description_flag => l_inherit_desc_flag);
140051    END IF;
140052 
140053    --
140054    -- call analytical criteria
140055    --
140056    -- Inherited Analytical Criteria for business flow method of Prior Entry.
140057    --
140058    -- call description
140059    --
140060    
140061 xla_ae_lines_pkg.SetLineDescription(
140062    p_ae_header_id => l_ae_header_id
140063   ,p_description  => Description_2 (
140064      p_application_id         => p_application_id
140065    , p_ae_header_id           => l_ae_header_id 
140066 , p_source_1 => p_source_1
140067    )
140068 );
140069 
140070 
140071    --
140072    -- call ADRs
140073    -- Bug 4922099
140074    --
140075    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
140076         (NVL(l_actual_upg_option, 'N') = 'O') OR
140077         (NVL(l_enc_upg_option, 'N') = 'O')
140078       )
140079    THEN
140080    NULL;
140081    --
140082    --
140083    
140084    --
140085    --
140086    END IF;
140087    --
140088    -- Bug 4922099
140089    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
140090           (NVL(l_enc_upg_option, 'N') = 'O')
140091         ) AND
140092         (l_bflow_method_code = 'PRIOR_ENTRY')
140093       )
140094    THEN
140095       IF
140096       --
140097       1 = 1
140098       --
140099       THEN
140100       xla_accounting_err_pkg.build_message
140101                                     (p_appli_s_name            => 'XLA'
140102                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
140103                                     ,p_token_1                 => 'LINE_NUMBER'
140104                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
140105                                     ,p_token_2                 => 'LINE_TYPE_NAME'
140106                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
140107                                                                              l_component_type
140108                                                                             ,l_component_code
140109                                                                             ,l_component_type_code
140110                                                                             ,l_component_appl_id
140111                                                                             ,l_amb_context_code
140112                                                                             ,l_entity_code
140113                                                                             ,l_event_class_code
140117                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
140114                                                                            )
140115                                     ,p_token_3                 => 'OWNER'
140116                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
140118                                                                           ,p_lookup_code    => l_component_type_code
140119                                                                          )
140120                                     ,p_token_4                 => 'PRODUCT_NAME'
140121                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
140122                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
140123                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
140124                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
140125                                     ,p_ae_header_id            =>  NULL
140126                                        );
140127 
140128         IF (C_LEVEL_ERROR>= g_log_level) THEN
140129                  trace
140130                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
140131                       ,p_level    => C_LEVEL_ERROR
140132                       ,p_module   => l_log_module);
140133         END IF;
140134       END IF;
140135    END IF;
140136    --
140137    --
140138    ------------------------------------------------------------------------------------------------
140139    -- 4219869 Business Flow
140140    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
140141    -- Prior Entry.  Currently, the following code is always generated.
140142    ------------------------------------------------------------------------------------------------
140143    -- No ValidateCurrentLine for business flow method of Prior Entry
140144 
140145    ------------------------------------------------------------------------------------
140146    -- 4219869 Business Flow
140147    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
140148    ------------------------------------------------------------------------------------
140149    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
140150 
140151    ----------------------------------------------------------------------------------
140152    -- 4219869 Business Flow
140153    -- Update journal entry status -- Need to generate this within IF <condition>
140154    ----------------------------------------------------------------------------------
140155    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
140156          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
140157          ,p_balance_type_code => l_balance_type_code
140158          );
140159 
140160    -------------------------------------------------------------------------------------------
140161    -- 4262811 - Generate the Accrual Reversal lines
140162    -------------------------------------------------------------------------------------------
140163    BEGIN
140164       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
140165                               (g_array_event(p_event_id).array_value_num('header_index'));
140166       IF l_acc_rev_flag IS NULL THEN
140167          l_acc_rev_flag := 'N';
140168       END IF;
140169    EXCEPTION
140170       WHEN OTHERS THEN
140171          l_acc_rev_flag := 'N';
140172    END;
140173    --
140174    IF (l_acc_rev_flag = 'Y') THEN
140175 
140176        -- 4645092  ------------------------------------------------------------------------------
140177        -- To allow MPA report to determine if it should generate report process
140178        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
140179        ------------------------------------------------------------------------------------------
140180 
140181        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
140182        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
140183    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
140184    -- call ADRs
140185    -- Bug 4922099
140186    --
140187    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
140188         (NVL(l_actual_upg_option, 'N') = 'O') OR
140189         (NVL(l_enc_upg_option, 'N') = 'O')
140190       )
140191    THEN
140192    NULL;
140193    --
140194    --
140195    
140196    --
140197    --
140198    END IF;
140199 
140200        --
140201        -- Update the line information that should be overwritten
140202        --
140203        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
140204                                          p_header_num   => 1);
140205        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
140206 
140207        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
140208 
140209        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
140210           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
140211        END IF;
140212 
140213       --
140214       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
140215       --
140216       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
140217           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
140218       ELSE
140219           ---------------------------------------------------------------------------------------------------
140220           -- 4262811a Switch Sign
140224                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
140221           ---------------------------------------------------------------------------------------------------
140222           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
140223           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
140225           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
140226                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
140227           -- 5132302
140228           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
140229                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
140230 
140231       END IF;
140232 
140233       -- 4955764
140234       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
140235       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
140236 
140237 
140238       XLA_AE_LINES_PKG.ValidateCurrentLine;
140239       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
140240 
140241       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
140242                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
140243                ,p_balance_type_code => l_balance_type_code);
140244 
140245    END IF;
140246 
140247    -----------------------------------------------------------------------------------------
140248    -- 4262811 Multiperiod Accounting
140249    -----------------------------------------------------------------------------------------
140250      -- No MPA option is assigned.
140251 
140252 
140253 END IF;
140254 END IF;
140255 --
140256 
140257 --
140258 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
140259    trace
140260       (p_msg      => 'END of AcctLineType_231'
140261       ,p_level    => C_LEVEL_PROCEDURE
140262       ,p_module   => l_log_module);
140263 END IF;
140264 --
140265 EXCEPTION
140266   WHEN xla_exceptions_pkg.application_exception THEN
140267       RAISE;
140268   WHEN OTHERS THEN
140269        xla_exceptions_pkg.raise_message
140270            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_231');
140271 END AcctLineType_231;
140272 --
140273 
140274 ---------------------------------------
140275 --
140276 -- PRIVATE FUNCTION
140277 --         AcctLineType_232
140278 --
140279 ---------------------------------------
140280 PROCEDURE AcctLineType_232 (
140281   p_application_id        IN NUMBER
140282  ,p_event_id              IN NUMBER
140283  ,p_calculate_acctd_flag  IN VARCHAR2
140287  ,p_gain_or_loss_ref      OUT VARCHAR2
140284  ,p_calculate_g_l_flag    IN VARCHAR2
140285  ,p_actual_flag           IN OUT VARCHAR2
140286  ,p_balance_type_code     OUT VARCHAR2
140288  
140289 --Invoice Distribution Type
140290  , p_source_21            IN VARCHAR2
140291  , p_source_21_meaning    IN VARCHAR2
140292 --Accounting Reversal Indicator
140293  , p_source_41            IN VARCHAR2
140294 --Distribution Link Type
140295  , p_source_43            IN VARCHAR2
140296 --Allocation to Main Distribution Identifier
140297  , p_source_45            IN NUMBER
140298 --Invoice Identifier
140299  , p_source_46            IN NUMBER
140300 --Invoice Distribution Identifier
140301  , p_source_52            IN NUMBER
140302 --Payables Encumbrance Upgrade Credit Account
140303  , p_source_53            IN NUMBER
140304 --Payables Encumbrance Upgrade Credit Amount
140305  , p_source_54            IN NUMBER
140306 --Invoice Currency Code
140307  , p_source_55            IN VARCHAR2
140308 --Payables Encumbrance Upgrade Credit Base Amount
140309  , p_source_56            IN NUMBER
140313  , p_source_58            IN NUMBER
140310 --Payables Encumbrance Upgrade Debit Account
140311  , p_source_57            IN NUMBER
140312 --Payables Encumbrance Upgrade Debit Amount
140314 --Payables Encumbrance Upgrade Debit Base Amount
140315  , p_source_59            IN NUMBER
140316 --Payables Encumbrance Upgrade Option
140317  , p_source_60            IN VARCHAR2
140318 --Deferred Accounting End Date
140319  , p_source_65            IN DATE
140320 --Deferred Accounting Option
140321  , p_source_66            IN VARCHAR2
140322 --Deferred Accounting Start Date
140323  , p_source_67            IN DATE
140324 --Override Accounted Amount Indicator
140325  , p_source_68            IN VARCHAR2
140326  , p_source_68_meaning    IN VARCHAR2
140327 --Third Party Type
140328  , p_source_71            IN VARCHAR2
140329 --Parent Reversal Identifier
140330  , p_source_72            IN NUMBER
140331 --Invoice Distribution Statistical Amount
140332  , p_source_73            IN NUMBER
140333 --Invoice Distribution Tax Line Identifier
140334  , p_source_74            IN NUMBER
140335 --Invoice Distribution Tax Distribution Identifier from Tax
140336  , p_source_75            IN NUMBER
140337 --Invoice Distribution Summary Tax Line Identifier
140338  , p_source_76            IN NUMBER
140339 --Payables Upgrade Credit Encumbrance Type Identifier
140340  , p_source_77            IN NUMBER
140341 --Payables Upgrade Debit Encumbrance Type Identifier
140342  , p_source_78            IN NUMBER
140343 --Business Flow Accounts Payable Application Identifier
140344  , p_source_79            IN NUMBER
140345 --Business Flow Invoice Distribution Type
140346  , p_source_80            IN VARCHAR2
140347 --Business Flow Invoice Entity Code
140348  , p_source_81            IN VARCHAR2
140349 --Business Flow Invoice Distribution Identifier
140350  , p_source_82            IN NUMBER
140351 --Business Flow Invoice Identifier
140352  , p_source_83            IN NUMBER
140353 --Purchasing Encumbrance Option
140354  , p_source_86            IN VARCHAR2
140355  , p_source_86_meaning    IN VARCHAR2
140356 --Invoice Encumbered Option
140357  , p_source_87            IN VARCHAR2
140358  , p_source_87_meaning    IN VARCHAR2
140359 --Self-Assessed Tax Flag
140360  , p_source_135            IN VARCHAR2
140361  , p_source_135_meaning    IN VARCHAR2
140362 --Invoice Distribution Encumbrance Amount
140363  , p_source_143            IN NUMBER
140364 --Invoice Distribution Encumbrance Ledger Amount
140365  , p_source_144            IN NUMBER
140366 )
140367 IS
140368 
140369 l_component_type              VARCHAR2(80);
140370 l_component_code              VARCHAR2(30);
140371 l_component_type_code         VARCHAR2(1);
140372 l_component_appl_id           INTEGER;
140373 l_amb_context_code            VARCHAR2(30);
140374 l_entity_code                 VARCHAR2(30);
140375 l_event_class_code            VARCHAR2(30);
140376 l_ae_header_id                NUMBER;
140377 l_event_type_code             VARCHAR2(30);
140378 l_line_definition_code        VARCHAR2(30);
140379 l_line_definition_owner_code  VARCHAR2(1);
140380 --
140381 -- adr variables
140382 l_segment                     VARCHAR2(30);
140383 l_ccid                        NUMBER;
140384 l_adr_transaction_coa_id      NUMBER;
140385 l_adr_accounting_coa_id       NUMBER;
140386 l_adr_flexfield_segment_code  VARCHAR2(30);
140387 l_adr_flex_value_set_id       NUMBER;
140388 l_adr_value_type_code         VARCHAR2(30);
140389 l_adr_value_combination_id    NUMBER;
140390 l_adr_value_segment_code      VARCHAR2(30);
140391 
140392 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
140393 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
140394 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
140395 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
140396 
140397 -- 4262811 Variables ------------------------------------------------------------------------------------------
140398 l_entered_amt_idx             NUMBER;
140399 l_accted_amt_idx              NUMBER;
140400 l_acc_rev_flag                VARCHAR2(1);
140401 l_accrual_line_num            NUMBER;
140402 l_tmp_amt                     NUMBER;
140403 l_acc_rev_natural_side_code   VARCHAR2(1);
140404 
140405 l_num_entries                 NUMBER;
140406 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
140407 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
140408 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
140409 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
140410 l_recog_line_1                NUMBER;
140411 l_recog_line_2                NUMBER;
140412 
140413 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
140414 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
140415 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
140416 
140417 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
140418 
140419 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
140420 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
140421 
140422 ---------------------------------------------------------------------------------------------------------------
140423 
140424 
140425 --
140426 -- bulk performance
140427 --
140428 l_balance_type_code           VARCHAR2(1);
140429 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
140430 l_log_module                  VARCHAR2(240);
140431 
140432 --
140433 -- Upgrade strategy
140434 --
140435 l_actual_upg_option           VARCHAR2(1);
140436 l_enc_upg_option           VARCHAR2(1);
140437 
140438 --
140439 BEGIN
140443 END IF;
140440 --
140441 IF g_log_enabled THEN
140442       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_232';
140444 --
140445 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
140446 
140447       trace
140448          (p_msg      => 'BEGIN of AcctLineType_232'
140449          ,p_level    => C_LEVEL_PROCEDURE
140450          ,p_module   => l_log_module);
140451 
140452 END IF;
140453 --
140454 l_component_type             := 'AMB_JLT';
140455 l_component_code             := 'AP_SELF_ASSD_NREC_TAX_CM_ENC';
140456 l_component_type_code        := 'S';
140457 l_component_appl_id          :=  200;
140458 l_amb_context_code           := 'DEFAULT';
140459 l_entity_code                := 'AP_INVOICES';
140460 l_event_class_code           := 'CREDIT MEMOS';
140461 l_event_type_code            := 'CREDIT MEMOS_ALL';
140462 l_line_definition_owner_code := 'S';
140463 l_line_definition_code       := 'ENC_REV_CM_ALL';
140464 --
140465 l_balance_type_code          := 'E';
140466 l_segment                     := NULL;
140467 l_ccid                        := NULL;
140468 l_adr_transaction_coa_id      := NULL;
140469 l_adr_accounting_coa_id       := NULL;
140470 l_adr_flexfield_segment_code  := NULL;
140471 l_adr_flex_value_set_id       := NULL;
140472 l_adr_value_type_code         := NULL;
140473 l_adr_value_combination_id    := NULL;
140474 l_adr_value_segment_code      := NULL;
140475 
140476 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
140477 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
140478 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
140479 l_budgetary_control_flag     := 'N';
140480 
140481 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
140482 l_bflow_applied_to_amt       := NULL; -- 5132302
140483 l_entered_amt_idx            := NULL;          -- 4262811
140484 l_accted_amt_idx             := NULL;          -- 4262811
140485 l_acc_rev_flag               := NULL;          -- 4262811
140486 l_accrual_line_num           := NULL;          -- 4262811
140487 l_tmp_amt                    := NULL;          -- 4262811
140488 --
140489  
140490 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
140491     l_balance_type_code <> 'B' THEN
140492 IF NVL(p_source_21,'
140493 ') =  'NONREC_TAX' AND 
140494 NVL(p_source_135,'
140495 ') =  'Y' AND 
140496 NVL(p_source_86,'
140497 ') =  'Y' AND 
140498 NVL(p_source_87,'
140499 ') =  'Y'
140500  THEN 
140501 
140502    --
140503    XLA_AE_LINES_PKG.SetNewLine;
140504 
140505    p_balance_type_code          := l_balance_type_code;
140506    -- set the flag so later we will know whether the gain loss line needs to be created
140507    
140508    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
140509      p_actual_flag :='A';
140510    END IF;
140511 
140512    --
140513    -- bulk performance
140514    --
140515    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
140516                                       p_header_num   => 0); -- 4262811
140517    --
140518    -- set accounting line options
140519    --
140520    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
140521            p_natural_side_code          => 'C'
140522          , p_gain_or_loss_flag          => 'N'
140523          , p_gl_transfer_mode_code      => 'S'
140524          , p_acct_entry_type_code       => 'E'
140525          , p_switch_side_flag           => 'Y'
140526          , p_merge_duplicate_code       => 'A'
140527          );
140528    --
140529    l_acc_rev_natural_side_code := 'D';  -- 4262811
140530    -- 
140531    --
140532    -- set accounting line type info
140533    --
140534    xla_ae_lines_pkg.SetAcctLineType
140535       (p_component_type             => l_component_type
140536       ,p_event_type_code            => l_event_type_code
140537       ,p_line_definition_owner_code => l_line_definition_owner_code
140538       ,p_line_definition_code       => l_line_definition_code
140539       ,p_accounting_line_code       => l_component_code
140540       ,p_accounting_line_type_code  => l_component_type_code
140541       ,p_accounting_line_appl_id    => l_component_appl_id
140542       ,p_amb_context_code           => l_amb_context_code
140543       ,p_entity_code                => l_entity_code
140544       ,p_event_class_code           => l_event_class_code);
140545    --
140546    -- set accounting class
140547    --
140548    xla_ae_lines_pkg.SetAcctClass(
140549            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
140550          , p_ae_header_id           => l_ae_header_id
140551          );
140552 
140553    --
140554    -- set rounding class
140555    --
140556    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
140560    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
140557                       'SELF_ASSESSED_TAX';
140558 
140559    --
140561    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
140562    --
140563    -- bulk performance
140564    --
140565    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
140566 
140567    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
140568       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
140569 
140570    -- 4955764
140571    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
140572       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
140573 
140574    -- 4458381 Public Sector Enh
140575    
140576    --
140577    -- set accounting attributes for the line type
140578    --
140579    l_entered_amt_idx := 23;
140580    l_accted_amt_idx  := 25;
140581    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
140582    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
140583    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
140584    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
140585    l_rec_acct_attrs.array_num_value(2)  := 
140586 xla_ae_sources_pkg.GetSystemSourceNum(
140587    p_source_code           => 'XLA_EVENT_APPL_ID'
140588  , p_source_type_code      => 'Y'
140589  , p_source_application_id =>  602
140590 );
140591    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
140592    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
140593    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
140594    l_rec_acct_attrs.array_char_value(4)  := 
140595 xla_ae_sources_pkg.GetSystemSourceChar(
140596    p_source_code           => 'XLA_ENTITY_CODE'
140597  , p_source_type_code      => 'Y'
140598  , p_source_application_id =>  602
140599 );
140600    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
140601    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
140602    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
140603    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
140604    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
140605    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
140606    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
140607    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
140608    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
140609    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
140610    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
140611    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
140612    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
140613    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
140614    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
140615    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
140616    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
140617    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
140618    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
140619    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
140620    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
140621    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
140622    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
140623    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
140624    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
140625    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
140626    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
140627    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
140628    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
140629    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
140630    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
140631    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
140632    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
140633    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
140634    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
140635    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
140636    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
140637    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
140638    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
140639    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
140640    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
140641    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
140642    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
140643    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
140644    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
140645    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
140646    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
140647    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
140648    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
140649    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
140650    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
140651    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
140652    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
140653    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
140654    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
140655    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
140656    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
140660    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
140657    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
140658    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
140659    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
140661    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
140662    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
140663    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
140664    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
140665    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
140666    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
140667    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
140668 
140669    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
140670    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
140671 
140672    ---------------------------------------------------------------------------------------------------------------
140673    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
140674    ---------------------------------------------------------------------------------------------------------------
140675    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
140676 
140677    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
140678    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
140679 
140680    IF xla_accounting_cache_pkg.GetValueChar
140681          (p_source_code         => 'LEDGER_CATEGORY_CODE'
140682          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
140683    AND l_bflow_method_code = 'PRIOR_ENTRY'
140684 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
140685    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
140686          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
140687        )
140688    THEN
140689          xla_ae_lines_pkg.BflowUpgEntry
140690            (p_business_method_code    => l_bflow_method_code
140691            ,p_business_class_code     => l_bflow_class_code
140692            ,p_balance_type            => l_balance_type_code);
140693    ELSE
140694       NULL;
140695 XLA_AE_LINES_PKG.business_flow_validation(
140696                                 p_business_method_code     => l_bflow_method_code
140697                                ,p_business_class_code      => l_bflow_class_code
140698                                ,p_inherit_description_flag => l_inherit_desc_flag);
140699    END IF;
140700 
140701    --
140702    -- call analytical criteria
140703    --
140704    -- Inherited Analytical Criteria for business flow method of Prior Entry.
140705    --
140706    -- call description
140707    --
140708    -- No description or it is inherited.
140709    --
140710    -- call ADRs
140711    -- Bug 4922099
140712    --
140713    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
140714         (NVL(l_actual_upg_option, 'N') = 'O') OR
140715         (NVL(l_enc_upg_option, 'N') = 'O')
140716       )
140717    THEN
140718    NULL;
140719    --
140720    --
140721    
140722    --
140723    --
140724    END IF;
140725    --
140726    -- Bug 4922099
140727    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
140728           (NVL(l_enc_upg_option, 'N') = 'O')
140729         ) AND
140730         (l_bflow_method_code = 'PRIOR_ENTRY')
140731       )
140732    THEN
140733       IF
140734       --
140735       1 = 1
140736       --
140737       THEN
140738       xla_accounting_err_pkg.build_message
140739                                     (p_appli_s_name            => 'XLA'
140740                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
140741                                     ,p_token_1                 => 'LINE_NUMBER'
140742                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
140743                                     ,p_token_2                 => 'LINE_TYPE_NAME'
140744                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
140745                                                                              l_component_type
140746                                                                             ,l_component_code
140747                                                                             ,l_component_type_code
140748                                                                             ,l_component_appl_id
140749                                                                             ,l_amb_context_code
140750                                                                             ,l_entity_code
140751                                                                             ,l_event_class_code
140752                                                                            )
140753                                     ,p_token_3                 => 'OWNER'
140754                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
140755                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
140756                                                                           ,p_lookup_code    => l_component_type_code
140757                                                                          )
140758                                     ,p_token_4                 => 'PRODUCT_NAME'
140759                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
140760                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
140761                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
140765 
140762                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
140763                                     ,p_ae_header_id            =>  NULL
140764                                        );
140766         IF (C_LEVEL_ERROR>= g_log_level) THEN
140767                  trace
140768                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
140769                       ,p_level    => C_LEVEL_ERROR
140770                       ,p_module   => l_log_module);
140771         END IF;
140772       END IF;
140773    END IF;
140774    --
140775    --
140776    ------------------------------------------------------------------------------------------------
140777    -- 4219869 Business Flow
140778    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
140779    -- Prior Entry.  Currently, the following code is always generated.
140780    ------------------------------------------------------------------------------------------------
140781    -- No ValidateCurrentLine for business flow method of Prior Entry
140782 
140783    ------------------------------------------------------------------------------------
140784    -- 4219869 Business Flow
140785    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
140786    ------------------------------------------------------------------------------------
140787    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
140788 
140789    ----------------------------------------------------------------------------------
140790    -- 4219869 Business Flow
140791    -- Update journal entry status -- Need to generate this within IF <condition>
140792    ----------------------------------------------------------------------------------
140793    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
140794          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
140795          ,p_balance_type_code => l_balance_type_code
140796          );
140797 
140798    -------------------------------------------------------------------------------------------
140799    -- 4262811 - Generate the Accrual Reversal lines
140800    -------------------------------------------------------------------------------------------
140801    BEGIN
140802       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
140803                               (g_array_event(p_event_id).array_value_num('header_index'));
140804       IF l_acc_rev_flag IS NULL THEN
140805          l_acc_rev_flag := 'N';
140806       END IF;
140807    EXCEPTION
140808       WHEN OTHERS THEN
140809          l_acc_rev_flag := 'N';
140810    END;
140811    --
140812    IF (l_acc_rev_flag = 'Y') THEN
140813 
140814        -- 4645092  ------------------------------------------------------------------------------
140815        -- To allow MPA report to determine if it should generate report process
140816        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
140817        ------------------------------------------------------------------------------------------
140818 
140819        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
140820        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
140821    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
140822    -- call ADRs
140823    -- Bug 4922099
140824    --
140825    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
140826         (NVL(l_actual_upg_option, 'N') = 'O') OR
140827         (NVL(l_enc_upg_option, 'N') = 'O')
140828       )
140829    THEN
140830    NULL;
140831    --
140832    --
140833    
140834    --
140835    --
140836    END IF;
140837 
140838        --
140839        -- Update the line information that should be overwritten
140840        --
140841        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
140842                                          p_header_num   => 1);
140843        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
140844 
140845        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
140846 
140847        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
140848           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
140849        END IF;
140850 
140851       --
140852       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
140853       --
140854       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
140855           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
140856       ELSE
140857           ---------------------------------------------------------------------------------------------------
140858           -- 4262811a Switch Sign
140859           ---------------------------------------------------------------------------------------------------
140860           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
140861           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
140862                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
140863           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
140864                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
140865           -- 5132302
140866           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
140867                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
140868 
140869       END IF;
140870 
140871       -- 4955764
140872       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
140876       XLA_AE_LINES_PKG.ValidateCurrentLine;
140873       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
140874 
140875 
140877       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
140878 
140879       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
140880                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
140881                ,p_balance_type_code => l_balance_type_code);
140882 
140883    END IF;
140884 
140885    -----------------------------------------------------------------------------------------
140886    -- 4262811 Multiperiod Accounting
140887    -----------------------------------------------------------------------------------------
140888      -- No MPA option is assigned.
140889 
140890 
140891 END IF;
140892 END IF;
140893 --
140894 
140895 --
140896 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
140897    trace
140898       (p_msg      => 'END of AcctLineType_232'
140899       ,p_level    => C_LEVEL_PROCEDURE
140900       ,p_module   => l_log_module);
140901 END IF;
140902 --
140903 EXCEPTION
140904   WHEN xla_exceptions_pkg.application_exception THEN
140905       RAISE;
140906   WHEN OTHERS THEN
140907        xla_exceptions_pkg.raise_message
140908            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_232');
140909 END AcctLineType_232;
140910 --
140911 
140912 ---------------------------------------
140913 --
140914 -- PRIVATE FUNCTION
140915 --         AcctLineType_233
140916 --
140917 ---------------------------------------
140918 PROCEDURE AcctLineType_233 (
140919   p_application_id        IN NUMBER
140920  ,p_event_id              IN NUMBER
140921  ,p_calculate_acctd_flag  IN VARCHAR2
140922  ,p_calculate_g_l_flag    IN VARCHAR2
140923  ,p_actual_flag           IN OUT VARCHAR2
140924  ,p_balance_type_code     OUT VARCHAR2
140925  ,p_gain_or_loss_ref      OUT VARCHAR2
140926  
140927 --Invoice Distribution Type
140928  , p_source_21            IN VARCHAR2
140929  , p_source_21_meaning    IN VARCHAR2
140930 --Accounting Reversal Indicator
140931  , p_source_41            IN VARCHAR2
140932 --Distribution Link Type
140933  , p_source_43            IN VARCHAR2
140934 --Allocation to Main Distribution Identifier
140935  , p_source_45            IN NUMBER
140936 --Invoice Identifier
140937  , p_source_46            IN NUMBER
140938 --Invoice Distribution Identifier
140939  , p_source_52            IN NUMBER
140940 --Payables Encumbrance Upgrade Credit Account
140941  , p_source_53            IN NUMBER
140942 --Payables Encumbrance Upgrade Credit Amount
140943  , p_source_54            IN NUMBER
140944 --Invoice Currency Code
140945  , p_source_55            IN VARCHAR2
140946 --Payables Encumbrance Upgrade Credit Base Amount
140947  , p_source_56            IN NUMBER
140948 --Payables Encumbrance Upgrade Debit Account
140949  , p_source_57            IN NUMBER
140950 --Payables Encumbrance Upgrade Debit Amount
140951  , p_source_58            IN NUMBER
140952 --Payables Encumbrance Upgrade Debit Base Amount
140953  , p_source_59            IN NUMBER
140954 --Payables Encumbrance Upgrade Option
140955  , p_source_60            IN VARCHAR2
140956 --Invoice Distribution Amount
140957  , p_source_61            IN NUMBER
140958 --Deferred Accounting End Date
140959  , p_source_65            IN DATE
140960 --Deferred Accounting Option
140961  , p_source_66            IN VARCHAR2
140962 --Deferred Accounting Start Date
140963  , p_source_67            IN DATE
140964 --Override Accounted Amount Indicator
140965  , p_source_68            IN VARCHAR2
140966  , p_source_68_meaning    IN VARCHAR2
140967 --Third Party Type
140968  , p_source_71            IN VARCHAR2
140969 --Parent Reversal Identifier
140970  , p_source_72            IN NUMBER
140971 --Invoice Distribution Tax Line Identifier
140972  , p_source_74            IN NUMBER
140973 --Invoice Distribution Tax Distribution Identifier from Tax
140974  , p_source_75            IN NUMBER
140975 --Invoice Distribution Summary Tax Line Identifier
140976  , p_source_76            IN NUMBER
140977 --Payables Upgrade Credit Encumbrance Type Identifier
140978  , p_source_77            IN NUMBER
140979 --Payables Upgrade Debit Encumbrance Type Identifier
140980  , p_source_78            IN NUMBER
140981 --Business Flow Accounts Payable Application Identifier
140982  , p_source_79            IN NUMBER
140983 --Business Flow Invoice Distribution Type
140984  , p_source_80            IN VARCHAR2
140985 --Business Flow Invoice Entity Code
140986  , p_source_81            IN VARCHAR2
140987 --Business Flow Invoice Distribution Identifier
140988  , p_source_82            IN NUMBER
140989 --Business Flow Invoice Identifier
140990  , p_source_83            IN NUMBER
140991 --Purchasing Encumbrance Option
140992  , p_source_86            IN VARCHAR2
140993  , p_source_86_meaning    IN VARCHAR2
140994 --Invoice Encumbered Option
140995  , p_source_87            IN VARCHAR2
140996  , p_source_87_meaning    IN VARCHAR2
140997 --Self-Assessed Tax Flag
140998  , p_source_135            IN VARCHAR2
140999  , p_source_135_meaning    IN VARCHAR2
141000 --Invoice Distribution Encumbrance Ledger Amount
141001  , p_source_144            IN NUMBER
141002 )
141003 IS
141004 
141005 l_component_type              VARCHAR2(80);
141006 l_component_code              VARCHAR2(30);
141007 l_component_type_code         VARCHAR2(1);
141008 l_component_appl_id           INTEGER;
141009 l_amb_context_code            VARCHAR2(30);
141010 l_entity_code                 VARCHAR2(30);
141011 l_event_class_code            VARCHAR2(30);
141012 l_ae_header_id                NUMBER;
141013 l_event_type_code             VARCHAR2(30);
141017 -- adr variables
141014 l_line_definition_code        VARCHAR2(30);
141015 l_line_definition_owner_code  VARCHAR2(1);
141016 --
141018 l_segment                     VARCHAR2(30);
141019 l_ccid                        NUMBER;
141020 l_adr_transaction_coa_id      NUMBER;
141021 l_adr_accounting_coa_id       NUMBER;
141022 l_adr_flexfield_segment_code  VARCHAR2(30);
141023 l_adr_flex_value_set_id       NUMBER;
141024 l_adr_value_type_code         VARCHAR2(30);
141025 l_adr_value_combination_id    NUMBER;
141026 l_adr_value_segment_code      VARCHAR2(30);
141027 
141028 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
141029 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
141030 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
141031 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
141032 
141033 -- 4262811 Variables ------------------------------------------------------------------------------------------
141034 l_entered_amt_idx             NUMBER;
141035 l_accted_amt_idx              NUMBER;
141036 l_acc_rev_flag                VARCHAR2(1);
141037 l_accrual_line_num            NUMBER;
141038 l_tmp_amt                     NUMBER;
141039 l_acc_rev_natural_side_code   VARCHAR2(1);
141040 
141041 l_num_entries                 NUMBER;
141042 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
141043 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
141044 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
141045 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
141046 l_recog_line_1                NUMBER;
141047 l_recog_line_2                NUMBER;
141048 
141049 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
141050 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
141051 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
141052 
141053 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
141054 
141055 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
141056 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
141057 
141058 ---------------------------------------------------------------------------------------------------------------
141059 
141060 
141061 --
141062 -- bulk performance
141063 --
141064 l_balance_type_code           VARCHAR2(1);
141065 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
141066 l_log_module                  VARCHAR2(240);
141067 
141068 --
141069 -- Upgrade strategy
141070 --
141071 l_actual_upg_option           VARCHAR2(1);
141072 l_enc_upg_option           VARCHAR2(1);
141073 
141074 --
141075 BEGIN
141076 --
141077 IF g_log_enabled THEN
141078       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_233';
141079 END IF;
141080 --
141081 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
141082 
141083       trace
141084          (p_msg      => 'BEGIN of AcctLineType_233'
141085          ,p_level    => C_LEVEL_PROCEDURE
141086          ,p_module   => l_log_module);
141087 
141088 END IF;
141089 --
141090 l_component_type             := 'AMB_JLT';
141091 l_component_code             := 'AP_SELF_ASSD_NREC_TAX_DM_ENC';
141092 l_component_type_code        := 'S';
141093 l_component_appl_id          :=  200;
141094 l_amb_context_code           := 'DEFAULT';
141095 l_entity_code                := 'AP_INVOICES';
141096 l_event_class_code           := 'DEBIT MEMOS';
141097 l_event_type_code            := 'DEBIT MEMOS_ALL';
141098 l_line_definition_owner_code := 'S';
141099 l_line_definition_code       := 'ENC_REV_DM_ALL';
141100 --
141101 l_balance_type_code          := 'E';
141102 l_segment                     := NULL;
141103 l_ccid                        := NULL;
141104 l_adr_transaction_coa_id      := NULL;
141105 l_adr_accounting_coa_id       := NULL;
141106 l_adr_flexfield_segment_code  := NULL;
141107 l_adr_flex_value_set_id       := NULL;
141108 l_adr_value_type_code         := NULL;
141109 l_adr_value_combination_id    := NULL;
141110 l_adr_value_segment_code      := NULL;
141111 
141112 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
141113 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
141114 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
141115 l_budgetary_control_flag     := 'N';
141116 
141117 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
141118 l_bflow_applied_to_amt       := NULL; -- 5132302
141119 l_entered_amt_idx            := NULL;          -- 4262811
141120 l_accted_amt_idx             := NULL;          -- 4262811
141121 l_acc_rev_flag               := NULL;          -- 4262811
141122 l_accrual_line_num           := NULL;          -- 4262811
141123 l_tmp_amt                    := NULL;          -- 4262811
141124 --
141125  
141126 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
141127     l_balance_type_code <> 'B' THEN
141128 IF NVL(p_source_21,'
141129 ') =  'NONREC_TAX' AND 
141130 NVL(p_source_135,'
141131 ') =  'Y' AND 
141132 NVL(p_source_86,'
141133 ') =  'Y' AND 
141134 NVL(p_source_87,'
141135 ') =  'Y'
141136  THEN 
141137 
141138    --
141139    XLA_AE_LINES_PKG.SetNewLine;
141140 
141141    p_balance_type_code          := l_balance_type_code;
141142    -- set the flag so later we will know whether the gain loss line needs to be created
141143    
141144    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
141145      p_actual_flag :='A';
141146    END IF;
141147 
141148    --
141149    -- bulk performance
141150    --
141154    -- set accounting line options
141151    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
141152                                       p_header_num   => 0); -- 4262811
141153    --
141155    --
141156    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
141157            p_natural_side_code          => 'C'
141158          , p_gain_or_loss_flag          => 'N'
141159          , p_gl_transfer_mode_code      => 'S'
141160          , p_acct_entry_type_code       => 'E'
141161          , p_switch_side_flag           => 'Y'
141162          , p_merge_duplicate_code       => 'A'
141163          );
141164    --
141165    l_acc_rev_natural_side_code := 'D';  -- 4262811
141166    -- 
141167    --
141168    -- set accounting line type info
141169    --
141170    xla_ae_lines_pkg.SetAcctLineType
141171       (p_component_type             => l_component_type
141172       ,p_event_type_code            => l_event_type_code
141173       ,p_line_definition_owner_code => l_line_definition_owner_code
141174       ,p_line_definition_code       => l_line_definition_code
141175       ,p_accounting_line_code       => l_component_code
141176       ,p_accounting_line_type_code  => l_component_type_code
141177       ,p_accounting_line_appl_id    => l_component_appl_id
141178       ,p_amb_context_code           => l_amb_context_code
141179       ,p_entity_code                => l_entity_code
141180       ,p_event_class_code           => l_event_class_code);
141181    --
141182    -- set accounting class
141183    --
141184    xla_ae_lines_pkg.SetAcctClass(
141185            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
141186          , p_ae_header_id           => l_ae_header_id
141187          );
141188 
141189    --
141190    -- set rounding class
141191    --
141192    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
141193                       'SELF_ASSESSED_TAX';
141194 
141195    --
141196    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
141197    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
141198    --
141199    -- bulk performance
141200    --
141201    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
141202 
141203    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
141204       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
141205 
141206    -- 4955764
141207    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
141208       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
141209 
141210    -- 4458381 Public Sector Enh
141211    
141212    --
141213    -- set accounting attributes for the line type
141214    --
141215    l_entered_amt_idx := 23;
141216    l_accted_amt_idx  := 25;
141217    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
141218    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
141219    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
141220    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
141221    l_rec_acct_attrs.array_num_value(2)  := 
141222 xla_ae_sources_pkg.GetSystemSourceNum(
141223    p_source_code           => 'XLA_EVENT_APPL_ID'
141224  , p_source_type_code      => 'Y'
141225  , p_source_application_id =>  602
141226 );
141227    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
141228    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
141229    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
141230    l_rec_acct_attrs.array_char_value(4)  := 
141231 xla_ae_sources_pkg.GetSystemSourceChar(
141232    p_source_code           => 'XLA_ENTITY_CODE'
141233  , p_source_type_code      => 'Y'
141234  , p_source_application_id =>  602
141235 );
141236    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
141237    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
141238    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
141239    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
141240    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
141241    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
141242    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
141243    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
141244    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
141245    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
141246    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
141247    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
141248    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
141249    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
141250    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
141251    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
141252    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
141253    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
141254    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
141255    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
141256    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
141257    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
141258    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
141259    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
141260    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
141261    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
141262    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
141266    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
141263    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
141264    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
141265    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
141267    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
141268    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
141269    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
141270    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
141271    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
141272    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
141273    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
141274    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
141275    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
141276    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
141277    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
141278    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
141279    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
141280    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
141281    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
141282    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
141283    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
141284    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
141285    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
141286    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
141287    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
141288    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
141289    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
141290    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
141291    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
141292    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
141293    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
141294    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
141295    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
141296    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
141297    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
141298    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
141299    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
141300    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
141301    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
141302 
141303    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
141304    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
141305 
141306    ---------------------------------------------------------------------------------------------------------------
141307    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
141308    ---------------------------------------------------------------------------------------------------------------
141309    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
141310 
141311    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
141312    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
141313 
141314    IF xla_accounting_cache_pkg.GetValueChar
141315          (p_source_code         => 'LEDGER_CATEGORY_CODE'
141316          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
141317    AND l_bflow_method_code = 'PRIOR_ENTRY'
141318 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
141319    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
141320          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
141321        )
141322    THEN
141323          xla_ae_lines_pkg.BflowUpgEntry
141324            (p_business_method_code    => l_bflow_method_code
141325            ,p_business_class_code     => l_bflow_class_code
141326            ,p_balance_type            => l_balance_type_code);
141327    ELSE
141328       NULL;
141329 XLA_AE_LINES_PKG.business_flow_validation(
141330                                 p_business_method_code     => l_bflow_method_code
141331                                ,p_business_class_code      => l_bflow_class_code
141332                                ,p_inherit_description_flag => l_inherit_desc_flag);
141333    END IF;
141334 
141335    --
141336    -- call analytical criteria
141337    --
141338    -- Inherited Analytical Criteria for business flow method of Prior Entry.
141339    --
141340    -- call description
141341    --
141342    -- No description or it is inherited.
141343    --
141344    -- call ADRs
141345    -- Bug 4922099
141346    --
141347    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
141348         (NVL(l_actual_upg_option, 'N') = 'O') OR
141349         (NVL(l_enc_upg_option, 'N') = 'O')
141350       )
141351    THEN
141352    NULL;
141353    --
141354    --
141355    
141356    --
141357    --
141358    END IF;
141359    --
141360    -- Bug 4922099
141361    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
141362           (NVL(l_enc_upg_option, 'N') = 'O')
141363         ) AND
141364         (l_bflow_method_code = 'PRIOR_ENTRY')
141365       )
141366    THEN
141367       IF
141368       --
141369       1 = 1
141370       --
141371       THEN
141372       xla_accounting_err_pkg.build_message
141373                                     (p_appli_s_name            => 'XLA'
141374                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
141375                                     ,p_token_1                 => 'LINE_NUMBER'
141379                                                                              l_component_type
141376                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
141377                                     ,p_token_2                 => 'LINE_TYPE_NAME'
141378                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
141380                                                                             ,l_component_code
141381                                                                             ,l_component_type_code
141382                                                                             ,l_component_appl_id
141383                                                                             ,l_amb_context_code
141384                                                                             ,l_entity_code
141385                                                                             ,l_event_class_code
141386                                                                            )
141387                                     ,p_token_3                 => 'OWNER'
141388                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
141389                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
141390                                                                           ,p_lookup_code    => l_component_type_code
141391                                                                          )
141392                                     ,p_token_4                 => 'PRODUCT_NAME'
141393                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
141394                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
141395                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
141396                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
141397                                     ,p_ae_header_id            =>  NULL
141398                                        );
141399 
141400         IF (C_LEVEL_ERROR>= g_log_level) THEN
141401                  trace
141402                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
141403                       ,p_level    => C_LEVEL_ERROR
141404                       ,p_module   => l_log_module);
141405         END IF;
141406       END IF;
141407    END IF;
141408    --
141409    --
141410    ------------------------------------------------------------------------------------------------
141411    -- 4219869 Business Flow
141412    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
141413    -- Prior Entry.  Currently, the following code is always generated.
141414    ------------------------------------------------------------------------------------------------
141415    -- No ValidateCurrentLine for business flow method of Prior Entry
141416 
141417    ------------------------------------------------------------------------------------
141418    -- 4219869 Business Flow
141419    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
141420    ------------------------------------------------------------------------------------
141421    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
141422 
141423    ----------------------------------------------------------------------------------
141424    -- 4219869 Business Flow
141425    -- Update journal entry status -- Need to generate this within IF <condition>
141426    ----------------------------------------------------------------------------------
141427    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
141428          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
141429          ,p_balance_type_code => l_balance_type_code
141430          );
141431 
141432    -------------------------------------------------------------------------------------------
141433    -- 4262811 - Generate the Accrual Reversal lines
141434    -------------------------------------------------------------------------------------------
141435    BEGIN
141436       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
141437                               (g_array_event(p_event_id).array_value_num('header_index'));
141438       IF l_acc_rev_flag IS NULL THEN
141439          l_acc_rev_flag := 'N';
141440       END IF;
141441    EXCEPTION
141442       WHEN OTHERS THEN
141443          l_acc_rev_flag := 'N';
141444    END;
141445    --
141446    IF (l_acc_rev_flag = 'Y') THEN
141447 
141448        -- 4645092  ------------------------------------------------------------------------------
141449        -- To allow MPA report to determine if it should generate report process
141450        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
141451        ------------------------------------------------------------------------------------------
141452 
141453        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
141454        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
141455    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
141456    -- call ADRs
141457    -- Bug 4922099
141458    --
141459    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
141460         (NVL(l_actual_upg_option, 'N') = 'O') OR
141461         (NVL(l_enc_upg_option, 'N') = 'O')
141462       )
141463    THEN
141464    NULL;
141465    --
141466    --
141467    
141468    --
141469    --
141470    END IF;
141471 
141472        --
141473        -- Update the line information that should be overwritten
141474        --
141475        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
141476                                          p_header_num   => 1);
141477        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
141478 
141482           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
141479        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
141480 
141481        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
141483        END IF;
141484 
141485       --
141486       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
141487       --
141488       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
141489           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
141490       ELSE
141491           ---------------------------------------------------------------------------------------------------
141492           -- 4262811a Switch Sign
141493           ---------------------------------------------------------------------------------------------------
141494           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
141495           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
141496                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
141497           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
141498                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
141499           -- 5132302
141500           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
141501                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
141502 
141503       END IF;
141504 
141505       -- 4955764
141506       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
141507       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
141508 
141509 
141510       XLA_AE_LINES_PKG.ValidateCurrentLine;
141511       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
141512 
141513       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
141514                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
141515                ,p_balance_type_code => l_balance_type_code);
141516 
141517    END IF;
141518 
141519    -----------------------------------------------------------------------------------------
141520    -- 4262811 Multiperiod Accounting
141521    -----------------------------------------------------------------------------------------
141522      -- No MPA option is assigned.
141523 
141524 
141525 END IF;
141526 END IF;
141527 --
141528 
141529 --
141530 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
141531    trace
141532       (p_msg      => 'END of AcctLineType_233'
141533       ,p_level    => C_LEVEL_PROCEDURE
141534       ,p_module   => l_log_module);
141535 END IF;
141536 --
141537 EXCEPTION
141538   WHEN xla_exceptions_pkg.application_exception THEN
141539       RAISE;
141540   WHEN OTHERS THEN
141541        xla_exceptions_pkg.raise_message
141542            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_233');
141543 END AcctLineType_233;
141544 --
141545 
141546 ---------------------------------------
141547 --
141548 -- PRIVATE FUNCTION
141549 --         AcctLineType_234
141550 --
141551 ---------------------------------------
141552 PROCEDURE AcctLineType_234 (
141553   p_application_id        IN NUMBER
141554  ,p_event_id              IN NUMBER
141555  ,p_calculate_acctd_flag  IN VARCHAR2
141556  ,p_calculate_g_l_flag    IN VARCHAR2
141557  ,p_actual_flag           IN OUT VARCHAR2
141558  ,p_balance_type_code     OUT VARCHAR2
141559  ,p_gain_or_loss_ref      OUT VARCHAR2
141560  
141561 --Invoice Distribution Type
141562  , p_source_21            IN VARCHAR2
141563  , p_source_21_meaning    IN VARCHAR2
141564 --Accounting Reversal Indicator
141565  , p_source_41            IN VARCHAR2
141566 --Distribution Link Type
141567  , p_source_43            IN VARCHAR2
141568 --Allocation to Main Distribution Identifier
141569  , p_source_45            IN NUMBER
141570 --Invoice Identifier
141571  , p_source_46            IN NUMBER
141572 --Invoice Distribution Identifier
141573  , p_source_52            IN NUMBER
141574 --Payables Encumbrance Upgrade Credit Account
141575  , p_source_53            IN NUMBER
141576 --Payables Encumbrance Upgrade Credit Amount
141577  , p_source_54            IN NUMBER
141578 --Invoice Currency Code
141579  , p_source_55            IN VARCHAR2
141580 --Payables Encumbrance Upgrade Credit Base Amount
141581  , p_source_56            IN NUMBER
141582 --Payables Encumbrance Upgrade Debit Account
141583  , p_source_57            IN NUMBER
141584 --Payables Encumbrance Upgrade Debit Amount
141585  , p_source_58            IN NUMBER
141586 --Payables Encumbrance Upgrade Debit Base Amount
141587  , p_source_59            IN NUMBER
141588 --Payables Encumbrance Upgrade Option
141589  , p_source_60            IN VARCHAR2
141590 --Invoice Distribution Amount
141591  , p_source_61            IN NUMBER
141592 --Deferred Accounting End Date
141593  , p_source_65            IN DATE
141594 --Deferred Accounting Option
141595  , p_source_66            IN VARCHAR2
141596 --Deferred Accounting Start Date
141597  , p_source_67            IN DATE
141598 --Override Accounted Amount Indicator
141599  , p_source_68            IN VARCHAR2
141600  , p_source_68_meaning    IN VARCHAR2
141601 --Third Party Type
141602  , p_source_71            IN VARCHAR2
141603 --Parent Reversal Identifier
141604  , p_source_72            IN NUMBER
141605 --Invoice Distribution Statistical Amount
141606  , p_source_73            IN NUMBER
141607 --Invoice Distribution Tax Line Identifier
141611 --Invoice Distribution Summary Tax Line Identifier
141608  , p_source_74            IN NUMBER
141609 --Invoice Distribution Tax Distribution Identifier from Tax
141610  , p_source_75            IN NUMBER
141612  , p_source_76            IN NUMBER
141613 --Payables Upgrade Credit Encumbrance Type Identifier
141614  , p_source_77            IN NUMBER
141615 --Payables Upgrade Debit Encumbrance Type Identifier
141616  , p_source_78            IN NUMBER
141617 --Business Flow Accounts Payable Application Identifier
141618  , p_source_79            IN NUMBER
141619 --Business Flow Invoice Distribution Type
141620  , p_source_80            IN VARCHAR2
141621 --Business Flow Invoice Entity Code
141622  , p_source_81            IN VARCHAR2
141623 --Business Flow Invoice Distribution Identifier
141624  , p_source_82            IN NUMBER
141625 --Business Flow Invoice Identifier
141626  , p_source_83            IN NUMBER
141627 --Purchasing Encumbrance Option
141628  , p_source_86            IN VARCHAR2
141629  , p_source_86_meaning    IN VARCHAR2
141630 --Invoice Encumbered Option
141631  , p_source_87            IN VARCHAR2
141632  , p_source_87_meaning    IN VARCHAR2
141633 --Self-Assessed Tax Flag
141634  , p_source_135            IN VARCHAR2
141635  , p_source_135_meaning    IN VARCHAR2
141636 --Invoice Distribution Encumbrance Amount
141637  , p_source_143            IN NUMBER
141638 --Invoice Distribution Encumbrance Ledger Amount
141639  , p_source_144            IN NUMBER
141640 )
141641 IS
141642 
141643 l_component_type              VARCHAR2(80);
141644 l_component_code              VARCHAR2(30);
141645 l_component_type_code         VARCHAR2(1);
141646 l_component_appl_id           INTEGER;
141647 l_amb_context_code            VARCHAR2(30);
141648 l_entity_code                 VARCHAR2(30);
141649 l_event_class_code            VARCHAR2(30);
141650 l_ae_header_id                NUMBER;
141651 l_event_type_code             VARCHAR2(30);
141652 l_line_definition_code        VARCHAR2(30);
141653 l_line_definition_owner_code  VARCHAR2(1);
141654 --
141655 -- adr variables
141656 l_segment                     VARCHAR2(30);
141657 l_ccid                        NUMBER;
141658 l_adr_transaction_coa_id      NUMBER;
141659 l_adr_accounting_coa_id       NUMBER;
141660 l_adr_flexfield_segment_code  VARCHAR2(30);
141661 l_adr_flex_value_set_id       NUMBER;
141662 l_adr_value_type_code         VARCHAR2(30);
141663 l_adr_value_combination_id    NUMBER;
141664 l_adr_value_segment_code      VARCHAR2(30);
141665 
141666 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
141667 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
141668 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
141669 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
141670 
141671 -- 4262811 Variables ------------------------------------------------------------------------------------------
141672 l_entered_amt_idx             NUMBER;
141673 l_accted_amt_idx              NUMBER;
141674 l_acc_rev_flag                VARCHAR2(1);
141675 l_accrual_line_num            NUMBER;
141676 l_tmp_amt                     NUMBER;
141677 l_acc_rev_natural_side_code   VARCHAR2(1);
141678 
141679 l_num_entries                 NUMBER;
141680 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
141681 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
141682 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
141683 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
141684 l_recog_line_1                NUMBER;
141685 l_recog_line_2                NUMBER;
141686 
141690 
141687 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
141688 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
141689 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
141691 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
141692 
141693 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
141694 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
141695 
141696 ---------------------------------------------------------------------------------------------------------------
141697 
141698 
141699 --
141700 -- bulk performance
141701 --
141702 l_balance_type_code           VARCHAR2(1);
141703 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
141704 l_log_module                  VARCHAR2(240);
141705 
141706 --
141707 -- Upgrade strategy
141708 --
141709 l_actual_upg_option           VARCHAR2(1);
141710 l_enc_upg_option           VARCHAR2(1);
141711 
141712 --
141713 BEGIN
141714 --
141715 IF g_log_enabled THEN
141716       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_234';
141717 END IF;
141718 --
141722          (p_msg      => 'BEGIN of AcctLineType_234'
141719 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
141720 
141721       trace
141723          ,p_level    => C_LEVEL_PROCEDURE
141724          ,p_module   => l_log_module);
141725 
141726 END IF;
141727 --
141728 l_component_type             := 'AMB_JLT';
141729 l_component_code             := 'AP_SELF_ASSD_NREC_TAX_INV_ENC';
141730 l_component_type_code        := 'S';
141731 l_component_appl_id          :=  200;
141732 l_amb_context_code           := 'DEFAULT';
141733 l_entity_code                := 'AP_INVOICES';
141734 l_event_class_code           := 'INVOICES';
141735 l_event_type_code            := 'INVOICES_ALL';
141736 l_line_definition_owner_code := 'S';
141737 l_line_definition_code       := 'ENC_REV_INVOICES_ALL';
141738 --
141739 l_balance_type_code          := 'E';
141740 l_segment                     := NULL;
141741 l_ccid                        := NULL;
141742 l_adr_transaction_coa_id      := NULL;
141743 l_adr_accounting_coa_id       := NULL;
141744 l_adr_flexfield_segment_code  := NULL;
141745 l_adr_flex_value_set_id       := NULL;
141746 l_adr_value_type_code         := NULL;
141747 l_adr_value_combination_id    := NULL;
141748 l_adr_value_segment_code      := NULL;
141749 
141750 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
141751 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
141752 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
141753 l_budgetary_control_flag     := 'N';
141754 
141755 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
141756 l_bflow_applied_to_amt       := NULL; -- 5132302
141757 l_entered_amt_idx            := NULL;          -- 4262811
141758 l_accted_amt_idx             := NULL;          -- 4262811
141759 l_acc_rev_flag               := NULL;          -- 4262811
141760 l_accrual_line_num           := NULL;          -- 4262811
141761 l_tmp_amt                    := NULL;          -- 4262811
141762 --
141763  
141764 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
141765     l_balance_type_code <> 'B' THEN
141766 IF NVL(p_source_21,'
141767 ') =  'NONREC_TAX' AND 
141768 NVL(p_source_135,'
141769 ') =  'Y' AND 
141770 NVL(p_source_86,'
141771 ') =  'Y' AND 
141772 NVL(p_source_87,'
141773 ') =  'Y'
141774  THEN 
141775 
141776    --
141777    XLA_AE_LINES_PKG.SetNewLine;
141778 
141779    p_balance_type_code          := l_balance_type_code;
141780    -- set the flag so later we will know whether the gain loss line needs to be created
141781    
141782    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
141783      p_actual_flag :='A';
141784    END IF;
141785 
141786    --
141787    -- bulk performance
141788    --
141789    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
141790                                       p_header_num   => 0); -- 4262811
141791    --
141792    -- set accounting line options
141793    --
141794    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
141795            p_natural_side_code          => 'C'
141796          , p_gain_or_loss_flag          => 'N'
141797          , p_gl_transfer_mode_code      => 'S'
141798          , p_acct_entry_type_code       => 'E'
141799          , p_switch_side_flag           => 'Y'
141800          , p_merge_duplicate_code       => 'A'
141801          );
141802    --
141803    l_acc_rev_natural_side_code := 'D';  -- 4262811
141804    -- 
141805    --
141806    -- set accounting line type info
141807    --
141808    xla_ae_lines_pkg.SetAcctLineType
141809       (p_component_type             => l_component_type
141810       ,p_event_type_code            => l_event_type_code
141811       ,p_line_definition_owner_code => l_line_definition_owner_code
141812       ,p_line_definition_code       => l_line_definition_code
141813       ,p_accounting_line_code       => l_component_code
141814       ,p_accounting_line_type_code  => l_component_type_code
141815       ,p_accounting_line_appl_id    => l_component_appl_id
141816       ,p_amb_context_code           => l_amb_context_code
141817       ,p_entity_code                => l_entity_code
141818       ,p_event_class_code           => l_event_class_code);
141819    --
141820    -- set accounting class
141821    --
141822    xla_ae_lines_pkg.SetAcctClass(
141823            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
141824          , p_ae_header_id           => l_ae_header_id
141825          );
141826 
141827    --
141828    -- set rounding class
141829    --
141830    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
141831                       'SELF_ASSESSED_TAX';
141832 
141833    --
141834    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
141835    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
141836    --
141837    -- bulk performance
141838    --
141839    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
141840 
141841    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
141842       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
141843 
141844    -- 4955764
141845    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
141846       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
141847 
141848    -- 4458381 Public Sector Enh
141849    
141850    --
141854    l_accted_amt_idx  := 26;
141851    -- set accounting attributes for the line type
141852    --
141853    l_entered_amt_idx := 24;
141855    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
141856    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
141857    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
141858    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
141859    l_rec_acct_attrs.array_num_value(2)  := 
141860 xla_ae_sources_pkg.GetSystemSourceNum(
141861    p_source_code           => 'XLA_EVENT_APPL_ID'
141862  , p_source_type_code      => 'Y'
141863  , p_source_application_id =>  602
141864 );
141865    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
141866    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
141867    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
141868    l_rec_acct_attrs.array_char_value(4)  := 
141869 xla_ae_sources_pkg.GetSystemSourceChar(
141870    p_source_code           => 'XLA_ENTITY_CODE'
141871  , p_source_type_code      => 'Y'
141872  , p_source_application_id =>  602
141873 );
141874    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
141875    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
141876    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
141877    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
141878    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
141879    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
141880    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
141881    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
141882    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
141883    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
141884    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
141885    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
141886    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
141887    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
141888    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
141889    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
141890    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
141891    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
141892    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
141893    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
141894    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
141895    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
141896    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
141897    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
141898    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
141899    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
141900    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
141901    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
141902    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
141903    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
141904    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
141905    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
141906    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
141907    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
141908    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
141909    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
141910    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
141911    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
141912    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
141913    l_rec_acct_attrs.array_num_value(24)  := p_source_143;
141914    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
141915    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
141916    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
141917    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
141918    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
141919    l_rec_acct_attrs.array_date_value(27)  := p_source_65;
141920    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
141921    l_rec_acct_attrs.array_char_value(28)  := p_source_66;
141922    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
141923    l_rec_acct_attrs.array_date_value(29)  := p_source_67;
141924    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
141925    l_rec_acct_attrs.array_char_value(30)  := p_source_68;
141926    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
141927    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
141928    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
141929    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
141933    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
141930    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
141931    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
141932    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
141934    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
141935    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
141936    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
141937    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
141938    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
141939    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
141940    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
141941    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
141942    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
141943    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
141944 
141945    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
141946    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
141947 
141948    ---------------------------------------------------------------------------------------------------------------
141949    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
141950    ---------------------------------------------------------------------------------------------------------------
141951    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
141952 
141953    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
141954    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
141955 
141956    IF xla_accounting_cache_pkg.GetValueChar
141960 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
141957          (p_source_code         => 'LEDGER_CATEGORY_CODE'
141958          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
141959    AND l_bflow_method_code = 'PRIOR_ENTRY'
141961    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
141962          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
141963        )
141964    THEN
141965          xla_ae_lines_pkg.BflowUpgEntry
141966            (p_business_method_code    => l_bflow_method_code
141967            ,p_business_class_code     => l_bflow_class_code
141968            ,p_balance_type            => l_balance_type_code);
141969    ELSE
141970       NULL;
141971 XLA_AE_LINES_PKG.business_flow_validation(
141972                                 p_business_method_code     => l_bflow_method_code
141973                                ,p_business_class_code      => l_bflow_class_code
141974                                ,p_inherit_description_flag => l_inherit_desc_flag);
141975    END IF;
141976 
141977    --
141978    -- call analytical criteria
141979    --
141980    -- Inherited Analytical Criteria for business flow method of Prior Entry.
141981    --
141982    -- call description
141983    --
141984    -- No description or it is inherited.
141985    --
141986    -- call ADRs
141987    -- Bug 4922099
141988    --
141989    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
141990         (NVL(l_actual_upg_option, 'N') = 'O') OR
141991         (NVL(l_enc_upg_option, 'N') = 'O')
141992       )
141993    THEN
141994    NULL;
141995    --
141996    --
141997    
141998    --
141999    --
142000    END IF;
142001    --
142002    -- Bug 4922099
142003    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
142004           (NVL(l_enc_upg_option, 'N') = 'O')
142005         ) AND
142006         (l_bflow_method_code = 'PRIOR_ENTRY')
142007       )
142008    THEN
142009       IF
142010       --
142011       1 = 1
142012       --
142013       THEN
142014       xla_accounting_err_pkg.build_message
142015                                     (p_appli_s_name            => 'XLA'
142016                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
142017                                     ,p_token_1                 => 'LINE_NUMBER'
142018                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
142019                                     ,p_token_2                 => 'LINE_TYPE_NAME'
142020                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
142021                                                                              l_component_type
142022                                                                             ,l_component_code
142023                                                                             ,l_component_type_code
142027                                                                             ,l_event_class_code
142024                                                                             ,l_component_appl_id
142025                                                                             ,l_amb_context_code
142026                                                                             ,l_entity_code
142028                                                                            )
142029                                     ,p_token_3                 => 'OWNER'
142030                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
142031                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
142032                                                                           ,p_lookup_code    => l_component_type_code
142033                                                                          )
142034                                     ,p_token_4                 => 'PRODUCT_NAME'
142035                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
142036                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
142037                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
142038                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
142039                                     ,p_ae_header_id            =>  NULL
142040                                        );
142041 
142042         IF (C_LEVEL_ERROR>= g_log_level) THEN
142043                  trace
142044                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
142045                       ,p_level    => C_LEVEL_ERROR
142046                       ,p_module   => l_log_module);
142047         END IF;
142048       END IF;
142049    END IF;
142050    --
142051    --
142052    ------------------------------------------------------------------------------------------------
142053    -- 4219869 Business Flow
142054    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
142055    -- Prior Entry.  Currently, the following code is always generated.
142056    ------------------------------------------------------------------------------------------------
142057    -- No ValidateCurrentLine for business flow method of Prior Entry
142058 
142059    ------------------------------------------------------------------------------------
142060    -- 4219869 Business Flow
142061    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
142062    ------------------------------------------------------------------------------------
142063    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
142064 
142065    ----------------------------------------------------------------------------------
142066    -- 4219869 Business Flow
142067    -- Update journal entry status -- Need to generate this within IF <condition>
142068    ----------------------------------------------------------------------------------
142069    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
142070          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
142071          ,p_balance_type_code => l_balance_type_code
142072          );
142073 
142074    -------------------------------------------------------------------------------------------
142075    -- 4262811 - Generate the Accrual Reversal lines
142076    -------------------------------------------------------------------------------------------
142077    BEGIN
142078       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
142079                               (g_array_event(p_event_id).array_value_num('header_index'));
142080       IF l_acc_rev_flag IS NULL THEN
142081          l_acc_rev_flag := 'N';
142082       END IF;
142083    EXCEPTION
142084       WHEN OTHERS THEN
142088    IF (l_acc_rev_flag = 'Y') THEN
142085          l_acc_rev_flag := 'N';
142086    END;
142087    --
142089 
142090        -- 4645092  ------------------------------------------------------------------------------
142091        -- To allow MPA report to determine if it should generate report process
142092        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
142093        ------------------------------------------------------------------------------------------
142094 
142095        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
142096        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
142097    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
142098    -- call ADRs
142099    -- Bug 4922099
142100    --
142104       )
142101    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
142102         (NVL(l_actual_upg_option, 'N') = 'O') OR
142103         (NVL(l_enc_upg_option, 'N') = 'O')
142105    THEN
142106    NULL;
142107    --
142108    --
142109    
142110    --
142111    --
142112    END IF;
142113 
142114        --
142115        -- Update the line information that should be overwritten
142116        --
142117        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
142118                                          p_header_num   => 1);
142119        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
142120 
142121        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
142122 
142123        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
142124           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
142125        END IF;
142126 
142127       --
142128       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
142129       --
142130       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
142131           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
142132       ELSE
142133           ---------------------------------------------------------------------------------------------------
142134           -- 4262811a Switch Sign
142135           ---------------------------------------------------------------------------------------------------
142136           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
142137           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
142138                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142139           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
142140                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142141           -- 5132302
142142           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
142143                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142144 
142145       END IF;
142146 
142147       -- 4955764
142148       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
142149       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
142150 
142151 
142152       XLA_AE_LINES_PKG.ValidateCurrentLine;
142153       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
142154 
142155       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
142156                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
142157                ,p_balance_type_code => l_balance_type_code);
142158 
142159    END IF;
142160 
142161    -----------------------------------------------------------------------------------------
142162    -- 4262811 Multiperiod Accounting
142163    -----------------------------------------------------------------------------------------
142164      -- No MPA option is assigned.
142165 
142166 
142167 END IF;
142168 END IF;
142169 --
142170 
142171 --
142172 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142173    trace
142174       (p_msg      => 'END of AcctLineType_234'
142175       ,p_level    => C_LEVEL_PROCEDURE
142176       ,p_module   => l_log_module);
142177 END IF;
142178 --
142179 EXCEPTION
142180   WHEN xla_exceptions_pkg.application_exception THEN
142181       RAISE;
142182   WHEN OTHERS THEN
142183        xla_exceptions_pkg.raise_message
142184            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_234');
142185 END AcctLineType_234;
142186 --
142187 
142188 ---------------------------------------
142189 --
142190 -- PRIVATE FUNCTION
142191 --         AcctLineType_235
142192 --
142193 ---------------------------------------
142194 PROCEDURE AcctLineType_235 (
142195   p_application_id        IN NUMBER
142196  ,p_event_id              IN NUMBER
142197  ,p_calculate_acctd_flag  IN VARCHAR2
142198  ,p_calculate_g_l_flag    IN VARCHAR2
142199  ,p_actual_flag           IN OUT VARCHAR2
142200  ,p_balance_type_code     OUT VARCHAR2
142201  ,p_gain_or_loss_ref      OUT VARCHAR2
142202  
142203 --Invoice Distribution Type
142204  , p_source_21            IN VARCHAR2
142205  , p_source_21_meaning    IN VARCHAR2
142206 --Accounting Reversal Indicator
142207  , p_source_41            IN VARCHAR2
142208 --Distribution Link Type
142209  , p_source_43            IN VARCHAR2
142210 --Allocation to Main Distribution Identifier
142211  , p_source_45            IN NUMBER
142212 --Invoice Identifier
142213  , p_source_46            IN NUMBER
142214 --Invoice Distribution Identifier
142215  , p_source_52            IN NUMBER
142216 --Payables Encumbrance Upgrade Credit Account
142217  , p_source_53            IN NUMBER
142218 --Payables Encumbrance Upgrade Credit Amount
142219  , p_source_54            IN NUMBER
142220 --Invoice Currency Code
142221  , p_source_55            IN VARCHAR2
142222 --Payables Encumbrance Upgrade Credit Base Amount
142223  , p_source_56            IN NUMBER
142224 --Payables Encumbrance Upgrade Debit Account
142225  , p_source_57            IN NUMBER
142226 --Payables Encumbrance Upgrade Debit Amount
142227  , p_source_58            IN NUMBER
142228 --Payables Encumbrance Upgrade Debit Base Amount
142232 --Deferred Accounting End Date
142229  , p_source_59            IN NUMBER
142230 --Payables Encumbrance Upgrade Option
142231  , p_source_60            IN VARCHAR2
142233  , p_source_65            IN DATE
142234 --Deferred Accounting Option
142235  , p_source_66            IN VARCHAR2
142236 --Deferred Accounting Start Date
142240  , p_source_68_meaning    IN VARCHAR2
142237  , p_source_67            IN DATE
142238 --Override Accounted Amount Indicator
142239  , p_source_68            IN VARCHAR2
142241 --Third Party Type
142242  , p_source_71            IN VARCHAR2
142243 --Parent Reversal Identifier
142244  , p_source_72            IN NUMBER
142245 --Invoice Distribution Statistical Amount
142246  , p_source_73            IN NUMBER
142247 --Invoice Distribution Tax Line Identifier
142248  , p_source_74            IN NUMBER
142249 --Invoice Distribution Tax Distribution Identifier from Tax
142250  , p_source_75            IN NUMBER
142251 --Invoice Distribution Summary Tax Line Identifier
142252  , p_source_76            IN NUMBER
142253 --Payables Upgrade Credit Encumbrance Type Identifier
142254  , p_source_77            IN NUMBER
142255 --Payables Upgrade Debit Encumbrance Type Identifier
142256  , p_source_78            IN NUMBER
142257 --Business Flow Accounts Payable Application Identifier
142258  , p_source_79            IN NUMBER
142259 --Business Flow Invoice Distribution Type
142260  , p_source_80            IN VARCHAR2
142261 --Business Flow Invoice Entity Code
142262  , p_source_81            IN VARCHAR2
142263 --Business Flow Invoice Distribution Identifier
142264  , p_source_82            IN NUMBER
142265 --Business Flow Invoice Identifier
142266  , p_source_83            IN NUMBER
142267 --Purchasing Encumbrance Option
142268  , p_source_86            IN VARCHAR2
142269  , p_source_86_meaning    IN VARCHAR2
142270 --Invoice Encumbered Option
142271  , p_source_87            IN VARCHAR2
142272  , p_source_87_meaning    IN VARCHAR2
142273 --Self-Assessed Tax Flag
142274  , p_source_135            IN VARCHAR2
142275  , p_source_135_meaning    IN VARCHAR2
142276 --Invoice Distribution Encumbrance Amount
142277  , p_source_143            IN NUMBER
142278 --Invoice Distribution Encumbrance Ledger Amount
142279  , p_source_144            IN NUMBER
142280 )
142281 IS
142282 
142283 l_component_type              VARCHAR2(80);
142284 l_component_code              VARCHAR2(30);
142285 l_component_type_code         VARCHAR2(1);
142286 l_component_appl_id           INTEGER;
142287 l_amb_context_code            VARCHAR2(30);
142288 l_entity_code                 VARCHAR2(30);
142289 l_event_class_code            VARCHAR2(30);
142290 l_ae_header_id                NUMBER;
142291 l_event_type_code             VARCHAR2(30);
142292 l_line_definition_code        VARCHAR2(30);
142293 l_line_definition_owner_code  VARCHAR2(1);
142294 --
142295 -- adr variables
142296 l_segment                     VARCHAR2(30);
142297 l_ccid                        NUMBER;
142298 l_adr_transaction_coa_id      NUMBER;
142299 l_adr_accounting_coa_id       NUMBER;
142300 l_adr_flexfield_segment_code  VARCHAR2(30);
142301 l_adr_flex_value_set_id       NUMBER;
142302 l_adr_value_type_code         VARCHAR2(30);
142303 l_adr_value_combination_id    NUMBER;
142304 l_adr_value_segment_code      VARCHAR2(30);
142305 
142306 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
142307 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
142308 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
142309 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
142310 
142311 -- 4262811 Variables ------------------------------------------------------------------------------------------
142312 l_entered_amt_idx             NUMBER;
142313 l_accted_amt_idx              NUMBER;
142314 l_acc_rev_flag                VARCHAR2(1);
142315 l_accrual_line_num            NUMBER;
142316 l_tmp_amt                     NUMBER;
142317 l_acc_rev_natural_side_code   VARCHAR2(1);
142318 
142319 l_num_entries                 NUMBER;
142320 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
142321 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
142322 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
142323 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
142324 l_recog_line_1                NUMBER;
142325 l_recog_line_2                NUMBER;
142326 
142327 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
142328 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
142329 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
142330 
142331 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
142332 
142336 ---------------------------------------------------------------------------------------------------------------
142333 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
142334 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
142335 
142337 
142338 
142339 --
142340 -- bulk performance
142341 --
142342 l_balance_type_code           VARCHAR2(1);
142343 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
142344 l_log_module                  VARCHAR2(240);
142345 
142346 --
142347 -- Upgrade strategy
142348 --
142349 l_actual_upg_option           VARCHAR2(1);
142350 l_enc_upg_option           VARCHAR2(1);
142351 
142352 --
142353 BEGIN
142354 --
142355 IF g_log_enabled THEN
142356       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_235';
142357 END IF;
142358 --
142359 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142360 
142361       trace
142362          (p_msg      => 'BEGIN of AcctLineType_235'
142363          ,p_level    => C_LEVEL_PROCEDURE
142364          ,p_module   => l_log_module);
142365 
142366 END IF;
142367 --
142368 l_component_type             := 'AMB_JLT';
142369 l_component_code             := 'AP_SELF_ASSD_NREC_TAX_PP_ENC';
142370 l_component_type_code        := 'S';
142371 l_component_appl_id          :=  200;
142372 l_amb_context_code           := 'DEFAULT';
142373 l_entity_code                := 'AP_INVOICES';
142374 l_event_class_code           := 'PREPAYMENTS';
142375 l_event_type_code            := 'PREPAYMENTS_ALL';
142376 l_line_definition_owner_code := 'S';
142377 l_line_definition_code       := 'ENC_REV_PREPAY_ALL';
142378 --
142379 l_balance_type_code          := 'E';
142380 l_segment                     := NULL;
142381 l_ccid                        := NULL;
142382 l_adr_transaction_coa_id      := NULL;
142383 l_adr_accounting_coa_id       := NULL;
142384 l_adr_flexfield_segment_code  := NULL;
142385 l_adr_flex_value_set_id       := NULL;
142386 l_adr_value_type_code         := NULL;
142387 l_adr_value_combination_id    := NULL;
142388 l_adr_value_segment_code      := NULL;
142389 
142390 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
142391 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
142392 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
142393 l_budgetary_control_flag     := 'N';
142394 
142395 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
142396 l_bflow_applied_to_amt       := NULL; -- 5132302
142397 l_entered_amt_idx            := NULL;          -- 4262811
142398 l_accted_amt_idx             := NULL;          -- 4262811
142399 l_acc_rev_flag               := NULL;          -- 4262811
142400 l_accrual_line_num           := NULL;          -- 4262811
142401 l_tmp_amt                    := NULL;          -- 4262811
142402 --
142403  
142404 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
142405     l_balance_type_code <> 'B' THEN
142406 IF NVL(p_source_21,'
142407 ') =  'NONREC_TAX' AND 
142408 NVL(p_source_135,'
142409 ') =  'Y' AND 
142410 NVL(p_source_86,'
142411 ') =  'Y' AND 
142412 NVL(p_source_87,'
142413 ') =  'Y'
142414  THEN 
142415 
142416    --
142417    XLA_AE_LINES_PKG.SetNewLine;
142418 
142419    p_balance_type_code          := l_balance_type_code;
142420    -- set the flag so later we will know whether the gain loss line needs to be created
142421    
142422    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
142423      p_actual_flag :='A';
142424    END IF;
142425 
142426    --
142427    -- bulk performance
142428    --
142429    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
142430                                       p_header_num   => 0); -- 4262811
142431    --
142432    -- set accounting line options
142433    --
142434    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
142435            p_natural_side_code          => 'C'
142436          , p_gain_or_loss_flag          => 'N'
142437          , p_gl_transfer_mode_code      => 'S'
142438          , p_acct_entry_type_code       => 'E'
142439          , p_switch_side_flag           => 'Y'
142440          , p_merge_duplicate_code       => 'A'
142441          );
142442    --
142443    l_acc_rev_natural_side_code := 'D';  -- 4262811
142444    -- 
142445    --
142446    -- set accounting line type info
142447    --
142448    xla_ae_lines_pkg.SetAcctLineType
142449       (p_component_type             => l_component_type
142450       ,p_event_type_code            => l_event_type_code
142451       ,p_line_definition_owner_code => l_line_definition_owner_code
142452       ,p_line_definition_code       => l_line_definition_code
142453       ,p_accounting_line_code       => l_component_code
142454       ,p_accounting_line_type_code  => l_component_type_code
142455       ,p_accounting_line_appl_id    => l_component_appl_id
142456       ,p_amb_context_code           => l_amb_context_code
142457       ,p_entity_code                => l_entity_code
142458       ,p_event_class_code           => l_event_class_code);
142459    --
142460    -- set accounting class
142461    --
142462    xla_ae_lines_pkg.SetAcctClass(
142463            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
142464          , p_ae_header_id           => l_ae_header_id
142465          );
142466 
142467    --
142468    -- set rounding class
142469    --
142470    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
142471                       'SELF_ASSESSED_TAX';
142472 
142473    --
142474    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
142478    --
142475    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
142476    --
142477    -- bulk performance
142479    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
142480 
142481    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
142482       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
142483 
142484    -- 4955764
142485    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
142486       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
142487 
142488    -- 4458381 Public Sector Enh
142489    
142490    --
142491    -- set accounting attributes for the line type
142492    --
142493    l_entered_amt_idx := 23;
142494    l_accted_amt_idx  := 25;
142495    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
142496    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
142497    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
142498    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
142499    l_rec_acct_attrs.array_num_value(2)  := 
142500 xla_ae_sources_pkg.GetSystemSourceNum(
142501    p_source_code           => 'XLA_EVENT_APPL_ID'
142502  , p_source_type_code      => 'Y'
142503  , p_source_application_id =>  602
142504 );
142505    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
142506    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
142507    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
142508    l_rec_acct_attrs.array_char_value(4)  := 
142509 xla_ae_sources_pkg.GetSystemSourceChar(
142510    p_source_code           => 'XLA_ENTITY_CODE'
142511  , p_source_type_code      => 'Y'
142512  , p_source_application_id =>  602
142513 );
142514    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
142515    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
142516    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
142517    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
142518    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
142519    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
142520    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
142521    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
142522    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
142523    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
142524    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
142525    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
142526    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
142527    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
142528    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
142529    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
142530    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
142531    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
142532    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
142533    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
142534    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
142538    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
142535    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
142536    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
142537    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
142539    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
142540    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
142541    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
142542    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
142543    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
142544    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
142545    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
142546    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
142547    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
142548    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
142549    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
142550    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
142551    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
142552    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
142553    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
142554    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
142555    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
142556    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
142560    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
142557    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
142558    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
142559    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
142561    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
142562    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
142563    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
142564    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
142565    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
142566    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
142567    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
142568    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
142569    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
142570    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
142571    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
142572    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
142573    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
142574    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
142575    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
142576    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
142577    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
142578    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
142579    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
142580    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
142581    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
142582 
142583    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
142584    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
142585 
142586    ---------------------------------------------------------------------------------------------------------------
142587    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
142588    ---------------------------------------------------------------------------------------------------------------
142589    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
142590 
142591    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
142592    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
142593 
142594    IF xla_accounting_cache_pkg.GetValueChar
142595          (p_source_code         => 'LEDGER_CATEGORY_CODE'
142596          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
142597    AND l_bflow_method_code = 'PRIOR_ENTRY'
142598 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
142599    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
142600          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
142601        )
142602    THEN
142603          xla_ae_lines_pkg.BflowUpgEntry
142604            (p_business_method_code    => l_bflow_method_code
142605            ,p_business_class_code     => l_bflow_class_code
142606            ,p_balance_type            => l_balance_type_code);
142607    ELSE
142608       NULL;
142609 XLA_AE_LINES_PKG.business_flow_validation(
142610                                 p_business_method_code     => l_bflow_method_code
142611                                ,p_business_class_code      => l_bflow_class_code
142612                                ,p_inherit_description_flag => l_inherit_desc_flag);
142613    END IF;
142614 
142615    --
142616    -- call analytical criteria
142617    --
142618    -- Inherited Analytical Criteria for business flow method of Prior Entry.
142619    --
142620    -- call description
142621    --
142622    -- No description or it is inherited.
142623    --
142624    -- call ADRs
142625    -- Bug 4922099
142626    --
142627    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
142628         (NVL(l_actual_upg_option, 'N') = 'O') OR
142629         (NVL(l_enc_upg_option, 'N') = 'O')
142630       )
142631    THEN
142632    NULL;
142633    --
142634    --
142635    
142636    --
142637    --
142638    END IF;
142639    --
142640    -- Bug 4922099
142641    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
142642           (NVL(l_enc_upg_option, 'N') = 'O')
142643         ) AND
142644         (l_bflow_method_code = 'PRIOR_ENTRY')
142645       )
142646    THEN
142647       IF
142648       --
142649       1 = 1
142650       --
142651       THEN
142652       xla_accounting_err_pkg.build_message
142653                                     (p_appli_s_name            => 'XLA'
142654                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
142655                                     ,p_token_1                 => 'LINE_NUMBER'
142656                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
142657                                     ,p_token_2                 => 'LINE_TYPE_NAME'
142658                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
142659                                                                              l_component_type
142660                                                                             ,l_component_code
142664                                                                             ,l_entity_code
142661                                                                             ,l_component_type_code
142662                                                                             ,l_component_appl_id
142663                                                                             ,l_amb_context_code
142665                                                                             ,l_event_class_code
142666                                                                            )
142667                                     ,p_token_3                 => 'OWNER'
142668                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
142669                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
142670                                                                           ,p_lookup_code    => l_component_type_code
142671                                                                          )
142672                                     ,p_token_4                 => 'PRODUCT_NAME'
142673                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
142674                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
142675                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
142676                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
142677                                     ,p_ae_header_id            =>  NULL
142678                                        );
142679 
142680         IF (C_LEVEL_ERROR>= g_log_level) THEN
142681                  trace
142682                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
142683                       ,p_level    => C_LEVEL_ERROR
142684                       ,p_module   => l_log_module);
142685         END IF;
142686       END IF;
142687    END IF;
142688    --
142689    --
142690    ------------------------------------------------------------------------------------------------
142691    -- 4219869 Business Flow
142692    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
142693    -- Prior Entry.  Currently, the following code is always generated.
142694    ------------------------------------------------------------------------------------------------
142695    -- No ValidateCurrentLine for business flow method of Prior Entry
142696 
142697    ------------------------------------------------------------------------------------
142698    -- 4219869 Business Flow
142699    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
142700    ------------------------------------------------------------------------------------
142701    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
142702 
142703    ----------------------------------------------------------------------------------
142704    -- 4219869 Business Flow
142705    -- Update journal entry status -- Need to generate this within IF <condition>
142706    ----------------------------------------------------------------------------------
142707    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
142708          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
142709          ,p_balance_type_code => l_balance_type_code
142710          );
142711 
142712    -------------------------------------------------------------------------------------------
142713    -- 4262811 - Generate the Accrual Reversal lines
142714    -------------------------------------------------------------------------------------------
142715    BEGIN
142716       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
142717                               (g_array_event(p_event_id).array_value_num('header_index'));
142718       IF l_acc_rev_flag IS NULL THEN
142719          l_acc_rev_flag := 'N';
142720       END IF;
142721    EXCEPTION
142725    --
142722       WHEN OTHERS THEN
142723          l_acc_rev_flag := 'N';
142724    END;
142726    IF (l_acc_rev_flag = 'Y') THEN
142727 
142728        -- 4645092  ------------------------------------------------------------------------------
142729        -- To allow MPA report to determine if it should generate report process
142730        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
142731        ------------------------------------------------------------------------------------------
142732 
142733        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
142734        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
142735    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
142736    -- call ADRs
142737    -- Bug 4922099
142738    --
142739    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
142740         (NVL(l_actual_upg_option, 'N') = 'O') OR
142741         (NVL(l_enc_upg_option, 'N') = 'O')
142742       )
142743    THEN
142744    NULL;
142745    --
142746    --
142747    
142748    --
142749    --
142750    END IF;
142751 
142752        --
142753        -- Update the line information that should be overwritten
142754        --
142755        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
142756                                          p_header_num   => 1);
142757        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
142758 
142759        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
142760 
142761        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
142762           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
142763        END IF;
142764 
142765       --
142766       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
142767       --
142768       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
142769           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
142770       ELSE
142771           ---------------------------------------------------------------------------------------------------
142772           -- 4262811a Switch Sign
142773           ---------------------------------------------------------------------------------------------------
142774           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
142775           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
142776                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142777           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
142778                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142779           -- 5132302
142780           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
142781                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142782 
142783       END IF;
142784 
142785       -- 4955764
142786       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
142787       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
142788 
142789 
142790       XLA_AE_LINES_PKG.ValidateCurrentLine;
142791       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
142792 
142793       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
142794                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
142795                ,p_balance_type_code => l_balance_type_code);
142796 
142797    END IF;
142798 
142799    -----------------------------------------------------------------------------------------
142800    -- 4262811 Multiperiod Accounting
142801    -----------------------------------------------------------------------------------------
142802      -- No MPA option is assigned.
142803 
142804 
142805 END IF;
142806 END IF;
142807 --
142808 
142809 --
142810 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142811    trace
142812       (p_msg      => 'END of AcctLineType_235'
142813       ,p_level    => C_LEVEL_PROCEDURE
142814       ,p_module   => l_log_module);
142815 END IF;
142816 --
142817 EXCEPTION
142818   WHEN xla_exceptions_pkg.application_exception THEN
142819       RAISE;
142820   WHEN OTHERS THEN
142821        xla_exceptions_pkg.raise_message
142822            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_235');
142823 END AcctLineType_235;
142824 --
142825 
142826 ---------------------------------------
142827 --
142828 -- PRIVATE FUNCTION
142829 --         AcctLineType_236
142830 --
142831 ---------------------------------------
142832 PROCEDURE AcctLineType_236 (
142833   p_application_id        IN NUMBER
142834  ,p_event_id              IN NUMBER
142835  ,p_calculate_acctd_flag  IN VARCHAR2
142836  ,p_calculate_g_l_flag    IN VARCHAR2
142837  ,p_actual_flag           IN OUT VARCHAR2
142838  ,p_balance_type_code     OUT VARCHAR2
142839  ,p_gain_or_loss_ref      OUT VARCHAR2
142840  
142841 --Invoice Distribution Description
142842  , p_source_1            IN VARCHAR2
142843 --Invoice Distribution Ledger Amount
142844  , p_source_9            IN NUMBER
142845 --Invoice Distribution Type
142846  , p_source_21            IN VARCHAR2
142847  , p_source_21_meaning    IN VARCHAR2
142848 --Self-Assessed Tax Account
142849  , p_source_38            IN NUMBER
142850 --Accounting Reversal Indicator
142851  , p_source_41            IN VARCHAR2
142855  , p_source_45            IN NUMBER
142852 --Distribution Link Type
142853  , p_source_43            IN VARCHAR2
142854 --Allocation to Main Distribution Identifier
142856 --Invoice Identifier
142857  , p_source_46            IN NUMBER
142858 --Invoice Distribution Identifier
142859  , p_source_52            IN NUMBER
142860 --Payables Encumbrance Upgrade Credit Account
142861  , p_source_53            IN NUMBER
142862 --Payables Encumbrance Upgrade Credit Amount
142863  , p_source_54            IN NUMBER
142864 --Invoice Currency Code
142865  , p_source_55            IN VARCHAR2
142866 --Payables Encumbrance Upgrade Credit Base Amount
142867  , p_source_56            IN NUMBER
142868 --Payables Encumbrance Upgrade Debit Account
142869  , p_source_57            IN NUMBER
142870 --Payables Encumbrance Upgrade Debit Amount
142871  , p_source_58            IN NUMBER
142872 --Payables Encumbrance Upgrade Debit Base Amount
142873  , p_source_59            IN NUMBER
142874 --Payables Encumbrance Upgrade Option
142875  , p_source_60            IN VARCHAR2
142876 --Invoice Distribution Amount
142877  , p_source_61            IN NUMBER
142878 --Deferred Accounting End Date
142879  , p_source_65            IN DATE
142880 --Deferred Accounting Option
142881  , p_source_66            IN VARCHAR2
142882 --Deferred Accounting Start Date
142883  , p_source_67            IN DATE
142884 --Override Accounted Amount Indicator
142885  , p_source_68            IN VARCHAR2
142886  , p_source_68_meaning    IN VARCHAR2
142887 --Invoice Supplier Identifier
142888  , p_source_69            IN NUMBER
142889 --Invoice Supplier Site Identifier
142890  , p_source_70            IN NUMBER
142891 --Third Party Type
142892  , p_source_71            IN VARCHAR2
142893 --Parent Reversal Identifier
142894  , p_source_72            IN NUMBER
142895 --Invoice Distribution Statistical Amount
142896  , p_source_73            IN NUMBER
142897 --Invoice Distribution Tax Line Identifier
142898  , p_source_74            IN NUMBER
142899 --Invoice Distribution Tax Distribution Identifier from Tax
142900  , p_source_75            IN NUMBER
142901 --Invoice Distribution Summary Tax Line Identifier
142902  , p_source_76            IN NUMBER
142903 --Payables Upgrade Credit Encumbrance Type Identifier
142904  , p_source_77            IN NUMBER
142905 --Payables Upgrade Debit Encumbrance Type Identifier
142906  , p_source_78            IN NUMBER
142907 --Business Flow Accounts Payable Application Identifier
142908  , p_source_79            IN NUMBER
142909 --Business Flow Invoice Distribution Type
142910  , p_source_80            IN VARCHAR2
142911 --Business Flow Invoice Entity Code
142912  , p_source_81            IN VARCHAR2
142913 --Business Flow Invoice Distribution Identifier
142914  , p_source_82            IN NUMBER
142915 --Business Flow Invoice Identifier
142916  , p_source_83            IN NUMBER
142917 --Accrue on Receipt Option
142918  , p_source_84            IN VARCHAR2
142919  , p_source_84_meaning    IN VARCHAR2
142920 --Self-Assessed Tax Flag
142921  , p_source_135            IN VARCHAR2
142922  , p_source_135_meaning    IN VARCHAR2
142923 --Invoice Exchange Date
142924  , p_source_136            IN DATE
142925 --Invoice Exchange Rate
142926  , p_source_137            IN NUMBER
142927 --Invoice Exchange Rate Type
142928  , p_source_138            IN VARCHAR2
142929 )
142930 IS
142931 
142932 l_component_type              VARCHAR2(80);
142933 l_component_code              VARCHAR2(30);
142934 l_component_type_code         VARCHAR2(1);
142935 l_component_appl_id           INTEGER;
142936 l_amb_context_code            VARCHAR2(30);
142937 l_entity_code                 VARCHAR2(30);
142938 l_event_class_code            VARCHAR2(30);
142939 l_ae_header_id                NUMBER;
142940 l_event_type_code             VARCHAR2(30);
142941 l_line_definition_code        VARCHAR2(30);
142942 l_line_definition_owner_code  VARCHAR2(1);
142943 --
142944 -- adr variables
142945 l_segment                     VARCHAR2(30);
142946 l_ccid                        NUMBER;
142947 l_adr_transaction_coa_id      NUMBER;
142948 l_adr_accounting_coa_id       NUMBER;
142949 l_adr_flexfield_segment_code  VARCHAR2(30);
142950 l_adr_flex_value_set_id       NUMBER;
142951 l_adr_value_type_code         VARCHAR2(30);
142952 l_adr_value_combination_id    NUMBER;
142953 l_adr_value_segment_code      VARCHAR2(30);
142954 
142955 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
142956 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
142957 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
142958 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
142959 
142960 -- 4262811 Variables ------------------------------------------------------------------------------------------
142961 l_entered_amt_idx             NUMBER;
142962 l_accted_amt_idx              NUMBER;
142963 l_acc_rev_flag                VARCHAR2(1);
142964 l_accrual_line_num            NUMBER;
142965 l_tmp_amt                     NUMBER;
142966 l_acc_rev_natural_side_code   VARCHAR2(1);
142967 
142968 l_num_entries                 NUMBER;
142969 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
142970 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
142971 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
142972 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
142973 l_recog_line_1                NUMBER;
142974 l_recog_line_2                NUMBER;
142975 
142976 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
142977 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
142981 
142978 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
142979 
142980 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
142982 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
142983 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
142984 
142985 ---------------------------------------------------------------------------------------------------------------
142986 
142987 
142988 --
142989 -- bulk performance
142990 --
142991 l_balance_type_code           VARCHAR2(1);
142992 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
142993 l_log_module                  VARCHAR2(240);
142994 
142995 --
142996 -- Upgrade strategy
142997 --
142998 l_actual_upg_option           VARCHAR2(1);
142999 l_enc_upg_option           VARCHAR2(1);
143000 
143001 --
143002 BEGIN
143003 --
143004 IF g_log_enabled THEN
143005       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_236';
143006 END IF;
143007 --
143008 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
143009 
143010       trace
143011          (p_msg      => 'BEGIN of AcctLineType_236'
143012          ,p_level    => C_LEVEL_PROCEDURE
143013          ,p_module   => l_log_module);
143014 
143015 END IF;
143016 --
143017 l_component_type             := 'AMB_JLT';
143018 l_component_code             := 'AP_SELF_ASSESSED_NONREC_PREPAY';
143019 l_component_type_code        := 'S';
143020 l_component_appl_id          :=  200;
143021 l_amb_context_code           := 'DEFAULT';
143022 l_entity_code                := 'AP_INVOICES';
143023 l_event_class_code           := 'PREPAYMENTS';
143024 l_event_type_code            := 'PREPAYMENTS_ALL';
143025 l_line_definition_owner_code := 'S';
143026 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
143027 --
143028 l_balance_type_code          := 'A';
143029 l_segment                     := NULL;
143030 l_ccid                        := NULL;
143031 l_adr_transaction_coa_id      := NULL;
143032 l_adr_accounting_coa_id       := NULL;
143033 l_adr_flexfield_segment_code  := NULL;
143034 l_adr_flex_value_set_id       := NULL;
143035 l_adr_value_type_code         := NULL;
143036 l_adr_value_combination_id    := NULL;
143037 l_adr_value_segment_code      := NULL;
143038 
143039 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
143040 l_bflow_class_code           := '';    -- 4219869 Business Flow
143041 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
143042 l_budgetary_control_flag     := 'N';
143043 
143044 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
143045 l_bflow_applied_to_amt       := NULL; -- 5132302
143046 l_entered_amt_idx            := NULL;          -- 4262811
143047 l_accted_amt_idx             := NULL;          -- 4262811
143048 l_acc_rev_flag               := NULL;          -- 4262811
143049 l_accrual_line_num           := NULL;          -- 4262811
143050 l_tmp_amt                    := NULL;          -- 4262811
143051 --
143052  
143053 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
143054     l_balance_type_code <> 'B' THEN
143055 IF (NVL(p_source_21,'
143056 ') =  'NONREC_TAX' OR 
143057 NVL(p_source_21,'
143058 ') =  'TERV' OR 
143059 NVL(p_source_21,'
143060 ') =  'TIPV' OR 
143061 NVL(p_source_21,'
143062 ') =  'TRV') AND 
143063 NVL(p_source_84,'
143064 ') <>  'Y' AND 
143065 NVL(p_source_135,'
143066 ') =  'Y'
143067  THEN 
143068 
143069    --
143070    XLA_AE_LINES_PKG.SetNewLine;
143071 
143072    p_balance_type_code          := l_balance_type_code;
143073    -- set the flag so later we will know whether the gain loss line needs to be created
143074    
143075    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
143076      p_actual_flag :='A';
143077    END IF;
143078 
143079    --
143080    -- bulk performance
143081    --
143082    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
143083                                       p_header_num   => 0); -- 4262811
143084    --
143085    -- set accounting line options
143086    --
143087    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
143088            p_natural_side_code          => 'D'
143089          , p_gain_or_loss_flag          => 'N'
143090          , p_gl_transfer_mode_code      => 'S'
143091          , p_acct_entry_type_code       => 'A'
143092          , p_switch_side_flag           => 'Y'
143093          , p_merge_duplicate_code       => 'A'
143094          );
143095    --
143096    l_acc_rev_natural_side_code := 'C';  -- 4262811
143097    -- 
143098    --
143099    -- set accounting line type info
143100    --
143101    xla_ae_lines_pkg.SetAcctLineType
143102       (p_component_type             => l_component_type
143103       ,p_event_type_code            => l_event_type_code
143104       ,p_line_definition_owner_code => l_line_definition_owner_code
143105       ,p_line_definition_code       => l_line_definition_code
143106       ,p_accounting_line_code       => l_component_code
143107       ,p_accounting_line_type_code  => l_component_type_code
143108       ,p_accounting_line_appl_id    => l_component_appl_id
143109       ,p_amb_context_code           => l_amb_context_code
143110       ,p_entity_code                => l_entity_code
143111       ,p_event_class_code           => l_event_class_code);
143112    --
143113    -- set accounting class
143114    --
143115    xla_ae_lines_pkg.SetAcctClass(
143116            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
143120    --
143117          , p_ae_header_id           => l_ae_header_id
143118          );
143119 
143121    -- set rounding class
143122    --
143123    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
143124                       'SELF_ASSESSED_TAX';
143125 
143126    --
143127    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
143128    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
143129    --
143130    -- bulk performance
143131    --
143132    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
143133 
143134    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
143135       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
143136 
143137    -- 4955764
143138    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
143139       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
143140 
143141    -- 4458381 Public Sector Enh
143142    
143143    --
143144    -- set accounting attributes for the line type
143145    --
143146    l_entered_amt_idx := 23;
143147    l_accted_amt_idx  := 28;
143148    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
143149    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
143150    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
143151    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
143152    l_rec_acct_attrs.array_num_value(2)  := 
143153 xla_ae_sources_pkg.GetSystemSourceNum(
143154    p_source_code           => 'XLA_EVENT_APPL_ID'
143155  , p_source_type_code      => 'Y'
143156  , p_source_application_id =>  602
143157 );
143158    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
143159    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
143160    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
143161    l_rec_acct_attrs.array_char_value(4)  := 
143162 xla_ae_sources_pkg.GetSystemSourceChar(
143163    p_source_code           => 'XLA_ENTITY_CODE'
143164  , p_source_type_code      => 'Y'
143165  , p_source_application_id =>  602
143166 );
143167    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
143168    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
143169    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
143170    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
143171    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
143172    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
143173    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
143174    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
143175    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
143176    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
143177    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
143178    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
143179    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
143180    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
143181    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
143182    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
143183    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
143184    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
143185    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
143186    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
143187    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
143188    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
143189    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
143190    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
143191    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
143192    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
143193    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
143194    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
143195    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
143196    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
143197    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
143198    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
143199    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
143200    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
143201    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
143202    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
143203    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
143204    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
143205    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
143206    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
143207    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
143208    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
143209    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
143210    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
143211    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
143212    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
143213    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
143214    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
143215    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
143216    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
143220    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
143217    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
143218    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
143219    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
143221    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
143225    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
143222    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
143223    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
143224    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
143226    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
143227    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
143228    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
143229    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
143230    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
143231    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
143232    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
143233    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
143234    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
143235    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
143236    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
143237    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
143238    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
143239    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
143240    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
143241    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
143242    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
143243    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
143244    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
143245 
143246    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
143247    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
143248 
143249    ---------------------------------------------------------------------------------------------------------------
143250    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
143251    ---------------------------------------------------------------------------------------------------------------
143252    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
143253 
143254    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
143255    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
143256 
143257    IF xla_accounting_cache_pkg.GetValueChar
143258          (p_source_code         => 'LEDGER_CATEGORY_CODE'
143259          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
143260    AND l_bflow_method_code = 'PRIOR_ENTRY'
143261 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
143262    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
143263          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
143264        )
143265    THEN
143266          xla_ae_lines_pkg.BflowUpgEntry
143267            (p_business_method_code    => l_bflow_method_code
143268            ,p_business_class_code     => l_bflow_class_code
143269            ,p_balance_type            => l_balance_type_code);
143270    ELSE
143271       NULL;
143272 -- No business flow processing for business flow method of NONE.
143273    END IF;
143274 
143275    --
143276    -- call analytical criteria
143277    --
143278    
143279    --
143280    -- call description
143281    --
143282    
143283 xla_ae_lines_pkg.SetLineDescription(
143284    p_ae_header_id => l_ae_header_id
143285   ,p_description  => Description_2 (
143286      p_application_id         => p_application_id
143287    , p_ae_header_id           => l_ae_header_id 
143288 , p_source_1 => p_source_1
143289    )
143290 );
143291 
143292 
143293    --
143294    -- call ADRs
143295    -- Bug 4922099
143296    --
143297    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
143298         (NVL(l_actual_upg_option, 'N') = 'O') OR
143299         (NVL(l_enc_upg_option, 'N') = 'O')
143300       )
143301    THEN
143302    NULL;
143303    --
143304    --
143305    
143306   l_ccid := AcctDerRule_41(
143307            p_application_id           => p_application_id
143308          , p_ae_header_id             => l_ae_header_id 
143309 , p_source_38 => p_source_38
143310          , x_transaction_coa_id       => l_adr_transaction_coa_id
143311          , x_accounting_coa_id        => l_adr_accounting_coa_id
143315 
143312          , x_value_type_code          => l_adr_value_type_code
143313          , p_side                     => 'NA'
143314    );
143316    xla_ae_lines_pkg.set_ccid(
143317     p_code_combination_id          => l_ccid
143318   , p_value_type_code              => l_adr_value_type_code
143319   , p_transaction_coa_id           => l_adr_transaction_coa_id
143320   , p_accounting_coa_id            => l_adr_accounting_coa_id
143321   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
143322   , p_adr_type_code                => 'S'
143323   , p_component_type               => l_component_type
143324   , p_component_code               => l_component_code
143325   , p_component_type_code          => l_component_type_code
143326   , p_component_appl_id            => l_component_appl_id
143327   , p_amb_context_code             => l_amb_context_code
143328   , p_side                         => 'NA'
143329   );
143330 
143331 
143332    --
143333    --
143334    END IF;
143335    --
143336    -- Bug 4922099
143337    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
143338           (NVL(l_enc_upg_option, 'N') = 'O')
143339         ) AND
143340         (l_bflow_method_code = 'PRIOR_ENTRY')
143341       )
143342    THEN
143343       IF
143344       --
143345       1 = 2
143346       --
143347       THEN
143348       xla_accounting_err_pkg.build_message
143349                                     (p_appli_s_name            => 'XLA'
143350                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
143351                                     ,p_token_1                 => 'LINE_NUMBER'
143352                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
143353                                     ,p_token_2                 => 'LINE_TYPE_NAME'
143354                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
143355                                                                              l_component_type
143356                                                                             ,l_component_code
143357                                                                             ,l_component_type_code
143358                                                                             ,l_component_appl_id
143359                                                                             ,l_amb_context_code
143363                                     ,p_token_3                 => 'OWNER'
143360                                                                             ,l_entity_code
143361                                                                             ,l_event_class_code
143362                                                                            )
143364                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
143365                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
143366                                                                           ,p_lookup_code    => l_component_type_code
143367                                                                          )
143368                                     ,p_token_4                 => 'PRODUCT_NAME'
143369                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
143370                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
143371                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
143372                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
143373                                     ,p_ae_header_id            =>  NULL
143374                                        );
143375 
143376         IF (C_LEVEL_ERROR>= g_log_level) THEN
143377                  trace
143378                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
143379                       ,p_level    => C_LEVEL_ERROR
143380                       ,p_module   => l_log_module);
143381         END IF;
143382       END IF;
143383    END IF;
143384    --
143385    --
143386    ------------------------------------------------------------------------------------------------
143387    -- 4219869 Business Flow
143388    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
143389    -- Prior Entry.  Currently, the following code is always generated.
143390    ------------------------------------------------------------------------------------------------
143391    XLA_AE_LINES_PKG.ValidateCurrentLine;
143392 
143393    ------------------------------------------------------------------------------------
143394    -- 4219869 Business Flow
143395    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
143396    ------------------------------------------------------------------------------------
143397    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
143398 
143399    ----------------------------------------------------------------------------------
143400    -- 4219869 Business Flow
143401    -- Update journal entry status -- Need to generate this within IF <condition>
143402    ----------------------------------------------------------------------------------
143403    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
143404          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
143405          ,p_balance_type_code => l_balance_type_code
143406          );
143407 
143408    -------------------------------------------------------------------------------------------
143409    -- 4262811 - Generate the Accrual Reversal lines
143410    -------------------------------------------------------------------------------------------
143411    BEGIN
143412       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
143413                               (g_array_event(p_event_id).array_value_num('header_index'));
143414       IF l_acc_rev_flag IS NULL THEN
143415          l_acc_rev_flag := 'N';
143416       END IF;
143417    EXCEPTION
143418       WHEN OTHERS THEN
143419          l_acc_rev_flag := 'N';
143420    END;
143421    --
143422    IF (l_acc_rev_flag = 'Y') THEN
143423 
143424        -- 4645092  ------------------------------------------------------------------------------
143425        -- To allow MPA report to determine if it should generate report process
143426        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
143427        ------------------------------------------------------------------------------------------
143428 
143429        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
143430        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
143431    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
143432    -- call ADRs
143433    -- Bug 4922099
143434    --
143435    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
143436         (NVL(l_actual_upg_option, 'N') = 'O') OR
143437         (NVL(l_enc_upg_option, 'N') = 'O')
143438       )
143439    THEN
143440    NULL;
143441    --
143442    --
143443    
143444   l_ccid := AcctDerRule_41(
143445            p_application_id           => p_application_id
143446          , p_ae_header_id             => l_ae_header_id 
143447 , p_source_38 => p_source_38
143448          , x_transaction_coa_id       => l_adr_transaction_coa_id
143449          , x_accounting_coa_id        => l_adr_accounting_coa_id
143450          , x_value_type_code          => l_adr_value_type_code
143451          , p_side                     => 'NA'
143452    );
143453 
143454    xla_ae_lines_pkg.set_ccid(
143455     p_code_combination_id          => l_ccid
143456   , p_value_type_code              => l_adr_value_type_code
143457   , p_transaction_coa_id           => l_adr_transaction_coa_id
143458   , p_accounting_coa_id            => l_adr_accounting_coa_id
143459   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
143460   , p_adr_type_code                => 'S'
143461   , p_component_type               => l_component_type
143462   , p_component_code               => l_component_code
143466   , p_side                         => 'NA'
143463   , p_component_type_code          => l_component_type_code
143464   , p_component_appl_id            => l_component_appl_id
143465   , p_amb_context_code             => l_amb_context_code
143467   );
143468 
143469 
143470    --
143471    --
143472    END IF;
143473 
143474        --
143475        -- Update the line information that should be overwritten
143476        --
143477        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
143478                                          p_header_num   => 1);
143479        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
143480 
143481        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
143482 
143483        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
143484           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
143485        END IF;
143486 
143487       --
143491           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
143488       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
143489       --
143490       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
143492       ELSE
143493           ---------------------------------------------------------------------------------------------------
143494           -- 4262811a Switch Sign
143495           ---------------------------------------------------------------------------------------------------
143496           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
143497           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
143498                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
143499           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
143500                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
143501           -- 5132302
143502           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
143503                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
143504 
143505       END IF;
143506 
143507       -- 4955764
143508       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
143509       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
143510 
143511 
143512       XLA_AE_LINES_PKG.ValidateCurrentLine;
143513       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
143514 
143515       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
143516                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
143517                ,p_balance_type_code => l_balance_type_code);
143518 
143519    END IF;
143520 
143521    -----------------------------------------------------------------------------------------
143522    -- 4262811 Multiperiod Accounting
143523    -----------------------------------------------------------------------------------------
143524      -- No MPA option is assigned.
143525 
143526 
143527 END IF;
143528 END IF;
143529 --
143530 
143531 --
143532 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
143533    trace
143534       (p_msg      => 'END of AcctLineType_236'
143535       ,p_level    => C_LEVEL_PROCEDURE
143536       ,p_module   => l_log_module);
143537 END IF;
143538 --
143539 EXCEPTION
143540   WHEN xla_exceptions_pkg.application_exception THEN
143541       RAISE;
143542   WHEN OTHERS THEN
143543        xla_exceptions_pkg.raise_message
143544            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_236');
143545 END AcctLineType_236;
143546 --
143547 
143548 ---------------------------------------
143549 --
143550 -- PRIVATE FUNCTION
143551 --         AcctLineType_237
143552 --
143553 ---------------------------------------
143554 PROCEDURE AcctLineType_237 (
143555   p_application_id        IN NUMBER
143556  ,p_event_id              IN NUMBER
143557  ,p_calculate_acctd_flag  IN VARCHAR2
143558  ,p_calculate_g_l_flag    IN VARCHAR2
143559  ,p_actual_flag           IN OUT VARCHAR2
143560  ,p_balance_type_code     OUT VARCHAR2
143561  ,p_gain_or_loss_ref      OUT VARCHAR2
143562  
143563 --Invoice Distribution Description
143564  , p_source_1            IN VARCHAR2
143565 --Invoice Distribution Ledger Amount
143566  , p_source_9            IN NUMBER
143567 --Invoice Distribution Type
143568  , p_source_21            IN VARCHAR2
143572 --Accounting Reversal Indicator
143569  , p_source_21_meaning    IN VARCHAR2
143570 --Self-Assessed Tax Account
143571  , p_source_38            IN NUMBER
143573  , p_source_41            IN VARCHAR2
143574 --Distribution Link Type
143575  , p_source_43            IN VARCHAR2
143576 --Allocation to Main Distribution Identifier
143577  , p_source_45            IN NUMBER
143578 --Invoice Identifier
143579  , p_source_46            IN NUMBER
143580 --Invoice Distribution Identifier
143581  , p_source_52            IN NUMBER
143582 --Payables Encumbrance Upgrade Credit Account
143583  , p_source_53            IN NUMBER
143584 --Payables Encumbrance Upgrade Credit Amount
143585  , p_source_54            IN NUMBER
143586 --Invoice Currency Code
143587  , p_source_55            IN VARCHAR2
143588 --Payables Encumbrance Upgrade Credit Base Amount
143589  , p_source_56            IN NUMBER
143590 --Payables Encumbrance Upgrade Debit Account
143591  , p_source_57            IN NUMBER
143592 --Payables Encumbrance Upgrade Debit Amount
143593  , p_source_58            IN NUMBER
143594 --Payables Encumbrance Upgrade Debit Base Amount
143595  , p_source_59            IN NUMBER
143596 --Payables Encumbrance Upgrade Option
143597  , p_source_60            IN VARCHAR2
143598 --Invoice Distribution Amount
143599  , p_source_61            IN NUMBER
143600 --Deferred Accounting End Date
143601  , p_source_65            IN DATE
143602 --Deferred Accounting Option
143603  , p_source_66            IN VARCHAR2
143604 --Deferred Accounting Start Date
143605  , p_source_67            IN DATE
143606 --Override Accounted Amount Indicator
143607  , p_source_68            IN VARCHAR2
143608  , p_source_68_meaning    IN VARCHAR2
143609 --Invoice Supplier Identifier
143610  , p_source_69            IN NUMBER
143611 --Invoice Supplier Site Identifier
143612  , p_source_70            IN NUMBER
143613 --Third Party Type
143614  , p_source_71            IN VARCHAR2
143615 --Parent Reversal Identifier
143616  , p_source_72            IN NUMBER
143617 --Invoice Distribution Statistical Amount
143618  , p_source_73            IN NUMBER
143619 --Invoice Distribution Tax Line Identifier
143620  , p_source_74            IN NUMBER
143621 --Invoice Distribution Tax Distribution Identifier from Tax
143622  , p_source_75            IN NUMBER
143623 --Invoice Distribution Summary Tax Line Identifier
143624  , p_source_76            IN NUMBER
143625 --Payables Upgrade Credit Encumbrance Type Identifier
143626  , p_source_77            IN NUMBER
143627 --Payables Upgrade Debit Encumbrance Type Identifier
143628  , p_source_78            IN NUMBER
143629 --Business Flow Accounts Payable Application Identifier
143630  , p_source_79            IN NUMBER
143631 --Business Flow Invoice Distribution Type
143632  , p_source_80            IN VARCHAR2
143633 --Business Flow Invoice Entity Code
143634  , p_source_81            IN VARCHAR2
143635 --Business Flow Invoice Distribution Identifier
143636  , p_source_82            IN NUMBER
143637 --Business Flow Invoice Identifier
143638  , p_source_83            IN NUMBER
143639 --Accrue on Receipt Option
143643  , p_source_135            IN VARCHAR2
143640  , p_source_84            IN VARCHAR2
143641  , p_source_84_meaning    IN VARCHAR2
143642 --Self-Assessed Tax Flag
143644  , p_source_135_meaning    IN VARCHAR2
143645 --Invoice Exchange Date
143646  , p_source_136            IN DATE
143647 --Invoice Exchange Rate
143648  , p_source_137            IN NUMBER
143649 --Invoice Exchange Rate Type
143650  , p_source_138            IN VARCHAR2
143651 )
143652 IS
143653 
143654 l_component_type              VARCHAR2(80);
143655 l_component_code              VARCHAR2(30);
143656 l_component_type_code         VARCHAR2(1);
143657 l_component_appl_id           INTEGER;
143658 l_amb_context_code            VARCHAR2(30);
143659 l_entity_code                 VARCHAR2(30);
143660 l_event_class_code            VARCHAR2(30);
143661 l_ae_header_id                NUMBER;
143662 l_event_type_code             VARCHAR2(30);
143663 l_line_definition_code        VARCHAR2(30);
143664 l_line_definition_owner_code  VARCHAR2(1);
143665 --
143666 -- adr variables
143667 l_segment                     VARCHAR2(30);
143668 l_ccid                        NUMBER;
143669 l_adr_transaction_coa_id      NUMBER;
143670 l_adr_accounting_coa_id       NUMBER;
143671 l_adr_flexfield_segment_code  VARCHAR2(30);
143672 l_adr_flex_value_set_id       NUMBER;
143673 l_adr_value_type_code         VARCHAR2(30);
143674 l_adr_value_combination_id    NUMBER;
143675 l_adr_value_segment_code      VARCHAR2(30);
143676 
143677 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
143681 
143678 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
143679 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
143680 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
143682 -- 4262811 Variables ------------------------------------------------------------------------------------------
143683 l_entered_amt_idx             NUMBER;
143684 l_accted_amt_idx              NUMBER;
143685 l_acc_rev_flag                VARCHAR2(1);
143686 l_accrual_line_num            NUMBER;
143687 l_tmp_amt                     NUMBER;
143688 l_acc_rev_natural_side_code   VARCHAR2(1);
143689 
143690 l_num_entries                 NUMBER;
143691 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
143692 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
143693 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
143694 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
143695 l_recog_line_1                NUMBER;
143696 l_recog_line_2                NUMBER;
143697 
143698 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
143699 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
143700 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
143701 
143702 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
143703 
143704 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
143705 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
143706 
143707 ---------------------------------------------------------------------------------------------------------------
143708 
143709 
143710 --
143711 -- bulk performance
143712 --
143713 l_balance_type_code           VARCHAR2(1);
143714 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
143715 l_log_module                  VARCHAR2(240);
143716 
143717 --
143718 -- Upgrade strategy
143719 --
143720 l_actual_upg_option           VARCHAR2(1);
143721 l_enc_upg_option           VARCHAR2(1);
143722 
143723 --
143724 BEGIN
143725 --
143726 IF g_log_enabled THEN
143727       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_237';
143728 END IF;
143729 --
143730 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
143731 
143732       trace
143733          (p_msg      => 'BEGIN of AcctLineType_237'
143734          ,p_level    => C_LEVEL_PROCEDURE
143735          ,p_module   => l_log_module);
143736 
143737 END IF;
143738 --
143739 l_component_type             := 'AMB_JLT';
143740 l_component_code             := 'AP_SELF_ASSESSED_NON_REC_CM';
143741 l_component_type_code        := 'S';
143742 l_component_appl_id          :=  200;
143743 l_amb_context_code           := 'DEFAULT';
143744 l_entity_code                := 'AP_INVOICES';
143745 l_event_class_code           := 'CREDIT MEMOS';
143746 l_event_type_code            := 'CREDIT MEMOS_ALL';
143747 l_line_definition_owner_code := 'S';
143748 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
143749 --
143750 l_balance_type_code          := 'A';
143751 l_segment                     := NULL;
143752 l_ccid                        := NULL;
143753 l_adr_transaction_coa_id      := NULL;
143754 l_adr_accounting_coa_id       := NULL;
143755 l_adr_flexfield_segment_code  := NULL;
143756 l_adr_flex_value_set_id       := NULL;
143757 l_adr_value_type_code         := NULL;
143758 l_adr_value_combination_id    := NULL;
143759 l_adr_value_segment_code      := NULL;
143760 
143761 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
143762 l_bflow_class_code           := '';    -- 4219869 Business Flow
143763 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
143764 l_budgetary_control_flag     := 'N';
143765 
143766 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
143767 l_bflow_applied_to_amt       := NULL; -- 5132302
143768 l_entered_amt_idx            := NULL;          -- 4262811
143769 l_accted_amt_idx             := NULL;          -- 4262811
143770 l_acc_rev_flag               := NULL;          -- 4262811
143771 l_accrual_line_num           := NULL;          -- 4262811
143772 l_tmp_amt                    := NULL;          -- 4262811
143773 --
143774  
143775 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
143776     l_balance_type_code <> 'B' THEN
143777 IF (NVL(p_source_21,'
143778 ') =  'NONREC_TAX' OR 
143779 NVL(p_source_21,'
143780 ') =  'TERV' OR 
143781 NVL(p_source_21,'
143782 ') =  'TIPV' OR 
143783 NVL(p_source_21,'
143784 ') =  'TRV') AND 
143785 NVL(p_source_84,'
143786 ') <>  'Y' AND 
143787 NVL(p_source_135,'
143788 ') =  'Y'
143789  THEN 
143790 
143791    --
143792    XLA_AE_LINES_PKG.SetNewLine;
143793 
143794    p_balance_type_code          := l_balance_type_code;
143795    -- set the flag so later we will know whether the gain loss line needs to be created
143796    
143797    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
143798      p_actual_flag :='A';
143799    END IF;
143800 
143801    --
143802    -- bulk performance
143803    --
143807    -- set accounting line options
143804    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
143805                                       p_header_num   => 0); -- 4262811
143806    --
143808    --
143809    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
143810            p_natural_side_code          => 'D'
143811          , p_gain_or_loss_flag          => 'N'
143812          , p_gl_transfer_mode_code      => 'S'
143813          , p_acct_entry_type_code       => 'A'
143814          , p_switch_side_flag           => 'Y'
143815          , p_merge_duplicate_code       => 'A'
143816          );
143817    --
143818    l_acc_rev_natural_side_code := 'C';  -- 4262811
143819    -- 
143820    --
143821    -- set accounting line type info
143822    --
143823    xla_ae_lines_pkg.SetAcctLineType
143824       (p_component_type             => l_component_type
143825       ,p_event_type_code            => l_event_type_code
143826       ,p_line_definition_owner_code => l_line_definition_owner_code
143827       ,p_line_definition_code       => l_line_definition_code
143828       ,p_accounting_line_code       => l_component_code
143829       ,p_accounting_line_type_code  => l_component_type_code
143830       ,p_accounting_line_appl_id    => l_component_appl_id
143831       ,p_amb_context_code           => l_amb_context_code
143832       ,p_entity_code                => l_entity_code
143833       ,p_event_class_code           => l_event_class_code);
143834    --
143835    -- set accounting class
143836    --
143837    xla_ae_lines_pkg.SetAcctClass(
143838            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
143839          , p_ae_header_id           => l_ae_header_id
143840          );
143841 
143842    --
143843    -- set rounding class
143844    --
143845    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
143846                       'SELF_ASSESSED_TAX';
143847 
143848    --
143849    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
143850    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
143851    --
143852    -- bulk performance
143853    --
143854    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
143855 
143856    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
143857       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
143858 
143859    -- 4955764
143860    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
143861       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
143862 
143863    -- 4458381 Public Sector Enh
143864    
143865    --
143866    -- set accounting attributes for the line type
143867    --
143868    l_entered_amt_idx := 23;
143869    l_accted_amt_idx  := 28;
143870    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
143871    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
143872    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
143873    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
143874    l_rec_acct_attrs.array_num_value(2)  := 
143875 xla_ae_sources_pkg.GetSystemSourceNum(
143876    p_source_code           => 'XLA_EVENT_APPL_ID'
143877  , p_source_type_code      => 'Y'
143878  , p_source_application_id =>  602
143879 );
143880    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
143881    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
143882    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
143883    l_rec_acct_attrs.array_char_value(4)  := 
143884 xla_ae_sources_pkg.GetSystemSourceChar(
143885    p_source_code           => 'XLA_ENTITY_CODE'
143886  , p_source_type_code      => 'Y'
143887  , p_source_application_id =>  602
143888 );
143889    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
143890    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
143891    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
143892    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
143893    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
143894    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
143895    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
143896    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
143897    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
143898    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
143899    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
143900    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
143901    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
143902    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
143903    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
143904    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
143905    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
143906    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
143910    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
143907    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
143908    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
143909    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
143911    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
143912    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
143913    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
143914    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
143915    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
143916    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
143917    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
143918    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
143919    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
143920    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
143921    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
143922    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
143923    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
143924    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
143925    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
143926    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
143927    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
143928    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
143929    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
143930    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
143934    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
143931    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
143932    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
143933    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
143935    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
143936    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
143937    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
143938    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
143939    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
143940    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
143941    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
143942    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
143943    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
143944    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
143945    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
143946    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
143947    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
143948    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
143949    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
143950    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
143951    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
143952    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
143953    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
143954    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
143955    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
143956    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
143957    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
143958    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
143959    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
143960    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
143961    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
143962    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
143963    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
143964    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
143965    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
143966    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
143967 
143968    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
143969    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
143970 
143971    ---------------------------------------------------------------------------------------------------------------
143972    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
143973    ---------------------------------------------------------------------------------------------------------------
143974    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
143975 
143976    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
143977    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
143978 
143979    IF xla_accounting_cache_pkg.GetValueChar
143980          (p_source_code         => 'LEDGER_CATEGORY_CODE'
143981          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
143982    AND l_bflow_method_code = 'PRIOR_ENTRY'
143983 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
143984    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
143985          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
143986        )
143987    THEN
143988          xla_ae_lines_pkg.BflowUpgEntry
143989            (p_business_method_code    => l_bflow_method_code
143990            ,p_business_class_code     => l_bflow_class_code
143991            ,p_balance_type            => l_balance_type_code);
143992    ELSE
143993       NULL;
143994 -- No business flow processing for business flow method of NONE.
143995    END IF;
143996 
143997    --
143998    -- call analytical criteria
143999    --
144000    
144001    --
144002    -- call description
144003    --
144004    
144005 xla_ae_lines_pkg.SetLineDescription(
144006    p_ae_header_id => l_ae_header_id
144007   ,p_description  => Description_2 (
144008      p_application_id         => p_application_id
144009    , p_ae_header_id           => l_ae_header_id 
144010 , p_source_1 => p_source_1
144011    )
144012 );
144013 
144014 
144015    --
144016    -- call ADRs
144017    -- Bug 4922099
144018    --
144019    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
144020         (NVL(l_actual_upg_option, 'N') = 'O') OR
144021         (NVL(l_enc_upg_option, 'N') = 'O')
144022       )
144023    THEN
144024    NULL;
144025    --
144026    --
144027    
144028   l_ccid := AcctDerRule_41(
144029            p_application_id           => p_application_id
144030          , p_ae_header_id             => l_ae_header_id 
144031 , p_source_38 => p_source_38
144032          , x_transaction_coa_id       => l_adr_transaction_coa_id
144033          , x_accounting_coa_id        => l_adr_accounting_coa_id
144034          , x_value_type_code          => l_adr_value_type_code
144035          , p_side                     => 'NA'
144036    );
144037 
144038    xla_ae_lines_pkg.set_ccid(
144039     p_code_combination_id          => l_ccid
144040   , p_value_type_code              => l_adr_value_type_code
144041   , p_transaction_coa_id           => l_adr_transaction_coa_id
144042   , p_accounting_coa_id            => l_adr_accounting_coa_id
144046   , p_component_code               => l_component_code
144043   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
144044   , p_adr_type_code                => 'S'
144045   , p_component_type               => l_component_type
144047   , p_component_type_code          => l_component_type_code
144048   , p_component_appl_id            => l_component_appl_id
144049   , p_amb_context_code             => l_amb_context_code
144050   , p_side                         => 'NA'
144051   );
144052 
144053 
144054    --
144055    --
144056    END IF;
144057    --
144058    -- Bug 4922099
144059    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
144060           (NVL(l_enc_upg_option, 'N') = 'O')
144061         ) AND
144062         (l_bflow_method_code = 'PRIOR_ENTRY')
144063       )
144064    THEN
144065       IF
144066       --
144067       1 = 2
144068       --
144069       THEN
144070       xla_accounting_err_pkg.build_message
144071                                     (p_appli_s_name            => 'XLA'
144075                                     ,p_token_2                 => 'LINE_TYPE_NAME'
144072                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
144073                                     ,p_token_1                 => 'LINE_NUMBER'
144074                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
144076                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
144077                                                                              l_component_type
144078                                                                             ,l_component_code
144079                                                                             ,l_component_type_code
144080                                                                             ,l_component_appl_id
144081                                                                             ,l_amb_context_code
144082                                                                             ,l_entity_code
144083                                                                             ,l_event_class_code
144084                                                                            )
144085                                     ,p_token_3                 => 'OWNER'
144086                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
144087                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
144088                                                                           ,p_lookup_code    => l_component_type_code
144089                                                                          )
144090                                     ,p_token_4                 => 'PRODUCT_NAME'
144091                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
144092                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
144093                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
144094                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
144095                                     ,p_ae_header_id            =>  NULL
144096                                        );
144097 
144098         IF (C_LEVEL_ERROR>= g_log_level) THEN
144099                  trace
144100                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
144101                       ,p_level    => C_LEVEL_ERROR
144102                       ,p_module   => l_log_module);
144103         END IF;
144104       END IF;
144105    END IF;
144106    --
144107    --
144108    ------------------------------------------------------------------------------------------------
144109    -- 4219869 Business Flow
144110    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
144111    -- Prior Entry.  Currently, the following code is always generated.
144112    ------------------------------------------------------------------------------------------------
144113    XLA_AE_LINES_PKG.ValidateCurrentLine;
144114 
144115    ------------------------------------------------------------------------------------
144116    -- 4219869 Business Flow
144117    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
144118    ------------------------------------------------------------------------------------
144119    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
144120 
144121    ----------------------------------------------------------------------------------
144122    -- 4219869 Business Flow
144123    -- Update journal entry status -- Need to generate this within IF <condition>
144124    ----------------------------------------------------------------------------------
144125    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
144126          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
144127          ,p_balance_type_code => l_balance_type_code
144128          );
144129 
144130    -------------------------------------------------------------------------------------------
144131    -- 4262811 - Generate the Accrual Reversal lines
144132    -------------------------------------------------------------------------------------------
144133    BEGIN
144134       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
144135                               (g_array_event(p_event_id).array_value_num('header_index'));
144136       IF l_acc_rev_flag IS NULL THEN
144137          l_acc_rev_flag := 'N';
144138       END IF;
144139    EXCEPTION
144140       WHEN OTHERS THEN
144141          l_acc_rev_flag := 'N';
144142    END;
144143    --
144144    IF (l_acc_rev_flag = 'Y') THEN
144145 
144149        ------------------------------------------------------------------------------------------
144146        -- 4645092  ------------------------------------------------------------------------------
144147        -- To allow MPA report to determine if it should generate report process
144148        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
144150 
144151        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
144152        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
144153    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
144154    -- call ADRs
144155    -- Bug 4922099
144156    --
144157    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
144158         (NVL(l_actual_upg_option, 'N') = 'O') OR
144159         (NVL(l_enc_upg_option, 'N') = 'O')
144160       )
144161    THEN
144162    NULL;
144163    --
144164    --
144165    
144166   l_ccid := AcctDerRule_41(
144167            p_application_id           => p_application_id
144168          , p_ae_header_id             => l_ae_header_id 
144169 , p_source_38 => p_source_38
144170          , x_transaction_coa_id       => l_adr_transaction_coa_id
144171          , x_accounting_coa_id        => l_adr_accounting_coa_id
144172          , x_value_type_code          => l_adr_value_type_code
144173          , p_side                     => 'NA'
144174    );
144175 
144176    xla_ae_lines_pkg.set_ccid(
144177     p_code_combination_id          => l_ccid
144178   , p_value_type_code              => l_adr_value_type_code
144179   , p_transaction_coa_id           => l_adr_transaction_coa_id
144180   , p_accounting_coa_id            => l_adr_accounting_coa_id
144181   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
144182   , p_adr_type_code                => 'S'
144183   , p_component_type               => l_component_type
144184   , p_component_code               => l_component_code
144185   , p_component_type_code          => l_component_type_code
144186   , p_component_appl_id            => l_component_appl_id
144187   , p_amb_context_code             => l_amb_context_code
144191 
144188   , p_side                         => 'NA'
144189   );
144190 
144192    --
144193    --
144194    END IF;
144195 
144196        --
144197        -- Update the line information that should be overwritten
144198        --
144199        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
144200                                          p_header_num   => 1);
144201        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
144202 
144203        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
144204 
144205        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
144206           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
144207        END IF;
144208 
144209       --
144210       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
144211       --
144212       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
144213           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
144214       ELSE
144215           ---------------------------------------------------------------------------------------------------
144216           -- 4262811a Switch Sign
144217           ---------------------------------------------------------------------------------------------------
144218           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
144219           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
144220                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
144221           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
144222                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
144223           -- 5132302
144224           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
144225                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
144226 
144227       END IF;
144228 
144229       -- 4955764
144230       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
144231       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
144232 
144233 
144234       XLA_AE_LINES_PKG.ValidateCurrentLine;
144235       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
144236 
144237       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
144241    END IF;
144238                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
144239                ,p_balance_type_code => l_balance_type_code);
144240 
144242 
144243    -----------------------------------------------------------------------------------------
144244    -- 4262811 Multiperiod Accounting
144245    -----------------------------------------------------------------------------------------
144246      -- No MPA option is assigned.
144247 
144248 
144249 END IF;
144250 END IF;
144251 --
144252 
144253 --
144254 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
144255    trace
144256       (p_msg      => 'END of AcctLineType_237'
144257       ,p_level    => C_LEVEL_PROCEDURE
144258       ,p_module   => l_log_module);
144259 END IF;
144260 --
144261 EXCEPTION
144262   WHEN xla_exceptions_pkg.application_exception THEN
144263       RAISE;
144264   WHEN OTHERS THEN
144265        xla_exceptions_pkg.raise_message
144266            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_237');
144267 END AcctLineType_237;
144268 --
144269 
144270 ---------------------------------------
144271 --
144272 -- PRIVATE FUNCTION
144273 --         AcctLineType_238
144274 --
144275 ---------------------------------------
144276 PROCEDURE AcctLineType_238 (
144277   p_application_id        IN NUMBER
144278  ,p_event_id              IN NUMBER
144279  ,p_calculate_acctd_flag  IN VARCHAR2
144280  ,p_calculate_g_l_flag    IN VARCHAR2
144281  ,p_actual_flag           IN OUT VARCHAR2
144282  ,p_balance_type_code     OUT VARCHAR2
144283  ,p_gain_or_loss_ref      OUT VARCHAR2
144284  
144285 --Invoice Distribution Description
144286  , p_source_1            IN VARCHAR2
144287 --Invoice Distribution Ledger Amount
144288  , p_source_9            IN NUMBER
144289 --Invoice Distribution Type
144290  , p_source_21            IN VARCHAR2
144291  , p_source_21_meaning    IN VARCHAR2
144292 --Self-Assessed Tax Account
144293  , p_source_38            IN NUMBER
144294 --Accounting Reversal Indicator
144295  , p_source_41            IN VARCHAR2
144296 --Distribution Link Type
144297  , p_source_43            IN VARCHAR2
144298 --Allocation to Main Distribution Identifier
144299  , p_source_45            IN NUMBER
144300 --Invoice Identifier
144301  , p_source_46            IN NUMBER
144302 --Invoice Distribution Identifier
144303  , p_source_52            IN NUMBER
144304 --Payables Encumbrance Upgrade Credit Account
144305  , p_source_53            IN NUMBER
144306 --Payables Encumbrance Upgrade Credit Amount
144307  , p_source_54            IN NUMBER
144308 --Invoice Currency Code
144309  , p_source_55            IN VARCHAR2
144310 --Payables Encumbrance Upgrade Credit Base Amount
144311  , p_source_56            IN NUMBER
144312 --Payables Encumbrance Upgrade Debit Account
144313  , p_source_57            IN NUMBER
144314 --Payables Encumbrance Upgrade Debit Amount
144315  , p_source_58            IN NUMBER
144316 --Payables Encumbrance Upgrade Debit Base Amount
144317  , p_source_59            IN NUMBER
144318 --Payables Encumbrance Upgrade Option
144319  , p_source_60            IN VARCHAR2
144320 --Invoice Distribution Amount
144321  , p_source_61            IN NUMBER
144322 --Deferred Accounting End Date
144323  , p_source_65            IN DATE
144324 --Deferred Accounting Option
144325  , p_source_66            IN VARCHAR2
144326 --Deferred Accounting Start Date
144327  , p_source_67            IN DATE
144328 --Override Accounted Amount Indicator
144329  , p_source_68            IN VARCHAR2
144330  , p_source_68_meaning    IN VARCHAR2
144331 --Invoice Supplier Identifier
144332  , p_source_69            IN NUMBER
144333 --Invoice Supplier Site Identifier
144334  , p_source_70            IN NUMBER
144335 --Third Party Type
144336  , p_source_71            IN VARCHAR2
144337 --Parent Reversal Identifier
144338  , p_source_72            IN NUMBER
144339 --Invoice Distribution Tax Line Identifier
144340  , p_source_74            IN NUMBER
144341 --Invoice Distribution Tax Distribution Identifier from Tax
144342  , p_source_75            IN NUMBER
144346  , p_source_77            IN NUMBER
144343 --Invoice Distribution Summary Tax Line Identifier
144344  , p_source_76            IN NUMBER
144345 --Payables Upgrade Credit Encumbrance Type Identifier
144347 --Payables Upgrade Debit Encumbrance Type Identifier
144348  , p_source_78            IN NUMBER
144349 --Business Flow Accounts Payable Application Identifier
144350  , p_source_79            IN NUMBER
144351 --Business Flow Invoice Distribution Type
144355 --Business Flow Invoice Distribution Identifier
144352  , p_source_80            IN VARCHAR2
144353 --Business Flow Invoice Entity Code
144354  , p_source_81            IN VARCHAR2
144356  , p_source_82            IN NUMBER
144357 --Business Flow Invoice Identifier
144358  , p_source_83            IN NUMBER
144359 --Accrue on Receipt Option
144360  , p_source_84            IN VARCHAR2
144361  , p_source_84_meaning    IN VARCHAR2
144362 --Self-Assessed Tax Flag
144363  , p_source_135            IN VARCHAR2
144364  , p_source_135_meaning    IN VARCHAR2
144365 --Invoice Exchange Date
144366  , p_source_136            IN DATE
144367 --Invoice Exchange Rate
144368  , p_source_137            IN NUMBER
144369 --Invoice Exchange Rate Type
144370  , p_source_138            IN VARCHAR2
144371 )
144372 IS
144373 
144374 l_component_type              VARCHAR2(80);
144375 l_component_code              VARCHAR2(30);
144376 l_component_type_code         VARCHAR2(1);
144377 l_component_appl_id           INTEGER;
144378 l_amb_context_code            VARCHAR2(30);
144379 l_entity_code                 VARCHAR2(30);
144380 l_event_class_code            VARCHAR2(30);
144381 l_ae_header_id                NUMBER;
144382 l_event_type_code             VARCHAR2(30);
144383 l_line_definition_code        VARCHAR2(30);
144384 l_line_definition_owner_code  VARCHAR2(1);
144385 --
144386 -- adr variables
144387 l_segment                     VARCHAR2(30);
144388 l_ccid                        NUMBER;
144389 l_adr_transaction_coa_id      NUMBER;
144390 l_adr_accounting_coa_id       NUMBER;
144391 l_adr_flexfield_segment_code  VARCHAR2(30);
144392 l_adr_flex_value_set_id       NUMBER;
144393 l_adr_value_type_code         VARCHAR2(30);
144394 l_adr_value_combination_id    NUMBER;
144395 l_adr_value_segment_code      VARCHAR2(30);
144396 
144397 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
144398 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
144399 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
144400 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
144401 
144402 -- 4262811 Variables ------------------------------------------------------------------------------------------
144403 l_entered_amt_idx             NUMBER;
144404 l_accted_amt_idx              NUMBER;
144405 l_acc_rev_flag                VARCHAR2(1);
144406 l_accrual_line_num            NUMBER;
144407 l_tmp_amt                     NUMBER;
144408 l_acc_rev_natural_side_code   VARCHAR2(1);
144409 
144410 l_num_entries                 NUMBER;
144411 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
144412 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
144413 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
144414 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
144415 l_recog_line_1                NUMBER;
144416 l_recog_line_2                NUMBER;
144417 
144418 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
144419 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
144420 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
144421 
144422 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
144423 
144424 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
144425 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
144426 
144427 ---------------------------------------------------------------------------------------------------------------
144428 
144429 
144430 --
144431 -- bulk performance
144432 --
144433 l_balance_type_code           VARCHAR2(1);
144434 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
144435 l_log_module                  VARCHAR2(240);
144436 
144437 --
144438 -- Upgrade strategy
144439 --
144440 l_actual_upg_option           VARCHAR2(1);
144441 l_enc_upg_option           VARCHAR2(1);
144442 
144443 --
144444 BEGIN
144445 --
144446 IF g_log_enabled THEN
144447       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_238';
144448 END IF;
144449 --
144450 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
144451 
144452       trace
144453          (p_msg      => 'BEGIN of AcctLineType_238'
144454          ,p_level    => C_LEVEL_PROCEDURE
144455          ,p_module   => l_log_module);
144456 
144457 END IF;
144458 --
144459 l_component_type             := 'AMB_JLT';
144460 l_component_code             := 'AP_SELF_ASSESSED_NON_REC_DM';
144461 l_component_type_code        := 'S';
144462 l_component_appl_id          :=  200;
144463 l_amb_context_code           := 'DEFAULT';
144464 l_entity_code                := 'AP_INVOICES';
144465 l_event_class_code           := 'DEBIT MEMOS';
144466 l_event_type_code            := 'DEBIT MEMOS_ALL';
144467 l_line_definition_owner_code := 'S';
144468 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
144469 --
144470 l_balance_type_code          := 'A';
144471 l_segment                     := NULL;
144472 l_ccid                        := NULL;
144473 l_adr_transaction_coa_id      := NULL;
144474 l_adr_accounting_coa_id       := NULL;
144475 l_adr_flexfield_segment_code  := NULL;
144476 l_adr_flex_value_set_id       := NULL;
144477 l_adr_value_type_code         := NULL;
144478 l_adr_value_combination_id    := NULL;
144479 l_adr_value_segment_code      := NULL;
144480 
144481 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
144482 l_bflow_class_code           := '';    -- 4219869 Business Flow
144486 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
144483 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
144484 l_budgetary_control_flag     := 'N';
144485 
144487 l_bflow_applied_to_amt       := NULL; -- 5132302
144488 l_entered_amt_idx            := NULL;          -- 4262811
144489 l_accted_amt_idx             := NULL;          -- 4262811
144490 l_acc_rev_flag               := NULL;          -- 4262811
144491 l_accrual_line_num           := NULL;          -- 4262811
144492 l_tmp_amt                    := NULL;          -- 4262811
144493 --
144494  
144495 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
144499 NVL(p_source_21,'
144496     l_balance_type_code <> 'B' THEN
144497 IF (NVL(p_source_21,'
144498 ') =  'NONREC_TAX' OR 
144500 ') =  'TERV' OR 
144501 NVL(p_source_21,'
144502 ') =  'TIPV' OR 
144503 NVL(p_source_21,'
144504 ') =  'TRV') AND 
144505 NVL(p_source_84,'
144506 ') <>  'Y' AND 
144507 NVL(p_source_135,'
144508 ') =  'Y'
144509  THEN 
144510 
144511    --
144512    XLA_AE_LINES_PKG.SetNewLine;
144513 
144514    p_balance_type_code          := l_balance_type_code;
144515    -- set the flag so later we will know whether the gain loss line needs to be created
144516    
144517    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
144518      p_actual_flag :='A';
144519    END IF;
144520 
144521    --
144522    -- bulk performance
144523    --
144524    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
144525                                       p_header_num   => 0); -- 4262811
144526    --
144527    -- set accounting line options
144528    --
144529    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
144530            p_natural_side_code          => 'D'
144531          , p_gain_or_loss_flag          => 'N'
144532          , p_gl_transfer_mode_code      => 'S'
144533          , p_acct_entry_type_code       => 'A'
144534          , p_switch_side_flag           => 'Y'
144535          , p_merge_duplicate_code       => 'A'
144536          );
144537    --
144538    l_acc_rev_natural_side_code := 'C';  -- 4262811
144539    -- 
144540    --
144541    -- set accounting line type info
144542    --
144543    xla_ae_lines_pkg.SetAcctLineType
144544       (p_component_type             => l_component_type
144545       ,p_event_type_code            => l_event_type_code
144546       ,p_line_definition_owner_code => l_line_definition_owner_code
144547       ,p_line_definition_code       => l_line_definition_code
144548       ,p_accounting_line_code       => l_component_code
144549       ,p_accounting_line_type_code  => l_component_type_code
144550       ,p_accounting_line_appl_id    => l_component_appl_id
144551       ,p_amb_context_code           => l_amb_context_code
144552       ,p_entity_code                => l_entity_code
144553       ,p_event_class_code           => l_event_class_code);
144554    --
144555    -- set accounting class
144556    --
144557    xla_ae_lines_pkg.SetAcctClass(
144558            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
144559          , p_ae_header_id           => l_ae_header_id
144560          );
144561 
144562    --
144563    -- set rounding class
144564    --
144565    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
144566                       'SELF_ASSESSED_TAX';
144567 
144568    --
144569    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
144570    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
144571    --
144572    -- bulk performance
144573    --
144574    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
144575 
144576    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
144577       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
144578 
144579    -- 4955764
144580    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
144581       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
144582 
144583    -- 4458381 Public Sector Enh
144584    
144585    --
144586    -- set accounting attributes for the line type
144587    --
144588    l_entered_amt_idx := 23;
144589    l_accted_amt_idx  := 28;
144590    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
144591    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
144592    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
144593    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
144594    l_rec_acct_attrs.array_num_value(2)  := 
144595 xla_ae_sources_pkg.GetSystemSourceNum(
144599 );
144596    p_source_code           => 'XLA_EVENT_APPL_ID'
144597  , p_source_type_code      => 'Y'
144598  , p_source_application_id =>  602
144600    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
144601    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
144602    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
144603    l_rec_acct_attrs.array_char_value(4)  := 
144604 xla_ae_sources_pkg.GetSystemSourceChar(
144605    p_source_code           => 'XLA_ENTITY_CODE'
144606  , p_source_type_code      => 'Y'
144607  , p_source_application_id =>  602
144608 );
144609    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
144610    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
144611    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
144612    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
144613    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
144614    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
144615    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
144616    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
144617    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
144618    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
144619    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
144620    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
144621    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
144622    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
144623    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
144624    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
144625    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
144626    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
144627    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
144628    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
144629    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
144630    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
144631    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
144632    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
144633    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
144634    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
144635    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
144636    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
144637    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
144638    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
144642    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
144639    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
144640    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
144641    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
144643    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
144644    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
144645    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
144646    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
144647    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
144648    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
144649    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
144650    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
144651    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
144652    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
144653    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
144654    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
144655    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
144656    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
144657    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
144658    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
144659    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
144660    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
144661    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
144662    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
144663    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
144664    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
144665    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
144666    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
144667    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
144668    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
144669    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
144673    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
144670    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
144671    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
144672    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
144674    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
144675    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
144676    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
144677    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
144678    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
144679    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
144680    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
144681    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
144682    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
144683    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
144684    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
144685 
144686    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
144687    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
144688 
144689    ---------------------------------------------------------------------------------------------------------------
144690    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
144691    ---------------------------------------------------------------------------------------------------------------
144692    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
144693 
144694    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
144695    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
144696 
144697    IF xla_accounting_cache_pkg.GetValueChar
144698          (p_source_code         => 'LEDGER_CATEGORY_CODE'
144699          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
144700    AND l_bflow_method_code = 'PRIOR_ENTRY'
144701 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
144702    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
144703          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
144704        )
144705    THEN
144706          xla_ae_lines_pkg.BflowUpgEntry
144707            (p_business_method_code    => l_bflow_method_code
144708            ,p_business_class_code     => l_bflow_class_code
144709            ,p_balance_type            => l_balance_type_code);
144710    ELSE
144711       NULL;
144712 -- No business flow processing for business flow method of NONE.
144713    END IF;
144714 
144715    --
144716    -- call analytical criteria
144717    --
144718    
144719    --
144720    -- call description
144721    --
144722    
144723 xla_ae_lines_pkg.SetLineDescription(
144724    p_ae_header_id => l_ae_header_id
144725   ,p_description  => Description_2 (
144726      p_application_id         => p_application_id
144727    , p_ae_header_id           => l_ae_header_id 
144728 , p_source_1 => p_source_1
144729    )
144730 );
144731 
144732 
144733    --
144734    -- call ADRs
144735    -- Bug 4922099
144736    --
144737    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
144738         (NVL(l_actual_upg_option, 'N') = 'O') OR
144739         (NVL(l_enc_upg_option, 'N') = 'O')
144740       )
144741    THEN
144742    NULL;
144743    --
144744    --
144745    
144746   l_ccid := AcctDerRule_41(
144747            p_application_id           => p_application_id
144748          , p_ae_header_id             => l_ae_header_id 
144749 , p_source_38 => p_source_38
144750          , x_transaction_coa_id       => l_adr_transaction_coa_id
144751          , x_accounting_coa_id        => l_adr_accounting_coa_id
144752          , x_value_type_code          => l_adr_value_type_code
144753          , p_side                     => 'NA'
144754    );
144755 
144756    xla_ae_lines_pkg.set_ccid(
144757     p_code_combination_id          => l_ccid
144758   , p_value_type_code              => l_adr_value_type_code
144759   , p_transaction_coa_id           => l_adr_transaction_coa_id
144760   , p_accounting_coa_id            => l_adr_accounting_coa_id
144761   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
144762   , p_adr_type_code                => 'S'
144763   , p_component_type               => l_component_type
144764   , p_component_code               => l_component_code
144765   , p_component_type_code          => l_component_type_code
144766   , p_component_appl_id            => l_component_appl_id
144767   , p_amb_context_code             => l_amb_context_code
144771 
144768   , p_side                         => 'NA'
144769   );
144770 
144772    --
144773    --
144774    END IF;
144775    --
144776    -- Bug 4922099
144777    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
144778           (NVL(l_enc_upg_option, 'N') = 'O')
144779         ) AND
144780         (l_bflow_method_code = 'PRIOR_ENTRY')
144781       )
144782    THEN
144783       IF
144784       --
144785       1 = 2
144786       --
144787       THEN
144788       xla_accounting_err_pkg.build_message
144789                                     (p_appli_s_name            => 'XLA'
144790                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
144791                                     ,p_token_1                 => 'LINE_NUMBER'
144792                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
144793                                     ,p_token_2                 => 'LINE_TYPE_NAME'
144794                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
144795                                                                              l_component_type
144796                                                                             ,l_component_code
144797                                                                             ,l_component_type_code
144798                                                                             ,l_component_appl_id
144799                                                                             ,l_amb_context_code
144800                                                                             ,l_entity_code
144801                                                                             ,l_event_class_code
144802                                                                            )
144803                                     ,p_token_3                 => 'OWNER'
144804                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
144805                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
144806                                                                           ,p_lookup_code    => l_component_type_code
144807                                                                          )
144808                                     ,p_token_4                 => 'PRODUCT_NAME'
144809                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
144810                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
144811                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
144812                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
144813                                     ,p_ae_header_id            =>  NULL
144814                                        );
144815 
144816         IF (C_LEVEL_ERROR>= g_log_level) THEN
144817                  trace
144818                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
144819                       ,p_level    => C_LEVEL_ERROR
144820                       ,p_module   => l_log_module);
144821         END IF;
144822       END IF;
144823    END IF;
144824    --
144825    --
144826    ------------------------------------------------------------------------------------------------
144827    -- 4219869 Business Flow
144828    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
144829    -- Prior Entry.  Currently, the following code is always generated.
144830    ------------------------------------------------------------------------------------------------
144831    XLA_AE_LINES_PKG.ValidateCurrentLine;
144832 
144833    ------------------------------------------------------------------------------------
144834    -- 4219869 Business Flow
144835    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
144836    ------------------------------------------------------------------------------------
144837    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
144838 
144839    ----------------------------------------------------------------------------------
144840    -- 4219869 Business Flow
144841    -- Update journal entry status -- Need to generate this within IF <condition>
144842    ----------------------------------------------------------------------------------
144843    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
144844          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
144845          ,p_balance_type_code => l_balance_type_code
144846          );
144847 
144848    -------------------------------------------------------------------------------------------
144849    -- 4262811 - Generate the Accrual Reversal lines
144850    -------------------------------------------------------------------------------------------
144851    BEGIN
144852       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
144853                               (g_array_event(p_event_id).array_value_num('header_index'));
144854       IF l_acc_rev_flag IS NULL THEN
144855          l_acc_rev_flag := 'N';
144856       END IF;
144857    EXCEPTION
144858       WHEN OTHERS THEN
144859          l_acc_rev_flag := 'N';
144860    END;
144861    --
144862    IF (l_acc_rev_flag = 'Y') THEN
144863 
144864        -- 4645092  ------------------------------------------------------------------------------
144865        -- To allow MPA report to determine if it should generate report process
144866        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
144870        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
144867        ------------------------------------------------------------------------------------------
144868 
144869        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
144871    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
144872    -- call ADRs
144873    -- Bug 4922099
144874    --
144875    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
144876         (NVL(l_actual_upg_option, 'N') = 'O') OR
144877         (NVL(l_enc_upg_option, 'N') = 'O')
144878       )
144879    THEN
144880    NULL;
144881    --
144882    --
144883    
144884   l_ccid := AcctDerRule_41(
144885            p_application_id           => p_application_id
144886          , p_ae_header_id             => l_ae_header_id 
144887 , p_source_38 => p_source_38
144888          , x_transaction_coa_id       => l_adr_transaction_coa_id
144889          , x_accounting_coa_id        => l_adr_accounting_coa_id
144890          , x_value_type_code          => l_adr_value_type_code
144891          , p_side                     => 'NA'
144892    );
144893 
144894    xla_ae_lines_pkg.set_ccid(
144895     p_code_combination_id          => l_ccid
144899   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
144896   , p_value_type_code              => l_adr_value_type_code
144897   , p_transaction_coa_id           => l_adr_transaction_coa_id
144898   , p_accounting_coa_id            => l_adr_accounting_coa_id
144900   , p_adr_type_code                => 'S'
144901   , p_component_type               => l_component_type
144902   , p_component_code               => l_component_code
144903   , p_component_type_code          => l_component_type_code
144904   , p_component_appl_id            => l_component_appl_id
144905   , p_amb_context_code             => l_amb_context_code
144906   , p_side                         => 'NA'
144907   );
144908 
144909 
144910    --
144911    --
144912    END IF;
144913 
144914        --
144915        -- Update the line information that should be overwritten
144916        --
144917        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
144918                                          p_header_num   => 1);
144919        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
144920 
144921        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
144922 
144923        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
144924           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
144925        END IF;
144926 
144927       --
144928       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
144929       --
144930       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
144931           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
144932       ELSE
144933           ---------------------------------------------------------------------------------------------------
144934           -- 4262811a Switch Sign
144935           ---------------------------------------------------------------------------------------------------
144936           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
144937           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
144938                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
144939           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
144940                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
144941           -- 5132302
144942           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
144943                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
144944 
144945       END IF;
144946 
144947       -- 4955764
144948       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
144949       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
144950 
144951 
144952       XLA_AE_LINES_PKG.ValidateCurrentLine;
144953       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
144954 
144955       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
144956                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
144957                ,p_balance_type_code => l_balance_type_code);
144958 
144959    END IF;
144960 
144964      -- No MPA option is assigned.
144961    -----------------------------------------------------------------------------------------
144962    -- 4262811 Multiperiod Accounting
144963    -----------------------------------------------------------------------------------------
144965 
144966 
144967 END IF;
144968 END IF;
144969 --
144970 
144971 --
144972 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
144973    trace
144974       (p_msg      => 'END of AcctLineType_238'
144975       ,p_level    => C_LEVEL_PROCEDURE
144976       ,p_module   => l_log_module);
144977 END IF;
144978 --
144979 EXCEPTION
144980   WHEN xla_exceptions_pkg.application_exception THEN
144981       RAISE;
144982   WHEN OTHERS THEN
144983        xla_exceptions_pkg.raise_message
144984            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_238');
144985 END AcctLineType_238;
144986 --
144987 
144988 ---------------------------------------
144989 --
144990 -- PRIVATE FUNCTION
144991 --         AcctLineType_239
144992 --
144993 ---------------------------------------
144994 PROCEDURE AcctLineType_239 (
144995   p_application_id        IN NUMBER
144996  ,p_event_id              IN NUMBER
144997  ,p_calculate_acctd_flag  IN VARCHAR2
144998  ,p_calculate_g_l_flag    IN VARCHAR2
144999  ,p_actual_flag           IN OUT VARCHAR2
145000  ,p_balance_type_code     OUT VARCHAR2
145001  ,p_gain_or_loss_ref      OUT VARCHAR2
145002  
145003 --Invoice Distribution Description
145004  , p_source_1            IN VARCHAR2
145005 --Invoice Distribution Ledger Amount
145006  , p_source_9            IN NUMBER
145007 --Invoice Distribution Type
145008  , p_source_21            IN VARCHAR2
145009  , p_source_21_meaning    IN VARCHAR2
145010 --Self-Assessed Tax Account
145011  , p_source_38            IN NUMBER
145012 --Accounting Reversal Indicator
145013  , p_source_41            IN VARCHAR2
145014 --Distribution Link Type
145015  , p_source_43            IN VARCHAR2
145016 --Allocation to Main Distribution Identifier
145017  , p_source_45            IN NUMBER
145018 --Invoice Identifier
145019  , p_source_46            IN NUMBER
145020 --Invoice Distribution Identifier
145021  , p_source_52            IN NUMBER
145022 --Payables Encumbrance Upgrade Credit Account
145023  , p_source_53            IN NUMBER
145024 --Payables Encumbrance Upgrade Credit Amount
145025  , p_source_54            IN NUMBER
145026 --Invoice Currency Code
145027  , p_source_55            IN VARCHAR2
145028 --Payables Encumbrance Upgrade Credit Base Amount
145029  , p_source_56            IN NUMBER
145030 --Payables Encumbrance Upgrade Debit Account
145031  , p_source_57            IN NUMBER
145032 --Payables Encumbrance Upgrade Debit Amount
145033  , p_source_58            IN NUMBER
145034 --Payables Encumbrance Upgrade Debit Base Amount
145035  , p_source_59            IN NUMBER
145036 --Payables Encumbrance Upgrade Option
145037  , p_source_60            IN VARCHAR2
145038 --Invoice Distribution Amount
145039  , p_source_61            IN NUMBER
145040 --Deferred Accounting End Date
145041  , p_source_65            IN DATE
145042 --Deferred Accounting Option
145043  , p_source_66            IN VARCHAR2
145044 --Deferred Accounting Start Date
145045  , p_source_67            IN DATE
145046 --Override Accounted Amount Indicator
145050  , p_source_69            IN NUMBER
145047  , p_source_68            IN VARCHAR2
145048  , p_source_68_meaning    IN VARCHAR2
145049 --Invoice Supplier Identifier
145051 --Invoice Supplier Site Identifier
145052  , p_source_70            IN NUMBER
145053 --Third Party Type
145054  , p_source_71            IN VARCHAR2
145055 --Parent Reversal Identifier
145056  , p_source_72            IN NUMBER
145057 --Invoice Distribution Statistical Amount
145058  , p_source_73            IN NUMBER
145059 --Invoice Distribution Tax Line Identifier
145060  , p_source_74            IN NUMBER
145061 --Invoice Distribution Tax Distribution Identifier from Tax
145062  , p_source_75            IN NUMBER
145063 --Invoice Distribution Summary Tax Line Identifier
145064  , p_source_76            IN NUMBER
145065 --Payables Upgrade Credit Encumbrance Type Identifier
145066  , p_source_77            IN NUMBER
145067 --Payables Upgrade Debit Encumbrance Type Identifier
145068  , p_source_78            IN NUMBER
145069 --Business Flow Accounts Payable Application Identifier
145070  , p_source_79            IN NUMBER
145071 --Business Flow Invoice Distribution Type
145072  , p_source_80            IN VARCHAR2
145073 --Business Flow Invoice Entity Code
145074  , p_source_81            IN VARCHAR2
145075 --Business Flow Invoice Distribution Identifier
145076  , p_source_82            IN NUMBER
145080  , p_source_84            IN VARCHAR2
145077 --Business Flow Invoice Identifier
145078  , p_source_83            IN NUMBER
145079 --Accrue on Receipt Option
145081  , p_source_84_meaning    IN VARCHAR2
145082 --Self-Assessed Tax Flag
145083  , p_source_135            IN VARCHAR2
145084  , p_source_135_meaning    IN VARCHAR2
145085 --Invoice Exchange Date
145086  , p_source_136            IN DATE
145087 --Invoice Exchange Rate
145088  , p_source_137            IN NUMBER
145089 --Invoice Exchange Rate Type
145090  , p_source_138            IN VARCHAR2
145091 )
145092 IS
145093 
145094 l_component_type              VARCHAR2(80);
145095 l_component_code              VARCHAR2(30);
145096 l_component_type_code         VARCHAR2(1);
145097 l_component_appl_id           INTEGER;
145098 l_amb_context_code            VARCHAR2(30);
145099 l_entity_code                 VARCHAR2(30);
145100 l_event_class_code            VARCHAR2(30);
145101 l_ae_header_id                NUMBER;
145102 l_event_type_code             VARCHAR2(30);
145103 l_line_definition_code        VARCHAR2(30);
145104 l_line_definition_owner_code  VARCHAR2(1);
145105 --
145106 -- adr variables
145107 l_segment                     VARCHAR2(30);
145108 l_ccid                        NUMBER;
145109 l_adr_transaction_coa_id      NUMBER;
145110 l_adr_accounting_coa_id       NUMBER;
145111 l_adr_flexfield_segment_code  VARCHAR2(30);
145112 l_adr_flex_value_set_id       NUMBER;
145113 l_adr_value_type_code         VARCHAR2(30);
145114 l_adr_value_combination_id    NUMBER;
145115 l_adr_value_segment_code      VARCHAR2(30);
145116 
145117 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
145118 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
145119 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
145120 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
145121 
145122 -- 4262811 Variables ------------------------------------------------------------------------------------------
145123 l_entered_amt_idx             NUMBER;
145124 l_accted_amt_idx              NUMBER;
145125 l_acc_rev_flag                VARCHAR2(1);
145126 l_accrual_line_num            NUMBER;
145127 l_tmp_amt                     NUMBER;
145128 l_acc_rev_natural_side_code   VARCHAR2(1);
145129 
145130 l_num_entries                 NUMBER;
145131 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
145132 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
145133 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
145134 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
145135 l_recog_line_1                NUMBER;
145136 l_recog_line_2                NUMBER;
145137 
145138 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
145139 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
145140 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
145141 
145142 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
145143 
145144 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
145145 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
145146 
145147 ---------------------------------------------------------------------------------------------------------------
145148 
145149 
145150 --
145151 -- bulk performance
145152 --
145153 l_balance_type_code           VARCHAR2(1);
145154 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
145155 l_log_module                  VARCHAR2(240);
145156 
145157 --
145158 -- Upgrade strategy
145159 --
145160 l_actual_upg_option           VARCHAR2(1);
145161 l_enc_upg_option           VARCHAR2(1);
145162 
145163 --
145164 BEGIN
145165 --
145166 IF g_log_enabled THEN
145167       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_239';
145168 END IF;
145169 --
145170 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
145171 
145172       trace
145173          (p_msg      => 'BEGIN of AcctLineType_239'
145174          ,p_level    => C_LEVEL_PROCEDURE
145175          ,p_module   => l_log_module);
145176 
145177 END IF;
145178 --
145179 l_component_type             := 'AMB_JLT';
145180 l_component_code             := 'AP_SELF_ASSESSED_NON_REC_INV';
145181 l_component_type_code        := 'S';
145182 l_component_appl_id          :=  200;
145183 l_amb_context_code           := 'DEFAULT';
145184 l_entity_code                := 'AP_INVOICES';
145185 l_event_class_code           := 'INVOICES';
145186 l_event_type_code            := 'INVOICES_ALL';
145187 l_line_definition_owner_code := 'S';
145188 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
145189 --
145190 l_balance_type_code          := 'A';
145191 l_segment                     := NULL;
145192 l_ccid                        := NULL;
145193 l_adr_transaction_coa_id      := NULL;
145194 l_adr_accounting_coa_id       := NULL;
145195 l_adr_flexfield_segment_code  := NULL;
145196 l_adr_flex_value_set_id       := NULL;
145197 l_adr_value_type_code         := NULL;
145198 l_adr_value_combination_id    := NULL;
145199 l_adr_value_segment_code      := NULL;
145200 
145201 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
145202 l_bflow_class_code           := '';    -- 4219869 Business Flow
145206 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
145203 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
145204 l_budgetary_control_flag     := 'N';
145205 
145207 l_bflow_applied_to_amt       := NULL; -- 5132302
145208 l_entered_amt_idx            := NULL;          -- 4262811
145209 l_accted_amt_idx             := NULL;          -- 4262811
145210 l_acc_rev_flag               := NULL;          -- 4262811
145211 l_accrual_line_num           := NULL;          -- 4262811
145215 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
145212 l_tmp_amt                    := NULL;          -- 4262811
145213 --
145214  
145216     l_balance_type_code <> 'B' THEN
145217 IF (NVL(p_source_21,'
145218 ') =  'NONREC_TAX' OR 
145219 NVL(p_source_21,'
145220 ') =  'TERV' OR 
145221 NVL(p_source_21,'
145222 ') =  'TIPV' OR 
145223 NVL(p_source_21,'
145224 ') =  'TRV') AND 
145225 NVL(p_source_84,'
145226 ') <>  'Y' AND 
145227 NVL(p_source_135,'
145228 ') =  'Y'
145229  THEN 
145230 
145231    --
145232    XLA_AE_LINES_PKG.SetNewLine;
145233 
145234    p_balance_type_code          := l_balance_type_code;
145235    -- set the flag so later we will know whether the gain loss line needs to be created
145236    
145237    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
145238      p_actual_flag :='A';
145239    END IF;
145240 
145241    --
145242    -- bulk performance
145243    --
145244    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
145245                                       p_header_num   => 0); -- 4262811
145246    --
145247    -- set accounting line options
145248    --
145249    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
145250            p_natural_side_code          => 'D'
145251          , p_gain_or_loss_flag          => 'N'
145252          , p_gl_transfer_mode_code      => 'S'
145253          , p_acct_entry_type_code       => 'A'
145254          , p_switch_side_flag           => 'Y'
145255          , p_merge_duplicate_code       => 'A'
145256          );
145257    --
145258    l_acc_rev_natural_side_code := 'C';  -- 4262811
145259    -- 
145260    --
145261    -- set accounting line type info
145262    --
145263    xla_ae_lines_pkg.SetAcctLineType
145264       (p_component_type             => l_component_type
145265       ,p_event_type_code            => l_event_type_code
145266       ,p_line_definition_owner_code => l_line_definition_owner_code
145267       ,p_line_definition_code       => l_line_definition_code
145268       ,p_accounting_line_code       => l_component_code
145269       ,p_accounting_line_type_code  => l_component_type_code
145270       ,p_accounting_line_appl_id    => l_component_appl_id
145271       ,p_amb_context_code           => l_amb_context_code
145272       ,p_entity_code                => l_entity_code
145273       ,p_event_class_code           => l_event_class_code);
145274    --
145275    -- set accounting class
145276    --
145277    xla_ae_lines_pkg.SetAcctClass(
145278            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
145279          , p_ae_header_id           => l_ae_header_id
145280          );
145281 
145282    --
145283    -- set rounding class
145284    --
145285    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
145286                       'SELF_ASSESSED_TAX';
145287 
145288    --
145289    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
145290    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
145291    --
145292    -- bulk performance
145293    --
145294    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
145295 
145296    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
145297       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
145298 
145299    -- 4955764
145300    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
145301       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
145302 
145303    -- 4458381 Public Sector Enh
145304    
145305    --
145306    -- set accounting attributes for the line type
145307    --
145308    l_entered_amt_idx := 24;
145309    l_accted_amt_idx  := 29;
145310    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
145311    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
145312    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
145313    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
145314    l_rec_acct_attrs.array_num_value(2)  := 
145315 xla_ae_sources_pkg.GetSystemSourceNum(
145316    p_source_code           => 'XLA_EVENT_APPL_ID'
145317  , p_source_type_code      => 'Y'
145318  , p_source_application_id =>  602
145319 );
145320    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
145321    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
145322    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
145323    l_rec_acct_attrs.array_char_value(4)  := 
145324 xla_ae_sources_pkg.GetSystemSourceChar(
145325    p_source_code           => 'XLA_ENTITY_CODE'
145326  , p_source_type_code      => 'Y'
145327  , p_source_application_id =>  602
145328 );
145329    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
145330    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
145331    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
145332    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
145333    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
145334    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
145335    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
145336    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
145337    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
145338    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
145342    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
145339    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
145340    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
145341    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
145343    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
145344    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
145345    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
145346    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
145347    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
145348    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
145352    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
145349    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
145350    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
145351    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
145353    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
145354    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
145355    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
145356    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
145357    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
145358    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
145359    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
145360    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
145361    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
145362    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
145363    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
145364    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
145365    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
145366    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
145367    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
145368    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
145369    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
145370    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
145371    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
145372    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
145373    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
145374    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
145375    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
145376    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
145377    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
145378    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
145379    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
145380    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
145381    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
145382    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
145383    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
145384    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
145385    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
145386    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
145387    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
145388    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
145389    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
145390    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
145391    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
145392    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
145393    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
145394    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
145395    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
145396    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
145397    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
145398    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
145399    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
145400    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
145401    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
145402    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
145403    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
145404    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
145405    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
145406    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
145407    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
145408    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
145409 
145410    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
145414    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
145411    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
145412 
145413    ---------------------------------------------------------------------------------------------------------------
145415    ---------------------------------------------------------------------------------------------------------------
145416    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
145417 
145418    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
145419    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
145420 
145421    IF xla_accounting_cache_pkg.GetValueChar
145422          (p_source_code         => 'LEDGER_CATEGORY_CODE'
145423          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
145424    AND l_bflow_method_code = 'PRIOR_ENTRY'
145425 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
145426    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
145427          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
145428        )
145429    THEN
145430          xla_ae_lines_pkg.BflowUpgEntry
145431            (p_business_method_code    => l_bflow_method_code
145432            ,p_business_class_code     => l_bflow_class_code
145433            ,p_balance_type            => l_balance_type_code);
145434    ELSE
145435       NULL;
145436 -- No business flow processing for business flow method of NONE.
145437    END IF;
145438 
145439    --
145440    -- call analytical criteria
145441    --
145442    
145443    --
145444    -- call description
145445    --
145446    
145447 xla_ae_lines_pkg.SetLineDescription(
145448    p_ae_header_id => l_ae_header_id
145449   ,p_description  => Description_2 (
145450      p_application_id         => p_application_id
145451    , p_ae_header_id           => l_ae_header_id 
145452 , p_source_1 => p_source_1
145453    )
145454 );
145455 
145456 
145457    --
145458    -- call ADRs
145459    -- Bug 4922099
145460    --
145461    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
145462         (NVL(l_actual_upg_option, 'N') = 'O') OR
145463         (NVL(l_enc_upg_option, 'N') = 'O')
145464       )
145465    THEN
145466    NULL;
145467    --
145468    --
145469    
145470   l_ccid := AcctDerRule_41(
145471            p_application_id           => p_application_id
145472          , p_ae_header_id             => l_ae_header_id 
145473 , p_source_38 => p_source_38
145474          , x_transaction_coa_id       => l_adr_transaction_coa_id
145478    );
145475          , x_accounting_coa_id        => l_adr_accounting_coa_id
145476          , x_value_type_code          => l_adr_value_type_code
145477          , p_side                     => 'NA'
145479 
145480    xla_ae_lines_pkg.set_ccid(
145481     p_code_combination_id          => l_ccid
145482   , p_value_type_code              => l_adr_value_type_code
145483   , p_transaction_coa_id           => l_adr_transaction_coa_id
145484   , p_accounting_coa_id            => l_adr_accounting_coa_id
145485   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
145486   , p_adr_type_code                => 'S'
145487   , p_component_type               => l_component_type
145488   , p_component_code               => l_component_code
145489   , p_component_type_code          => l_component_type_code
145493   );
145490   , p_component_appl_id            => l_component_appl_id
145491   , p_amb_context_code             => l_amb_context_code
145492   , p_side                         => 'NA'
145494 
145495 
145496    --
145497    --
145498    END IF;
145499    --
145500    -- Bug 4922099
145501    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
145502           (NVL(l_enc_upg_option, 'N') = 'O')
145503         ) AND
145504         (l_bflow_method_code = 'PRIOR_ENTRY')
145505       )
145506    THEN
145507       IF
145508       --
145509       1 = 2
145510       --
145511       THEN
145512       xla_accounting_err_pkg.build_message
145513                                     (p_appli_s_name            => 'XLA'
145514                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
145515                                     ,p_token_1                 => 'LINE_NUMBER'
145516                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
145517                                     ,p_token_2                 => 'LINE_TYPE_NAME'
145518                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
145519                                                                              l_component_type
145520                                                                             ,l_component_code
145521                                                                             ,l_component_type_code
145522                                                                             ,l_component_appl_id
145523                                                                             ,l_amb_context_code
145524                                                                             ,l_entity_code
145525                                                                             ,l_event_class_code
145526                                                                            )
145527                                     ,p_token_3                 => 'OWNER'
145528                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
145529                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
145530                                                                           ,p_lookup_code    => l_component_type_code
145531                                                                          )
145532                                     ,p_token_4                 => 'PRODUCT_NAME'
145533                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
145534                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
145535                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
145536                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
145537                                     ,p_ae_header_id            =>  NULL
145538                                        );
145539 
145540         IF (C_LEVEL_ERROR>= g_log_level) THEN
145541                  trace
145542                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
145543                       ,p_level    => C_LEVEL_ERROR
145544                       ,p_module   => l_log_module);
145545         END IF;
145546       END IF;
145547    END IF;
145548    --
145549    --
145550    ------------------------------------------------------------------------------------------------
145551    -- 4219869 Business Flow
145552    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
145553    -- Prior Entry.  Currently, the following code is always generated.
145554    ------------------------------------------------------------------------------------------------
145555    XLA_AE_LINES_PKG.ValidateCurrentLine;
145556 
145557    ------------------------------------------------------------------------------------
145558    -- 4219869 Business Flow
145559    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
145560    ------------------------------------------------------------------------------------
145561    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
145562 
145563    ----------------------------------------------------------------------------------
145564    -- 4219869 Business Flow
145565    -- Update journal entry status -- Need to generate this within IF <condition>
145566    ----------------------------------------------------------------------------------
145567    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
145568          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
145569          ,p_balance_type_code => l_balance_type_code
145570          );
145571 
145572    -------------------------------------------------------------------------------------------
145573    -- 4262811 - Generate the Accrual Reversal lines
145574    -------------------------------------------------------------------------------------------
145575    BEGIN
145576       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
145577                               (g_array_event(p_event_id).array_value_num('header_index'));
145578       IF l_acc_rev_flag IS NULL THEN
145579          l_acc_rev_flag := 'N';
145580       END IF;
145581    EXCEPTION
145582       WHEN OTHERS THEN
145583          l_acc_rev_flag := 'N';
145584    END;
145585    --
145586    IF (l_acc_rev_flag = 'Y') THEN
145587 
145588        -- 4645092  ------------------------------------------------------------------------------
145589        -- To allow MPA report to determine if it should generate report process
145590        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
145594        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
145591        ------------------------------------------------------------------------------------------
145592 
145593        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
145595    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
145596    -- call ADRs
145597    -- Bug 4922099
145601         (NVL(l_enc_upg_option, 'N') = 'O')
145598    --
145599    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
145600         (NVL(l_actual_upg_option, 'N') = 'O') OR
145602       )
145603    THEN
145604    NULL;
145605    --
145606    --
145607    
145608   l_ccid := AcctDerRule_41(
145609            p_application_id           => p_application_id
145610          , p_ae_header_id             => l_ae_header_id 
145611 , p_source_38 => p_source_38
145612          , x_transaction_coa_id       => l_adr_transaction_coa_id
145613          , x_accounting_coa_id        => l_adr_accounting_coa_id
145614          , x_value_type_code          => l_adr_value_type_code
145615          , p_side                     => 'NA'
145616    );
145617 
145618    xla_ae_lines_pkg.set_ccid(
145619     p_code_combination_id          => l_ccid
145620   , p_value_type_code              => l_adr_value_type_code
145621   , p_transaction_coa_id           => l_adr_transaction_coa_id
145622   , p_accounting_coa_id            => l_adr_accounting_coa_id
145623   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
145624   , p_adr_type_code                => 'S'
145625   , p_component_type               => l_component_type
145626   , p_component_code               => l_component_code
145627   , p_component_type_code          => l_component_type_code
145628   , p_component_appl_id            => l_component_appl_id
145629   , p_amb_context_code             => l_amb_context_code
145630   , p_side                         => 'NA'
145631   );
145632 
145633 
145634    --
145635    --
145636    END IF;
145637 
145638        --
145639        -- Update the line information that should be overwritten
145640        --
145641        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
145642                                          p_header_num   => 1);
145643        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
145644 
145645        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
145646 
145647        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
145648           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
145649        END IF;
145650 
145651       --
145652       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
145653       --
145654       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
145655           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
145656       ELSE
145657           ---------------------------------------------------------------------------------------------------
145658           -- 4262811a Switch Sign
145659           ---------------------------------------------------------------------------------------------------
145660           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
145661           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
145662                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
145663           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
145664                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
145668 
145665           -- 5132302
145666           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
145667                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
145669       END IF;
145670 
145671       -- 4955764
145672       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
145673       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
145674 
145675 
145676       XLA_AE_LINES_PKG.ValidateCurrentLine;
145677       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
145678 
145679       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
145680                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
145681                ,p_balance_type_code => l_balance_type_code);
145682 
145683    END IF;
145684 
145685    -----------------------------------------------------------------------------------------
145686    -- 4262811 Multiperiod Accounting
145687    -----------------------------------------------------------------------------------------
145688      -- No MPA option is assigned.
145689 
145690 
145691 END IF;
145692 END IF;
145693 --
145694 
145695 --
145696 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
145697    trace
145698       (p_msg      => 'END of AcctLineType_239'
145699       ,p_level    => C_LEVEL_PROCEDURE
145700       ,p_module   => l_log_module);
145701 END IF;
145702 --
145703 EXCEPTION
145704   WHEN xla_exceptions_pkg.application_exception THEN
145705       RAISE;
145706   WHEN OTHERS THEN
145707        xla_exceptions_pkg.raise_message
145708            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_239');
145709 END AcctLineType_239;
145710 --
145711 
145712 ---------------------------------------
145713 --
145714 -- PRIVATE FUNCTION
145715 --         AcctLineType_240
145716 --
145717 ---------------------------------------
145718 PROCEDURE AcctLineType_240 (
145719   p_application_id        IN NUMBER
145720  ,p_event_id              IN NUMBER
145721  ,p_calculate_acctd_flag  IN VARCHAR2
145722  ,p_calculate_g_l_flag    IN VARCHAR2
145723  ,p_actual_flag           IN OUT VARCHAR2
145724  ,p_balance_type_code     OUT VARCHAR2
145725  ,p_gain_or_loss_ref      OUT VARCHAR2
145726  
145727 --Invoice Distribution Description
145728  , p_source_1            IN VARCHAR2
145729 --Invoice Distribution Ledger Amount
145730  , p_source_9            IN NUMBER
145731 --Invoice Distribution Type
145732  , p_source_21            IN VARCHAR2
145733  , p_source_21_meaning    IN VARCHAR2
145734 --Self-Assessed Tax Account
145735  , p_source_38            IN NUMBER
145736 --Accounting Reversal Indicator
145737  , p_source_41            IN VARCHAR2
145738 --Distribution Link Type
145739  , p_source_43            IN VARCHAR2
145740 --Allocation to Main Distribution Identifier
145741  , p_source_45            IN NUMBER
145742 --Invoice Identifier
145743  , p_source_46            IN NUMBER
145744 --Invoice Distribution Identifier
145745  , p_source_52            IN NUMBER
145746 --Payables Encumbrance Upgrade Credit Account
145747  , p_source_53            IN NUMBER
145748 --Payables Encumbrance Upgrade Credit Amount
145752 --Payables Encumbrance Upgrade Credit Base Amount
145749  , p_source_54            IN NUMBER
145750 --Invoice Currency Code
145751  , p_source_55            IN VARCHAR2
145753  , p_source_56            IN NUMBER
145754 --Payables Encumbrance Upgrade Debit Account
145755  , p_source_57            IN NUMBER
145756 --Payables Encumbrance Upgrade Debit Amount
145757  , p_source_58            IN NUMBER
145758 --Payables Encumbrance Upgrade Debit Base Amount
145759  , p_source_59            IN NUMBER
145760 --Payables Encumbrance Upgrade Option
145761  , p_source_60            IN VARCHAR2
145762 --Invoice Distribution Amount
145763  , p_source_61            IN NUMBER
145764 --Deferred Accounting End Date
145765  , p_source_65            IN DATE
145766 --Deferred Accounting Option
145767  , p_source_66            IN VARCHAR2
145768 --Deferred Accounting Start Date
145769  , p_source_67            IN DATE
145770 --Override Accounted Amount Indicator
145771  , p_source_68            IN VARCHAR2
145772  , p_source_68_meaning    IN VARCHAR2
145773 --Invoice Supplier Identifier
145774  , p_source_69            IN NUMBER
145775 --Invoice Supplier Site Identifier
145776  , p_source_70            IN NUMBER
145777 --Third Party Type
145781 --Invoice Distribution Statistical Amount
145778  , p_source_71            IN VARCHAR2
145779 --Parent Reversal Identifier
145780  , p_source_72            IN NUMBER
145782  , p_source_73            IN NUMBER
145783 --Invoice Distribution Tax Line Identifier
145784  , p_source_74            IN NUMBER
145785 --Invoice Distribution Tax Distribution Identifier from Tax
145786  , p_source_75            IN NUMBER
145787 --Invoice Distribution Summary Tax Line Identifier
145788  , p_source_76            IN NUMBER
145789 --Payables Upgrade Credit Encumbrance Type Identifier
145790  , p_source_77            IN NUMBER
145791 --Payables Upgrade Debit Encumbrance Type Identifier
145792  , p_source_78            IN NUMBER
145793 --Business Flow Accounts Payable Application Identifier
145794  , p_source_79            IN NUMBER
145795 --Business Flow Invoice Distribution Type
145796  , p_source_80            IN VARCHAR2
145797 --Business Flow Invoice Entity Code
145798  , p_source_81            IN VARCHAR2
145799 --Business Flow Invoice Distribution Identifier
145800  , p_source_82            IN NUMBER
145801 --Business Flow Invoice Identifier
145802  , p_source_83            IN NUMBER
145803 --Self-Assessed Tax Flag
145804  , p_source_135            IN VARCHAR2
145805  , p_source_135_meaning    IN VARCHAR2
145806 --Invoice Exchange Date
145807  , p_source_136            IN DATE
145808 --Invoice Exchange Rate
145809  , p_source_137            IN NUMBER
145810 --Invoice Exchange Rate Type
145811  , p_source_138            IN VARCHAR2
145812 )
145813 IS
145814 
145815 l_component_type              VARCHAR2(80);
145816 l_component_code              VARCHAR2(30);
145817 l_component_type_code         VARCHAR2(1);
145818 l_component_appl_id           INTEGER;
145819 l_amb_context_code            VARCHAR2(30);
145820 l_entity_code                 VARCHAR2(30);
145821 l_event_class_code            VARCHAR2(30);
145822 l_ae_header_id                NUMBER;
145823 l_event_type_code             VARCHAR2(30);
145824 l_line_definition_code        VARCHAR2(30);
145825 l_line_definition_owner_code  VARCHAR2(1);
145826 --
145827 -- adr variables
145828 l_segment                     VARCHAR2(30);
145829 l_ccid                        NUMBER;
145830 l_adr_transaction_coa_id      NUMBER;
145831 l_adr_accounting_coa_id       NUMBER;
145832 l_adr_flexfield_segment_code  VARCHAR2(30);
145833 l_adr_flex_value_set_id       NUMBER;
145834 l_adr_value_type_code         VARCHAR2(30);
145835 l_adr_value_combination_id    NUMBER;
145836 l_adr_value_segment_code      VARCHAR2(30);
145837 
145838 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
145839 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
145840 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
145841 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
145842 
145843 -- 4262811 Variables ------------------------------------------------------------------------------------------
145844 l_entered_amt_idx             NUMBER;
145845 l_accted_amt_idx              NUMBER;
145846 l_acc_rev_flag                VARCHAR2(1);
145847 l_accrual_line_num            NUMBER;
145848 l_tmp_amt                     NUMBER;
145849 l_acc_rev_natural_side_code   VARCHAR2(1);
145850 
145851 l_num_entries                 NUMBER;
145852 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
145853 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
145854 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
145855 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
145856 l_recog_line_1                NUMBER;
145857 l_recog_line_2                NUMBER;
145858 
145859 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
145860 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
145861 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
145862 
145863 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
145864 
145865 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
145866 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
145867 
145868 ---------------------------------------------------------------------------------------------------------------
145869 
145870 
145871 --
145872 -- bulk performance
145873 --
145874 l_balance_type_code           VARCHAR2(1);
145875 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
145876 l_log_module                  VARCHAR2(240);
145877 
145878 --
145879 -- Upgrade strategy
145880 --
145881 l_actual_upg_option           VARCHAR2(1);
145882 l_enc_upg_option           VARCHAR2(1);
145883 
145884 --
145885 BEGIN
145886 --
145887 IF g_log_enabled THEN
145888       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_240';
145889 END IF;
145890 --
145891 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
145892 
145893       trace
145894          (p_msg      => 'BEGIN of AcctLineType_240'
145895          ,p_level    => C_LEVEL_PROCEDURE
145896          ,p_module   => l_log_module);
145897 
145898 END IF;
145899 --
145900 l_component_type             := 'AMB_JLT';
145901 l_component_code             := 'AP_SELF_ASSESSED_RECTAX_PREPAY';
145902 l_component_type_code        := 'S';
145903 l_component_appl_id          :=  200;
145904 l_amb_context_code           := 'DEFAULT';
145905 l_entity_code                := 'AP_INVOICES';
145906 l_event_class_code           := 'PREPAYMENTS';
145907 l_event_type_code            := 'PREPAYMENTS_ALL';
145911 l_balance_type_code          := 'A';
145908 l_line_definition_owner_code := 'S';
145909 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
145910 --
145912 l_segment                     := NULL;
145913 l_ccid                        := NULL;
145914 l_adr_transaction_coa_id      := NULL;
145915 l_adr_accounting_coa_id       := NULL;
145916 l_adr_flexfield_segment_code  := NULL;
145917 l_adr_flex_value_set_id       := NULL;
145918 l_adr_value_type_code         := NULL;
145919 l_adr_value_combination_id    := NULL;
145920 l_adr_value_segment_code      := NULL;
145921 
145922 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
145923 l_bflow_class_code           := '';    -- 4219869 Business Flow
145924 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
145925 l_budgetary_control_flag     := 'N';
145926 
145927 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
145928 l_bflow_applied_to_amt       := NULL; -- 5132302
145929 l_entered_amt_idx            := NULL;          -- 4262811
145930 l_accted_amt_idx             := NULL;          -- 4262811
145931 l_acc_rev_flag               := NULL;          -- 4262811
145932 l_accrual_line_num           := NULL;          -- 4262811
145933 l_tmp_amt                    := NULL;          -- 4262811
145934 --
145935  
145936 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
145937     l_balance_type_code <> 'B' THEN
145938 IF NVL(p_source_21,'
145939 ') =  'REC_TAX' AND 
145940 NVL(p_source_135,'
145941 ') =  'Y'
145942  THEN 
145943 
145944    --
145945    XLA_AE_LINES_PKG.SetNewLine;
145946 
145947    p_balance_type_code          := l_balance_type_code;
145948    -- set the flag so later we will know whether the gain loss line needs to be created
145949    
145950    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
145951      p_actual_flag :='A';
145952    END IF;
145953 
145954    --
145955    -- bulk performance
145956    --
145957    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
145958                                       p_header_num   => 0); -- 4262811
145959    --
145960    -- set accounting line options
145961    --
145962    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
145963            p_natural_side_code          => 'D'
145964          , p_gain_or_loss_flag          => 'N'
145965          , p_gl_transfer_mode_code      => 'S'
145966          , p_acct_entry_type_code       => 'A'
145967          , p_switch_side_flag           => 'Y'
145968          , p_merge_duplicate_code       => 'A'
145969          );
145970    --
145971    l_acc_rev_natural_side_code := 'C';  -- 4262811
145972    -- 
145973    --
145974    -- set accounting line type info
145975    --
145976    xla_ae_lines_pkg.SetAcctLineType
145977       (p_component_type             => l_component_type
145978       ,p_event_type_code            => l_event_type_code
145979       ,p_line_definition_owner_code => l_line_definition_owner_code
145980       ,p_line_definition_code       => l_line_definition_code
145981       ,p_accounting_line_code       => l_component_code
145982       ,p_accounting_line_type_code  => l_component_type_code
145983       ,p_accounting_line_appl_id    => l_component_appl_id
145984       ,p_amb_context_code           => l_amb_context_code
145985       ,p_entity_code                => l_entity_code
145986       ,p_event_class_code           => l_event_class_code);
145987    --
145988    -- set accounting class
145989    --
145990    xla_ae_lines_pkg.SetAcctClass(
145991            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
145992          , p_ae_header_id           => l_ae_header_id
145996    -- set rounding class
145993          );
145994 
145995    --
145997    --
145998    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
145999                       'SELF_ASSESSED_TAX';
146000 
146001    --
146002    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
146003    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
146004    --
146005    -- bulk performance
146006    --
146007    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
146008 
146009    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
146010       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
146011 
146012    -- 4955764
146013    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
146014       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
146015 
146016    -- 4458381 Public Sector Enh
146017    
146018    --
146019    -- set accounting attributes for the line type
146020    --
146021    l_entered_amt_idx := 23;
146022    l_accted_amt_idx  := 28;
146023    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
146024    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
146025    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
146026    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
146027    l_rec_acct_attrs.array_num_value(2)  := 
146028 xla_ae_sources_pkg.GetSystemSourceNum(
146029    p_source_code           => 'XLA_EVENT_APPL_ID'
146030  , p_source_type_code      => 'Y'
146031  , p_source_application_id =>  602
146032 );
146033    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
146034    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
146035    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
146036    l_rec_acct_attrs.array_char_value(4)  := 
146037 xla_ae_sources_pkg.GetSystemSourceChar(
146038    p_source_code           => 'XLA_ENTITY_CODE'
146039  , p_source_type_code      => 'Y'
146040  , p_source_application_id =>  602
146041 );
146042    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
146043    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
146044    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
146045    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
146046    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
146047    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
146048    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
146049    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
146050    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
146051    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
146052    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
146053    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
146054    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
146055    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
146056    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
146057    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
146058    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
146059    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
146060    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
146061    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
146062    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
146063    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
146064    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
146065    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
146066    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
146067    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
146068    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
146069    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
146070    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
146071    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
146072    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
146073    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
146074    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
146075    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
146076    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
146077    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
146078    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
146079    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
146080    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
146081    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
146082    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
146083    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
146084    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
146085    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
146086    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
146087    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
146088    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
146089    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
146090    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
146091    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
146092    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
146096    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
146093    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
146094    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
146095    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
146097    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
146098    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
146099    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
146100    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
146101    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
146102    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
146103    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
146104    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
146105    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
146106    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
146107    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
146108    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
146109    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
146110    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
146111    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
146112    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
146113    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
146114    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
146115    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
146116    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
146117    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
146118    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
146119    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
146120 
146121    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
146122    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
146123 
146124    ---------------------------------------------------------------------------------------------------------------
146125    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
146126    ---------------------------------------------------------------------------------------------------------------
146127    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
146128 
146129    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
146130    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
146131 
146132    IF xla_accounting_cache_pkg.GetValueChar
146133          (p_source_code         => 'LEDGER_CATEGORY_CODE'
146134          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
146135    AND l_bflow_method_code = 'PRIOR_ENTRY'
146136 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
146137    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
146138          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
146139        )
146140    THEN
146141          xla_ae_lines_pkg.BflowUpgEntry
146142            (p_business_method_code    => l_bflow_method_code
146143            ,p_business_class_code     => l_bflow_class_code
146144            ,p_balance_type            => l_balance_type_code);
146145    ELSE
146146       NULL;
146147 -- No business flow processing for business flow method of NONE.
146148    END IF;
146149 
146150    --
146151    -- call analytical criteria
146152    --
146153    
146154    --
146155    -- call description
146156    --
146157    
146158 xla_ae_lines_pkg.SetLineDescription(
146159    p_ae_header_id => l_ae_header_id
146160   ,p_description  => Description_2 (
146161      p_application_id         => p_application_id
146162    , p_ae_header_id           => l_ae_header_id 
146163 , p_source_1 => p_source_1
146164    )
146165 );
146166 
146167 
146168    --
146169    -- call ADRs
146170    -- Bug 4922099
146171    --
146172    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
146173         (NVL(l_actual_upg_option, 'N') = 'O') OR
146174         (NVL(l_enc_upg_option, 'N') = 'O')
146175       )
146176    THEN
146177    NULL;
146178    --
146179    --
146180    
146181   l_ccid := AcctDerRule_41(
146182            p_application_id           => p_application_id
146183          , p_ae_header_id             => l_ae_header_id 
146184 , p_source_38 => p_source_38
146185          , x_transaction_coa_id       => l_adr_transaction_coa_id
146186          , x_accounting_coa_id        => l_adr_accounting_coa_id
146187          , x_value_type_code          => l_adr_value_type_code
146188          , p_side                     => 'NA'
146189    );
146190 
146191    xla_ae_lines_pkg.set_ccid(
146192     p_code_combination_id          => l_ccid
146193   , p_value_type_code              => l_adr_value_type_code
146194   , p_transaction_coa_id           => l_adr_transaction_coa_id
146195   , p_accounting_coa_id            => l_adr_accounting_coa_id
146196   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
146197   , p_adr_type_code                => 'S'
146198   , p_component_type               => l_component_type
146199   , p_component_code               => l_component_code
146200   , p_component_type_code          => l_component_type_code
146201   , p_component_appl_id            => l_component_appl_id
146202   , p_amb_context_code             => l_amb_context_code
146203   , p_side                         => 'NA'
146204   );
146205 
146206 
146207    --
146208    --
146209    END IF;
146210    --
146214         ) AND
146211    -- Bug 4922099
146212    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
146213           (NVL(l_enc_upg_option, 'N') = 'O')
146215         (l_bflow_method_code = 'PRIOR_ENTRY')
146216       )
146217    THEN
146218       IF
146219       --
146220       1 = 2
146221       --
146222       THEN
146223       xla_accounting_err_pkg.build_message
146224                                     (p_appli_s_name            => 'XLA'
146225                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
146226                                     ,p_token_1                 => 'LINE_NUMBER'
146227                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
146228                                     ,p_token_2                 => 'LINE_TYPE_NAME'
146229                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
146230                                                                              l_component_type
146231                                                                             ,l_component_code
146232                                                                             ,l_component_type_code
146233                                                                             ,l_component_appl_id
146234                                                                             ,l_amb_context_code
146235                                                                             ,l_entity_code
146236                                                                             ,l_event_class_code
146237                                                                            )
146238                                     ,p_token_3                 => 'OWNER'
146239                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
146240                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
146241                                                                           ,p_lookup_code    => l_component_type_code
146242                                                                          )
146243                                     ,p_token_4                 => 'PRODUCT_NAME'
146244                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
146245                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
146246                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
146247                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
146248                                     ,p_ae_header_id            =>  NULL
146249                                        );
146250 
146251         IF (C_LEVEL_ERROR>= g_log_level) THEN
146252                  trace
146253                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
146254                       ,p_level    => C_LEVEL_ERROR
146255                       ,p_module   => l_log_module);
146256         END IF;
146257       END IF;
146258    END IF;
146259    --
146260    --
146261    ------------------------------------------------------------------------------------------------
146262    -- 4219869 Business Flow
146263    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
146264    -- Prior Entry.  Currently, the following code is always generated.
146265    ------------------------------------------------------------------------------------------------
146266    XLA_AE_LINES_PKG.ValidateCurrentLine;
146267 
146268    ------------------------------------------------------------------------------------
146269    -- 4219869 Business Flow
146270    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
146271    ------------------------------------------------------------------------------------
146272    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
146273 
146274    ----------------------------------------------------------------------------------
146275    -- 4219869 Business Flow
146276    -- Update journal entry status -- Need to generate this within IF <condition>
146277    ----------------------------------------------------------------------------------
146278    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
146279          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
146280          ,p_balance_type_code => l_balance_type_code
146281          );
146282 
146283    -------------------------------------------------------------------------------------------
146284    -- 4262811 - Generate the Accrual Reversal lines
146285    -------------------------------------------------------------------------------------------
146286    BEGIN
146287       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
146288                               (g_array_event(p_event_id).array_value_num('header_index'));
146289       IF l_acc_rev_flag IS NULL THEN
146290          l_acc_rev_flag := 'N';
146291       END IF;
146292    EXCEPTION
146293       WHEN OTHERS THEN
146294          l_acc_rev_flag := 'N';
146295    END;
146296    --
146297    IF (l_acc_rev_flag = 'Y') THEN
146298 
146299        -- 4645092  ------------------------------------------------------------------------------
146300        -- To allow MPA report to determine if it should generate report process
146301        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
146302        ------------------------------------------------------------------------------------------
146303 
146304        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
146305        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
146309    --
146306    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
146307    -- call ADRs
146308    -- Bug 4922099
146310    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
146311         (NVL(l_actual_upg_option, 'N') = 'O') OR
146312         (NVL(l_enc_upg_option, 'N') = 'O')
146313       )
146314    THEN
146315    NULL;
146316    --
146317    --
146318    
146319   l_ccid := AcctDerRule_41(
146320            p_application_id           => p_application_id
146321          , p_ae_header_id             => l_ae_header_id 
146322 , p_source_38 => p_source_38
146323          , x_transaction_coa_id       => l_adr_transaction_coa_id
146324          , x_accounting_coa_id        => l_adr_accounting_coa_id
146325          , x_value_type_code          => l_adr_value_type_code
146326          , p_side                     => 'NA'
146327    );
146328 
146329    xla_ae_lines_pkg.set_ccid(
146330     p_code_combination_id          => l_ccid
146331   , p_value_type_code              => l_adr_value_type_code
146332   , p_transaction_coa_id           => l_adr_transaction_coa_id
146333   , p_accounting_coa_id            => l_adr_accounting_coa_id
146334   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
146335   , p_adr_type_code                => 'S'
146336   , p_component_type               => l_component_type
146337   , p_component_code               => l_component_code
146338   , p_component_type_code          => l_component_type_code
146339   , p_component_appl_id            => l_component_appl_id
146340   , p_amb_context_code             => l_amb_context_code
146341   , p_side                         => 'NA'
146342   );
146343 
146344 
146345    --
146346    --
146347    END IF;
146348 
146349        --
146350        -- Update the line information that should be overwritten
146351        --
146352        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
146353                                          p_header_num   => 1);
146354        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
146355 
146356        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
146357 
146358        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
146359           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
146360        END IF;
146361 
146362       --
146363       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
146364       --
146365       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
146366           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
146367       ELSE
146368           ---------------------------------------------------------------------------------------------------
146369           -- 4262811a Switch Sign
146370           ---------------------------------------------------------------------------------------------------
146371           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
146372           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
146373                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
146374           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
146375                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
146376           -- 5132302
146377           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
146378                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
146379 
146380       END IF;
146381 
146382       -- 4955764
146383       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
146384       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
146385 
146386 
146387       XLA_AE_LINES_PKG.ValidateCurrentLine;
146388       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
146389 
146390       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
146391                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
146392                ,p_balance_type_code => l_balance_type_code);
146393 
146394    END IF;
146395 
146396    -----------------------------------------------------------------------------------------
146397    -- 4262811 Multiperiod Accounting
146398    -----------------------------------------------------------------------------------------
146399      -- No MPA option is assigned.
146400 
146401 
146402 END IF;
146403 END IF;
146404 --
146405 
146406 --
146407 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
146408    trace
146409       (p_msg      => 'END of AcctLineType_240'
146410       ,p_level    => C_LEVEL_PROCEDURE
146411       ,p_module   => l_log_module);
146412 END IF;
146413 --
146414 EXCEPTION
146415   WHEN xla_exceptions_pkg.application_exception THEN
146416       RAISE;
146417   WHEN OTHERS THEN
146418        xla_exceptions_pkg.raise_message
146419            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_240');
146420 END AcctLineType_240;
146421 --
146422 
146423 ---------------------------------------
146424 --
146425 -- PRIVATE FUNCTION
146426 --         AcctLineType_241
146427 --
146428 ---------------------------------------
146429 PROCEDURE AcctLineType_241 (
146430   p_application_id        IN NUMBER
146434  ,p_actual_flag           IN OUT VARCHAR2
146431  ,p_event_id              IN NUMBER
146432  ,p_calculate_acctd_flag  IN VARCHAR2
146433  ,p_calculate_g_l_flag    IN VARCHAR2
146435  ,p_balance_type_code     OUT VARCHAR2
146436  ,p_gain_or_loss_ref      OUT VARCHAR2
146437  
146438 --Invoice Distribution Description
146439  , p_source_1            IN VARCHAR2
146440 --Invoice Distribution Ledger Amount
146441  , p_source_9            IN NUMBER
146442 --Invoice Distribution Type
146443  , p_source_21            IN VARCHAR2
146444  , p_source_21_meaning    IN VARCHAR2
146445 --Self-Assessed Tax Account
146446  , p_source_38            IN NUMBER
146447 --Accounting Reversal Indicator
146448  , p_source_41            IN VARCHAR2
146449 --Distribution Link Type
146453 --Invoice Identifier
146450  , p_source_43            IN VARCHAR2
146451 --Allocation to Main Distribution Identifier
146452  , p_source_45            IN NUMBER
146454  , p_source_46            IN NUMBER
146455 --Invoice Distribution Identifier
146456  , p_source_52            IN NUMBER
146457 --Payables Encumbrance Upgrade Credit Account
146458  , p_source_53            IN NUMBER
146459 --Payables Encumbrance Upgrade Credit Amount
146460  , p_source_54            IN NUMBER
146461 --Invoice Currency Code
146462  , p_source_55            IN VARCHAR2
146463 --Payables Encumbrance Upgrade Credit Base Amount
146464  , p_source_56            IN NUMBER
146465 --Payables Encumbrance Upgrade Debit Account
146466  , p_source_57            IN NUMBER
146467 --Payables Encumbrance Upgrade Debit Amount
146468  , p_source_58            IN NUMBER
146469 --Payables Encumbrance Upgrade Debit Base Amount
146470  , p_source_59            IN NUMBER
146471 --Payables Encumbrance Upgrade Option
146472  , p_source_60            IN VARCHAR2
146476  , p_source_65            IN DATE
146473 --Invoice Distribution Amount
146474  , p_source_61            IN NUMBER
146475 --Deferred Accounting End Date
146477 --Deferred Accounting Option
146478  , p_source_66            IN VARCHAR2
146479 --Deferred Accounting Start Date
146480  , p_source_67            IN DATE
146481 --Override Accounted Amount Indicator
146482  , p_source_68            IN VARCHAR2
146483  , p_source_68_meaning    IN VARCHAR2
146484 --Invoice Supplier Identifier
146485  , p_source_69            IN NUMBER
146486 --Invoice Supplier Site Identifier
146487  , p_source_70            IN NUMBER
146488 --Third Party Type
146489  , p_source_71            IN VARCHAR2
146490 --Parent Reversal Identifier
146491  , p_source_72            IN NUMBER
146492 --Invoice Distribution Statistical Amount
146493  , p_source_73            IN NUMBER
146494 --Invoice Distribution Tax Line Identifier
146495  , p_source_74            IN NUMBER
146496 --Invoice Distribution Tax Distribution Identifier from Tax
146497  , p_source_75            IN NUMBER
146498 --Invoice Distribution Summary Tax Line Identifier
146499  , p_source_76            IN NUMBER
146500 --Payables Upgrade Credit Encumbrance Type Identifier
146501  , p_source_77            IN NUMBER
146502 --Payables Upgrade Debit Encumbrance Type Identifier
146503  , p_source_78            IN NUMBER
146504 --Business Flow Accounts Payable Application Identifier
146505  , p_source_79            IN NUMBER
146506 --Business Flow Invoice Distribution Type
146507  , p_source_80            IN VARCHAR2
146508 --Business Flow Invoice Entity Code
146509  , p_source_81            IN VARCHAR2
146510 --Business Flow Invoice Distribution Identifier
146511  , p_source_82            IN NUMBER
146512 --Business Flow Invoice Identifier
146513  , p_source_83            IN NUMBER
146514 --Self-Assessed Tax Flag
146515  , p_source_135            IN VARCHAR2
146516  , p_source_135_meaning    IN VARCHAR2
146517 --Invoice Exchange Date
146518  , p_source_136            IN DATE
146519 --Invoice Exchange Rate
146520  , p_source_137            IN NUMBER
146521 --Invoice Exchange Rate Type
146522  , p_source_138            IN VARCHAR2
146523 )
146524 IS
146525 
146526 l_component_type              VARCHAR2(80);
146527 l_component_code              VARCHAR2(30);
146528 l_component_type_code         VARCHAR2(1);
146529 l_component_appl_id           INTEGER;
146530 l_amb_context_code            VARCHAR2(30);
146531 l_entity_code                 VARCHAR2(30);
146532 l_event_class_code            VARCHAR2(30);
146533 l_ae_header_id                NUMBER;
146534 l_event_type_code             VARCHAR2(30);
146535 l_line_definition_code        VARCHAR2(30);
146536 l_line_definition_owner_code  VARCHAR2(1);
146537 --
146538 -- adr variables
146539 l_segment                     VARCHAR2(30);
146540 l_ccid                        NUMBER;
146541 l_adr_transaction_coa_id      NUMBER;
146542 l_adr_accounting_coa_id       NUMBER;
146543 l_adr_flexfield_segment_code  VARCHAR2(30);
146544 l_adr_flex_value_set_id       NUMBER;
146545 l_adr_value_type_code         VARCHAR2(30);
146546 l_adr_value_combination_id    NUMBER;
146547 l_adr_value_segment_code      VARCHAR2(30);
146548 
146549 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
146550 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
146551 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
146552 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
146553 
146554 -- 4262811 Variables ------------------------------------------------------------------------------------------
146555 l_entered_amt_idx             NUMBER;
146556 l_accted_amt_idx              NUMBER;
146557 l_acc_rev_flag                VARCHAR2(1);
146558 l_accrual_line_num            NUMBER;
146559 l_tmp_amt                     NUMBER;
146560 l_acc_rev_natural_side_code   VARCHAR2(1);
146561 
146562 l_num_entries                 NUMBER;
146563 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
146564 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
146565 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
146566 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
146567 l_recog_line_1                NUMBER;
146568 l_recog_line_2                NUMBER;
146569 
146570 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
146571 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
146572 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
146573 
146574 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
146575 
146576 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
146577 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
146578 
146579 ---------------------------------------------------------------------------------------------------------------
146580 
146581 
146582 --
146583 -- bulk performance
146584 --
146585 l_balance_type_code           VARCHAR2(1);
146586 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
146587 l_log_module                  VARCHAR2(240);
146588 
146589 --
146590 -- Upgrade strategy
146591 --
146592 l_actual_upg_option           VARCHAR2(1);
146593 l_enc_upg_option           VARCHAR2(1);
146594 
146595 --
146596 BEGIN
146597 --
146598 IF g_log_enabled THEN
146599       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_241';
146600 END IF;
146601 --
146602 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
146603 
146604       trace
146610 --
146605          (p_msg      => 'BEGIN of AcctLineType_241'
146606          ,p_level    => C_LEVEL_PROCEDURE
146607          ,p_module   => l_log_module);
146608 
146609 END IF;
146611 l_component_type             := 'AMB_JLT';
146612 l_component_code             := 'AP_SELF_ASSESSED_REC_TAX_CM';
146613 l_component_type_code        := 'S';
146614 l_component_appl_id          :=  200;
146615 l_amb_context_code           := 'DEFAULT';
146616 l_entity_code                := 'AP_INVOICES';
146617 l_event_class_code           := 'CREDIT MEMOS';
146618 l_event_type_code            := 'CREDIT MEMOS_ALL';
146619 l_line_definition_owner_code := 'S';
146620 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
146621 --
146622 l_balance_type_code          := 'A';
146623 l_segment                     := NULL;
146624 l_ccid                        := NULL;
146625 l_adr_transaction_coa_id      := NULL;
146626 l_adr_accounting_coa_id       := NULL;
146627 l_adr_flexfield_segment_code  := NULL;
146628 l_adr_flex_value_set_id       := NULL;
146629 l_adr_value_type_code         := NULL;
146630 l_adr_value_combination_id    := NULL;
146631 l_adr_value_segment_code      := NULL;
146632 
146633 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
146634 l_bflow_class_code           := '';    -- 4219869 Business Flow
146635 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
146636 l_budgetary_control_flag     := 'N';
146637 
146638 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
146639 l_bflow_applied_to_amt       := NULL; -- 5132302
146640 l_entered_amt_idx            := NULL;          -- 4262811
146641 l_accted_amt_idx             := NULL;          -- 4262811
146642 l_acc_rev_flag               := NULL;          -- 4262811
146643 l_accrual_line_num           := NULL;          -- 4262811
146644 l_tmp_amt                    := NULL;          -- 4262811
146645 --
146646  
146647 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
146648     l_balance_type_code <> 'B' THEN
146649 IF NVL(p_source_21,'
146650 ') =  'REC_TAX' AND 
146651 NVL(p_source_135,'
146652 ') =  'Y'
146653  THEN 
146654 
146655    --
146656    XLA_AE_LINES_PKG.SetNewLine;
146657 
146658    p_balance_type_code          := l_balance_type_code;
146659    -- set the flag so later we will know whether the gain loss line needs to be created
146660    
146661    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
146662      p_actual_flag :='A';
146663    END IF;
146664 
146665    --
146666    -- bulk performance
146667    --
146668    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
146669                                       p_header_num   => 0); -- 4262811
146670    --
146671    -- set accounting line options
146672    --
146673    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
146674            p_natural_side_code          => 'D'
146675          , p_gain_or_loss_flag          => 'N'
146676          , p_gl_transfer_mode_code      => 'S'
146677          , p_acct_entry_type_code       => 'A'
146678          , p_switch_side_flag           => 'Y'
146679          , p_merge_duplicate_code       => 'A'
146680          );
146681    --
146682    l_acc_rev_natural_side_code := 'C';  -- 4262811
146683    -- 
146684    --
146685    -- set accounting line type info
146686    --
146687    xla_ae_lines_pkg.SetAcctLineType
146688       (p_component_type             => l_component_type
146689       ,p_event_type_code            => l_event_type_code
146690       ,p_line_definition_owner_code => l_line_definition_owner_code
146691       ,p_line_definition_code       => l_line_definition_code
146695       ,p_amb_context_code           => l_amb_context_code
146692       ,p_accounting_line_code       => l_component_code
146693       ,p_accounting_line_type_code  => l_component_type_code
146694       ,p_accounting_line_appl_id    => l_component_appl_id
146696       ,p_entity_code                => l_entity_code
146697       ,p_event_class_code           => l_event_class_code);
146698    --
146699    -- set accounting class
146700    --
146701    xla_ae_lines_pkg.SetAcctClass(
146702            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
146703          , p_ae_header_id           => l_ae_header_id
146704          );
146705 
146706    --
146707    -- set rounding class
146708    --
146709    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
146710                       'SELF_ASSESSED_TAX';
146711 
146712    --
146713    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
146714    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
146715    --
146716    -- bulk performance
146717    --
146718    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
146719 
146720    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
146721       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
146722 
146723    -- 4955764
146724    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
146725       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
146726 
146727    -- 4458381 Public Sector Enh
146728    
146729    --
146730    -- set accounting attributes for the line type
146731    --
146732    l_entered_amt_idx := 23;
146733    l_accted_amt_idx  := 28;
146734    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
146735    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
146736    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
146737    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
146738    l_rec_acct_attrs.array_num_value(2)  := 
146739 xla_ae_sources_pkg.GetSystemSourceNum(
146740    p_source_code           => 'XLA_EVENT_APPL_ID'
146741  , p_source_type_code      => 'Y'
146742  , p_source_application_id =>  602
146743 );
146744    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
146745    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
146746    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
146747    l_rec_acct_attrs.array_char_value(4)  := 
146748 xla_ae_sources_pkg.GetSystemSourceChar(
146749    p_source_code           => 'XLA_ENTITY_CODE'
146750  , p_source_type_code      => 'Y'
146751  , p_source_application_id =>  602
146752 );
146753    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
146754    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
146755    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
146756    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
146757    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
146761    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
146758    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
146759    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
146760    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
146762    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
146763    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
146764    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
146765    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
146766    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
146767    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
146768    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
146769    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
146770    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
146771    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
146772    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
146773    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
146774    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
146775    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
146776    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
146777    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
146781    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
146778    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
146779    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
146780    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
146782    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
146783    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
146784    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
146785    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
146786    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
146787    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
146788    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
146789    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
146790    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
146791    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
146792    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
146793    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
146794    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
146795    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
146796    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
146797    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
146798    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
146799    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
146800    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
146801    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
146802    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
146803    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
146804    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
146805    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
146806    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
146807    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
146808    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
146809    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
146810    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
146811    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
146812    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
146813    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
146814    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
146815    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
146816    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
146817    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
146818    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
146819    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
146820    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
146821    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
146822    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
146823    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
146824    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
146825    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
146826    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
146827    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
146828    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
146829    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
146830    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
146831 
146832    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
146833    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
146834 
146835    ---------------------------------------------------------------------------------------------------------------
146836    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
146837    ---------------------------------------------------------------------------------------------------------------
146838    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
146839 
146840    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
146841    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
146842 
146843    IF xla_accounting_cache_pkg.GetValueChar
146844          (p_source_code         => 'LEDGER_CATEGORY_CODE'
146845          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
146846    AND l_bflow_method_code = 'PRIOR_ENTRY'
146847 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
146848    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
146849          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
146850        )
146851    THEN
146852          xla_ae_lines_pkg.BflowUpgEntry
146853            (p_business_method_code    => l_bflow_method_code
146854            ,p_business_class_code     => l_bflow_class_code
146855            ,p_balance_type            => l_balance_type_code);
146856    ELSE
146857       NULL;
146858 -- No business flow processing for business flow method of NONE.
146859    END IF;
146860 
146861    --
146862    -- call analytical criteria
146863    --
146864    
146865    --
146866    -- call description
146867    --
146868    
146869 xla_ae_lines_pkg.SetLineDescription(
146870    p_ae_header_id => l_ae_header_id
146874 , p_source_1 => p_source_1
146871   ,p_description  => Description_2 (
146872      p_application_id         => p_application_id
146873    , p_ae_header_id           => l_ae_header_id 
146875    )
146876 );
146877 
146878 
146879    --
146880    -- call ADRs
146881    -- Bug 4922099
146882    --
146883    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
146884         (NVL(l_actual_upg_option, 'N') = 'O') OR
146885         (NVL(l_enc_upg_option, 'N') = 'O')
146886       )
146887    THEN
146888    NULL;
146889    --
146890    --
146891    
146892   l_ccid := AcctDerRule_41(
146893            p_application_id           => p_application_id
146894          , p_ae_header_id             => l_ae_header_id 
146895 , p_source_38 => p_source_38
146896          , x_transaction_coa_id       => l_adr_transaction_coa_id
146897          , x_accounting_coa_id        => l_adr_accounting_coa_id
146898          , x_value_type_code          => l_adr_value_type_code
146899          , p_side                     => 'NA'
146900    );
146901 
146902    xla_ae_lines_pkg.set_ccid(
146903     p_code_combination_id          => l_ccid
146904   , p_value_type_code              => l_adr_value_type_code
146905   , p_transaction_coa_id           => l_adr_transaction_coa_id
146906   , p_accounting_coa_id            => l_adr_accounting_coa_id
146907   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
146908   , p_adr_type_code                => 'S'
146909   , p_component_type               => l_component_type
146910   , p_component_code               => l_component_code
146911   , p_component_type_code          => l_component_type_code
146912   , p_component_appl_id            => l_component_appl_id
146913   , p_amb_context_code             => l_amb_context_code
146914   , p_side                         => 'NA'
146915   );
146916 
146917 
146918    --
146919    --
146920    END IF;
146921    --
146922    -- Bug 4922099
146923    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
146924           (NVL(l_enc_upg_option, 'N') = 'O')
146925         ) AND
146926         (l_bflow_method_code = 'PRIOR_ENTRY')
146927       )
146928    THEN
146929       IF
146930       --
146931       1 = 2
146932       --
146933       THEN
146934       xla_accounting_err_pkg.build_message
146935                                     (p_appli_s_name            => 'XLA'
146936                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
146937                                     ,p_token_1                 => 'LINE_NUMBER'
146938                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
146939                                     ,p_token_2                 => 'LINE_TYPE_NAME'
146940                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
146941                                                                              l_component_type
146942                                                                             ,l_component_code
146943                                                                             ,l_component_type_code
146944                                                                             ,l_component_appl_id
146945                                                                             ,l_amb_context_code
146946                                                                             ,l_entity_code
146947                                                                             ,l_event_class_code
146948                                                                            )
146949                                     ,p_token_3                 => 'OWNER'
146950                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
146951                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
146952                                                                           ,p_lookup_code    => l_component_type_code
146953                                                                          )
146954                                     ,p_token_4                 => 'PRODUCT_NAME'
146955                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
146956                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
146957                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
146958                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
146959                                     ,p_ae_header_id            =>  NULL
146960                                        );
146961 
146962         IF (C_LEVEL_ERROR>= g_log_level) THEN
146963                  trace
146964                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
146965                       ,p_level    => C_LEVEL_ERROR
146966                       ,p_module   => l_log_module);
146967         END IF;
146968       END IF;
146969    END IF;
146970    --
146971    --
146972    ------------------------------------------------------------------------------------------------
146973    -- 4219869 Business Flow
146974    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
146975    -- Prior Entry.  Currently, the following code is always generated.
146979    ------------------------------------------------------------------------------------
146976    ------------------------------------------------------------------------------------------------
146977    XLA_AE_LINES_PKG.ValidateCurrentLine;
146978 
146980    -- 4219869 Business Flow
146981    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
146982    ------------------------------------------------------------------------------------
146983    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
146984 
146985    ----------------------------------------------------------------------------------
146986    -- 4219869 Business Flow
146987    -- Update journal entry status -- Need to generate this within IF <condition>
146988    ----------------------------------------------------------------------------------
146989    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
146990          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
146991          ,p_balance_type_code => l_balance_type_code
146992          );
146993 
146994    -------------------------------------------------------------------------------------------
146995    -- 4262811 - Generate the Accrual Reversal lines
146996    -------------------------------------------------------------------------------------------
146997    BEGIN
146998       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
146999                               (g_array_event(p_event_id).array_value_num('header_index'));
147000       IF l_acc_rev_flag IS NULL THEN
147001          l_acc_rev_flag := 'N';
147002       END IF;
147003    EXCEPTION
147004       WHEN OTHERS THEN
147005          l_acc_rev_flag := 'N';
147006    END;
147007    --
147008    IF (l_acc_rev_flag = 'Y') THEN
147009 
147010        -- 4645092  ------------------------------------------------------------------------------
147011        -- To allow MPA report to determine if it should generate report process
147012        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
147013        ------------------------------------------------------------------------------------------
147014 
147015        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
147016        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
147017    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
147018    -- call ADRs
147019    -- Bug 4922099
147020    --
147021    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
147022         (NVL(l_actual_upg_option, 'N') = 'O') OR
147023         (NVL(l_enc_upg_option, 'N') = 'O')
147024       )
147025    THEN
147026    NULL;
147027    --
147028    --
147029    
147030   l_ccid := AcctDerRule_41(
147031            p_application_id           => p_application_id
147032          , p_ae_header_id             => l_ae_header_id 
147033 , p_source_38 => p_source_38
147034          , x_transaction_coa_id       => l_adr_transaction_coa_id
147035          , x_accounting_coa_id        => l_adr_accounting_coa_id
147036          , x_value_type_code          => l_adr_value_type_code
147037          , p_side                     => 'NA'
147038    );
147039 
147040    xla_ae_lines_pkg.set_ccid(
147041     p_code_combination_id          => l_ccid
147042   , p_value_type_code              => l_adr_value_type_code
147043   , p_transaction_coa_id           => l_adr_transaction_coa_id
147044   , p_accounting_coa_id            => l_adr_accounting_coa_id
147045   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
147046   , p_adr_type_code                => 'S'
147047   , p_component_type               => l_component_type
147048   , p_component_code               => l_component_code
147049   , p_component_type_code          => l_component_type_code
147050   , p_component_appl_id            => l_component_appl_id
147051   , p_amb_context_code             => l_amb_context_code
147052   , p_side                         => 'NA'
147053   );
147054 
147055 
147056    --
147057    --
147058    END IF;
147059 
147060        --
147061        -- Update the line information that should be overwritten
147062        --
147063        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
147064                                          p_header_num   => 1);
147065        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
147066 
147067        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
147068 
147069        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
147070           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
147071        END IF;
147072 
147073       --
147074       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
147075       --
147076       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
147077           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
147078       ELSE
147079           ---------------------------------------------------------------------------------------------------
147080           -- 4262811a Switch Sign
147081           ---------------------------------------------------------------------------------------------------
147082           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
147083           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
147084                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
147085           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
147086                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
147090 
147087           -- 5132302
147088           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
147089                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
147091       END IF;
147092 
147093       -- 4955764
147094       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
147095       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
147096 
147097 
147098       XLA_AE_LINES_PKG.ValidateCurrentLine;
147099       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
147100 
147101       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
147102                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
147103                ,p_balance_type_code => l_balance_type_code);
147104 
147105    END IF;
147106 
147107    -----------------------------------------------------------------------------------------
147108    -- 4262811 Multiperiod Accounting
147109    -----------------------------------------------------------------------------------------
147110      -- No MPA option is assigned.
147111 
147112 
147113 END IF;
147114 END IF;
147115 --
147116 
147117 --
147118 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
147119    trace
147120       (p_msg      => 'END of AcctLineType_241'
147121       ,p_level    => C_LEVEL_PROCEDURE
147122       ,p_module   => l_log_module);
147123 END IF;
147124 --
147125 EXCEPTION
147126   WHEN xla_exceptions_pkg.application_exception THEN
147127       RAISE;
147128   WHEN OTHERS THEN
147129        xla_exceptions_pkg.raise_message
147130            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_241');
147131 END AcctLineType_241;
147132 --
147133 
147134 ---------------------------------------
147135 --
147136 -- PRIVATE FUNCTION
147137 --         AcctLineType_242
147138 --
147139 ---------------------------------------
147140 PROCEDURE AcctLineType_242 (
147141   p_application_id        IN NUMBER
147142  ,p_event_id              IN NUMBER
147143  ,p_calculate_acctd_flag  IN VARCHAR2
147144  ,p_calculate_g_l_flag    IN VARCHAR2
147145  ,p_actual_flag           IN OUT VARCHAR2
147146  ,p_balance_type_code     OUT VARCHAR2
147147  ,p_gain_or_loss_ref      OUT VARCHAR2
147148  
147149 --Invoice Distribution Description
147150  , p_source_1            IN VARCHAR2
147151 --Invoice Distribution Ledger Amount
147152  , p_source_9            IN NUMBER
147153 --Invoice Distribution Type
147154  , p_source_21            IN VARCHAR2
147155  , p_source_21_meaning    IN VARCHAR2
147156 --Self-Assessed Tax Account
147157  , p_source_38            IN NUMBER
147158 --Accounting Reversal Indicator
147159  , p_source_41            IN VARCHAR2
147160 --Distribution Link Type
147161  , p_source_43            IN VARCHAR2
147162 --Allocation to Main Distribution Identifier
147163  , p_source_45            IN NUMBER
147164 --Invoice Identifier
147165  , p_source_46            IN NUMBER
147166 --Invoice Distribution Identifier
147167  , p_source_52            IN NUMBER
147168 --Payables Encumbrance Upgrade Credit Account
147169  , p_source_53            IN NUMBER
147170 --Payables Encumbrance Upgrade Credit Amount
147171  , p_source_54            IN NUMBER
147172 --Invoice Currency Code
147173  , p_source_55            IN VARCHAR2
147174 --Payables Encumbrance Upgrade Credit Base Amount
147175  , p_source_56            IN NUMBER
147176 --Payables Encumbrance Upgrade Debit Account
147177  , p_source_57            IN NUMBER
147178 --Payables Encumbrance Upgrade Debit Amount
147179  , p_source_58            IN NUMBER
147180 --Payables Encumbrance Upgrade Debit Base Amount
147181  , p_source_59            IN NUMBER
147182 --Payables Encumbrance Upgrade Option
147183  , p_source_60            IN VARCHAR2
147184 --Invoice Distribution Amount
147185  , p_source_61            IN NUMBER
147186 --Deferred Accounting End Date
147187  , p_source_65            IN DATE
147188 --Deferred Accounting Option
147189  , p_source_66            IN VARCHAR2
147190 --Deferred Accounting Start Date
147191  , p_source_67            IN DATE
147192 --Override Accounted Amount Indicator
147193  , p_source_68            IN VARCHAR2
147194  , p_source_68_meaning    IN VARCHAR2
147195 --Invoice Supplier Identifier
147196  , p_source_69            IN NUMBER
147197 --Invoice Supplier Site Identifier
147198  , p_source_70            IN NUMBER
147199 --Third Party Type
147200  , p_source_71            IN VARCHAR2
147201 --Parent Reversal Identifier
147202  , p_source_72            IN NUMBER
147203 --Invoice Distribution Tax Line Identifier
147204  , p_source_74            IN NUMBER
147205 --Invoice Distribution Tax Distribution Identifier from Tax
147206  , p_source_75            IN NUMBER
147207 --Invoice Distribution Summary Tax Line Identifier
147208  , p_source_76            IN NUMBER
147209 --Payables Upgrade Credit Encumbrance Type Identifier
147210  , p_source_77            IN NUMBER
147211 --Payables Upgrade Debit Encumbrance Type Identifier
147212  , p_source_78            IN NUMBER
147213 --Business Flow Accounts Payable Application Identifier
147214  , p_source_79            IN NUMBER
147215 --Business Flow Invoice Distribution Type
147216  , p_source_80            IN VARCHAR2
147217 --Business Flow Invoice Entity Code
147218  , p_source_81            IN VARCHAR2
147219 --Business Flow Invoice Distribution Identifier
147220  , p_source_82            IN NUMBER
147221 --Business Flow Invoice Identifier
147222  , p_source_83            IN NUMBER
147223 --Self-Assessed Tax Flag
147224  , p_source_135            IN VARCHAR2
147225  , p_source_135_meaning    IN VARCHAR2
147229  , p_source_137            IN NUMBER
147226 --Invoice Exchange Date
147227  , p_source_136            IN DATE
147228 --Invoice Exchange Rate
147230 --Invoice Exchange Rate Type
147231  , p_source_138            IN VARCHAR2
147232 )
147233 IS
147234 
147235 l_component_type              VARCHAR2(80);
147236 l_component_code              VARCHAR2(30);
147237 l_component_type_code         VARCHAR2(1);
147238 l_component_appl_id           INTEGER;
147239 l_amb_context_code            VARCHAR2(30);
147240 l_entity_code                 VARCHAR2(30);
147241 l_event_class_code            VARCHAR2(30);
147242 l_ae_header_id                NUMBER;
147243 l_event_type_code             VARCHAR2(30);
147244 l_line_definition_code        VARCHAR2(30);
147245 l_line_definition_owner_code  VARCHAR2(1);
147246 --
147247 -- adr variables
147248 l_segment                     VARCHAR2(30);
147249 l_ccid                        NUMBER;
147250 l_adr_transaction_coa_id      NUMBER;
147251 l_adr_accounting_coa_id       NUMBER;
147252 l_adr_flexfield_segment_code  VARCHAR2(30);
147253 l_adr_flex_value_set_id       NUMBER;
147254 l_adr_value_type_code         VARCHAR2(30);
147255 l_adr_value_combination_id    NUMBER;
147256 l_adr_value_segment_code      VARCHAR2(30);
147257 
147258 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
147259 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
147260 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
147261 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
147262 
147263 -- 4262811 Variables ------------------------------------------------------------------------------------------
147264 l_entered_amt_idx             NUMBER;
147265 l_accted_amt_idx              NUMBER;
147266 l_acc_rev_flag                VARCHAR2(1);
147267 l_accrual_line_num            NUMBER;
147268 l_tmp_amt                     NUMBER;
147269 l_acc_rev_natural_side_code   VARCHAR2(1);
147270 
147271 l_num_entries                 NUMBER;
147272 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
147273 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
147274 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
147275 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
147276 l_recog_line_1                NUMBER;
147277 l_recog_line_2                NUMBER;
147278 
147279 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
147280 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
147281 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
147282 
147283 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
147284 
147285 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
147286 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
147287 
147288 ---------------------------------------------------------------------------------------------------------------
147289 
147290 
147291 --
147292 -- bulk performance
147293 --
147294 l_balance_type_code           VARCHAR2(1);
147295 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
147296 l_log_module                  VARCHAR2(240);
147297 
147298 --
147299 -- Upgrade strategy
147300 --
147301 l_actual_upg_option           VARCHAR2(1);
147302 l_enc_upg_option           VARCHAR2(1);
147303 
147304 --
147305 BEGIN
147306 --
147307 IF g_log_enabled THEN
147308       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_242';
147309 END IF;
147310 --
147311 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
147312 
147313       trace
147314          (p_msg      => 'BEGIN of AcctLineType_242'
147315          ,p_level    => C_LEVEL_PROCEDURE
147316          ,p_module   => l_log_module);
147317 
147318 END IF;
147319 --
147320 l_component_type             := 'AMB_JLT';
147321 l_component_code             := 'AP_SELF_ASSESSED_REC_TAX_DM';
147322 l_component_type_code        := 'S';
147323 l_component_appl_id          :=  200;
147324 l_amb_context_code           := 'DEFAULT';
147325 l_entity_code                := 'AP_INVOICES';
147326 l_event_class_code           := 'DEBIT MEMOS';
147327 l_event_type_code            := 'DEBIT MEMOS_ALL';
147328 l_line_definition_owner_code := 'S';
147329 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
147330 --
147331 l_balance_type_code          := 'A';
147332 l_segment                     := NULL;
147333 l_ccid                        := NULL;
147334 l_adr_transaction_coa_id      := NULL;
147335 l_adr_accounting_coa_id       := NULL;
147336 l_adr_flexfield_segment_code  := NULL;
147337 l_adr_flex_value_set_id       := NULL;
147338 l_adr_value_type_code         := NULL;
147339 l_adr_value_combination_id    := NULL;
147340 l_adr_value_segment_code      := NULL;
147341 
147342 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
147343 l_bflow_class_code           := '';    -- 4219869 Business Flow
147344 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
147345 l_budgetary_control_flag     := 'N';
147346 
147347 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
147348 l_bflow_applied_to_amt       := NULL; -- 5132302
147349 l_entered_amt_idx            := NULL;          -- 4262811
147350 l_accted_amt_idx             := NULL;          -- 4262811
147351 l_acc_rev_flag               := NULL;          -- 4262811
147352 l_accrual_line_num           := NULL;          -- 4262811
147353 l_tmp_amt                    := NULL;          -- 4262811
147354 --
147355  
147359 ') =  'REC_TAX' AND 
147356 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
147357     l_balance_type_code <> 'B' THEN
147358 IF NVL(p_source_21,'
147360 NVL(p_source_135,'
147361 ') =  'Y'
147362  THEN 
147363 
147364    --
147365    XLA_AE_LINES_PKG.SetNewLine;
147366 
147367    p_balance_type_code          := l_balance_type_code;
147368    -- set the flag so later we will know whether the gain loss line needs to be created
147369    
147370    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
147371      p_actual_flag :='A';
147372    END IF;
147373 
147374    --
147375    -- bulk performance
147376    --
147377    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
147378                                       p_header_num   => 0); -- 4262811
147379    --
147380    -- set accounting line options
147381    --
147382    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
147383            p_natural_side_code          => 'D'
147384          , p_gain_or_loss_flag          => 'N'
147385          , p_gl_transfer_mode_code      => 'S'
147386          , p_acct_entry_type_code       => 'A'
147387          , p_switch_side_flag           => 'Y'
147388          , p_merge_duplicate_code       => 'A'
147389          );
147390    --
147391    l_acc_rev_natural_side_code := 'C';  -- 4262811
147392    -- 
147393    --
147394    -- set accounting line type info
147395    --
147396    xla_ae_lines_pkg.SetAcctLineType
147397       (p_component_type             => l_component_type
147398       ,p_event_type_code            => l_event_type_code
147399       ,p_line_definition_owner_code => l_line_definition_owner_code
147400       ,p_line_definition_code       => l_line_definition_code
147401       ,p_accounting_line_code       => l_component_code
147402       ,p_accounting_line_type_code  => l_component_type_code
147403       ,p_accounting_line_appl_id    => l_component_appl_id
147404       ,p_amb_context_code           => l_amb_context_code
147405       ,p_entity_code                => l_entity_code
147406       ,p_event_class_code           => l_event_class_code);
147407    --
147408    -- set accounting class
147409    --
147410    xla_ae_lines_pkg.SetAcctClass(
147411            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
147412          , p_ae_header_id           => l_ae_header_id
147413          );
147414 
147415    --
147416    -- set rounding class
147417    --
147418    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
147419                       'SELF_ASSESSED_TAX';
147420 
147421    --
147422    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
147423    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
147424    --
147425    -- bulk performance
147426    --
147427    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
147428 
147429    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
147430       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
147431 
147432    -- 4955764
147433    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
147434       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
147435 
147436    -- 4458381 Public Sector Enh
147437    
147438    --
147439    -- set accounting attributes for the line type
147440    --
147441    l_entered_amt_idx := 23;
147442    l_accted_amt_idx  := 28;
147443    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
147444    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
147445    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
147446    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
147447    l_rec_acct_attrs.array_num_value(2)  := 
147448 xla_ae_sources_pkg.GetSystemSourceNum(
147449    p_source_code           => 'XLA_EVENT_APPL_ID'
147450  , p_source_type_code      => 'Y'
147451  , p_source_application_id =>  602
147452 );
147453    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
147454    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
147455    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
147456    l_rec_acct_attrs.array_char_value(4)  := 
147457 xla_ae_sources_pkg.GetSystemSourceChar(
147458    p_source_code           => 'XLA_ENTITY_CODE'
147459  , p_source_type_code      => 'Y'
147460  , p_source_application_id =>  602
147461 );
147462    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
147463    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
147464    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
147465    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
147466    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
147467    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
147468    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
147469    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
147470    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
147471    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
147472    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
147473    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
147474    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
147475    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
147476    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
147480    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
147477    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
147478    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
147479    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
147481    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
147482    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
147483    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
147484    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
147485    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
147486    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
147487    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
147488    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
147489    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
147490    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
147491    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
147492    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
147493    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
147494    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
147495    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
147496    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
147497    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
147498    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
147499    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
147500    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
147501    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
147502    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
147503    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
147504    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
147505    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
147506    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
147507    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
147508    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
147509    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
147510    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
147511    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
147512    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
147513    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
147514    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
147515    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
147516    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
147517    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
147518    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
147519    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
147520    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
147521    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
147522    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
147523    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
147524    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
147525    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
147526    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
147527    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
147528    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
147529    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
147530    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
147531    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
147532    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
147533    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
147534    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
147535    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
147536    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
147537    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
147538 
147539    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
147540    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
147541 
147542    ---------------------------------------------------------------------------------------------------------------
147543    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
147544    ---------------------------------------------------------------------------------------------------------------
147545    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
147546 
147547    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
147548    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
147549 
147550    IF xla_accounting_cache_pkg.GetValueChar
147551          (p_source_code         => 'LEDGER_CATEGORY_CODE'
147552          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
147553    AND l_bflow_method_code = 'PRIOR_ENTRY'
147554 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
147555    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
147556          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
147557        )
147558    THEN
147559          xla_ae_lines_pkg.BflowUpgEntry
147560            (p_business_method_code    => l_bflow_method_code
147561            ,p_business_class_code     => l_bflow_class_code
147562            ,p_balance_type            => l_balance_type_code);
147563    ELSE
147564       NULL;
147568    --
147565 -- No business flow processing for business flow method of NONE.
147566    END IF;
147567 
147569    -- call analytical criteria
147570    --
147571    
147572    --
147573    -- call description
147574    --
147575    
147576 xla_ae_lines_pkg.SetLineDescription(
147577    p_ae_header_id => l_ae_header_id
147578   ,p_description  => Description_2 (
147579      p_application_id         => p_application_id
147580    , p_ae_header_id           => l_ae_header_id 
147581 , p_source_1 => p_source_1
147582    )
147583 );
147584 
147585 
147586    --
147587    -- call ADRs
147588    -- Bug 4922099
147589    --
147590    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
147591         (NVL(l_actual_upg_option, 'N') = 'O') OR
147592         (NVL(l_enc_upg_option, 'N') = 'O')
147593       )
147594    THEN
147595    NULL;
147596    --
147597    --
147598    
147599   l_ccid := AcctDerRule_41(
147600            p_application_id           => p_application_id
147601          , p_ae_header_id             => l_ae_header_id 
147602 , p_source_38 => p_source_38
147603          , x_transaction_coa_id       => l_adr_transaction_coa_id
147604          , x_accounting_coa_id        => l_adr_accounting_coa_id
147605          , x_value_type_code          => l_adr_value_type_code
147606          , p_side                     => 'NA'
147607    );
147608 
147609    xla_ae_lines_pkg.set_ccid(
147610     p_code_combination_id          => l_ccid
147611   , p_value_type_code              => l_adr_value_type_code
147612   , p_transaction_coa_id           => l_adr_transaction_coa_id
147613   , p_accounting_coa_id            => l_adr_accounting_coa_id
147614   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
147615   , p_adr_type_code                => 'S'
147616   , p_component_type               => l_component_type
147617   , p_component_code               => l_component_code
147618   , p_component_type_code          => l_component_type_code
147619   , p_component_appl_id            => l_component_appl_id
147620   , p_amb_context_code             => l_amb_context_code
147621   , p_side                         => 'NA'
147622   );
147623 
147624 
147625    --
147626    --
147627    END IF;
147628    --
147629    -- Bug 4922099
147630    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
147631           (NVL(l_enc_upg_option, 'N') = 'O')
147632         ) AND
147633         (l_bflow_method_code = 'PRIOR_ENTRY')
147634       )
147635    THEN
147636       IF
147637       --
147638       1 = 2
147639       --
147640       THEN
147641       xla_accounting_err_pkg.build_message
147642                                     (p_appli_s_name            => 'XLA'
147643                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
147644                                     ,p_token_1                 => 'LINE_NUMBER'
147645                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
147646                                     ,p_token_2                 => 'LINE_TYPE_NAME'
147647                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
147648                                                                              l_component_type
147649                                                                             ,l_component_code
147650                                                                             ,l_component_type_code
147651                                                                             ,l_component_appl_id
147652                                                                             ,l_amb_context_code
147653                                                                             ,l_entity_code
147657                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
147654                                                                             ,l_event_class_code
147655                                                                            )
147656                                     ,p_token_3                 => 'OWNER'
147658                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
147659                                                                           ,p_lookup_code    => l_component_type_code
147660                                                                          )
147661                                     ,p_token_4                 => 'PRODUCT_NAME'
147662                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
147663                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
147664                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
147665                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
147666                                     ,p_ae_header_id            =>  NULL
147667                                        );
147668 
147669         IF (C_LEVEL_ERROR>= g_log_level) THEN
147670                  trace
147671                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
147672                       ,p_level    => C_LEVEL_ERROR
147673                       ,p_module   => l_log_module);
147674         END IF;
147675       END IF;
147676    END IF;
147677    --
147678    --
147679    ------------------------------------------------------------------------------------------------
147680    -- 4219869 Business Flow
147681    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
147682    -- Prior Entry.  Currently, the following code is always generated.
147683    ------------------------------------------------------------------------------------------------
147684    XLA_AE_LINES_PKG.ValidateCurrentLine;
147685 
147686    ------------------------------------------------------------------------------------
147687    -- 4219869 Business Flow
147688    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
147689    ------------------------------------------------------------------------------------
147690    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
147691 
147692    ----------------------------------------------------------------------------------
147693    -- 4219869 Business Flow
147694    -- Update journal entry status -- Need to generate this within IF <condition>
147695    ----------------------------------------------------------------------------------
147696    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
147697          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
147698          ,p_balance_type_code => l_balance_type_code
147699          );
147700 
147704    BEGIN
147701    -------------------------------------------------------------------------------------------
147702    -- 4262811 - Generate the Accrual Reversal lines
147703    -------------------------------------------------------------------------------------------
147705       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
147706                               (g_array_event(p_event_id).array_value_num('header_index'));
147707       IF l_acc_rev_flag IS NULL THEN
147708          l_acc_rev_flag := 'N';
147709       END IF;
147710    EXCEPTION
147711       WHEN OTHERS THEN
147712          l_acc_rev_flag := 'N';
147713    END;
147714    --
147715    IF (l_acc_rev_flag = 'Y') THEN
147716 
147717        -- 4645092  ------------------------------------------------------------------------------
147718        -- To allow MPA report to determine if it should generate report process
147719        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
147720        ------------------------------------------------------------------------------------------
147721 
147722        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
147723        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
147724    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
147725    -- call ADRs
147726    -- Bug 4922099
147727    --
147728    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
147729         (NVL(l_actual_upg_option, 'N') = 'O') OR
147730         (NVL(l_enc_upg_option, 'N') = 'O')
147731       )
147732    THEN
147733    NULL;
147734    --
147735    --
147736    
147737   l_ccid := AcctDerRule_41(
147738            p_application_id           => p_application_id
147742          , x_accounting_coa_id        => l_adr_accounting_coa_id
147739          , p_ae_header_id             => l_ae_header_id 
147740 , p_source_38 => p_source_38
147741          , x_transaction_coa_id       => l_adr_transaction_coa_id
147743          , x_value_type_code          => l_adr_value_type_code
147744          , p_side                     => 'NA'
147745    );
147746 
147747    xla_ae_lines_pkg.set_ccid(
147748     p_code_combination_id          => l_ccid
147749   , p_value_type_code              => l_adr_value_type_code
147750   , p_transaction_coa_id           => l_adr_transaction_coa_id
147751   , p_accounting_coa_id            => l_adr_accounting_coa_id
147752   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
147753   , p_adr_type_code                => 'S'
147754   , p_component_type               => l_component_type
147755   , p_component_code               => l_component_code
147756   , p_component_type_code          => l_component_type_code
147757   , p_component_appl_id            => l_component_appl_id
147758   , p_amb_context_code             => l_amb_context_code
147759   , p_side                         => 'NA'
147760   );
147761 
147762 
147763    --
147764    --
147765    END IF;
147766 
147767        --
147768        -- Update the line information that should be overwritten
147769        --
147770        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
147771                                          p_header_num   => 1);
147772        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
147773 
147774        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
147775 
147776        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
147777           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
147778        END IF;
147779 
147780       --
147781       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
147782       --
147783       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
147784           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
147785       ELSE
147786           ---------------------------------------------------------------------------------------------------
147787           -- 4262811a Switch Sign
147788           ---------------------------------------------------------------------------------------------------
147789           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
147790           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
147791                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
147792           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
147793                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
147794           -- 5132302
147795           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
147796                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
147797 
147798       END IF;
147799 
147800       -- 4955764
147801       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
147802       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
147803 
147804 
147805       XLA_AE_LINES_PKG.ValidateCurrentLine;
147806       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
147807 
147808       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
147809                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
147810                ,p_balance_type_code => l_balance_type_code);
147811 
147812    END IF;
147813 
147814    -----------------------------------------------------------------------------------------
147815    -- 4262811 Multiperiod Accounting
147816    -----------------------------------------------------------------------------------------
147817      -- No MPA option is assigned.
147818 
147819 
147820 END IF;
147821 END IF;
147822 --
147823 
147824 --
147825 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
147826    trace
147827       (p_msg      => 'END of AcctLineType_242'
147828       ,p_level    => C_LEVEL_PROCEDURE
147829       ,p_module   => l_log_module);
147830 END IF;
147831 --
147832 EXCEPTION
147833   WHEN xla_exceptions_pkg.application_exception THEN
147834       RAISE;
147835   WHEN OTHERS THEN
147836        xla_exceptions_pkg.raise_message
147837            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_242');
147838 END AcctLineType_242;
147839 --
147840 
147841 ---------------------------------------
147842 --
147843 -- PRIVATE FUNCTION
147844 --         AcctLineType_243
147845 --
147846 ---------------------------------------
147847 PROCEDURE AcctLineType_243 (
147851  ,p_calculate_g_l_flag    IN VARCHAR2
147848   p_application_id        IN NUMBER
147849  ,p_event_id              IN NUMBER
147850  ,p_calculate_acctd_flag  IN VARCHAR2
147852  ,p_actual_flag           IN OUT VARCHAR2
147853  ,p_balance_type_code     OUT VARCHAR2
147854  ,p_gain_or_loss_ref      OUT VARCHAR2
147855  
147856 --Invoice Distribution Description
147857  , p_source_1            IN VARCHAR2
147858 --Invoice Distribution Ledger Amount
147859  , p_source_9            IN NUMBER
147860 --Invoice Distribution Type
147861  , p_source_21            IN VARCHAR2
147862  , p_source_21_meaning    IN VARCHAR2
147863 --Self-Assessed Tax Account
147864  , p_source_38            IN NUMBER
147865 --Accounting Reversal Indicator
147866  , p_source_41            IN VARCHAR2
147867 --Distribution Link Type
147868  , p_source_43            IN VARCHAR2
147869 --Allocation to Main Distribution Identifier
147870  , p_source_45            IN NUMBER
147871 --Invoice Identifier
147872  , p_source_46            IN NUMBER
147873 --Invoice Distribution Identifier
147874  , p_source_52            IN NUMBER
147875 --Payables Encumbrance Upgrade Credit Account
147876  , p_source_53            IN NUMBER
147877 --Payables Encumbrance Upgrade Credit Amount
147878  , p_source_54            IN NUMBER
147879 --Invoice Currency Code
147880  , p_source_55            IN VARCHAR2
147881 --Payables Encumbrance Upgrade Credit Base Amount
147882  , p_source_56            IN NUMBER
147883 --Payables Encumbrance Upgrade Debit Account
147884  , p_source_57            IN NUMBER
147885 --Payables Encumbrance Upgrade Debit Amount
147886  , p_source_58            IN NUMBER
147887 --Payables Encumbrance Upgrade Debit Base Amount
147888  , p_source_59            IN NUMBER
147889 --Payables Encumbrance Upgrade Option
147890  , p_source_60            IN VARCHAR2
147891 --Invoice Distribution Amount
147892  , p_source_61            IN NUMBER
147893 --Deferred Accounting End Date
147894  , p_source_65            IN DATE
147895 --Deferred Accounting Option
147896  , p_source_66            IN VARCHAR2
147897 --Deferred Accounting Start Date
147898  , p_source_67            IN DATE
147899 --Override Accounted Amount Indicator
147900  , p_source_68            IN VARCHAR2
147901  , p_source_68_meaning    IN VARCHAR2
147902 --Invoice Supplier Identifier
147903  , p_source_69            IN NUMBER
147904 --Invoice Supplier Site Identifier
147905  , p_source_70            IN NUMBER
147906 --Third Party Type
147907  , p_source_71            IN VARCHAR2
147908 --Parent Reversal Identifier
147909  , p_source_72            IN NUMBER
147910 --Invoice Distribution Statistical Amount
147911  , p_source_73            IN NUMBER
147912 --Invoice Distribution Tax Line Identifier
147913  , p_source_74            IN NUMBER
147914 --Invoice Distribution Tax Distribution Identifier from Tax
147915  , p_source_75            IN NUMBER
147916 --Invoice Distribution Summary Tax Line Identifier
147917  , p_source_76            IN NUMBER
147918 --Payables Upgrade Credit Encumbrance Type Identifier
147919  , p_source_77            IN NUMBER
147920 --Payables Upgrade Debit Encumbrance Type Identifier
147921  , p_source_78            IN NUMBER
147922 --Business Flow Accounts Payable Application Identifier
147923  , p_source_79            IN NUMBER
147924 --Business Flow Invoice Distribution Type
147925  , p_source_80            IN VARCHAR2
147926 --Business Flow Invoice Entity Code
147927  , p_source_81            IN VARCHAR2
147928 --Business Flow Invoice Distribution Identifier
147929  , p_source_82            IN NUMBER
147930 --Business Flow Invoice Identifier
147931  , p_source_83            IN NUMBER
147932 --Self-Assessed Tax Flag
147933  , p_source_135            IN VARCHAR2
147934  , p_source_135_meaning    IN VARCHAR2
147935 --Invoice Exchange Date
147936  , p_source_136            IN DATE
147937 --Invoice Exchange Rate
147938  , p_source_137            IN NUMBER
147939 --Invoice Exchange Rate Type
147940  , p_source_138            IN VARCHAR2
147941 )
147942 IS
147943 
147944 l_component_type              VARCHAR2(80);
147945 l_component_code              VARCHAR2(30);
147946 l_component_type_code         VARCHAR2(1);
147947 l_component_appl_id           INTEGER;
147948 l_amb_context_code            VARCHAR2(30);
147949 l_entity_code                 VARCHAR2(30);
147950 l_event_class_code            VARCHAR2(30);
147951 l_ae_header_id                NUMBER;
147952 l_event_type_code             VARCHAR2(30);
147953 l_line_definition_code        VARCHAR2(30);
147954 l_line_definition_owner_code  VARCHAR2(1);
147955 --
147956 -- adr variables
147957 l_segment                     VARCHAR2(30);
147958 l_ccid                        NUMBER;
147959 l_adr_transaction_coa_id      NUMBER;
147960 l_adr_accounting_coa_id       NUMBER;
147961 l_adr_flexfield_segment_code  VARCHAR2(30);
147962 l_adr_flex_value_set_id       NUMBER;
147963 l_adr_value_type_code         VARCHAR2(30);
147964 l_adr_value_combination_id    NUMBER;
147965 l_adr_value_segment_code      VARCHAR2(30);
147966 
147967 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
147968 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
147969 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
147973 l_entered_amt_idx             NUMBER;
147970 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
147971 
147972 -- 4262811 Variables ------------------------------------------------------------------------------------------
147974 l_accted_amt_idx              NUMBER;
147975 l_acc_rev_flag                VARCHAR2(1);
147976 l_accrual_line_num            NUMBER;
147977 l_tmp_amt                     NUMBER;
147978 l_acc_rev_natural_side_code   VARCHAR2(1);
147979 
147980 l_num_entries                 NUMBER;
147981 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
147982 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
147983 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
147984 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
147985 l_recog_line_1                NUMBER;
147986 l_recog_line_2                NUMBER;
147987 
147988 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
147989 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
147990 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
147991 
147992 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
147993 
147994 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
147995 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
147996 
148000 --
147997 ---------------------------------------------------------------------------------------------------------------
147998 
147999 
148001 -- bulk performance
148002 --
148003 l_balance_type_code           VARCHAR2(1);
148004 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
148005 l_log_module                  VARCHAR2(240);
148006 
148007 --
148008 -- Upgrade strategy
148009 --
148010 l_actual_upg_option           VARCHAR2(1);
148011 l_enc_upg_option           VARCHAR2(1);
148012 
148013 --
148014 BEGIN
148015 --
148016 IF g_log_enabled THEN
148017       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_243';
148018 END IF;
148019 --
148020 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
148021 
148022       trace
148023          (p_msg      => 'BEGIN of AcctLineType_243'
148024          ,p_level    => C_LEVEL_PROCEDURE
148025          ,p_module   => l_log_module);
148026 
148027 END IF;
148028 --
148029 l_component_type             := 'AMB_JLT';
148030 l_component_code             := 'AP_SELF_ASSESSED_REC_TAX_INV';
148031 l_component_type_code        := 'S';
148032 l_component_appl_id          :=  200;
148033 l_amb_context_code           := 'DEFAULT';
148034 l_entity_code                := 'AP_INVOICES';
148035 l_event_class_code           := 'INVOICES';
148036 l_event_type_code            := 'INVOICES_ALL';
148037 l_line_definition_owner_code := 'S';
148038 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
148039 --
148040 l_balance_type_code          := 'A';
148041 l_segment                     := NULL;
148042 l_ccid                        := NULL;
148043 l_adr_transaction_coa_id      := NULL;
148044 l_adr_accounting_coa_id       := NULL;
148045 l_adr_flexfield_segment_code  := NULL;
148046 l_adr_flex_value_set_id       := NULL;
148047 l_adr_value_type_code         := NULL;
148048 l_adr_value_combination_id    := NULL;
148049 l_adr_value_segment_code      := NULL;
148050 
148051 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
148052 l_bflow_class_code           := '';    -- 4219869 Business Flow
148053 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
148054 l_budgetary_control_flag     := 'N';
148055 
148056 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
148057 l_bflow_applied_to_amt       := NULL; -- 5132302
148058 l_entered_amt_idx            := NULL;          -- 4262811
148059 l_accted_amt_idx             := NULL;          -- 4262811
148060 l_acc_rev_flag               := NULL;          -- 4262811
148061 l_accrual_line_num           := NULL;          -- 4262811
148062 l_tmp_amt                    := NULL;          -- 4262811
148063 --
148064  
148065 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
148066     l_balance_type_code <> 'B' THEN
148067 IF NVL(p_source_21,'
148068 ') =  'REC_TAX' AND 
148069 NVL(p_source_135,'
148070 ') =  'Y'
148071  THEN 
148072 
148073    --
148074    XLA_AE_LINES_PKG.SetNewLine;
148075 
148076    p_balance_type_code          := l_balance_type_code;
148077    -- set the flag so later we will know whether the gain loss line needs to be created
148078    
148079    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
148083    --
148080      p_actual_flag :='A';
148081    END IF;
148082 
148084    -- bulk performance
148085    --
148086    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
148087                                       p_header_num   => 0); -- 4262811
148088    --
148089    -- set accounting line options
148090    --
148091    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
148092            p_natural_side_code          => 'D'
148093          , p_gain_or_loss_flag          => 'N'
148094          , p_gl_transfer_mode_code      => 'S'
148095          , p_acct_entry_type_code       => 'A'
148096          , p_switch_side_flag           => 'Y'
148097          , p_merge_duplicate_code       => 'A'
148098          );
148099    --
148100    l_acc_rev_natural_side_code := 'C';  -- 4262811
148101    -- 
148102    --
148103    -- set accounting line type info
148104    --
148105    xla_ae_lines_pkg.SetAcctLineType
148106       (p_component_type             => l_component_type
148107       ,p_event_type_code            => l_event_type_code
148108       ,p_line_definition_owner_code => l_line_definition_owner_code
148109       ,p_line_definition_code       => l_line_definition_code
148110       ,p_accounting_line_code       => l_component_code
148111       ,p_accounting_line_type_code  => l_component_type_code
148112       ,p_accounting_line_appl_id    => l_component_appl_id
148113       ,p_amb_context_code           => l_amb_context_code
148114       ,p_entity_code                => l_entity_code
148115       ,p_event_class_code           => l_event_class_code);
148116    --
148117    -- set accounting class
148118    --
148119    xla_ae_lines_pkg.SetAcctClass(
148120            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
148121          , p_ae_header_id           => l_ae_header_id
148122          );
148123 
148124    --
148125    -- set rounding class
148126    --
148127    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
148128                       'SELF_ASSESSED_TAX';
148129 
148130    --
148131    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
148132    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
148133    --
148134    -- bulk performance
148135    --
148136    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
148137 
148138    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
148139       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
148140 
148141    -- 4955764
148142    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
148143       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
148144 
148145    -- 4458381 Public Sector Enh
148146    
148147    --
148148    -- set accounting attributes for the line type
148149    --
148150    l_entered_amt_idx := 24;
148151    l_accted_amt_idx  := 29;
148152    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
148153    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
148154    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
148155    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
148156    l_rec_acct_attrs.array_num_value(2)  := 
148157 xla_ae_sources_pkg.GetSystemSourceNum(
148158    p_source_code           => 'XLA_EVENT_APPL_ID'
148159  , p_source_type_code      => 'Y'
148160  , p_source_application_id =>  602
148161 );
148162    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
148163    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
148164    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
148165    l_rec_acct_attrs.array_char_value(4)  := 
148166 xla_ae_sources_pkg.GetSystemSourceChar(
148167    p_source_code           => 'XLA_ENTITY_CODE'
148168  , p_source_type_code      => 'Y'
148169  , p_source_application_id =>  602
148170 );
148171    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
148172    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
148173    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
148174    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
148175    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
148176    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
148177    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
148178    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
148179    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
148180    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
148181    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
148182    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
148183    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
148184    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
148185    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
148186    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
148187    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
148188    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
148189    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
148190    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
148191    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
148192    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
148193    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
148194    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
148195    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
148199    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
148196    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
148197    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
148198    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
148200    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
148201    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
148202    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
148203    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
148204    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
148205    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
148206    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
148207    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
148208    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
148209    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
148210    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
148211    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
148212    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
148213    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
148214    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
148215    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
148216    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
148217    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
148218    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
148219    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
148220    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
148221    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
148222    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
148223    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
148224    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
148225    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
148226    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
148227    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
148228    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
148229    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
148230    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
148231    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
148232    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
148233    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
148234    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
148235    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
148236    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
148237    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
148238    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
148239    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
148240    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
148241    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
148242    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
148243    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
148244    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
148245    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
148246    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
148247    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
148248    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
148249    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
148250    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
148251 
148252    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
148253    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
148254 
148255    ---------------------------------------------------------------------------------------------------------------
148256    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
148257    ---------------------------------------------------------------------------------------------------------------
148258    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
148259 
148260    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
148261    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
148262 
148263    IF xla_accounting_cache_pkg.GetValueChar
148264          (p_source_code         => 'LEDGER_CATEGORY_CODE'
148265          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
148266    AND l_bflow_method_code = 'PRIOR_ENTRY'
148267 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
148268    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
148269          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
148270        )
148271    THEN
148272          xla_ae_lines_pkg.BflowUpgEntry
148273            (p_business_method_code    => l_bflow_method_code
148274            ,p_business_class_code     => l_bflow_class_code
148275            ,p_balance_type            => l_balance_type_code);
148276    ELSE
148277       NULL;
148278 -- No business flow processing for business flow method of NONE.
148279    END IF;
148280 
148281    --
148282    -- call analytical criteria
148283    --
148284    
148285    --
148286    -- call description
148287    --
148288    
148289 xla_ae_lines_pkg.SetLineDescription(
148290    p_ae_header_id => l_ae_header_id
148291   ,p_description  => Description_2 (
148292      p_application_id         => p_application_id
148293    , p_ae_header_id           => l_ae_header_id 
148294 , p_source_1 => p_source_1
148298 
148295    )
148296 );
148297 
148299    --
148300    -- call ADRs
148301    -- Bug 4922099
148302    --
148303    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
148304         (NVL(l_actual_upg_option, 'N') = 'O') OR
148305         (NVL(l_enc_upg_option, 'N') = 'O')
148306       )
148307    THEN
148308    NULL;
148309    --
148310    --
148311    
148312   l_ccid := AcctDerRule_41(
148313            p_application_id           => p_application_id
148314          , p_ae_header_id             => l_ae_header_id 
148315 , p_source_38 => p_source_38
148316          , x_transaction_coa_id       => l_adr_transaction_coa_id
148317          , x_accounting_coa_id        => l_adr_accounting_coa_id
148318          , x_value_type_code          => l_adr_value_type_code
148319          , p_side                     => 'NA'
148320    );
148321 
148322    xla_ae_lines_pkg.set_ccid(
148323     p_code_combination_id          => l_ccid
148324   , p_value_type_code              => l_adr_value_type_code
148325   , p_transaction_coa_id           => l_adr_transaction_coa_id
148326   , p_accounting_coa_id            => l_adr_accounting_coa_id
148327   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
148328   , p_adr_type_code                => 'S'
148329   , p_component_type               => l_component_type
148330   , p_component_code               => l_component_code
148331   , p_component_type_code          => l_component_type_code
148332   , p_component_appl_id            => l_component_appl_id
148333   , p_amb_context_code             => l_amb_context_code
148334   , p_side                         => 'NA'
148335   );
148336 
148337 
148338    --
148339    --
148340    END IF;
148341    --
148342    -- Bug 4922099
148343    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
148344           (NVL(l_enc_upg_option, 'N') = 'O')
148345         ) AND
148346         (l_bflow_method_code = 'PRIOR_ENTRY')
148347       )
148348    THEN
148349       IF
148350       --
148351       1 = 2
148352       --
148353       THEN
148354       xla_accounting_err_pkg.build_message
148355                                     (p_appli_s_name            => 'XLA'
148356                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
148357                                     ,p_token_1                 => 'LINE_NUMBER'
148358                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
148359                                     ,p_token_2                 => 'LINE_TYPE_NAME'
148360                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
148361                                                                              l_component_type
148362                                                                             ,l_component_code
148363                                                                             ,l_component_type_code
148364                                                                             ,l_component_appl_id
148365                                                                             ,l_amb_context_code
148366                                                                             ,l_entity_code
148367                                                                             ,l_event_class_code
148368                                                                            )
148369                                     ,p_token_3                 => 'OWNER'
148370                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
148371                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
148372                                                                           ,p_lookup_code    => l_component_type_code
148373                                                                          )
148374                                     ,p_token_4                 => 'PRODUCT_NAME'
148375                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
148376                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
148377                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
148378                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
148379                                     ,p_ae_header_id            =>  NULL
148380                                        );
148381 
148382         IF (C_LEVEL_ERROR>= g_log_level) THEN
148383                  trace
148384                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
148385                       ,p_level    => C_LEVEL_ERROR
148386                       ,p_module   => l_log_module);
148387         END IF;
148388       END IF;
148389    END IF;
148390    --
148391    --
148392    ------------------------------------------------------------------------------------------------
148393    -- 4219869 Business Flow
148394    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
148395    -- Prior Entry.  Currently, the following code is always generated.
148396    ------------------------------------------------------------------------------------------------
148397    XLA_AE_LINES_PKG.ValidateCurrentLine;
148398 
148399    ------------------------------------------------------------------------------------
148400    -- 4219869 Business Flow
148401    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
148405    ----------------------------------------------------------------------------------
148402    ------------------------------------------------------------------------------------
148403    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
148404 
148406    -- 4219869 Business Flow
148407    -- Update journal entry status -- Need to generate this within IF <condition>
148408    ----------------------------------------------------------------------------------
148409    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
148410          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
148411          ,p_balance_type_code => l_balance_type_code
148412          );
148413 
148414    -------------------------------------------------------------------------------------------
148415    -- 4262811 - Generate the Accrual Reversal lines
148416    -------------------------------------------------------------------------------------------
148417    BEGIN
148418       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
148419                               (g_array_event(p_event_id).array_value_num('header_index'));
148420       IF l_acc_rev_flag IS NULL THEN
148421          l_acc_rev_flag := 'N';
148422       END IF;
148423    EXCEPTION
148424       WHEN OTHERS THEN
148425          l_acc_rev_flag := 'N';
148426    END;
148427    --
148428    IF (l_acc_rev_flag = 'Y') THEN
148429 
148430        -- 4645092  ------------------------------------------------------------------------------
148431        -- To allow MPA report to determine if it should generate report process
148432        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
148433        ------------------------------------------------------------------------------------------
148434 
148435        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
148436        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
148437    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
148438    -- call ADRs
148439    -- Bug 4922099
148440    --
148441    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
148442         (NVL(l_actual_upg_option, 'N') = 'O') OR
148443         (NVL(l_enc_upg_option, 'N') = 'O')
148444       )
148445    THEN
148446    NULL;
148447    --
148448    --
148449    
148450   l_ccid := AcctDerRule_41(
148451            p_application_id           => p_application_id
148452          , p_ae_header_id             => l_ae_header_id 
148453 , p_source_38 => p_source_38
148454          , x_transaction_coa_id       => l_adr_transaction_coa_id
148455          , x_accounting_coa_id        => l_adr_accounting_coa_id
148456          , x_value_type_code          => l_adr_value_type_code
148457          , p_side                     => 'NA'
148458    );
148459 
148460    xla_ae_lines_pkg.set_ccid(
148461     p_code_combination_id          => l_ccid
148462   , p_value_type_code              => l_adr_value_type_code
148463   , p_transaction_coa_id           => l_adr_transaction_coa_id
148464   , p_accounting_coa_id            => l_adr_accounting_coa_id
148465   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
148466   , p_adr_type_code                => 'S'
148467   , p_component_type               => l_component_type
148468   , p_component_code               => l_component_code
148469   , p_component_type_code          => l_component_type_code
148470   , p_component_appl_id            => l_component_appl_id
148471   , p_amb_context_code             => l_amb_context_code
148472   , p_side                         => 'NA'
148473   );
148474 
148475 
148476    --
148477    --
148478    END IF;
148479 
148480        --
148481        -- Update the line information that should be overwritten
148482        --
148483        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
148484                                          p_header_num   => 1);
148485        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
148486 
148487        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
148488 
148489        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
148490           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
148491        END IF;
148492 
148493       --
148494       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
148495       --
148496       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
148497           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
148498       ELSE
148499           ---------------------------------------------------------------------------------------------------
148500           -- 4262811a Switch Sign
148504                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
148501           ---------------------------------------------------------------------------------------------------
148502           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
148503           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
148505           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
148506                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
148507           -- 5132302
148508           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
148509                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
148510 
148511       END IF;
148512 
148513       -- 4955764
148514       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
148515       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
148516 
148517 
148518       XLA_AE_LINES_PKG.ValidateCurrentLine;
148519       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
148520 
148521       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
148522                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
148523                ,p_balance_type_code => l_balance_type_code);
148524 
148525    END IF;
148526 
148527    -----------------------------------------------------------------------------------------
148528    -- 4262811 Multiperiod Accounting
148529    -----------------------------------------------------------------------------------------
148530      -- No MPA option is assigned.
148531 
148532 
148533 END IF;
148534 END IF;
148535 --
148536 
148537 --
148538 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
148539    trace
148543 END IF;
148540       (p_msg      => 'END of AcctLineType_243'
148541       ,p_level    => C_LEVEL_PROCEDURE
148542       ,p_module   => l_log_module);
148544 --
148545 EXCEPTION
148546   WHEN xla_exceptions_pkg.application_exception THEN
148547       RAISE;
148548   WHEN OTHERS THEN
148549        xla_exceptions_pkg.raise_message
148550            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_243');
148551 END AcctLineType_243;
148552 --
148553 
148554 ---------------------------------------
148555 --
148556 -- PRIVATE FUNCTION
148557 --         AcctLineType_244
148558 --
148559 ---------------------------------------
148560 PROCEDURE AcctLineType_244 (
148561   p_application_id        IN NUMBER
148562  ,p_event_id              IN NUMBER
148563  ,p_calculate_acctd_flag  IN VARCHAR2
148564  ,p_calculate_g_l_flag    IN VARCHAR2
148565  ,p_actual_flag           IN OUT VARCHAR2
148566  ,p_balance_type_code     OUT VARCHAR2
148567  ,p_gain_or_loss_ref      OUT VARCHAR2
148568  
148569 --Invoice Distribution Description
148570  , p_source_1            IN VARCHAR2
148571 --Invoice Distribution Ledger Amount
148572  , p_source_9            IN NUMBER
148573 --Invoice Distribution Type
148574  , p_source_21            IN VARCHAR2
148575  , p_source_21_meaning    IN VARCHAR2
148576 --Self-Assessed Tax Liability Account
148577  , p_source_39            IN NUMBER
148578 --Accounting Reversal Indicator
148579  , p_source_41            IN VARCHAR2
148580 --Distribution Link Type
148581  , p_source_43            IN VARCHAR2
148582 --Allocation to Main Distribution Identifier
148583  , p_source_45            IN NUMBER
148584 --Invoice Identifier
148585  , p_source_46            IN NUMBER
148586 --Invoice Distribution Identifier
148587  , p_source_52            IN NUMBER
148588 --Payables Encumbrance Upgrade Credit Account
148589  , p_source_53            IN NUMBER
148590 --Payables Encumbrance Upgrade Credit Amount
148591  , p_source_54            IN NUMBER
148592 --Invoice Currency Code
148593  , p_source_55            IN VARCHAR2
148594 --Payables Encumbrance Upgrade Credit Base Amount
148595  , p_source_56            IN NUMBER
148596 --Payables Encumbrance Upgrade Debit Account
148597  , p_source_57            IN NUMBER
148598 --Payables Encumbrance Upgrade Debit Amount
148599  , p_source_58            IN NUMBER
148600 --Payables Encumbrance Upgrade Debit Base Amount
148601  , p_source_59            IN NUMBER
148602 --Payables Encumbrance Upgrade Option
148603  , p_source_60            IN VARCHAR2
148604 --Invoice Distribution Amount
148605  , p_source_61            IN NUMBER
148606 --Deferred Accounting End Date
148607  , p_source_65            IN DATE
148608 --Deferred Accounting Option
148609  , p_source_66            IN VARCHAR2
148610 --Deferred Accounting Start Date
148614  , p_source_68_meaning    IN VARCHAR2
148611  , p_source_67            IN DATE
148612 --Override Accounted Amount Indicator
148613  , p_source_68            IN VARCHAR2
148615 --Invoice Supplier Identifier
148616  , p_source_69            IN NUMBER
148617 --Invoice Supplier Site Identifier
148618  , p_source_70            IN NUMBER
148619 --Third Party Type
148620  , p_source_71            IN VARCHAR2
148621 --Parent Reversal Identifier
148622  , p_source_72            IN NUMBER
148623 --Invoice Distribution Statistical Amount
148624  , p_source_73            IN NUMBER
148625 --Invoice Distribution Tax Line Identifier
148626  , p_source_74            IN NUMBER
148627 --Invoice Distribution Tax Distribution Identifier from Tax
148628  , p_source_75            IN NUMBER
148629 --Invoice Distribution Summary Tax Line Identifier
148630  , p_source_76            IN NUMBER
148631 --Payables Upgrade Credit Encumbrance Type Identifier
148632  , p_source_77            IN NUMBER
148633 --Payables Upgrade Debit Encumbrance Type Identifier
148634  , p_source_78            IN NUMBER
148635 --Business Flow Accounts Payable Application Identifier
148636  , p_source_79            IN NUMBER
148637 --Business Flow Invoice Distribution Type
148638  , p_source_80            IN VARCHAR2
148639 --Business Flow Invoice Entity Code
148640  , p_source_81            IN VARCHAR2
148641 --Business Flow Invoice Distribution Identifier
148642  , p_source_82            IN NUMBER
148643 --Business Flow Invoice Identifier
148644  , p_source_83            IN NUMBER
148645 --Self-Assessed Tax Flag
148646  , p_source_135            IN VARCHAR2
148647  , p_source_135_meaning    IN VARCHAR2
148648 --Invoice Exchange Date
148649  , p_source_136            IN DATE
148650 --Invoice Exchange Rate
148651  , p_source_137            IN NUMBER
148652 --Invoice Exchange Rate Type
148653  , p_source_138            IN VARCHAR2
148654 )
148655 IS
148656 
148657 l_component_type              VARCHAR2(80);
148658 l_component_code              VARCHAR2(30);
148659 l_component_type_code         VARCHAR2(1);
148660 l_component_appl_id           INTEGER;
148661 l_amb_context_code            VARCHAR2(30);
148662 l_entity_code                 VARCHAR2(30);
148663 l_event_class_code            VARCHAR2(30);
148664 l_ae_header_id                NUMBER;
148665 l_event_type_code             VARCHAR2(30);
148666 l_line_definition_code        VARCHAR2(30);
148667 l_line_definition_owner_code  VARCHAR2(1);
148668 --
148669 -- adr variables
148670 l_segment                     VARCHAR2(30);
148671 l_ccid                        NUMBER;
148672 l_adr_transaction_coa_id      NUMBER;
148673 l_adr_accounting_coa_id       NUMBER;
148674 l_adr_flexfield_segment_code  VARCHAR2(30);
148675 l_adr_flex_value_set_id       NUMBER;
148676 l_adr_value_type_code         VARCHAR2(30);
148677 l_adr_value_combination_id    NUMBER;
148678 l_adr_value_segment_code      VARCHAR2(30);
148679 
148680 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
148681 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
148682 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
148683 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
148684 
148685 -- 4262811 Variables ------------------------------------------------------------------------------------------
148686 l_entered_amt_idx             NUMBER;
148687 l_accted_amt_idx              NUMBER;
148688 l_acc_rev_flag                VARCHAR2(1);
148689 l_accrual_line_num            NUMBER;
148690 l_tmp_amt                     NUMBER;
148691 l_acc_rev_natural_side_code   VARCHAR2(1);
148692 
148693 l_num_entries                 NUMBER;
148694 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
148695 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
148696 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
148697 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
148698 l_recog_line_1                NUMBER;
148702 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
148699 l_recog_line_2                NUMBER;
148700 
148701 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
148703 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
148704 
148705 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
148706 
148707 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
148708 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
148709 
148713 --
148710 ---------------------------------------------------------------------------------------------------------------
148711 
148712 
148714 -- bulk performance
148715 --
148716 l_balance_type_code           VARCHAR2(1);
148717 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
148718 l_log_module                  VARCHAR2(240);
148719 
148720 --
148721 -- Upgrade strategy
148722 --
148723 l_actual_upg_option           VARCHAR2(1);
148724 l_enc_upg_option           VARCHAR2(1);
148725 
148726 --
148727 BEGIN
148728 --
148729 IF g_log_enabled THEN
148730       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_244';
148731 END IF;
148732 --
148733 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
148734 
148735       trace
148736          (p_msg      => 'BEGIN of AcctLineType_244'
148737          ,p_level    => C_LEVEL_PROCEDURE
148738          ,p_module   => l_log_module);
148739 
148740 END IF;
148741 --
148742 l_component_type             := 'AMB_JLT';
148743 l_component_code             := 'AP_SELF_ASSESSED_TAX_CLR_CM';
148744 l_component_type_code        := 'S';
148745 l_component_appl_id          :=  200;
148746 l_amb_context_code           := 'DEFAULT';
148747 l_entity_code                := 'AP_INVOICES';
148748 l_event_class_code           := 'CREDIT MEMOS';
148749 l_event_type_code            := 'CREDIT MEMOS_ALL';
148750 l_line_definition_owner_code := 'S';
148751 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
148752 --
148753 l_balance_type_code          := 'A';
148754 l_segment                     := NULL;
148755 l_ccid                        := NULL;
148756 l_adr_transaction_coa_id      := NULL;
148757 l_adr_accounting_coa_id       := NULL;
148758 l_adr_flexfield_segment_code  := NULL;
148759 l_adr_flex_value_set_id       := NULL;
148760 l_adr_value_type_code         := NULL;
148761 l_adr_value_combination_id    := NULL;
148762 l_adr_value_segment_code      := NULL;
148763 
148764 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
148765 l_bflow_class_code           := '';    -- 4219869 Business Flow
148766 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
148767 l_budgetary_control_flag     := 'N';
148768 
148769 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
148770 l_bflow_applied_to_amt       := NULL; -- 5132302
148771 l_entered_amt_idx            := NULL;          -- 4262811
148772 l_accted_amt_idx             := NULL;          -- 4262811
148773 l_acc_rev_flag               := NULL;          -- 4262811
148774 l_accrual_line_num           := NULL;          -- 4262811
148775 l_tmp_amt                    := NULL;          -- 4262811
148776 --
148777  
148778 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
148779     l_balance_type_code <> 'B' THEN
148780 IF (NVL(p_source_21,'
148781 ') =  'REC_TAX' OR 
148782 NVL(p_source_21,'
148783 ') =  'NONREC_TAX') AND 
148784 NVL(p_source_135,'
148785 ') =  'Y'
148786  THEN 
148787 
148788    --
148789    XLA_AE_LINES_PKG.SetNewLine;
148790 
148791    p_balance_type_code          := l_balance_type_code;
148792    -- set the flag so later we will know whether the gain loss line needs to be created
148793    
148794    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
148795      p_actual_flag :='A';
148796    END IF;
148797 
148798    --
148799    -- bulk performance
148800    --
148801    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
148802                                       p_header_num   => 0); -- 4262811
148803    --
148804    -- set accounting line options
148805    --
148806    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
148807            p_natural_side_code          => 'C'
148808          , p_gain_or_loss_flag          => 'N'
148809          , p_gl_transfer_mode_code      => 'S'
148810          , p_acct_entry_type_code       => 'A'
148811          , p_switch_side_flag           => 'Y'
148812          , p_merge_duplicate_code       => 'A'
148813          );
148814    --
148815    l_acc_rev_natural_side_code := 'D';  -- 4262811
148816    -- 
148817    --
148818    -- set accounting line type info
148819    --
148820    xla_ae_lines_pkg.SetAcctLineType
148821       (p_component_type             => l_component_type
148822       ,p_event_type_code            => l_event_type_code
148823       ,p_line_definition_owner_code => l_line_definition_owner_code
148824       ,p_line_definition_code       => l_line_definition_code
148825       ,p_accounting_line_code       => l_component_code
148826       ,p_accounting_line_type_code  => l_component_type_code
148827       ,p_accounting_line_appl_id    => l_component_appl_id
148828       ,p_amb_context_code           => l_amb_context_code
148829       ,p_entity_code                => l_entity_code
148830       ,p_event_class_code           => l_event_class_code);
148831    --
148832    -- set accounting class
148833    --
148834    xla_ae_lines_pkg.SetAcctClass(
148835            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
148836          , p_ae_header_id           => l_ae_header_id
148837          );
148838 
148839    --
148840    -- set rounding class
148841    --
148842    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
148843                       'SELF_ASSESSED_TAX';
148844 
148845    --
148846    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
148847    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
148848    --
148852 
148849    -- bulk performance
148850    --
148851    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
148853    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
148854       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
148855 
148856    -- 4955764
148857    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
148861    
148858       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
148859 
148860    -- 4458381 Public Sector Enh
148862    --
148863    -- set accounting attributes for the line type
148864    --
148865    l_entered_amt_idx := 23;
148866    l_accted_amt_idx  := 28;
148867    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
148868    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
148869    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
148870    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
148871    l_rec_acct_attrs.array_num_value(2)  := 
148872 xla_ae_sources_pkg.GetSystemSourceNum(
148873    p_source_code           => 'XLA_EVENT_APPL_ID'
148874  , p_source_type_code      => 'Y'
148875  , p_source_application_id =>  602
148876 );
148877    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
148878    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
148879    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
148880    l_rec_acct_attrs.array_char_value(4)  := 
148881 xla_ae_sources_pkg.GetSystemSourceChar(
148882    p_source_code           => 'XLA_ENTITY_CODE'
148883  , p_source_type_code      => 'Y'
148884  , p_source_application_id =>  602
148885 );
148886    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
148887    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
148888    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
148889    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
148890    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
148891    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
148892    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
148893    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
148894    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
148895    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
148896    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
148897    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
148898    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
148899    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
148900    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
148901    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
148902    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
148903    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
148904    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
148905    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
148906    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
148907    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
148908    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
148909    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
148910    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
148911    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
148912    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
148913    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
148914    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
148915    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
148916    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
148917    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
148918    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
148919    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
148920    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
148921    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
148922    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
148923    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
148924    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
148925    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
148926    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
148927    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
148928    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
148929    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
148930    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
148934    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
148931    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
148932    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
148933    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
148935    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
148936    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
148937    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
148938    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
148939    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
148940    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
148941    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
148942    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
148943    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
148944    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
148945    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
148946    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
148947    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
148948    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
148949    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
148950    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
148951    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
148952    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
148953    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
148954    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
148955    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
148956    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
148957    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
148958    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
148959    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
148960    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
148961    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
148962    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
148963    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
148964 
148965    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
148966    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
148967 
148971    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
148968    ---------------------------------------------------------------------------------------------------------------
148969    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
148970    ---------------------------------------------------------------------------------------------------------------
148972 
148973    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
148974    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
148975 
148976    IF xla_accounting_cache_pkg.GetValueChar
148977          (p_source_code         => 'LEDGER_CATEGORY_CODE'
148978          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
148979    AND l_bflow_method_code = 'PRIOR_ENTRY'
148980 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
148981    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
148982          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
148983        )
148984    THEN
148985          xla_ae_lines_pkg.BflowUpgEntry
148986            (p_business_method_code    => l_bflow_method_code
148987            ,p_business_class_code     => l_bflow_class_code
148988            ,p_balance_type            => l_balance_type_code);
148989    ELSE
148990       NULL;
148991 -- No business flow processing for business flow method of NONE.
148992    END IF;
148993 
148994    --
148995    -- call analytical criteria
148996    --
148997    
148998    --
148999    -- call description
149000    --
149001    
149002 xla_ae_lines_pkg.SetLineDescription(
149003    p_ae_header_id => l_ae_header_id
149004   ,p_description  => Description_2 (
149005      p_application_id         => p_application_id
149006    , p_ae_header_id           => l_ae_header_id 
149007 , p_source_1 => p_source_1
149008    )
149009 );
149010 
149011 
149012    --
149013    -- call ADRs
149014    -- Bug 4922099
149015    --
149016    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
149017         (NVL(l_actual_upg_option, 'N') = 'O') OR
149018         (NVL(l_enc_upg_option, 'N') = 'O')
149019       )
149020    THEN
149021    NULL;
149022    --
149023    --
149024    
149028 , p_source_39 => p_source_39
149025   l_ccid := AcctDerRule_42(
149026            p_application_id           => p_application_id
149027          , p_ae_header_id             => l_ae_header_id 
149029          , x_transaction_coa_id       => l_adr_transaction_coa_id
149030          , x_accounting_coa_id        => l_adr_accounting_coa_id
149031          , x_value_type_code          => l_adr_value_type_code
149032          , p_side                     => 'NA'
149033    );
149034 
149035    xla_ae_lines_pkg.set_ccid(
149036     p_code_combination_id          => l_ccid
149037   , p_value_type_code              => l_adr_value_type_code
149038   , p_transaction_coa_id           => l_adr_transaction_coa_id
149039   , p_accounting_coa_id            => l_adr_accounting_coa_id
149040   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
149041   , p_adr_type_code                => 'S'
149042   , p_component_type               => l_component_type
149043   , p_component_code               => l_component_code
149044   , p_component_type_code          => l_component_type_code
149045   , p_component_appl_id            => l_component_appl_id
149046   , p_amb_context_code             => l_amb_context_code
149047   , p_side                         => 'NA'
149048   );
149049 
149050 
149051    --
149052    --
149053    END IF;
149054    --
149055    -- Bug 4922099
149056    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
149057           (NVL(l_enc_upg_option, 'N') = 'O')
149058         ) AND
149059         (l_bflow_method_code = 'PRIOR_ENTRY')
149060       )
149061    THEN
149062       IF
149063       --
149064       1 = 2
149065       --
149066       THEN
149067       xla_accounting_err_pkg.build_message
149068                                     (p_appli_s_name            => 'XLA'
149069                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
149070                                     ,p_token_1                 => 'LINE_NUMBER'
149071                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
149072                                     ,p_token_2                 => 'LINE_TYPE_NAME'
149073                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
149074                                                                              l_component_type
149075                                                                             ,l_component_code
149076                                                                             ,l_component_type_code
149077                                                                             ,l_component_appl_id
149078                                                                             ,l_amb_context_code
149079                                                                             ,l_entity_code
149080                                                                             ,l_event_class_code
149081                                                                            )
149082                                     ,p_token_3                 => 'OWNER'
149083                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
149084                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
149085                                                                           ,p_lookup_code    => l_component_type_code
149086                                                                          )
149087                                     ,p_token_4                 => 'PRODUCT_NAME'
149088                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
149089                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
149090                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
149091                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
149092                                     ,p_ae_header_id            =>  NULL
149093                                        );
149094 
149095         IF (C_LEVEL_ERROR>= g_log_level) THEN
149096                  trace
149097                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
149098                       ,p_level    => C_LEVEL_ERROR
149099                       ,p_module   => l_log_module);
149100         END IF;
149101       END IF;
149102    END IF;
149106    -- 4219869 Business Flow
149103    --
149104    --
149105    ------------------------------------------------------------------------------------------------
149107    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
149108    -- Prior Entry.  Currently, the following code is always generated.
149109    ------------------------------------------------------------------------------------------------
149110    XLA_AE_LINES_PKG.ValidateCurrentLine;
149111 
149112    ------------------------------------------------------------------------------------
149113    -- 4219869 Business Flow
149114    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
149115    ------------------------------------------------------------------------------------
149116    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
149117 
149118    ----------------------------------------------------------------------------------
149119    -- 4219869 Business Flow
149120    -- Update journal entry status -- Need to generate this within IF <condition>
149121    ----------------------------------------------------------------------------------
149122    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
149123          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
149124          ,p_balance_type_code => l_balance_type_code
149125          );
149126 
149127    -------------------------------------------------------------------------------------------
149128    -- 4262811 - Generate the Accrual Reversal lines
149129    -------------------------------------------------------------------------------------------
149130    BEGIN
149131       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
149132                               (g_array_event(p_event_id).array_value_num('header_index'));
149133       IF l_acc_rev_flag IS NULL THEN
149134          l_acc_rev_flag := 'N';
149135       END IF;
149136    EXCEPTION
149137       WHEN OTHERS THEN
149138          l_acc_rev_flag := 'N';
149139    END;
149140    --
149141    IF (l_acc_rev_flag = 'Y') THEN
149142 
149143        -- 4645092  ------------------------------------------------------------------------------
149144        -- To allow MPA report to determine if it should generate report process
149145        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
149146        ------------------------------------------------------------------------------------------
149147 
149148        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
149149        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
149150    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
149151    -- call ADRs
149152    -- Bug 4922099
149153    --
149154    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
149155         (NVL(l_actual_upg_option, 'N') = 'O') OR
149156         (NVL(l_enc_upg_option, 'N') = 'O')
149157       )
149161    --
149158    THEN
149159    NULL;
149160    --
149162    
149163   l_ccid := AcctDerRule_42(
149164            p_application_id           => p_application_id
149165          , p_ae_header_id             => l_ae_header_id 
149166 , p_source_39 => p_source_39
149167          , x_transaction_coa_id       => l_adr_transaction_coa_id
149168          , x_accounting_coa_id        => l_adr_accounting_coa_id
149169          , x_value_type_code          => l_adr_value_type_code
149170          , p_side                     => 'NA'
149171    );
149172 
149173    xla_ae_lines_pkg.set_ccid(
149174     p_code_combination_id          => l_ccid
149175   , p_value_type_code              => l_adr_value_type_code
149176   , p_transaction_coa_id           => l_adr_transaction_coa_id
149177   , p_accounting_coa_id            => l_adr_accounting_coa_id
149178   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
149179   , p_adr_type_code                => 'S'
149180   , p_component_type               => l_component_type
149181   , p_component_code               => l_component_code
149182   , p_component_type_code          => l_component_type_code
149183   , p_component_appl_id            => l_component_appl_id
149184   , p_amb_context_code             => l_amb_context_code
149185   , p_side                         => 'NA'
149186   );
149187 
149188 
149189    --
149190    --
149191    END IF;
149192 
149193        --
149194        -- Update the line information that should be overwritten
149195        --
149196        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
149197                                          p_header_num   => 1);
149198        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
149199 
149200        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
149201 
149202        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
149203           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
149204        END IF;
149205 
149206       --
149207       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
149208       --
149209       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
149210           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
149211       ELSE
149212           ---------------------------------------------------------------------------------------------------
149213           -- 4262811a Switch Sign
149214           ---------------------------------------------------------------------------------------------------
149215           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
149216           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
149217                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
149218           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
149219                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
149220           -- 5132302
149221           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
149222                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
149223 
149224       END IF;
149225 
149226       -- 4955764
149227       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
149228       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
149229 
149230 
149231       XLA_AE_LINES_PKG.ValidateCurrentLine;
149232       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
149233 
149234       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
149235                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
149236                ,p_balance_type_code => l_balance_type_code);
149237 
149238    END IF;
149239 
149240    -----------------------------------------------------------------------------------------
149241    -- 4262811 Multiperiod Accounting
149242    -----------------------------------------------------------------------------------------
149243      -- No MPA option is assigned.
149244 
149245 
149246 END IF;
149247 END IF;
149248 --
149249 
149250 --
149251 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
149252    trace
149253       (p_msg      => 'END of AcctLineType_244'
149254       ,p_level    => C_LEVEL_PROCEDURE
149255       ,p_module   => l_log_module);
149256 END IF;
149257 --
149258 EXCEPTION
149259   WHEN xla_exceptions_pkg.application_exception THEN
149260       RAISE;
149261   WHEN OTHERS THEN
149262        xla_exceptions_pkg.raise_message
149263            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_244');
149264 END AcctLineType_244;
149265 --
149266 
149267 ---------------------------------------
149268 --
149269 -- PRIVATE FUNCTION
149270 --         AcctLineType_245
149271 --
149272 ---------------------------------------
149273 PROCEDURE AcctLineType_245 (
149274   p_application_id        IN NUMBER
149275  ,p_event_id              IN NUMBER
149276  ,p_calculate_acctd_flag  IN VARCHAR2
149277  ,p_calculate_g_l_flag    IN VARCHAR2
149278  ,p_actual_flag           IN OUT VARCHAR2
149279  ,p_balance_type_code     OUT VARCHAR2
149280  ,p_gain_or_loss_ref      OUT VARCHAR2
149281  
149282 --Invoice Distribution Description
149283  , p_source_1            IN VARCHAR2
149287  , p_source_21            IN VARCHAR2
149284 --Invoice Distribution Ledger Amount
149285  , p_source_9            IN NUMBER
149286 --Invoice Distribution Type
149288  , p_source_21_meaning    IN VARCHAR2
149289 --Self-Assessed Tax Liability Account
149290  , p_source_39            IN NUMBER
149291 --Accounting Reversal Indicator
149292  , p_source_41            IN VARCHAR2
149293 --Distribution Link Type
149294  , p_source_43            IN VARCHAR2
149295 --Allocation to Main Distribution Identifier
149296  , p_source_45            IN NUMBER
149297 --Invoice Identifier
149298  , p_source_46            IN NUMBER
149299 --Invoice Distribution Identifier
149300  , p_source_52            IN NUMBER
149301 --Payables Encumbrance Upgrade Credit Account
149302  , p_source_53            IN NUMBER
149303 --Payables Encumbrance Upgrade Credit Amount
149304  , p_source_54            IN NUMBER
149305 --Invoice Currency Code
149306  , p_source_55            IN VARCHAR2
149307 --Payables Encumbrance Upgrade Credit Base Amount
149308  , p_source_56            IN NUMBER
149309 --Payables Encumbrance Upgrade Debit Account
149310  , p_source_57            IN NUMBER
149311 --Payables Encumbrance Upgrade Debit Amount
149312  , p_source_58            IN NUMBER
149313 --Payables Encumbrance Upgrade Debit Base Amount
149314  , p_source_59            IN NUMBER
149315 --Payables Encumbrance Upgrade Option
149316  , p_source_60            IN VARCHAR2
149317 --Invoice Distribution Amount
149318  , p_source_61            IN NUMBER
149319 --Deferred Accounting End Date
149320  , p_source_65            IN DATE
149321 --Deferred Accounting Option
149322  , p_source_66            IN VARCHAR2
149323 --Deferred Accounting Start Date
149324  , p_source_67            IN DATE
149325 --Override Accounted Amount Indicator
149326  , p_source_68            IN VARCHAR2
149327  , p_source_68_meaning    IN VARCHAR2
149328 --Invoice Supplier Identifier
149329  , p_source_69            IN NUMBER
149330 --Invoice Supplier Site Identifier
149331  , p_source_70            IN NUMBER
149332 --Third Party Type
149333  , p_source_71            IN VARCHAR2
149334 --Parent Reversal Identifier
149335  , p_source_72            IN NUMBER
149336 --Invoice Distribution Tax Line Identifier
149337  , p_source_74            IN NUMBER
149338 --Invoice Distribution Tax Distribution Identifier from Tax
149339  , p_source_75            IN NUMBER
149340 --Invoice Distribution Summary Tax Line Identifier
149341  , p_source_76            IN NUMBER
149342 --Payables Upgrade Credit Encumbrance Type Identifier
149343  , p_source_77            IN NUMBER
149344 --Payables Upgrade Debit Encumbrance Type Identifier
149345  , p_source_78            IN NUMBER
149346 --Business Flow Accounts Payable Application Identifier
149347  , p_source_79            IN NUMBER
149348 --Business Flow Invoice Distribution Type
149349  , p_source_80            IN VARCHAR2
149350 --Business Flow Invoice Entity Code
149351  , p_source_81            IN VARCHAR2
149352 --Business Flow Invoice Distribution Identifier
149353  , p_source_82            IN NUMBER
149354 --Business Flow Invoice Identifier
149355  , p_source_83            IN NUMBER
149356 --Self-Assessed Tax Flag
149357  , p_source_135            IN VARCHAR2
149358  , p_source_135_meaning    IN VARCHAR2
149359 --Invoice Exchange Date
149360  , p_source_136            IN DATE
149361 --Invoice Exchange Rate
149362  , p_source_137            IN NUMBER
149363 --Invoice Exchange Rate Type
149364  , p_source_138            IN VARCHAR2
149365 )
149366 IS
149367 
149368 l_component_type              VARCHAR2(80);
149369 l_component_code              VARCHAR2(30);
149370 l_component_type_code         VARCHAR2(1);
149371 l_component_appl_id           INTEGER;
149372 l_amb_context_code            VARCHAR2(30);
149373 l_entity_code                 VARCHAR2(30);
149374 l_event_class_code            VARCHAR2(30);
149375 l_ae_header_id                NUMBER;
149376 l_event_type_code             VARCHAR2(30);
149377 l_line_definition_code        VARCHAR2(30);
149378 l_line_definition_owner_code  VARCHAR2(1);
149379 --
149380 -- adr variables
149381 l_segment                     VARCHAR2(30);
149382 l_ccid                        NUMBER;
149383 l_adr_transaction_coa_id      NUMBER;
149384 l_adr_accounting_coa_id       NUMBER;
149385 l_adr_flexfield_segment_code  VARCHAR2(30);
149386 l_adr_flex_value_set_id       NUMBER;
149387 l_adr_value_type_code         VARCHAR2(30);
149388 l_adr_value_combination_id    NUMBER;
149389 l_adr_value_segment_code      VARCHAR2(30);
149390 
149391 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
149392 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
149393 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
149394 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
149395 
149396 -- 4262811 Variables ------------------------------------------------------------------------------------------
149397 l_entered_amt_idx             NUMBER;
149398 l_accted_amt_idx              NUMBER;
149399 l_acc_rev_flag                VARCHAR2(1);
149400 l_accrual_line_num            NUMBER;
149401 l_tmp_amt                     NUMBER;
149402 l_acc_rev_natural_side_code   VARCHAR2(1);
149403 
149404 l_num_entries                 NUMBER;
149405 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
149406 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
149407 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
149408 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
149409 l_recog_line_1                NUMBER;
149410 l_recog_line_2                NUMBER;
149411 
149415 
149412 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
149413 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
149414 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
149416 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
149417 
149418 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
149419 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
149420 
149421 ---------------------------------------------------------------------------------------------------------------
149422 
149423 
149424 --
149425 -- bulk performance
149426 --
149427 l_balance_type_code           VARCHAR2(1);
149428 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
149429 l_log_module                  VARCHAR2(240);
149430 
149431 --
149432 -- Upgrade strategy
149433 --
149434 l_actual_upg_option           VARCHAR2(1);
149435 l_enc_upg_option           VARCHAR2(1);
149436 
149437 --
149438 BEGIN
149439 --
149440 IF g_log_enabled THEN
149441       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_245';
149442 END IF;
149443 --
149444 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
149445 
149446       trace
149447          (p_msg      => 'BEGIN of AcctLineType_245'
149448          ,p_level    => C_LEVEL_PROCEDURE
149449          ,p_module   => l_log_module);
149450 
149451 END IF;
149452 --
149453 l_component_type             := 'AMB_JLT';
149454 l_component_code             := 'AP_SELF_ASSESSED_TAX_CLR_DM';
149455 l_component_type_code        := 'S';
149456 l_component_appl_id          :=  200;
149457 l_amb_context_code           := 'DEFAULT';
149458 l_entity_code                := 'AP_INVOICES';
149459 l_event_class_code           := 'DEBIT MEMOS';
149460 l_event_type_code            := 'DEBIT MEMOS_ALL';
149461 l_line_definition_owner_code := 'S';
149462 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
149463 --
149464 l_balance_type_code          := 'A';
149465 l_segment                     := NULL;
149466 l_ccid                        := NULL;
149467 l_adr_transaction_coa_id      := NULL;
149468 l_adr_accounting_coa_id       := NULL;
149469 l_adr_flexfield_segment_code  := NULL;
149470 l_adr_flex_value_set_id       := NULL;
149471 l_adr_value_type_code         := NULL;
149472 l_adr_value_combination_id    := NULL;
149473 l_adr_value_segment_code      := NULL;
149474 
149475 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
149476 l_bflow_class_code           := '';    -- 4219869 Business Flow
149477 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
149478 l_budgetary_control_flag     := 'N';
149479 
149480 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
149481 l_bflow_applied_to_amt       := NULL; -- 5132302
149482 l_entered_amt_idx            := NULL;          -- 4262811
149483 l_accted_amt_idx             := NULL;          -- 4262811
149484 l_acc_rev_flag               := NULL;          -- 4262811
149485 l_accrual_line_num           := NULL;          -- 4262811
149486 l_tmp_amt                    := NULL;          -- 4262811
149487 --
149488  
149489 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
149490     l_balance_type_code <> 'B' THEN
149491 IF (NVL(p_source_21,'
149492 ') =  'REC_TAX' OR 
149493 NVL(p_source_21,'
149494 ') =  'NONREC_TAX') AND 
149495 NVL(p_source_135,'
149496 ') =  'Y'
149497  THEN 
149498 
149499    --
149500    XLA_AE_LINES_PKG.SetNewLine;
149501 
149502    p_balance_type_code          := l_balance_type_code;
149503    -- set the flag so later we will know whether the gain loss line needs to be created
149504    
149505    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
149506      p_actual_flag :='A';
149507    END IF;
149508 
149509    --
149510    -- bulk performance
149511    --
149512    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
149513                                       p_header_num   => 0); -- 4262811
149514    --
149515    -- set accounting line options
149516    --
149517    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
149518            p_natural_side_code          => 'C'
149519          , p_gain_or_loss_flag          => 'N'
149520          , p_gl_transfer_mode_code      => 'S'
149521          , p_acct_entry_type_code       => 'A'
149522          , p_switch_side_flag           => 'Y'
149523          , p_merge_duplicate_code       => 'A'
149524          );
149525    --
149526    l_acc_rev_natural_side_code := 'D';  -- 4262811
149527    -- 
149528    --
149529    -- set accounting line type info
149530    --
149531    xla_ae_lines_pkg.SetAcctLineType
149532       (p_component_type             => l_component_type
149533       ,p_event_type_code            => l_event_type_code
149534       ,p_line_definition_owner_code => l_line_definition_owner_code
149535       ,p_line_definition_code       => l_line_definition_code
149536       ,p_accounting_line_code       => l_component_code
149537       ,p_accounting_line_type_code  => l_component_type_code
149538       ,p_accounting_line_appl_id    => l_component_appl_id
149539       ,p_amb_context_code           => l_amb_context_code
149540       ,p_entity_code                => l_entity_code
149541       ,p_event_class_code           => l_event_class_code);
149542    --
149543    -- set accounting class
149544    --
149545    xla_ae_lines_pkg.SetAcctClass(
149546            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
149550    --
149547          , p_ae_header_id           => l_ae_header_id
149548          );
149549 
149551    -- set rounding class
149552    --
149553    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
149554                       'SELF_ASSESSED_TAX';
149555 
149556    --
149557    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
149558    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
149559    --
149560    -- bulk performance
149561    --
149562    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
149563 
149564    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
149565       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
149566 
149567    -- 4955764
149568    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
149569       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
149570 
149571    -- 4458381 Public Sector Enh
149572    
149573    --
149574    -- set accounting attributes for the line type
149575    --
149576    l_entered_amt_idx := 23;
149577    l_accted_amt_idx  := 28;
149578    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
149579    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
149580    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
149581    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
149582    l_rec_acct_attrs.array_num_value(2)  := 
149583 xla_ae_sources_pkg.GetSystemSourceNum(
149584    p_source_code           => 'XLA_EVENT_APPL_ID'
149585  , p_source_type_code      => 'Y'
149586  , p_source_application_id =>  602
149587 );
149588    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
149589    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
149590    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
149591    l_rec_acct_attrs.array_char_value(4)  := 
149592 xla_ae_sources_pkg.GetSystemSourceChar(
149593    p_source_code           => 'XLA_ENTITY_CODE'
149594  , p_source_type_code      => 'Y'
149595  , p_source_application_id =>  602
149596 );
149597    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
149598    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
149599    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
149600    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
149601    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
149602    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
149603    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
149604    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
149605    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
149606    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
149607    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
149608    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
149609    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
149610    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
149611    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
149612    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
149613    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
149614    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
149615    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
149616    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
149617    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
149618    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
149619    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
149620    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
149621    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
149622    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
149623    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
149624    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
149625    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
149626    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
149627    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
149628    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
149629    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
149630    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
149631    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
149632    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
149633    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
149634    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
149635    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
149636    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
149637    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
149638    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
149639    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
149640    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
149641    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
149642    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
149643    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
149644    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
149645    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
149646    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
149647    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
149648    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
149649    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
149653    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
149650    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
149651    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
149652    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
149654    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
149655    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
149656    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
149657    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
149658    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
149659    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
149660    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
149661    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
149662    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
149663    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
149664    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
149665    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
149666    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
149667    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
149668    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
149669    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
149670    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
149671    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
149672    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
149673 
149674    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
149675    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
149676 
149677    ---------------------------------------------------------------------------------------------------------------
149678    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
149679    ---------------------------------------------------------------------------------------------------------------
149680    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
149681 
149682    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
149683    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
149684 
149685    IF xla_accounting_cache_pkg.GetValueChar
149686          (p_source_code         => 'LEDGER_CATEGORY_CODE'
149687          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
149688    AND l_bflow_method_code = 'PRIOR_ENTRY'
149689 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
149690    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
149691          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
149692        )
149693    THEN
149694          xla_ae_lines_pkg.BflowUpgEntry
149695            (p_business_method_code    => l_bflow_method_code
149696            ,p_business_class_code     => l_bflow_class_code
149697            ,p_balance_type            => l_balance_type_code);
149698    ELSE
149699       NULL;
149700 -- No business flow processing for business flow method of NONE.
149701    END IF;
149702 
149703    --
149704    -- call analytical criteria
149705    --
149706    
149707    --
149708    -- call description
149709    --
149710    
149711 xla_ae_lines_pkg.SetLineDescription(
149712    p_ae_header_id => l_ae_header_id
149713   ,p_description  => Description_2 (
149714      p_application_id         => p_application_id
149715    , p_ae_header_id           => l_ae_header_id 
149716 , p_source_1 => p_source_1
149717    )
149718 );
149719 
149720 
149721    --
149722    -- call ADRs
149723    -- Bug 4922099
149724    --
149725    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
149726         (NVL(l_actual_upg_option, 'N') = 'O') OR
149727         (NVL(l_enc_upg_option, 'N') = 'O')
149728       )
149729    THEN
149730    NULL;
149731    --
149732    --
149733    
149734   l_ccid := AcctDerRule_42(
149735            p_application_id           => p_application_id
149736          , p_ae_header_id             => l_ae_header_id 
149737 , p_source_39 => p_source_39
149738          , x_transaction_coa_id       => l_adr_transaction_coa_id
149739          , x_accounting_coa_id        => l_adr_accounting_coa_id
149740          , x_value_type_code          => l_adr_value_type_code
149741          , p_side                     => 'NA'
149742    );
149743 
149744    xla_ae_lines_pkg.set_ccid(
149745     p_code_combination_id          => l_ccid
149746   , p_value_type_code              => l_adr_value_type_code
149747   , p_transaction_coa_id           => l_adr_transaction_coa_id
149748   , p_accounting_coa_id            => l_adr_accounting_coa_id
149749   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
149750   , p_adr_type_code                => 'S'
149751   , p_component_type               => l_component_type
149752   , p_component_code               => l_component_code
149753   , p_component_type_code          => l_component_type_code
149754   , p_component_appl_id            => l_component_appl_id
149755   , p_amb_context_code             => l_amb_context_code
149756   , p_side                         => 'NA'
149757   );
149758 
149759 
149760    --
149761    --
149762    END IF;
149763    --
149764    -- Bug 4922099
149765    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
149766           (NVL(l_enc_upg_option, 'N') = 'O')
149767         ) AND
149768         (l_bflow_method_code = 'PRIOR_ENTRY')
149769       )
149770    THEN
149771       IF
149772       --
149773       1 = 2
149774       --
149775       THEN
149776       xla_accounting_err_pkg.build_message
149780                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
149777                                     (p_appli_s_name            => 'XLA'
149778                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
149779                                     ,p_token_1                 => 'LINE_NUMBER'
149781                                     ,p_token_2                 => 'LINE_TYPE_NAME'
149782                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
149783                                                                              l_component_type
149784                                                                             ,l_component_code
149785                                                                             ,l_component_type_code
149786                                                                             ,l_component_appl_id
149787                                                                             ,l_amb_context_code
149788                                                                             ,l_entity_code
149789                                                                             ,l_event_class_code
149790                                                                            )
149791                                     ,p_token_3                 => 'OWNER'
149792                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
149793                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
149794                                                                           ,p_lookup_code    => l_component_type_code
149795                                                                          )
149796                                     ,p_token_4                 => 'PRODUCT_NAME'
149797                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
149798                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
149799                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
149800                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
149801                                     ,p_ae_header_id            =>  NULL
149802                                        );
149803 
149804         IF (C_LEVEL_ERROR>= g_log_level) THEN
149805                  trace
149806                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
149807                       ,p_level    => C_LEVEL_ERROR
149808                       ,p_module   => l_log_module);
149809         END IF;
149810       END IF;
149811    END IF;
149812    --
149813    --
149814    ------------------------------------------------------------------------------------------------
149815    -- 4219869 Business Flow
149816    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
149817    -- Prior Entry.  Currently, the following code is always generated.
149818    ------------------------------------------------------------------------------------------------
149819    XLA_AE_LINES_PKG.ValidateCurrentLine;
149820 
149821    ------------------------------------------------------------------------------------
149822    -- 4219869 Business Flow
149823    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
149824    ------------------------------------------------------------------------------------
149825    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
149826 
149827    ----------------------------------------------------------------------------------
149828    -- 4219869 Business Flow
149829    -- Update journal entry status -- Need to generate this within IF <condition>
149830    ----------------------------------------------------------------------------------
149831    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
149832          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
149833          ,p_balance_type_code => l_balance_type_code
149834          );
149835 
149836    -------------------------------------------------------------------------------------------
149837    -- 4262811 - Generate the Accrual Reversal lines
149838    -------------------------------------------------------------------------------------------
149839    BEGIN
149840       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
149841                               (g_array_event(p_event_id).array_value_num('header_index'));
149842       IF l_acc_rev_flag IS NULL THEN
149843          l_acc_rev_flag := 'N';
149844       END IF;
149845    EXCEPTION
149846       WHEN OTHERS THEN
149847          l_acc_rev_flag := 'N';
149848    END;
149849    --
149850    IF (l_acc_rev_flag = 'Y') THEN
149851 
149852        -- 4645092  ------------------------------------------------------------------------------
149853        -- To allow MPA report to determine if it should generate report process
149854        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
149855        ------------------------------------------------------------------------------------------
149856 
149857        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
149858        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
149859    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
149860    -- call ADRs
149861    -- Bug 4922099
149862    --
149863    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
149864         (NVL(l_actual_upg_option, 'N') = 'O') OR
149865         (NVL(l_enc_upg_option, 'N') = 'O')
149866       )
149867    THEN
149868    NULL;
149869    --
149870    --
149871    
149872   l_ccid := AcctDerRule_42(
149873            p_application_id           => p_application_id
149877          , x_accounting_coa_id        => l_adr_accounting_coa_id
149874          , p_ae_header_id             => l_ae_header_id 
149875 , p_source_39 => p_source_39
149876          , x_transaction_coa_id       => l_adr_transaction_coa_id
149878          , x_value_type_code          => l_adr_value_type_code
149879          , p_side                     => 'NA'
149880    );
149881 
149882    xla_ae_lines_pkg.set_ccid(
149883     p_code_combination_id          => l_ccid
149884   , p_value_type_code              => l_adr_value_type_code
149885   , p_transaction_coa_id           => l_adr_transaction_coa_id
149886   , p_accounting_coa_id            => l_adr_accounting_coa_id
149887   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
149888   , p_adr_type_code                => 'S'
149889   , p_component_type               => l_component_type
149890   , p_component_code               => l_component_code
149891   , p_component_type_code          => l_component_type_code
149892   , p_component_appl_id            => l_component_appl_id
149893   , p_amb_context_code             => l_amb_context_code
149894   , p_side                         => 'NA'
149895   );
149896 
149897 
149898    --
149899    --
149900    END IF;
149901 
149902        --
149903        -- Update the line information that should be overwritten
149904        --
149905        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
149906                                          p_header_num   => 1);
149907        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
149908 
149909        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
149910 
149911        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
149912           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
149913        END IF;
149914 
149915       --
149916       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
149917       --
149918       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
149919           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
149920       ELSE
149921           ---------------------------------------------------------------------------------------------------
149922           -- 4262811a Switch Sign
149923           ---------------------------------------------------------------------------------------------------
149924           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
149925           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
149926                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
149927           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
149928                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
149929           -- 5132302
149930           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
149931                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
149932 
149933       END IF;
149934 
149935       -- 4955764
149936       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
149937       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
149938 
149939 
149940       XLA_AE_LINES_PKG.ValidateCurrentLine;
149941       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
149942 
149943       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
149944                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
149945                ,p_balance_type_code => l_balance_type_code);
149946 
149947    END IF;
149948 
149949    -----------------------------------------------------------------------------------------
149950    -- 4262811 Multiperiod Accounting
149951    -----------------------------------------------------------------------------------------
149952      -- No MPA option is assigned.
149953 
149954 
149955 END IF;
149956 END IF;
149957 --
149958 
149959 --
149960 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
149961    trace
149962       (p_msg      => 'END of AcctLineType_245'
149963       ,p_level    => C_LEVEL_PROCEDURE
149964       ,p_module   => l_log_module);
149965 END IF;
149966 --
149967 EXCEPTION
149968   WHEN xla_exceptions_pkg.application_exception THEN
149969       RAISE;
149970   WHEN OTHERS THEN
149971        xla_exceptions_pkg.raise_message
149972            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_245');
149973 END AcctLineType_245;
149974 --
149975 
149976 ---------------------------------------
149977 --
149978 -- PRIVATE FUNCTION
149979 --         AcctLineType_246
149980 --
149981 ---------------------------------------
149982 PROCEDURE AcctLineType_246 (
149983   p_application_id        IN NUMBER
149984  ,p_event_id              IN NUMBER
149985  ,p_calculate_acctd_flag  IN VARCHAR2
149986  ,p_calculate_g_l_flag    IN VARCHAR2
149987  ,p_actual_flag           IN OUT VARCHAR2
149988  ,p_balance_type_code     OUT VARCHAR2
149989  ,p_gain_or_loss_ref      OUT VARCHAR2
149990  
149991 --Invoice Distribution Description
149992  , p_source_1            IN VARCHAR2
149993 --Invoice Distribution Ledger Amount
149994  , p_source_9            IN NUMBER
149995 --Invoice Distribution Type
149996  , p_source_21            IN VARCHAR2
149997  , p_source_21_meaning    IN VARCHAR2
149998 --Self-Assessed Tax Liability Account
150002 --Distribution Link Type
149999  , p_source_39            IN NUMBER
150000 --Accounting Reversal Indicator
150001  , p_source_41            IN VARCHAR2
150003  , p_source_43            IN VARCHAR2
150004 --Allocation to Main Distribution Identifier
150005  , p_source_45            IN NUMBER
150006 --Invoice Identifier
150007  , p_source_46            IN NUMBER
150008 --Invoice Distribution Identifier
150009  , p_source_52            IN NUMBER
150010 --Payables Encumbrance Upgrade Credit Account
150011  , p_source_53            IN NUMBER
150012 --Payables Encumbrance Upgrade Credit Amount
150013  , p_source_54            IN NUMBER
150014 --Invoice Currency Code
150015  , p_source_55            IN VARCHAR2
150016 --Payables Encumbrance Upgrade Credit Base Amount
150017  , p_source_56            IN NUMBER
150018 --Payables Encumbrance Upgrade Debit Account
150019  , p_source_57            IN NUMBER
150020 --Payables Encumbrance Upgrade Debit Amount
150021  , p_source_58            IN NUMBER
150022 --Payables Encumbrance Upgrade Debit Base Amount
150023  , p_source_59            IN NUMBER
150024 --Payables Encumbrance Upgrade Option
150025  , p_source_60            IN VARCHAR2
150026 --Invoice Distribution Amount
150027  , p_source_61            IN NUMBER
150028 --Deferred Accounting End Date
150029  , p_source_65            IN DATE
150030 --Deferred Accounting Option
150031  , p_source_66            IN VARCHAR2
150032 --Deferred Accounting Start Date
150033  , p_source_67            IN DATE
150034 --Override Accounted Amount Indicator
150035  , p_source_68            IN VARCHAR2
150036  , p_source_68_meaning    IN VARCHAR2
150037 --Invoice Supplier Identifier
150038  , p_source_69            IN NUMBER
150039 --Invoice Supplier Site Identifier
150040  , p_source_70            IN NUMBER
150041 --Third Party Type
150042  , p_source_71            IN VARCHAR2
150043 --Parent Reversal Identifier
150044  , p_source_72            IN NUMBER
150045 --Invoice Distribution Statistical Amount
150046  , p_source_73            IN NUMBER
150047 --Invoice Distribution Tax Line Identifier
150048  , p_source_74            IN NUMBER
150049 --Invoice Distribution Tax Distribution Identifier from Tax
150050  , p_source_75            IN NUMBER
150051 --Invoice Distribution Summary Tax Line Identifier
150052  , p_source_76            IN NUMBER
150053 --Payables Upgrade Credit Encumbrance Type Identifier
150054  , p_source_77            IN NUMBER
150055 --Payables Upgrade Debit Encumbrance Type Identifier
150056  , p_source_78            IN NUMBER
150057 --Business Flow Accounts Payable Application Identifier
150058  , p_source_79            IN NUMBER
150059 --Business Flow Invoice Distribution Type
150060  , p_source_80            IN VARCHAR2
150061 --Business Flow Invoice Entity Code
150062  , p_source_81            IN VARCHAR2
150063 --Business Flow Invoice Distribution Identifier
150064  , p_source_82            IN NUMBER
150065 --Business Flow Invoice Identifier
150066  , p_source_83            IN NUMBER
150067 --Self-Assessed Tax Flag
150068  , p_source_135            IN VARCHAR2
150069  , p_source_135_meaning    IN VARCHAR2
150070 --Invoice Exchange Date
150071  , p_source_136            IN DATE
150072 --Invoice Exchange Rate
150073  , p_source_137            IN NUMBER
150074 --Invoice Exchange Rate Type
150075  , p_source_138            IN VARCHAR2
150076 )
150077 IS
150078 
150079 l_component_type              VARCHAR2(80);
150080 l_component_code              VARCHAR2(30);
150081 l_component_type_code         VARCHAR2(1);
150082 l_component_appl_id           INTEGER;
150083 l_amb_context_code            VARCHAR2(30);
150084 l_entity_code                 VARCHAR2(30);
150085 l_event_class_code            VARCHAR2(30);
150086 l_ae_header_id                NUMBER;
150087 l_event_type_code             VARCHAR2(30);
150088 l_line_definition_code        VARCHAR2(30);
150089 l_line_definition_owner_code  VARCHAR2(1);
150090 --
150091 -- adr variables
150092 l_segment                     VARCHAR2(30);
150093 l_ccid                        NUMBER;
150094 l_adr_transaction_coa_id      NUMBER;
150095 l_adr_accounting_coa_id       NUMBER;
150096 l_adr_flexfield_segment_code  VARCHAR2(30);
150097 l_adr_flex_value_set_id       NUMBER;
150098 l_adr_value_type_code         VARCHAR2(30);
150099 l_adr_value_combination_id    NUMBER;
150100 l_adr_value_segment_code      VARCHAR2(30);
150101 
150102 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
150103 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
150104 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
150105 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
150106 
150107 -- 4262811 Variables ------------------------------------------------------------------------------------------
150108 l_entered_amt_idx             NUMBER;
150109 l_accted_amt_idx              NUMBER;
150110 l_acc_rev_flag                VARCHAR2(1);
150111 l_accrual_line_num            NUMBER;
150112 l_tmp_amt                     NUMBER;
150113 l_acc_rev_natural_side_code   VARCHAR2(1);
150114 
150115 l_num_entries                 NUMBER;
150116 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
150117 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
150118 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
150119 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
150120 l_recog_line_1                NUMBER;
150121 l_recog_line_2                NUMBER;
150122 
150123 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
150124 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
150128 
150125 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
150126 
150127 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
150129 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
150130 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
150131 
150132 ---------------------------------------------------------------------------------------------------------------
150133 
150134 
150135 --
150136 -- bulk performance
150137 --
150138 l_balance_type_code           VARCHAR2(1);
150139 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
150140 l_log_module                  VARCHAR2(240);
150141 
150142 --
150143 -- Upgrade strategy
150144 --
150145 l_actual_upg_option           VARCHAR2(1);
150146 l_enc_upg_option           VARCHAR2(1);
150147 
150148 --
150149 BEGIN
150150 --
150151 IF g_log_enabled THEN
150152       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_246';
150153 END IF;
150154 --
150155 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
150156 
150157       trace
150158          (p_msg      => 'BEGIN of AcctLineType_246'
150159          ,p_level    => C_LEVEL_PROCEDURE
150160          ,p_module   => l_log_module);
150161 
150162 END IF;
150163 --
150164 l_component_type             := 'AMB_JLT';
150165 l_component_code             := 'AP_SELF_ASSESSED_TAX_CRL_INV';
150166 l_component_type_code        := 'S';
150167 l_component_appl_id          :=  200;
150168 l_amb_context_code           := 'DEFAULT';
150169 l_entity_code                := 'AP_INVOICES';
150170 l_event_class_code           := 'INVOICES';
150171 l_event_type_code            := 'INVOICES_ALL';
150172 l_line_definition_owner_code := 'S';
150173 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
150174 --
150175 l_balance_type_code          := 'A';
150176 l_segment                     := NULL;
150177 l_ccid                        := NULL;
150178 l_adr_transaction_coa_id      := NULL;
150179 l_adr_accounting_coa_id       := NULL;
150180 l_adr_flexfield_segment_code  := NULL;
150181 l_adr_flex_value_set_id       := NULL;
150182 l_adr_value_type_code         := NULL;
150183 l_adr_value_combination_id    := NULL;
150184 l_adr_value_segment_code      := NULL;
150185 
150186 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
150187 l_bflow_class_code           := '';    -- 4219869 Business Flow
150188 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
150189 l_budgetary_control_flag     := 'N';
150190 
150191 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
150192 l_bflow_applied_to_amt       := NULL; -- 5132302
150193 l_entered_amt_idx            := NULL;          -- 4262811
150194 l_accted_amt_idx             := NULL;          -- 4262811
150195 l_acc_rev_flag               := NULL;          -- 4262811
150196 l_accrual_line_num           := NULL;          -- 4262811
150197 l_tmp_amt                    := NULL;          -- 4262811
150198 --
150199  
150200 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
150201     l_balance_type_code <> 'B' THEN
150202 IF (NVL(p_source_21,'
150203 ') =  'REC_TAX' OR 
150204 NVL(p_source_21,'
150205 ') =  'NONREC_TAX') AND 
150206 NVL(p_source_135,'
150207 ') =  'Y'
150208  THEN 
150209 
150210    --
150211    XLA_AE_LINES_PKG.SetNewLine;
150212 
150213    p_balance_type_code          := l_balance_type_code;
150214    -- set the flag so later we will know whether the gain loss line needs to be created
150215    
150216    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
150217      p_actual_flag :='A';
150218    END IF;
150219 
150220    --
150221    -- bulk performance
150222    --
150223    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
150224                                       p_header_num   => 0); -- 4262811
150225    --
150226    -- set accounting line options
150227    --
150228    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
150229            p_natural_side_code          => 'C'
150230          , p_gain_or_loss_flag          => 'N'
150231          , p_gl_transfer_mode_code      => 'S'
150232          , p_acct_entry_type_code       => 'A'
150233          , p_switch_side_flag           => 'Y'
150234          , p_merge_duplicate_code       => 'A'
150235          );
150236    --
150237    l_acc_rev_natural_side_code := 'D';  -- 4262811
150238    -- 
150239    --
150240    -- set accounting line type info
150241    --
150242    xla_ae_lines_pkg.SetAcctLineType
150243       (p_component_type             => l_component_type
150244       ,p_event_type_code            => l_event_type_code
150245       ,p_line_definition_owner_code => l_line_definition_owner_code
150246       ,p_line_definition_code       => l_line_definition_code
150247       ,p_accounting_line_code       => l_component_code
150248       ,p_accounting_line_type_code  => l_component_type_code
150249       ,p_accounting_line_appl_id    => l_component_appl_id
150250       ,p_amb_context_code           => l_amb_context_code
150251       ,p_entity_code                => l_entity_code
150252       ,p_event_class_code           => l_event_class_code);
150253    --
150254    -- set accounting class
150255    --
150256    xla_ae_lines_pkg.SetAcctClass(
150257            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
150261    --
150258          , p_ae_header_id           => l_ae_header_id
150259          );
150260 
150262    -- set rounding class
150263    --
150264    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
150265                       'SELF_ASSESSED_TAX';
150266 
150267    --
150268    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
150269    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
150270    --
150271    -- bulk performance
150272    --
150273    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
150274 
150275    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
150276       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
150277 
150278    -- 4955764
150279    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
150280       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
150281 
150282    -- 4458381 Public Sector Enh
150283    
150284    --
150285    -- set accounting attributes for the line type
150286    --
150287    l_entered_amt_idx := 24;
150288    l_accted_amt_idx  := 29;
150289    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
150290    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
150291    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
150292    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
150293    l_rec_acct_attrs.array_num_value(2)  := 
150294 xla_ae_sources_pkg.GetSystemSourceNum(
150295    p_source_code           => 'XLA_EVENT_APPL_ID'
150296  , p_source_type_code      => 'Y'
150297  , p_source_application_id =>  602
150298 );
150299    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
150300    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
150301    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
150302    l_rec_acct_attrs.array_char_value(4)  := 
150303 xla_ae_sources_pkg.GetSystemSourceChar(
150304    p_source_code           => 'XLA_ENTITY_CODE'
150305  , p_source_type_code      => 'Y'
150306  , p_source_application_id =>  602
150307 );
150308    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
150309    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
150310    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
150311    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
150312    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
150313    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
150314    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
150315    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
150316    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
150317    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
150318    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
150319    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
150320    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
150321    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
150322    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
150323    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
150324    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
150325    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
150326    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
150327    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
150328    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
150329    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
150330    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
150331    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
150332    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
150333    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
150334    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
150335    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
150336    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
150337    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
150338    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
150339    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
150340    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
150341    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
150342    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
150343    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
150344    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
150345    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
150349    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
150346    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
150347    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
150348    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
150350    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
150351    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
150352    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
150353    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
150354    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
150355    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
150356    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
150357    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
150358    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
150359    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
150360    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
150361    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
150362    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
150363    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
150364    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
150365    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
150366    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
150367    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
150368    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
150369    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
150370    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
150371    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
150372    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
150373    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
150374    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
150378    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
150375    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
150376    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
150377    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
150379    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
150380    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
150381    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
150382    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
150383    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
150384    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
150385    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
150386    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
150387    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
150388 
150389    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
150390    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
150391 
150392    ---------------------------------------------------------------------------------------------------------------
150393    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
150394    ---------------------------------------------------------------------------------------------------------------
150395    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
150396 
150397    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
150398    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
150399 
150400    IF xla_accounting_cache_pkg.GetValueChar
150401          (p_source_code         => 'LEDGER_CATEGORY_CODE'
150402          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
150403    AND l_bflow_method_code = 'PRIOR_ENTRY'
150404 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
150405    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
150406          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
150407        )
150408    THEN
150409          xla_ae_lines_pkg.BflowUpgEntry
150410            (p_business_method_code    => l_bflow_method_code
150411            ,p_business_class_code     => l_bflow_class_code
150412            ,p_balance_type            => l_balance_type_code);
150413    ELSE
150414       NULL;
150415 -- No business flow processing for business flow method of NONE.
150416    END IF;
150417 
150418    --
150419    -- call analytical criteria
150420    --
150421    
150422    --
150423    -- call description
150424    --
150425    
150426 xla_ae_lines_pkg.SetLineDescription(
150427    p_ae_header_id => l_ae_header_id
150428   ,p_description  => Description_2 (
150429      p_application_id         => p_application_id
150433 );
150430    , p_ae_header_id           => l_ae_header_id 
150431 , p_source_1 => p_source_1
150432    )
150434 
150435 
150436    --
150437    -- call ADRs
150438    -- Bug 4922099
150439    --
150440    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
150441         (NVL(l_actual_upg_option, 'N') = 'O') OR
150442         (NVL(l_enc_upg_option, 'N') = 'O')
150443       )
150444    THEN
150445    NULL;
150446    --
150447    --
150448    
150449   l_ccid := AcctDerRule_42(
150450            p_application_id           => p_application_id
150451          , p_ae_header_id             => l_ae_header_id 
150452 , p_source_39 => p_source_39
150453          , x_transaction_coa_id       => l_adr_transaction_coa_id
150454          , x_accounting_coa_id        => l_adr_accounting_coa_id
150455          , x_value_type_code          => l_adr_value_type_code
150456          , p_side                     => 'NA'
150457    );
150458 
150459    xla_ae_lines_pkg.set_ccid(
150460     p_code_combination_id          => l_ccid
150461   , p_value_type_code              => l_adr_value_type_code
150462   , p_transaction_coa_id           => l_adr_transaction_coa_id
150463   , p_accounting_coa_id            => l_adr_accounting_coa_id
150464   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
150465   , p_adr_type_code                => 'S'
150466   , p_component_type               => l_component_type
150467   , p_component_code               => l_component_code
150468   , p_component_type_code          => l_component_type_code
150469   , p_component_appl_id            => l_component_appl_id
150470   , p_amb_context_code             => l_amb_context_code
150471   , p_side                         => 'NA'
150472   );
150473 
150474 
150475    --
150476    --
150477    END IF;
150478    --
150479    -- Bug 4922099
150480    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
150481           (NVL(l_enc_upg_option, 'N') = 'O')
150482         ) AND
150483         (l_bflow_method_code = 'PRIOR_ENTRY')
150484       )
150485    THEN
150486       IF
150487       --
150488       1 = 2
150489       --
150490       THEN
150491       xla_accounting_err_pkg.build_message
150492                                     (p_appli_s_name            => 'XLA'
150493                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
150494                                     ,p_token_1                 => 'LINE_NUMBER'
150495                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
150496                                     ,p_token_2                 => 'LINE_TYPE_NAME'
150497                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
150498                                                                              l_component_type
150499                                                                             ,l_component_code
150500                                                                             ,l_component_type_code
150501                                                                             ,l_component_appl_id
150502                                                                             ,l_amb_context_code
150503                                                                             ,l_entity_code
150504                                                                             ,l_event_class_code
150505                                                                            )
150506                                     ,p_token_3                 => 'OWNER'
150507                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
150508                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
150509                                                                           ,p_lookup_code    => l_component_type_code
150513                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
150510                                                                          )
150511                                     ,p_token_4                 => 'PRODUCT_NAME'
150512                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
150514                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
150515                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
150516                                     ,p_ae_header_id            =>  NULL
150517                                        );
150518 
150522                       ,p_level    => C_LEVEL_ERROR
150519         IF (C_LEVEL_ERROR>= g_log_level) THEN
150520                  trace
150521                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
150523                       ,p_module   => l_log_module);
150524         END IF;
150525       END IF;
150526    END IF;
150527    --
150528    --
150529    ------------------------------------------------------------------------------------------------
150530    -- 4219869 Business Flow
150531    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
150532    -- Prior Entry.  Currently, the following code is always generated.
150533    ------------------------------------------------------------------------------------------------
150534    XLA_AE_LINES_PKG.ValidateCurrentLine;
150535 
150536    ------------------------------------------------------------------------------------
150537    -- 4219869 Business Flow
150538    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
150539    ------------------------------------------------------------------------------------
150540    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
150541 
150542    ----------------------------------------------------------------------------------
150543    -- 4219869 Business Flow
150544    -- Update journal entry status -- Need to generate this within IF <condition>
150545    ----------------------------------------------------------------------------------
150546    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
150547          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
150548          ,p_balance_type_code => l_balance_type_code
150549          );
150550 
150551    -------------------------------------------------------------------------------------------
150552    -- 4262811 - Generate the Accrual Reversal lines
150553    -------------------------------------------------------------------------------------------
150554    BEGIN
150555       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
150556                               (g_array_event(p_event_id).array_value_num('header_index'));
150557       IF l_acc_rev_flag IS NULL THEN
150558          l_acc_rev_flag := 'N';
150559       END IF;
150560    EXCEPTION
150561       WHEN OTHERS THEN
150562          l_acc_rev_flag := 'N';
150563    END;
150564    --
150565    IF (l_acc_rev_flag = 'Y') THEN
150566 
150567        -- 4645092  ------------------------------------------------------------------------------
150568        -- To allow MPA report to determine if it should generate report process
150569        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
150570        ------------------------------------------------------------------------------------------
150571 
150572        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
150573        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
150574    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
150575    -- call ADRs
150576    -- Bug 4922099
150577    --
150578    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
150579         (NVL(l_actual_upg_option, 'N') = 'O') OR
150580         (NVL(l_enc_upg_option, 'N') = 'O')
150581       )
150582    THEN
150583    NULL;
150584    --
150585    --
150586    
150587   l_ccid := AcctDerRule_42(
150588            p_application_id           => p_application_id
150589          , p_ae_header_id             => l_ae_header_id 
150590 , p_source_39 => p_source_39
150591          , x_transaction_coa_id       => l_adr_transaction_coa_id
150592          , x_accounting_coa_id        => l_adr_accounting_coa_id
150593          , x_value_type_code          => l_adr_value_type_code
150594          , p_side                     => 'NA'
150595    );
150596 
150597    xla_ae_lines_pkg.set_ccid(
150598     p_code_combination_id          => l_ccid
150599   , p_value_type_code              => l_adr_value_type_code
150600   , p_transaction_coa_id           => l_adr_transaction_coa_id
150601   , p_accounting_coa_id            => l_adr_accounting_coa_id
150602   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
150603   , p_adr_type_code                => 'S'
150604   , p_component_type               => l_component_type
150605   , p_component_code               => l_component_code
150606   , p_component_type_code          => l_component_type_code
150607   , p_component_appl_id            => l_component_appl_id
150608   , p_amb_context_code             => l_amb_context_code
150609   , p_side                         => 'NA'
150610   );
150611 
150612 
150613    --
150614    --
150615    END IF;
150616 
150617        --
150618        -- Update the line information that should be overwritten
150619        --
150620        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
150621                                          p_header_num   => 1);
150622        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
150623 
150624        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
150625 
150626        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
150627           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
150628        END IF;
150629 
150630       --
150631       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
150632       --
150633       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
150634           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
150635       ELSE
150639           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
150636           ---------------------------------------------------------------------------------------------------
150637           -- 4262811a Switch Sign
150638           ---------------------------------------------------------------------------------------------------
150643                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
150640           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
150641                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
150642           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
150644           -- 5132302
150645           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
150646                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
150647 
150648       END IF;
150649 
150650       -- 4955764
150651       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
150652       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
150653 
150654 
150655       XLA_AE_LINES_PKG.ValidateCurrentLine;
150656       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
150657 
150658       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
150659                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
150660                ,p_balance_type_code => l_balance_type_code);
150661 
150662    END IF;
150663 
150664    -----------------------------------------------------------------------------------------
150665    -- 4262811 Multiperiod Accounting
150666    -----------------------------------------------------------------------------------------
150667      -- No MPA option is assigned.
150668 
150669 
150670 END IF;
150671 END IF;
150672 --
150673 
150674 --
150675 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
150676    trace
150677       (p_msg      => 'END of AcctLineType_246'
150678       ,p_level    => C_LEVEL_PROCEDURE
150679       ,p_module   => l_log_module);
150680 END IF;
150681 --
150682 EXCEPTION
150683   WHEN xla_exceptions_pkg.application_exception THEN
150684       RAISE;
150685   WHEN OTHERS THEN
150686        xla_exceptions_pkg.raise_message
150687            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_246');
150688 END AcctLineType_246;
150689 --
150690 
150691 ---------------------------------------
150692 --
150693 -- PRIVATE FUNCTION
150694 --         AcctLineType_247
150695 --
150696 ---------------------------------------
150697 PROCEDURE AcctLineType_247 (
150698   p_application_id        IN NUMBER
150699  ,p_event_id              IN NUMBER
150700  ,p_calculate_acctd_flag  IN VARCHAR2
150701  ,p_calculate_g_l_flag    IN VARCHAR2
150702  ,p_actual_flag           IN OUT VARCHAR2
150703  ,p_balance_type_code     OUT VARCHAR2
150704  ,p_gain_or_loss_ref      OUT VARCHAR2
150705  
150706 --Invoice Distribution Description
150707  , p_source_1            IN VARCHAR2
150708 --Invoice Distribution Ledger Amount
150709  , p_source_9            IN NUMBER
150710 --Invoice Distribution Type
150711  , p_source_21            IN VARCHAR2
150712  , p_source_21_meaning    IN VARCHAR2
150713 --Self-Assessed Tax Liability Account
150714  , p_source_39            IN NUMBER
150715 --Accounting Reversal Indicator
150716  , p_source_41            IN VARCHAR2
150717 --Distribution Link Type
150718  , p_source_43            IN VARCHAR2
150719 --Allocation to Main Distribution Identifier
150720  , p_source_45            IN NUMBER
150721 --Invoice Identifier
150722  , p_source_46            IN NUMBER
150723 --Invoice Distribution Identifier
150724  , p_source_52            IN NUMBER
150725 --Payables Encumbrance Upgrade Credit Account
150726  , p_source_53            IN NUMBER
150727 --Payables Encumbrance Upgrade Credit Amount
150728  , p_source_54            IN NUMBER
150729 --Invoice Currency Code
150730  , p_source_55            IN VARCHAR2
150731 --Payables Encumbrance Upgrade Credit Base Amount
150732  , p_source_56            IN NUMBER
150733 --Payables Encumbrance Upgrade Debit Account
150734  , p_source_57            IN NUMBER
150735 --Payables Encumbrance Upgrade Debit Amount
150736  , p_source_58            IN NUMBER
150737 --Payables Encumbrance Upgrade Debit Base Amount
150738  , p_source_59            IN NUMBER
150739 --Payables Encumbrance Upgrade Option
150740  , p_source_60            IN VARCHAR2
150741 --Invoice Distribution Amount
150742  , p_source_61            IN NUMBER
150743 --Deferred Accounting End Date
150744  , p_source_65            IN DATE
150748  , p_source_67            IN DATE
150745 --Deferred Accounting Option
150746  , p_source_66            IN VARCHAR2
150747 --Deferred Accounting Start Date
150749 --Override Accounted Amount Indicator
150750  , p_source_68            IN VARCHAR2
150751  , p_source_68_meaning    IN VARCHAR2
150752 --Invoice Supplier Identifier
150753  , p_source_69            IN NUMBER
150754 --Invoice Supplier Site Identifier
150755  , p_source_70            IN NUMBER
150756 --Third Party Type
150757  , p_source_71            IN VARCHAR2
150758 --Parent Reversal Identifier
150759  , p_source_72            IN NUMBER
150760 --Invoice Distribution Statistical Amount
150761  , p_source_73            IN NUMBER
150762 --Invoice Distribution Tax Line Identifier
150763  , p_source_74            IN NUMBER
150764 --Invoice Distribution Tax Distribution Identifier from Tax
150765  , p_source_75            IN NUMBER
150766 --Invoice Distribution Summary Tax Line Identifier
150767  , p_source_76            IN NUMBER
150768 --Payables Upgrade Credit Encumbrance Type Identifier
150769  , p_source_77            IN NUMBER
150770 --Payables Upgrade Debit Encumbrance Type Identifier
150771  , p_source_78            IN NUMBER
150772 --Business Flow Accounts Payable Application Identifier
150773  , p_source_79            IN NUMBER
150774 --Business Flow Invoice Distribution Type
150775  , p_source_80            IN VARCHAR2
150776 --Business Flow Invoice Entity Code
150777  , p_source_81            IN VARCHAR2
150778 --Business Flow Invoice Distribution Identifier
150779  , p_source_82            IN NUMBER
150780 --Business Flow Invoice Identifier
150781  , p_source_83            IN NUMBER
150782 --Self-Assessed Tax Flag
150783  , p_source_135            IN VARCHAR2
150784  , p_source_135_meaning    IN VARCHAR2
150785 --Invoice Exchange Date
150786  , p_source_136            IN DATE
150787 --Invoice Exchange Rate
150788  , p_source_137            IN NUMBER
150789 --Invoice Exchange Rate Type
150790  , p_source_138            IN VARCHAR2
150791 )
150792 IS
150793 
150794 l_component_type              VARCHAR2(80);
150795 l_component_code              VARCHAR2(30);
150796 l_component_type_code         VARCHAR2(1);
150797 l_component_appl_id           INTEGER;
150798 l_amb_context_code            VARCHAR2(30);
150799 l_entity_code                 VARCHAR2(30);
150803 l_line_definition_code        VARCHAR2(30);
150800 l_event_class_code            VARCHAR2(30);
150801 l_ae_header_id                NUMBER;
150802 l_event_type_code             VARCHAR2(30);
150804 l_line_definition_owner_code  VARCHAR2(1);
150805 --
150806 -- adr variables
150807 l_segment                     VARCHAR2(30);
150808 l_ccid                        NUMBER;
150809 l_adr_transaction_coa_id      NUMBER;
150810 l_adr_accounting_coa_id       NUMBER;
150811 l_adr_flexfield_segment_code  VARCHAR2(30);
150812 l_adr_flex_value_set_id       NUMBER;
150813 l_adr_value_type_code         VARCHAR2(30);
150814 l_adr_value_combination_id    NUMBER;
150815 l_adr_value_segment_code      VARCHAR2(30);
150816 
150817 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
150818 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
150819 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
150820 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
150821 
150822 -- 4262811 Variables ------------------------------------------------------------------------------------------
150823 l_entered_amt_idx             NUMBER;
150824 l_accted_amt_idx              NUMBER;
150825 l_acc_rev_flag                VARCHAR2(1);
150826 l_accrual_line_num            NUMBER;
150827 l_tmp_amt                     NUMBER;
150828 l_acc_rev_natural_side_code   VARCHAR2(1);
150829 
150830 l_num_entries                 NUMBER;
150831 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
150832 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
150833 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
150834 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
150835 l_recog_line_1                NUMBER;
150836 l_recog_line_2                NUMBER;
150837 
150838 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
150839 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
150840 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
150841 
150842 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
150843 
150844 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
150845 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
150846 
150850 --
150847 ---------------------------------------------------------------------------------------------------------------
150848 
150849 
150851 -- bulk performance
150852 --
150853 l_balance_type_code           VARCHAR2(1);
150854 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
150855 l_log_module                  VARCHAR2(240);
150856 
150857 --
150858 -- Upgrade strategy
150859 --
150860 l_actual_upg_option           VARCHAR2(1);
150861 l_enc_upg_option           VARCHAR2(1);
150862 
150863 --
150864 BEGIN
150865 --
150866 IF g_log_enabled THEN
150867       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_247';
150868 END IF;
150869 --
150870 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
150871 
150872       trace
150873          (p_msg      => 'BEGIN of AcctLineType_247'
150874          ,p_level    => C_LEVEL_PROCEDURE
150875          ,p_module   => l_log_module);
150876 
150877 END IF;
150878 --
150879 l_component_type             := 'AMB_JLT';
150880 l_component_code             := 'AP_SELF_ASSESSED_TAX_LIB_PP';
150881 l_component_type_code        := 'S';
150882 l_component_appl_id          :=  200;
150883 l_amb_context_code           := 'DEFAULT';
150884 l_entity_code                := 'AP_INVOICES';
150885 l_event_class_code           := 'PREPAYMENTS';
150886 l_event_type_code            := 'PREPAYMENTS_ALL';
150887 l_line_definition_owner_code := 'S';
150888 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
150889 --
150890 l_balance_type_code          := 'A';
150891 l_segment                     := NULL;
150892 l_ccid                        := NULL;
150893 l_adr_transaction_coa_id      := NULL;
150894 l_adr_accounting_coa_id       := NULL;
150895 l_adr_flexfield_segment_code  := NULL;
150896 l_adr_flex_value_set_id       := NULL;
150897 l_adr_value_type_code         := NULL;
150898 l_adr_value_combination_id    := NULL;
150899 l_adr_value_segment_code      := NULL;
150900 
150901 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
150902 l_bflow_class_code           := '';    -- 4219869 Business Flow
150903 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
150904 l_budgetary_control_flag     := 'N';
150905 
150906 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
150907 l_bflow_applied_to_amt       := NULL; -- 5132302
150908 l_entered_amt_idx            := NULL;          -- 4262811
150909 l_accted_amt_idx             := NULL;          -- 4262811
150910 l_acc_rev_flag               := NULL;          -- 4262811
150911 l_accrual_line_num           := NULL;          -- 4262811
150912 l_tmp_amt                    := NULL;          -- 4262811
150913 --
150914  
150915 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
150916     l_balance_type_code <> 'B' THEN
150917 IF (NVL(p_source_21,'
150918 ') =  'REC_TAX' OR 
150919 NVL(p_source_21,'
150920 ') =  'NONREC_TAX') AND 
150921 NVL(p_source_135,'
150922 ') =  'Y'
150923  THEN 
150924 
150925    --
150926    XLA_AE_LINES_PKG.SetNewLine;
150927 
150928    p_balance_type_code          := l_balance_type_code;
150929    -- set the flag so later we will know whether the gain loss line needs to be created
150930    
150931    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
150932      p_actual_flag :='A';
150933    END IF;
150934 
150935    --
150936    -- bulk performance
150937    --
150938    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
150939                                       p_header_num   => 0); -- 4262811
150940    --
150941    -- set accounting line options
150942    --
150943    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
150944            p_natural_side_code          => 'C'
150945          , p_gain_or_loss_flag          => 'N'
150946          , p_gl_transfer_mode_code      => 'S'
150947          , p_acct_entry_type_code       => 'A'
150948          , p_switch_side_flag           => 'Y'
150949          , p_merge_duplicate_code       => 'A'
150950          );
150951    --
150952    l_acc_rev_natural_side_code := 'D';  -- 4262811
150953    -- 
150954    --
150955    -- set accounting line type info
150956    --
150957    xla_ae_lines_pkg.SetAcctLineType
150958       (p_component_type             => l_component_type
150959       ,p_event_type_code            => l_event_type_code
150965       ,p_amb_context_code           => l_amb_context_code
150960       ,p_line_definition_owner_code => l_line_definition_owner_code
150961       ,p_line_definition_code       => l_line_definition_code
150962       ,p_accounting_line_code       => l_component_code
150963       ,p_accounting_line_type_code  => l_component_type_code
150964       ,p_accounting_line_appl_id    => l_component_appl_id
150966       ,p_entity_code                => l_entity_code
150967       ,p_event_class_code           => l_event_class_code);
150968    --
150969    -- set accounting class
150970    --
150971    xla_ae_lines_pkg.SetAcctClass(
150972            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
150973          , p_ae_header_id           => l_ae_header_id
150974          );
150975 
150976    --
150977    -- set rounding class
150978    --
150979    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
150980                       'SELF_ASSESSED_TAX';
150981 
150982    --
150983    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
150984    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
150985    --
150986    -- bulk performance
150987    --
150988    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
150989 
150990    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
150991       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
150992 
150993    -- 4955764
150994    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
150995       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
150996 
150997    -- 4458381 Public Sector Enh
150998    
150999    --
151000    -- set accounting attributes for the line type
151001    --
151002    l_entered_amt_idx := 23;
151003    l_accted_amt_idx  := 28;
151004    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
151005    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
151006    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
151007    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
151008    l_rec_acct_attrs.array_num_value(2)  := 
151009 xla_ae_sources_pkg.GetSystemSourceNum(
151010    p_source_code           => 'XLA_EVENT_APPL_ID'
151011  , p_source_type_code      => 'Y'
151012  , p_source_application_id =>  602
151013 );
151014    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
151015    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
151016    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
151017    l_rec_acct_attrs.array_char_value(4)  := 
151018 xla_ae_sources_pkg.GetSystemSourceChar(
151019    p_source_code           => 'XLA_ENTITY_CODE'
151020  , p_source_type_code      => 'Y'
151021  , p_source_application_id =>  602
151022 );
151023    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
151024    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
151025    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
151026    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
151027    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
151028    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
151029    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
151030    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
151031    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
151032    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
151033    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
151034    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
151035    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
151036    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
151037    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
151038    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
151039    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
151040    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
151041    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
151042    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
151043    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
151044    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
151045    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
151046    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
151047    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
151048    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
151049    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
151050    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
151051    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
151052    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
151053    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
151054    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
151055    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
151056    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
151057    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
151058    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
151059    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
151060    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
151061    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
151062    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
151063    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
151064    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
151068    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
151065    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
151066    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
151067    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
151069    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
151070    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
151071    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
151072    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
151073    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
151074    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
151075    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
151076    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
151077    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
151078    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
151079    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
151083    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
151080    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
151081    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
151082    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
151084    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
151085    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
151086    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
151087    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
151088    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
151089    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
151090    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
151091    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
151092    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
151093    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
151094    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
151095    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
151096    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
151097    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
151098    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
151099    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
151100    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
151101 
151102    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
151103    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
151104 
151105    ---------------------------------------------------------------------------------------------------------------
151106    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
151107    ---------------------------------------------------------------------------------------------------------------
151108    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
151109 
151110    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
151111    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
151112 
151113    IF xla_accounting_cache_pkg.GetValueChar
151114          (p_source_code         => 'LEDGER_CATEGORY_CODE'
151115          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
151116    AND l_bflow_method_code = 'PRIOR_ENTRY'
151117 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
151118    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
151119          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
151120        )
151121    THEN
151122          xla_ae_lines_pkg.BflowUpgEntry
151123            (p_business_method_code    => l_bflow_method_code
151124            ,p_business_class_code     => l_bflow_class_code
151125            ,p_balance_type            => l_balance_type_code);
151126    ELSE
151127       NULL;
151128 -- No business flow processing for business flow method of NONE.
151129    END IF;
151130 
151131    --
151132    -- call analytical criteria
151133    --
151134    
151135    --
151136    -- call description
151137    --
151138    
151139 xla_ae_lines_pkg.SetLineDescription(
151140    p_ae_header_id => l_ae_header_id
151141   ,p_description  => Description_2 (
151142      p_application_id         => p_application_id
151143    , p_ae_header_id           => l_ae_header_id 
151144 , p_source_1 => p_source_1
151145    )
151146 );
151147 
151148 
151149    --
151150    -- call ADRs
151151    -- Bug 4922099
151152    --
151153    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
151157    THEN
151154         (NVL(l_actual_upg_option, 'N') = 'O') OR
151155         (NVL(l_enc_upg_option, 'N') = 'O')
151156       )
151158    NULL;
151159    --
151160    --
151161    
151162   l_ccid := AcctDerRule_42(
151163            p_application_id           => p_application_id
151164          , p_ae_header_id             => l_ae_header_id 
151165 , p_source_39 => p_source_39
151166          , x_transaction_coa_id       => l_adr_transaction_coa_id
151167          , x_accounting_coa_id        => l_adr_accounting_coa_id
151168          , x_value_type_code          => l_adr_value_type_code
151169          , p_side                     => 'NA'
151170    );
151171 
151172    xla_ae_lines_pkg.set_ccid(
151173     p_code_combination_id          => l_ccid
151174   , p_value_type_code              => l_adr_value_type_code
151175   , p_transaction_coa_id           => l_adr_transaction_coa_id
151176   , p_accounting_coa_id            => l_adr_accounting_coa_id
151177   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
151178   , p_adr_type_code                => 'S'
151179   , p_component_type               => l_component_type
151180   , p_component_code               => l_component_code
151181   , p_component_type_code          => l_component_type_code
151182   , p_component_appl_id            => l_component_appl_id
151183   , p_amb_context_code             => l_amb_context_code
151184   , p_side                         => 'NA'
151185   );
151186 
151187 
151188    --
151189    --
151190    END IF;
151191    --
151192    -- Bug 4922099
151193    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
151194           (NVL(l_enc_upg_option, 'N') = 'O')
151195         ) AND
151196         (l_bflow_method_code = 'PRIOR_ENTRY')
151197       )
151198    THEN
151199       IF
151200       --
151201       1 = 2
151202       --
151203       THEN
151204       xla_accounting_err_pkg.build_message
151205                                     (p_appli_s_name            => 'XLA'
151206                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
151207                                     ,p_token_1                 => 'LINE_NUMBER'
151208                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
151209                                     ,p_token_2                 => 'LINE_TYPE_NAME'
151210                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
151211                                                                              l_component_type
151212                                                                             ,l_component_code
151213                                                                             ,l_component_type_code
151214                                                                             ,l_component_appl_id
151215                                                                             ,l_amb_context_code
151216                                                                             ,l_entity_code
151220                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
151217                                                                             ,l_event_class_code
151218                                                                            )
151219                                     ,p_token_3                 => 'OWNER'
151221                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
151222                                                                           ,p_lookup_code    => l_component_type_code
151223                                                                          )
151224                                     ,p_token_4                 => 'PRODUCT_NAME'
151225                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
151226                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
151227                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
151228                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
151229                                     ,p_ae_header_id            =>  NULL
151230                                        );
151231 
151232         IF (C_LEVEL_ERROR>= g_log_level) THEN
151233                  trace
151234                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
151235                       ,p_level    => C_LEVEL_ERROR
151236                       ,p_module   => l_log_module);
151237         END IF;
151238       END IF;
151239    END IF;
151240    --
151241    --
151245    -- Prior Entry.  Currently, the following code is always generated.
151242    ------------------------------------------------------------------------------------------------
151243    -- 4219869 Business Flow
151244    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
151246    ------------------------------------------------------------------------------------------------
151247    XLA_AE_LINES_PKG.ValidateCurrentLine;
151248 
151249    ------------------------------------------------------------------------------------
151250    -- 4219869 Business Flow
151251    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
151252    ------------------------------------------------------------------------------------
151253    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
151254 
151255    ----------------------------------------------------------------------------------
151256    -- 4219869 Business Flow
151257    -- Update journal entry status -- Need to generate this within IF <condition>
151258    ----------------------------------------------------------------------------------
151259    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
151260          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
151261          ,p_balance_type_code => l_balance_type_code
151262          );
151263 
151264    -------------------------------------------------------------------------------------------
151265    -- 4262811 - Generate the Accrual Reversal lines
151266    -------------------------------------------------------------------------------------------
151267    BEGIN
151268       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
151269                               (g_array_event(p_event_id).array_value_num('header_index'));
151270       IF l_acc_rev_flag IS NULL THEN
151271          l_acc_rev_flag := 'N';
151272       END IF;
151273    EXCEPTION
151274       WHEN OTHERS THEN
151275          l_acc_rev_flag := 'N';
151276    END;
151277    --
151278    IF (l_acc_rev_flag = 'Y') THEN
151279 
151280        -- 4645092  ------------------------------------------------------------------------------
151281        -- To allow MPA report to determine if it should generate report process
151282        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
151283        ------------------------------------------------------------------------------------------
151284 
151285        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
151286        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
151287    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
151288    -- call ADRs
151289    -- Bug 4922099
151290    --
151291    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
151292         (NVL(l_actual_upg_option, 'N') = 'O') OR
151293         (NVL(l_enc_upg_option, 'N') = 'O')
151294       )
151295    THEN
151296    NULL;
151297    --
151298    --
151299    
151300   l_ccid := AcctDerRule_42(
151301            p_application_id           => p_application_id
151302          , p_ae_header_id             => l_ae_header_id 
151303 , p_source_39 => p_source_39
151304          , x_transaction_coa_id       => l_adr_transaction_coa_id
151305          , x_accounting_coa_id        => l_adr_accounting_coa_id
151306          , x_value_type_code          => l_adr_value_type_code
151307          , p_side                     => 'NA'
151308    );
151309 
151310    xla_ae_lines_pkg.set_ccid(
151311     p_code_combination_id          => l_ccid
151312   , p_value_type_code              => l_adr_value_type_code
151313   , p_transaction_coa_id           => l_adr_transaction_coa_id
151314   , p_accounting_coa_id            => l_adr_accounting_coa_id
151315   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
151316   , p_adr_type_code                => 'S'
151317   , p_component_type               => l_component_type
151318   , p_component_code               => l_component_code
151319   , p_component_type_code          => l_component_type_code
151320   , p_component_appl_id            => l_component_appl_id
151321   , p_amb_context_code             => l_amb_context_code
151322   , p_side                         => 'NA'
151323   );
151324 
151325 
151326    --
151327    --
151328    END IF;
151329 
151330        --
151331        -- Update the line information that should be overwritten
151332        --
151333        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
151334                                          p_header_num   => 1);
151335        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
151336 
151337        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
151338 
151339        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
151340           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
151341        END IF;
151342 
151343       --
151344       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
151345       --
151346       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
151347           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
151348       ELSE
151349           ---------------------------------------------------------------------------------------------------
151350           -- 4262811a Switch Sign
151351           ---------------------------------------------------------------------------------------------------
151352           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
151356                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
151353           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
151354                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
151355           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
151357           -- 5132302
151358           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
151359                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
151360 
151361       END IF;
151362 
151363       -- 4955764
151364       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
151365       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
151366 
151367 
151368       XLA_AE_LINES_PKG.ValidateCurrentLine;
151369       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
151370 
151371       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
151372                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
151373                ,p_balance_type_code => l_balance_type_code);
151374 
151375    END IF;
151376 
151377    -----------------------------------------------------------------------------------------
151378    -- 4262811 Multiperiod Accounting
151379    -----------------------------------------------------------------------------------------
151380      -- No MPA option is assigned.
151381 
151382 
151383 END IF;
151384 END IF;
151385 --
151386 
151387 --
151388 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
151389    trace
151390       (p_msg      => 'END of AcctLineType_247'
151391       ,p_level    => C_LEVEL_PROCEDURE
151392       ,p_module   => l_log_module);
151393 END IF;
151394 --
151395 EXCEPTION
151396   WHEN xla_exceptions_pkg.application_exception THEN
151397       RAISE;
151398   WHEN OTHERS THEN
151399        xla_exceptions_pkg.raise_message
151400            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_247');
151401 END AcctLineType_247;
151402 --
151403 
151404 ---------------------------------------
151405 --
151406 -- PRIVATE FUNCTION
151407 --         AcctLineType_248
151408 --
151409 ---------------------------------------
151410 PROCEDURE AcctLineType_248 (
151411   p_application_id        IN NUMBER
151412  ,p_event_id              IN NUMBER
151413  ,p_calculate_acctd_flag  IN VARCHAR2
151414  ,p_calculate_g_l_flag    IN VARCHAR2
151415  ,p_actual_flag           IN OUT VARCHAR2
151416  ,p_balance_type_code     OUT VARCHAR2
151417  ,p_gain_or_loss_ref      OUT VARCHAR2
151418  
151419 --Invoice Distribution Description
151420  , p_source_1            IN VARCHAR2
151421 --Invoice Distribution Ledger Amount
151422  , p_source_9            IN NUMBER
151423 --Invoice Distribution Type
151424  , p_source_21            IN VARCHAR2
151425  , p_source_21_meaning    IN VARCHAR2
151426 --Self-Assessed Tax Account
151427  , p_source_38            IN NUMBER
151428 --Accounting Reversal Indicator
151429  , p_source_41            IN VARCHAR2
151430 --Distribution Link Type
151431  , p_source_43            IN VARCHAR2
151432 --Allocation to Main Distribution Identifier
151433  , p_source_45            IN NUMBER
151434 --Invoice Identifier
151435  , p_source_46            IN NUMBER
151436 --Invoice Distribution Identifier
151437  , p_source_52            IN NUMBER
151438 --Payables Encumbrance Upgrade Credit Account
151439  , p_source_53            IN NUMBER
151440 --Payables Encumbrance Upgrade Credit Amount
151441  , p_source_54            IN NUMBER
151442 --Invoice Currency Code
151443  , p_source_55            IN VARCHAR2
151444 --Payables Encumbrance Upgrade Credit Base Amount
151445  , p_source_56            IN NUMBER
151446 --Payables Encumbrance Upgrade Debit Account
151447  , p_source_57            IN NUMBER
151448 --Payables Encumbrance Upgrade Debit Amount
151449  , p_source_58            IN NUMBER
151450 --Payables Encumbrance Upgrade Debit Base Amount
151451  , p_source_59            IN NUMBER
151452 --Payables Encumbrance Upgrade Option
151453  , p_source_60            IN VARCHAR2
151454 --Invoice Distribution Amount
151455  , p_source_61            IN NUMBER
151456 --Purchase Order Exchange Rate Date
151457  , p_source_62            IN DATE
151458 --Purchase Order Exchange Rate
151459  , p_source_63            IN NUMBER
151460 --Purchase Order Exchange Rate Type
151461  , p_source_64            IN VARCHAR2
151462 --Deferred Accounting End Date
151463  , p_source_65            IN DATE
151464 --Deferred Accounting Option
151465  , p_source_66            IN VARCHAR2
151466 --Deferred Accounting Start Date
151467  , p_source_67            IN DATE
151468 --Override Accounted Amount Indicator
151469  , p_source_68            IN VARCHAR2
151470  , p_source_68_meaning    IN VARCHAR2
151471 --Invoice Supplier Identifier
151472  , p_source_69            IN NUMBER
151473 --Invoice Supplier Site Identifier
151474  , p_source_70            IN NUMBER
151475 --Third Party Type
151476  , p_source_71            IN VARCHAR2
151477 --Parent Reversal Identifier
151478  , p_source_72            IN NUMBER
151479 --Invoice Distribution Statistical Amount
151480  , p_source_73            IN NUMBER
151481 --Invoice Distribution Tax Line Identifier
151482  , p_source_74            IN NUMBER
151483 --Invoice Distribution Tax Distribution Identifier from Tax
151484  , p_source_75            IN NUMBER
151485 --Invoice Distribution Summary Tax Line Identifier
151489 --Payables Upgrade Debit Encumbrance Type Identifier
151486  , p_source_76            IN NUMBER
151487 --Payables Upgrade Credit Encumbrance Type Identifier
151488  , p_source_77            IN NUMBER
151490  , p_source_78            IN NUMBER
151491 --Business Flow Accounts Payable Application Identifier
151492  , p_source_79            IN NUMBER
151493 --Business Flow Invoice Distribution Type
151494  , p_source_80            IN VARCHAR2
151495 --Business Flow Invoice Entity Code
151496  , p_source_81            IN VARCHAR2
151500  , p_source_83            IN NUMBER
151497 --Business Flow Invoice Distribution Identifier
151498  , p_source_82            IN NUMBER
151499 --Business Flow Invoice Identifier
151501 --Accrue on Receipt Option
151502  , p_source_84            IN VARCHAR2
151503  , p_source_84_meaning    IN VARCHAR2
151504 --Self-Assessed Tax Flag
151505  , p_source_135            IN VARCHAR2
151506  , p_source_135_meaning    IN VARCHAR2
151507 )
151508 IS
151509 
151510 l_component_type              VARCHAR2(80);
151511 l_component_code              VARCHAR2(30);
151512 l_component_type_code         VARCHAR2(1);
151513 l_component_appl_id           INTEGER;
151514 l_amb_context_code            VARCHAR2(30);
151515 l_entity_code                 VARCHAR2(30);
151516 l_event_class_code            VARCHAR2(30);
151517 l_ae_header_id                NUMBER;
151518 l_event_type_code             VARCHAR2(30);
151519 l_line_definition_code        VARCHAR2(30);
151520 l_line_definition_owner_code  VARCHAR2(1);
151521 --
151522 -- adr variables
151523 l_segment                     VARCHAR2(30);
151524 l_ccid                        NUMBER;
151525 l_adr_transaction_coa_id      NUMBER;
151526 l_adr_accounting_coa_id       NUMBER;
151527 l_adr_flexfield_segment_code  VARCHAR2(30);
151528 l_adr_flex_value_set_id       NUMBER;
151529 l_adr_value_type_code         VARCHAR2(30);
151530 l_adr_value_combination_id    NUMBER;
151531 l_adr_value_segment_code      VARCHAR2(30);
151532 
151533 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
151534 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
151535 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
151536 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
151537 
151538 -- 4262811 Variables ------------------------------------------------------------------------------------------
151539 l_entered_amt_idx             NUMBER;
151540 l_accted_amt_idx              NUMBER;
151541 l_acc_rev_flag                VARCHAR2(1);
151542 l_accrual_line_num            NUMBER;
151543 l_tmp_amt                     NUMBER;
151544 l_acc_rev_natural_side_code   VARCHAR2(1);
151545 
151546 l_num_entries                 NUMBER;
151547 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
151548 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
151549 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
151550 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
151551 l_recog_line_1                NUMBER;
151552 l_recog_line_2                NUMBER;
151553 
151554 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
151555 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
151556 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
151557 
151558 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
151559 
151560 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
151561 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
151562 
151563 ---------------------------------------------------------------------------------------------------------------
151564 
151565 
151566 --
151567 -- bulk performance
151568 --
151569 l_balance_type_code           VARCHAR2(1);
151570 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
151571 l_log_module                  VARCHAR2(240);
151572 
151573 --
151574 -- Upgrade strategy
151575 --
151576 l_actual_upg_option           VARCHAR2(1);
151577 l_enc_upg_option           VARCHAR2(1);
151578 
151579 --
151580 BEGIN
151581 --
151582 IF g_log_enabled THEN
151583       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_248';
151584 END IF;
151585 --
151586 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
151587 
151588       trace
151589          (p_msg      => 'BEGIN of AcctLineType_248'
151590          ,p_level    => C_LEVEL_PROCEDURE
151591          ,p_module   => l_log_module);
151592 
151593 END IF;
151594 --
151595 l_component_type             := 'AMB_JLT';
151596 l_component_code             := 'AP_SELF_NONREC_ACCRUAL_PREPAY';
151600 l_entity_code                := 'AP_INVOICES';
151597 l_component_type_code        := 'S';
151598 l_component_appl_id          :=  200;
151599 l_amb_context_code           := 'DEFAULT';
151601 l_event_class_code           := 'PREPAYMENTS';
151602 l_event_type_code            := 'PREPAYMENTS_ALL';
151603 l_line_definition_owner_code := 'S';
151604 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
151605 --
151606 l_balance_type_code          := 'A';
151607 l_segment                     := NULL;
151608 l_ccid                        := NULL;
151609 l_adr_transaction_coa_id      := NULL;
151610 l_adr_accounting_coa_id       := NULL;
151611 l_adr_flexfield_segment_code  := NULL;
151612 l_adr_flex_value_set_id       := NULL;
151613 l_adr_value_type_code         := NULL;
151614 l_adr_value_combination_id    := NULL;
151615 l_adr_value_segment_code      := NULL;
151616 
151617 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
151618 l_bflow_class_code           := '';    -- 4219869 Business Flow
151619 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
151620 l_budgetary_control_flag     := 'N';
151621 
151622 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
151623 l_bflow_applied_to_amt       := NULL; -- 5132302
151624 l_entered_amt_idx            := NULL;          -- 4262811
151625 l_accted_amt_idx             := NULL;          -- 4262811
151626 l_acc_rev_flag               := NULL;          -- 4262811
151627 l_accrual_line_num           := NULL;          -- 4262811
151628 l_tmp_amt                    := NULL;          -- 4262811
151629 --
151630  
151631 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
151632     l_balance_type_code <> 'B' THEN
151633 IF NVL(p_source_21,'
151634 ') =  'NONREC_TAX' AND 
151635 NVL(p_source_135,'
151636 ') =  'Y' AND 
151637 NVL(p_source_84,'
151638 ') =  'Y'
151639  THEN 
151640 
151641    --
151642    XLA_AE_LINES_PKG.SetNewLine;
151643 
151644    p_balance_type_code          := l_balance_type_code;
151645    -- set the flag so later we will know whether the gain loss line needs to be created
151646    
151647    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
151648      p_actual_flag :='A';
151649    END IF;
151650 
151651    --
151652    -- bulk performance
151653    --
151654    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
151655                                       p_header_num   => 0); -- 4262811
151656    --
151657    -- set accounting line options
151658    --
151662          , p_gl_transfer_mode_code      => 'S'
151659    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
151660            p_natural_side_code          => 'D'
151661          , p_gain_or_loss_flag          => 'N'
151663          , p_acct_entry_type_code       => 'A'
151664          , p_switch_side_flag           => 'Y'
151665          , p_merge_duplicate_code       => 'A'
151666          );
151667    --
151668    l_acc_rev_natural_side_code := 'C';  -- 4262811
151669    -- 
151670    --
151671    -- set accounting line type info
151672    --
151673    xla_ae_lines_pkg.SetAcctLineType
151674       (p_component_type             => l_component_type
151675       ,p_event_type_code            => l_event_type_code
151676       ,p_line_definition_owner_code => l_line_definition_owner_code
151677       ,p_line_definition_code       => l_line_definition_code
151678       ,p_accounting_line_code       => l_component_code
151679       ,p_accounting_line_type_code  => l_component_type_code
151680       ,p_accounting_line_appl_id    => l_component_appl_id
151681       ,p_amb_context_code           => l_amb_context_code
151682       ,p_entity_code                => l_entity_code
151683       ,p_event_class_code           => l_event_class_code);
151684    --
151685    -- set accounting class
151686    --
151687    xla_ae_lines_pkg.SetAcctClass(
151688            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
151689          , p_ae_header_id           => l_ae_header_id
151690          );
151691 
151692    --
151693    -- set rounding class
151694    --
151695    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
151696                       'SELF_ASSESSED_TAX';
151697 
151698    --
151699    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
151700    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
151701    --
151702    -- bulk performance
151703    --
151704    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
151705 
151709    -- 4955764
151706    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
151707       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
151708 
151710    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
151711       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
151712 
151713    -- 4458381 Public Sector Enh
151714    
151715    --
151716    -- set accounting attributes for the line type
151717    --
151718    l_entered_amt_idx := 23;
151719    l_accted_amt_idx  := 28;
151720    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
151721    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
151722    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
151723    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
151724    l_rec_acct_attrs.array_num_value(2)  := 
151725 xla_ae_sources_pkg.GetSystemSourceNum(
151726    p_source_code           => 'XLA_EVENT_APPL_ID'
151727  , p_source_type_code      => 'Y'
151728  , p_source_application_id =>  602
151729 );
151730    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
151731    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
151732    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
151733    l_rec_acct_attrs.array_char_value(4)  := 
151734 xla_ae_sources_pkg.GetSystemSourceChar(
151735    p_source_code           => 'XLA_ENTITY_CODE'
151736  , p_source_type_code      => 'Y'
151737  , p_source_application_id =>  602
151738 );
151739    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
151740    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
151741    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
151742    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
151743    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
151744    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
151745    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
151746    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
151747    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
151748    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
151749    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
151750    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
151751    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
151752    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
151753    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
151754    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
151755    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
151756    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
151757    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
151758    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
151759    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
151760    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
151761    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
151762    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
151763    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
151764    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
151765    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
151766    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
151767    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
151768    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
151769    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
151770    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
151771    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
151772    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
151773    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
151774    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
151775    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
151776    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
151777    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
151778    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
151779    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
151780    l_rec_acct_attrs.array_date_value(25)  := p_source_62;
151781    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
151782    l_rec_acct_attrs.array_num_value(26)  := p_source_63;
151783    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
151789    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
151784    l_rec_acct_attrs.array_char_value(27)  := p_source_64;
151785    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
151786    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
151787    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
151788    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
151790    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
151791    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
151792    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
151793    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
151794    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
151795    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
151796    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
151797    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
151798    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
151799    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
151800    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
151801    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
151802    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
151803    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
151804    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
151805    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
151806    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
151807    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
151808    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
151809    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
151810    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
151811    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
151812    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
151813    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
151814    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
151815    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
151816    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
151817 
151818    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
151819    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
151820 
151821    ---------------------------------------------------------------------------------------------------------------
151822    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
151823    ---------------------------------------------------------------------------------------------------------------
151824    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
151825 
151826    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
151827    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
151828 
151829    IF xla_accounting_cache_pkg.GetValueChar
151830          (p_source_code         => 'LEDGER_CATEGORY_CODE'
151831          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
151832    AND l_bflow_method_code = 'PRIOR_ENTRY'
151833 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
151834    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
151835          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
151836        )
151837    THEN
151838          xla_ae_lines_pkg.BflowUpgEntry
151839            (p_business_method_code    => l_bflow_method_code
151840            ,p_business_class_code     => l_bflow_class_code
151841            ,p_balance_type            => l_balance_type_code);
151842    ELSE
151843       NULL;
151844 -- No business flow processing for business flow method of NONE.
151845    END IF;
151846 
151847    --
151848    -- call analytical criteria
151849    --
151850    
151851    --
151852    -- call description
151853    --
151854    
151855 xla_ae_lines_pkg.SetLineDescription(
151856    p_ae_header_id => l_ae_header_id
151857   ,p_description  => Description_2 (
151858      p_application_id         => p_application_id
151859    , p_ae_header_id           => l_ae_header_id 
151860 , p_source_1 => p_source_1
151861    )
151862 );
151863 
151864 
151865    --
151866    -- call ADRs
151867    -- Bug 4922099
151868    --
151869    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
151870         (NVL(l_actual_upg_option, 'N') = 'O') OR
151871         (NVL(l_enc_upg_option, 'N') = 'O')
151872       )
151873    THEN
151874    NULL;
151875    --
151876    --
151877    
151878   l_ccid := AcctDerRule_41(
151882          , x_transaction_coa_id       => l_adr_transaction_coa_id
151879            p_application_id           => p_application_id
151880          , p_ae_header_id             => l_ae_header_id 
151881 , p_source_38 => p_source_38
151883          , x_accounting_coa_id        => l_adr_accounting_coa_id
151884          , x_value_type_code          => l_adr_value_type_code
151885          , p_side                     => 'NA'
151886    );
151887 
151888    xla_ae_lines_pkg.set_ccid(
151889     p_code_combination_id          => l_ccid
151890   , p_value_type_code              => l_adr_value_type_code
151891   , p_transaction_coa_id           => l_adr_transaction_coa_id
151892   , p_accounting_coa_id            => l_adr_accounting_coa_id
151893   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
151894   , p_adr_type_code                => 'S'
151895   , p_component_type               => l_component_type
151896   , p_component_code               => l_component_code
151897   , p_component_type_code          => l_component_type_code
151898   , p_component_appl_id            => l_component_appl_id
151899   , p_amb_context_code             => l_amb_context_code
151900   , p_side                         => 'NA'
151901   );
151902 
151903 
151904    --
151905    --
151906    END IF;
151907    --
151908    -- Bug 4922099
151909    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
151910           (NVL(l_enc_upg_option, 'N') = 'O')
151911         ) AND
151912         (l_bflow_method_code = 'PRIOR_ENTRY')
151913       )
151914    THEN
151915       IF
151916       --
151917       1 = 2
151918       --
151919       THEN
151920       xla_accounting_err_pkg.build_message
151921                                     (p_appli_s_name            => 'XLA'
151922                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
151923                                     ,p_token_1                 => 'LINE_NUMBER'
151924                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
151928                                                                             ,l_component_code
151925                                     ,p_token_2                 => 'LINE_TYPE_NAME'
151926                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
151927                                                                              l_component_type
151929                                                                             ,l_component_type_code
151930                                                                             ,l_component_appl_id
151931                                                                             ,l_amb_context_code
151932                                                                             ,l_entity_code
151933                                                                             ,l_event_class_code
151934                                                                            )
151935                                     ,p_token_3                 => 'OWNER'
151936                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
151937                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
151938                                                                           ,p_lookup_code    => l_component_type_code
151939                                                                          )
151940                                     ,p_token_4                 => 'PRODUCT_NAME'
151941                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
151942                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
151943                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
151944                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
151945                                     ,p_ae_header_id            =>  NULL
151946                                        );
151947 
151948         IF (C_LEVEL_ERROR>= g_log_level) THEN
151949                  trace
151950                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
151951                       ,p_level    => C_LEVEL_ERROR
151952                       ,p_module   => l_log_module);
151953         END IF;
151954       END IF;
151955    END IF;
151956    --
151957    --
151958    ------------------------------------------------------------------------------------------------
151959    -- 4219869 Business Flow
151960    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
151961    -- Prior Entry.  Currently, the following code is always generated.
151962    ------------------------------------------------------------------------------------------------
151963    XLA_AE_LINES_PKG.ValidateCurrentLine;
151964 
151968    ------------------------------------------------------------------------------------
151965    ------------------------------------------------------------------------------------
151966    -- 4219869 Business Flow
151967    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
151969    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
151970 
151971    ----------------------------------------------------------------------------------
151972    -- 4219869 Business Flow
151973    -- Update journal entry status -- Need to generate this within IF <condition>
151974    ----------------------------------------------------------------------------------
151975    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
151976          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
151977          ,p_balance_type_code => l_balance_type_code
151978          );
151979 
151980    -------------------------------------------------------------------------------------------
151981    -- 4262811 - Generate the Accrual Reversal lines
151982    -------------------------------------------------------------------------------------------
151983    BEGIN
151984       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
151985                               (g_array_event(p_event_id).array_value_num('header_index'));
151986       IF l_acc_rev_flag IS NULL THEN
151987          l_acc_rev_flag := 'N';
151988       END IF;
151989    EXCEPTION
151990       WHEN OTHERS THEN
151991          l_acc_rev_flag := 'N';
151992    END;
151993    --
151994    IF (l_acc_rev_flag = 'Y') THEN
151995 
151996        -- 4645092  ------------------------------------------------------------------------------
151997        -- To allow MPA report to determine if it should generate report process
151998        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
151999        ------------------------------------------------------------------------------------------
152000 
152001        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
152002        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
152003    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
152004    -- call ADRs
152005    -- Bug 4922099
152006    --
152007    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
152008         (NVL(l_actual_upg_option, 'N') = 'O') OR
152009         (NVL(l_enc_upg_option, 'N') = 'O')
152010       )
152011    THEN
152012    NULL;
152013    --
152014    --
152015    
152016   l_ccid := AcctDerRule_41(
152017            p_application_id           => p_application_id
152018          , p_ae_header_id             => l_ae_header_id 
152019 , p_source_38 => p_source_38
152020          , x_transaction_coa_id       => l_adr_transaction_coa_id
152021          , x_accounting_coa_id        => l_adr_accounting_coa_id
152022          , x_value_type_code          => l_adr_value_type_code
152023          , p_side                     => 'NA'
152024    );
152025 
152026    xla_ae_lines_pkg.set_ccid(
152027     p_code_combination_id          => l_ccid
152028   , p_value_type_code              => l_adr_value_type_code
152029   , p_transaction_coa_id           => l_adr_transaction_coa_id
152030   , p_accounting_coa_id            => l_adr_accounting_coa_id
152031   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
152032   , p_adr_type_code                => 'S'
152033   , p_component_type               => l_component_type
152034   , p_component_code               => l_component_code
152035   , p_component_type_code          => l_component_type_code
152036   , p_component_appl_id            => l_component_appl_id
152037   , p_amb_context_code             => l_amb_context_code
152038   , p_side                         => 'NA'
152039   );
152040 
152041 
152042    --
152043    --
152044    END IF;
152045 
152046        --
152047        -- Update the line information that should be overwritten
152048        --
152052 
152049        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
152050                                          p_header_num   => 1);
152051        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
152053        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
152054 
152055        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
152056           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
152057        END IF;
152058 
152059       --
152060       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
152061       --
152062       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
152063           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
152064       ELSE
152065           ---------------------------------------------------------------------------------------------------
152066           -- 4262811a Switch Sign
152067           ---------------------------------------------------------------------------------------------------
152068           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
152069           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
152070                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
152071           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
152072                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
152073           -- 5132302
152074           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
152075                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
152076 
152077       END IF;
152078 
152079       -- 4955764
152080       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
152081       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
152082 
152083 
152084       XLA_AE_LINES_PKG.ValidateCurrentLine;
152085       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
152086 
152087       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
152088                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
152089                ,p_balance_type_code => l_balance_type_code);
152090 
152091    END IF;
152092 
152093    -----------------------------------------------------------------------------------------
152094    -- 4262811 Multiperiod Accounting
152095    -----------------------------------------------------------------------------------------
152096      -- No MPA option is assigned.
152097 
152098 
152099 END IF;
152100 END IF;
152101 --
152102 
152103 --
152104 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
152105    trace
152106       (p_msg      => 'END of AcctLineType_248'
152107       ,p_level    => C_LEVEL_PROCEDURE
152108       ,p_module   => l_log_module);
152109 END IF;
152110 --
152111 EXCEPTION
152112   WHEN xla_exceptions_pkg.application_exception THEN
152113       RAISE;
152114   WHEN OTHERS THEN
152115        xla_exceptions_pkg.raise_message
152116            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_248');
152117 END AcctLineType_248;
152118 --
152119 
152120 ---------------------------------------
152121 --
152122 -- PRIVATE FUNCTION
152123 --         AcctLineType_249
152124 --
152125 ---------------------------------------
152126 PROCEDURE AcctLineType_249 (
152127   p_application_id        IN NUMBER
152128  ,p_event_id              IN NUMBER
152129  ,p_calculate_acctd_flag  IN VARCHAR2
152130  ,p_calculate_g_l_flag    IN VARCHAR2
152131  ,p_actual_flag           IN OUT VARCHAR2
152132  ,p_balance_type_code     OUT VARCHAR2
152133  ,p_gain_or_loss_ref      OUT VARCHAR2
152134  
152135 --Invoice Distribution Description
152136  , p_source_1            IN VARCHAR2
152137 --Invoice Distribution Ledger Amount
152138  , p_source_9            IN NUMBER
152139 --Invoice Distribution Type
152140  , p_source_21            IN VARCHAR2
152141  , p_source_21_meaning    IN VARCHAR2
152142 --Self-Assessed Tax Account
152143  , p_source_38            IN NUMBER
152144 --Accounting Reversal Indicator
152145  , p_source_41            IN VARCHAR2
152146 --Distribution Link Type
152150 --Invoice Identifier
152147  , p_source_43            IN VARCHAR2
152148 --Allocation to Main Distribution Identifier
152149  , p_source_45            IN NUMBER
152151  , p_source_46            IN NUMBER
152152 --Invoice Distribution Identifier
152153  , p_source_52            IN NUMBER
152154 --Payables Encumbrance Upgrade Credit Account
152155  , p_source_53            IN NUMBER
152156 --Payables Encumbrance Upgrade Credit Amount
152157  , p_source_54            IN NUMBER
152158 --Invoice Currency Code
152159  , p_source_55            IN VARCHAR2
152160 --Payables Encumbrance Upgrade Credit Base Amount
152161  , p_source_56            IN NUMBER
152162 --Payables Encumbrance Upgrade Debit Account
152163  , p_source_57            IN NUMBER
152164 --Payables Encumbrance Upgrade Debit Amount
152165  , p_source_58            IN NUMBER
152166 --Payables Encumbrance Upgrade Debit Base Amount
152167  , p_source_59            IN NUMBER
152168 --Payables Encumbrance Upgrade Option
152169  , p_source_60            IN VARCHAR2
152170 --Invoice Distribution Amount
152171  , p_source_61            IN NUMBER
152172 --Purchase Order Exchange Rate Date
152173  , p_source_62            IN DATE
152174 --Purchase Order Exchange Rate
152175  , p_source_63            IN NUMBER
152176 --Purchase Order Exchange Rate Type
152177  , p_source_64            IN VARCHAR2
152178 --Deferred Accounting End Date
152179  , p_source_65            IN DATE
152180 --Deferred Accounting Option
152181  , p_source_66            IN VARCHAR2
152182 --Deferred Accounting Start Date
152183  , p_source_67            IN DATE
152184 --Override Accounted Amount Indicator
152185  , p_source_68            IN VARCHAR2
152186  , p_source_68_meaning    IN VARCHAR2
152187 --Invoice Supplier Identifier
152188  , p_source_69            IN NUMBER
152189 --Invoice Supplier Site Identifier
152190  , p_source_70            IN NUMBER
152191 --Third Party Type
152192  , p_source_71            IN VARCHAR2
152193 --Parent Reversal Identifier
152194  , p_source_72            IN NUMBER
152195 --Invoice Distribution Statistical Amount
152196  , p_source_73            IN NUMBER
152197 --Invoice Distribution Tax Line Identifier
152198  , p_source_74            IN NUMBER
152202  , p_source_76            IN NUMBER
152199 --Invoice Distribution Tax Distribution Identifier from Tax
152200  , p_source_75            IN NUMBER
152201 --Invoice Distribution Summary Tax Line Identifier
152203 --Payables Upgrade Credit Encumbrance Type Identifier
152204  , p_source_77            IN NUMBER
152205 --Payables Upgrade Debit Encumbrance Type Identifier
152206  , p_source_78            IN NUMBER
152207 --Business Flow Accounts Payable Application Identifier
152208  , p_source_79            IN NUMBER
152209 --Business Flow Invoice Distribution Type
152210  , p_source_80            IN VARCHAR2
152211 --Business Flow Invoice Entity Code
152212  , p_source_81            IN VARCHAR2
152213 --Business Flow Invoice Distribution Identifier
152214  , p_source_82            IN NUMBER
152215 --Business Flow Invoice Identifier
152216  , p_source_83            IN NUMBER
152217 --Accrue on Receipt Option
152218  , p_source_84            IN VARCHAR2
152219  , p_source_84_meaning    IN VARCHAR2
152220 --Self-Assessed Tax Flag
152221  , p_source_135            IN VARCHAR2
152222  , p_source_135_meaning    IN VARCHAR2
152223 )
152224 IS
152225 
152226 l_component_type              VARCHAR2(80);
152227 l_component_code              VARCHAR2(30);
152228 l_component_type_code         VARCHAR2(1);
152229 l_component_appl_id           INTEGER;
152230 l_amb_context_code            VARCHAR2(30);
152231 l_entity_code                 VARCHAR2(30);
152232 l_event_class_code            VARCHAR2(30);
152233 l_ae_header_id                NUMBER;
152234 l_event_type_code             VARCHAR2(30);
152235 l_line_definition_code        VARCHAR2(30);
152236 l_line_definition_owner_code  VARCHAR2(1);
152237 --
152238 -- adr variables
152239 l_segment                     VARCHAR2(30);
152240 l_ccid                        NUMBER;
152241 l_adr_transaction_coa_id      NUMBER;
152242 l_adr_accounting_coa_id       NUMBER;
152243 l_adr_flexfield_segment_code  VARCHAR2(30);
152244 l_adr_flex_value_set_id       NUMBER;
152245 l_adr_value_type_code         VARCHAR2(30);
152246 l_adr_value_combination_id    NUMBER;
152247 l_adr_value_segment_code      VARCHAR2(30);
152248 
152249 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
152250 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
152251 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
152252 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
152253 
152254 -- 4262811 Variables ------------------------------------------------------------------------------------------
152255 l_entered_amt_idx             NUMBER;
152256 l_accted_amt_idx              NUMBER;
152257 l_acc_rev_flag                VARCHAR2(1);
152258 l_accrual_line_num            NUMBER;
152259 l_tmp_amt                     NUMBER;
152260 l_acc_rev_natural_side_code   VARCHAR2(1);
152261 
152262 l_num_entries                 NUMBER;
152263 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
152264 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
152265 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
152269 
152266 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
152267 l_recog_line_1                NUMBER;
152268 l_recog_line_2                NUMBER;
152270 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
152271 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
152272 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
152273 
152274 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
152275 
152276 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
152277 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
152278 
152279 ---------------------------------------------------------------------------------------------------------------
152280 
152281 
152282 --
152283 -- bulk performance
152284 --
152285 l_balance_type_code           VARCHAR2(1);
152286 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
152287 l_log_module                  VARCHAR2(240);
152288 
152289 --
152290 -- Upgrade strategy
152291 --
152292 l_actual_upg_option           VARCHAR2(1);
152293 l_enc_upg_option           VARCHAR2(1);
152294 
152295 --
152296 BEGIN
152297 --
152298 IF g_log_enabled THEN
152299       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_249';
152300 END IF;
152301 --
152302 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
152303 
152304       trace
152305          (p_msg      => 'BEGIN of AcctLineType_249'
152306          ,p_level    => C_LEVEL_PROCEDURE
152307          ,p_module   => l_log_module);
152308 
152309 END IF;
152310 --
152311 l_component_type             := 'AMB_JLT';
152312 l_component_code             := 'AP_SELF_NON_REC_ACCRUAL_CM';
152313 l_component_type_code        := 'S';
152314 l_component_appl_id          :=  200;
152315 l_amb_context_code           := 'DEFAULT';
152316 l_entity_code                := 'AP_INVOICES';
152317 l_event_class_code           := 'CREDIT MEMOS';
152318 l_event_type_code            := 'CREDIT MEMOS_ALL';
152319 l_line_definition_owner_code := 'S';
152320 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
152321 --
152322 l_balance_type_code          := 'A';
152323 l_segment                     := NULL;
152324 l_ccid                        := NULL;
152325 l_adr_transaction_coa_id      := NULL;
152326 l_adr_accounting_coa_id       := NULL;
152327 l_adr_flexfield_segment_code  := NULL;
152328 l_adr_flex_value_set_id       := NULL;
152329 l_adr_value_type_code         := NULL;
152330 l_adr_value_combination_id    := NULL;
152331 l_adr_value_segment_code      := NULL;
152332 
152333 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
152334 l_bflow_class_code           := '';    -- 4219869 Business Flow
152335 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
152336 l_budgetary_control_flag     := 'N';
152337 
152338 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
152339 l_bflow_applied_to_amt       := NULL; -- 5132302
152340 l_entered_amt_idx            := NULL;          -- 4262811
152341 l_accted_amt_idx             := NULL;          -- 4262811
152342 l_acc_rev_flag               := NULL;          -- 4262811
152343 l_accrual_line_num           := NULL;          -- 4262811
152344 l_tmp_amt                    := NULL;          -- 4262811
152345 --
152346  
152347 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
152348     l_balance_type_code <> 'B' THEN
152349 IF NVL(p_source_21,'
152350 ') =  'NONREC_TAX' AND 
152351 NVL(p_source_135,'
152352 ') =  'Y' AND 
152353 NVL(p_source_84,'
152354 ') =  'Y'
152355  THEN 
152356 
152357    --
152358    XLA_AE_LINES_PKG.SetNewLine;
152359 
152360    p_balance_type_code          := l_balance_type_code;
152361    -- set the flag so later we will know whether the gain loss line needs to be created
152362    
152363    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
152364      p_actual_flag :='A';
152365    END IF;
152366 
152367    --
152368    -- bulk performance
152369    --
152370    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
152371                                       p_header_num   => 0); -- 4262811
152372    --
152373    -- set accounting line options
152374    --
152375    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
152376            p_natural_side_code          => 'D'
152377          , p_gain_or_loss_flag          => 'N'
152378          , p_gl_transfer_mode_code      => 'S'
152379          , p_acct_entry_type_code       => 'A'
152380          , p_switch_side_flag           => 'Y'
152381          , p_merge_duplicate_code       => 'A'
152382          );
152383    --
152384    l_acc_rev_natural_side_code := 'C';  -- 4262811
152385    -- 
152386    --
152387    -- set accounting line type info
152388    --
152389    xla_ae_lines_pkg.SetAcctLineType
152390       (p_component_type             => l_component_type
152391       ,p_event_type_code            => l_event_type_code
152392       ,p_line_definition_owner_code => l_line_definition_owner_code
152393       ,p_line_definition_code       => l_line_definition_code
152394       ,p_accounting_line_code       => l_component_code
152395       ,p_accounting_line_type_code  => l_component_type_code
152396       ,p_accounting_line_appl_id    => l_component_appl_id
152397       ,p_amb_context_code           => l_amb_context_code
152398       ,p_entity_code                => l_entity_code
152399       ,p_event_class_code           => l_event_class_code);
152400    --
152401    -- set accounting class
152402    --
152406          );
152403    xla_ae_lines_pkg.SetAcctClass(
152404            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
152405          , p_ae_header_id           => l_ae_header_id
152407 
152408    --
152409    -- set rounding class
152410    --
152411    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
152412                       'SELF_ASSESSED_TAX';
152413 
152414    --
152415    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
152416    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
152417    --
152418    -- bulk performance
152419    --
152420    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
152421 
152422    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
152423       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
152424 
152425    -- 4955764
152426    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
152427       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
152428 
152429    -- 4458381 Public Sector Enh
152430    
152431    --
152432    -- set accounting attributes for the line type
152433    --
152434    l_entered_amt_idx := 23;
152435    l_accted_amt_idx  := 28;
152436    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
152437    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
152438    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
152439    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
152440    l_rec_acct_attrs.array_num_value(2)  := 
152441 xla_ae_sources_pkg.GetSystemSourceNum(
152442    p_source_code           => 'XLA_EVENT_APPL_ID'
152443  , p_source_type_code      => 'Y'
152444  , p_source_application_id =>  602
152445 );
152446    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
152447    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
152448    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
152449    l_rec_acct_attrs.array_char_value(4)  := 
152450 xla_ae_sources_pkg.GetSystemSourceChar(
152451    p_source_code           => 'XLA_ENTITY_CODE'
152452  , p_source_type_code      => 'Y'
152453  , p_source_application_id =>  602
152454 );
152455    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
152456    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
152457    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
152458    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
152459    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
152460    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
152461    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
152462    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
152463    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
152464    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
152465    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
152466    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
152467    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
152468    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
152469    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
152470    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
152471    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
152472    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
152473    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
152474    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
152475    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
152476    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
152477    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
152478    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
152479    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
152480    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
152481    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
152482    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
152483    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
152484    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
152485    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
152486    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
152487    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
152488    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
152489    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
152490    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
152491    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
152492    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
152493    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
152494    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
152495    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
152496    l_rec_acct_attrs.array_date_value(25)  := p_source_62;
152497    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
152498    l_rec_acct_attrs.array_num_value(26)  := p_source_63;
152499    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
152500    l_rec_acct_attrs.array_char_value(27)  := p_source_64;
152501    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
152502    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
152503    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
152504    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
152505    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
152509    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
152506    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
152507    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
152508    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
152510    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
152511    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
152512    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
152513    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
152514    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
152515    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
152516    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
152517    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
152518    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
152519    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
152520    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
152521    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
152522    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
152523    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
152524    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
152525    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
152526    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
152527    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
152528    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
152529    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
152530    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
152531    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
152532    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
152533 
152534    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
152535    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
152536 
152537    ---------------------------------------------------------------------------------------------------------------
152538    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
152539    ---------------------------------------------------------------------------------------------------------------
152540    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
152541 
152542    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
152543    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
152544 
152545    IF xla_accounting_cache_pkg.GetValueChar
152546          (p_source_code         => 'LEDGER_CATEGORY_CODE'
152547          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
152548    AND l_bflow_method_code = 'PRIOR_ENTRY'
152549 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
152550    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
152551          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
152552        )
152553    THEN
152554          xla_ae_lines_pkg.BflowUpgEntry
152555            (p_business_method_code    => l_bflow_method_code
152556            ,p_business_class_code     => l_bflow_class_code
152557            ,p_balance_type            => l_balance_type_code);
152558    ELSE
152559       NULL;
152560 -- No business flow processing for business flow method of NONE.
152561    END IF;
152562 
152563    --
152564    -- call analytical criteria
152565    --
152566    
152567    --
152568    -- call description
152569    --
152570    
152571 xla_ae_lines_pkg.SetLineDescription(
152572    p_ae_header_id => l_ae_header_id
152573   ,p_description  => Description_2 (
152574      p_application_id         => p_application_id
152575    , p_ae_header_id           => l_ae_header_id 
152576 , p_source_1 => p_source_1
152577    )
152578 );
152579 
152580 
152581    --
152582    -- call ADRs
152583    -- Bug 4922099
152584    --
152585    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
152586         (NVL(l_actual_upg_option, 'N') = 'O') OR
152587         (NVL(l_enc_upg_option, 'N') = 'O')
152588       )
152589    THEN
152590    NULL;
152591    --
152592    --
152593    
152594   l_ccid := AcctDerRule_41(
152595            p_application_id           => p_application_id
152596          , p_ae_header_id             => l_ae_header_id 
152597 , p_source_38 => p_source_38
152598          , x_transaction_coa_id       => l_adr_transaction_coa_id
152599          , x_accounting_coa_id        => l_adr_accounting_coa_id
152600          , x_value_type_code          => l_adr_value_type_code
152601          , p_side                     => 'NA'
152602    );
152603 
152604    xla_ae_lines_pkg.set_ccid(
152605     p_code_combination_id          => l_ccid
152606   , p_value_type_code              => l_adr_value_type_code
152607   , p_transaction_coa_id           => l_adr_transaction_coa_id
152608   , p_accounting_coa_id            => l_adr_accounting_coa_id
152609   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
152610   , p_adr_type_code                => 'S'
152611   , p_component_type               => l_component_type
152612   , p_component_code               => l_component_code
152613   , p_component_type_code          => l_component_type_code
152614   , p_component_appl_id            => l_component_appl_id
152615   , p_amb_context_code             => l_amb_context_code
152616   , p_side                         => 'NA'
152617   );
152618 
152619 
152620    --
152621    --
152622    END IF;
152623    --
152624    -- Bug 4922099
152625    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
152626           (NVL(l_enc_upg_option, 'N') = 'O')
152627         ) AND
152628         (l_bflow_method_code = 'PRIOR_ENTRY')
152629       )
152630    THEN
152631       IF
152632       --
152633       1 = 2
152634       --
152635       THEN
152636       xla_accounting_err_pkg.build_message
152637                                     (p_appli_s_name            => 'XLA'
152638                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
152639                                     ,p_token_1                 => 'LINE_NUMBER'
152640                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
152641                                     ,p_token_2                 => 'LINE_TYPE_NAME'
152642                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
152643                                                                              l_component_type
152644                                                                             ,l_component_code
152645                                                                             ,l_component_type_code
152646                                                                             ,l_component_appl_id
152647                                                                             ,l_amb_context_code
152648                                                                             ,l_entity_code
152649                                                                             ,l_event_class_code
152650                                                                            )
152651                                     ,p_token_3                 => 'OWNER'
152652                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
152653                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
152654                                                                           ,p_lookup_code    => l_component_type_code
152655                                                                          )
152656                                     ,p_token_4                 => 'PRODUCT_NAME'
152657                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
152658                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
152659                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
152660                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
152661                                     ,p_ae_header_id            =>  NULL
152662                                        );
152663 
152664         IF (C_LEVEL_ERROR>= g_log_level) THEN
152665                  trace
152666                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
152667                       ,p_level    => C_LEVEL_ERROR
152668                       ,p_module   => l_log_module);
152669         END IF;
152670       END IF;
152671    END IF;
152672    --
152673    --
152674    ------------------------------------------------------------------------------------------------
152675    -- 4219869 Business Flow
152676    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
152677    -- Prior Entry.  Currently, the following code is always generated.
152678    ------------------------------------------------------------------------------------------------
152679    XLA_AE_LINES_PKG.ValidateCurrentLine;
152680 
152681    ------------------------------------------------------------------------------------
152682    -- 4219869 Business Flow
152683    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
152684    ------------------------------------------------------------------------------------
152685    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
152686 
152690    ----------------------------------------------------------------------------------
152687    ----------------------------------------------------------------------------------
152688    -- 4219869 Business Flow
152689    -- Update journal entry status -- Need to generate this within IF <condition>
152691    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
152692          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
152693          ,p_balance_type_code => l_balance_type_code
152694          );
152695 
152696    -------------------------------------------------------------------------------------------
152697    -- 4262811 - Generate the Accrual Reversal lines
152698    -------------------------------------------------------------------------------------------
152699    BEGIN
152700       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
152701                               (g_array_event(p_event_id).array_value_num('header_index'));
152702       IF l_acc_rev_flag IS NULL THEN
152703          l_acc_rev_flag := 'N';
152704       END IF;
152705    EXCEPTION
152706       WHEN OTHERS THEN
152707          l_acc_rev_flag := 'N';
152708    END;
152709    --
152710    IF (l_acc_rev_flag = 'Y') THEN
152711 
152712        -- 4645092  ------------------------------------------------------------------------------
152713        -- To allow MPA report to determine if it should generate report process
152714        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
152715        ------------------------------------------------------------------------------------------
152716 
152717        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
152718        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
152719    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
152720    -- call ADRs
152721    -- Bug 4922099
152722    --
152723    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
152724         (NVL(l_actual_upg_option, 'N') = 'O') OR
152725         (NVL(l_enc_upg_option, 'N') = 'O')
152726       )
152727    THEN
152728    NULL;
152729    --
152730    --
152731    
152732   l_ccid := AcctDerRule_41(
152733            p_application_id           => p_application_id
152734          , p_ae_header_id             => l_ae_header_id 
152735 , p_source_38 => p_source_38
152736          , x_transaction_coa_id       => l_adr_transaction_coa_id
152737          , x_accounting_coa_id        => l_adr_accounting_coa_id
152738          , x_value_type_code          => l_adr_value_type_code
152739          , p_side                     => 'NA'
152740    );
152741 
152742    xla_ae_lines_pkg.set_ccid(
152743     p_code_combination_id          => l_ccid
152744   , p_value_type_code              => l_adr_value_type_code
152745   , p_transaction_coa_id           => l_adr_transaction_coa_id
152746   , p_accounting_coa_id            => l_adr_accounting_coa_id
152747   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
152748   , p_adr_type_code                => 'S'
152749   , p_component_type               => l_component_type
152750   , p_component_code               => l_component_code
152751   , p_component_type_code          => l_component_type_code
152752   , p_component_appl_id            => l_component_appl_id
152753   , p_amb_context_code             => l_amb_context_code
152754   , p_side                         => 'NA'
152755   );
152756 
152757 
152758    --
152759    --
152760    END IF;
152761 
152762        --
152763        -- Update the line information that should be overwritten
152764        --
152765        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
152766                                          p_header_num   => 1);
152767        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
152768 
152769        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
152770 
152771        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
152772           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
152773        END IF;
152774 
152775       --
152776       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
152777       --
152778       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
152779           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
152780       ELSE
152781           ---------------------------------------------------------------------------------------------------
152782           -- 4262811a Switch Sign
152783           ---------------------------------------------------------------------------------------------------
152784           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
152785           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
152786                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
152787           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
152788                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
152789           -- 5132302
152790           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
152791                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
152792 
152793       END IF;
152794 
152795       -- 4955764
152796       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
152797       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
152798 
152799 
152800       XLA_AE_LINES_PKG.ValidateCurrentLine;
152801       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
152802 
152803       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
152804                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
152805                ,p_balance_type_code => l_balance_type_code);
152806 
152807    END IF;
152808 
152809    -----------------------------------------------------------------------------------------
152810    -- 4262811 Multiperiod Accounting
152811    -----------------------------------------------------------------------------------------
152812      -- No MPA option is assigned.
152813 
152814 
152815 END IF;
152816 END IF;
152817 --
152818 
152819 --
152820 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
152821    trace
152822       (p_msg      => 'END of AcctLineType_249'
152823       ,p_level    => C_LEVEL_PROCEDURE
152824       ,p_module   => l_log_module);
152825 END IF;
152826 --
152827 EXCEPTION
152828   WHEN xla_exceptions_pkg.application_exception THEN
152829       RAISE;
152833 END AcctLineType_249;
152830   WHEN OTHERS THEN
152831        xla_exceptions_pkg.raise_message
152832            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_249');
152834 --
152835 
152836 ---------------------------------------
152837 --
152838 -- PRIVATE FUNCTION
152839 --         AcctLineType_250
152840 --
152841 ---------------------------------------
152842 PROCEDURE AcctLineType_250 (
152843   p_application_id        IN NUMBER
152844  ,p_event_id              IN NUMBER
152845  ,p_calculate_acctd_flag  IN VARCHAR2
152846  ,p_calculate_g_l_flag    IN VARCHAR2
152847  ,p_actual_flag           IN OUT VARCHAR2
152848  ,p_balance_type_code     OUT VARCHAR2
152849  ,p_gain_or_loss_ref      OUT VARCHAR2
152850  
152851 --Invoice Distribution Description
152852  , p_source_1            IN VARCHAR2
152853 --Invoice Distribution Ledger Amount
152854  , p_source_9            IN NUMBER
152855 --Invoice Distribution Type
152856  , p_source_21            IN VARCHAR2
152857  , p_source_21_meaning    IN VARCHAR2
152858 --Self-Assessed Tax Account
152859  , p_source_38            IN NUMBER
152860 --Accounting Reversal Indicator
152861  , p_source_41            IN VARCHAR2
152862 --Distribution Link Type
152863  , p_source_43            IN VARCHAR2
152864 --Allocation to Main Distribution Identifier
152865  , p_source_45            IN NUMBER
152866 --Invoice Identifier
152867  , p_source_46            IN NUMBER
152868 --Invoice Distribution Identifier
152869  , p_source_52            IN NUMBER
152870 --Payables Encumbrance Upgrade Credit Account
152871  , p_source_53            IN NUMBER
152872 --Payables Encumbrance Upgrade Credit Amount
152873  , p_source_54            IN NUMBER
152874 --Invoice Currency Code
152875  , p_source_55            IN VARCHAR2
152876 --Payables Encumbrance Upgrade Credit Base Amount
152877  , p_source_56            IN NUMBER
152878 --Payables Encumbrance Upgrade Debit Account
152879  , p_source_57            IN NUMBER
152880 --Payables Encumbrance Upgrade Debit Amount
152881  , p_source_58            IN NUMBER
152882 --Payables Encumbrance Upgrade Debit Base Amount
152883  , p_source_59            IN NUMBER
152884 --Payables Encumbrance Upgrade Option
152885  , p_source_60            IN VARCHAR2
152886 --Invoice Distribution Amount
152887  , p_source_61            IN NUMBER
152888 --Purchase Order Exchange Rate Date
152889  , p_source_62            IN DATE
152890 --Purchase Order Exchange Rate
152891  , p_source_63            IN NUMBER
152892 --Purchase Order Exchange Rate Type
152893  , p_source_64            IN VARCHAR2
152894 --Deferred Accounting End Date
152895  , p_source_65            IN DATE
152896 --Deferred Accounting Option
152897  , p_source_66            IN VARCHAR2
152898 --Deferred Accounting Start Date
152899  , p_source_67            IN DATE
152900 --Override Accounted Amount Indicator
152901  , p_source_68            IN VARCHAR2
152902  , p_source_68_meaning    IN VARCHAR2
152903 --Invoice Supplier Identifier
152904  , p_source_69            IN NUMBER
152905 --Invoice Supplier Site Identifier
152906  , p_source_70            IN NUMBER
152907 --Third Party Type
152908  , p_source_71            IN VARCHAR2
152909 --Parent Reversal Identifier
152910  , p_source_72            IN NUMBER
152911 --Invoice Distribution Tax Line Identifier
152912  , p_source_74            IN NUMBER
152913 --Invoice Distribution Tax Distribution Identifier from Tax
152914  , p_source_75            IN NUMBER
152915 --Invoice Distribution Summary Tax Line Identifier
152916  , p_source_76            IN NUMBER
152917 --Payables Upgrade Credit Encumbrance Type Identifier
152918  , p_source_77            IN NUMBER
152919 --Payables Upgrade Debit Encumbrance Type Identifier
152920  , p_source_78            IN NUMBER
152921 --Business Flow Accounts Payable Application Identifier
152922  , p_source_79            IN NUMBER
152923 --Business Flow Invoice Distribution Type
152924  , p_source_80            IN VARCHAR2
152925 --Business Flow Invoice Entity Code
152926  , p_source_81            IN VARCHAR2
152927 --Business Flow Invoice Distribution Identifier
152928  , p_source_82            IN NUMBER
152929 --Business Flow Invoice Identifier
152930  , p_source_83            IN NUMBER
152931 --Accrue on Receipt Option
152932  , p_source_84            IN VARCHAR2
152933  , p_source_84_meaning    IN VARCHAR2
152934 --Self-Assessed Tax Flag
152935  , p_source_135            IN VARCHAR2
152936  , p_source_135_meaning    IN VARCHAR2
152937 )
152938 IS
152939 
152940 l_component_type              VARCHAR2(80);
152941 l_component_code              VARCHAR2(30);
152942 l_component_type_code         VARCHAR2(1);
152943 l_component_appl_id           INTEGER;
152944 l_amb_context_code            VARCHAR2(30);
152945 l_entity_code                 VARCHAR2(30);
152946 l_event_class_code            VARCHAR2(30);
152947 l_ae_header_id                NUMBER;
152948 l_event_type_code             VARCHAR2(30);
152949 l_line_definition_code        VARCHAR2(30);
152950 l_line_definition_owner_code  VARCHAR2(1);
152951 --
152952 -- adr variables
152953 l_segment                     VARCHAR2(30);
152954 l_ccid                        NUMBER;
152955 l_adr_transaction_coa_id      NUMBER;
152956 l_adr_accounting_coa_id       NUMBER;
152957 l_adr_flexfield_segment_code  VARCHAR2(30);
152958 l_adr_flex_value_set_id       NUMBER;
152959 l_adr_value_type_code         VARCHAR2(30);
152960 l_adr_value_combination_id    NUMBER;
152961 l_adr_value_segment_code      VARCHAR2(30);
152962 
152963 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
152964 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
152965 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
152966 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
152967 
152971 l_acc_rev_flag                VARCHAR2(1);
152968 -- 4262811 Variables ------------------------------------------------------------------------------------------
152969 l_entered_amt_idx             NUMBER;
152970 l_accted_amt_idx              NUMBER;
152972 l_accrual_line_num            NUMBER;
152973 l_tmp_amt                     NUMBER;
152974 l_acc_rev_natural_side_code   VARCHAR2(1);
152975 
152976 l_num_entries                 NUMBER;
152977 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
152978 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
152979 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
152980 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
152981 l_recog_line_1                NUMBER;
152982 l_recog_line_2                NUMBER;
152983 
152984 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
152985 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
152986 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
152987 
152988 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
152989 
152990 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
152991 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
152992 
152993 ---------------------------------------------------------------------------------------------------------------
152994 
152995 
152996 --
152997 -- bulk performance
152998 --
152999 l_balance_type_code           VARCHAR2(1);
153000 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
153001 l_log_module                  VARCHAR2(240);
153002 
153003 --
153004 -- Upgrade strategy
153005 --
153006 l_actual_upg_option           VARCHAR2(1);
153007 l_enc_upg_option           VARCHAR2(1);
153008 
153009 --
153010 BEGIN
153011 --
153012 IF g_log_enabled THEN
153013       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_250';
153014 END IF;
153015 --
153016 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
153017 
153018       trace
153019          (p_msg      => 'BEGIN of AcctLineType_250'
153020          ,p_level    => C_LEVEL_PROCEDURE
153021          ,p_module   => l_log_module);
153022 
153023 END IF;
153024 --
153025 l_component_type             := 'AMB_JLT';
153026 l_component_code             := 'AP_SELF_NON_REC_ACCRUAL_DM';
153027 l_component_type_code        := 'S';
153028 l_component_appl_id          :=  200;
153029 l_amb_context_code           := 'DEFAULT';
153030 l_entity_code                := 'AP_INVOICES';
153031 l_event_class_code           := 'DEBIT MEMOS';
153032 l_event_type_code            := 'DEBIT MEMOS_ALL';
153033 l_line_definition_owner_code := 'S';
153034 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
153035 --
153036 l_balance_type_code          := 'A';
153037 l_segment                     := NULL;
153038 l_ccid                        := NULL;
153039 l_adr_transaction_coa_id      := NULL;
153040 l_adr_accounting_coa_id       := NULL;
153041 l_adr_flexfield_segment_code  := NULL;
153042 l_adr_flex_value_set_id       := NULL;
153043 l_adr_value_type_code         := NULL;
153044 l_adr_value_combination_id    := NULL;
153045 l_adr_value_segment_code      := NULL;
153046 
153047 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
153048 l_bflow_class_code           := '';    -- 4219869 Business Flow
153049 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
153050 l_budgetary_control_flag     := 'N';
153051 
153052 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
153053 l_bflow_applied_to_amt       := NULL; -- 5132302
153054 l_entered_amt_idx            := NULL;          -- 4262811
153055 l_accted_amt_idx             := NULL;          -- 4262811
153056 l_acc_rev_flag               := NULL;          -- 4262811
153057 l_accrual_line_num           := NULL;          -- 4262811
153058 l_tmp_amt                    := NULL;          -- 4262811
153059 --
153060  
153061 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
153062     l_balance_type_code <> 'B' THEN
153063 IF NVL(p_source_21,'
153064 ') =  'NONREC_TAX' AND 
153065 NVL(p_source_135,'
153066 ') =  'Y' AND 
153067 NVL(p_source_84,'
153068 ') =  'Y'
153069  THEN 
153070 
153071    --
153072    XLA_AE_LINES_PKG.SetNewLine;
153073 
153074    p_balance_type_code          := l_balance_type_code;
153075    -- set the flag so later we will know whether the gain loss line needs to be created
153076    
153077    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
153078      p_actual_flag :='A';
153079    END IF;
153080 
153081    --
153082    -- bulk performance
153083    --
153084    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
153085                                       p_header_num   => 0); -- 4262811
153086    --
153087    -- set accounting line options
153088    --
153089    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
153090            p_natural_side_code          => 'D'
153091          , p_gain_or_loss_flag          => 'N'
153092          , p_gl_transfer_mode_code      => 'S'
153093          , p_acct_entry_type_code       => 'A'
153094          , p_switch_side_flag           => 'Y'
153095          , p_merge_duplicate_code       => 'A'
153096          );
153097    --
153098    l_acc_rev_natural_side_code := 'C';  -- 4262811
153099    -- 
153100    --
153101    -- set accounting line type info
153102    --
153103    xla_ae_lines_pkg.SetAcctLineType
153104       (p_component_type             => l_component_type
153105       ,p_event_type_code            => l_event_type_code
153106       ,p_line_definition_owner_code => l_line_definition_owner_code
153110       ,p_accounting_line_appl_id    => l_component_appl_id
153107       ,p_line_definition_code       => l_line_definition_code
153108       ,p_accounting_line_code       => l_component_code
153109       ,p_accounting_line_type_code  => l_component_type_code
153111       ,p_amb_context_code           => l_amb_context_code
153112       ,p_entity_code                => l_entity_code
153113       ,p_event_class_code           => l_event_class_code);
153114    --
153115    -- set accounting class
153116    --
153117    xla_ae_lines_pkg.SetAcctClass(
153118            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
153119          , p_ae_header_id           => l_ae_header_id
153120          );
153121 
153122    --
153123    -- set rounding class
153124    --
153125    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
153126                       'SELF_ASSESSED_TAX';
153127 
153128    --
153129    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
153130    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
153131    --
153132    -- bulk performance
153133    --
153134    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
153135 
153136    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
153137       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
153138 
153139    -- 4955764
153140    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
153141       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
153142 
153143    -- 4458381 Public Sector Enh
153144    
153145    --
153146    -- set accounting attributes for the line type
153147    --
153148    l_entered_amt_idx := 23;
153149    l_accted_amt_idx  := 28;
153150    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
153151    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
153152    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
153153    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
153154    l_rec_acct_attrs.array_num_value(2)  := 
153155 xla_ae_sources_pkg.GetSystemSourceNum(
153156    p_source_code           => 'XLA_EVENT_APPL_ID'
153157  , p_source_type_code      => 'Y'
153158  , p_source_application_id =>  602
153159 );
153160    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
153161    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
153162    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
153163    l_rec_acct_attrs.array_char_value(4)  := 
153164 xla_ae_sources_pkg.GetSystemSourceChar(
153165    p_source_code           => 'XLA_ENTITY_CODE'
153166  , p_source_type_code      => 'Y'
153167  , p_source_application_id =>  602
153168 );
153169    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
153170    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
153171    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
153172    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
153173    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
153174    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
153175    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
153176    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
153177    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
153178    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
153179    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
153180    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
153181    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
153182    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
153183    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
153184    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
153185    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
153186    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
153187    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
153188    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
153189    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
153190    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
153191    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
153192    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
153193    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
153194    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
153195    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
153196    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
153197    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
153198    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
153199    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
153200    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
153201    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
153202    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
153203    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
153204    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
153205    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
153206    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
153207    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
153208    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
153209    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
153210    l_rec_acct_attrs.array_date_value(25)  := p_source_62;
153211    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
153212    l_rec_acct_attrs.array_num_value(26)  := p_source_63;
153216    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
153213    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
153214    l_rec_acct_attrs.array_char_value(27)  := p_source_64;
153215    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
153217    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
153218    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
153219    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
153220    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
153221    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
153222    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
153223    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
153224    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
153225    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
153226    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
153227    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
153228    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
153229    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
153230    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
153231    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
153232    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
153233    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
153234    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
153235    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
153236    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
153237    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
153238    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
153239    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
153240    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
153241    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
153242    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
153243    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
153244    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
153245 
153246    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
153247    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
153248 
153249    ---------------------------------------------------------------------------------------------------------------
153250    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
153251    ---------------------------------------------------------------------------------------------------------------
153252    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
153253 
153254    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
153255    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
153256 
153257    IF xla_accounting_cache_pkg.GetValueChar
153258          (p_source_code         => 'LEDGER_CATEGORY_CODE'
153259          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
153260    AND l_bflow_method_code = 'PRIOR_ENTRY'
153261 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
153262    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
153263          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
153264        )
153265    THEN
153266          xla_ae_lines_pkg.BflowUpgEntry
153267            (p_business_method_code    => l_bflow_method_code
153268            ,p_business_class_code     => l_bflow_class_code
153269            ,p_balance_type            => l_balance_type_code);
153270    ELSE
153271       NULL;
153272 -- No business flow processing for business flow method of NONE.
153273    END IF;
153274 
153275    --
153276    -- call analytical criteria
153277    --
153278    
153279    --
153280    -- call description
153281    --
153282    
153283 xla_ae_lines_pkg.SetLineDescription(
153284    p_ae_header_id => l_ae_header_id
153285   ,p_description  => Description_2 (
153286      p_application_id         => p_application_id
153287    , p_ae_header_id           => l_ae_header_id 
153288 , p_source_1 => p_source_1
153289    )
153290 );
153291 
153292 
153293    --
153294    -- call ADRs
153295    -- Bug 4922099
153296    --
153297    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
153298         (NVL(l_actual_upg_option, 'N') = 'O') OR
153299         (NVL(l_enc_upg_option, 'N') = 'O')
153300       )
153301    THEN
153302    NULL;
153303    --
153304    --
153305    
153306   l_ccid := AcctDerRule_41(
153307            p_application_id           => p_application_id
153308          , p_ae_header_id             => l_ae_header_id 
153309 , p_source_38 => p_source_38
153310          , x_transaction_coa_id       => l_adr_transaction_coa_id
153311          , x_accounting_coa_id        => l_adr_accounting_coa_id
153312          , x_value_type_code          => l_adr_value_type_code
153313          , p_side                     => 'NA'
153314    );
153315 
153316    xla_ae_lines_pkg.set_ccid(
153317     p_code_combination_id          => l_ccid
153318   , p_value_type_code              => l_adr_value_type_code
153319   , p_transaction_coa_id           => l_adr_transaction_coa_id
153320   , p_accounting_coa_id            => l_adr_accounting_coa_id
153321   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
153322   , p_adr_type_code                => 'S'
153323   , p_component_type               => l_component_type
153324   , p_component_code               => l_component_code
153325   , p_component_type_code          => l_component_type_code
153326   , p_component_appl_id            => l_component_appl_id
153330 
153327   , p_amb_context_code             => l_amb_context_code
153328   , p_side                         => 'NA'
153329   );
153331 
153332    --
153333    --
153334    END IF;
153335    --
153336    -- Bug 4922099
153337    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
153338           (NVL(l_enc_upg_option, 'N') = 'O')
153339         ) AND
153340         (l_bflow_method_code = 'PRIOR_ENTRY')
153341       )
153342    THEN
153343       IF
153344       --
153345       1 = 2
153346       --
153347       THEN
153348       xla_accounting_err_pkg.build_message
153349                                     (p_appli_s_name            => 'XLA'
153350                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
153351                                     ,p_token_1                 => 'LINE_NUMBER'
153352                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
153353                                     ,p_token_2                 => 'LINE_TYPE_NAME'
153354                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
153355                                                                              l_component_type
153356                                                                             ,l_component_code
153357                                                                             ,l_component_type_code
153358                                                                             ,l_component_appl_id
153359                                                                             ,l_amb_context_code
153360                                                                             ,l_entity_code
153361                                                                             ,l_event_class_code
153362                                                                            )
153363                                     ,p_token_3                 => 'OWNER'
153364                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
153365                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
153366                                                                           ,p_lookup_code    => l_component_type_code
153367                                                                          )
153368                                     ,p_token_4                 => 'PRODUCT_NAME'
153369                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
153370                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
153371                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
153372                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
153373                                     ,p_ae_header_id            =>  NULL
153374                                        );
153375 
153376         IF (C_LEVEL_ERROR>= g_log_level) THEN
153377                  trace
153378                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
153379                       ,p_level    => C_LEVEL_ERROR
153380                       ,p_module   => l_log_module);
153381         END IF;
153382       END IF;
153383    END IF;
153384    --
153385    --
153386    ------------------------------------------------------------------------------------------------
153387    -- 4219869 Business Flow
153388    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
153389    -- Prior Entry.  Currently, the following code is always generated.
153390    ------------------------------------------------------------------------------------------------
153391    XLA_AE_LINES_PKG.ValidateCurrentLine;
153392 
153393    ------------------------------------------------------------------------------------
153394    -- 4219869 Business Flow
153395    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
153396    ------------------------------------------------------------------------------------
153397    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
153398 
153399    ----------------------------------------------------------------------------------
153400    -- 4219869 Business Flow
153401    -- Update journal entry status -- Need to generate this within IF <condition>
153402    ----------------------------------------------------------------------------------
153403    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
153404          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
153405          ,p_balance_type_code => l_balance_type_code
153406          );
153407 
153408    -------------------------------------------------------------------------------------------
153409    -- 4262811 - Generate the Accrual Reversal lines
153410    -------------------------------------------------------------------------------------------
153411    BEGIN
153412       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
153413                               (g_array_event(p_event_id).array_value_num('header_index'));
153414       IF l_acc_rev_flag IS NULL THEN
153415          l_acc_rev_flag := 'N';
153416       END IF;
153417    EXCEPTION
153418       WHEN OTHERS THEN
153419          l_acc_rev_flag := 'N';
153420    END;
153421    --
153422    IF (l_acc_rev_flag = 'Y') THEN
153423 
153424        -- 4645092  ------------------------------------------------------------------------------
153425        -- To allow MPA report to determine if it should generate report process
153426        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
153427        ------------------------------------------------------------------------------------------
153428 
153429        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
153433    -- Bug 4922099
153430        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
153431    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
153432    -- call ADRs
153434    --
153435    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
153436         (NVL(l_actual_upg_option, 'N') = 'O') OR
153437         (NVL(l_enc_upg_option, 'N') = 'O')
153438       )
153439    THEN
153440    NULL;
153441    --
153442    --
153443    
153444   l_ccid := AcctDerRule_41(
153445            p_application_id           => p_application_id
153446          , p_ae_header_id             => l_ae_header_id 
153447 , p_source_38 => p_source_38
153448          , x_transaction_coa_id       => l_adr_transaction_coa_id
153449          , x_accounting_coa_id        => l_adr_accounting_coa_id
153453 
153450          , x_value_type_code          => l_adr_value_type_code
153451          , p_side                     => 'NA'
153452    );
153454    xla_ae_lines_pkg.set_ccid(
153455     p_code_combination_id          => l_ccid
153456   , p_value_type_code              => l_adr_value_type_code
153457   , p_transaction_coa_id           => l_adr_transaction_coa_id
153458   , p_accounting_coa_id            => l_adr_accounting_coa_id
153459   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
153460   , p_adr_type_code                => 'S'
153461   , p_component_type               => l_component_type
153462   , p_component_code               => l_component_code
153463   , p_component_type_code          => l_component_type_code
153464   , p_component_appl_id            => l_component_appl_id
153465   , p_amb_context_code             => l_amb_context_code
153466   , p_side                         => 'NA'
153467   );
153468 
153469 
153470    --
153471    --
153472    END IF;
153473 
153474        --
153475        -- Update the line information that should be overwritten
153476        --
153477        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
153478                                          p_header_num   => 1);
153479        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
153480 
153481        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
153482 
153483        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
153484           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
153485        END IF;
153486 
153487       --
153488       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
153489       --
153490       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
153491           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
153492       ELSE
153493           ---------------------------------------------------------------------------------------------------
153494           -- 4262811a Switch Sign
153495           ---------------------------------------------------------------------------------------------------
153496           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
153497           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
153498                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
153499           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
153500                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
153501           -- 5132302
153502           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
153503                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
153504 
153505       END IF;
153506 
153507       -- 4955764
153508       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
153509       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
153510 
153511 
153512       XLA_AE_LINES_PKG.ValidateCurrentLine;
153513       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
153514 
153515       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
153516                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
153517                ,p_balance_type_code => l_balance_type_code);
153518 
153519    END IF;
153520 
153521    -----------------------------------------------------------------------------------------
153522    -- 4262811 Multiperiod Accounting
153523    -----------------------------------------------------------------------------------------
153524      -- No MPA option is assigned.
153525 
153526 
153527 END IF;
153528 END IF;
153529 --
153530 
153531 --
153532 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
153533    trace
153534       (p_msg      => 'END of AcctLineType_250'
153535       ,p_level    => C_LEVEL_PROCEDURE
153536       ,p_module   => l_log_module);
153537 END IF;
153538 --
153539 EXCEPTION
153540   WHEN xla_exceptions_pkg.application_exception THEN
153541       RAISE;
153542   WHEN OTHERS THEN
153543        xla_exceptions_pkg.raise_message
153544            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_250');
153545 END AcctLineType_250;
153546 --
153547 
153548 ---------------------------------------
153549 --
153550 -- PRIVATE FUNCTION
153551 --         AcctLineType_251
153552 --
153553 ---------------------------------------
153554 PROCEDURE AcctLineType_251 (
153555   p_application_id        IN NUMBER
153556  ,p_event_id              IN NUMBER
153557  ,p_calculate_acctd_flag  IN VARCHAR2
153558  ,p_calculate_g_l_flag    IN VARCHAR2
153559  ,p_actual_flag           IN OUT VARCHAR2
153560  ,p_balance_type_code     OUT VARCHAR2
153561  ,p_gain_or_loss_ref      OUT VARCHAR2
153562  
153563 --Invoice Distribution Description
153564  , p_source_1            IN VARCHAR2
153565 --Invoice Distribution Ledger Amount
153566  , p_source_9            IN NUMBER
153567 --Invoice Distribution Type
153568  , p_source_21            IN VARCHAR2
153569  , p_source_21_meaning    IN VARCHAR2
153570 --Self-Assessed Tax Account
153571  , p_source_38            IN NUMBER
153572 --Accounting Reversal Indicator
153573  , p_source_41            IN VARCHAR2
153574 --Distribution Link Type
153575  , p_source_43            IN VARCHAR2
153576 --Allocation to Main Distribution Identifier
153577  , p_source_45            IN NUMBER
153578 --Invoice Identifier
153579  , p_source_46            IN NUMBER
153580 --Invoice Distribution Identifier
153581  , p_source_52            IN NUMBER
153582 --Payables Encumbrance Upgrade Credit Account
153583  , p_source_53            IN NUMBER
153584 --Payables Encumbrance Upgrade Credit Amount
153585  , p_source_54            IN NUMBER
153586 --Invoice Currency Code
153587  , p_source_55            IN VARCHAR2
153588 --Payables Encumbrance Upgrade Credit Base Amount
153589  , p_source_56            IN NUMBER
153590 --Payables Encumbrance Upgrade Debit Account
153591  , p_source_57            IN NUMBER
153592 --Payables Encumbrance Upgrade Debit Amount
153593  , p_source_58            IN NUMBER
153594 --Payables Encumbrance Upgrade Debit Base Amount
153595  , p_source_59            IN NUMBER
153596 --Payables Encumbrance Upgrade Option
153597  , p_source_60            IN VARCHAR2
153598 --Invoice Distribution Amount
153599  , p_source_61            IN NUMBER
153603  , p_source_63            IN NUMBER
153600 --Purchase Order Exchange Rate Date
153601  , p_source_62            IN DATE
153602 --Purchase Order Exchange Rate
153604 --Purchase Order Exchange Rate Type
153605  , p_source_64            IN VARCHAR2
153606 --Deferred Accounting End Date
153607  , p_source_65            IN DATE
153608 --Deferred Accounting Option
153609  , p_source_66            IN VARCHAR2
153610 --Deferred Accounting Start Date
153611  , p_source_67            IN DATE
153612 --Override Accounted Amount Indicator
153613  , p_source_68            IN VARCHAR2
153614  , p_source_68_meaning    IN VARCHAR2
153615 --Invoice Supplier Identifier
153616  , p_source_69            IN NUMBER
153617 --Invoice Supplier Site Identifier
153618  , p_source_70            IN NUMBER
153619 --Third Party Type
153620  , p_source_71            IN VARCHAR2
153621 --Parent Reversal Identifier
153622  , p_source_72            IN NUMBER
153623 --Invoice Distribution Statistical Amount
153624  , p_source_73            IN NUMBER
153625 --Invoice Distribution Tax Line Identifier
153626  , p_source_74            IN NUMBER
153627 --Invoice Distribution Tax Distribution Identifier from Tax
153628  , p_source_75            IN NUMBER
153629 --Invoice Distribution Summary Tax Line Identifier
153630  , p_source_76            IN NUMBER
153631 --Payables Upgrade Credit Encumbrance Type Identifier
153632  , p_source_77            IN NUMBER
153633 --Payables Upgrade Debit Encumbrance Type Identifier
153634  , p_source_78            IN NUMBER
153635 --Business Flow Accounts Payable Application Identifier
153636  , p_source_79            IN NUMBER
153637 --Business Flow Invoice Distribution Type
153638  , p_source_80            IN VARCHAR2
153639 --Business Flow Invoice Entity Code
153640  , p_source_81            IN VARCHAR2
153641 --Business Flow Invoice Distribution Identifier
153642  , p_source_82            IN NUMBER
153643 --Business Flow Invoice Identifier
153644  , p_source_83            IN NUMBER
153645 --Accrue on Receipt Option
153646  , p_source_84            IN VARCHAR2
153647  , p_source_84_meaning    IN VARCHAR2
153648 --Self-Assessed Tax Flag
153649  , p_source_135            IN VARCHAR2
153650  , p_source_135_meaning    IN VARCHAR2
153651 )
153652 IS
153653 
153654 l_component_type              VARCHAR2(80);
153655 l_component_code              VARCHAR2(30);
153656 l_component_type_code         VARCHAR2(1);
153657 l_component_appl_id           INTEGER;
153658 l_amb_context_code            VARCHAR2(30);
153659 l_entity_code                 VARCHAR2(30);
153660 l_event_class_code            VARCHAR2(30);
153661 l_ae_header_id                NUMBER;
153662 l_event_type_code             VARCHAR2(30);
153663 l_line_definition_code        VARCHAR2(30);
153664 l_line_definition_owner_code  VARCHAR2(1);
153665 --
153666 -- adr variables
153667 l_segment                     VARCHAR2(30);
153668 l_ccid                        NUMBER;
153669 l_adr_transaction_coa_id      NUMBER;
153670 l_adr_accounting_coa_id       NUMBER;
153671 l_adr_flexfield_segment_code  VARCHAR2(30);
153672 l_adr_flex_value_set_id       NUMBER;
153673 l_adr_value_type_code         VARCHAR2(30);
153674 l_adr_value_combination_id    NUMBER;
153675 l_adr_value_segment_code      VARCHAR2(30);
153676 
153677 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
153678 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
153679 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
153680 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
153681 
153682 -- 4262811 Variables ------------------------------------------------------------------------------------------
153683 l_entered_amt_idx             NUMBER;
153684 l_accted_amt_idx              NUMBER;
153685 l_acc_rev_flag                VARCHAR2(1);
153686 l_accrual_line_num            NUMBER;
153687 l_tmp_amt                     NUMBER;
153688 l_acc_rev_natural_side_code   VARCHAR2(1);
153689 
153690 l_num_entries                 NUMBER;
153691 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
153692 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
153693 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
153694 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
153695 l_recog_line_1                NUMBER;
153696 l_recog_line_2                NUMBER;
153697 
153698 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
153699 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
153700 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
153701 
153702 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
153703 
153704 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
153705 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
153706 
153707 ---------------------------------------------------------------------------------------------------------------
153708 
153709 
153710 --
153711 -- bulk performance
153712 --
153713 l_balance_type_code           VARCHAR2(1);
153714 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
153715 l_log_module                  VARCHAR2(240);
153716 
153717 --
153718 -- Upgrade strategy
153719 --
153720 l_actual_upg_option           VARCHAR2(1);
153721 l_enc_upg_option           VARCHAR2(1);
153722 
153723 --
153724 BEGIN
153725 --
153726 IF g_log_enabled THEN
153727       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_251';
153728 END IF;
153729 --
153730 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
153731 
153732       trace
153733          (p_msg      => 'BEGIN of AcctLineType_251'
153734          ,p_level    => C_LEVEL_PROCEDURE
153735          ,p_module   => l_log_module);
153736 
153737 END IF;
153738 --
153739 l_component_type             := 'AMB_JLT';
153740 l_component_code             := 'AP_SELF_NON_REC_ACCRUAL_INV';
153741 l_component_type_code        := 'S';
153742 l_component_appl_id          :=  200;
153743 l_amb_context_code           := 'DEFAULT';
153744 l_entity_code                := 'AP_INVOICES';
153745 l_event_class_code           := 'INVOICES';
153746 l_event_type_code            := 'INVOICES_ALL';
153747 l_line_definition_owner_code := 'S';
153748 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
153749 --
153750 l_balance_type_code          := 'A';
153751 l_segment                     := NULL;
153752 l_ccid                        := NULL;
153753 l_adr_transaction_coa_id      := NULL;
153754 l_adr_accounting_coa_id       := NULL;
153755 l_adr_flexfield_segment_code  := NULL;
153756 l_adr_flex_value_set_id       := NULL;
153757 l_adr_value_type_code         := NULL;
153758 l_adr_value_combination_id    := NULL;
153762 l_bflow_class_code           := '';    -- 4219869 Business Flow
153759 l_adr_value_segment_code      := NULL;
153760 
153761 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
153763 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
153764 l_budgetary_control_flag     := 'N';
153765 
153766 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
153767 l_bflow_applied_to_amt       := NULL; -- 5132302
153768 l_entered_amt_idx            := NULL;          -- 4262811
153769 l_accted_amt_idx             := NULL;          -- 4262811
153770 l_acc_rev_flag               := NULL;          -- 4262811
153771 l_accrual_line_num           := NULL;          -- 4262811
153772 l_tmp_amt                    := NULL;          -- 4262811
153773 --
153774  
153775 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
153776     l_balance_type_code <> 'B' THEN
153777 IF NVL(p_source_21,'
153778 ') =  'NONREC_TAX' AND 
153779 NVL(p_source_135,'
153780 ') =  'Y' AND 
153781 NVL(p_source_84,'
153782 ') =  'Y'
153783  THEN 
153784 
153785    --
153786    XLA_AE_LINES_PKG.SetNewLine;
153787 
153788    p_balance_type_code          := l_balance_type_code;
153789    -- set the flag so later we will know whether the gain loss line needs to be created
153790    
153791    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
153792      p_actual_flag :='A';
153793    END IF;
153794 
153795    --
153796    -- bulk performance
153797    --
153798    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
153799                                       p_header_num   => 0); -- 4262811
153800    --
153801    -- set accounting line options
153802    --
153803    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
153804            p_natural_side_code          => 'D'
153805          , p_gain_or_loss_flag          => 'N'
153806          , p_gl_transfer_mode_code      => 'S'
153807          , p_acct_entry_type_code       => 'A'
153808          , p_switch_side_flag           => 'Y'
153809          , p_merge_duplicate_code       => 'A'
153810          );
153811    --
153812    l_acc_rev_natural_side_code := 'C';  -- 4262811
153813    -- 
153814    --
153815    -- set accounting line type info
153816    --
153817    xla_ae_lines_pkg.SetAcctLineType
153818       (p_component_type             => l_component_type
153819       ,p_event_type_code            => l_event_type_code
153820       ,p_line_definition_owner_code => l_line_definition_owner_code
153821       ,p_line_definition_code       => l_line_definition_code
153822       ,p_accounting_line_code       => l_component_code
153823       ,p_accounting_line_type_code  => l_component_type_code
153824       ,p_accounting_line_appl_id    => l_component_appl_id
153825       ,p_amb_context_code           => l_amb_context_code
153826       ,p_entity_code                => l_entity_code
153827       ,p_event_class_code           => l_event_class_code);
153828    --
153829    -- set accounting class
153830    --
153831    xla_ae_lines_pkg.SetAcctClass(
153832            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
153833          , p_ae_header_id           => l_ae_header_id
153834          );
153835 
153836    --
153837    -- set rounding class
153838    --
153839    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
153840                       'SELF_ASSESSED_TAX';
153841 
153842    --
153843    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
153844    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
153845    --
153846    -- bulk performance
153847    --
153848    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
153849 
153850    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
153851       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
153852 
153853    -- 4955764
153854    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
153855       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
153856 
153857    -- 4458381 Public Sector Enh
153858    
153859    --
153860    -- set accounting attributes for the line type
153861    --
153862    l_entered_amt_idx := 24;
153863    l_accted_amt_idx  := 29;
153864    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
153865    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
153866    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
153867    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
153868    l_rec_acct_attrs.array_num_value(2)  := 
153869 xla_ae_sources_pkg.GetSystemSourceNum(
153870    p_source_code           => 'XLA_EVENT_APPL_ID'
153871  , p_source_type_code      => 'Y'
153872  , p_source_application_id =>  602
153873 );
153874    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
153875    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
153876    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
153877    l_rec_acct_attrs.array_char_value(4)  := 
153878 xla_ae_sources_pkg.GetSystemSourceChar(
153879    p_source_code           => 'XLA_ENTITY_CODE'
153880  , p_source_type_code      => 'Y'
153881  , p_source_application_id =>  602
153882 );
153883    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
153884    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
153885    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
153886    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
153887    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
153888    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
153889    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
153890    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
153891    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
153892    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
153893    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
153894    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
153895    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
153896    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
153897    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
153898    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
153899    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
153900    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
153901    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
153905    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
153902    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
153903    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
153904    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
153906    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
153907    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
153908    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
153909    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
153910    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
153911    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
153912    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
153913    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
153914    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
153915    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
153916    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
153917    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
153918    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
153919    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
153920    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
153921    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
153922    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
153923    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
153924    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
153925    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
153926    l_rec_acct_attrs.array_date_value(26)  := p_source_62;
153927    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
153928    l_rec_acct_attrs.array_num_value(27)  := p_source_63;
153929    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
153930    l_rec_acct_attrs.array_char_value(28)  := p_source_64;
153931    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
153932    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
153933    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
153934    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
153935    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
153936    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
153937    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
153938    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
153939    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
153940    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
153941    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
153942    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
153943    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
153944    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
153945    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
153946    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
153947    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
153948    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
153949    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
153950    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
153951    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
153952    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
153953    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
153954    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
153955    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
153956    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
153957    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
153958    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
153959    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
153960    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
153961    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
153962    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
153963 
153964    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
153965    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
153966 
153967    ---------------------------------------------------------------------------------------------------------------
153968    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
153969    ---------------------------------------------------------------------------------------------------------------
153970    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
153971 
153972    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
153973    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
153974 
153975    IF xla_accounting_cache_pkg.GetValueChar
153976          (p_source_code         => 'LEDGER_CATEGORY_CODE'
153977          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
153978    AND l_bflow_method_code = 'PRIOR_ENTRY'
153979 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
153980    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
153981          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
153982        )
153983    THEN
153984          xla_ae_lines_pkg.BflowUpgEntry
153985            (p_business_method_code    => l_bflow_method_code
153986            ,p_business_class_code     => l_bflow_class_code
153987            ,p_balance_type            => l_balance_type_code);
153988    ELSE
153989       NULL;
153990 -- No business flow processing for business flow method of NONE.
153991    END IF;
153992 
153993    --
153994    -- call analytical criteria
153995    --
153996    
153997    --
153998    -- call description
153999    --
154000    
154001 xla_ae_lines_pkg.SetLineDescription(
154002    p_ae_header_id => l_ae_header_id
154003   ,p_description  => Description_2 (
154004      p_application_id         => p_application_id
154005    , p_ae_header_id           => l_ae_header_id 
154006 , p_source_1 => p_source_1
154007    )
154008 );
154009 
154010 
154011    --
154012    -- call ADRs
154013    -- Bug 4922099
154014    --
154015    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
154016         (NVL(l_actual_upg_option, 'N') = 'O') OR
154017         (NVL(l_enc_upg_option, 'N') = 'O')
154018       )
154019    THEN
154020    NULL;
154021    --
154022    --
154023    
154024   l_ccid := AcctDerRule_41(
154025            p_application_id           => p_application_id
154026          , p_ae_header_id             => l_ae_header_id 
154027 , p_source_38 => p_source_38
154031          , p_side                     => 'NA'
154028          , x_transaction_coa_id       => l_adr_transaction_coa_id
154029          , x_accounting_coa_id        => l_adr_accounting_coa_id
154030          , x_value_type_code          => l_adr_value_type_code
154032    );
154033 
154034    xla_ae_lines_pkg.set_ccid(
154035     p_code_combination_id          => l_ccid
154036   , p_value_type_code              => l_adr_value_type_code
154037   , p_transaction_coa_id           => l_adr_transaction_coa_id
154038   , p_accounting_coa_id            => l_adr_accounting_coa_id
154039   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
154040   , p_adr_type_code                => 'S'
154041   , p_component_type               => l_component_type
154042   , p_component_code               => l_component_code
154043   , p_component_type_code          => l_component_type_code
154044   , p_component_appl_id            => l_component_appl_id
154045   , p_amb_context_code             => l_amb_context_code
154046   , p_side                         => 'NA'
154047   );
154048 
154049 
154050    --
154051    --
154052    END IF;
154053    --
154054    -- Bug 4922099
154055    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
154056           (NVL(l_enc_upg_option, 'N') = 'O')
154057         ) AND
154058         (l_bflow_method_code = 'PRIOR_ENTRY')
154059       )
154060    THEN
154061       IF
154062       --
154063       1 = 2
154064       --
154065       THEN
154066       xla_accounting_err_pkg.build_message
154067                                     (p_appli_s_name            => 'XLA'
154068                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
154069                                     ,p_token_1                 => 'LINE_NUMBER'
154070                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
154071                                     ,p_token_2                 => 'LINE_TYPE_NAME'
154072                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
154073                                                                              l_component_type
154074                                                                             ,l_component_code
154075                                                                             ,l_component_type_code
154076                                                                             ,l_component_appl_id
154077                                                                             ,l_amb_context_code
154078                                                                             ,l_entity_code
154079                                                                             ,l_event_class_code
154080                                                                            )
154081                                     ,p_token_3                 => 'OWNER'
154082                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
154083                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
154084                                                                           ,p_lookup_code    => l_component_type_code
154085                                                                          )
154086                                     ,p_token_4                 => 'PRODUCT_NAME'
154087                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
154088                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
154089                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
154090                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
154091                                     ,p_ae_header_id            =>  NULL
154092                                        );
154093 
154094         IF (C_LEVEL_ERROR>= g_log_level) THEN
154095                  trace
154096                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
154097                       ,p_level    => C_LEVEL_ERROR
154098                       ,p_module   => l_log_module);
154099         END IF;
154100       END IF;
154101    END IF;
154102    --
154103    --
154104    ------------------------------------------------------------------------------------------------
154105    -- 4219869 Business Flow
154106    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
154107    -- Prior Entry.  Currently, the following code is always generated.
154108    ------------------------------------------------------------------------------------------------
154109    XLA_AE_LINES_PKG.ValidateCurrentLine;
154110 
154111    ------------------------------------------------------------------------------------
154112    -- 4219869 Business Flow
154113    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
154114    ------------------------------------------------------------------------------------
154115    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
154116 
154117    ----------------------------------------------------------------------------------
154118    -- 4219869 Business Flow
154119    -- Update journal entry status -- Need to generate this within IF <condition>
154120    ----------------------------------------------------------------------------------
154121    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
154122          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
154123          ,p_balance_type_code => l_balance_type_code
154124          );
154125 
154129    BEGIN
154126    -------------------------------------------------------------------------------------------
154127    -- 4262811 - Generate the Accrual Reversal lines
154128    -------------------------------------------------------------------------------------------
154130       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
154131                               (g_array_event(p_event_id).array_value_num('header_index'));
154132       IF l_acc_rev_flag IS NULL THEN
154133          l_acc_rev_flag := 'N';
154134       END IF;
154135    EXCEPTION
154136       WHEN OTHERS THEN
154137          l_acc_rev_flag := 'N';
154138    END;
154139    --
154140    IF (l_acc_rev_flag = 'Y') THEN
154141 
154142        -- 4645092  ------------------------------------------------------------------------------
154143        -- To allow MPA report to determine if it should generate report process
154144        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
154145        ------------------------------------------------------------------------------------------
154146 
154147        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
154148        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
154149    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
154150    -- call ADRs
154151    -- Bug 4922099
154152    --
154153    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
154154         (NVL(l_actual_upg_option, 'N') = 'O') OR
154155         (NVL(l_enc_upg_option, 'N') = 'O')
154156       )
154157    THEN
154158    NULL;
154159    --
154160    --
154161    
154162   l_ccid := AcctDerRule_41(
154163            p_application_id           => p_application_id
154164          , p_ae_header_id             => l_ae_header_id 
154165 , p_source_38 => p_source_38
154166          , x_transaction_coa_id       => l_adr_transaction_coa_id
154167          , x_accounting_coa_id        => l_adr_accounting_coa_id
154168          , x_value_type_code          => l_adr_value_type_code
154169          , p_side                     => 'NA'
154170    );
154171 
154172    xla_ae_lines_pkg.set_ccid(
154173     p_code_combination_id          => l_ccid
154174   , p_value_type_code              => l_adr_value_type_code
154175   , p_transaction_coa_id           => l_adr_transaction_coa_id
154176   , p_accounting_coa_id            => l_adr_accounting_coa_id
154177   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
154178   , p_adr_type_code                => 'S'
154179   , p_component_type               => l_component_type
154180   , p_component_code               => l_component_code
154181   , p_component_type_code          => l_component_type_code
154182   , p_component_appl_id            => l_component_appl_id
154183   , p_amb_context_code             => l_amb_context_code
154184   , p_side                         => 'NA'
154185   );
154186 
154187 
154188    --
154189    --
154190    END IF;
154191 
154192        --
154193        -- Update the line information that should be overwritten
154194        --
154195        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
154196                                          p_header_num   => 1);
154197        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
154198 
154199        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
154200 
154201        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
154202           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
154203        END IF;
154204 
154205       --
154206       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
154207       --
154208       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
154209           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
154210       ELSE
154211           ---------------------------------------------------------------------------------------------------
154212           -- 4262811a Switch Sign
154213           ---------------------------------------------------------------------------------------------------
154214           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
154215           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
154216                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
154217           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
154218                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
154219           -- 5132302
154220           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
154221                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
154222 
154223       END IF;
154224 
154225       -- 4955764
154226       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
154227       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
154228 
154229 
154230       XLA_AE_LINES_PKG.ValidateCurrentLine;
154231       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
154232 
154233       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
154234                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
154235                ,p_balance_type_code => l_balance_type_code);
154236 
154237    END IF;
154238 
154239    -----------------------------------------------------------------------------------------
154240    -- 4262811 Multiperiod Accounting
154241    -----------------------------------------------------------------------------------------
154242      -- No MPA option is assigned.
154243 
154244 
154245 END IF;
154246 END IF;
154247 --
154248 
154249 --
154250 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
154251    trace
154252       (p_msg      => 'END of AcctLineType_251'
154253       ,p_level    => C_LEVEL_PROCEDURE
154254       ,p_module   => l_log_module);
154255 END IF;
154256 --
154257 EXCEPTION
154258   WHEN xla_exceptions_pkg.application_exception THEN
154259       RAISE;
154260   WHEN OTHERS THEN
154261        xla_exceptions_pkg.raise_message
154262            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_251');
154263 END AcctLineType_251;
154264 --
154265 
154266 ---------------------------------------
154267 --
154268 -- PRIVATE FUNCTION
154269 --         AcctLineType_252
154270 --
154271 ---------------------------------------
154272 PROCEDURE AcctLineType_252 (
154273   p_application_id        IN NUMBER
154274  ,p_event_id              IN NUMBER
154275  ,p_calculate_acctd_flag  IN VARCHAR2
154276  ,p_calculate_g_l_flag    IN VARCHAR2
154277  ,p_actual_flag           IN OUT VARCHAR2
154278  ,p_balance_type_code     OUT VARCHAR2
154279  ,p_gain_or_loss_ref      OUT VARCHAR2
154280  
154281 --Invoice Distribution Type
154282  , p_source_21            IN VARCHAR2
154283  , p_source_21_meaning    IN VARCHAR2
154284 --Accounting Reversal Indicator
154285  , p_source_41            IN VARCHAR2
154286 --Distribution Link Type
154287  , p_source_43            IN VARCHAR2
154288 --Allocation to Main Distribution Identifier
154289  , p_source_45            IN NUMBER
154290 --Invoice Identifier
154291  , p_source_46            IN NUMBER
154292 --Invoice Distribution Identifier
154293  , p_source_52            IN NUMBER
154294 --Payables Encumbrance Upgrade Credit Account
154295  , p_source_53            IN NUMBER
154296 --Payables Encumbrance Upgrade Credit Amount
154297  , p_source_54            IN NUMBER
154298 --Invoice Currency Code
154299  , p_source_55            IN VARCHAR2
154300 --Payables Encumbrance Upgrade Credit Base Amount
154301  , p_source_56            IN NUMBER
154302 --Payables Encumbrance Upgrade Debit Account
154303  , p_source_57            IN NUMBER
154304 --Payables Encumbrance Upgrade Debit Amount
154305  , p_source_58            IN NUMBER
154306 --Payables Encumbrance Upgrade Debit Base Amount
154307  , p_source_59            IN NUMBER
154308 --Payables Encumbrance Upgrade Option
154309  , p_source_60            IN VARCHAR2
154310 --Deferred Accounting End Date
154311  , p_source_65            IN DATE
154312 --Deferred Accounting Option
154313  , p_source_66            IN VARCHAR2
154314 --Deferred Accounting Start Date
154315  , p_source_67            IN DATE
154316 --Override Accounted Amount Indicator
154317  , p_source_68            IN VARCHAR2
154318  , p_source_68_meaning    IN VARCHAR2
154319 --Third Party Type
154320  , p_source_71            IN VARCHAR2
154321 --Parent Reversal Identifier
154322  , p_source_72            IN NUMBER
154323 --Invoice Distribution Statistical Amount
154324  , p_source_73            IN NUMBER
154325 --Invoice Distribution Tax Line Identifier
154326  , p_source_74            IN NUMBER
154327 --Invoice Distribution Tax Distribution Identifier from Tax
154328  , p_source_75            IN NUMBER
154329 --Invoice Distribution Summary Tax Line Identifier
154330  , p_source_76            IN NUMBER
154331 --Payables Upgrade Credit Encumbrance Type Identifier
154332  , p_source_77            IN NUMBER
154333 --Payables Upgrade Debit Encumbrance Type Identifier
154334  , p_source_78            IN NUMBER
154335 --Business Flow Accounts Payable Application Identifier
154336  , p_source_79            IN NUMBER
154337 --Business Flow Invoice Distribution Type
154338  , p_source_80            IN VARCHAR2
154339 --Business Flow Invoice Entity Code
154340  , p_source_81            IN VARCHAR2
154341 --Business Flow Invoice Distribution Identifier
154342  , p_source_82            IN NUMBER
154343 --Business Flow Invoice Identifier
154344  , p_source_83            IN NUMBER
154345 --Accrue on Receipt Option
154346  , p_source_84            IN VARCHAR2
154347  , p_source_84_meaning    IN VARCHAR2
154348 --Amount for Variance Amount
154349  , p_source_85            IN NUMBER
154350 --Purchasing Encumbrance Option
154351  , p_source_86            IN VARCHAR2
154352  , p_source_86_meaning    IN VARCHAR2
154353 --Invoice Encumbered Option
154354  , p_source_87            IN VARCHAR2
154355  , p_source_87_meaning    IN VARCHAR2
154356 --Variance Amount in Ledger Currency
154357  , p_source_88            IN NUMBER
154358 )
154359 IS
154360 
154361 l_component_type              VARCHAR2(80);
154362 l_component_code              VARCHAR2(30);
154363 l_component_type_code         VARCHAR2(1);
154364 l_component_appl_id           INTEGER;
154365 l_amb_context_code            VARCHAR2(30);
154366 l_entity_code                 VARCHAR2(30);
154367 l_event_class_code            VARCHAR2(30);
154368 l_ae_header_id                NUMBER;
154369 l_event_type_code             VARCHAR2(30);
154370 l_line_definition_code        VARCHAR2(30);
154371 l_line_definition_owner_code  VARCHAR2(1);
154372 --
154373 -- adr variables
154374 l_segment                     VARCHAR2(30);
154375 l_ccid                        NUMBER;
154376 l_adr_transaction_coa_id      NUMBER;
154377 l_adr_accounting_coa_id       NUMBER;
154378 l_adr_flexfield_segment_code  VARCHAR2(30);
154379 l_adr_flex_value_set_id       NUMBER;
154380 l_adr_value_type_code         VARCHAR2(30);
154381 l_adr_value_combination_id    NUMBER;
154382 l_adr_value_segment_code      VARCHAR2(30);
154383 
154384 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
154385 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
154386 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
154387 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
154388 
154389 -- 4262811 Variables ------------------------------------------------------------------------------------------
154390 l_entered_amt_idx             NUMBER;
154391 l_accted_amt_idx              NUMBER;
154392 l_acc_rev_flag                VARCHAR2(1);
154393 l_accrual_line_num            NUMBER;
154394 l_tmp_amt                     NUMBER;
154395 l_acc_rev_natural_side_code   VARCHAR2(1);
154396 
154397 l_num_entries                 NUMBER;
154398 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
154399 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
154400 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
154401 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
154402 l_recog_line_1                NUMBER;
154403 l_recog_line_2                NUMBER;
154404 
154405 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
154406 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
154407 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
154408 
154409 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
154410 
154411 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
154412 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
154413 
154414 ---------------------------------------------------------------------------------------------------------------
154415 
154416 
154417 --
154418 -- bulk performance
154419 --
154420 l_balance_type_code           VARCHAR2(1);
154421 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
154422 l_log_module                  VARCHAR2(240);
154423 
154424 --
154425 -- Upgrade strategy
154426 --
154427 l_actual_upg_option           VARCHAR2(1);
154428 l_enc_upg_option           VARCHAR2(1);
154429 
154430 --
154431 BEGIN
154432 --
154433 IF g_log_enabled THEN
154434       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_252';
154435 END IF;
154436 --
154437 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
154438 
154439       trace
154440          (p_msg      => 'BEGIN of AcctLineType_252'
154441          ,p_level    => C_LEVEL_PROCEDURE
154442          ,p_module   => l_log_module);
154443 
154444 END IF;
154445 --
154446 l_component_type             := 'AMB_JLT';
154447 l_component_code             := 'AP_TAX_AMOUNT_VARIANCE_CM_ENC';
154448 l_component_type_code        := 'S';
154449 l_component_appl_id          :=  200;
154450 l_amb_context_code           := 'DEFAULT';
154451 l_entity_code                := 'AP_INVOICES';
154452 l_event_class_code           := 'CREDIT MEMOS';
154453 l_event_type_code            := 'CREDIT MEMOS_ALL';
154454 l_line_definition_owner_code := 'S';
154455 l_line_definition_code       := 'ENC_REV_CM_ALL';
154456 --
154457 l_balance_type_code          := 'E';
154461 l_adr_accounting_coa_id       := NULL;
154458 l_segment                     := NULL;
154459 l_ccid                        := NULL;
154460 l_adr_transaction_coa_id      := NULL;
154462 l_adr_flexfield_segment_code  := NULL;
154463 l_adr_flex_value_set_id       := NULL;
154464 l_adr_value_type_code         := NULL;
154465 l_adr_value_combination_id    := NULL;
154466 l_adr_value_segment_code      := NULL;
154467 
154468 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
154469 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
154470 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
154471 l_budgetary_control_flag     := 'N';
154472 
154473 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
154474 l_bflow_applied_to_amt       := NULL; -- 5132302
154475 l_entered_amt_idx            := NULL;          -- 4262811
154476 l_accted_amt_idx             := NULL;          -- 4262811
154477 l_acc_rev_flag               := NULL;          -- 4262811
154478 l_accrual_line_num           := NULL;          -- 4262811
154479 l_tmp_amt                    := NULL;          -- 4262811
154480 --
154481  
154482 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
154483     l_balance_type_code <> 'B' THEN
154487 NVL(p_source_84,'
154484 IF NVL(p_source_21,'
154485 ') =  'NONREC_TAX' AND 
154486 p_source_85 IS NOT NULL AND 
154488 ') <>  'Y' AND 
154489 NVL(p_source_86,'
154490 ') =  'Y' AND 
154491 NVL(p_source_87,'
154492 ') =  'Y'
154493  THEN 
154494 
154495    --
154496    XLA_AE_LINES_PKG.SetNewLine;
154497 
154498    p_balance_type_code          := l_balance_type_code;
154499    -- set the flag so later we will know whether the gain loss line needs to be created
154500    
154501    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
154502      p_actual_flag :='A';
154503    END IF;
154504 
154505    --
154506    -- bulk performance
154507    --
154508    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
154509                                       p_header_num   => 0); -- 4262811
154510    --
154511    -- set accounting line options
154512    --
154513    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
154514            p_natural_side_code          => 'C'
154515          , p_gain_or_loss_flag          => 'N'
154516          , p_gl_transfer_mode_code      => 'S'
154517          , p_acct_entry_type_code       => 'E'
154518          , p_switch_side_flag           => 'Y'
154519          , p_merge_duplicate_code       => 'A'
154520          );
154521    --
154522    l_acc_rev_natural_side_code := 'D';  -- 4262811
154523    -- 
154524    --
154525    -- set accounting line type info
154526    --
154527    xla_ae_lines_pkg.SetAcctLineType
154528       (p_component_type             => l_component_type
154529       ,p_event_type_code            => l_event_type_code
154530       ,p_line_definition_owner_code => l_line_definition_owner_code
154531       ,p_line_definition_code       => l_line_definition_code
154532       ,p_accounting_line_code       => l_component_code
154533       ,p_accounting_line_type_code  => l_component_type_code
154534       ,p_accounting_line_appl_id    => l_component_appl_id
154535       ,p_amb_context_code           => l_amb_context_code
154536       ,p_entity_code                => l_entity_code
154537       ,p_event_class_code           => l_event_class_code);
154538    --
154539    -- set accounting class
154540    --
154541    xla_ae_lines_pkg.SetAcctClass(
154542            p_accounting_class_code  => 'TAV'
154543          , p_ae_header_id           => l_ae_header_id
154544          );
154545 
154546    --
154547    -- set rounding class
154548    --
154549    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
154550                       'TAV';
154551 
154552    --
154553    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
154554    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
154555    --
154556    -- bulk performance
154557    --
154558    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
154559 
154560    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
154561       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
154562 
154563    -- 4955764
154564    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
154565       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
154566 
154567    -- 4458381 Public Sector Enh
154568    
154569    --
154570    -- set accounting attributes for the line type
154571    --
154572    l_entered_amt_idx := 23;
154573    l_accted_amt_idx  := 25;
154574    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
154575    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
154576    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
154577    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
154578    l_rec_acct_attrs.array_num_value(2)  := 
154579 xla_ae_sources_pkg.GetSystemSourceNum(
154580    p_source_code           => 'XLA_EVENT_APPL_ID'
154581  , p_source_type_code      => 'Y'
154582  , p_source_application_id =>  602
154583 );
154584    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
154585    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
154586    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
154587    l_rec_acct_attrs.array_char_value(4)  := 
154588 xla_ae_sources_pkg.GetSystemSourceChar(
154589    p_source_code           => 'XLA_ENTITY_CODE'
154590  , p_source_type_code      => 'Y'
154591  , p_source_application_id =>  602
154592 );
154593    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
154594    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
154595    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
154596    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
154597    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
154598    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
154599    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
154600    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
154601    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
154602    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
154603    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
154604    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
154605    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
154606    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
154607    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
154608    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
154609    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
154610    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
154611    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
154612    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
154613    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
154614    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
154615    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
154616    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
154617    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
154618    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
154619    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
154620    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
154621    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
154622    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
154623    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
154624    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
154625    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
154626    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
154627    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
154628    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
154629    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
154630    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
154631    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
154632    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
154633    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
154634    l_rec_acct_attrs.array_num_value(25)  := p_source_88;
154635    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
154636    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
154637    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
154638    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
154639    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
154640    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
154641    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
154642    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
154643    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
154644    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
154645    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
154646    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
154647    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
154648    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
154649    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
154650    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
154651    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
154652    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
154653    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
154654    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
154655    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
154656    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
154657    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
154658    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
154659    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
154660    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
154661 
154662    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
154663    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
154664 
154665    ---------------------------------------------------------------------------------------------------------------
154666    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
154667    ---------------------------------------------------------------------------------------------------------------
154668    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
154669 
154670    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
154671    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
154672 
154673    IF xla_accounting_cache_pkg.GetValueChar
154674          (p_source_code         => 'LEDGER_CATEGORY_CODE'
154675          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
154676    AND l_bflow_method_code = 'PRIOR_ENTRY'
154677 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
154678    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
154679          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
154680        )
154681    THEN
154682          xla_ae_lines_pkg.BflowUpgEntry
154683            (p_business_method_code    => l_bflow_method_code
154684            ,p_business_class_code     => l_bflow_class_code
154685            ,p_balance_type            => l_balance_type_code);
154686    ELSE
154687       NULL;
154688 XLA_AE_LINES_PKG.business_flow_validation(
154689                                 p_business_method_code     => l_bflow_method_code
154690                                ,p_business_class_code      => l_bflow_class_code
154691                                ,p_inherit_description_flag => l_inherit_desc_flag);
154692    END IF;
154693 
154694    --
154695    -- call analytical criteria
154696    --
154697    -- Inherited Analytical Criteria for business flow method of Prior Entry.
154698    --
154699    -- call description
154700    --
154701    -- No description or it is inherited.
154702    --
154703    -- call ADRs
154704    -- Bug 4922099
154705    --
154706    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
154707         (NVL(l_actual_upg_option, 'N') = 'O') OR
154708         (NVL(l_enc_upg_option, 'N') = 'O')
154709       )
154710    THEN
154711    NULL;
154712    --
154713    --
154714    
154715    --
154716    --
154717    END IF;
154718    --
154719    -- Bug 4922099
154720    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
154721           (NVL(l_enc_upg_option, 'N') = 'O')
154722         ) AND
154723         (l_bflow_method_code = 'PRIOR_ENTRY')
154724       )
154725    THEN
154726       IF
154727       --
154728       1 = 1
154729       --
154730       THEN
154731       xla_accounting_err_pkg.build_message
154732                                     (p_appli_s_name            => 'XLA'
154733                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
154734                                     ,p_token_1                 => 'LINE_NUMBER'
154735                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
154736                                     ,p_token_2                 => 'LINE_TYPE_NAME'
154737                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
154741                                                                             ,l_component_appl_id
154738                                                                              l_component_type
154739                                                                             ,l_component_code
154740                                                                             ,l_component_type_code
154742                                                                             ,l_amb_context_code
154743                                                                             ,l_entity_code
154744                                                                             ,l_event_class_code
154745                                                                            )
154746                                     ,p_token_3                 => 'OWNER'
154747                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
154748                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
154749                                                                           ,p_lookup_code    => l_component_type_code
154750                                                                          )
154751                                     ,p_token_4                 => 'PRODUCT_NAME'
154752                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
154753                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
154754                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
154755                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
154756                                     ,p_ae_header_id            =>  NULL
154757                                        );
154758 
154759         IF (C_LEVEL_ERROR>= g_log_level) THEN
154760                  trace
154761                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
154762                       ,p_level    => C_LEVEL_ERROR
154763                       ,p_module   => l_log_module);
154764         END IF;
154765       END IF;
154766    END IF;
154767    --
154768    --
154769    ------------------------------------------------------------------------------------------------
154770    -- 4219869 Business Flow
154771    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
154772    -- Prior Entry.  Currently, the following code is always generated.
154773    ------------------------------------------------------------------------------------------------
154774    -- No ValidateCurrentLine for business flow method of Prior Entry
154775 
154776    ------------------------------------------------------------------------------------
154777    -- 4219869 Business Flow
154778    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
154779    ------------------------------------------------------------------------------------
154780    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
154781 
154782    ----------------------------------------------------------------------------------
154783    -- 4219869 Business Flow
154784    -- Update journal entry status -- Need to generate this within IF <condition>
154785    ----------------------------------------------------------------------------------
154786    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
154787          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
154788          ,p_balance_type_code => l_balance_type_code
154789          );
154790 
154791    -------------------------------------------------------------------------------------------
154792    -- 4262811 - Generate the Accrual Reversal lines
154793    -------------------------------------------------------------------------------------------
154794    BEGIN
154795       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
154796                               (g_array_event(p_event_id).array_value_num('header_index'));
154797       IF l_acc_rev_flag IS NULL THEN
154798          l_acc_rev_flag := 'N';
154799       END IF;
154800    EXCEPTION
154801       WHEN OTHERS THEN
154802          l_acc_rev_flag := 'N';
154803    END;
154804    --
154805    IF (l_acc_rev_flag = 'Y') THEN
154806 
154807        -- 4645092  ------------------------------------------------------------------------------
154808        -- To allow MPA report to determine if it should generate report process
154809        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
154810        ------------------------------------------------------------------------------------------
154811 
154812        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
154813        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
154814    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
154815    -- call ADRs
154816    -- Bug 4922099
154817    --
154818    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
154819         (NVL(l_actual_upg_option, 'N') = 'O') OR
154820         (NVL(l_enc_upg_option, 'N') = 'O')
154821       )
154822    THEN
154823    NULL;
154824    --
154825    --
154826    
154827    --
154828    --
154829    END IF;
154830 
154831        --
154832        -- Update the line information that should be overwritten
154833        --
154834        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
154835                                          p_header_num   => 1);
154836        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
154837 
154838        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
154839 
154840        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
154841           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
154842        END IF;
154843 
154844       --
154845       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
154846       --
154847       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
154848           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
154849       ELSE
154850           ---------------------------------------------------------------------------------------------------
154851           -- 4262811a Switch Sign
154852           ---------------------------------------------------------------------------------------------------
154853           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
154854           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
154855                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
154856           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
154857                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
154858           -- 5132302
154859           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
154860                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
154861 
154862       END IF;
154863 
154864       -- 4955764
154865       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
154866       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
154867 
154868 
154869       XLA_AE_LINES_PKG.ValidateCurrentLine;
154870       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
154871 
154872       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
154873                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
154874                ,p_balance_type_code => l_balance_type_code);
154875 
154876    END IF;
154877 
154878    -----------------------------------------------------------------------------------------
154879    -- 4262811 Multiperiod Accounting
154880    -----------------------------------------------------------------------------------------
154881      -- No MPA option is assigned.
154882 
154883 
154884 END IF;
154885 END IF;
154886 --
154887 
154888 --
154889 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
154890    trace
154891       (p_msg      => 'END of AcctLineType_252'
154892       ,p_level    => C_LEVEL_PROCEDURE
154893       ,p_module   => l_log_module);
154894 END IF;
154895 --
154896 EXCEPTION
154897   WHEN xla_exceptions_pkg.application_exception THEN
154898       RAISE;
154899   WHEN OTHERS THEN
154900        xla_exceptions_pkg.raise_message
154901            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_252');
154902 END AcctLineType_252;
154903 --
154904 
154905 ---------------------------------------
154906 --
154907 -- PRIVATE FUNCTION
154908 --         AcctLineType_253
154909 --
154910 ---------------------------------------
154911 PROCEDURE AcctLineType_253 (
154912   p_application_id        IN NUMBER
154913  ,p_event_id              IN NUMBER
154914  ,p_calculate_acctd_flag  IN VARCHAR2
154915  ,p_calculate_g_l_flag    IN VARCHAR2
154916  ,p_actual_flag           IN OUT VARCHAR2
154917  ,p_balance_type_code     OUT VARCHAR2
154918  ,p_gain_or_loss_ref      OUT VARCHAR2
154919  
154920 --Invoice Distribution Type
154921  , p_source_21            IN VARCHAR2
154922  , p_source_21_meaning    IN VARCHAR2
154923 --Accounting Reversal Indicator
154924  , p_source_41            IN VARCHAR2
154925 --Distribution Link Type
154926  , p_source_43            IN VARCHAR2
154927 --Allocation to Main Distribution Identifier
154928  , p_source_45            IN NUMBER
154929 --Invoice Identifier
154930  , p_source_46            IN NUMBER
154931 --Invoice Distribution Identifier
154932  , p_source_52            IN NUMBER
154933 --Payables Encumbrance Upgrade Credit Account
154934  , p_source_53            IN NUMBER
154935 --Payables Encumbrance Upgrade Credit Amount
154936  , p_source_54            IN NUMBER
154937 --Invoice Currency Code
154938  , p_source_55            IN VARCHAR2
154939 --Payables Encumbrance Upgrade Credit Base Amount
154940  , p_source_56            IN NUMBER
154941 --Payables Encumbrance Upgrade Debit Account
154945 --Payables Encumbrance Upgrade Debit Base Amount
154942  , p_source_57            IN NUMBER
154943 --Payables Encumbrance Upgrade Debit Amount
154944  , p_source_58            IN NUMBER
154946  , p_source_59            IN NUMBER
154947 --Payables Encumbrance Upgrade Option
154948  , p_source_60            IN VARCHAR2
154949 --Deferred Accounting End Date
154950  , p_source_65            IN DATE
154951 --Deferred Accounting Option
154952  , p_source_66            IN VARCHAR2
154953 --Deferred Accounting Start Date
154954  , p_source_67            IN DATE
154955 --Override Accounted Amount Indicator
154956  , p_source_68            IN VARCHAR2
154957  , p_source_68_meaning    IN VARCHAR2
154958 --Third Party Type
154959  , p_source_71            IN VARCHAR2
154960 --Parent Reversal Identifier
154961  , p_source_72            IN NUMBER
154962 --Invoice Distribution Tax Line Identifier
154963  , p_source_74            IN NUMBER
154964 --Invoice Distribution Tax Distribution Identifier from Tax
154965  , p_source_75            IN NUMBER
154966 --Invoice Distribution Summary Tax Line Identifier
154967  , p_source_76            IN NUMBER
154968 --Payables Upgrade Credit Encumbrance Type Identifier
154969  , p_source_77            IN NUMBER
154970 --Payables Upgrade Debit Encumbrance Type Identifier
154971  , p_source_78            IN NUMBER
154972 --Business Flow Accounts Payable Application Identifier
154973  , p_source_79            IN NUMBER
154974 --Business Flow Invoice Distribution Type
154975  , p_source_80            IN VARCHAR2
154976 --Business Flow Invoice Entity Code
154977  , p_source_81            IN VARCHAR2
154978 --Business Flow Invoice Distribution Identifier
154979  , p_source_82            IN NUMBER
154980 --Business Flow Invoice Identifier
154981  , p_source_83            IN NUMBER
154982 --Accrue on Receipt Option
154983  , p_source_84            IN VARCHAR2
154984  , p_source_84_meaning    IN VARCHAR2
154985 --Amount for Variance Amount
154986  , p_source_85            IN NUMBER
154987 --Purchasing Encumbrance Option
154988  , p_source_86            IN VARCHAR2
154989  , p_source_86_meaning    IN VARCHAR2
154990 --Invoice Encumbered Option
154991  , p_source_87            IN VARCHAR2
154992  , p_source_87_meaning    IN VARCHAR2
154993 --Variance Amount in Ledger Currency
154994  , p_source_88            IN NUMBER
154995 )
154996 IS
154997 
154998 l_component_type              VARCHAR2(80);
154999 l_component_code              VARCHAR2(30);
155000 l_component_type_code         VARCHAR2(1);
155001 l_component_appl_id           INTEGER;
155002 l_amb_context_code            VARCHAR2(30);
155003 l_entity_code                 VARCHAR2(30);
155004 l_event_class_code            VARCHAR2(30);
155005 l_ae_header_id                NUMBER;
155006 l_event_type_code             VARCHAR2(30);
155007 l_line_definition_code        VARCHAR2(30);
155008 l_line_definition_owner_code  VARCHAR2(1);
155009 --
155010 -- adr variables
155011 l_segment                     VARCHAR2(30);
155012 l_ccid                        NUMBER;
155013 l_adr_transaction_coa_id      NUMBER;
155014 l_adr_accounting_coa_id       NUMBER;
155015 l_adr_flexfield_segment_code  VARCHAR2(30);
155016 l_adr_flex_value_set_id       NUMBER;
155017 l_adr_value_type_code         VARCHAR2(30);
155018 l_adr_value_combination_id    NUMBER;
155019 l_adr_value_segment_code      VARCHAR2(30);
155020 
155021 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
155022 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
155023 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
155024 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
155025 
155029 l_acc_rev_flag                VARCHAR2(1);
155026 -- 4262811 Variables ------------------------------------------------------------------------------------------
155027 l_entered_amt_idx             NUMBER;
155028 l_accted_amt_idx              NUMBER;
155030 l_accrual_line_num            NUMBER;
155031 l_tmp_amt                     NUMBER;
155032 l_acc_rev_natural_side_code   VARCHAR2(1);
155033 
155034 l_num_entries                 NUMBER;
155035 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
155036 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
155037 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
155038 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
155039 l_recog_line_1                NUMBER;
155040 l_recog_line_2                NUMBER;
155041 
155042 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
155043 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
155044 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
155045 
155046 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
155047 
155048 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
155049 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
155050 
155051 ---------------------------------------------------------------------------------------------------------------
155052 
155053 
155054 --
155055 -- bulk performance
155056 --
155057 l_balance_type_code           VARCHAR2(1);
155058 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
155059 l_log_module                  VARCHAR2(240);
155060 
155061 --
155062 -- Upgrade strategy
155063 --
155064 l_actual_upg_option           VARCHAR2(1);
155065 l_enc_upg_option           VARCHAR2(1);
155066 
155067 --
155068 BEGIN
155069 --
155070 IF g_log_enabled THEN
155071       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_253';
155072 END IF;
155073 --
155074 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
155075 
155076       trace
155077          (p_msg      => 'BEGIN of AcctLineType_253'
155078          ,p_level    => C_LEVEL_PROCEDURE
155079          ,p_module   => l_log_module);
155080 
155081 END IF;
155082 --
155083 l_component_type             := 'AMB_JLT';
155084 l_component_code             := 'AP_TAX_AMOUNT_VARIANCE_DM_ENC';
155085 l_component_type_code        := 'S';
155086 l_component_appl_id          :=  200;
155087 l_amb_context_code           := 'DEFAULT';
155088 l_entity_code                := 'AP_INVOICES';
155089 l_event_class_code           := 'DEBIT MEMOS';
155090 l_event_type_code            := 'DEBIT MEMOS_ALL';
155091 l_line_definition_owner_code := 'S';
155092 l_line_definition_code       := 'ENC_REV_DM_ALL';
155093 --
155094 l_balance_type_code          := 'E';
155095 l_segment                     := NULL;
155096 l_ccid                        := NULL;
155097 l_adr_transaction_coa_id      := NULL;
155098 l_adr_accounting_coa_id       := NULL;
155099 l_adr_flexfield_segment_code  := NULL;
155100 l_adr_flex_value_set_id       := NULL;
155101 l_adr_value_type_code         := NULL;
155102 l_adr_value_combination_id    := NULL;
155103 l_adr_value_segment_code      := NULL;
155104 
155105 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
155106 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
155107 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
155108 l_budgetary_control_flag     := 'N';
155109 
155110 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
155111 l_bflow_applied_to_amt       := NULL; -- 5132302
155112 l_entered_amt_idx            := NULL;          -- 4262811
155113 l_accted_amt_idx             := NULL;          -- 4262811
155114 l_acc_rev_flag               := NULL;          -- 4262811
155115 l_accrual_line_num           := NULL;          -- 4262811
155116 l_tmp_amt                    := NULL;          -- 4262811
155117 --
155118  
155119 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
155120     l_balance_type_code <> 'B' THEN
155121 IF NVL(p_source_21,'
155122 ') =  'NONREC_TAX' AND 
155123 p_source_85 IS NOT NULL AND 
155124 NVL(p_source_84,'
155125 ') <>  'Y' AND 
155126 NVL(p_source_86,'
155127 ') =  'Y' AND 
155128 NVL(p_source_87,'
155129 ') =  'Y'
155130  THEN 
155131 
155132    --
155133    XLA_AE_LINES_PKG.SetNewLine;
155134 
155135    p_balance_type_code          := l_balance_type_code;
155136    -- set the flag so later we will know whether the gain loss line needs to be created
155137    
155138    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
155139      p_actual_flag :='A';
155140    END IF;
155141 
155142    --
155143    -- bulk performance
155144    --
155145    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
155146                                       p_header_num   => 0); -- 4262811
155147    --
155148    -- set accounting line options
155149    --
155150    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
155151            p_natural_side_code          => 'C'
155152          , p_gain_or_loss_flag          => 'N'
155153          , p_gl_transfer_mode_code      => 'S'
155154          , p_acct_entry_type_code       => 'E'
155155          , p_switch_side_flag           => 'Y'
155156          , p_merge_duplicate_code       => 'A'
155157          );
155158    --
155159    l_acc_rev_natural_side_code := 'D';  -- 4262811
155160    -- 
155161    --
155162    -- set accounting line type info
155163    --
155164    xla_ae_lines_pkg.SetAcctLineType
155165       (p_component_type             => l_component_type
155166       ,p_event_type_code            => l_event_type_code
155167       ,p_line_definition_owner_code => l_line_definition_owner_code
155168       ,p_line_definition_code       => l_line_definition_code
155169       ,p_accounting_line_code       => l_component_code
155170       ,p_accounting_line_type_code  => l_component_type_code
155171       ,p_accounting_line_appl_id    => l_component_appl_id
155172       ,p_amb_context_code           => l_amb_context_code
155173       ,p_entity_code                => l_entity_code
155174       ,p_event_class_code           => l_event_class_code);
155175    --
155176    -- set accounting class
155177    --
155178    xla_ae_lines_pkg.SetAcctClass(
155179            p_accounting_class_code  => 'TAV'
155180          , p_ae_header_id           => l_ae_header_id
155181          );
155182 
155183    --
155184    -- set rounding class
155185    --
155186    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
155187                       'TAV';
155188 
155189    --
155190    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
155191    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
155192    --
155193    -- bulk performance
155194    --
155195    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
155196 
155197    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
155198       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
155199 
155200    -- 4955764
155201    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
155202       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
155203 
155204    -- 4458381 Public Sector Enh
155205    
155206    --
155207    -- set accounting attributes for the line type
155208    --
155209    l_entered_amt_idx := 23;
155210    l_accted_amt_idx  := 25;
155211    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
155212    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
155213    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
155214    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
155215    l_rec_acct_attrs.array_num_value(2)  := 
155216 xla_ae_sources_pkg.GetSystemSourceNum(
155217    p_source_code           => 'XLA_EVENT_APPL_ID'
155218  , p_source_type_code      => 'Y'
155219  , p_source_application_id =>  602
155220 );
155221    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
155222    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
155223    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
155224    l_rec_acct_attrs.array_char_value(4)  := 
155225 xla_ae_sources_pkg.GetSystemSourceChar(
155226    p_source_code           => 'XLA_ENTITY_CODE'
155227  , p_source_type_code      => 'Y'
155228  , p_source_application_id =>  602
155229 );
155230    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
155231    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
155232    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
155233    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
155234    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
155235    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
155236    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
155237    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
155238    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
155239    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
155240    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
155241    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
155242    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
155243    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
155244    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
155245    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
155246    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
155247    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
155248    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
155249    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
155250    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
155251    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
155252    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
155253    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
155254    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
155255    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
155256    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
155257    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
155258    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
155259    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
155260    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
155261    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
155262    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
155263    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
155264    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
155265    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
155266    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
155267    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
155268    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
155269    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
155270    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
155271    l_rec_acct_attrs.array_num_value(25)  := p_source_88;
155272    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
155273    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
155274    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
155275    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
155276    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
155277    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
155278    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
155279    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
155280    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
155281    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
155282    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
155283    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
155284    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
155285    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
155286    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
155287    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
155288    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
155289    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
155290    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
155291    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
155292    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
155293    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
155294    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
155295    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
155296 
155297    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
155298    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
155299 
155300    ---------------------------------------------------------------------------------------------------------------
155301    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
155302    ---------------------------------------------------------------------------------------------------------------
155303    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
155304 
155305    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
155306    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
155307 
155308    IF xla_accounting_cache_pkg.GetValueChar
155309          (p_source_code         => 'LEDGER_CATEGORY_CODE'
155310          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
155311    AND l_bflow_method_code = 'PRIOR_ENTRY'
155312 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
155313    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
155314          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
155315        )
155316    THEN
155317          xla_ae_lines_pkg.BflowUpgEntry
155318            (p_business_method_code    => l_bflow_method_code
155319            ,p_business_class_code     => l_bflow_class_code
155320            ,p_balance_type            => l_balance_type_code);
155321    ELSE
155322       NULL;
155323 XLA_AE_LINES_PKG.business_flow_validation(
155324                                 p_business_method_code     => l_bflow_method_code
155325                                ,p_business_class_code      => l_bflow_class_code
155326                                ,p_inherit_description_flag => l_inherit_desc_flag);
155327    END IF;
155328 
155329    --
155330    -- call analytical criteria
155331    --
155332    -- Inherited Analytical Criteria for business flow method of Prior Entry.
155333    --
155334    -- call description
155335    --
155336    -- No description or it is inherited.
155337    --
155338    -- call ADRs
155339    -- Bug 4922099
155340    --
155341    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
155342         (NVL(l_actual_upg_option, 'N') = 'O') OR
155343         (NVL(l_enc_upg_option, 'N') = 'O')
155344       )
155345    THEN
155346    NULL;
155347    --
155348    --
155349    
155350    --
155351    --
155352    END IF;
155353    --
155354    -- Bug 4922099
155355    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
155356           (NVL(l_enc_upg_option, 'N') = 'O')
155357         ) AND
155358         (l_bflow_method_code = 'PRIOR_ENTRY')
155359       )
155360    THEN
155361       IF
155362       --
155363       1 = 1
155364       --
155365       THEN
155366       xla_accounting_err_pkg.build_message
155367                                     (p_appli_s_name            => 'XLA'
155368                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
155369                                     ,p_token_1                 => 'LINE_NUMBER'
155370                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
155371                                     ,p_token_2                 => 'LINE_TYPE_NAME'
155372                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
155373                                                                              l_component_type
155374                                                                             ,l_component_code
155375                                                                             ,l_component_type_code
155376                                                                             ,l_component_appl_id
155377                                                                             ,l_amb_context_code
155378                                                                             ,l_entity_code
155379                                                                             ,l_event_class_code
155380                                                                            )
155381                                     ,p_token_3                 => 'OWNER'
155382                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
155383                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
155384                                                                           ,p_lookup_code    => l_component_type_code
155385                                                                          )
155386                                     ,p_token_4                 => 'PRODUCT_NAME'
155387                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
155388                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
155389                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
155390                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
155391                                     ,p_ae_header_id            =>  NULL
155392                                        );
155393 
155394         IF (C_LEVEL_ERROR>= g_log_level) THEN
155395                  trace
155396                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
155397                       ,p_level    => C_LEVEL_ERROR
155398                       ,p_module   => l_log_module);
155399         END IF;
155400       END IF;
155401    END IF;
155402    --
155403    --
155404    ------------------------------------------------------------------------------------------------
155405    -- 4219869 Business Flow
155406    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
155407    -- Prior Entry.  Currently, the following code is always generated.
155411    ------------------------------------------------------------------------------------
155408    ------------------------------------------------------------------------------------------------
155409    -- No ValidateCurrentLine for business flow method of Prior Entry
155410 
155412    -- 4219869 Business Flow
155413    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
155414    ------------------------------------------------------------------------------------
155415    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
155416 
155417    ----------------------------------------------------------------------------------
155418    -- 4219869 Business Flow
155419    -- Update journal entry status -- Need to generate this within IF <condition>
155420    ----------------------------------------------------------------------------------
155421    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
155422          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
155423          ,p_balance_type_code => l_balance_type_code
155424          );
155425 
155426    -------------------------------------------------------------------------------------------
155427    -- 4262811 - Generate the Accrual Reversal lines
155428    -------------------------------------------------------------------------------------------
155429    BEGIN
155430       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
155431                               (g_array_event(p_event_id).array_value_num('header_index'));
155432       IF l_acc_rev_flag IS NULL THEN
155433          l_acc_rev_flag := 'N';
155434       END IF;
155435    EXCEPTION
155436       WHEN OTHERS THEN
155437          l_acc_rev_flag := 'N';
155438    END;
155439    --
155440    IF (l_acc_rev_flag = 'Y') THEN
155441 
155442        -- 4645092  ------------------------------------------------------------------------------
155443        -- To allow MPA report to determine if it should generate report process
155444        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
155445        ------------------------------------------------------------------------------------------
155446 
155447        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
155448        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
155449    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
155450    -- call ADRs
155451    -- Bug 4922099
155452    --
155453    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
155454         (NVL(l_actual_upg_option, 'N') = 'O') OR
155455         (NVL(l_enc_upg_option, 'N') = 'O')
155456       )
155457    THEN
155458    NULL;
155459    --
155460    --
155461    
155462    --
155463    --
155464    END IF;
155465 
155466        --
155467        -- Update the line information that should be overwritten
155468        --
155472 
155469        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
155470                                          p_header_num   => 1);
155471        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
155473        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
155474 
155475        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
155476           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
155477        END IF;
155478 
155479       --
155480       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
155481       --
155482       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
155483           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
155484       ELSE
155485           ---------------------------------------------------------------------------------------------------
155486           -- 4262811a Switch Sign
155487           ---------------------------------------------------------------------------------------------------
155488           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
155489           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
155490                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
155491           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
155492                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
155493           -- 5132302
155494           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
155495                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
155496 
155497       END IF;
155498 
155499       -- 4955764
155500       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
155501       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
155502 
155503 
155504       XLA_AE_LINES_PKG.ValidateCurrentLine;
155505       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
155506 
155507       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
155508                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
155509                ,p_balance_type_code => l_balance_type_code);
155510 
155511    END IF;
155512 
155513    -----------------------------------------------------------------------------------------
155514    -- 4262811 Multiperiod Accounting
155515    -----------------------------------------------------------------------------------------
155516      -- No MPA option is assigned.
155517 
155518 
155519 END IF;
155520 END IF;
155521 --
155522 
155523 --
155524 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
155525    trace
155526       (p_msg      => 'END of AcctLineType_253'
155527       ,p_level    => C_LEVEL_PROCEDURE
155528       ,p_module   => l_log_module);
155529 END IF;
155530 --
155531 EXCEPTION
155532   WHEN xla_exceptions_pkg.application_exception THEN
155533       RAISE;
155534   WHEN OTHERS THEN
155535        xla_exceptions_pkg.raise_message
155536            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_253');
155537 END AcctLineType_253;
155538 --
155539 
155540 ---------------------------------------
155541 --
155542 -- PRIVATE FUNCTION
155543 --         AcctLineType_254
155544 --
155545 ---------------------------------------
155546 PROCEDURE AcctLineType_254 (
155547   p_application_id        IN NUMBER
155548  ,p_event_id              IN NUMBER
155549  ,p_calculate_acctd_flag  IN VARCHAR2
155550  ,p_calculate_g_l_flag    IN VARCHAR2
155554  
155551  ,p_actual_flag           IN OUT VARCHAR2
155552  ,p_balance_type_code     OUT VARCHAR2
155553  ,p_gain_or_loss_ref      OUT VARCHAR2
155555 --Invoice Distribution Type
155556  , p_source_21            IN VARCHAR2
155557  , p_source_21_meaning    IN VARCHAR2
155558 --Accounting Reversal Indicator
155559  , p_source_41            IN VARCHAR2
155560 --Distribution Link Type
155561  , p_source_43            IN VARCHAR2
155562 --Allocation to Main Distribution Identifier
155563  , p_source_45            IN NUMBER
155564 --Invoice Identifier
155565  , p_source_46            IN NUMBER
155566 --Invoice Distribution Identifier
155567  , p_source_52            IN NUMBER
155568 --Payables Encumbrance Upgrade Credit Account
155572 --Invoice Currency Code
155569  , p_source_53            IN NUMBER
155570 --Payables Encumbrance Upgrade Credit Amount
155571  , p_source_54            IN NUMBER
155573  , p_source_55            IN VARCHAR2
155574 --Payables Encumbrance Upgrade Credit Base Amount
155575  , p_source_56            IN NUMBER
155576 --Payables Encumbrance Upgrade Debit Account
155577  , p_source_57            IN NUMBER
155578 --Payables Encumbrance Upgrade Debit Amount
155579  , p_source_58            IN NUMBER
155580 --Payables Encumbrance Upgrade Debit Base Amount
155581  , p_source_59            IN NUMBER
155582 --Payables Encumbrance Upgrade Option
155583  , p_source_60            IN VARCHAR2
155584 --Invoice Distribution Amount
155585  , p_source_61            IN NUMBER
155586 --Deferred Accounting End Date
155587  , p_source_65            IN DATE
155588 --Deferred Accounting Option
155589  , p_source_66            IN VARCHAR2
155590 --Deferred Accounting Start Date
155591  , p_source_67            IN DATE
155592 --Override Accounted Amount Indicator
155593  , p_source_68            IN VARCHAR2
155594  , p_source_68_meaning    IN VARCHAR2
155595 --Third Party Type
155596  , p_source_71            IN VARCHAR2
155597 --Parent Reversal Identifier
155598  , p_source_72            IN NUMBER
155599 --Invoice Distribution Statistical Amount
155600  , p_source_73            IN NUMBER
155601 --Invoice Distribution Tax Line Identifier
155602  , p_source_74            IN NUMBER
155603 --Invoice Distribution Tax Distribution Identifier from Tax
155604  , p_source_75            IN NUMBER
155605 --Invoice Distribution Summary Tax Line Identifier
155606  , p_source_76            IN NUMBER
155607 --Payables Upgrade Credit Encumbrance Type Identifier
155608  , p_source_77            IN NUMBER
155609 --Payables Upgrade Debit Encumbrance Type Identifier
155610  , p_source_78            IN NUMBER
155611 --Business Flow Accounts Payable Application Identifier
155612  , p_source_79            IN NUMBER
155613 --Business Flow Invoice Distribution Type
155614  , p_source_80            IN VARCHAR2
155615 --Business Flow Invoice Entity Code
155616  , p_source_81            IN VARCHAR2
155617 --Business Flow Invoice Distribution Identifier
155618  , p_source_82            IN NUMBER
155619 --Business Flow Invoice Identifier
155620  , p_source_83            IN NUMBER
155621 --Accrue on Receipt Option
155622  , p_source_84            IN VARCHAR2
155623  , p_source_84_meaning    IN VARCHAR2
155624 --Amount for Variance Amount
155625  , p_source_85            IN NUMBER
155626 --Purchasing Encumbrance Option
155627  , p_source_86            IN VARCHAR2
155628  , p_source_86_meaning    IN VARCHAR2
155629 --Invoice Encumbered Option
155630  , p_source_87            IN VARCHAR2
155631  , p_source_87_meaning    IN VARCHAR2
155632 --Variance Amount in Ledger Currency
155633  , p_source_88            IN NUMBER
155634 --Invoice Distribution Encumbrance Amount
155635  , p_source_143            IN NUMBER
155636 )
155637 IS
155638 
155639 l_component_type              VARCHAR2(80);
155640 l_component_code              VARCHAR2(30);
155641 l_component_type_code         VARCHAR2(1);
155642 l_component_appl_id           INTEGER;
155643 l_amb_context_code            VARCHAR2(30);
155644 l_entity_code                 VARCHAR2(30);
155645 l_event_class_code            VARCHAR2(30);
155646 l_ae_header_id                NUMBER;
155647 l_event_type_code             VARCHAR2(30);
155648 l_line_definition_code        VARCHAR2(30);
155649 l_line_definition_owner_code  VARCHAR2(1);
155650 --
155651 -- adr variables
155652 l_segment                     VARCHAR2(30);
155653 l_ccid                        NUMBER;
155654 l_adr_transaction_coa_id      NUMBER;
155655 l_adr_accounting_coa_id       NUMBER;
155656 l_adr_flexfield_segment_code  VARCHAR2(30);
155657 l_adr_flex_value_set_id       NUMBER;
155658 l_adr_value_type_code         VARCHAR2(30);
155659 l_adr_value_combination_id    NUMBER;
155660 l_adr_value_segment_code      VARCHAR2(30);
155661 
155662 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
155663 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
155664 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
155665 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
155666 
155667 -- 4262811 Variables ------------------------------------------------------------------------------------------
155668 l_entered_amt_idx             NUMBER;
155669 l_accted_amt_idx              NUMBER;
155670 l_acc_rev_flag                VARCHAR2(1);
155671 l_accrual_line_num            NUMBER;
155672 l_tmp_amt                     NUMBER;
155673 l_acc_rev_natural_side_code   VARCHAR2(1);
155674 
155675 l_num_entries                 NUMBER;
155676 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
155677 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
155678 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
155679 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
155680 l_recog_line_1                NUMBER;
155681 l_recog_line_2                NUMBER;
155682 
155683 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
155684 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
155685 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
155686 
155687 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
155688 
155689 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
155690 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
155691 
155692 ---------------------------------------------------------------------------------------------------------------
155693 
155694 
155695 --
155696 -- bulk performance
155697 --
155698 l_balance_type_code           VARCHAR2(1);
155699 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
155700 l_log_module                  VARCHAR2(240);
155701 
155702 --
155706 l_enc_upg_option           VARCHAR2(1);
155703 -- Upgrade strategy
155704 --
155705 l_actual_upg_option           VARCHAR2(1);
155707 
155708 --
155709 BEGIN
155710 --
155711 IF g_log_enabled THEN
155712       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_254';
155713 END IF;
155714 --
155715 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
155716 
155717       trace
155718          (p_msg      => 'BEGIN of AcctLineType_254'
155719          ,p_level    => C_LEVEL_PROCEDURE
155720          ,p_module   => l_log_module);
155721 
155722 END IF;
155723 --
155724 l_component_type             := 'AMB_JLT';
155725 l_component_code             := 'AP_TAX_AMOUNT_VARIANCE_INV_ENC';
155726 l_component_type_code        := 'S';
155727 l_component_appl_id          :=  200;
155728 l_amb_context_code           := 'DEFAULT';
155729 l_entity_code                := 'AP_INVOICES';
155730 l_event_class_code           := 'INVOICES';
155731 l_event_type_code            := 'INVOICES_ALL';
155732 l_line_definition_owner_code := 'S';
155733 l_line_definition_code       := 'ENC_REV_INVOICES_ALL';
155734 --
155735 l_balance_type_code          := 'E';
155736 l_segment                     := NULL;
155737 l_ccid                        := NULL;
155738 l_adr_transaction_coa_id      := NULL;
155739 l_adr_accounting_coa_id       := NULL;
155740 l_adr_flexfield_segment_code  := NULL;
155741 l_adr_flex_value_set_id       := NULL;
155742 l_adr_value_type_code         := NULL;
155743 l_adr_value_combination_id    := NULL;
155744 l_adr_value_segment_code      := NULL;
155745 
155746 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
155747 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
155748 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
155749 l_budgetary_control_flag     := 'N';
155750 
155751 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
155752 l_bflow_applied_to_amt       := NULL; -- 5132302
155753 l_entered_amt_idx            := NULL;          -- 4262811
155754 l_accted_amt_idx             := NULL;          -- 4262811
155755 l_acc_rev_flag               := NULL;          -- 4262811
155756 l_accrual_line_num           := NULL;          -- 4262811
155757 l_tmp_amt                    := NULL;          -- 4262811
155758 --
155759  
155760 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
155761     l_balance_type_code <> 'B' THEN
155762 IF NVL(p_source_21,'
155763 ') =  'NONREC_TAX' AND 
155764 p_source_85 IS NOT NULL AND 
155765 NVL(p_source_84,'
155766 ') <>  'Y' AND 
155767 NVL(p_source_86,'
155768 ') =  'Y' AND 
155769 NVL(p_source_87,'
155770 ') =  'Y'
155771  THEN 
155772 
155773    --
155774    XLA_AE_LINES_PKG.SetNewLine;
155775 
155776    p_balance_type_code          := l_balance_type_code;
155777    -- set the flag so later we will know whether the gain loss line needs to be created
155778    
155779    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
155780      p_actual_flag :='A';
155781    END IF;
155782 
155783    --
155784    -- bulk performance
155785    --
155786    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
155787                                       p_header_num   => 0); -- 4262811
155788    --
155789    -- set accounting line options
155790    --
155791    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
155792            p_natural_side_code          => 'C'
155793          , p_gain_or_loss_flag          => 'N'
155794          , p_gl_transfer_mode_code      => 'S'
155795          , p_acct_entry_type_code       => 'E'
155796          , p_switch_side_flag           => 'Y'
155797          , p_merge_duplicate_code       => 'A'
155798          );
155799    --
155800    l_acc_rev_natural_side_code := 'D';  -- 4262811
155801    -- 
155802    --
155803    -- set accounting line type info
155804    --
155805    xla_ae_lines_pkg.SetAcctLineType
155806       (p_component_type             => l_component_type
155807       ,p_event_type_code            => l_event_type_code
155808       ,p_line_definition_owner_code => l_line_definition_owner_code
155809       ,p_line_definition_code       => l_line_definition_code
155810       ,p_accounting_line_code       => l_component_code
155811       ,p_accounting_line_type_code  => l_component_type_code
155812       ,p_accounting_line_appl_id    => l_component_appl_id
155813       ,p_amb_context_code           => l_amb_context_code
155814       ,p_entity_code                => l_entity_code
155815       ,p_event_class_code           => l_event_class_code);
155816    --
155817    -- set accounting class
155818    --
155819    xla_ae_lines_pkg.SetAcctClass(
155820            p_accounting_class_code  => 'TAV'
155821          , p_ae_header_id           => l_ae_header_id
155822          );
155823 
155824    --
155825    -- set rounding class
155826    --
155827    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
155828                       'TAV';
155829 
155830    --
155831    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
155832    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
155833    --
155834    -- bulk performance
155835    --
155836    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
155837 
155838    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
155839       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
155840 
155841    -- 4955764
155842    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
155843       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
155844 
155845    -- 4458381 Public Sector Enh
155846    
155847    --
155848    -- set accounting attributes for the line type
155849    --
155850    l_entered_amt_idx := 24;
155851    l_accted_amt_idx  := 26;
155852    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
155853    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
155854    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
155855    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
155856    l_rec_acct_attrs.array_num_value(2)  := 
155857 xla_ae_sources_pkg.GetSystemSourceNum(
155858    p_source_code           => 'XLA_EVENT_APPL_ID'
155859  , p_source_type_code      => 'Y'
155860  , p_source_application_id =>  602
155861 );
155862    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
155863    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
155864    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
155865    l_rec_acct_attrs.array_char_value(4)  := 
155866 xla_ae_sources_pkg.GetSystemSourceChar(
155867    p_source_code           => 'XLA_ENTITY_CODE'
155868  , p_source_type_code      => 'Y'
155869  , p_source_application_id =>  602
155870 );
155871    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
155872    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
155873    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
155874    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
155875    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
155876    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
155877    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
155878    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
155879    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
155880    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
155881    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
155882    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
155883    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
155884    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
155885    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
155886    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
155887    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
155888    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
155889    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
155890    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
155891    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
155892    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
155893    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
155894    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
155895    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
155896    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
155897    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
155898    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
155899    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
155900    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
155901    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
155902    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
155903    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
155904    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
155905    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
155906    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
155907    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
155911    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
155908    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
155909    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
155910    l_rec_acct_attrs.array_num_value(24)  := p_source_143;
155912    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
155913    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
155914    l_rec_acct_attrs.array_num_value(26)  := p_source_88;
155915    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
155916    l_rec_acct_attrs.array_date_value(27)  := p_source_65;
155917    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
155918    l_rec_acct_attrs.array_char_value(28)  := p_source_66;
155919    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
155920    l_rec_acct_attrs.array_date_value(29)  := p_source_67;
155921    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
155922    l_rec_acct_attrs.array_char_value(30)  := p_source_68;
155923    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
155924    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
155925    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
155926    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
155927    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
155928    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
155929    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
155930    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
155931    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
155932    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
155933    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
155934    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
155935    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
155936    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
155937    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
155938    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
155939    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
155940    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
155941 
155942    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
155943    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
155944 
155945    ---------------------------------------------------------------------------------------------------------------
155946    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
155947    ---------------------------------------------------------------------------------------------------------------
155948    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
155949 
155950    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
155951    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
155952 
155953    IF xla_accounting_cache_pkg.GetValueChar
155954          (p_source_code         => 'LEDGER_CATEGORY_CODE'
155955          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
155956    AND l_bflow_method_code = 'PRIOR_ENTRY'
155957 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
155958    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
155959          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
155960        )
155961    THEN
155962          xla_ae_lines_pkg.BflowUpgEntry
155963            (p_business_method_code    => l_bflow_method_code
155964            ,p_business_class_code     => l_bflow_class_code
155965            ,p_balance_type            => l_balance_type_code);
155966    ELSE
155967       NULL;
155968 XLA_AE_LINES_PKG.business_flow_validation(
155969                                 p_business_method_code     => l_bflow_method_code
155970                                ,p_business_class_code      => l_bflow_class_code
155974    --
155971                                ,p_inherit_description_flag => l_inherit_desc_flag);
155972    END IF;
155973 
155975    -- call analytical criteria
155976    --
155977    -- Inherited Analytical Criteria for business flow method of Prior Entry.
155978    --
155979    -- call description
155980    --
155981    -- No description or it is inherited.
155982    --
155983    -- call ADRs
155984    -- Bug 4922099
155985    --
155986    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
155987         (NVL(l_actual_upg_option, 'N') = 'O') OR
155988         (NVL(l_enc_upg_option, 'N') = 'O')
155989       )
155990    THEN
155991    NULL;
155992    --
155993    --
155994    
155995    --
155996    --
155997    END IF;
155998    --
156002         ) AND
155999    -- Bug 4922099
156000    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
156001           (NVL(l_enc_upg_option, 'N') = 'O')
156003         (l_bflow_method_code = 'PRIOR_ENTRY')
156004       )
156005    THEN
156006       IF
156007       --
156008       1 = 1
156009       --
156010       THEN
156011       xla_accounting_err_pkg.build_message
156012                                     (p_appli_s_name            => 'XLA'
156013                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
156014                                     ,p_token_1                 => 'LINE_NUMBER'
156015                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
156016                                     ,p_token_2                 => 'LINE_TYPE_NAME'
156017                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
156018                                                                              l_component_type
156019                                                                             ,l_component_code
156020                                                                             ,l_component_type_code
156021                                                                             ,l_component_appl_id
156022                                                                             ,l_amb_context_code
156023                                                                             ,l_entity_code
156024                                                                             ,l_event_class_code
156025                                                                            )
156026                                     ,p_token_3                 => 'OWNER'
156027                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
156028                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
156029                                                                           ,p_lookup_code    => l_component_type_code
156030                                                                          )
156031                                     ,p_token_4                 => 'PRODUCT_NAME'
156032                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
156033                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
156034                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
156035                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
156036                                     ,p_ae_header_id            =>  NULL
156037                                        );
156038 
156039         IF (C_LEVEL_ERROR>= g_log_level) THEN
156040                  trace
156041                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
156042                       ,p_level    => C_LEVEL_ERROR
156043                       ,p_module   => l_log_module);
156044         END IF;
156045       END IF;
156046    END IF;
156047    --
156048    --
156049    ------------------------------------------------------------------------------------------------
156050    -- 4219869 Business Flow
156051    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
156052    -- Prior Entry.  Currently, the following code is always generated.
156053    ------------------------------------------------------------------------------------------------
156054    -- No ValidateCurrentLine for business flow method of Prior Entry
156055 
156056    ------------------------------------------------------------------------------------
156057    -- 4219869 Business Flow
156058    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
156059    ------------------------------------------------------------------------------------
156060    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
156061 
156062    ----------------------------------------------------------------------------------
156063    -- 4219869 Business Flow
156064    -- Update journal entry status -- Need to generate this within IF <condition>
156065    ----------------------------------------------------------------------------------
156066    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
156067          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
156068          ,p_balance_type_code => l_balance_type_code
156069          );
156070 
156071    -------------------------------------------------------------------------------------------
156072    -- 4262811 - Generate the Accrual Reversal lines
156073    -------------------------------------------------------------------------------------------
156074    BEGIN
156075       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
156076                               (g_array_event(p_event_id).array_value_num('header_index'));
156077       IF l_acc_rev_flag IS NULL THEN
156078          l_acc_rev_flag := 'N';
156079       END IF;
156080    EXCEPTION
156081       WHEN OTHERS THEN
156082          l_acc_rev_flag := 'N';
156083    END;
156084    --
156085    IF (l_acc_rev_flag = 'Y') THEN
156086 
156087        -- 4645092  ------------------------------------------------------------------------------
156088        -- To allow MPA report to determine if it should generate report process
156089        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
156090        ------------------------------------------------------------------------------------------
156091 
156092        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
156093        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
156094    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
156095    -- call ADRs
156099         (NVL(l_actual_upg_option, 'N') = 'O') OR
156096    -- Bug 4922099
156097    --
156098    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
156100         (NVL(l_enc_upg_option, 'N') = 'O')
156101       )
156102    THEN
156103    NULL;
156104    --
156105    --
156106    
156107    --
156108    --
156109    END IF;
156110 
156111        --
156112        -- Update the line information that should be overwritten
156113        --
156114        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
156115                                          p_header_num   => 1);
156116        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
156117 
156118        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
156119 
156120        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
156121           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
156122        END IF;
156123 
156124       --
156125       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
156126       --
156127       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
156128           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
156129       ELSE
156130           ---------------------------------------------------------------------------------------------------
156131           -- 4262811a Switch Sign
156132           ---------------------------------------------------------------------------------------------------
156133           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
156134           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
156135                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
156136           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
156137                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
156138           -- 5132302
156139           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
156140                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
156141 
156142       END IF;
156143 
156144       -- 4955764
156145       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
156146       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
156147 
156148 
156149       XLA_AE_LINES_PKG.ValidateCurrentLine;
156150       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
156151 
156152       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
156153                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
156154                ,p_balance_type_code => l_balance_type_code);
156155 
156156    END IF;
156157 
156158    -----------------------------------------------------------------------------------------
156159    -- 4262811 Multiperiod Accounting
156160    -----------------------------------------------------------------------------------------
156161      -- No MPA option is assigned.
156162 
156163 
156164 END IF;
156165 END IF;
156166 --
156167 
156168 --
156169 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
156170    trace
156171       (p_msg      => 'END of AcctLineType_254'
156172       ,p_level    => C_LEVEL_PROCEDURE
156173       ,p_module   => l_log_module);
156174 END IF;
156175 --
156176 EXCEPTION
156177   WHEN xla_exceptions_pkg.application_exception THEN
156178       RAISE;
156179   WHEN OTHERS THEN
156180        xla_exceptions_pkg.raise_message
156181            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_254');
156182 END AcctLineType_254;
156183 --
156184 
156185 ---------------------------------------
156186 --
156187 -- PRIVATE FUNCTION
156188 --         AcctLineType_255
156189 --
156190 ---------------------------------------
156191 PROCEDURE AcctLineType_255 (
156192   p_application_id        IN NUMBER
156193  ,p_event_id              IN NUMBER
156194  ,p_calculate_acctd_flag  IN VARCHAR2
156195  ,p_calculate_g_l_flag    IN VARCHAR2
156196  ,p_actual_flag           IN OUT VARCHAR2
156197  ,p_balance_type_code     OUT VARCHAR2
156198  ,p_gain_or_loss_ref      OUT VARCHAR2
156199  
156200 --Invoice Distribution Type
156201  , p_source_21            IN VARCHAR2
156202  , p_source_21_meaning    IN VARCHAR2
156203 --Accounting Reversal Indicator
156204  , p_source_41            IN VARCHAR2
156205 --Distribution Link Type
156206  , p_source_43            IN VARCHAR2
156207 --Allocation to Main Distribution Identifier
156208  , p_source_45            IN NUMBER
156209 --Invoice Identifier
156210  , p_source_46            IN NUMBER
156211 --Invoice Distribution Identifier
156212  , p_source_52            IN NUMBER
156213 --Payables Encumbrance Upgrade Credit Account
156214  , p_source_53            IN NUMBER
156215 --Payables Encumbrance Upgrade Credit Amount
156216  , p_source_54            IN NUMBER
156217 --Invoice Currency Code
156218  , p_source_55            IN VARCHAR2
156219 --Payables Encumbrance Upgrade Credit Base Amount
156220  , p_source_56            IN NUMBER
156221 --Payables Encumbrance Upgrade Debit Account
156222  , p_source_57            IN NUMBER
156223 --Payables Encumbrance Upgrade Debit Amount
156224  , p_source_58            IN NUMBER
156225 --Payables Encumbrance Upgrade Debit Base Amount
156226  , p_source_59            IN NUMBER
156227 --Payables Encumbrance Upgrade Option
156228  , p_source_60            IN VARCHAR2
156229 --Deferred Accounting End Date
156230  , p_source_65            IN DATE
156231 --Deferred Accounting Option
156232  , p_source_66            IN VARCHAR2
156233 --Deferred Accounting Start Date
156234  , p_source_67            IN DATE
156235 --Override Accounted Amount Indicator
156236  , p_source_68            IN VARCHAR2
156237  , p_source_68_meaning    IN VARCHAR2
156238 --Third Party Type
156239  , p_source_71            IN VARCHAR2
156240 --Parent Reversal Identifier
156241  , p_source_72            IN NUMBER
156242 --Invoice Distribution Statistical Amount
156243  , p_source_73            IN NUMBER
156244 --Invoice Distribution Tax Line Identifier
156245  , p_source_74            IN NUMBER
156246 --Invoice Distribution Tax Distribution Identifier from Tax
156247  , p_source_75            IN NUMBER
156248 --Invoice Distribution Summary Tax Line Identifier
156249  , p_source_76            IN NUMBER
156250 --Payables Upgrade Credit Encumbrance Type Identifier
156251  , p_source_77            IN NUMBER
156252 --Payables Upgrade Debit Encumbrance Type Identifier
156253  , p_source_78            IN NUMBER
156254 --Business Flow Accounts Payable Application Identifier
156258 --Business Flow Invoice Entity Code
156255  , p_source_79            IN NUMBER
156256 --Business Flow Invoice Distribution Type
156257  , p_source_80            IN VARCHAR2
156259  , p_source_81            IN VARCHAR2
156260 --Business Flow Invoice Distribution Identifier
156261  , p_source_82            IN NUMBER
156262 --Business Flow Invoice Identifier
156263  , p_source_83            IN NUMBER
156264 --Accrue on Receipt Option
156265  , p_source_84            IN VARCHAR2
156266  , p_source_84_meaning    IN VARCHAR2
156267 --Amount for Variance Amount
156268  , p_source_85            IN NUMBER
156269 --Purchasing Encumbrance Option
156270  , p_source_86            IN VARCHAR2
156271  , p_source_86_meaning    IN VARCHAR2
156272 --Invoice Encumbered Option
156273  , p_source_87            IN VARCHAR2
156274  , p_source_87_meaning    IN VARCHAR2
156275 --Variance Amount in Ledger Currency
156276  , p_source_88            IN NUMBER
156277 )
156278 IS
156279 
156280 l_component_type              VARCHAR2(80);
156281 l_component_code              VARCHAR2(30);
156282 l_component_type_code         VARCHAR2(1);
156283 l_component_appl_id           INTEGER;
156284 l_amb_context_code            VARCHAR2(30);
156285 l_entity_code                 VARCHAR2(30);
156286 l_event_class_code            VARCHAR2(30);
156287 l_ae_header_id                NUMBER;
156288 l_event_type_code             VARCHAR2(30);
156289 l_line_definition_code        VARCHAR2(30);
156290 l_line_definition_owner_code  VARCHAR2(1);
156291 --
156292 -- adr variables
156293 l_segment                     VARCHAR2(30);
156294 l_ccid                        NUMBER;
156295 l_adr_transaction_coa_id      NUMBER;
156296 l_adr_accounting_coa_id       NUMBER;
156297 l_adr_flexfield_segment_code  VARCHAR2(30);
156298 l_adr_flex_value_set_id       NUMBER;
156299 l_adr_value_type_code         VARCHAR2(30);
156300 l_adr_value_combination_id    NUMBER;
156301 l_adr_value_segment_code      VARCHAR2(30);
156302 
156303 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
156304 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
156305 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
156306 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
156307 
156308 -- 4262811 Variables ------------------------------------------------------------------------------------------
156309 l_entered_amt_idx             NUMBER;
156310 l_accted_amt_idx              NUMBER;
156311 l_acc_rev_flag                VARCHAR2(1);
156312 l_accrual_line_num            NUMBER;
156313 l_tmp_amt                     NUMBER;
156314 l_acc_rev_natural_side_code   VARCHAR2(1);
156315 
156316 l_num_entries                 NUMBER;
156317 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
156318 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
156319 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
156320 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
156321 l_recog_line_1                NUMBER;
156322 l_recog_line_2                NUMBER;
156323 
156324 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
156325 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
156326 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
156327 
156328 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
156329 
156330 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
156331 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
156332 
156333 ---------------------------------------------------------------------------------------------------------------
156334 
156335 
156336 --
156337 -- bulk performance
156338 --
156339 l_balance_type_code           VARCHAR2(1);
156340 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
156341 l_log_module                  VARCHAR2(240);
156342 
156343 --
156344 -- Upgrade strategy
156345 --
156346 l_actual_upg_option           VARCHAR2(1);
156347 l_enc_upg_option           VARCHAR2(1);
156348 
156349 --
156350 BEGIN
156351 --
156352 IF g_log_enabled THEN
156353       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_255';
156354 END IF;
156355 --
156356 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
156357 
156358       trace
156359          (p_msg      => 'BEGIN of AcctLineType_255'
156360          ,p_level    => C_LEVEL_PROCEDURE
156361          ,p_module   => l_log_module);
156362 
156363 END IF;
156364 --
156365 l_component_type             := 'AMB_JLT';
156369 l_amb_context_code           := 'DEFAULT';
156366 l_component_code             := 'AP_TAX_AMOUNT_VARIANCE_PP_ENC';
156367 l_component_type_code        := 'S';
156368 l_component_appl_id          :=  200;
156370 l_entity_code                := 'AP_INVOICES';
156371 l_event_class_code           := 'PREPAYMENTS';
156372 l_event_type_code            := 'PREPAYMENTS_ALL';
156373 l_line_definition_owner_code := 'S';
156374 l_line_definition_code       := 'ENC_REV_PREPAY_ALL';
156375 --
156376 l_balance_type_code          := 'E';
156377 l_segment                     := NULL;
156378 l_ccid                        := NULL;
156379 l_adr_transaction_coa_id      := NULL;
156380 l_adr_accounting_coa_id       := NULL;
156381 l_adr_flexfield_segment_code  := NULL;
156382 l_adr_flex_value_set_id       := NULL;
156383 l_adr_value_type_code         := NULL;
156384 l_adr_value_combination_id    := NULL;
156385 l_adr_value_segment_code      := NULL;
156386 
156387 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
156388 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
156389 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
156390 l_budgetary_control_flag     := 'N';
156391 
156392 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
156393 l_bflow_applied_to_amt       := NULL; -- 5132302
156394 l_entered_amt_idx            := NULL;          -- 4262811
156395 l_accted_amt_idx             := NULL;          -- 4262811
156396 l_acc_rev_flag               := NULL;          -- 4262811
156397 l_accrual_line_num           := NULL;          -- 4262811
156398 l_tmp_amt                    := NULL;          -- 4262811
156399 --
156400  
156401 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
156402     l_balance_type_code <> 'B' THEN
156403 IF NVL(p_source_21,'
156404 ') =  'NONREC_TAX' AND 
156405 p_source_85 IS NOT NULL AND 
156406 NVL(p_source_84,'
156407 ') <>  'Y' AND 
156408 NVL(p_source_86,'
156409 ') =  'Y' AND 
156410 NVL(p_source_87,'
156411 ') =  'Y'
156412  THEN 
156413 
156414    --
156415    XLA_AE_LINES_PKG.SetNewLine;
156416 
156417    p_balance_type_code          := l_balance_type_code;
156418    -- set the flag so later we will know whether the gain loss line needs to be created
156419    
156420    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
156421      p_actual_flag :='A';
156422    END IF;
156423 
156424    --
156425    -- bulk performance
156426    --
156427    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
156428                                       p_header_num   => 0); -- 4262811
156429    --
156430    -- set accounting line options
156431    --
156432    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
156433            p_natural_side_code          => 'C'
156434          , p_gain_or_loss_flag          => 'N'
156435          , p_gl_transfer_mode_code      => 'S'
156436          , p_acct_entry_type_code       => 'E'
156437          , p_switch_side_flag           => 'Y'
156438          , p_merge_duplicate_code       => 'A'
156439          );
156440    --
156441    l_acc_rev_natural_side_code := 'D';  -- 4262811
156442    -- 
156443    --
156444    -- set accounting line type info
156445    --
156446    xla_ae_lines_pkg.SetAcctLineType
156447       (p_component_type             => l_component_type
156448       ,p_event_type_code            => l_event_type_code
156449       ,p_line_definition_owner_code => l_line_definition_owner_code
156450       ,p_line_definition_code       => l_line_definition_code
156451       ,p_accounting_line_code       => l_component_code
156452       ,p_accounting_line_type_code  => l_component_type_code
156453       ,p_accounting_line_appl_id    => l_component_appl_id
156454       ,p_amb_context_code           => l_amb_context_code
156455       ,p_entity_code                => l_entity_code
156456       ,p_event_class_code           => l_event_class_code);
156457    --
156458    -- set accounting class
156459    --
156460    xla_ae_lines_pkg.SetAcctClass(
156461            p_accounting_class_code  => 'TAV'
156462          , p_ae_header_id           => l_ae_header_id
156463          );
156464 
156465    --
156466    -- set rounding class
156467    --
156468    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
156469                       'TAV';
156470 
156471    --
156472    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
156473    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
156474    --
156475    -- bulk performance
156476    --
156477    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
156478 
156479    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
156480       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
156481 
156482    -- 4955764
156483    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
156484       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
156485 
156486    -- 4458381 Public Sector Enh
156487    
156488    --
156489    -- set accounting attributes for the line type
156490    --
156491    l_entered_amt_idx := 23;
156492    l_accted_amt_idx  := 25;
156493    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
156494    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
156495    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
156496    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
156497    l_rec_acct_attrs.array_num_value(2)  := 
156498 xla_ae_sources_pkg.GetSystemSourceNum(
156502 );
156499    p_source_code           => 'XLA_EVENT_APPL_ID'
156500  , p_source_type_code      => 'Y'
156501  , p_source_application_id =>  602
156503    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
156504    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
156505    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
156506    l_rec_acct_attrs.array_char_value(4)  := 
156507 xla_ae_sources_pkg.GetSystemSourceChar(
156508    p_source_code           => 'XLA_ENTITY_CODE'
156509  , p_source_type_code      => 'Y'
156510  , p_source_application_id =>  602
156511 );
156512    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
156513    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
156514    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
156515    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
156516    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
156517    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
156518    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
156519    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
156520    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
156521    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
156522    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
156523    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
156524    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
156525    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
156526    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
156527    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
156528    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
156529    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
156530    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
156531    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
156532    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
156533    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
156534    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
156535    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
156536    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
156537    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
156538    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
156539    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
156540    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
156541    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
156542    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
156543    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
156544    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
156545    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
156546    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
156547    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
156548    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
156549    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
156550    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
156551    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
156552    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
156553    l_rec_acct_attrs.array_num_value(25)  := p_source_88;
156554    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
156555    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
156556    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
156557    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
156558    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
156559    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
156560    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
156561    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
156562    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
156563    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
156564    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
156565    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
156566    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
156567    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
156568    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
156569    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
156570    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
156571    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
156572    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
156573    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
156574    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
156575    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
156576    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
156577    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
156578    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
156579    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
156580 
156581    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
156582    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
156583 
156584    ---------------------------------------------------------------------------------------------------------------
156585    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
156586    ---------------------------------------------------------------------------------------------------------------
156587    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
156588 
156589    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
156593          (p_source_code         => 'LEDGER_CATEGORY_CODE'
156590    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
156591 
156592    IF xla_accounting_cache_pkg.GetValueChar
156594          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
156595    AND l_bflow_method_code = 'PRIOR_ENTRY'
156596 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
156597    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
156598          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
156599        )
156600    THEN
156601          xla_ae_lines_pkg.BflowUpgEntry
156602            (p_business_method_code    => l_bflow_method_code
156603            ,p_business_class_code     => l_bflow_class_code
156604            ,p_balance_type            => l_balance_type_code);
156605    ELSE
156606       NULL;
156607 XLA_AE_LINES_PKG.business_flow_validation(
156608                                 p_business_method_code     => l_bflow_method_code
156609                                ,p_business_class_code      => l_bflow_class_code
156610                                ,p_inherit_description_flag => l_inherit_desc_flag);
156611    END IF;
156612 
156613    --
156614    -- call analytical criteria
156615    --
156616    -- Inherited Analytical Criteria for business flow method of Prior Entry.
156617    --
156618    -- call description
156619    --
156620    -- No description or it is inherited.
156621    --
156622    -- call ADRs
156623    -- Bug 4922099
156624    --
156625    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
156626         (NVL(l_actual_upg_option, 'N') = 'O') OR
156627         (NVL(l_enc_upg_option, 'N') = 'O')
156628       )
156629    THEN
156630    NULL;
156631    --
156632    --
156633    
156634    --
156635    --
156636    END IF;
156637    --
156638    -- Bug 4922099
156639    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
156640           (NVL(l_enc_upg_option, 'N') = 'O')
156641         ) AND
156642         (l_bflow_method_code = 'PRIOR_ENTRY')
156643       )
156644    THEN
156645       IF
156646       --
156647       1 = 1
156648       --
156649       THEN
156650       xla_accounting_err_pkg.build_message
156651                                     (p_appli_s_name            => 'XLA'
156652                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
156653                                     ,p_token_1                 => 'LINE_NUMBER'
156654                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
156655                                     ,p_token_2                 => 'LINE_TYPE_NAME'
156656                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
156657                                                                              l_component_type
156658                                                                             ,l_component_code
156659                                                                             ,l_component_type_code
156660                                                                             ,l_component_appl_id
156661                                                                             ,l_amb_context_code
156662                                                                             ,l_entity_code
156663                                                                             ,l_event_class_code
156664                                                                            )
156665                                     ,p_token_3                 => 'OWNER'
156666                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
156667                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
156668                                                                           ,p_lookup_code    => l_component_type_code
156669                                                                          )
156670                                     ,p_token_4                 => 'PRODUCT_NAME'
156671                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
156672                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
156673                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
156674                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
156675                                     ,p_ae_header_id            =>  NULL
156676                                        );
156677 
156678         IF (C_LEVEL_ERROR>= g_log_level) THEN
156679                  trace
156680                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
156681                       ,p_level    => C_LEVEL_ERROR
156682                       ,p_module   => l_log_module);
156683         END IF;
156684       END IF;
156685    END IF;
156686    --
156687    --
156688    ------------------------------------------------------------------------------------------------
156689    -- 4219869 Business Flow
156690    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
156691    -- Prior Entry.  Currently, the following code is always generated.
156692    ------------------------------------------------------------------------------------------------
156693    -- No ValidateCurrentLine for business flow method of Prior Entry
156694 
156695    ------------------------------------------------------------------------------------
156696    -- 4219869 Business Flow
156697    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
156701    ----------------------------------------------------------------------------------
156698    ------------------------------------------------------------------------------------
156699    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
156700 
156702    -- 4219869 Business Flow
156703    -- Update journal entry status -- Need to generate this within IF <condition>
156704    ----------------------------------------------------------------------------------
156705    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
156706          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
156707          ,p_balance_type_code => l_balance_type_code
156708          );
156709 
156710    -------------------------------------------------------------------------------------------
156711    -- 4262811 - Generate the Accrual Reversal lines
156712    -------------------------------------------------------------------------------------------
156713    BEGIN
156714       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
156715                               (g_array_event(p_event_id).array_value_num('header_index'));
156716       IF l_acc_rev_flag IS NULL THEN
156717          l_acc_rev_flag := 'N';
156718       END IF;
156719    EXCEPTION
156720       WHEN OTHERS THEN
156721          l_acc_rev_flag := 'N';
156722    END;
156723    --
156724    IF (l_acc_rev_flag = 'Y') THEN
156725 
156726        -- 4645092  ------------------------------------------------------------------------------
156727        -- To allow MPA report to determine if it should generate report process
156728        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
156729        ------------------------------------------------------------------------------------------
156730 
156731        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
156732        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
156733    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
156734    -- call ADRs
156735    -- Bug 4922099
156736    --
156737    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
156738         (NVL(l_actual_upg_option, 'N') = 'O') OR
156739         (NVL(l_enc_upg_option, 'N') = 'O')
156740       )
156741    THEN
156742    NULL;
156743    --
156744    --
156745    
156746    --
156747    --
156748    END IF;
156749 
156750        --
156751        -- Update the line information that should be overwritten
156752        --
156753        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
156754                                          p_header_num   => 1);
156755        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
156756 
156757        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
156758 
156759        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
156760           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
156761        END IF;
156762 
156763       --
156764       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
156765       --
156766       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
156767           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
156768       ELSE
156769           ---------------------------------------------------------------------------------------------------
156770           -- 4262811a Switch Sign
156771           ---------------------------------------------------------------------------------------------------
156772           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
156773           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
156774                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
156775           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
156776                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
156777           -- 5132302
156778           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
156779                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
156780 
156781       END IF;
156782 
156783       -- 4955764
156784       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
156785       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
156786 
156787 
156788       XLA_AE_LINES_PKG.ValidateCurrentLine;
156789       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
156790 
156791       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
156792                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
156793                ,p_balance_type_code => l_balance_type_code);
156794 
156795    END IF;
156796 
156797    -----------------------------------------------------------------------------------------
156798    -- 4262811 Multiperiod Accounting
156799    -----------------------------------------------------------------------------------------
156800      -- No MPA option is assigned.
156801 
156802 
156803 END IF;
156804 END IF;
156805 --
156806 
156807 --
156808 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
156809    trace
156810       (p_msg      => 'END of AcctLineType_255'
156811       ,p_level    => C_LEVEL_PROCEDURE
156812       ,p_module   => l_log_module);
156813 END IF;
156814 --
156815 EXCEPTION
156816   WHEN xla_exceptions_pkg.application_exception THEN
156817       RAISE;
156818   WHEN OTHERS THEN
156819        xla_exceptions_pkg.raise_message
156823 
156820            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_255');
156821 END AcctLineType_255;
156822 --
156824 ---------------------------------------
156825 --
156826 -- PRIVATE FUNCTION
156827 --         AcctLineType_256
156828 --
156829 ---------------------------------------
156830 PROCEDURE AcctLineType_256 (
156831   p_application_id        IN NUMBER
156832  ,p_event_id              IN NUMBER
156833  ,p_calculate_acctd_flag  IN VARCHAR2
156834  ,p_calculate_g_l_flag    IN VARCHAR2
156835  ,p_actual_flag           IN OUT VARCHAR2
156836  ,p_balance_type_code     OUT VARCHAR2
156837  ,p_gain_or_loss_ref      OUT VARCHAR2
156838  
156839 --Automatic Offsets Value
156840  , p_source_3            IN VARCHAR2
156841  , p_source_3_meaning    IN VARCHAR2
156842 --Invoice Distribution Account
156843  , p_source_18            IN NUMBER
156844 --Payables Options Tax Difference Account
156845  , p_source_29            IN NUMBER
156846 --Accounting Reversal Indicator
156847  , p_source_41            IN VARCHAR2
156848 --Distribution Link Type
156849  , p_source_43            IN VARCHAR2
156850 --Invoice Identifier
156851  , p_source_46            IN NUMBER
156852 --Payables Encumbrance Upgrade Credit Account
156853  , p_source_53            IN NUMBER
156854 --Payables Encumbrance Upgrade Credit Amount
156855  , p_source_54            IN NUMBER
156856 --Invoice Currency Code
156857  , p_source_55            IN VARCHAR2
156858 --Payables Encumbrance Upgrade Credit Base Amount
156859  , p_source_56            IN NUMBER
156860 --Payables Encumbrance Upgrade Debit Account
156861  , p_source_57            IN NUMBER
156862 --Payables Encumbrance Upgrade Debit Amount
156863  , p_source_58            IN NUMBER
156864 --Payables Encumbrance Upgrade Debit Base Amount
156865  , p_source_59            IN NUMBER
156866 --Payables Encumbrance Upgrade Option
156867  , p_source_60            IN VARCHAR2
156868 --Deferred Accounting End Date
156869  , p_source_65            IN DATE
156870 --Deferred Accounting Option
156871  , p_source_66            IN VARCHAR2
156872 --Deferred Accounting Start Date
156873  , p_source_67            IN DATE
156874 --Override Accounted Amount Indicator
156875  , p_source_68            IN VARCHAR2
156876  , p_source_68_meaning    IN VARCHAR2
156877 --Invoice Supplier Identifier
156878  , p_source_69            IN NUMBER
156879 --Invoice Supplier Site Identifier
156880  , p_source_70            IN NUMBER
156881 --Third Party Type
156882  , p_source_71            IN VARCHAR2
156883 --Invoice Distribution Tax Line Identifier
156884  , p_source_74            IN NUMBER
156885 --Invoice Distribution Tax Distribution Identifier from Tax
156886  , p_source_75            IN NUMBER
156887 --Invoice Distribution Summary Tax Line Identifier
156888  , p_source_76            IN NUMBER
156889 --Payables Upgrade Credit Encumbrance Type Identifier
156890  , p_source_77            IN NUMBER
156891 --Payables Upgrade Debit Encumbrance Type Identifier
156892  , p_source_78            IN NUMBER
156893 --Business Flow Accounts Payable Application Identifier
156894  , p_source_79            IN NUMBER
156895 --Prepayment Distribution Type
156896  , p_source_118            IN VARCHAR2
156897 --Prepayment Application Distribution Identifier
156898  , p_source_120            IN NUMBER
156899 --Upgrade Encumbrance Credit Account Class
156900  , p_source_125            IN VARCHAR2
156901 --Upgrade Encumbrance Debit Account Class
156902  , p_source_126            IN VARCHAR2
156903 --Prepayment Distribution Amount
156904  , p_source_127            IN NUMBER
156905 --Identifier of the Prepayment Application Reversed
156906  , p_source_129            IN NUMBER
156907 --Prepayment Distribution (Invoice Rate) Ledger Amount
156908  , p_source_134            IN NUMBER
156909 --Invoice Exchange Date
156910  , p_source_136            IN DATE
156911 --Invoice Exchange Rate
156912  , p_source_137            IN NUMBER
156913 --Invoice Exchange Rate Type
156914  , p_source_138            IN VARCHAR2
156915 --Business Flow Prepayment Invoice Distribution Type
156916  , p_source_139            IN VARCHAR2
156917 --Business Flow Prepayment Invoice Entity Code
156918  , p_source_140            IN VARCHAR2
156919 --Business Flow Prepayment Invoice Distribution Identifier
156920  , p_source_141            IN NUMBER
156921 --Business Flow Prepayment Invoice Identifier
156922  , p_source_142            IN NUMBER
156923 )
156924 IS
156925 
156926 l_component_type              VARCHAR2(80);
156927 l_component_code              VARCHAR2(30);
156928 l_component_type_code         VARCHAR2(1);
156929 l_component_appl_id           INTEGER;
156930 l_amb_context_code            VARCHAR2(30);
156931 l_entity_code                 VARCHAR2(30);
156932 l_event_class_code            VARCHAR2(30);
156933 l_ae_header_id                NUMBER;
156934 l_event_type_code             VARCHAR2(30);
156935 l_line_definition_code        VARCHAR2(30);
156936 l_line_definition_owner_code  VARCHAR2(1);
156937 --
156938 -- adr variables
156939 l_segment                     VARCHAR2(30);
156940 l_ccid                        NUMBER;
156941 l_adr_transaction_coa_id      NUMBER;
156942 l_adr_accounting_coa_id       NUMBER;
156943 l_adr_flexfield_segment_code  VARCHAR2(30);
156944 l_adr_flex_value_set_id       NUMBER;
156945 l_adr_value_type_code         VARCHAR2(30);
156946 l_adr_value_combination_id    NUMBER;
156947 l_adr_value_segment_code      VARCHAR2(30);
156948 
156949 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
156950 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
156951 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
156952 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
156953 
156954 -- 4262811 Variables ------------------------------------------------------------------------------------------
156955 l_entered_amt_idx             NUMBER;
156956 l_accted_amt_idx              NUMBER;
156957 l_acc_rev_flag                VARCHAR2(1);
156958 l_accrual_line_num            NUMBER;
156959 l_tmp_amt                     NUMBER;
156960 l_acc_rev_natural_side_code   VARCHAR2(1);
156961 
156962 l_num_entries                 NUMBER;
156963 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
156964 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
156965 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
156966 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
156967 l_recog_line_1                NUMBER;
156968 l_recog_line_2                NUMBER;
156969 
156970 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
156971 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
156972 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
156973 
156974 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
156975 
156976 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
156977 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
156978 
156979 ---------------------------------------------------------------------------------------------------------------
156980 
156981 
156982 --
156983 -- bulk performance
156984 --
156985 l_balance_type_code           VARCHAR2(1);
156986 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
156987 l_log_module                  VARCHAR2(240);
156988 
156989 --
156990 -- Upgrade strategy
156991 --
156992 l_actual_upg_option           VARCHAR2(1);
156993 l_enc_upg_option           VARCHAR2(1);
156994 
156995 --
156996 BEGIN
156997 --
156998 IF g_log_enabled THEN
156999       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_256';
157000 END IF;
157001 --
157002 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
157003 
157004       trace
157005          (p_msg      => 'BEGIN of AcctLineType_256'
157006          ,p_level    => C_LEVEL_PROCEDURE
157007          ,p_module   => l_log_module);
157008 
157009 END IF;
157010 --
157011 l_component_type             := 'AMB_JLT';
157012 l_component_code             := 'AP_TAX_DIFF_PREPAY_APP';
157013 l_component_type_code        := 'S';
157014 l_component_appl_id          :=  200;
157015 l_amb_context_code           := 'DEFAULT';
157016 l_entity_code                := 'AP_INVOICES';
157017 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
157018 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
157019 l_line_definition_owner_code := 'S';
157020 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
157021 --
157022 l_balance_type_code          := 'A';
157023 l_segment                     := NULL;
157024 l_ccid                        := NULL;
157025 l_adr_transaction_coa_id      := NULL;
157026 l_adr_accounting_coa_id       := NULL;
157027 l_adr_flexfield_segment_code  := NULL;
157028 l_adr_flex_value_set_id       := NULL;
157029 l_adr_value_type_code         := NULL;
157030 l_adr_value_combination_id    := NULL;
157031 l_adr_value_segment_code      := NULL;
157032 
157033 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
157034 l_bflow_class_code           := '';    -- 4219869 Business Flow
157035 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
157036 l_budgetary_control_flag     := 'N';
157037 
157038 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
157039 l_bflow_applied_to_amt       := NULL; -- 5132302
157040 l_entered_amt_idx            := NULL;          -- 4262811
157041 l_accted_amt_idx             := NULL;          -- 4262811
157042 l_acc_rev_flag               := NULL;          -- 4262811
157043 l_accrual_line_num           := NULL;          -- 4262811
157044 l_tmp_amt                    := NULL;          -- 4262811
157045 --
157046  
157047 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
157048     l_balance_type_code <> 'B' THEN
157049 IF NVL(p_source_118,'
157050 ') =  'TAX DIFF'
157051  THEN 
157052 
157053    --
157054    XLA_AE_LINES_PKG.SetNewLine;
157055 
157056    p_balance_type_code          := l_balance_type_code;
157057    -- set the flag so later we will know whether the gain loss line needs to be created
157058    
157059    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
157060      p_actual_flag :='A';
157061    END IF;
157062 
157063    --
157064    -- bulk performance
157065    --
157066    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
157067                                       p_header_num   => 0); -- 4262811
157068    --
157069    -- set accounting line options
157070    --
157071    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
157072            p_natural_side_code          => 'C'
157073          , p_gain_or_loss_flag          => 'N'
157074          , p_gl_transfer_mode_code      => 'S'
157075          , p_acct_entry_type_code       => 'A'
157076          , p_switch_side_flag           => 'Y'
157077          , p_merge_duplicate_code       => 'A'
157078          );
157079    --
157080    l_acc_rev_natural_side_code := 'D';  -- 4262811
157081    -- 
157082    --
157083    -- set accounting line type info
157084    --
157085    xla_ae_lines_pkg.SetAcctLineType
157086       (p_component_type             => l_component_type
157087       ,p_event_type_code            => l_event_type_code
157088       ,p_line_definition_owner_code => l_line_definition_owner_code
157089       ,p_line_definition_code       => l_line_definition_code
157090       ,p_accounting_line_code       => l_component_code
157091       ,p_accounting_line_type_code  => l_component_type_code
157092       ,p_accounting_line_appl_id    => l_component_appl_id
157093       ,p_amb_context_code           => l_amb_context_code
157094       ,p_entity_code                => l_entity_code
157095       ,p_event_class_code           => l_event_class_code);
157096    --
157097    -- set accounting class
157098    --
157099    xla_ae_lines_pkg.SetAcctClass(
157100            p_accounting_class_code  => 'TAX_DIFF'
157101          , p_ae_header_id           => l_ae_header_id
157102          );
157103 
157104    --
157105    -- set rounding class
157106    --
157107    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
157108                       'TAX_DIFF';
157109 
157110    --
157111    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
157112    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
157113    --
157119       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
157114    -- bulk performance
157115    --
157116    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
157117 
157118    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
157120 
157121    -- 4955764
157122    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
157123       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
157124 
157125    -- 4458381 Public Sector Enh
157126    
157127    --
157128    -- set accounting attributes for the line type
157129    --
157130    l_entered_amt_idx := 25;
157131    l_accted_amt_idx  := 30;
157132    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
157133    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
157134    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
157135    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
157136    l_rec_acct_attrs.array_num_value(2)  := 
157137 xla_ae_sources_pkg.GetSystemSourceNum(
157138    p_source_code           => 'XLA_EVENT_APPL_ID'
157139  , p_source_type_code      => 'Y'
157140  , p_source_application_id =>  602
157141 );
157142    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
157143    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
157144    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
157145    l_rec_acct_attrs.array_char_value(4)  := 
157146 xla_ae_sources_pkg.GetSystemSourceChar(
157147    p_source_code           => 'XLA_ENTITY_CODE'
157148  , p_source_type_code      => 'Y'
157149  , p_source_application_id =>  602
157150 );
157151    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
157152    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_120);
157153    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
157154    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
157155    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
157156    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
157157    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
157158    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
157159    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
157160    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
157161    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
157162    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
157163    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
157164    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
157165    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
157166    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_120);
157167    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
157168    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
157169    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
157170    l_rec_acct_attrs.array_char_value(14)  := p_source_125;
157171    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
157172    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
157173    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
157174    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
157175    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
157176    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
157177    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
157178    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
157179    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
157180    l_rec_acct_attrs.array_char_value(19)  := p_source_126;
157181    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
157182    l_rec_acct_attrs.array_num_value(20)  := p_source_57;
157183    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
157184    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
157185    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
157186    l_rec_acct_attrs.array_char_value(22)  := p_source_55;
157187    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
157188    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
157189    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
157190    l_rec_acct_attrs.array_char_value(24)  := p_source_60;
157191    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
157192    l_rec_acct_attrs.array_num_value(25)  := p_source_127;
157193    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
157194    l_rec_acct_attrs.array_char_value(26)  := p_source_55;
157195    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
157196    l_rec_acct_attrs.array_date_value(27)  := p_source_136;
157197    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
157198    l_rec_acct_attrs.array_num_value(28)  := p_source_137;
157199    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
157200    l_rec_acct_attrs.array_char_value(29)  := p_source_138;
157201    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
157202    l_rec_acct_attrs.array_num_value(30)  := p_source_134;
157203    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
157204    l_rec_acct_attrs.array_date_value(31)  := p_source_65;
157205    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
157206    l_rec_acct_attrs.array_char_value(32)  := p_source_66;
157207    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
157208    l_rec_acct_attrs.array_date_value(33)  := p_source_67;
157209    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
157210    l_rec_acct_attrs.array_char_value(34)  := p_source_68;
157211    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
157212    l_rec_acct_attrs.array_num_value(35)  := p_source_69;
157213    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
157214    l_rec_acct_attrs.array_num_value(36)  := p_source_70;
157215    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
157216    l_rec_acct_attrs.array_char_value(37)  := p_source_71;
157217    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
157218    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_129);
157219    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
157220    l_rec_acct_attrs.array_char_value(39)  := p_source_43;
157221    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
157222    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
157223    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
157224    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
157225    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
157226    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
157227    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
157228    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
157229    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
157230    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
157231 
157232    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
157233    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
157234 
157235    ---------------------------------------------------------------------------------------------------------------
157236    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
157237    ---------------------------------------------------------------------------------------------------------------
157238    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
157239 
157240    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
157241    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
157242 
157243    IF xla_accounting_cache_pkg.GetValueChar
157244          (p_source_code         => 'LEDGER_CATEGORY_CODE'
157245          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
157246    AND l_bflow_method_code = 'PRIOR_ENTRY'
157247 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
157248    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
157249          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
157250        )
157251    THEN
157252          xla_ae_lines_pkg.BflowUpgEntry
157253            (p_business_method_code    => l_bflow_method_code
157254            ,p_business_class_code     => l_bflow_class_code
157255            ,p_balance_type            => l_balance_type_code);
157256    ELSE
157257       NULL;
157258 -- No business flow processing for business flow method of NONE.
157259    END IF;
157260 
157261    --
157262    -- call analytical criteria
157263    --
157264    
157265    --
157266    -- call description
157267    --
157268    -- No description or it is inherited.
157269    --
157270    -- call ADRs
157271    -- Bug 4922099
157272    --
157273    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
157274         (NVL(l_actual_upg_option, 'N') = 'O') OR
157275         (NVL(l_enc_upg_option, 'N') = 'O')
157276       )
157277    THEN
157278    NULL;
157279    --
157280    --
157281    
157282   l_ccid := AcctDerRule_44(
157283            p_application_id           => p_application_id
157284          , p_ae_header_id             => l_ae_header_id 
157285 , p_source_3 => p_source_3
157286 , p_source_3_meaning => p_source_3_meaning
157287 , p_source_18 => p_source_18
157288 , p_source_29 => p_source_29
157289          , x_transaction_coa_id       => l_adr_transaction_coa_id
157290          , x_accounting_coa_id        => l_adr_accounting_coa_id
157291          , x_value_type_code          => l_adr_value_type_code
157292          , p_side                     => 'NA'
157293    );
157294 
157295    xla_ae_lines_pkg.set_ccid(
157296     p_code_combination_id          => l_ccid
157297   , p_value_type_code              => l_adr_value_type_code
157298   , p_transaction_coa_id           => l_adr_transaction_coa_id
157299   , p_accounting_coa_id            => l_adr_accounting_coa_id
157300   , p_adr_code                     => 'AP_TAX_DIFFERENCE'
157301   , p_adr_type_code                => 'S'
157302   , p_component_type               => l_component_type
157303   , p_component_code               => l_component_code
157304   , p_component_type_code          => l_component_type_code
157305   , p_component_appl_id            => l_component_appl_id
157306   , p_amb_context_code             => l_amb_context_code
157307   , p_side                         => 'NA'
157308   );
157309 
157310 
157311    l_segment := AcctDerRule_21(
157312            p_application_id           => p_application_id
157313          , p_ae_header_id             => l_ae_header_id 
157314 , p_source_3 => p_source_3
157315 , p_source_3_meaning => p_source_3_meaning
157316 , p_source_18 => p_source_18
157317          , x_transaction_coa_id       => l_adr_transaction_coa_id
157318          , x_accounting_coa_id        => l_adr_accounting_coa_id
157319          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
157320          , x_flex_value_set_id        => l_adr_flex_value_set_id
157321          , x_value_type_code          => l_adr_value_type_code
157322          , x_value_combination_id     => l_adr_value_combination_id
157323          , x_value_segment_code       => l_adr_value_segment_code
157324          , p_side                     => 'NA'
157325          , p_override_seg_flag        => 'Y'
157326    );
157327 
157328    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
157329 
157330       xla_ae_lines_pkg.set_segment(
157331           p_to_segment_code         => 'GL_BALANCING'
157332         , p_segment_value           => l_segment
157333         , p_from_segment_code       => l_adr_value_segment_code
157334         , p_from_combination_id     => l_adr_value_combination_id
157335         , p_value_type_code         => l_adr_value_type_code
157336         , p_transaction_coa_id      => l_adr_transaction_coa_id
157337         , p_accounting_coa_id       => l_adr_accounting_coa_id
157338         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
157339         , p_flex_value_set_id       => l_adr_flex_value_set_id
157340         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
157341         , p_adr_type_code           => 'S'
157342         , p_component_type          => l_component_type
157343         , p_component_code          => l_component_code
157344         , p_component_type_code     => l_component_type_code
157345         , p_component_appl_id       => l_component_appl_id
157346         , p_amb_context_code        => l_amb_context_code
157347         , p_entity_code             => 'AP_INVOICES'
157348         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
157349         , p_side                    => 'NA'
157350         );
157351 
157352   END IF;
157353 
157354    l_segment := AcctDerRule_19(
157355            p_application_id           => p_application_id
157356          , p_ae_header_id             => l_ae_header_id 
157357 , p_source_29 => p_source_29
157358          , x_transaction_coa_id       => l_adr_transaction_coa_id
157359          , x_accounting_coa_id        => l_adr_accounting_coa_id
157360          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
157361          , x_flex_value_set_id        => l_adr_flex_value_set_id
157362          , x_value_type_code          => l_adr_value_type_code
157363          , x_value_combination_id     => l_adr_value_combination_id
157364          , x_value_segment_code       => l_adr_value_segment_code
157365          , p_side                     => 'NA'
157366          , p_override_seg_flag        => 'Y'
157367    );
157368 
157369    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
157370 
157371       xla_ae_lines_pkg.set_segment(
157372           p_to_segment_code         => 'GL_ACCOUNT'
157373         , p_segment_value           => l_segment
157374         , p_from_segment_code       => l_adr_value_segment_code
157375         , p_from_combination_id     => l_adr_value_combination_id
157376         , p_value_type_code         => l_adr_value_type_code
157377         , p_transaction_coa_id      => l_adr_transaction_coa_id
157378         , p_accounting_coa_id       => l_adr_accounting_coa_id
157379         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
157380         , p_flex_value_set_id       => l_adr_flex_value_set_id
157381         , p_adr_code                => 'AP_TAX_DIFFERENCE_NAT_ACCT'
157382         , p_adr_type_code           => 'S'
157383         , p_component_type          => l_component_type
157384         , p_component_code          => l_component_code
157385         , p_component_type_code     => l_component_type_code
157386         , p_component_appl_id       => l_component_appl_id
157387         , p_amb_context_code        => l_amb_context_code
157388         , p_entity_code             => 'AP_INVOICES'
157389         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
157390         , p_side                    => 'NA'
157391         );
157392 
157393   END IF;
157394 
157395    --
157396    --
157397    END IF;
157398    --
157399    -- Bug 4922099
157400    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
157401           (NVL(l_enc_upg_option, 'N') = 'O')
157402         ) AND
157403         (l_bflow_method_code = 'PRIOR_ENTRY')
157404       )
157405    THEN
157406       IF
157407       --
157408       1 = 2
157409       --
157410       THEN
157411       xla_accounting_err_pkg.build_message
157412                                     (p_appli_s_name            => 'XLA'
157413                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
157414                                     ,p_token_1                 => 'LINE_NUMBER'
157415                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
157416                                     ,p_token_2                 => 'LINE_TYPE_NAME'
157417                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
157418                                                                              l_component_type
157419                                                                             ,l_component_code
157423                                                                             ,l_entity_code
157420                                                                             ,l_component_type_code
157421                                                                             ,l_component_appl_id
157422                                                                             ,l_amb_context_code
157424                                                                             ,l_event_class_code
157425                                                                            )
157426                                     ,p_token_3                 => 'OWNER'
157427                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
157428                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
157429                                                                           ,p_lookup_code    => l_component_type_code
157430                                                                          )
157431                                     ,p_token_4                 => 'PRODUCT_NAME'
157432                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
157433                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
157434                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
157435                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
157436                                     ,p_ae_header_id            =>  NULL
157437                                        );
157438 
157439         IF (C_LEVEL_ERROR>= g_log_level) THEN
157440                  trace
157441                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
157442                       ,p_level    => C_LEVEL_ERROR
157443                       ,p_module   => l_log_module);
157444         END IF;
157445       END IF;
157446    END IF;
157447    --
157448    --
157449    ------------------------------------------------------------------------------------------------
157450    -- 4219869 Business Flow
157451    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
157452    -- Prior Entry.  Currently, the following code is always generated.
157453    ------------------------------------------------------------------------------------------------
157454    XLA_AE_LINES_PKG.ValidateCurrentLine;
157455 
157456    ------------------------------------------------------------------------------------
157457    -- 4219869 Business Flow
157458    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
157459    ------------------------------------------------------------------------------------
157460    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
157461 
157462    ----------------------------------------------------------------------------------
157463    -- 4219869 Business Flow
157464    -- Update journal entry status -- Need to generate this within IF <condition>
157465    ----------------------------------------------------------------------------------
157466    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
157467          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
157468          ,p_balance_type_code => l_balance_type_code
157469          );
157470 
157471    -------------------------------------------------------------------------------------------
157472    -- 4262811 - Generate the Accrual Reversal lines
157473    -------------------------------------------------------------------------------------------
157474    BEGIN
157475       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
157476                               (g_array_event(p_event_id).array_value_num('header_index'));
157477       IF l_acc_rev_flag IS NULL THEN
157478          l_acc_rev_flag := 'N';
157479       END IF;
157480    EXCEPTION
157481       WHEN OTHERS THEN
157482          l_acc_rev_flag := 'N';
157483    END;
157484    --
157485    IF (l_acc_rev_flag = 'Y') THEN
157486 
157487        -- 4645092  ------------------------------------------------------------------------------
157488        -- To allow MPA report to determine if it should generate report process
157489        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
157490        ------------------------------------------------------------------------------------------
157491 
157492        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
157493        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
157494    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
157495    -- call ADRs
157496    -- Bug 4922099
157497    --
157498    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
157499         (NVL(l_actual_upg_option, 'N') = 'O') OR
157500         (NVL(l_enc_upg_option, 'N') = 'O')
157501       )
157502    THEN
157503    NULL;
157504    --
157505    --
157506    
157507   l_ccid := AcctDerRule_44(
157508            p_application_id           => p_application_id
157509          , p_ae_header_id             => l_ae_header_id 
157510 , p_source_3 => p_source_3
157511 , p_source_3_meaning => p_source_3_meaning
157512 , p_source_18 => p_source_18
157513 , p_source_29 => p_source_29
157514          , x_transaction_coa_id       => l_adr_transaction_coa_id
157515          , x_accounting_coa_id        => l_adr_accounting_coa_id
157516          , x_value_type_code          => l_adr_value_type_code
157517          , p_side                     => 'NA'
157518    );
157519 
157520    xla_ae_lines_pkg.set_ccid(
157521     p_code_combination_id          => l_ccid
157522   , p_value_type_code              => l_adr_value_type_code
157523   , p_transaction_coa_id           => l_adr_transaction_coa_id
157524   , p_accounting_coa_id            => l_adr_accounting_coa_id
157528   , p_component_code               => l_component_code
157525   , p_adr_code                     => 'AP_TAX_DIFFERENCE'
157526   , p_adr_type_code                => 'S'
157527   , p_component_type               => l_component_type
157529   , p_component_type_code          => l_component_type_code
157530   , p_component_appl_id            => l_component_appl_id
157531   , p_amb_context_code             => l_amb_context_code
157532   , p_side                         => 'NA'
157533   );
157534 
157535 
157536    l_segment := AcctDerRule_21(
157537            p_application_id           => p_application_id
157538          , p_ae_header_id             => l_ae_header_id 
157539 , p_source_3 => p_source_3
157540 , p_source_3_meaning => p_source_3_meaning
157541 , p_source_18 => p_source_18
157542          , x_transaction_coa_id       => l_adr_transaction_coa_id
157543          , x_accounting_coa_id        => l_adr_accounting_coa_id
157544          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
157545          , x_flex_value_set_id        => l_adr_flex_value_set_id
157546          , x_value_type_code          => l_adr_value_type_code
157547          , x_value_combination_id     => l_adr_value_combination_id
157548          , x_value_segment_code       => l_adr_value_segment_code
157549          , p_side                     => 'NA'
157550          , p_override_seg_flag        => 'Y'
157551    );
157552 
157553    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
157554 
157555       xla_ae_lines_pkg.set_segment(
157556           p_to_segment_code         => 'GL_BALANCING'
157557         , p_segment_value           => l_segment
157558         , p_from_segment_code       => l_adr_value_segment_code
157559         , p_from_combination_id     => l_adr_value_combination_id
157560         , p_value_type_code         => l_adr_value_type_code
157561         , p_transaction_coa_id      => l_adr_transaction_coa_id
157562         , p_accounting_coa_id       => l_adr_accounting_coa_id
157563         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
157564         , p_flex_value_set_id       => l_adr_flex_value_set_id
157565         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
157566         , p_adr_type_code           => 'S'
157567         , p_component_type          => l_component_type
157568         , p_component_code          => l_component_code
157569         , p_component_type_code     => l_component_type_code
157570         , p_component_appl_id       => l_component_appl_id
157571         , p_amb_context_code        => l_amb_context_code
157572         , p_entity_code             => 'AP_INVOICES'
157573         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
157574         , p_side                    => 'NA'
157575         );
157576 
157577   END IF;
157578 
157579    l_segment := AcctDerRule_19(
157580            p_application_id           => p_application_id
157581          , p_ae_header_id             => l_ae_header_id 
157582 , p_source_29 => p_source_29
157583          , x_transaction_coa_id       => l_adr_transaction_coa_id
157584          , x_accounting_coa_id        => l_adr_accounting_coa_id
157585          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
157586          , x_flex_value_set_id        => l_adr_flex_value_set_id
157587          , x_value_type_code          => l_adr_value_type_code
157588          , x_value_combination_id     => l_adr_value_combination_id
157589          , x_value_segment_code       => l_adr_value_segment_code
157590          , p_side                     => 'NA'
157591          , p_override_seg_flag        => 'Y'
157592    );
157593 
157594    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
157595 
157596       xla_ae_lines_pkg.set_segment(
157597           p_to_segment_code         => 'GL_ACCOUNT'
157598         , p_segment_value           => l_segment
157599         , p_from_segment_code       => l_adr_value_segment_code
157600         , p_from_combination_id     => l_adr_value_combination_id
157601         , p_value_type_code         => l_adr_value_type_code
157602         , p_transaction_coa_id      => l_adr_transaction_coa_id
157603         , p_accounting_coa_id       => l_adr_accounting_coa_id
157604         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
157605         , p_flex_value_set_id       => l_adr_flex_value_set_id
157606         , p_adr_code                => 'AP_TAX_DIFFERENCE_NAT_ACCT'
157607         , p_adr_type_code           => 'S'
157608         , p_component_type          => l_component_type
157609         , p_component_code          => l_component_code
157610         , p_component_type_code     => l_component_type_code
157611         , p_component_appl_id       => l_component_appl_id
157612         , p_amb_context_code        => l_amb_context_code
157613         , p_entity_code             => 'AP_INVOICES'
157614         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
157615         , p_side                    => 'NA'
157616         );
157617 
157618   END IF;
157619 
157620    --
157621    --
157622    END IF;
157623 
157624        --
157625        -- Update the line information that should be overwritten
157626        --
157627        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
157628                                          p_header_num   => 1);
157629        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
157630 
157631        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
157632 
157633        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
157634           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
157635        END IF;
157636 
157637       --
157638       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
157639       --
157640       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
157644           -- 4262811a Switch Sign
157641           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
157642       ELSE
157643           ---------------------------------------------------------------------------------------------------
157645           ---------------------------------------------------------------------------------------------------
157646           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
157647           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
157648                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
157649           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
157650                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
157651           -- 5132302
157652           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
157653                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
157654 
157655       END IF;
157656 
157657       -- 4955764
157658       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
157659       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
157660 
157661 
157662       XLA_AE_LINES_PKG.ValidateCurrentLine;
157663       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
157664 
157665       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
157666                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
157667                ,p_balance_type_code => l_balance_type_code);
157668 
157669    END IF;
157670 
157671    -----------------------------------------------------------------------------------------
157672    -- 4262811 Multiperiod Accounting
157673    -----------------------------------------------------------------------------------------
157674      -- No MPA option is assigned.
157675 
157676 
157677 END IF;
157678 END IF;
157679 --
157680 
157681 --
157682 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
157683    trace
157684       (p_msg      => 'END of AcctLineType_256'
157685       ,p_level    => C_LEVEL_PROCEDURE
157686       ,p_module   => l_log_module);
157687 END IF;
157688 --
157689 EXCEPTION
157690   WHEN xla_exceptions_pkg.application_exception THEN
157691       RAISE;
157692   WHEN OTHERS THEN
157693        xla_exceptions_pkg.raise_message
157694            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_256');
157695 END AcctLineType_256;
157696 --
157697 
157698 ---------------------------------------
157699 --
157700 -- PRIVATE FUNCTION
157701 --         AcctLineType_257
157702 --
157703 ---------------------------------------
157704 PROCEDURE AcctLineType_257 (
157705   p_application_id        IN NUMBER
157706  ,p_event_id              IN NUMBER
157707  ,p_calculate_acctd_flag  IN VARCHAR2
157708  ,p_calculate_g_l_flag    IN VARCHAR2
157709  ,p_actual_flag           IN OUT VARCHAR2
157710  ,p_balance_type_code     OUT VARCHAR2
157711  ,p_gain_or_loss_ref      OUT VARCHAR2
157712  
157713 --Invoice Distribution Type
157714  , p_source_21            IN VARCHAR2
157715  , p_source_21_meaning    IN VARCHAR2
157716 --Accounting Reversal Indicator
157717  , p_source_41            IN VARCHAR2
157718 --Distribution Link Type
157719  , p_source_43            IN VARCHAR2
157720 --Allocation to Main Distribution Identifier
157721  , p_source_45            IN NUMBER
157722 --Invoice Identifier
157723  , p_source_46            IN NUMBER
157724 --Invoice Distribution Identifier
157725  , p_source_52            IN NUMBER
157726 --Payables Encumbrance Upgrade Credit Account
157727  , p_source_53            IN NUMBER
157728 --Payables Encumbrance Upgrade Credit Amount
157729  , p_source_54            IN NUMBER
157730 --Invoice Currency Code
157731  , p_source_55            IN VARCHAR2
157732 --Payables Encumbrance Upgrade Credit Base Amount
157733  , p_source_56            IN NUMBER
157734 --Payables Encumbrance Upgrade Debit Account
157735  , p_source_57            IN NUMBER
157736 --Payables Encumbrance Upgrade Debit Amount
157737  , p_source_58            IN NUMBER
157738 --Payables Encumbrance Upgrade Debit Base Amount
157739  , p_source_59            IN NUMBER
157740 --Payables Encumbrance Upgrade Option
157741  , p_source_60            IN VARCHAR2
157742 --Deferred Accounting End Date
157743  , p_source_65            IN DATE
157744 --Deferred Accounting Option
157745  , p_source_66            IN VARCHAR2
157746 --Deferred Accounting Start Date
157747  , p_source_67            IN DATE
157748 --Override Accounted Amount Indicator
157749  , p_source_68            IN VARCHAR2
157750  , p_source_68_meaning    IN VARCHAR2
157751 --Third Party Type
157752  , p_source_71            IN VARCHAR2
157753 --Parent Reversal Identifier
157754  , p_source_72            IN NUMBER
157755 --Invoice Distribution Statistical Amount
157756  , p_source_73            IN NUMBER
157757 --Invoice Distribution Tax Line Identifier
157758  , p_source_74            IN NUMBER
157759 --Invoice Distribution Tax Distribution Identifier from Tax
157760  , p_source_75            IN NUMBER
157761 --Invoice Distribution Summary Tax Line Identifier
157762  , p_source_76            IN NUMBER
157763 --Payables Upgrade Credit Encumbrance Type Identifier
157764  , p_source_77            IN NUMBER
157765 --Payables Upgrade Debit Encumbrance Type Identifier
157766  , p_source_78            IN NUMBER
157770  , p_source_80            IN VARCHAR2
157767 --Business Flow Accounts Payable Application Identifier
157768  , p_source_79            IN NUMBER
157769 --Business Flow Invoice Distribution Type
157771 --Business Flow Invoice Entity Code
157775 --Business Flow Invoice Identifier
157772  , p_source_81            IN VARCHAR2
157773 --Business Flow Invoice Distribution Identifier
157774  , p_source_82            IN NUMBER
157776  , p_source_83            IN NUMBER
157777 --Purchasing Encumbrance Option
157778  , p_source_86            IN VARCHAR2
157779  , p_source_86_meaning    IN VARCHAR2
157780 --Invoice Encumbered Option
157781  , p_source_87            IN VARCHAR2
157782  , p_source_87_meaning    IN VARCHAR2
157783 --Invoice Distribution Encumbrance Amount
157784  , p_source_143            IN NUMBER
157785 --Invoice Distribution Encumbrance Ledger Amount
157786  , p_source_144            IN NUMBER
157787 )
157788 IS
157789 
157790 l_component_type              VARCHAR2(80);
157791 l_component_code              VARCHAR2(30);
157792 l_component_type_code         VARCHAR2(1);
157793 l_component_appl_id           INTEGER;
157794 l_amb_context_code            VARCHAR2(30);
157795 l_entity_code                 VARCHAR2(30);
157796 l_event_class_code            VARCHAR2(30);
157797 l_ae_header_id                NUMBER;
157798 l_event_type_code             VARCHAR2(30);
157799 l_line_definition_code        VARCHAR2(30);
157800 l_line_definition_owner_code  VARCHAR2(1);
157801 --
157802 -- adr variables
157803 l_segment                     VARCHAR2(30);
157804 l_ccid                        NUMBER;
157805 l_adr_transaction_coa_id      NUMBER;
157806 l_adr_accounting_coa_id       NUMBER;
157807 l_adr_flexfield_segment_code  VARCHAR2(30);
157808 l_adr_flex_value_set_id       NUMBER;
157809 l_adr_value_type_code         VARCHAR2(30);
157810 l_adr_value_combination_id    NUMBER;
157811 l_adr_value_segment_code      VARCHAR2(30);
157812 
157813 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
157814 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
157815 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
157816 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
157817 
157818 -- 4262811 Variables ------------------------------------------------------------------------------------------
157819 l_entered_amt_idx             NUMBER;
157820 l_accted_amt_idx              NUMBER;
157821 l_acc_rev_flag                VARCHAR2(1);
157822 l_accrual_line_num            NUMBER;
157823 l_tmp_amt                     NUMBER;
157824 l_acc_rev_natural_side_code   VARCHAR2(1);
157825 
157826 l_num_entries                 NUMBER;
157827 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
157828 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
157829 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
157830 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
157831 l_recog_line_1                NUMBER;
157832 l_recog_line_2                NUMBER;
157833 
157834 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
157835 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
157836 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
157837 
157838 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
157839 
157840 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
157841 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
157842 
157843 ---------------------------------------------------------------------------------------------------------------
157844 
157845 
157846 --
157847 -- bulk performance
157848 --
157849 l_balance_type_code           VARCHAR2(1);
157850 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
157851 l_log_module                  VARCHAR2(240);
157852 
157853 --
157854 -- Upgrade strategy
157855 --
157856 l_actual_upg_option           VARCHAR2(1);
157857 l_enc_upg_option           VARCHAR2(1);
157858 
157859 --
157860 BEGIN
157861 --
157862 IF g_log_enabled THEN
157863       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_257';
157864 END IF;
157865 --
157866 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
157867 
157868       trace
157869          (p_msg      => 'BEGIN of AcctLineType_257'
157870          ,p_level    => C_LEVEL_PROCEDURE
157871          ,p_module   => l_log_module);
157872 
157873 END IF;
157874 --
157875 l_component_type             := 'AMB_JLT';
157876 l_component_code             := 'AP_TAX_EXCHG_RATE_VAR_CM_ENC';
157877 l_component_type_code        := 'S';
157878 l_component_appl_id          :=  200;
157879 l_amb_context_code           := 'DEFAULT';
157883 l_line_definition_owner_code := 'S';
157880 l_entity_code                := 'AP_INVOICES';
157881 l_event_class_code           := 'CREDIT MEMOS';
157882 l_event_type_code            := 'CREDIT MEMOS_ALL';
157884 l_line_definition_code       := 'ENC_REV_CM_ALL';
157885 --
157886 l_balance_type_code          := 'E';
157887 l_segment                     := NULL;
157888 l_ccid                        := NULL;
157889 l_adr_transaction_coa_id      := NULL;
157890 l_adr_accounting_coa_id       := NULL;
157891 l_adr_flexfield_segment_code  := NULL;
157892 l_adr_flex_value_set_id       := NULL;
157893 l_adr_value_type_code         := NULL;
157894 l_adr_value_combination_id    := NULL;
157895 l_adr_value_segment_code      := NULL;
157896 
157897 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
157898 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
157899 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
157900 l_budgetary_control_flag     := 'N';
157901 
157902 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
157903 l_bflow_applied_to_amt       := NULL; -- 5132302
157904 l_entered_amt_idx            := NULL;          -- 4262811
157905 l_accted_amt_idx             := NULL;          -- 4262811
157906 l_acc_rev_flag               := NULL;          -- 4262811
157907 l_accrual_line_num           := NULL;          -- 4262811
157908 l_tmp_amt                    := NULL;          -- 4262811
157909 --
157910 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
157911             (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
157912                return;
157913   END IF;
157914   
157915 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
157916     l_balance_type_code <> 'B' THEN
157917 IF NVL(p_source_21,'
157918 ') =  'TERV' AND 
157919 NVL(p_source_86,'
157920 ') =  'Y' AND 
157921 NVL(p_source_87,'
157922 ') =  'Y'
157923  THEN 
157924 
157925    --
157926    XLA_AE_LINES_PKG.SetNewLine;
157927 
157931    IF(l_balance_type_code = 'A' ) THEN
157928    p_balance_type_code          := l_balance_type_code;
157929    -- set the flag so later we will know whether the gain loss line needs to be created
157930    
157932      p_actual_flag :='G';
157933    END IF;
157934 
157935    --
157936    -- bulk performance
157937    --
157938    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
157939                                       p_header_num   => 0); -- 4262811
157940    --
157941    -- set accounting line options
157942    --
157943    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
157944            p_natural_side_code          => 'C'
157945          , p_gain_or_loss_flag          => 'Y'
157946          , p_gl_transfer_mode_code      => 'S'
157947          , p_acct_entry_type_code       => 'E'
157948          , p_switch_side_flag           => 'Y'
157949          , p_merge_duplicate_code       => 'A'
157950          );
157951    --
157952    l_acc_rev_natural_side_code := 'D';  -- 4262811
157953    -- 
157954    --
157955    -- set accounting line type info
157956    --
157957    xla_ae_lines_pkg.SetAcctLineType
157958       (p_component_type             => l_component_type
157959       ,p_event_type_code            => l_event_type_code
157960       ,p_line_definition_owner_code => l_line_definition_owner_code
157961       ,p_line_definition_code       => l_line_definition_code
157962       ,p_accounting_line_code       => l_component_code
157963       ,p_accounting_line_type_code  => l_component_type_code
157964       ,p_accounting_line_appl_id    => l_component_appl_id
157965       ,p_amb_context_code           => l_amb_context_code
157966       ,p_entity_code                => l_entity_code
157967       ,p_event_class_code           => l_event_class_code);
157968    --
157969    -- set accounting class
157970    --
157971    xla_ae_lines_pkg.SetAcctClass(
157972            p_accounting_class_code  => 'TERV'
157973          , p_ae_header_id           => l_ae_header_id
157974          );
157975 
157976    --
157977    -- set rounding class
157978    --
157979    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
157980                       'TERV';
157981 
157982    --
157983    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
157984    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
157985    --
157986    -- bulk performance
157987    --
157988    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
157989 
157993    -- 4955764
157990    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
157991       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
157992 
157994    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
157995       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
157996 
157997    -- 4458381 Public Sector Enh
157998    
157999    --
158000    -- set accounting attributes for the line type
158001    --
158002    l_entered_amt_idx := 23;
158003    l_accted_amt_idx  := 25;
158004    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
158005    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
158006    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
158007    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
158008    l_rec_acct_attrs.array_num_value(2)  := 
158009 xla_ae_sources_pkg.GetSystemSourceNum(
158010    p_source_code           => 'XLA_EVENT_APPL_ID'
158011  , p_source_type_code      => 'Y'
158012  , p_source_application_id =>  602
158013 );
158014    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
158015    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
158016    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
158017    l_rec_acct_attrs.array_char_value(4)  := 
158018 xla_ae_sources_pkg.GetSystemSourceChar(
158019    p_source_code           => 'XLA_ENTITY_CODE'
158020  , p_source_type_code      => 'Y'
158021  , p_source_application_id =>  602
158022 );
158023    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
158024    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
158025    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
158026    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
158027    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
158028    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
158029    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
158030    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
158031    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
158032    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
158033    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
158034    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
158035    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
158036    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
158037    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
158038    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
158039    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
158040    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
158041    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
158042    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
158043    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
158044    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
158045    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
158046    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
158047    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
158048    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
158049    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
158050    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
158051    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
158052    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
158053    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
158054    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
158055    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
158056    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
158057    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
158058    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
158059    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
158063    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
158060    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
158061    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
158062    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
158064    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
158065    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
158066    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
158067    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
158071    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
158068    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
158069    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
158070    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
158072    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
158073    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
158074    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
158075    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
158076    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
158077    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
158078    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
158079    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
158080    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
158081    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
158082    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
158083    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
158084    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
158085    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
158086    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
158087    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
158088    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
158089    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
158090    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
158091 
158092    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
158093    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
158094 
158095    ---------------------------------------------------------------------------------------------------------------
158096    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
158097    ---------------------------------------------------------------------------------------------------------------
158098    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
158099 
158100    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
158101    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
158102 
158103    IF xla_accounting_cache_pkg.GetValueChar
158104          (p_source_code         => 'LEDGER_CATEGORY_CODE'
158105          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
158106    AND l_bflow_method_code = 'PRIOR_ENTRY'
158107 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
158108    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
158109          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
158110        )
158111    THEN
158112          xla_ae_lines_pkg.BflowUpgEntry
158113            (p_business_method_code    => l_bflow_method_code
158114            ,p_business_class_code     => l_bflow_class_code
158115            ,p_balance_type            => l_balance_type_code);
158116    ELSE
158117       NULL;
158118 XLA_AE_LINES_PKG.business_flow_validation(
158119                                 p_business_method_code     => l_bflow_method_code
158120                                ,p_business_class_code      => l_bflow_class_code
158121                                ,p_inherit_description_flag => l_inherit_desc_flag);
158122    END IF;
158123 
158124    --
158125    -- call analytical criteria
158126    --
158127    -- Inherited Analytical Criteria for business flow method of Prior Entry.
158128    --
158129    -- call description
158130    --
158131    -- No description or it is inherited.
158132    --
158133    -- call ADRs
158134    -- Bug 4922099
158135    --
158136    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
158137         (NVL(l_actual_upg_option, 'N') = 'O') OR
158138         (NVL(l_enc_upg_option, 'N') = 'O')
158139       )
158140    THEN
158141    NULL;
158142    --
158143    --
158144    
158145    --
158146    --
158147    END IF;
158148    --
158149    -- Bug 4922099
158150    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
158151           (NVL(l_enc_upg_option, 'N') = 'O')
158152         ) AND
158153         (l_bflow_method_code = 'PRIOR_ENTRY')
158154       )
158155    THEN
158156       IF
158157       --
158158       1 = 1
158159       --
158160       THEN
158161       xla_accounting_err_pkg.build_message
158162                                     (p_appli_s_name            => 'XLA'
158163                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
158164                                     ,p_token_1                 => 'LINE_NUMBER'
158165                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
158166                                     ,p_token_2                 => 'LINE_TYPE_NAME'
158167                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
158168                                                                              l_component_type
158169                                                                             ,l_component_code
158170                                                                             ,l_component_type_code
158171                                                                             ,l_component_appl_id
158172                                                                             ,l_amb_context_code
158173                                                                             ,l_entity_code
158177                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
158174                                                                             ,l_event_class_code
158175                                                                            )
158176                                     ,p_token_3                 => 'OWNER'
158178                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
158179                                                                           ,p_lookup_code    => l_component_type_code
158180                                                                          )
158184                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
158181                                     ,p_token_4                 => 'PRODUCT_NAME'
158182                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
158183                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
158185                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
158186                                     ,p_ae_header_id            =>  NULL
158187                                        );
158188 
158189         IF (C_LEVEL_ERROR>= g_log_level) THEN
158190                  trace
158191                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
158192                       ,p_level    => C_LEVEL_ERROR
158193                       ,p_module   => l_log_module);
158194         END IF;
158195       END IF;
158196    END IF;
158197    --
158198    --
158199    ------------------------------------------------------------------------------------------------
158200    -- 4219869 Business Flow
158201    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
158202    -- Prior Entry.  Currently, the following code is always generated.
158203    ------------------------------------------------------------------------------------------------
158204    -- No ValidateCurrentLine for business flow method of Prior Entry
158205 
158206    ------------------------------------------------------------------------------------
158207    -- 4219869 Business Flow
158208    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
158209    ------------------------------------------------------------------------------------
158210    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
158211 
158212    ----------------------------------------------------------------------------------
158213    -- 4219869 Business Flow
158214    -- Update journal entry status -- Need to generate this within IF <condition>
158215    ----------------------------------------------------------------------------------
158216    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
158217          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
158218          ,p_balance_type_code => l_balance_type_code
158219          );
158220 
158221    -------------------------------------------------------------------------------------------
158222    -- 4262811 - Generate the Accrual Reversal lines
158223    -------------------------------------------------------------------------------------------
158224    BEGIN
158225       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
158226                               (g_array_event(p_event_id).array_value_num('header_index'));
158227       IF l_acc_rev_flag IS NULL THEN
158228          l_acc_rev_flag := 'N';
158229       END IF;
158230    EXCEPTION
158231       WHEN OTHERS THEN
158232          l_acc_rev_flag := 'N';
158233    END;
158234    --
158235    IF (l_acc_rev_flag = 'Y') THEN
158236 
158237        -- 4645092  ------------------------------------------------------------------------------
158238        -- To allow MPA report to determine if it should generate report process
158239        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
158240        ------------------------------------------------------------------------------------------
158241 
158242        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
158243        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
158244    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
158245    -- call ADRs
158246    -- Bug 4922099
158247    --
158248    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
158249         (NVL(l_actual_upg_option, 'N') = 'O') OR
158250         (NVL(l_enc_upg_option, 'N') = 'O')
158251       )
158252    THEN
158253    NULL;
158254    --
158255    --
158256    
158257    --
158258    --
158259    END IF;
158260 
158261        --
158262        -- Update the line information that should be overwritten
158263        --
158264        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
158268        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
158265                                          p_header_num   => 1);
158266        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
158267 
158269 
158270        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
158271           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
158272        END IF;
158273 
158274       --
158275       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
158276       --
158277       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
158278           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
158279       ELSE
158280           ---------------------------------------------------------------------------------------------------
158281           -- 4262811a Switch Sign
158282           ---------------------------------------------------------------------------------------------------
158283           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
158284           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
158285                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
158286           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
158287                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
158288           -- 5132302
158289           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
158290                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
158291 
158292       END IF;
158293 
158294       -- 4955764
158295       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
158296       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
158297 
158298 
158299       XLA_AE_LINES_PKG.ValidateCurrentLine;
158300       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
158301 
158302       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
158303                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
158304                ,p_balance_type_code => l_balance_type_code);
158305 
158306    END IF;
158307 
158311      -- No MPA option is assigned.
158308    -----------------------------------------------------------------------------------------
158309    -- 4262811 Multiperiod Accounting
158310    -----------------------------------------------------------------------------------------
158312 
158313 
158314 END IF;
158315 END IF;
158316 --
158317 
158318 --
158319 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
158320    trace
158321       (p_msg      => 'END of AcctLineType_257'
158322       ,p_level    => C_LEVEL_PROCEDURE
158323       ,p_module   => l_log_module);
158324 END IF;
158325 --
158326 EXCEPTION
158327   WHEN xla_exceptions_pkg.application_exception THEN
158328       RAISE;
158329   WHEN OTHERS THEN
158330        xla_exceptions_pkg.raise_message
158331            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_257');
158332 END AcctLineType_257;
158333 --
158334 
158335 ---------------------------------------
158336 --
158337 -- PRIVATE FUNCTION
158338 --         AcctLineType_258
158339 --
158340 ---------------------------------------
158341 PROCEDURE AcctLineType_258 (
158342   p_application_id        IN NUMBER
158343  ,p_event_id              IN NUMBER
158344  ,p_calculate_acctd_flag  IN VARCHAR2
158345  ,p_calculate_g_l_flag    IN VARCHAR2
158346  ,p_actual_flag           IN OUT VARCHAR2
158347  ,p_balance_type_code     OUT VARCHAR2
158348  ,p_gain_or_loss_ref      OUT VARCHAR2
158352  , p_source_21_meaning    IN VARCHAR2
158349  
158350 --Invoice Distribution Type
158351  , p_source_21            IN VARCHAR2
158353 --Accounting Reversal Indicator
158354  , p_source_41            IN VARCHAR2
158355 --Distribution Link Type
158356  , p_source_43            IN VARCHAR2
158357 --Allocation to Main Distribution Identifier
158358  , p_source_45            IN NUMBER
158359 --Invoice Identifier
158360  , p_source_46            IN NUMBER
158361 --Invoice Distribution Identifier
158362  , p_source_52            IN NUMBER
158363 --Payables Encumbrance Upgrade Credit Account
158364  , p_source_53            IN NUMBER
158365 --Payables Encumbrance Upgrade Credit Amount
158366  , p_source_54            IN NUMBER
158367 --Invoice Currency Code
158368  , p_source_55            IN VARCHAR2
158369 --Payables Encumbrance Upgrade Credit Base Amount
158370  , p_source_56            IN NUMBER
158371 --Payables Encumbrance Upgrade Debit Account
158372  , p_source_57            IN NUMBER
158373 --Payables Encumbrance Upgrade Debit Amount
158374  , p_source_58            IN NUMBER
158375 --Payables Encumbrance Upgrade Debit Base Amount
158376  , p_source_59            IN NUMBER
158377 --Payables Encumbrance Upgrade Option
158378  , p_source_60            IN VARCHAR2
158379 --Deferred Accounting End Date
158380  , p_source_65            IN DATE
158381 --Deferred Accounting Option
158382  , p_source_66            IN VARCHAR2
158383 --Deferred Accounting Start Date
158384  , p_source_67            IN DATE
158385 --Override Accounted Amount Indicator
158386  , p_source_68            IN VARCHAR2
158387  , p_source_68_meaning    IN VARCHAR2
158388 --Third Party Type
158389  , p_source_71            IN VARCHAR2
158390 --Parent Reversal Identifier
158391  , p_source_72            IN NUMBER
158392 --Invoice Distribution Tax Line Identifier
158393  , p_source_74            IN NUMBER
158394 --Invoice Distribution Tax Distribution Identifier from Tax
158395  , p_source_75            IN NUMBER
158396 --Invoice Distribution Summary Tax Line Identifier
158397  , p_source_76            IN NUMBER
158398 --Payables Upgrade Credit Encumbrance Type Identifier
158399  , p_source_77            IN NUMBER
158400 --Payables Upgrade Debit Encumbrance Type Identifier
158401  , p_source_78            IN NUMBER
158402 --Business Flow Accounts Payable Application Identifier
158403  , p_source_79            IN NUMBER
158404 --Business Flow Invoice Distribution Type
158405  , p_source_80            IN VARCHAR2
158406 --Business Flow Invoice Entity Code
158407  , p_source_81            IN VARCHAR2
158408 --Business Flow Invoice Distribution Identifier
158409  , p_source_82            IN NUMBER
158410 --Business Flow Invoice Identifier
158411  , p_source_83            IN NUMBER
158412 --Purchasing Encumbrance Option
158413  , p_source_86            IN VARCHAR2
158414  , p_source_86_meaning    IN VARCHAR2
158415 --Invoice Encumbered Option
158416  , p_source_87            IN VARCHAR2
158417  , p_source_87_meaning    IN VARCHAR2
158418 --Invoice Distribution Encumbrance Amount
158419  , p_source_143            IN NUMBER
158420 --Invoice Distribution Encumbrance Ledger Amount
158421  , p_source_144            IN NUMBER
158422 )
158423 IS
158424 
158425 l_component_type              VARCHAR2(80);
158426 l_component_code              VARCHAR2(30);
158427 l_component_type_code         VARCHAR2(1);
158428 l_component_appl_id           INTEGER;
158429 l_amb_context_code            VARCHAR2(30);
158430 l_entity_code                 VARCHAR2(30);
158431 l_event_class_code            VARCHAR2(30);
158432 l_ae_header_id                NUMBER;
158433 l_event_type_code             VARCHAR2(30);
158434 l_line_definition_code        VARCHAR2(30);
158435 l_line_definition_owner_code  VARCHAR2(1);
158436 --
158437 -- adr variables
158438 l_segment                     VARCHAR2(30);
158439 l_ccid                        NUMBER;
158440 l_adr_transaction_coa_id      NUMBER;
158441 l_adr_accounting_coa_id       NUMBER;
158442 l_adr_flexfield_segment_code  VARCHAR2(30);
158443 l_adr_flex_value_set_id       NUMBER;
158444 l_adr_value_type_code         VARCHAR2(30);
158445 l_adr_value_combination_id    NUMBER;
158446 l_adr_value_segment_code      VARCHAR2(30);
158447 
158448 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
158449 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
158450 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
158451 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
158452 
158453 -- 4262811 Variables ------------------------------------------------------------------------------------------
158454 l_entered_amt_idx             NUMBER;
158455 l_accted_amt_idx              NUMBER;
158456 l_acc_rev_flag                VARCHAR2(1);
158457 l_accrual_line_num            NUMBER;
158458 l_tmp_amt                     NUMBER;
158459 l_acc_rev_natural_side_code   VARCHAR2(1);
158460 
158461 l_num_entries                 NUMBER;
158462 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
158463 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
158464 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
158465 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
158466 l_recog_line_1                NUMBER;
158467 l_recog_line_2                NUMBER;
158468 
158469 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
158470 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
158471 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
158472 
158473 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
158474 
158475 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
158479 
158476 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
158477 
158478 ---------------------------------------------------------------------------------------------------------------
158480 
158481 --
158482 -- bulk performance
158483 --
158484 l_balance_type_code           VARCHAR2(1);
158485 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
158486 l_log_module                  VARCHAR2(240);
158487 
158488 --
158489 -- Upgrade strategy
158490 --
158491 l_actual_upg_option           VARCHAR2(1);
158492 l_enc_upg_option           VARCHAR2(1);
158493 
158494 --
158495 BEGIN
158496 --
158497 IF g_log_enabled THEN
158498       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_258';
158499 END IF;
158500 --
158501 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
158502 
158503       trace
158504          (p_msg      => 'BEGIN of AcctLineType_258'
158505          ,p_level    => C_LEVEL_PROCEDURE
158506          ,p_module   => l_log_module);
158507 
158508 END IF;
158509 --
158510 l_component_type             := 'AMB_JLT';
158511 l_component_code             := 'AP_TAX_EXCHG_RATE_VAR_DM_ENC';
158512 l_component_type_code        := 'S';
158513 l_component_appl_id          :=  200;
158514 l_amb_context_code           := 'DEFAULT';
158515 l_entity_code                := 'AP_INVOICES';
158516 l_event_class_code           := 'DEBIT MEMOS';
158517 l_event_type_code            := 'DEBIT MEMOS_ALL';
158518 l_line_definition_owner_code := 'S';
158519 l_line_definition_code       := 'ENC_REV_DM_ALL';
158520 --
158521 l_balance_type_code          := 'E';
158522 l_segment                     := NULL;
158523 l_ccid                        := NULL;
158524 l_adr_transaction_coa_id      := NULL;
158525 l_adr_accounting_coa_id       := NULL;
158526 l_adr_flexfield_segment_code  := NULL;
158527 l_adr_flex_value_set_id       := NULL;
158528 l_adr_value_type_code         := NULL;
158529 l_adr_value_combination_id    := NULL;
158530 l_adr_value_segment_code      := NULL;
158531 
158532 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
158533 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
158534 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
158535 l_budgetary_control_flag     := 'N';
158536 
158537 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
158538 l_bflow_applied_to_amt       := NULL; -- 5132302
158539 l_entered_amt_idx            := NULL;          -- 4262811
158540 l_accted_amt_idx             := NULL;          -- 4262811
158541 l_acc_rev_flag               := NULL;          -- 4262811
158542 l_accrual_line_num           := NULL;          -- 4262811
158543 l_tmp_amt                    := NULL;          -- 4262811
158544 --
158545 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
158546             (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
158547                return;
158548   END IF;
158549   
158550 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
158551     l_balance_type_code <> 'B' THEN
158552 IF NVL(p_source_21,'
158553 ') =  'TERV' AND 
158554 NVL(p_source_86,'
158555 ') =  'Y' AND 
158556 NVL(p_source_87,'
158557 ') =  'Y'
158558  THEN 
158559 
158560    --
158561    XLA_AE_LINES_PKG.SetNewLine;
158562 
158563    p_balance_type_code          := l_balance_type_code;
158564    -- set the flag so later we will know whether the gain loss line needs to be created
158565    
158566    IF(l_balance_type_code = 'A' ) THEN
158567      p_actual_flag :='G';
158568    END IF;
158569 
158570    --
158571    -- bulk performance
158572    --
158573    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
158574                                       p_header_num   => 0); -- 4262811
158575    --
158576    -- set accounting line options
158577    --
158578    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
158579            p_natural_side_code          => 'C'
158580          , p_gain_or_loss_flag          => 'Y'
158581          , p_gl_transfer_mode_code      => 'S'
158582          , p_acct_entry_type_code       => 'E'
158583          , p_switch_side_flag           => 'Y'
158584          , p_merge_duplicate_code       => 'A'
158585          );
158586    --
158587    l_acc_rev_natural_side_code := 'D';  -- 4262811
158588    -- 
158589    --
158590    -- set accounting line type info
158591    --
158592    xla_ae_lines_pkg.SetAcctLineType
158593       (p_component_type             => l_component_type
158594       ,p_event_type_code            => l_event_type_code
158595       ,p_line_definition_owner_code => l_line_definition_owner_code
158596       ,p_line_definition_code       => l_line_definition_code
158597       ,p_accounting_line_code       => l_component_code
158598       ,p_accounting_line_type_code  => l_component_type_code
158599       ,p_accounting_line_appl_id    => l_component_appl_id
158600       ,p_amb_context_code           => l_amb_context_code
158601       ,p_entity_code                => l_entity_code
158602       ,p_event_class_code           => l_event_class_code);
158603    --
158604    -- set accounting class
158605    --
158606    xla_ae_lines_pkg.SetAcctClass(
158607            p_accounting_class_code  => 'TERV'
158608          , p_ae_header_id           => l_ae_header_id
158609          );
158610 
158611    --
158612    -- set rounding class
158616 
158613    --
158614    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
158615                       'TERV';
158617    --
158618    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
158619    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
158620    --
158621    -- bulk performance
158622    --
158623    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
158624 
158625    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
158626       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
158627 
158631 
158628    -- 4955764
158629    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
158630       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
158632    -- 4458381 Public Sector Enh
158633    
158634    --
158635    -- set accounting attributes for the line type
158636    --
158637    l_entered_amt_idx := 23;
158638    l_accted_amt_idx  := 25;
158639    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
158640    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
158641    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
158642    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
158643    l_rec_acct_attrs.array_num_value(2)  := 
158644 xla_ae_sources_pkg.GetSystemSourceNum(
158645    p_source_code           => 'XLA_EVENT_APPL_ID'
158646  , p_source_type_code      => 'Y'
158647  , p_source_application_id =>  602
158648 );
158649    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
158650    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
158651    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
158652    l_rec_acct_attrs.array_char_value(4)  := 
158653 xla_ae_sources_pkg.GetSystemSourceChar(
158654    p_source_code           => 'XLA_ENTITY_CODE'
158655  , p_source_type_code      => 'Y'
158656  , p_source_application_id =>  602
158657 );
158658    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
158659    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
158660    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
158661    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
158662    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
158663    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
158664    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
158665    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
158666    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
158667    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
158668    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
158669    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
158670    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
158671    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
158672    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
158673    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
158674    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
158675    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
158676    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
158677    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
158678    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
158679    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
158680    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
158681    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
158682    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
158683    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
158684    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
158688    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
158685    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
158686    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
158687    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
158689    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
158690    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
158691    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
158692    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
158693    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
158694    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
158695    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
158696    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
158697    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
158698    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
158699    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
158700    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
158701    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
158702    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
158703    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
158704    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
158705    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
158706    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
158707    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
158708    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
158709    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
158710    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
158711    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
158712    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
158713    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
158714    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
158715    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
158716    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
158717    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
158718    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
158719    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
158720    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
158721    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
158722    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
158723    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
158724 
158725    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
158726    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
158727 
158728    ---------------------------------------------------------------------------------------------------------------
158729    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
158730    ---------------------------------------------------------------------------------------------------------------
158731    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
158732 
158733    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
158734    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
158735 
158736    IF xla_accounting_cache_pkg.GetValueChar
158740 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
158737          (p_source_code         => 'LEDGER_CATEGORY_CODE'
158738          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
158739    AND l_bflow_method_code = 'PRIOR_ENTRY'
158741    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
158742          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
158743        )
158744    THEN
158745          xla_ae_lines_pkg.BflowUpgEntry
158746            (p_business_method_code    => l_bflow_method_code
158747            ,p_business_class_code     => l_bflow_class_code
158748            ,p_balance_type            => l_balance_type_code);
158749    ELSE
158750       NULL;
158751 XLA_AE_LINES_PKG.business_flow_validation(
158752                                 p_business_method_code     => l_bflow_method_code
158753                                ,p_business_class_code      => l_bflow_class_code
158754                                ,p_inherit_description_flag => l_inherit_desc_flag);
158755    END IF;
158756 
158757    --
158758    -- call analytical criteria
158759    --
158760    -- Inherited Analytical Criteria for business flow method of Prior Entry.
158761    --
158762    -- call description
158763    --
158764    -- No description or it is inherited.
158765    --
158766    -- call ADRs
158767    -- Bug 4922099
158768    --
158772       )
158769    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
158770         (NVL(l_actual_upg_option, 'N') = 'O') OR
158771         (NVL(l_enc_upg_option, 'N') = 'O')
158773    THEN
158774    NULL;
158775    --
158776    --
158777    
158778    --
158779    --
158780    END IF;
158781    --
158782    -- Bug 4922099
158783    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
158784           (NVL(l_enc_upg_option, 'N') = 'O')
158785         ) AND
158786         (l_bflow_method_code = 'PRIOR_ENTRY')
158787       )
158788    THEN
158789       IF
158790       --
158791       1 = 1
158792       --
158793       THEN
158794       xla_accounting_err_pkg.build_message
158795                                     (p_appli_s_name            => 'XLA'
158796                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
158797                                     ,p_token_1                 => 'LINE_NUMBER'
158798                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
158799                                     ,p_token_2                 => 'LINE_TYPE_NAME'
158800                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
158801                                                                              l_component_type
158802                                                                             ,l_component_code
158803                                                                             ,l_component_type_code
158804                                                                             ,l_component_appl_id
158805                                                                             ,l_amb_context_code
158806                                                                             ,l_entity_code
158807                                                                             ,l_event_class_code
158808                                                                            )
158809                                     ,p_token_3                 => 'OWNER'
158810                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
158811                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
158812                                                                           ,p_lookup_code    => l_component_type_code
158813                                                                          )
158814                                     ,p_token_4                 => 'PRODUCT_NAME'
158815                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
158816                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
158817                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
158818                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
158819                                     ,p_ae_header_id            =>  NULL
158820                                        );
158821 
158822         IF (C_LEVEL_ERROR>= g_log_level) THEN
158823                  trace
158824                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
158825                       ,p_level    => C_LEVEL_ERROR
158826                       ,p_module   => l_log_module);
158827         END IF;
158828       END IF;
158829    END IF;
158830    --
158831    --
158832    ------------------------------------------------------------------------------------------------
158833    -- 4219869 Business Flow
158834    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
158835    -- Prior Entry.  Currently, the following code is always generated.
158836    ------------------------------------------------------------------------------------------------
158837    -- No ValidateCurrentLine for business flow method of Prior Entry
158838 
158839    ------------------------------------------------------------------------------------
158840    -- 4219869 Business Flow
158841    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
158842    ------------------------------------------------------------------------------------
158843    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
158844 
158845    ----------------------------------------------------------------------------------
158846    -- 4219869 Business Flow
158847    -- Update journal entry status -- Need to generate this within IF <condition>
158848    ----------------------------------------------------------------------------------
158849    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
158850          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
158851          ,p_balance_type_code => l_balance_type_code
158852          );
158853 
158854    -------------------------------------------------------------------------------------------
158855    -- 4262811 - Generate the Accrual Reversal lines
158856    -------------------------------------------------------------------------------------------
158857    BEGIN
158858       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
158859                               (g_array_event(p_event_id).array_value_num('header_index'));
158860       IF l_acc_rev_flag IS NULL THEN
158861          l_acc_rev_flag := 'N';
158862       END IF;
158863    EXCEPTION
158867    --
158864       WHEN OTHERS THEN
158865          l_acc_rev_flag := 'N';
158866    END;
158868    IF (l_acc_rev_flag = 'Y') THEN
158869 
158870        -- 4645092  ------------------------------------------------------------------------------
158871        -- To allow MPA report to determine if it should generate report process
158872        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
158873        ------------------------------------------------------------------------------------------
158874 
158875        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
158876        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
158877    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
158878    -- call ADRs
158879    -- Bug 4922099
158880    --
158881    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
158882         (NVL(l_actual_upg_option, 'N') = 'O') OR
158883         (NVL(l_enc_upg_option, 'N') = 'O')
158884       )
158885    THEN
158886    NULL;
158887    --
158888    --
158889    
158890    --
158891    --
158892    END IF;
158893 
158894        --
158895        -- Update the line information that should be overwritten
158896        --
158897        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
158898                                          p_header_num   => 1);
158899        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
158900 
158901        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
158902 
158903        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
158904           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
158905        END IF;
158906 
158907       --
158908       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
158909       --
158910       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
158911           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
158912       ELSE
158913           ---------------------------------------------------------------------------------------------------
158914           -- 4262811a Switch Sign
158915           ---------------------------------------------------------------------------------------------------
158916           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
158917           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
158918                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
158919           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
158920                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
158921           -- 5132302
158922           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
158923                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
158924 
158925       END IF;
158926 
158927       -- 4955764
158928       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
158929       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
158930 
158931 
158932       XLA_AE_LINES_PKG.ValidateCurrentLine;
158933       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
158934 
158935       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
158936                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
158937                ,p_balance_type_code => l_balance_type_code);
158938 
158939    END IF;
158940 
158941    -----------------------------------------------------------------------------------------
158942    -- 4262811 Multiperiod Accounting
158943    -----------------------------------------------------------------------------------------
158944      -- No MPA option is assigned.
158945 
158946 
158947 END IF;
158948 END IF;
158949 --
158950 
158951 --
158952 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
158953    trace
158954       (p_msg      => 'END of AcctLineType_258'
158955       ,p_level    => C_LEVEL_PROCEDURE
158956       ,p_module   => l_log_module);
158957 END IF;
158958 --
158959 EXCEPTION
158960   WHEN xla_exceptions_pkg.application_exception THEN
158961       RAISE;
158962   WHEN OTHERS THEN
158963        xla_exceptions_pkg.raise_message
158964            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_258');
158965 END AcctLineType_258;
158966 --
158967 
158968 ---------------------------------------
158969 --
158970 -- PRIVATE FUNCTION
158971 --         AcctLineType_259
158972 --
158973 ---------------------------------------
158974 PROCEDURE AcctLineType_259 (
158975   p_application_id        IN NUMBER
158976  ,p_event_id              IN NUMBER
158977  ,p_calculate_acctd_flag  IN VARCHAR2
158978  ,p_calculate_g_l_flag    IN VARCHAR2
158982  
158979  ,p_actual_flag           IN OUT VARCHAR2
158980  ,p_balance_type_code     OUT VARCHAR2
158981  ,p_gain_or_loss_ref      OUT VARCHAR2
158983 --Invoice Distribution Type
158984  , p_source_21            IN VARCHAR2
158985  , p_source_21_meaning    IN VARCHAR2
158986 --Accounting Reversal Indicator
158987  , p_source_41            IN VARCHAR2
158988 --Distribution Link Type
158989  , p_source_43            IN VARCHAR2
158990 --Allocation to Main Distribution Identifier
158991  , p_source_45            IN NUMBER
158992 --Invoice Identifier
158993  , p_source_46            IN NUMBER
158994 --Invoice Distribution Identifier
158995  , p_source_52            IN NUMBER
158996 --Payables Encumbrance Upgrade Credit Account
158997  , p_source_53            IN NUMBER
158998 --Payables Encumbrance Upgrade Credit Amount
158999  , p_source_54            IN NUMBER
159000 --Invoice Currency Code
159001  , p_source_55            IN VARCHAR2
159002 --Payables Encumbrance Upgrade Credit Base Amount
159003  , p_source_56            IN NUMBER
159004 --Payables Encumbrance Upgrade Debit Account
159005  , p_source_57            IN NUMBER
159006 --Payables Encumbrance Upgrade Debit Amount
159007  , p_source_58            IN NUMBER
159008 --Payables Encumbrance Upgrade Debit Base Amount
159009  , p_source_59            IN NUMBER
159010 --Payables Encumbrance Upgrade Option
159011  , p_source_60            IN VARCHAR2
159012 --Invoice Distribution Amount
159013  , p_source_61            IN NUMBER
159014 --Deferred Accounting End Date
159015  , p_source_65            IN DATE
159016 --Deferred Accounting Option
159017  , p_source_66            IN VARCHAR2
159021  , p_source_68            IN VARCHAR2
159018 --Deferred Accounting Start Date
159019  , p_source_67            IN DATE
159020 --Override Accounted Amount Indicator
159022  , p_source_68_meaning    IN VARCHAR2
159023 --Third Party Type
159024  , p_source_71            IN VARCHAR2
159025 --Parent Reversal Identifier
159026  , p_source_72            IN NUMBER
159027 --Invoice Distribution Statistical Amount
159028  , p_source_73            IN NUMBER
159029 --Invoice Distribution Tax Line Identifier
159030  , p_source_74            IN NUMBER
159031 --Invoice Distribution Tax Distribution Identifier from Tax
159032  , p_source_75            IN NUMBER
159033 --Invoice Distribution Summary Tax Line Identifier
159034  , p_source_76            IN NUMBER
159035 --Payables Upgrade Credit Encumbrance Type Identifier
159036  , p_source_77            IN NUMBER
159037 --Payables Upgrade Debit Encumbrance Type Identifier
159038  , p_source_78            IN NUMBER
159039 --Business Flow Accounts Payable Application Identifier
159040  , p_source_79            IN NUMBER
159041 --Business Flow Invoice Distribution Type
159042  , p_source_80            IN VARCHAR2
159043 --Business Flow Invoice Entity Code
159044  , p_source_81            IN VARCHAR2
159045 --Business Flow Invoice Distribution Identifier
159046  , p_source_82            IN NUMBER
159047 --Business Flow Invoice Identifier
159048  , p_source_83            IN NUMBER
159049 --Purchasing Encumbrance Option
159050  , p_source_86            IN VARCHAR2
159051  , p_source_86_meaning    IN VARCHAR2
159052 --Invoice Encumbered Option
159053  , p_source_87            IN VARCHAR2
159054  , p_source_87_meaning    IN VARCHAR2
159055 --Invoice Distribution Encumbrance Amount
159056  , p_source_143            IN NUMBER
159057 --Invoice Distribution Encumbrance Ledger Amount
159058  , p_source_144            IN NUMBER
159059 )
159060 IS
159061 
159062 l_component_type              VARCHAR2(80);
159063 l_component_code              VARCHAR2(30);
159064 l_component_type_code         VARCHAR2(1);
159068 l_event_class_code            VARCHAR2(30);
159065 l_component_appl_id           INTEGER;
159066 l_amb_context_code            VARCHAR2(30);
159067 l_entity_code                 VARCHAR2(30);
159069 l_ae_header_id                NUMBER;
159070 l_event_type_code             VARCHAR2(30);
159071 l_line_definition_code        VARCHAR2(30);
159072 l_line_definition_owner_code  VARCHAR2(1);
159073 --
159074 -- adr variables
159075 l_segment                     VARCHAR2(30);
159076 l_ccid                        NUMBER;
159077 l_adr_transaction_coa_id      NUMBER;
159078 l_adr_accounting_coa_id       NUMBER;
159079 l_adr_flexfield_segment_code  VARCHAR2(30);
159080 l_adr_flex_value_set_id       NUMBER;
159081 l_adr_value_type_code         VARCHAR2(30);
159082 l_adr_value_combination_id    NUMBER;
159083 l_adr_value_segment_code      VARCHAR2(30);
159084 
159085 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
159086 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
159087 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
159088 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
159089 
159090 -- 4262811 Variables ------------------------------------------------------------------------------------------
159091 l_entered_amt_idx             NUMBER;
159092 l_accted_amt_idx              NUMBER;
159093 l_acc_rev_flag                VARCHAR2(1);
159094 l_accrual_line_num            NUMBER;
159095 l_tmp_amt                     NUMBER;
159096 l_acc_rev_natural_side_code   VARCHAR2(1);
159097 
159098 l_num_entries                 NUMBER;
159099 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
159100 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
159101 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
159102 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
159103 l_recog_line_1                NUMBER;
159104 l_recog_line_2                NUMBER;
159105 
159106 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
159107 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
159108 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
159109 
159110 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
159111 
159112 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
159113 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
159114 
159115 ---------------------------------------------------------------------------------------------------------------
159116 
159117 
159118 --
159119 -- bulk performance
159120 --
159121 l_balance_type_code           VARCHAR2(1);
159122 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
159123 l_log_module                  VARCHAR2(240);
159124 
159125 --
159126 -- Upgrade strategy
159127 --
159128 l_actual_upg_option           VARCHAR2(1);
159129 l_enc_upg_option           VARCHAR2(1);
159130 
159131 --
159132 BEGIN
159133 --
159134 IF g_log_enabled THEN
159135       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_259';
159136 END IF;
159137 --
159138 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
159139 
159140       trace
159141          (p_msg      => 'BEGIN of AcctLineType_259'
159142          ,p_level    => C_LEVEL_PROCEDURE
159143          ,p_module   => l_log_module);
159144 
159145 END IF;
159146 --
159147 l_component_type             := 'AMB_JLT';
159148 l_component_code             := 'AP_TAX_EXCHG_RATE_VAR_INV_ENC';
159149 l_component_type_code        := 'S';
159150 l_component_appl_id          :=  200;
159151 l_amb_context_code           := 'DEFAULT';
159152 l_entity_code                := 'AP_INVOICES';
159153 l_event_class_code           := 'INVOICES';
159154 l_event_type_code            := 'INVOICES_ALL';
159155 l_line_definition_owner_code := 'S';
159156 l_line_definition_code       := 'ENC_REV_INVOICES_ALL';
159157 --
159158 l_balance_type_code          := 'E';
159159 l_segment                     := NULL;
159160 l_ccid                        := NULL;
159161 l_adr_transaction_coa_id      := NULL;
159162 l_adr_accounting_coa_id       := NULL;
159163 l_adr_flexfield_segment_code  := NULL;
159164 l_adr_flex_value_set_id       := NULL;
159165 l_adr_value_type_code         := NULL;
159166 l_adr_value_combination_id    := NULL;
159167 l_adr_value_segment_code      := NULL;
159168 
159169 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
159170 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
159171 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
159172 l_budgetary_control_flag     := 'N';
159173 
159174 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
159175 l_bflow_applied_to_amt       := NULL; -- 5132302
159176 l_entered_amt_idx            := NULL;          -- 4262811
159177 l_accted_amt_idx             := NULL;          -- 4262811
159178 l_acc_rev_flag               := NULL;          -- 4262811
159179 l_accrual_line_num           := NULL;          -- 4262811
159180 l_tmp_amt                    := NULL;          -- 4262811
159181 --
159182 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
159183             (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
159184                return;
159185   END IF;
159186   
159187 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
159188     l_balance_type_code <> 'B' THEN
159192 ') =  'Y' AND 
159189 IF NVL(p_source_21,'
159190 ') =  'TERV' AND 
159191 NVL(p_source_86,'
159193 NVL(p_source_87,'
159194 ') =  'Y'
159195  THEN 
159196 
159197    --
159198    XLA_AE_LINES_PKG.SetNewLine;
159199 
159200    p_balance_type_code          := l_balance_type_code;
159201    -- set the flag so later we will know whether the gain loss line needs to be created
159202    
159203    IF(l_balance_type_code = 'A' ) THEN
159204      p_actual_flag :='G';
159205    END IF;
159206 
159207    --
159208    -- bulk performance
159209    --
159210    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
159211                                       p_header_num   => 0); -- 4262811
159212    --
159213    -- set accounting line options
159214    --
159215    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
159216            p_natural_side_code          => 'C'
159217          , p_gain_or_loss_flag          => 'Y'
159218          , p_gl_transfer_mode_code      => 'S'
159219          , p_acct_entry_type_code       => 'E'
159220          , p_switch_side_flag           => 'Y'
159221          , p_merge_duplicate_code       => 'A'
159222          );
159223    --
159224    l_acc_rev_natural_side_code := 'D';  -- 4262811
159225    -- 
159226    --
159227    -- set accounting line type info
159228    --
159229    xla_ae_lines_pkg.SetAcctLineType
159230       (p_component_type             => l_component_type
159231       ,p_event_type_code            => l_event_type_code
159232       ,p_line_definition_owner_code => l_line_definition_owner_code
159233       ,p_line_definition_code       => l_line_definition_code
159234       ,p_accounting_line_code       => l_component_code
159235       ,p_accounting_line_type_code  => l_component_type_code
159236       ,p_accounting_line_appl_id    => l_component_appl_id
159237       ,p_amb_context_code           => l_amb_context_code
159238       ,p_entity_code                => l_entity_code
159239       ,p_event_class_code           => l_event_class_code);
159240    --
159241    -- set accounting class
159242    --
159243    xla_ae_lines_pkg.SetAcctClass(
159244            p_accounting_class_code  => 'TERV'
159245          , p_ae_header_id           => l_ae_header_id
159246          );
159247 
159248    --
159249    -- set rounding class
159250    --
159251    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
159252                       'TERV';
159253 
159254    --
159255    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
159256    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
159257    --
159258    -- bulk performance
159259    --
159260    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
159261 
159262    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
159263       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
159264 
159265    -- 4955764
159266    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
159267       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
159268 
159269    -- 4458381 Public Sector Enh
159270    
159271    --
159272    -- set accounting attributes for the line type
159273    --
159274    l_entered_amt_idx := 24;
159275    l_accted_amt_idx  := 26;
159276    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
159277    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
159278    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
159279    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
159280    l_rec_acct_attrs.array_num_value(2)  := 
159281 xla_ae_sources_pkg.GetSystemSourceNum(
159282    p_source_code           => 'XLA_EVENT_APPL_ID'
159283  , p_source_type_code      => 'Y'
159284  , p_source_application_id =>  602
159285 );
159286    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
159287    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
159288    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
159289    l_rec_acct_attrs.array_char_value(4)  := 
159290 xla_ae_sources_pkg.GetSystemSourceChar(
159291    p_source_code           => 'XLA_ENTITY_CODE'
159292  , p_source_type_code      => 'Y'
159293  , p_source_application_id =>  602
159294 );
159295    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
159296    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
159297    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
159298    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
159299    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
159300    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
159301    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
159302    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
159303    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
159304    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
159305    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
159306    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
159307    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
159308    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
159309    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
159310    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
159311    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
159312    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
159313    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
159317    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
159314    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
159315    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
159316    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
159318    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
159319    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
159320    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
159321    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
159322    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
159323    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
159324    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
159325    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
159326    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
159327    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
159328    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
159329    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
159330    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
159331    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
159332    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
159333    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
159334    l_rec_acct_attrs.array_num_value(24)  := p_source_143;
159335    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
159336    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
159337    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
159338    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
159339    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
159340    l_rec_acct_attrs.array_date_value(27)  := p_source_65;
159341    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
159342    l_rec_acct_attrs.array_char_value(28)  := p_source_66;
159343    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
159344    l_rec_acct_attrs.array_date_value(29)  := p_source_67;
159345    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
159346    l_rec_acct_attrs.array_char_value(30)  := p_source_68;
159347    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
159348    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
159349    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
159350    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
159351    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
159352    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
159353    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
159354    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
159355    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
159356    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
159357    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
159358    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
159359    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
159360    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
159361    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
159362    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
159363    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
159364    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
159365 
159366    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
159367    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
159368 
159369    ---------------------------------------------------------------------------------------------------------------
159370    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
159371    ---------------------------------------------------------------------------------------------------------------
159372    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
159373 
159374    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
159375    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
159376 
159377    IF xla_accounting_cache_pkg.GetValueChar
159378          (p_source_code         => 'LEDGER_CATEGORY_CODE'
159379          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
159380    AND l_bflow_method_code = 'PRIOR_ENTRY'
159381 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
159382    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
159383          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
159384        )
159385    THEN
159386          xla_ae_lines_pkg.BflowUpgEntry
159387            (p_business_method_code    => l_bflow_method_code
159388            ,p_business_class_code     => l_bflow_class_code
159389            ,p_balance_type            => l_balance_type_code);
159390    ELSE
159391       NULL;
159392 XLA_AE_LINES_PKG.business_flow_validation(
159393                                 p_business_method_code     => l_bflow_method_code
159394                                ,p_business_class_code      => l_bflow_class_code
159395                                ,p_inherit_description_flag => l_inherit_desc_flag);
159396    END IF;
159397 
159398    --
159399    -- call analytical criteria
159400    --
159401    -- Inherited Analytical Criteria for business flow method of Prior Entry.
159402    --
159403    -- call description
159404    --
159405    -- No description or it is inherited.
159406    --
159407    -- call ADRs
159408    -- Bug 4922099
159409    --
159410    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
159411         (NVL(l_actual_upg_option, 'N') = 'O') OR
159412         (NVL(l_enc_upg_option, 'N') = 'O')
159413       )
159414    THEN
159418    
159415    NULL;
159416    --
159417    --
159419    --
159420    --
159421    END IF;
159422    --
159423    -- Bug 4922099
159424    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
159425           (NVL(l_enc_upg_option, 'N') = 'O')
159426         ) AND
159427         (l_bflow_method_code = 'PRIOR_ENTRY')
159428       )
159429    THEN
159430       IF
159431       --
159432       1 = 1
159433       --
159434       THEN
159435       xla_accounting_err_pkg.build_message
159436                                     (p_appli_s_name            => 'XLA'
159437                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
159438                                     ,p_token_1                 => 'LINE_NUMBER'
159439                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
159443                                                                             ,l_component_code
159440                                     ,p_token_2                 => 'LINE_TYPE_NAME'
159441                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
159442                                                                              l_component_type
159444                                                                             ,l_component_type_code
159445                                                                             ,l_component_appl_id
159446                                                                             ,l_amb_context_code
159447                                                                             ,l_entity_code
159448                                                                             ,l_event_class_code
159449                                                                            )
159450                                     ,p_token_3                 => 'OWNER'
159451                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
159452                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
159453                                                                           ,p_lookup_code    => l_component_type_code
159454                                                                          )
159455                                     ,p_token_4                 => 'PRODUCT_NAME'
159456                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
159457                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
159458                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
159459                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
159460                                     ,p_ae_header_id            =>  NULL
159461                                        );
159462 
159463         IF (C_LEVEL_ERROR>= g_log_level) THEN
159464                  trace
159465                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
159466                       ,p_level    => C_LEVEL_ERROR
159467                       ,p_module   => l_log_module);
159468         END IF;
159469       END IF;
159470    END IF;
159471    --
159472    --
159473    ------------------------------------------------------------------------------------------------
159474    -- 4219869 Business Flow
159475    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
159476    -- Prior Entry.  Currently, the following code is always generated.
159477    ------------------------------------------------------------------------------------------------
159478    -- No ValidateCurrentLine for business flow method of Prior Entry
159479 
159480    ------------------------------------------------------------------------------------
159481    -- 4219869 Business Flow
159482    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
159483    ------------------------------------------------------------------------------------
159484    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
159485 
159486    ----------------------------------------------------------------------------------
159487    -- 4219869 Business Flow
159488    -- Update journal entry status -- Need to generate this within IF <condition>
159489    ----------------------------------------------------------------------------------
159490    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
159491          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
159492          ,p_balance_type_code => l_balance_type_code
159493          );
159494 
159495    -------------------------------------------------------------------------------------------
159496    -- 4262811 - Generate the Accrual Reversal lines
159497    -------------------------------------------------------------------------------------------
159498    BEGIN
159502          l_acc_rev_flag := 'N';
159499       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
159500                               (g_array_event(p_event_id).array_value_num('header_index'));
159501       IF l_acc_rev_flag IS NULL THEN
159503       END IF;
159504    EXCEPTION
159505       WHEN OTHERS THEN
159506          l_acc_rev_flag := 'N';
159507    END;
159508    --
159509    IF (l_acc_rev_flag = 'Y') THEN
159510 
159511        -- 4645092  ------------------------------------------------------------------------------
159512        -- To allow MPA report to determine if it should generate report process
159513        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
159514        ------------------------------------------------------------------------------------------
159515 
159516        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
159517        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
159518    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
159519    -- call ADRs
159520    -- Bug 4922099
159521    --
159522    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
159523         (NVL(l_actual_upg_option, 'N') = 'O') OR
159524         (NVL(l_enc_upg_option, 'N') = 'O')
159525       )
159526    THEN
159527    NULL;
159528    --
159529    --
159530    
159531    --
159532    --
159533    END IF;
159534 
159535        --
159536        -- Update the line information that should be overwritten
159537        --
159538        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
159539                                          p_header_num   => 1);
159540        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
159541 
159542        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
159543 
159544        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
159545           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
159546        END IF;
159547 
159548       --
159549       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
159550       --
159551       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
159552           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
159553       ELSE
159554           ---------------------------------------------------------------------------------------------------
159555           -- 4262811a Switch Sign
159556           ---------------------------------------------------------------------------------------------------
159557           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
159558           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
159559                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
159560           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
159561                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
159562           -- 5132302
159563           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
159564                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
159565 
159566       END IF;
159567 
159568       -- 4955764
159569       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
159570       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
159571 
159572 
159573       XLA_AE_LINES_PKG.ValidateCurrentLine;
159574       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
159575 
159576       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
159577                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
159578                ,p_balance_type_code => l_balance_type_code);
159579 
159580    END IF;
159581 
159582    -----------------------------------------------------------------------------------------
159583    -- 4262811 Multiperiod Accounting
159584    -----------------------------------------------------------------------------------------
159585      -- No MPA option is assigned.
159586 
159587 
159588 END IF;
159589 END IF;
159590 --
159591 
159592 --
159593 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
159594    trace
159595       (p_msg      => 'END of AcctLineType_259'
159596       ,p_level    => C_LEVEL_PROCEDURE
159597       ,p_module   => l_log_module);
159598 END IF;
159599 --
159600 EXCEPTION
159601   WHEN xla_exceptions_pkg.application_exception THEN
159602       RAISE;
159603   WHEN OTHERS THEN
159604        xla_exceptions_pkg.raise_message
159605            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_259');
159606 END AcctLineType_259;
159607 --
159608 
159609 ---------------------------------------
159610 --
159611 -- PRIVATE FUNCTION
159612 --         AcctLineType_260
159613 --
159614 ---------------------------------------
159615 PROCEDURE AcctLineType_260 (
159616   p_application_id        IN NUMBER
159617  ,p_event_id              IN NUMBER
159618  ,p_calculate_acctd_flag  IN VARCHAR2
159619  ,p_calculate_g_l_flag    IN VARCHAR2
159620  ,p_actual_flag           IN OUT VARCHAR2
159621  ,p_balance_type_code     OUT VARCHAR2
159622  ,p_gain_or_loss_ref      OUT VARCHAR2
159623  
159624 --Invoice Distribution Type
159625  , p_source_21            IN VARCHAR2
159626  , p_source_21_meaning    IN VARCHAR2
159627 --Accounting Reversal Indicator
159628  , p_source_41            IN VARCHAR2
159632  , p_source_45            IN NUMBER
159629 --Distribution Link Type
159630  , p_source_43            IN VARCHAR2
159631 --Allocation to Main Distribution Identifier
159633 --Invoice Identifier
159634  , p_source_46            IN NUMBER
159635 --Invoice Distribution Identifier
159636  , p_source_52            IN NUMBER
159637 --Payables Encumbrance Upgrade Credit Account
159638  , p_source_53            IN NUMBER
159639 --Payables Encumbrance Upgrade Credit Amount
159640  , p_source_54            IN NUMBER
159641 --Invoice Currency Code
159642  , p_source_55            IN VARCHAR2
159643 --Payables Encumbrance Upgrade Credit Base Amount
159644  , p_source_56            IN NUMBER
159645 --Payables Encumbrance Upgrade Debit Account
159646  , p_source_57            IN NUMBER
159647 --Payables Encumbrance Upgrade Debit Amount
159648  , p_source_58            IN NUMBER
159649 --Payables Encumbrance Upgrade Debit Base Amount
159650  , p_source_59            IN NUMBER
159651 --Payables Encumbrance Upgrade Option
159652  , p_source_60            IN VARCHAR2
159653 --Deferred Accounting End Date
159654  , p_source_65            IN DATE
159655 --Deferred Accounting Option
159656  , p_source_66            IN VARCHAR2
159657 --Deferred Accounting Start Date
159658  , p_source_67            IN DATE
159659 --Override Accounted Amount Indicator
159660  , p_source_68            IN VARCHAR2
159661  , p_source_68_meaning    IN VARCHAR2
159662 --Third Party Type
159663  , p_source_71            IN VARCHAR2
159664 --Parent Reversal Identifier
159665  , p_source_72            IN NUMBER
159666 --Invoice Distribution Statistical Amount
159667  , p_source_73            IN NUMBER
159668 --Invoice Distribution Tax Line Identifier
159669  , p_source_74            IN NUMBER
159670 --Invoice Distribution Tax Distribution Identifier from Tax
159671  , p_source_75            IN NUMBER
159672 --Invoice Distribution Summary Tax Line Identifier
159673  , p_source_76            IN NUMBER
159674 --Payables Upgrade Credit Encumbrance Type Identifier
159675  , p_source_77            IN NUMBER
159676 --Payables Upgrade Debit Encumbrance Type Identifier
159677  , p_source_78            IN NUMBER
159678 --Business Flow Accounts Payable Application Identifier
159679  , p_source_79            IN NUMBER
159680 --Business Flow Invoice Distribution Type
159681  , p_source_80            IN VARCHAR2
159682 --Business Flow Invoice Entity Code
159683  , p_source_81            IN VARCHAR2
159684 --Business Flow Invoice Distribution Identifier
159685  , p_source_82            IN NUMBER
159686 --Business Flow Invoice Identifier
159687  , p_source_83            IN NUMBER
159688 --Purchasing Encumbrance Option
159689  , p_source_86            IN VARCHAR2
159690  , p_source_86_meaning    IN VARCHAR2
159691 --Invoice Encumbered Option
159692  , p_source_87            IN VARCHAR2
159693  , p_source_87_meaning    IN VARCHAR2
159694 --Invoice Distribution Encumbrance Amount
159695  , p_source_143            IN NUMBER
159696 --Invoice Distribution Encumbrance Ledger Amount
159697  , p_source_144            IN NUMBER
159698 )
159699 IS
159700 
159701 l_component_type              VARCHAR2(80);
159702 l_component_code              VARCHAR2(30);
159703 l_component_type_code         VARCHAR2(1);
159704 l_component_appl_id           INTEGER;
159705 l_amb_context_code            VARCHAR2(30);
159706 l_entity_code                 VARCHAR2(30);
159707 l_event_class_code            VARCHAR2(30);
159708 l_ae_header_id                NUMBER;
159709 l_event_type_code             VARCHAR2(30);
159710 l_line_definition_code        VARCHAR2(30);
159711 l_line_definition_owner_code  VARCHAR2(1);
159712 --
159713 -- adr variables
159714 l_segment                     VARCHAR2(30);
159715 l_ccid                        NUMBER;
159716 l_adr_transaction_coa_id      NUMBER;
159717 l_adr_accounting_coa_id       NUMBER;
159718 l_adr_flexfield_segment_code  VARCHAR2(30);
159719 l_adr_flex_value_set_id       NUMBER;
159720 l_adr_value_type_code         VARCHAR2(30);
159721 l_adr_value_combination_id    NUMBER;
159722 l_adr_value_segment_code      VARCHAR2(30);
159723 
159724 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
159725 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
159726 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
159727 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
159728 
159729 -- 4262811 Variables ------------------------------------------------------------------------------------------
159730 l_entered_amt_idx             NUMBER;
159731 l_accted_amt_idx              NUMBER;
159732 l_acc_rev_flag                VARCHAR2(1);
159733 l_accrual_line_num            NUMBER;
159734 l_tmp_amt                     NUMBER;
159735 l_acc_rev_natural_side_code   VARCHAR2(1);
159736 
159737 l_num_entries                 NUMBER;
159738 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
159739 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
159740 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
159741 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
159742 l_recog_line_1                NUMBER;
159743 l_recog_line_2                NUMBER;
159744 
159745 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
159746 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
159747 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
159748 
159749 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
159750 
159751 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
159752 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
159753 
159757 --
159754 ---------------------------------------------------------------------------------------------------------------
159755 
159756 
159758 -- bulk performance
159759 --
159760 l_balance_type_code           VARCHAR2(1);
159761 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
159762 l_log_module                  VARCHAR2(240);
159763 
159764 --
159765 -- Upgrade strategy
159766 --
159767 l_actual_upg_option           VARCHAR2(1);
159768 l_enc_upg_option           VARCHAR2(1);
159769 
159770 --
159771 BEGIN
159772 --
159773 IF g_log_enabled THEN
159774       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_260';
159775 END IF;
159776 --
159777 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
159778 
159779       trace
159780          (p_msg      => 'BEGIN of AcctLineType_260'
159781          ,p_level    => C_LEVEL_PROCEDURE
159782          ,p_module   => l_log_module);
159783 
159784 END IF;
159785 --
159786 l_component_type             := 'AMB_JLT';
159787 l_component_code             := 'AP_TAX_EXCHG_RATE_VAR_PP_ENC';
159788 l_component_type_code        := 'S';
159789 l_component_appl_id          :=  200;
159790 l_amb_context_code           := 'DEFAULT';
159791 l_entity_code                := 'AP_INVOICES';
159792 l_event_class_code           := 'PREPAYMENTS';
159793 l_event_type_code            := 'PREPAYMENTS_ALL';
159794 l_line_definition_owner_code := 'S';
159795 l_line_definition_code       := 'ENC_REV_PREPAY_ALL';
159796 --
159797 l_balance_type_code          := 'E';
159798 l_segment                     := NULL;
159799 l_ccid                        := NULL;
159800 l_adr_transaction_coa_id      := NULL;
159801 l_adr_accounting_coa_id       := NULL;
159802 l_adr_flexfield_segment_code  := NULL;
159803 l_adr_flex_value_set_id       := NULL;
159804 l_adr_value_type_code         := NULL;
159805 l_adr_value_combination_id    := NULL;
159806 l_adr_value_segment_code      := NULL;
159807 
159808 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
159809 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
159810 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
159811 l_budgetary_control_flag     := 'N';
159812 
159813 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
159814 l_bflow_applied_to_amt       := NULL; -- 5132302
159815 l_entered_amt_idx            := NULL;          -- 4262811
159816 l_accted_amt_idx             := NULL;          -- 4262811
159817 l_acc_rev_flag               := NULL;          -- 4262811
159818 l_accrual_line_num           := NULL;          -- 4262811
159819 l_tmp_amt                    := NULL;          -- 4262811
159820 --
159821 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
159822             (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
159823                return;
159824   END IF;
159825   
159826 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
159827     l_balance_type_code <> 'B' THEN
159828 IF NVL(p_source_21,'
159829 ') =  'TERV' AND 
159830 NVL(p_source_86,'
159831 ') =  'Y' AND 
159832 NVL(p_source_87,'
159833 ') =  'Y'
159834  THEN 
159835 
159836    --
159837    XLA_AE_LINES_PKG.SetNewLine;
159838 
159839    p_balance_type_code          := l_balance_type_code;
159840    -- set the flag so later we will know whether the gain loss line needs to be created
159841    
159842    IF(l_balance_type_code = 'A' ) THEN
159843      p_actual_flag :='G';
159844    END IF;
159845 
159846    --
159847    -- bulk performance
159848    --
159849    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
159850                                       p_header_num   => 0); -- 4262811
159851    --
159852    -- set accounting line options
159853    --
159854    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
159855            p_natural_side_code          => 'C'
159856          , p_gain_or_loss_flag          => 'Y'
159857          , p_gl_transfer_mode_code      => 'S'
159858          , p_acct_entry_type_code       => 'E'
159859          , p_switch_side_flag           => 'Y'
159860          , p_merge_duplicate_code       => 'A'
159861          );
159862    --
159863    l_acc_rev_natural_side_code := 'D';  -- 4262811
159864    -- 
159865    --
159866    -- set accounting line type info
159867    --
159868    xla_ae_lines_pkg.SetAcctLineType
159869       (p_component_type             => l_component_type
159870       ,p_event_type_code            => l_event_type_code
159871       ,p_line_definition_owner_code => l_line_definition_owner_code
159872       ,p_line_definition_code       => l_line_definition_code
159873       ,p_accounting_line_code       => l_component_code
159874       ,p_accounting_line_type_code  => l_component_type_code
159875       ,p_accounting_line_appl_id    => l_component_appl_id
159876       ,p_amb_context_code           => l_amb_context_code
159877       ,p_entity_code                => l_entity_code
159878       ,p_event_class_code           => l_event_class_code);
159879    --
159880    -- set accounting class
159881    --
159882    xla_ae_lines_pkg.SetAcctClass(
159883            p_accounting_class_code  => 'TERV'
159884          , p_ae_header_id           => l_ae_header_id
159885          );
159886 
159887    --
159888    -- set rounding class
159889    --
159890    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
159891                       'TERV';
159892 
159893    --
159894    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
159898    --
159895    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
159896    --
159897    -- bulk performance
159899    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
159900 
159901    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
159902       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
159903 
159904    -- 4955764
159905    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
159906       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
159907 
159908    -- 4458381 Public Sector Enh
159909    
159910    --
159911    -- set accounting attributes for the line type
159912    --
159913    l_entered_amt_idx := 23;
159914    l_accted_amt_idx  := 25;
159915    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
159916    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
159917    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
159918    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
159919    l_rec_acct_attrs.array_num_value(2)  := 
159920 xla_ae_sources_pkg.GetSystemSourceNum(
159921    p_source_code           => 'XLA_EVENT_APPL_ID'
159922  , p_source_type_code      => 'Y'
159923  , p_source_application_id =>  602
159924 );
159925    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
159926    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
159927    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
159928    l_rec_acct_attrs.array_char_value(4)  := 
159929 xla_ae_sources_pkg.GetSystemSourceChar(
159930    p_source_code           => 'XLA_ENTITY_CODE'
159931  , p_source_type_code      => 'Y'
159932  , p_source_application_id =>  602
159933 );
159934    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
159935    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
159936    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
159937    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
159938    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
159939    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
159940    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
159941    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
159942    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
159943    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
159944    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
159945    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
159946    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
159947    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
159948    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
159949    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
159950    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
159951    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
159952    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
159953    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
159954    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
159955    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
159956    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
159957    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
159958    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
159959    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
159960    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
159961    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
159962    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
159963    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
159964    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
159965    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
159966    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
159967    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
159968    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
159969    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
159970    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
159971    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
159972    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
159973    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
159974    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
159975    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
159976    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
159977    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
159978    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
159979    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
159980    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
159981    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
159982    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
159983    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
159984    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
159985    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
159986    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
159987    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
159988    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
159989    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
159990    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
159994    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
159991    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
159992    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
159993    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
159995    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
159996    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
159997    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
159998    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
159999    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
160000    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
160001    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
160002 
160003    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
160004    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
160005 
160006    ---------------------------------------------------------------------------------------------------------------
160007    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
160008    ---------------------------------------------------------------------------------------------------------------
160009    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
160010 
160011    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
160012    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
160013 
160014    IF xla_accounting_cache_pkg.GetValueChar
160015          (p_source_code         => 'LEDGER_CATEGORY_CODE'
160016          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
160017    AND l_bflow_method_code = 'PRIOR_ENTRY'
160018 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
160019    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
160020          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
160021        )
160022    THEN
160023          xla_ae_lines_pkg.BflowUpgEntry
160024            (p_business_method_code    => l_bflow_method_code
160025            ,p_business_class_code     => l_bflow_class_code
160026            ,p_balance_type            => l_balance_type_code);
160027    ELSE
160028       NULL;
160029 XLA_AE_LINES_PKG.business_flow_validation(
160030                                 p_business_method_code     => l_bflow_method_code
160031                                ,p_business_class_code      => l_bflow_class_code
160032                                ,p_inherit_description_flag => l_inherit_desc_flag);
160033    END IF;
160034 
160035    --
160036    -- call analytical criteria
160037    --
160038    -- Inherited Analytical Criteria for business flow method of Prior Entry.
160039    --
160040    -- call description
160041    --
160042    -- No description or it is inherited.
160043    --
160044    -- call ADRs
160045    -- Bug 4922099
160046    --
160047    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
160048         (NVL(l_actual_upg_option, 'N') = 'O') OR
160049         (NVL(l_enc_upg_option, 'N') = 'O')
160050       )
160051    THEN
160052    NULL;
160053    --
160054    --
160055    
160056    --
160057    --
160058    END IF;
160059    --
160060    -- Bug 4922099
160061    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
160062           (NVL(l_enc_upg_option, 'N') = 'O')
160063         ) AND
160064         (l_bflow_method_code = 'PRIOR_ENTRY')
160065       )
160066    THEN
160067       IF
160068       --
160069       1 = 1
160070       --
160071       THEN
160072       xla_accounting_err_pkg.build_message
160073                                     (p_appli_s_name            => 'XLA'
160074                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
160075                                     ,p_token_1                 => 'LINE_NUMBER'
160076                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
160077                                     ,p_token_2                 => 'LINE_TYPE_NAME'
160078                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
160079                                                                              l_component_type
160080                                                                             ,l_component_code
160081                                                                             ,l_component_type_code
160082                                                                             ,l_component_appl_id
160083                                                                             ,l_amb_context_code
160084                                                                             ,l_entity_code
160085                                                                             ,l_event_class_code
160089                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
160086                                                                            )
160087                                     ,p_token_3                 => 'OWNER'
160088                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
160090                                                                           ,p_lookup_code    => l_component_type_code
160091                                                                          )
160092                                     ,p_token_4                 => 'PRODUCT_NAME'
160093                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
160094                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
160095                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
160096                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
160097                                     ,p_ae_header_id            =>  NULL
160098                                        );
160099 
160100         IF (C_LEVEL_ERROR>= g_log_level) THEN
160101                  trace
160102                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
160103                       ,p_level    => C_LEVEL_ERROR
160104                       ,p_module   => l_log_module);
160105         END IF;
160106       END IF;
160107    END IF;
160108    --
160109    --
160110    ------------------------------------------------------------------------------------------------
160111    -- 4219869 Business Flow
160112    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
160113    -- Prior Entry.  Currently, the following code is always generated.
160114    ------------------------------------------------------------------------------------------------
160115    -- No ValidateCurrentLine for business flow method of Prior Entry
160116 
160117    ------------------------------------------------------------------------------------
160118    -- 4219869 Business Flow
160119    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
160120    ------------------------------------------------------------------------------------
160121    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
160122 
160123    ----------------------------------------------------------------------------------
160124    -- 4219869 Business Flow
160125    -- Update journal entry status -- Need to generate this within IF <condition>
160126    ----------------------------------------------------------------------------------
160127    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
160128          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
160129          ,p_balance_type_code => l_balance_type_code
160130          );
160131 
160132    -------------------------------------------------------------------------------------------
160133    -- 4262811 - Generate the Accrual Reversal lines
160134    -------------------------------------------------------------------------------------------
160135    BEGIN
160136       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
160137                               (g_array_event(p_event_id).array_value_num('header_index'));
160138       IF l_acc_rev_flag IS NULL THEN
160139          l_acc_rev_flag := 'N';
160140       END IF;
160141    EXCEPTION
160142       WHEN OTHERS THEN
160143          l_acc_rev_flag := 'N';
160144    END;
160145    --
160146    IF (l_acc_rev_flag = 'Y') THEN
160147 
160148        -- 4645092  ------------------------------------------------------------------------------
160149        -- To allow MPA report to determine if it should generate report process
160150        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
160151        ------------------------------------------------------------------------------------------
160152 
160153        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
160154        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
160155    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
160156    -- call ADRs
160157    -- Bug 4922099
160158    --
160159    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
160160         (NVL(l_actual_upg_option, 'N') = 'O') OR
160161         (NVL(l_enc_upg_option, 'N') = 'O')
160162       )
160163    THEN
160164    NULL;
160165    --
160166    --
160167    
160168    --
160169    --
160170    END IF;
160171 
160172        --
160173        -- Update the line information that should be overwritten
160174        --
160175        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
160176                                          p_header_num   => 1);
160177        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
160178 
160179        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
160180 
160181        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
160182           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
160183        END IF;
160184 
160185       --
160186       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
160187       --
160188       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
160189           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
160190       ELSE
160191           ---------------------------------------------------------------------------------------------------
160192           -- 4262811a Switch Sign
160196                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
160193           ---------------------------------------------------------------------------------------------------
160194           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
160195           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
160197           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
160198                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
160199           -- 5132302
160200           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
160201                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
160202 
160203       END IF;
160204 
160205       -- 4955764
160206       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
160207       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
160208 
160209 
160210       XLA_AE_LINES_PKG.ValidateCurrentLine;
160211       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
160212 
160213       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
160214                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
160215                ,p_balance_type_code => l_balance_type_code);
160216 
160217    END IF;
160218 
160219    -----------------------------------------------------------------------------------------
160220    -- 4262811 Multiperiod Accounting
160221    -----------------------------------------------------------------------------------------
160222      -- No MPA option is assigned.
160223 
160224 
160225 END IF;
160226 END IF;
160227 --
160228 
160229 --
160230 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
160231    trace
160232       (p_msg      => 'END of AcctLineType_260'
160233       ,p_level    => C_LEVEL_PROCEDURE
160234       ,p_module   => l_log_module);
160235 END IF;
160236 --
160237 EXCEPTION
160238   WHEN xla_exceptions_pkg.application_exception THEN
160239       RAISE;
160240   WHEN OTHERS THEN
160241        xla_exceptions_pkg.raise_message
160242            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_260');
160243 END AcctLineType_260;
160244 --
160245 
160246 ---------------------------------------
160247 --
160248 -- PRIVATE FUNCTION
160249 --         AcctLineType_261
160250 --
160251 ---------------------------------------
160252 PROCEDURE AcctLineType_261 (
160253   p_application_id        IN NUMBER
160254  ,p_event_id              IN NUMBER
160255  ,p_calculate_acctd_flag  IN VARCHAR2
160256  ,p_calculate_g_l_flag    IN VARCHAR2
160260  
160257  ,p_actual_flag           IN OUT VARCHAR2
160258  ,p_balance_type_code     OUT VARCHAR2
160259  ,p_gain_or_loss_ref      OUT VARCHAR2
160261 --Invoice Distribution Description
160262  , p_source_1            IN VARCHAR2
160263 --Automatic Offsets Value
160264  , p_source_3            IN VARCHAR2
160265  , p_source_3_meaning    IN VARCHAR2
160266 --Purchase Order Rate Variance Gain Account
160267  , p_source_8            IN NUMBER
160268 --Invoice Distribution Ledger Amount
160269  , p_source_9            IN NUMBER
160270 --Destination Type of the PO Distribution
160271  , p_source_10            IN VARCHAR2
160272  , p_source_10_meaning    IN VARCHAR2
160273 --Purchase Order Rate Variance Loss Account
160274  , p_source_11            IN NUMBER
160275 --Invoice Distribution Account
160276  , p_source_18            IN NUMBER
160277 --Invoice Distribution Type
160278  , p_source_21            IN VARCHAR2
160279  , p_source_21_meaning    IN VARCHAR2
160280 --Automatic Offsets Flag
160281  , p_source_35            IN VARCHAR2
160282  , p_source_35_meaning    IN VARCHAR2
160283 --Accounting Reversal Indicator
160284  , p_source_41            IN VARCHAR2
160285 --Distribution Link Type
160286  , p_source_43            IN VARCHAR2
160287 --Allocation to Main Distribution Identifier
160288  , p_source_45            IN NUMBER
160289 --Invoice Identifier
160290  , p_source_46            IN NUMBER
160291 --Invoice Distribution Identifier
160292  , p_source_52            IN NUMBER
160293 --Payables Encumbrance Upgrade Credit Account
160294  , p_source_53            IN NUMBER
160295 --Payables Encumbrance Upgrade Credit Amount
160296  , p_source_54            IN NUMBER
160297 --Invoice Currency Code
160298  , p_source_55            IN VARCHAR2
160299 --Payables Encumbrance Upgrade Credit Base Amount
160300  , p_source_56            IN NUMBER
160301 --Payables Encumbrance Upgrade Debit Account
160302  , p_source_57            IN NUMBER
160303 --Payables Encumbrance Upgrade Debit Amount
160307 --Payables Encumbrance Upgrade Option
160304  , p_source_58            IN NUMBER
160305 --Payables Encumbrance Upgrade Debit Base Amount
160306  , p_source_59            IN NUMBER
160308  , p_source_60            IN VARCHAR2
160309 --Invoice Distribution Amount
160310  , p_source_61            IN NUMBER
160311 --Deferred Accounting End Date
160312  , p_source_65            IN DATE
160313 --Deferred Accounting Option
160314  , p_source_66            IN VARCHAR2
160315 --Deferred Accounting Start Date
160316  , p_source_67            IN DATE
160317 --Override Accounted Amount Indicator
160318  , p_source_68            IN VARCHAR2
160319  , p_source_68_meaning    IN VARCHAR2
160320 --Invoice Supplier Identifier
160321  , p_source_69            IN NUMBER
160322 --Invoice Supplier Site Identifier
160323  , p_source_70            IN NUMBER
160324 --Third Party Type
160325  , p_source_71            IN VARCHAR2
160326 --Parent Reversal Identifier
160327  , p_source_72            IN NUMBER
160328 --Invoice Distribution Statistical Amount
160329  , p_source_73            IN NUMBER
160330 --Invoice Distribution Tax Line Identifier
160331  , p_source_74            IN NUMBER
160332 --Invoice Distribution Tax Distribution Identifier from Tax
160333  , p_source_75            IN NUMBER
160334 --Invoice Distribution Summary Tax Line Identifier
160335  , p_source_76            IN NUMBER
160336 --Payables Upgrade Credit Encumbrance Type Identifier
160337  , p_source_77            IN NUMBER
160338 --Payables Upgrade Debit Encumbrance Type Identifier
160339  , p_source_78            IN NUMBER
160340 --Business Flow Accounts Payable Application Identifier
160341  , p_source_79            IN NUMBER
160342 --Business Flow Invoice Distribution Type
160343  , p_source_80            IN VARCHAR2
160344 --Business Flow Invoice Entity Code
160345  , p_source_81            IN VARCHAR2
160346 --Business Flow Invoice Distribution Identifier
160347  , p_source_82            IN NUMBER
160348 --Business Flow Invoice Identifier
160349  , p_source_83            IN NUMBER
160350 --Accrue on Receipt Option
160351  , p_source_84            IN VARCHAR2
160352  , p_source_84_meaning    IN VARCHAR2
160353 --Invoice Exchange Date
160354  , p_source_136            IN DATE
160355 --Invoice Exchange Rate
160356  , p_source_137            IN NUMBER
160357 --Invoice Exchange Rate Type
160358  , p_source_138            IN VARCHAR2
160359 )
160360 IS
160361 
160362 l_component_type              VARCHAR2(80);
160363 l_component_code              VARCHAR2(30);
160364 l_component_type_code         VARCHAR2(1);
160365 l_component_appl_id           INTEGER;
160366 l_amb_context_code            VARCHAR2(30);
160367 l_entity_code                 VARCHAR2(30);
160368 l_event_class_code            VARCHAR2(30);
160369 l_ae_header_id                NUMBER;
160370 l_event_type_code             VARCHAR2(30);
160371 l_line_definition_code        VARCHAR2(30);
160372 l_line_definition_owner_code  VARCHAR2(1);
160373 --
160374 -- adr variables
160375 l_segment                     VARCHAR2(30);
160376 l_ccid                        NUMBER;
160377 l_adr_transaction_coa_id      NUMBER;
160378 l_adr_accounting_coa_id       NUMBER;
160379 l_adr_flexfield_segment_code  VARCHAR2(30);
160380 l_adr_flex_value_set_id       NUMBER;
160381 l_adr_value_type_code         VARCHAR2(30);
160382 l_adr_value_combination_id    NUMBER;
160383 l_adr_value_segment_code      VARCHAR2(30);
160384 
160385 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
160386 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
160387 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
160388 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
160389 
160390 -- 4262811 Variables ------------------------------------------------------------------------------------------
160391 l_entered_amt_idx             NUMBER;
160392 l_accted_amt_idx              NUMBER;
160393 l_acc_rev_flag                VARCHAR2(1);
160394 l_accrual_line_num            NUMBER;
160395 l_tmp_amt                     NUMBER;
160396 l_acc_rev_natural_side_code   VARCHAR2(1);
160397 
160398 l_num_entries                 NUMBER;
160399 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
160400 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
160401 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
160402 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
160403 l_recog_line_1                NUMBER;
160404 l_recog_line_2                NUMBER;
160405 
160406 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
160407 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
160408 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
160409 
160413 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
160410 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
160411 
160412 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
160414 
160415 ---------------------------------------------------------------------------------------------------------------
160416 
160417 
160418 --
160419 -- bulk performance
160420 --
160421 l_balance_type_code           VARCHAR2(1);
160422 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
160423 l_log_module                  VARCHAR2(240);
160424 
160425 --
160426 -- Upgrade strategy
160427 --
160428 l_actual_upg_option           VARCHAR2(1);
160429 l_enc_upg_option           VARCHAR2(1);
160430 
160431 --
160432 BEGIN
160433 --
160434 IF g_log_enabled THEN
160435       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_261';
160436 END IF;
160437 --
160438 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
160439 
160440       trace
160441          (p_msg      => 'BEGIN of AcctLineType_261'
160442          ,p_level    => C_LEVEL_PROCEDURE
160443          ,p_module   => l_log_module);
160444 
160445 END IF;
160446 --
160447 l_component_type             := 'AMB_JLT';
160448 l_component_code             := 'AP_TAX_EX_RATE_VAR_CM';
160449 l_component_type_code        := 'S';
160450 l_component_appl_id          :=  200;
160451 l_amb_context_code           := 'DEFAULT';
160452 l_entity_code                := 'AP_INVOICES';
160453 l_event_class_code           := 'CREDIT MEMOS';
160454 l_event_type_code            := 'CREDIT MEMOS_ALL';
160455 l_line_definition_owner_code := 'S';
160456 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
160457 --
160458 l_balance_type_code          := 'A';
160459 l_segment                     := NULL;
160460 l_ccid                        := NULL;
160461 l_adr_transaction_coa_id      := NULL;
160462 l_adr_accounting_coa_id       := NULL;
160463 l_adr_flexfield_segment_code  := NULL;
160464 l_adr_flex_value_set_id       := NULL;
160465 l_adr_value_type_code         := NULL;
160466 l_adr_value_combination_id    := NULL;
160467 l_adr_value_segment_code      := NULL;
160468 
160469 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
160470 l_bflow_class_code           := '';    -- 4219869 Business Flow
160471 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
160472 l_budgetary_control_flag     := 'N';
160473 
160474 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
160475 l_bflow_applied_to_amt       := NULL; -- 5132302
160476 l_entered_amt_idx            := NULL;          -- 4262811
160477 l_accted_amt_idx             := NULL;          -- 4262811
160478 l_acc_rev_flag               := NULL;          -- 4262811
160479 l_accrual_line_num           := NULL;          -- 4262811
160480 l_tmp_amt                    := NULL;          -- 4262811
160481 --
160482 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
160483             (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
160484                return;
160485   END IF;
160486   
160487 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
160488     l_balance_type_code <> 'B' THEN
160489 IF NVL(p_source_21,'
160490 ') =  'TERV' AND 
160491 NVL(p_source_84,'
160492 ') =  'Y'
160493  THEN 
160494 
160495    --
160496    XLA_AE_LINES_PKG.SetNewLine;
160497 
160498    p_balance_type_code          := l_balance_type_code;
160499    -- set the flag so later we will know whether the gain loss line needs to be created
160500    
160501    IF(l_balance_type_code = 'A' ) THEN
160502      p_actual_flag :='G';
160503    END IF;
160504 
160505    --
160506    -- bulk performance
160507    --
160508    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
160509                                       p_header_num   => 0); -- 4262811
160510    --
160511    -- set accounting line options
160512    --
160513    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
160514            p_natural_side_code          => 'D'
160515          , p_gain_or_loss_flag          => 'Y'
160516          , p_gl_transfer_mode_code      => 'S'
160517          , p_acct_entry_type_code       => 'A'
160518          , p_switch_side_flag           => 'Y'
160519          , p_merge_duplicate_code       => 'A'
160520          );
160521    --
160522    l_acc_rev_natural_side_code := 'C';  -- 4262811
160523    -- 
160524    --
160525    -- set accounting line type info
160526    --
160527    xla_ae_lines_pkg.SetAcctLineType
160528       (p_component_type             => l_component_type
160529       ,p_event_type_code            => l_event_type_code
160530       ,p_line_definition_owner_code => l_line_definition_owner_code
160531       ,p_line_definition_code       => l_line_definition_code
160532       ,p_accounting_line_code       => l_component_code
160533       ,p_accounting_line_type_code  => l_component_type_code
160534       ,p_accounting_line_appl_id    => l_component_appl_id
160535       ,p_amb_context_code           => l_amb_context_code
160536       ,p_entity_code                => l_entity_code
160537       ,p_event_class_code           => l_event_class_code);
160538    --
160539    -- set accounting class
160540    --
160541    xla_ae_lines_pkg.SetAcctClass(
160542            p_accounting_class_code  => 'TERV'
160543          , p_ae_header_id           => l_ae_header_id
160544          );
160545 
160546    --
160547    -- set rounding class
160548    --
160549    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
160553    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
160550                       'TERV';
160551 
160552    --
160554    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
160555    --
160556    -- bulk performance
160557    --
160558    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
160559 
160560    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
160561       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
160562 
160563    -- 4955764
160564    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
160565       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
160566 
160567    -- 4458381 Public Sector Enh
160568    
160569    --
160573    l_accted_amt_idx  := 28;
160570    -- set accounting attributes for the line type
160571    --
160572    l_entered_amt_idx := 23;
160574    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
160575    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
160576    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
160577    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
160578    l_rec_acct_attrs.array_num_value(2)  := 
160579 xla_ae_sources_pkg.GetSystemSourceNum(
160580    p_source_code           => 'XLA_EVENT_APPL_ID'
160581  , p_source_type_code      => 'Y'
160582  , p_source_application_id =>  602
160583 );
160584    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
160585    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
160586    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
160587    l_rec_acct_attrs.array_char_value(4)  := 
160588 xla_ae_sources_pkg.GetSystemSourceChar(
160589    p_source_code           => 'XLA_ENTITY_CODE'
160590  , p_source_type_code      => 'Y'
160591  , p_source_application_id =>  602
160592 );
160593    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
160594    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
160595    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
160596    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
160597    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
160598    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
160599    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
160600    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
160601    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
160602    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
160603    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
160604    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
160605    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
160606    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
160607    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
160608    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
160609    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
160610    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
160611    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
160612    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
160613    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
160614    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
160615    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
160619    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
160616    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
160617    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
160618    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
160620    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
160621    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
160622    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
160623    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
160624    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
160625    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
160626    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
160627    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
160628    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
160629    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
160630    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
160631    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
160632    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
160633    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
160634    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
160635    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
160636    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
160637    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
160638    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
160639    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
160640    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
160641    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
160642    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
160643    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
160644    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
160645    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
160646    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
160647    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
160648    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
160649    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
160650    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
160651    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
160652    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
160653    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
160654    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
160655    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
160656    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
160657    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
160658    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
160659    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
160660    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
160661    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
160662    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
160663    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
160664    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
160665    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
160666    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
160667    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
160668    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
160669    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
160670    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
160671 
160672    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
160673    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
160674 
160675    ---------------------------------------------------------------------------------------------------------------
160676    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
160677    ---------------------------------------------------------------------------------------------------------------
160678    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
160679 
160680    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
160681    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
160682 
160683    IF xla_accounting_cache_pkg.GetValueChar
160684          (p_source_code         => 'LEDGER_CATEGORY_CODE'
160685          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
160686    AND l_bflow_method_code = 'PRIOR_ENTRY'
160687 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
160688    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
160689          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
160690        )
160691    THEN
160692          xla_ae_lines_pkg.BflowUpgEntry
160693            (p_business_method_code    => l_bflow_method_code
160694            ,p_business_class_code     => l_bflow_class_code
160695            ,p_balance_type            => l_balance_type_code);
160696    ELSE
160697       NULL;
160698 -- No business flow processing for business flow method of NONE.
160699    END IF;
160700 
160701    --
160702    -- call analytical criteria
160703    --
160704    
160705    --
160706    -- call description
160707    --
160708    
160709 xla_ae_lines_pkg.SetLineDescription(
160710    p_ae_header_id => l_ae_header_id
160711   ,p_description  => Description_2 (
160715    )
160712      p_application_id         => p_application_id
160713    , p_ae_header_id           => l_ae_header_id 
160714 , p_source_1 => p_source_1
160716 );
160717 
160718 
160719    --
160720    -- call ADRs
160721    -- Bug 4922099
160722    --
160723    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
160724         (NVL(l_actual_upg_option, 'N') = 'O') OR
160725         (NVL(l_enc_upg_option, 'N') = 'O')
160726       )
160727    THEN
160728    NULL;
160729    --
160730    --
160731    
160732   l_ccid := AcctDerRule_29(
160733            p_application_id           => p_application_id
160734          , p_ae_header_id             => l_ae_header_id 
160735 , p_source_3 => p_source_3
160736 , p_source_3_meaning => p_source_3_meaning
160737 , p_source_8 => p_source_8
160738 , p_source_9 => p_source_9
160739 , p_source_10 => p_source_10
160740 , p_source_10_meaning => p_source_10_meaning
160741 , p_source_11 => p_source_11
160742 , p_source_18 => p_source_18
160743 , p_source_35 => p_source_35
160744 , p_source_35_meaning => p_source_35_meaning
160745          , x_transaction_coa_id       => l_adr_transaction_coa_id
160746          , x_accounting_coa_id        => l_adr_accounting_coa_id
160747          , x_value_type_code          => l_adr_value_type_code
160748          , p_side                     => 'NA'
160749    );
160750 
160751    xla_ae_lines_pkg.set_ccid(
160752     p_code_combination_id          => l_ccid
160753   , p_value_type_code              => l_adr_value_type_code
160754   , p_transaction_coa_id           => l_adr_transaction_coa_id
160755   , p_accounting_coa_id            => l_adr_accounting_coa_id
160756   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
160757   , p_adr_type_code                => 'S'
160758   , p_component_type               => l_component_type
160759   , p_component_code               => l_component_code
160760   , p_component_type_code          => l_component_type_code
160761   , p_component_appl_id            => l_component_appl_id
160762   , p_amb_context_code             => l_amb_context_code
160763   , p_side                         => 'NA'
160764   );
160765 
160766 
160767    l_segment := AcctDerRule_7(
160768            p_application_id           => p_application_id
160769          , p_ae_header_id             => l_ae_header_id 
160770 , p_source_3 => p_source_3
160771 , p_source_3_meaning => p_source_3_meaning
160772 , p_source_8 => p_source_8
160773 , p_source_9 => p_source_9
160774 , p_source_10 => p_source_10
160775 , p_source_10_meaning => p_source_10_meaning
160776 , p_source_11 => p_source_11
160777          , x_transaction_coa_id       => l_adr_transaction_coa_id
160778          , x_accounting_coa_id        => l_adr_accounting_coa_id
160779          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
160780          , x_flex_value_set_id        => l_adr_flex_value_set_id
160781          , x_value_type_code          => l_adr_value_type_code
160782          , x_value_combination_id     => l_adr_value_combination_id
160783          , x_value_segment_code       => l_adr_value_segment_code
160784          , p_side                     => 'NA'
160785          , p_override_seg_flag        => 'Y'
160786    );
160787 
160788    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
160789 
160790       xla_ae_lines_pkg.set_segment(
160791           p_to_segment_code         => 'GL_ACCOUNT'
160792         , p_segment_value           => l_segment
160793         , p_from_segment_code       => l_adr_value_segment_code
160794         , p_from_combination_id     => l_adr_value_combination_id
160795         , p_value_type_code         => l_adr_value_type_code
160796         , p_transaction_coa_id      => l_adr_transaction_coa_id
160797         , p_accounting_coa_id       => l_adr_accounting_coa_id
160798         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
160799         , p_flex_value_set_id       => l_adr_flex_value_set_id
160800         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
160801         , p_adr_type_code           => 'S'
160802         , p_component_type          => l_component_type
160803         , p_component_code          => l_component_code
160804         , p_component_type_code     => l_component_type_code
160805         , p_component_appl_id       => l_component_appl_id
160806         , p_amb_context_code        => l_amb_context_code
160807         , p_entity_code             => 'AP_INVOICES'
160808         , p_event_class_code        => 'CREDIT MEMOS'
160809         , p_side                    => 'NA'
160810         );
160811 
160812   END IF;
160813 
160814    l_segment := AcctDerRule_22(
160815            p_application_id           => p_application_id
160816          , p_ae_header_id             => l_ae_header_id 
160817 , p_source_3 => p_source_3
160818 , p_source_3_meaning => p_source_3_meaning
160819 , p_source_10 => p_source_10
160820 , p_source_10_meaning => p_source_10_meaning
160821 , p_source_18 => p_source_18
160822          , x_transaction_coa_id       => l_adr_transaction_coa_id
160823          , x_accounting_coa_id        => l_adr_accounting_coa_id
160824          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
160825          , x_flex_value_set_id        => l_adr_flex_value_set_id
160826          , x_value_type_code          => l_adr_value_type_code
160827          , x_value_combination_id     => l_adr_value_combination_id
160828          , x_value_segment_code       => l_adr_value_segment_code
160829          , p_side                     => 'NA'
160830          , p_override_seg_flag        => 'Y'
160831    );
160832 
160836           p_to_segment_code         => 'GL_BALANCING'
160833    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
160834 
160835       xla_ae_lines_pkg.set_segment(
160837         , p_segment_value           => l_segment
160838         , p_from_segment_code       => l_adr_value_segment_code
160839         , p_from_combination_id     => l_adr_value_combination_id
160840         , p_value_type_code         => l_adr_value_type_code
160841         , p_transaction_coa_id      => l_adr_transaction_coa_id
160842         , p_accounting_coa_id       => l_adr_accounting_coa_id
160843         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
160844         , p_flex_value_set_id       => l_adr_flex_value_set_id
160845         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
160846         , p_adr_type_code           => 'S'
160847         , p_component_type          => l_component_type
160848         , p_component_code          => l_component_code
160849         , p_component_type_code     => l_component_type_code
160850         , p_component_appl_id       => l_component_appl_id
160851         , p_amb_context_code        => l_amb_context_code
160852         , p_entity_code             => 'AP_INVOICES'
160853         , p_event_class_code        => 'CREDIT MEMOS'
160854         , p_side                    => 'NA'
160855         );
160856 
160857   END IF;
160858 
160859    --
160860    --
160861    END IF;
160862    --
160863    -- Bug 4922099
160864    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
160865           (NVL(l_enc_upg_option, 'N') = 'O')
160866         ) AND
160867         (l_bflow_method_code = 'PRIOR_ENTRY')
160868       )
160869    THEN
160870       IF
160871       --
160872       1 = 2
160873       --
160874       THEN
160875       xla_accounting_err_pkg.build_message
160876                                     (p_appli_s_name            => 'XLA'
160877                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
160878                                     ,p_token_1                 => 'LINE_NUMBER'
160879                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
160880                                     ,p_token_2                 => 'LINE_TYPE_NAME'
160881                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
160882                                                                              l_component_type
160883                                                                             ,l_component_code
160884                                                                             ,l_component_type_code
160885                                                                             ,l_component_appl_id
160886                                                                             ,l_amb_context_code
160887                                                                             ,l_entity_code
160888                                                                             ,l_event_class_code
160889                                                                            )
160890                                     ,p_token_3                 => 'OWNER'
160891                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
160892                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
160893                                                                           ,p_lookup_code    => l_component_type_code
160894                                                                          )
160895                                     ,p_token_4                 => 'PRODUCT_NAME'
160896                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
160897                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
160898                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
160899                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
160900                                     ,p_ae_header_id            =>  NULL
160901                                        );
160902 
160903         IF (C_LEVEL_ERROR>= g_log_level) THEN
160904                  trace
160905                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
160906                       ,p_level    => C_LEVEL_ERROR
160907                       ,p_module   => l_log_module);
160908         END IF;
160909       END IF;
160910    END IF;
160911    --
160912    --
160913    ------------------------------------------------------------------------------------------------
160914    -- 4219869 Business Flow
160915    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
160916    -- Prior Entry.  Currently, the following code is always generated.
160917    ------------------------------------------------------------------------------------------------
160918    XLA_AE_LINES_PKG.ValidateCurrentLine;
160919 
160920    ------------------------------------------------------------------------------------
160921    -- 4219869 Business Flow
160922    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
160923    ------------------------------------------------------------------------------------
160924    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
160925 
160926    ----------------------------------------------------------------------------------
160927    -- 4219869 Business Flow
160928    -- Update journal entry status -- Need to generate this within IF <condition>
160929    ----------------------------------------------------------------------------------
160933          );
160930    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
160931          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
160932          ,p_balance_type_code => l_balance_type_code
160934 
160935    -------------------------------------------------------------------------------------------
160936    -- 4262811 - Generate the Accrual Reversal lines
160937    -------------------------------------------------------------------------------------------
160938    BEGIN
160939       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
160940                               (g_array_event(p_event_id).array_value_num('header_index'));
160941       IF l_acc_rev_flag IS NULL THEN
160942          l_acc_rev_flag := 'N';
160943       END IF;
160944    EXCEPTION
160945       WHEN OTHERS THEN
160946          l_acc_rev_flag := 'N';
160947    END;
160948    --
160949    IF (l_acc_rev_flag = 'Y') THEN
160950 
160951        -- 4645092  ------------------------------------------------------------------------------
160952        -- To allow MPA report to determine if it should generate report process
160953        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
160954        ------------------------------------------------------------------------------------------
160955 
160956        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
160957        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
160958    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
160959    -- call ADRs
160960    -- Bug 4922099
160961    --
160962    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
160963         (NVL(l_actual_upg_option, 'N') = 'O') OR
160964         (NVL(l_enc_upg_option, 'N') = 'O')
160965       )
160966    THEN
160967    NULL;
160968    --
160969    --
160970    
160971   l_ccid := AcctDerRule_29(
160972            p_application_id           => p_application_id
160973          , p_ae_header_id             => l_ae_header_id 
160974 , p_source_3 => p_source_3
160975 , p_source_3_meaning => p_source_3_meaning
160976 , p_source_8 => p_source_8
160977 , p_source_9 => p_source_9
160978 , p_source_10 => p_source_10
160979 , p_source_10_meaning => p_source_10_meaning
160980 , p_source_11 => p_source_11
160981 , p_source_18 => p_source_18
160982 , p_source_35 => p_source_35
160983 , p_source_35_meaning => p_source_35_meaning
160984          , x_transaction_coa_id       => l_adr_transaction_coa_id
160985          , x_accounting_coa_id        => l_adr_accounting_coa_id
160986          , x_value_type_code          => l_adr_value_type_code
160987          , p_side                     => 'NA'
160988    );
160989 
160990    xla_ae_lines_pkg.set_ccid(
160991     p_code_combination_id          => l_ccid
160992   , p_value_type_code              => l_adr_value_type_code
160993   , p_transaction_coa_id           => l_adr_transaction_coa_id
160994   , p_accounting_coa_id            => l_adr_accounting_coa_id
160995   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
160996   , p_adr_type_code                => 'S'
160997   , p_component_type               => l_component_type
160998   , p_component_code               => l_component_code
160999   , p_component_type_code          => l_component_type_code
161000   , p_component_appl_id            => l_component_appl_id
161001   , p_amb_context_code             => l_amb_context_code
161002   , p_side                         => 'NA'
161003   );
161004 
161005 
161006    l_segment := AcctDerRule_7(
161007            p_application_id           => p_application_id
161008          , p_ae_header_id             => l_ae_header_id 
161009 , p_source_3 => p_source_3
161010 , p_source_3_meaning => p_source_3_meaning
161011 , p_source_8 => p_source_8
161012 , p_source_9 => p_source_9
161013 , p_source_10 => p_source_10
161014 , p_source_10_meaning => p_source_10_meaning
161015 , p_source_11 => p_source_11
161016          , x_transaction_coa_id       => l_adr_transaction_coa_id
161017          , x_accounting_coa_id        => l_adr_accounting_coa_id
161018          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
161019          , x_flex_value_set_id        => l_adr_flex_value_set_id
161020          , x_value_type_code          => l_adr_value_type_code
161021          , x_value_combination_id     => l_adr_value_combination_id
161022          , x_value_segment_code       => l_adr_value_segment_code
161023          , p_side                     => 'NA'
161024          , p_override_seg_flag        => 'Y'
161025    );
161026 
161027    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
161028 
161029       xla_ae_lines_pkg.set_segment(
161030           p_to_segment_code         => 'GL_ACCOUNT'
161031         , p_segment_value           => l_segment
161032         , p_from_segment_code       => l_adr_value_segment_code
161033         , p_from_combination_id     => l_adr_value_combination_id
161034         , p_value_type_code         => l_adr_value_type_code
161035         , p_transaction_coa_id      => l_adr_transaction_coa_id
161036         , p_accounting_coa_id       => l_adr_accounting_coa_id
161037         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
161038         , p_flex_value_set_id       => l_adr_flex_value_set_id
161039         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
161040         , p_adr_type_code           => 'S'
161041         , p_component_type          => l_component_type
161042         , p_component_code          => l_component_code
161043         , p_component_type_code     => l_component_type_code
161044         , p_component_appl_id       => l_component_appl_id
161045         , p_amb_context_code        => l_amb_context_code
161046         , p_entity_code             => 'AP_INVOICES'
161047         , p_event_class_code        => 'CREDIT MEMOS'
161048         , p_side                    => 'NA'
161052 
161049         );
161050 
161051   END IF;
161053    l_segment := AcctDerRule_22(
161054            p_application_id           => p_application_id
161055          , p_ae_header_id             => l_ae_header_id 
161056 , p_source_3 => p_source_3
161057 , p_source_3_meaning => p_source_3_meaning
161058 , p_source_10 => p_source_10
161059 , p_source_10_meaning => p_source_10_meaning
161060 , p_source_18 => p_source_18
161061          , x_transaction_coa_id       => l_adr_transaction_coa_id
161062          , x_accounting_coa_id        => l_adr_accounting_coa_id
161063          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
161064          , x_flex_value_set_id        => l_adr_flex_value_set_id
161065          , x_value_type_code          => l_adr_value_type_code
161066          , x_value_combination_id     => l_adr_value_combination_id
161067          , x_value_segment_code       => l_adr_value_segment_code
161068          , p_side                     => 'NA'
161069          , p_override_seg_flag        => 'Y'
161070    );
161071 
161072    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
161073 
161074       xla_ae_lines_pkg.set_segment(
161075           p_to_segment_code         => 'GL_BALANCING'
161076         , p_segment_value           => l_segment
161077         , p_from_segment_code       => l_adr_value_segment_code
161078         , p_from_combination_id     => l_adr_value_combination_id
161079         , p_value_type_code         => l_adr_value_type_code
161080         , p_transaction_coa_id      => l_adr_transaction_coa_id
161081         , p_accounting_coa_id       => l_adr_accounting_coa_id
161082         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
161083         , p_flex_value_set_id       => l_adr_flex_value_set_id
161084         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
161085         , p_adr_type_code           => 'S'
161086         , p_component_type          => l_component_type
161087         , p_component_code          => l_component_code
161088         , p_component_type_code     => l_component_type_code
161089         , p_component_appl_id       => l_component_appl_id
161090         , p_amb_context_code        => l_amb_context_code
161091         , p_entity_code             => 'AP_INVOICES'
161092         , p_event_class_code        => 'CREDIT MEMOS'
161093         , p_side                    => 'NA'
161094         );
161095 
161096   END IF;
161097 
161098    --
161099    --
161100    END IF;
161101 
161102        --
161103        -- Update the line information that should be overwritten
161104        --
161105        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
161106                                          p_header_num   => 1);
161107        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
161108 
161109        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
161110 
161111        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
161112           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
161113        END IF;
161114 
161115       --
161116       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
161117       --
161118       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
161119           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
161120       ELSE
161121           ---------------------------------------------------------------------------------------------------
161122           -- 4262811a Switch Sign
161123           ---------------------------------------------------------------------------------------------------
161124           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
161125           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
161126                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
161127           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
161128                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
161129           -- 5132302
161130           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
161131                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
161132 
161133       END IF;
161134 
161135       -- 4955764
161136       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
161137       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
161138 
161139 
161140       XLA_AE_LINES_PKG.ValidateCurrentLine;
161141       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
161142 
161143       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
161144                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
161145                ,p_balance_type_code => l_balance_type_code);
161146 
161147    END IF;
161148 
161149    -----------------------------------------------------------------------------------------
161150    -- 4262811 Multiperiod Accounting
161151    -----------------------------------------------------------------------------------------
161152      -- No MPA option is assigned.
161153 
161154 
161155 END IF;
161156 END IF;
161157 --
161158 
161159 --
161160 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
161161    trace
161162       (p_msg      => 'END of AcctLineType_261'
161163       ,p_level    => C_LEVEL_PROCEDURE
161164       ,p_module   => l_log_module);
161165 END IF;
161169       RAISE;
161166 --
161167 EXCEPTION
161168   WHEN xla_exceptions_pkg.application_exception THEN
161170   WHEN OTHERS THEN
161171        xla_exceptions_pkg.raise_message
161172            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_261');
161173 END AcctLineType_261;
161174 --
161175 
161176 ---------------------------------------
161177 --
161178 -- PRIVATE FUNCTION
161179 --         AcctLineType_262
161180 --
161181 ---------------------------------------
161182 PROCEDURE AcctLineType_262 (
161183   p_application_id        IN NUMBER
161184  ,p_event_id              IN NUMBER
161185  ,p_calculate_acctd_flag  IN VARCHAR2
161186  ,p_calculate_g_l_flag    IN VARCHAR2
161187  ,p_actual_flag           IN OUT VARCHAR2
161188  ,p_balance_type_code     OUT VARCHAR2
161189  ,p_gain_or_loss_ref      OUT VARCHAR2
161190  
161191 --Invoice Distribution Description
161192  , p_source_1            IN VARCHAR2
161193 --Automatic Offsets Value
161194  , p_source_3            IN VARCHAR2
161195  , p_source_3_meaning    IN VARCHAR2
161196 --Purchase Order Rate Variance Gain Account
161197  , p_source_8            IN NUMBER
161198 --Invoice Distribution Ledger Amount
161199  , p_source_9            IN NUMBER
161200 --Destination Type of the PO Distribution
161201  , p_source_10            IN VARCHAR2
161202  , p_source_10_meaning    IN VARCHAR2
161203 --Purchase Order Rate Variance Loss Account
161204  , p_source_11            IN NUMBER
161205 --Invoice Distribution Account
161206  , p_source_18            IN NUMBER
161207 --Invoice Distribution Type
161208  , p_source_21            IN VARCHAR2
161209  , p_source_21_meaning    IN VARCHAR2
161210 --Automatic Offsets Flag
161211  , p_source_35            IN VARCHAR2
161212  , p_source_35_meaning    IN VARCHAR2
161213 --Accounting Reversal Indicator
161214  , p_source_41            IN VARCHAR2
161215 --Distribution Link Type
161216  , p_source_43            IN VARCHAR2
161217 --Allocation to Main Distribution Identifier
161218  , p_source_45            IN NUMBER
161219 --Invoice Identifier
161220  , p_source_46            IN NUMBER
161221 --Invoice Distribution Identifier
161222  , p_source_52            IN NUMBER
161223 --Payables Encumbrance Upgrade Credit Account
161224  , p_source_53            IN NUMBER
161225 --Payables Encumbrance Upgrade Credit Amount
161226  , p_source_54            IN NUMBER
161227 --Invoice Currency Code
161228  , p_source_55            IN VARCHAR2
161229 --Payables Encumbrance Upgrade Credit Base Amount
161230  , p_source_56            IN NUMBER
161231 --Payables Encumbrance Upgrade Debit Account
161232  , p_source_57            IN NUMBER
161233 --Payables Encumbrance Upgrade Debit Amount
161234  , p_source_58            IN NUMBER
161235 --Payables Encumbrance Upgrade Debit Base Amount
161236  , p_source_59            IN NUMBER
161237 --Payables Encumbrance Upgrade Option
161238  , p_source_60            IN VARCHAR2
161239 --Invoice Distribution Amount
161240  , p_source_61            IN NUMBER
161241 --Deferred Accounting End Date
161242  , p_source_65            IN DATE
161243 --Deferred Accounting Option
161244  , p_source_66            IN VARCHAR2
161245 --Deferred Accounting Start Date
161246  , p_source_67            IN DATE
161247 --Override Accounted Amount Indicator
161248  , p_source_68            IN VARCHAR2
161249  , p_source_68_meaning    IN VARCHAR2
161250 --Invoice Supplier Identifier
161251  , p_source_69            IN NUMBER
161252 --Invoice Supplier Site Identifier
161253  , p_source_70            IN NUMBER
161254 --Third Party Type
161255  , p_source_71            IN VARCHAR2
161256 --Parent Reversal Identifier
161257  , p_source_72            IN NUMBER
161258 --Invoice Distribution Tax Line Identifier
161259  , p_source_74            IN NUMBER
161260 --Invoice Distribution Tax Distribution Identifier from Tax
161261  , p_source_75            IN NUMBER
161262 --Invoice Distribution Summary Tax Line Identifier
161263  , p_source_76            IN NUMBER
161264 --Payables Upgrade Credit Encumbrance Type Identifier
161265  , p_source_77            IN NUMBER
161266 --Payables Upgrade Debit Encumbrance Type Identifier
161267  , p_source_78            IN NUMBER
161268 --Business Flow Accounts Payable Application Identifier
161269  , p_source_79            IN NUMBER
161270 --Business Flow Invoice Distribution Type
161271  , p_source_80            IN VARCHAR2
161272 --Business Flow Invoice Entity Code
161273  , p_source_81            IN VARCHAR2
161274 --Business Flow Invoice Distribution Identifier
161275  , p_source_82            IN NUMBER
161276 --Business Flow Invoice Identifier
161277  , p_source_83            IN NUMBER
161278 --Accrue on Receipt Option
161279  , p_source_84            IN VARCHAR2
161280  , p_source_84_meaning    IN VARCHAR2
161281 --Invoice Exchange Date
161282  , p_source_136            IN DATE
161283 --Invoice Exchange Rate
161284  , p_source_137            IN NUMBER
161285 --Invoice Exchange Rate Type
161286  , p_source_138            IN VARCHAR2
161287 )
161288 IS
161289 
161290 l_component_type              VARCHAR2(80);
161291 l_component_code              VARCHAR2(30);
161292 l_component_type_code         VARCHAR2(1);
161293 l_component_appl_id           INTEGER;
161294 l_amb_context_code            VARCHAR2(30);
161295 l_entity_code                 VARCHAR2(30);
161296 l_event_class_code            VARCHAR2(30);
161297 l_ae_header_id                NUMBER;
161298 l_event_type_code             VARCHAR2(30);
161299 l_line_definition_code        VARCHAR2(30);
161300 l_line_definition_owner_code  VARCHAR2(1);
161301 --
161302 -- adr variables
161303 l_segment                     VARCHAR2(30);
161304 l_ccid                        NUMBER;
161305 l_adr_transaction_coa_id      NUMBER;
161306 l_adr_accounting_coa_id       NUMBER;
161310 l_adr_value_combination_id    NUMBER;
161307 l_adr_flexfield_segment_code  VARCHAR2(30);
161308 l_adr_flex_value_set_id       NUMBER;
161309 l_adr_value_type_code         VARCHAR2(30);
161311 l_adr_value_segment_code      VARCHAR2(30);
161312 
161313 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
161314 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
161315 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
161316 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
161317 
161318 -- 4262811 Variables ------------------------------------------------------------------------------------------
161319 l_entered_amt_idx             NUMBER;
161320 l_accted_amt_idx              NUMBER;
161321 l_acc_rev_flag                VARCHAR2(1);
161322 l_accrual_line_num            NUMBER;
161323 l_tmp_amt                     NUMBER;
161324 l_acc_rev_natural_side_code   VARCHAR2(1);
161325 
161326 l_num_entries                 NUMBER;
161327 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
161328 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
161329 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
161330 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
161331 l_recog_line_1                NUMBER;
161332 l_recog_line_2                NUMBER;
161333 
161334 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
161335 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
161336 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
161337 
161338 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
161339 
161340 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
161341 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
161342 
161343 ---------------------------------------------------------------------------------------------------------------
161344 
161345 
161346 --
161347 -- bulk performance
161348 --
161349 l_balance_type_code           VARCHAR2(1);
161350 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
161351 l_log_module                  VARCHAR2(240);
161352 
161353 --
161354 -- Upgrade strategy
161355 --
161356 l_actual_upg_option           VARCHAR2(1);
161357 l_enc_upg_option           VARCHAR2(1);
161358 
161359 --
161360 BEGIN
161361 --
161362 IF g_log_enabled THEN
161363       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_262';
161364 END IF;
161365 --
161366 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
161367 
161368       trace
161369          (p_msg      => 'BEGIN of AcctLineType_262'
161370          ,p_level    => C_LEVEL_PROCEDURE
161371          ,p_module   => l_log_module);
161372 
161373 END IF;
161374 --
161375 l_component_type             := 'AMB_JLT';
161376 l_component_code             := 'AP_TAX_EX_RATE_VAR_DM';
161377 l_component_type_code        := 'S';
161378 l_component_appl_id          :=  200;
161379 l_amb_context_code           := 'DEFAULT';
161380 l_entity_code                := 'AP_INVOICES';
161381 l_event_class_code           := 'DEBIT MEMOS';
161382 l_event_type_code            := 'DEBIT MEMOS_ALL';
161383 l_line_definition_owner_code := 'S';
161384 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
161385 --
161386 l_balance_type_code          := 'A';
161387 l_segment                     := NULL;
161388 l_ccid                        := NULL;
161389 l_adr_transaction_coa_id      := NULL;
161390 l_adr_accounting_coa_id       := NULL;
161391 l_adr_flexfield_segment_code  := NULL;
161392 l_adr_flex_value_set_id       := NULL;
161396 
161393 l_adr_value_type_code         := NULL;
161394 l_adr_value_combination_id    := NULL;
161395 l_adr_value_segment_code      := NULL;
161397 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
161398 l_bflow_class_code           := '';    -- 4219869 Business Flow
161399 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
161400 l_budgetary_control_flag     := 'N';
161401 
161402 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
161403 l_bflow_applied_to_amt       := NULL; -- 5132302
161404 l_entered_amt_idx            := NULL;          -- 4262811
161405 l_accted_amt_idx             := NULL;          -- 4262811
161406 l_acc_rev_flag               := NULL;          -- 4262811
161407 l_accrual_line_num           := NULL;          -- 4262811
161408 l_tmp_amt                    := NULL;          -- 4262811
161409 --
161410 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
161411             (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
161412                return;
161413   END IF;
161414   
161415 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
161416     l_balance_type_code <> 'B' THEN
161417 IF NVL(p_source_21,'
161418 ') =  'TERV' AND 
161419 NVL(p_source_84,'
161420 ') =  'Y'
161421  THEN 
161422 
161423    --
161424    XLA_AE_LINES_PKG.SetNewLine;
161425 
161426    p_balance_type_code          := l_balance_type_code;
161427    -- set the flag so later we will know whether the gain loss line needs to be created
161428    
161429    IF(l_balance_type_code = 'A' ) THEN
161430      p_actual_flag :='G';
161431    END IF;
161432 
161433    --
161434    -- bulk performance
161435    --
161436    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
161437                                       p_header_num   => 0); -- 4262811
161438    --
161439    -- set accounting line options
161440    --
161441    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
161442            p_natural_side_code          => 'D'
161443          , p_gain_or_loss_flag          => 'Y'
161444          , p_gl_transfer_mode_code      => 'S'
161445          , p_acct_entry_type_code       => 'A'
161446          , p_switch_side_flag           => 'Y'
161447          , p_merge_duplicate_code       => 'A'
161448          );
161449    --
161453    -- set accounting line type info
161450    l_acc_rev_natural_side_code := 'C';  -- 4262811
161451    -- 
161452    --
161454    --
161455    xla_ae_lines_pkg.SetAcctLineType
161456       (p_component_type             => l_component_type
161457       ,p_event_type_code            => l_event_type_code
161458       ,p_line_definition_owner_code => l_line_definition_owner_code
161459       ,p_line_definition_code       => l_line_definition_code
161460       ,p_accounting_line_code       => l_component_code
161461       ,p_accounting_line_type_code  => l_component_type_code
161462       ,p_accounting_line_appl_id    => l_component_appl_id
161463       ,p_amb_context_code           => l_amb_context_code
161464       ,p_entity_code                => l_entity_code
161465       ,p_event_class_code           => l_event_class_code);
161466    --
161467    -- set accounting class
161468    --
161469    xla_ae_lines_pkg.SetAcctClass(
161470            p_accounting_class_code  => 'TERV'
161471          , p_ae_header_id           => l_ae_header_id
161472          );
161473 
161474    --
161475    -- set rounding class
161476    --
161477    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
161478                       'TERV';
161479 
161480    --
161481    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
161482    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
161483    --
161484    -- bulk performance
161485    --
161486    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
161487 
161488    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
161489       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
161490 
161491    -- 4955764
161492    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
161493       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
161494 
161495    -- 4458381 Public Sector Enh
161496    
161497    --
161498    -- set accounting attributes for the line type
161499    --
161500    l_entered_amt_idx := 23;
161501    l_accted_amt_idx  := 28;
161502    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
161503    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
161504    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
161505    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
161506    l_rec_acct_attrs.array_num_value(2)  := 
161507 xla_ae_sources_pkg.GetSystemSourceNum(
161508    p_source_code           => 'XLA_EVENT_APPL_ID'
161509  , p_source_type_code      => 'Y'
161510  , p_source_application_id =>  602
161511 );
161512    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
161513    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
161514    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
161515    l_rec_acct_attrs.array_char_value(4)  := 
161516 xla_ae_sources_pkg.GetSystemSourceChar(
161517    p_source_code           => 'XLA_ENTITY_CODE'
161518  , p_source_type_code      => 'Y'
161519  , p_source_application_id =>  602
161520 );
161521    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
161522    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
161523    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
161524    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
161525    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
161526    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
161527    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
161528    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
161529    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
161530    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
161531    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
161532    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
161533    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
161534    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
161535    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
161536    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
161537    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
161538    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
161539    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
161540    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
161541    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
161542    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
161543    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
161544    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
161545    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
161546    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
161547    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
161548    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
161549    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
161550    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
161551    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
161552    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
161553    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
161554    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
161555    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
161556    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
161557    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
161558    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
161562    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
161559    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
161560    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
161561    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
161563    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
161564    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
161565    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
161566    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
161567    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
161568    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
161569    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
161570    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
161571    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
161572    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
161573    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
161574    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
161575    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
161576    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
161577    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
161578    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
161579    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
161580    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
161581    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
161582    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
161583    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
161584    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
161585    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
161586    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
161587    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
161588    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
161589    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
161590    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
161591    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
161592    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
161593    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
161594    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
161595    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
161596    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
161597 
161598    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
161599    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
161600 
161601    ---------------------------------------------------------------------------------------------------------------
161602    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
161603    ---------------------------------------------------------------------------------------------------------------
161604    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
161605 
161606    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
161607    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
161608 
161609    IF xla_accounting_cache_pkg.GetValueChar
161610          (p_source_code         => 'LEDGER_CATEGORY_CODE'
161611          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
161612    AND l_bflow_method_code = 'PRIOR_ENTRY'
161613 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
161614    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
161615          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
161616        )
161617    THEN
161618          xla_ae_lines_pkg.BflowUpgEntry
161619            (p_business_method_code    => l_bflow_method_code
161620            ,p_business_class_code     => l_bflow_class_code
161621            ,p_balance_type            => l_balance_type_code);
161622    ELSE
161623       NULL;
161624 -- No business flow processing for business flow method of NONE.
161625    END IF;
161626 
161627    --
161628    -- call analytical criteria
161629    --
161630    
161631    --
161632    -- call description
161633    --
161634    
161635 xla_ae_lines_pkg.SetLineDescription(
161636    p_ae_header_id => l_ae_header_id
161637   ,p_description  => Description_2 (
161638      p_application_id         => p_application_id
161639    , p_ae_header_id           => l_ae_header_id 
161640 , p_source_1 => p_source_1
161641    )
161642 );
161643 
161644 
161645    --
161646    -- call ADRs
161647    -- Bug 4922099
161648    --
161649    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
161650         (NVL(l_actual_upg_option, 'N') = 'O') OR
161651         (NVL(l_enc_upg_option, 'N') = 'O')
161652       )
161653    THEN
161654    NULL;
161655    --
161656    --
161657    
161658   l_ccid := AcctDerRule_29(
161659            p_application_id           => p_application_id
161663 , p_source_8 => p_source_8
161660          , p_ae_header_id             => l_ae_header_id 
161661 , p_source_3 => p_source_3
161662 , p_source_3_meaning => p_source_3_meaning
161664 , p_source_9 => p_source_9
161665 , p_source_10 => p_source_10
161666 , p_source_10_meaning => p_source_10_meaning
161667 , p_source_11 => p_source_11
161668 , p_source_18 => p_source_18
161669 , p_source_35 => p_source_35
161670 , p_source_35_meaning => p_source_35_meaning
161671          , x_transaction_coa_id       => l_adr_transaction_coa_id
161672          , x_accounting_coa_id        => l_adr_accounting_coa_id
161673          , x_value_type_code          => l_adr_value_type_code
161674          , p_side                     => 'NA'
161675    );
161676 
161677    xla_ae_lines_pkg.set_ccid(
161678     p_code_combination_id          => l_ccid
161679   , p_value_type_code              => l_adr_value_type_code
161680   , p_transaction_coa_id           => l_adr_transaction_coa_id
161681   , p_accounting_coa_id            => l_adr_accounting_coa_id
161682   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
161683   , p_adr_type_code                => 'S'
161684   , p_component_type               => l_component_type
161685   , p_component_code               => l_component_code
161686   , p_component_type_code          => l_component_type_code
161687   , p_component_appl_id            => l_component_appl_id
161688   , p_amb_context_code             => l_amb_context_code
161689   , p_side                         => 'NA'
161690   );
161691 
161692 
161693    l_segment := AcctDerRule_7(
161694            p_application_id           => p_application_id
161695          , p_ae_header_id             => l_ae_header_id 
161696 , p_source_3 => p_source_3
161697 , p_source_3_meaning => p_source_3_meaning
161698 , p_source_8 => p_source_8
161699 , p_source_9 => p_source_9
161700 , p_source_10 => p_source_10
161701 , p_source_10_meaning => p_source_10_meaning
161702 , p_source_11 => p_source_11
161703          , x_transaction_coa_id       => l_adr_transaction_coa_id
161704          , x_accounting_coa_id        => l_adr_accounting_coa_id
161705          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
161706          , x_flex_value_set_id        => l_adr_flex_value_set_id
161707          , x_value_type_code          => l_adr_value_type_code
161708          , x_value_combination_id     => l_adr_value_combination_id
161709          , x_value_segment_code       => l_adr_value_segment_code
161710          , p_side                     => 'NA'
161711          , p_override_seg_flag        => 'Y'
161712    );
161713 
161714    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
161715 
161716       xla_ae_lines_pkg.set_segment(
161717           p_to_segment_code         => 'GL_ACCOUNT'
161718         , p_segment_value           => l_segment
161719         , p_from_segment_code       => l_adr_value_segment_code
161720         , p_from_combination_id     => l_adr_value_combination_id
161721         , p_value_type_code         => l_adr_value_type_code
161722         , p_transaction_coa_id      => l_adr_transaction_coa_id
161723         , p_accounting_coa_id       => l_adr_accounting_coa_id
161724         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
161725         , p_flex_value_set_id       => l_adr_flex_value_set_id
161726         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
161727         , p_adr_type_code           => 'S'
161728         , p_component_type          => l_component_type
161729         , p_component_code          => l_component_code
161730         , p_component_type_code     => l_component_type_code
161731         , p_component_appl_id       => l_component_appl_id
161732         , p_amb_context_code        => l_amb_context_code
161733         , p_entity_code             => 'AP_INVOICES'
161734         , p_event_class_code        => 'DEBIT MEMOS'
161735         , p_side                    => 'NA'
161736         );
161737 
161738   END IF;
161739 
161740    l_segment := AcctDerRule_22(
161741            p_application_id           => p_application_id
161742          , p_ae_header_id             => l_ae_header_id 
161743 , p_source_3 => p_source_3
161744 , p_source_3_meaning => p_source_3_meaning
161745 , p_source_10 => p_source_10
161746 , p_source_10_meaning => p_source_10_meaning
161747 , p_source_18 => p_source_18
161748          , x_transaction_coa_id       => l_adr_transaction_coa_id
161749          , x_accounting_coa_id        => l_adr_accounting_coa_id
161750          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
161751          , x_flex_value_set_id        => l_adr_flex_value_set_id
161752          , x_value_type_code          => l_adr_value_type_code
161753          , x_value_combination_id     => l_adr_value_combination_id
161754          , x_value_segment_code       => l_adr_value_segment_code
161755          , p_side                     => 'NA'
161756          , p_override_seg_flag        => 'Y'
161757    );
161758 
161759    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
161760 
161761       xla_ae_lines_pkg.set_segment(
161762           p_to_segment_code         => 'GL_BALANCING'
161763         , p_segment_value           => l_segment
161764         , p_from_segment_code       => l_adr_value_segment_code
161765         , p_from_combination_id     => l_adr_value_combination_id
161766         , p_value_type_code         => l_adr_value_type_code
161767         , p_transaction_coa_id      => l_adr_transaction_coa_id
161768         , p_accounting_coa_id       => l_adr_accounting_coa_id
161769         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
161770         , p_flex_value_set_id       => l_adr_flex_value_set_id
161774         , p_component_code          => l_component_code
161771         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
161772         , p_adr_type_code           => 'S'
161773         , p_component_type          => l_component_type
161775         , p_component_type_code     => l_component_type_code
161776         , p_component_appl_id       => l_component_appl_id
161777         , p_amb_context_code        => l_amb_context_code
161778         , p_entity_code             => 'AP_INVOICES'
161779         , p_event_class_code        => 'DEBIT MEMOS'
161780         , p_side                    => 'NA'
161781         );
161782 
161783   END IF;
161784 
161785    --
161786    --
161787    END IF;
161788    --
161789    -- Bug 4922099
161790    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
161791           (NVL(l_enc_upg_option, 'N') = 'O')
161792         ) AND
161793         (l_bflow_method_code = 'PRIOR_ENTRY')
161794       )
161795    THEN
161796       IF
161797       --
161798       1 = 2
161799       --
161800       THEN
161801       xla_accounting_err_pkg.build_message
161802                                     (p_appli_s_name            => 'XLA'
161806                                     ,p_token_2                 => 'LINE_TYPE_NAME'
161803                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
161804                                     ,p_token_1                 => 'LINE_NUMBER'
161805                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
161807                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
161808                                                                              l_component_type
161809                                                                             ,l_component_code
161810                                                                             ,l_component_type_code
161811                                                                             ,l_component_appl_id
161812                                                                             ,l_amb_context_code
161813                                                                             ,l_entity_code
161814                                                                             ,l_event_class_code
161815                                                                            )
161816                                     ,p_token_3                 => 'OWNER'
161817                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
161818                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
161819                                                                           ,p_lookup_code    => l_component_type_code
161820                                                                          )
161821                                     ,p_token_4                 => 'PRODUCT_NAME'
161822                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
161823                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
161824                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
161825                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
161826                                     ,p_ae_header_id            =>  NULL
161827                                        );
161828 
161829         IF (C_LEVEL_ERROR>= g_log_level) THEN
161830                  trace
161831                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
161832                       ,p_level    => C_LEVEL_ERROR
161833                       ,p_module   => l_log_module);
161834         END IF;
161835       END IF;
161836    END IF;
161837    --
161838    --
161839    ------------------------------------------------------------------------------------------------
161840    -- 4219869 Business Flow
161841    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
161842    -- Prior Entry.  Currently, the following code is always generated.
161843    ------------------------------------------------------------------------------------------------
161844    XLA_AE_LINES_PKG.ValidateCurrentLine;
161845 
161846    ------------------------------------------------------------------------------------
161847    -- 4219869 Business Flow
161848    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
161849    ------------------------------------------------------------------------------------
161850    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
161851 
161855    ----------------------------------------------------------------------------------
161852    ----------------------------------------------------------------------------------
161853    -- 4219869 Business Flow
161854    -- Update journal entry status -- Need to generate this within IF <condition>
161856    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
161857          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
161858          ,p_balance_type_code => l_balance_type_code
161859          );
161860 
161861    -------------------------------------------------------------------------------------------
161862    -- 4262811 - Generate the Accrual Reversal lines
161863    -------------------------------------------------------------------------------------------
161864    BEGIN
161865       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
161866                               (g_array_event(p_event_id).array_value_num('header_index'));
161867       IF l_acc_rev_flag IS NULL THEN
161868          l_acc_rev_flag := 'N';
161869       END IF;
161870    EXCEPTION
161871       WHEN OTHERS THEN
161872          l_acc_rev_flag := 'N';
161873    END;
161874    --
161875    IF (l_acc_rev_flag = 'Y') THEN
161876 
161877        -- 4645092  ------------------------------------------------------------------------------
161878        -- To allow MPA report to determine if it should generate report process
161879        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
161880        ------------------------------------------------------------------------------------------
161881 
161882        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
161883        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
161884    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
161885    -- call ADRs
161886    -- Bug 4922099
161887    --
161888    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
161889         (NVL(l_actual_upg_option, 'N') = 'O') OR
161890         (NVL(l_enc_upg_option, 'N') = 'O')
161891       )
161892    THEN
161893    NULL;
161894    --
161895    --
161896    
161897   l_ccid := AcctDerRule_29(
161898            p_application_id           => p_application_id
161899          , p_ae_header_id             => l_ae_header_id 
161900 , p_source_3 => p_source_3
161901 , p_source_3_meaning => p_source_3_meaning
161902 , p_source_8 => p_source_8
161903 , p_source_9 => p_source_9
161904 , p_source_10 => p_source_10
161905 , p_source_10_meaning => p_source_10_meaning
161906 , p_source_11 => p_source_11
161907 , p_source_18 => p_source_18
161908 , p_source_35 => p_source_35
161909 , p_source_35_meaning => p_source_35_meaning
161910          , x_transaction_coa_id       => l_adr_transaction_coa_id
161911          , x_accounting_coa_id        => l_adr_accounting_coa_id
161912          , x_value_type_code          => l_adr_value_type_code
161913          , p_side                     => 'NA'
161914    );
161915 
161916    xla_ae_lines_pkg.set_ccid(
161917     p_code_combination_id          => l_ccid
161918   , p_value_type_code              => l_adr_value_type_code
161919   , p_transaction_coa_id           => l_adr_transaction_coa_id
161920   , p_accounting_coa_id            => l_adr_accounting_coa_id
161921   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
161925   , p_component_type_code          => l_component_type_code
161922   , p_adr_type_code                => 'S'
161923   , p_component_type               => l_component_type
161924   , p_component_code               => l_component_code
161926   , p_component_appl_id            => l_component_appl_id
161927   , p_amb_context_code             => l_amb_context_code
161931 
161928   , p_side                         => 'NA'
161929   );
161930 
161932    l_segment := AcctDerRule_7(
161933            p_application_id           => p_application_id
161934          , p_ae_header_id             => l_ae_header_id 
161935 , p_source_3 => p_source_3
161936 , p_source_3_meaning => p_source_3_meaning
161937 , p_source_8 => p_source_8
161938 , p_source_9 => p_source_9
161939 , p_source_10 => p_source_10
161940 , p_source_10_meaning => p_source_10_meaning
161941 , p_source_11 => p_source_11
161942          , x_transaction_coa_id       => l_adr_transaction_coa_id
161943          , x_accounting_coa_id        => l_adr_accounting_coa_id
161944          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
161945          , x_flex_value_set_id        => l_adr_flex_value_set_id
161946          , x_value_type_code          => l_adr_value_type_code
161947          , x_value_combination_id     => l_adr_value_combination_id
161948          , x_value_segment_code       => l_adr_value_segment_code
161949          , p_side                     => 'NA'
161950          , p_override_seg_flag        => 'Y'
161951    );
161952 
161953    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
161954 
161955       xla_ae_lines_pkg.set_segment(
161956           p_to_segment_code         => 'GL_ACCOUNT'
161957         , p_segment_value           => l_segment
161958         , p_from_segment_code       => l_adr_value_segment_code
161959         , p_from_combination_id     => l_adr_value_combination_id
161960         , p_value_type_code         => l_adr_value_type_code
161961         , p_transaction_coa_id      => l_adr_transaction_coa_id
161962         , p_accounting_coa_id       => l_adr_accounting_coa_id
161963         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
161964         , p_flex_value_set_id       => l_adr_flex_value_set_id
161965         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
161966         , p_adr_type_code           => 'S'
161967         , p_component_type          => l_component_type
161968         , p_component_code          => l_component_code
161969         , p_component_type_code     => l_component_type_code
161970         , p_component_appl_id       => l_component_appl_id
161971         , p_amb_context_code        => l_amb_context_code
161972         , p_entity_code             => 'AP_INVOICES'
161973         , p_event_class_code        => 'DEBIT MEMOS'
161974         , p_side                    => 'NA'
161975         );
161976 
161977   END IF;
161978 
161979    l_segment := AcctDerRule_22(
161980            p_application_id           => p_application_id
161981          , p_ae_header_id             => l_ae_header_id 
161982 , p_source_3 => p_source_3
161983 , p_source_3_meaning => p_source_3_meaning
161984 , p_source_10 => p_source_10
161985 , p_source_10_meaning => p_source_10_meaning
161986 , p_source_18 => p_source_18
161987          , x_transaction_coa_id       => l_adr_transaction_coa_id
161988          , x_accounting_coa_id        => l_adr_accounting_coa_id
161989          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
161990          , x_flex_value_set_id        => l_adr_flex_value_set_id
161991          , x_value_type_code          => l_adr_value_type_code
161992          , x_value_combination_id     => l_adr_value_combination_id
161993          , x_value_segment_code       => l_adr_value_segment_code
161994          , p_side                     => 'NA'
161995          , p_override_seg_flag        => 'Y'
161996    );
161997 
161998    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
161999 
162000       xla_ae_lines_pkg.set_segment(
162001           p_to_segment_code         => 'GL_BALANCING'
162002         , p_segment_value           => l_segment
162003         , p_from_segment_code       => l_adr_value_segment_code
162004         , p_from_combination_id     => l_adr_value_combination_id
162005         , p_value_type_code         => l_adr_value_type_code
162006         , p_transaction_coa_id      => l_adr_transaction_coa_id
162007         , p_accounting_coa_id       => l_adr_accounting_coa_id
162008         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
162009         , p_flex_value_set_id       => l_adr_flex_value_set_id
162010         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
162011         , p_adr_type_code           => 'S'
162012         , p_component_type          => l_component_type
162013         , p_component_code          => l_component_code
162014         , p_component_type_code     => l_component_type_code
162015         , p_component_appl_id       => l_component_appl_id
162016         , p_amb_context_code        => l_amb_context_code
162017         , p_entity_code             => 'AP_INVOICES'
162018         , p_event_class_code        => 'DEBIT MEMOS'
162019         , p_side                    => 'NA'
162020         );
162021 
162022   END IF;
162023 
162024    --
162025    --
162026    END IF;
162027 
162028        --
162029        -- Update the line information that should be overwritten
162030        --
162031        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
162032                                          p_header_num   => 1);
162033        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
162034 
162035        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
162036 
162037        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
162038           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
162039        END IF;
162040 
162041       --
162042       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
162043       --
162044       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
162048           -- 4262811a Switch Sign
162045           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
162046       ELSE
162047           ---------------------------------------------------------------------------------------------------
162049           ---------------------------------------------------------------------------------------------------
162050           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
162051           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
162055           -- 5132302
162052                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
162053           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
162054                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
162056           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
162057                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
162058 
162059       END IF;
162060 
162061       -- 4955764
162062       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
162063       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
162064 
162065 
162066       XLA_AE_LINES_PKG.ValidateCurrentLine;
162067       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
162068 
162069       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
162070                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
162071                ,p_balance_type_code => l_balance_type_code);
162072 
162073    END IF;
162074 
162075    -----------------------------------------------------------------------------------------
162076    -- 4262811 Multiperiod Accounting
162077    -----------------------------------------------------------------------------------------
162078      -- No MPA option is assigned.
162079 
162080 
162081 END IF;
162082 END IF;
162083 --
162084 
162085 --
162086 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
162087    trace
162088       (p_msg      => 'END of AcctLineType_262'
162089       ,p_level    => C_LEVEL_PROCEDURE
162090       ,p_module   => l_log_module);
162091 END IF;
162092 --
162093 EXCEPTION
162094   WHEN xla_exceptions_pkg.application_exception THEN
162095       RAISE;
162096   WHEN OTHERS THEN
162097        xla_exceptions_pkg.raise_message
162098            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_262');
162099 END AcctLineType_262;
162100 --
162101 
162102 ---------------------------------------
162103 --
162104 -- PRIVATE FUNCTION
162105 --         AcctLineType_263
162106 --
162107 ---------------------------------------
162108 PROCEDURE AcctLineType_263 (
162109   p_application_id        IN NUMBER
162110  ,p_event_id              IN NUMBER
162111  ,p_calculate_acctd_flag  IN VARCHAR2
162112  ,p_calculate_g_l_flag    IN VARCHAR2
162113  ,p_actual_flag           IN OUT VARCHAR2
162114  ,p_balance_type_code     OUT VARCHAR2
162115  ,p_gain_or_loss_ref      OUT VARCHAR2
162116  
162117 --Invoice Distribution Description
162118  , p_source_1            IN VARCHAR2
162119 --Automatic Offsets Value
162120  , p_source_3            IN VARCHAR2
162121  , p_source_3_meaning    IN VARCHAR2
162122 --Purchase Order Rate Variance Gain Account
162123  , p_source_8            IN NUMBER
162124 --Invoice Distribution Ledger Amount
162125  , p_source_9            IN NUMBER
162126 --Destination Type of the PO Distribution
162127  , p_source_10            IN VARCHAR2
162128  , p_source_10_meaning    IN VARCHAR2
162129 --Purchase Order Rate Variance Loss Account
162130  , p_source_11            IN NUMBER
162131 --Invoice Distribution Account
162132  , p_source_18            IN NUMBER
162133 --Invoice Distribution Type
162134  , p_source_21            IN VARCHAR2
162135  , p_source_21_meaning    IN VARCHAR2
162136 --Automatic Offsets Flag
162137  , p_source_35            IN VARCHAR2
162138  , p_source_35_meaning    IN VARCHAR2
162139 --Accounting Reversal Indicator
162140  , p_source_41            IN VARCHAR2
162141 --Distribution Link Type
162142  , p_source_43            IN VARCHAR2
162143 --Allocation to Main Distribution Identifier
162144  , p_source_45            IN NUMBER
162145 --Invoice Identifier
162146  , p_source_46            IN NUMBER
162147 --Invoice Distribution Identifier
162148  , p_source_52            IN NUMBER
162149 --Payables Encumbrance Upgrade Credit Account
162150  , p_source_53            IN NUMBER
162151 --Payables Encumbrance Upgrade Credit Amount
162152  , p_source_54            IN NUMBER
162153 --Invoice Currency Code
162154  , p_source_55            IN VARCHAR2
162155 --Payables Encumbrance Upgrade Credit Base Amount
162156  , p_source_56            IN NUMBER
162157 --Payables Encumbrance Upgrade Debit Account
162158  , p_source_57            IN NUMBER
162159 --Payables Encumbrance Upgrade Debit Amount
162160  , p_source_58            IN NUMBER
162161 --Payables Encumbrance Upgrade Debit Base Amount
162162  , p_source_59            IN NUMBER
162163 --Payables Encumbrance Upgrade Option
162164  , p_source_60            IN VARCHAR2
162165 --Invoice Distribution Amount
162169 --Deferred Accounting Option
162166  , p_source_61            IN NUMBER
162167 --Deferred Accounting End Date
162168  , p_source_65            IN DATE
162170  , p_source_66            IN VARCHAR2
162171 --Deferred Accounting Start Date
162172  , p_source_67            IN DATE
162173 --Override Accounted Amount Indicator
162174  , p_source_68            IN VARCHAR2
162175  , p_source_68_meaning    IN VARCHAR2
162176 --Invoice Supplier Identifier
162177  , p_source_69            IN NUMBER
162178 --Invoice Supplier Site Identifier
162179  , p_source_70            IN NUMBER
162180 --Third Party Type
162181  , p_source_71            IN VARCHAR2
162182 --Parent Reversal Identifier
162183  , p_source_72            IN NUMBER
162184 --Invoice Distribution Statistical Amount
162185  , p_source_73            IN NUMBER
162186 --Invoice Distribution Tax Line Identifier
162187  , p_source_74            IN NUMBER
162188 --Invoice Distribution Tax Distribution Identifier from Tax
162189  , p_source_75            IN NUMBER
162190 --Invoice Distribution Summary Tax Line Identifier
162191  , p_source_76            IN NUMBER
162192 --Payables Upgrade Credit Encumbrance Type Identifier
162193  , p_source_77            IN NUMBER
162194 --Payables Upgrade Debit Encumbrance Type Identifier
162195  , p_source_78            IN NUMBER
162196 --Business Flow Accounts Payable Application Identifier
162197  , p_source_79            IN NUMBER
162198 --Business Flow Invoice Distribution Type
162199  , p_source_80            IN VARCHAR2
162200 --Business Flow Invoice Entity Code
162201  , p_source_81            IN VARCHAR2
162202 --Business Flow Invoice Distribution Identifier
162203  , p_source_82            IN NUMBER
162204 --Business Flow Invoice Identifier
162205  , p_source_83            IN NUMBER
162206 --Accrue on Receipt Option
162207  , p_source_84            IN VARCHAR2
162208  , p_source_84_meaning    IN VARCHAR2
162209 --Invoice Exchange Date
162210  , p_source_136            IN DATE
162211 --Invoice Exchange Rate
162212  , p_source_137            IN NUMBER
162213 --Invoice Exchange Rate Type
162214  , p_source_138            IN VARCHAR2
162215 )
162216 IS
162217 
162218 l_component_type              VARCHAR2(80);
162219 l_component_code              VARCHAR2(30);
162220 l_component_type_code         VARCHAR2(1);
162221 l_component_appl_id           INTEGER;
162222 l_amb_context_code            VARCHAR2(30);
162223 l_entity_code                 VARCHAR2(30);
162224 l_event_class_code            VARCHAR2(30);
162225 l_ae_header_id                NUMBER;
162226 l_event_type_code             VARCHAR2(30);
162227 l_line_definition_code        VARCHAR2(30);
162228 l_line_definition_owner_code  VARCHAR2(1);
162229 --
162230 -- adr variables
162231 l_segment                     VARCHAR2(30);
162232 l_ccid                        NUMBER;
162233 l_adr_transaction_coa_id      NUMBER;
162234 l_adr_accounting_coa_id       NUMBER;
162235 l_adr_flexfield_segment_code  VARCHAR2(30);
162236 l_adr_flex_value_set_id       NUMBER;
162237 l_adr_value_type_code         VARCHAR2(30);
162238 l_adr_value_combination_id    NUMBER;
162239 l_adr_value_segment_code      VARCHAR2(30);
162240 
162241 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
162242 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
162243 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
162244 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
162245 
162246 -- 4262811 Variables ------------------------------------------------------------------------------------------
162247 l_entered_amt_idx             NUMBER;
162248 l_accted_amt_idx              NUMBER;
162249 l_acc_rev_flag                VARCHAR2(1);
162250 l_accrual_line_num            NUMBER;
162251 l_tmp_amt                     NUMBER;
162252 l_acc_rev_natural_side_code   VARCHAR2(1);
162253 
162254 l_num_entries                 NUMBER;
162255 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
162256 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
162257 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
162261 
162258 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
162259 l_recog_line_1                NUMBER;
162260 l_recog_line_2                NUMBER;
162262 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
162263 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
162264 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
162265 
162266 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
162267 
162268 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
162269 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
162270 
162271 ---------------------------------------------------------------------------------------------------------------
162272 
162273 
162274 --
162275 -- bulk performance
162276 --
162277 l_balance_type_code           VARCHAR2(1);
162278 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
162279 l_log_module                  VARCHAR2(240);
162280 
162281 --
162282 -- Upgrade strategy
162283 --
162284 l_actual_upg_option           VARCHAR2(1);
162285 l_enc_upg_option           VARCHAR2(1);
162286 
162287 --
162288 BEGIN
162289 --
162290 IF g_log_enabled THEN
162291       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_263';
162292 END IF;
162293 --
162294 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
162295 
162296       trace
162297          (p_msg      => 'BEGIN of AcctLineType_263'
162298          ,p_level    => C_LEVEL_PROCEDURE
162299          ,p_module   => l_log_module);
162300 
162301 END IF;
162302 --
162303 l_component_type             := 'AMB_JLT';
162304 l_component_code             := 'AP_TAX_EX_RATE_VAR_INV';
162305 l_component_type_code        := 'S';
162306 l_component_appl_id          :=  200;
162307 l_amb_context_code           := 'DEFAULT';
162308 l_entity_code                := 'AP_INVOICES';
162309 l_event_class_code           := 'INVOICES';
162310 l_event_type_code            := 'INVOICES_ALL';
162311 l_line_definition_owner_code := 'S';
162312 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
162313 --
162314 l_balance_type_code          := 'A';
162315 l_segment                     := NULL;
162316 l_ccid                        := NULL;
162317 l_adr_transaction_coa_id      := NULL;
162318 l_adr_accounting_coa_id       := NULL;
162319 l_adr_flexfield_segment_code  := NULL;
162320 l_adr_flex_value_set_id       := NULL;
162321 l_adr_value_type_code         := NULL;
162322 l_adr_value_combination_id    := NULL;
162323 l_adr_value_segment_code      := NULL;
162324 
162325 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
162326 l_bflow_class_code           := '';    -- 4219869 Business Flow
162327 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
162328 l_budgetary_control_flag     := 'N';
162329 
162330 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
162331 l_bflow_applied_to_amt       := NULL; -- 5132302
162332 l_entered_amt_idx            := NULL;          -- 4262811
162333 l_accted_amt_idx             := NULL;          -- 4262811
162334 l_acc_rev_flag               := NULL;          -- 4262811
162335 l_accrual_line_num           := NULL;          -- 4262811
162336 l_tmp_amt                    := NULL;          -- 4262811
162337 --
162338 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
162339             (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
162340                return;
162341   END IF;
162342   
162343 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
162344     l_balance_type_code <> 'B' THEN
162345 IF NVL(p_source_21,'
162346 ') =  'TERV' AND 
162347 NVL(p_source_84,'
162348 ') =  'Y'
162349  THEN 
162350 
162351    --
162352    XLA_AE_LINES_PKG.SetNewLine;
162353 
162354    p_balance_type_code          := l_balance_type_code;
162355    -- set the flag so later we will know whether the gain loss line needs to be created
162356    
162357    IF(l_balance_type_code = 'A' ) THEN
162358      p_actual_flag :='G';
162359    END IF;
162360 
162361    --
162362    -- bulk performance
162363    --
162364    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
162365                                       p_header_num   => 0); -- 4262811
162366    --
162367    -- set accounting line options
162368    --
162369    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
162373          , p_acct_entry_type_code       => 'A'
162370            p_natural_side_code          => 'D'
162371          , p_gain_or_loss_flag          => 'Y'
162372          , p_gl_transfer_mode_code      => 'S'
162374          , p_switch_side_flag           => 'Y'
162375          , p_merge_duplicate_code       => 'A'
162376          );
162377    --
162378    l_acc_rev_natural_side_code := 'C';  -- 4262811
162379    -- 
162380    --
162381    -- set accounting line type info
162382    --
162383    xla_ae_lines_pkg.SetAcctLineType
162384       (p_component_type             => l_component_type
162385       ,p_event_type_code            => l_event_type_code
162386       ,p_line_definition_owner_code => l_line_definition_owner_code
162387       ,p_line_definition_code       => l_line_definition_code
162388       ,p_accounting_line_code       => l_component_code
162389       ,p_accounting_line_type_code  => l_component_type_code
162390       ,p_accounting_line_appl_id    => l_component_appl_id
162391       ,p_amb_context_code           => l_amb_context_code
162392       ,p_entity_code                => l_entity_code
162393       ,p_event_class_code           => l_event_class_code);
162394    --
162395    -- set accounting class
162396    --
162397    xla_ae_lines_pkg.SetAcctClass(
162398            p_accounting_class_code  => 'TERV'
162399          , p_ae_header_id           => l_ae_header_id
162400          );
162401 
162402    --
162403    -- set rounding class
162404    --
162405    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
162406                       'TERV';
162407 
162408    --
162409    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
162410    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
162411    --
162412    -- bulk performance
162413    --
162414    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
162415 
162416    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
162417       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
162418 
162419    -- 4955764
162420    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
162421       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
162422 
162423    -- 4458381 Public Sector Enh
162424    
162425    --
162426    -- set accounting attributes for the line type
162427    --
162428    l_entered_amt_idx := 24;
162429    l_accted_amt_idx  := 29;
162430    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
162431    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
162432    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
162433    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
162434    l_rec_acct_attrs.array_num_value(2)  := 
162435 xla_ae_sources_pkg.GetSystemSourceNum(
162436    p_source_code           => 'XLA_EVENT_APPL_ID'
162437  , p_source_type_code      => 'Y'
162438  , p_source_application_id =>  602
162439 );
162440    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
162441    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
162442    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
162443    l_rec_acct_attrs.array_char_value(4)  := 
162444 xla_ae_sources_pkg.GetSystemSourceChar(
162445    p_source_code           => 'XLA_ENTITY_CODE'
162446  , p_source_type_code      => 'Y'
162447  , p_source_application_id =>  602
162448 );
162449    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
162450    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
162451    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
162452    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
162453    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
162454    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
162455    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
162456    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
162457    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
162458    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
162459    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
162460    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
162461    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
162462    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
162463    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
162464    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
162465    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
162469    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
162466    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
162467    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
162468    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
162470    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
162471    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
162472    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
162473    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
162474    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
162475    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
162476    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
162477    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
162478    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
162479    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
162480    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
162481    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
162482    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
162483    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
162484    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
162485    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
162486    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
162487    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
162488    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
162489    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
162490    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
162491    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
162492    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
162493    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
162494    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
162495    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
162499    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
162496    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
162497    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
162498    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
162500    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
162501    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
162502    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
162503    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
162504    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
162505    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
162506    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
162507    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
162508    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
162509    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
162510    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
162511    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
162512    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
162513    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
162514    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
162515    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
162516    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
162517    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
162518    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
162519    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
162520    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
162521    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
162522    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
162523    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
162524    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
162525    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
162526    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
162527    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
162528    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
162529 
162530    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
162531    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
162532 
162533    ---------------------------------------------------------------------------------------------------------------
162534    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
162535    ---------------------------------------------------------------------------------------------------------------
162536    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
162537 
162538    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
162542          (p_source_code         => 'LEDGER_CATEGORY_CODE'
162539    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
162540 
162541    IF xla_accounting_cache_pkg.GetValueChar
162543          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
162544    AND l_bflow_method_code = 'PRIOR_ENTRY'
162545 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
162546    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
162547          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
162548        )
162549    THEN
162550          xla_ae_lines_pkg.BflowUpgEntry
162551            (p_business_method_code    => l_bflow_method_code
162552            ,p_business_class_code     => l_bflow_class_code
162553            ,p_balance_type            => l_balance_type_code);
162554    ELSE
162555       NULL;
162556 -- No business flow processing for business flow method of NONE.
162557    END IF;
162558 
162559    --
162560    -- call analytical criteria
162561    --
162562    
162563    --
162564    -- call description
162565    --
162566    
162567 xla_ae_lines_pkg.SetLineDescription(
162568    p_ae_header_id => l_ae_header_id
162569   ,p_description  => Description_2 (
162570      p_application_id         => p_application_id
162571    , p_ae_header_id           => l_ae_header_id 
162572 , p_source_1 => p_source_1
162573    )
162574 );
162575 
162576 
162577    --
162578    -- call ADRs
162579    -- Bug 4922099
162580    --
162581    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
162582         (NVL(l_actual_upg_option, 'N') = 'O') OR
162583         (NVL(l_enc_upg_option, 'N') = 'O')
162584       )
162585    THEN
162586    NULL;
162587    --
162588    --
162589    
162590   l_ccid := AcctDerRule_29(
162591            p_application_id           => p_application_id
162592          , p_ae_header_id             => l_ae_header_id 
162593 , p_source_3 => p_source_3
162594 , p_source_3_meaning => p_source_3_meaning
162595 , p_source_8 => p_source_8
162596 , p_source_9 => p_source_9
162597 , p_source_10 => p_source_10
162598 , p_source_10_meaning => p_source_10_meaning
162599 , p_source_11 => p_source_11
162600 , p_source_18 => p_source_18
162601 , p_source_35 => p_source_35
162602 , p_source_35_meaning => p_source_35_meaning
162603          , x_transaction_coa_id       => l_adr_transaction_coa_id
162604          , x_accounting_coa_id        => l_adr_accounting_coa_id
162605          , x_value_type_code          => l_adr_value_type_code
162606          , p_side                     => 'NA'
162607    );
162608 
162609    xla_ae_lines_pkg.set_ccid(
162610     p_code_combination_id          => l_ccid
162611   , p_value_type_code              => l_adr_value_type_code
162612   , p_transaction_coa_id           => l_adr_transaction_coa_id
162613   , p_accounting_coa_id            => l_adr_accounting_coa_id
162614   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
162615   , p_adr_type_code                => 'S'
162616   , p_component_type               => l_component_type
162617   , p_component_code               => l_component_code
162618   , p_component_type_code          => l_component_type_code
162619   , p_component_appl_id            => l_component_appl_id
162620   , p_amb_context_code             => l_amb_context_code
162621   , p_side                         => 'NA'
162622   );
162623 
162624 
162625    l_segment := AcctDerRule_7(
162626            p_application_id           => p_application_id
162627          , p_ae_header_id             => l_ae_header_id 
162628 , p_source_3 => p_source_3
162629 , p_source_3_meaning => p_source_3_meaning
162630 , p_source_8 => p_source_8
162631 , p_source_9 => p_source_9
162632 , p_source_10 => p_source_10
162633 , p_source_10_meaning => p_source_10_meaning
162637          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
162634 , p_source_11 => p_source_11
162635          , x_transaction_coa_id       => l_adr_transaction_coa_id
162636          , x_accounting_coa_id        => l_adr_accounting_coa_id
162638          , x_flex_value_set_id        => l_adr_flex_value_set_id
162639          , x_value_type_code          => l_adr_value_type_code
162640          , x_value_combination_id     => l_adr_value_combination_id
162641          , x_value_segment_code       => l_adr_value_segment_code
162642          , p_side                     => 'NA'
162643          , p_override_seg_flag        => 'Y'
162644    );
162645 
162646    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
162647 
162648       xla_ae_lines_pkg.set_segment(
162649           p_to_segment_code         => 'GL_ACCOUNT'
162650         , p_segment_value           => l_segment
162651         , p_from_segment_code       => l_adr_value_segment_code
162655         , p_accounting_coa_id       => l_adr_accounting_coa_id
162652         , p_from_combination_id     => l_adr_value_combination_id
162653         , p_value_type_code         => l_adr_value_type_code
162654         , p_transaction_coa_id      => l_adr_transaction_coa_id
162656         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
162657         , p_flex_value_set_id       => l_adr_flex_value_set_id
162658         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
162659         , p_adr_type_code           => 'S'
162660         , p_component_type          => l_component_type
162661         , p_component_code          => l_component_code
162662         , p_component_type_code     => l_component_type_code
162663         , p_component_appl_id       => l_component_appl_id
162664         , p_amb_context_code        => l_amb_context_code
162665         , p_entity_code             => 'AP_INVOICES'
162666         , p_event_class_code        => 'INVOICES'
162667         , p_side                    => 'NA'
162668         );
162669 
162670   END IF;
162671 
162672    l_segment := AcctDerRule_22(
162673            p_application_id           => p_application_id
162674          , p_ae_header_id             => l_ae_header_id 
162675 , p_source_3 => p_source_3
162676 , p_source_3_meaning => p_source_3_meaning
162677 , p_source_10 => p_source_10
162678 , p_source_10_meaning => p_source_10_meaning
162679 , p_source_18 => p_source_18
162680          , x_transaction_coa_id       => l_adr_transaction_coa_id
162681          , x_accounting_coa_id        => l_adr_accounting_coa_id
162682          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
162683          , x_flex_value_set_id        => l_adr_flex_value_set_id
162684          , x_value_type_code          => l_adr_value_type_code
162685          , x_value_combination_id     => l_adr_value_combination_id
162686          , x_value_segment_code       => l_adr_value_segment_code
162687          , p_side                     => 'NA'
162688          , p_override_seg_flag        => 'Y'
162689    );
162690 
162691    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
162692 
162693       xla_ae_lines_pkg.set_segment(
162694           p_to_segment_code         => 'GL_BALANCING'
162695         , p_segment_value           => l_segment
162696         , p_from_segment_code       => l_adr_value_segment_code
162697         , p_from_combination_id     => l_adr_value_combination_id
162698         , p_value_type_code         => l_adr_value_type_code
162699         , p_transaction_coa_id      => l_adr_transaction_coa_id
162700         , p_accounting_coa_id       => l_adr_accounting_coa_id
162701         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
162702         , p_flex_value_set_id       => l_adr_flex_value_set_id
162703         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
162704         , p_adr_type_code           => 'S'
162705         , p_component_type          => l_component_type
162706         , p_component_code          => l_component_code
162707         , p_component_type_code     => l_component_type_code
162708         , p_component_appl_id       => l_component_appl_id
162709         , p_amb_context_code        => l_amb_context_code
162710         , p_entity_code             => 'AP_INVOICES'
162711         , p_event_class_code        => 'INVOICES'
162712         , p_side                    => 'NA'
162713         );
162714 
162715   END IF;
162716 
162717    --
162718    --
162719    END IF;
162720    --
162721    -- Bug 4922099
162722    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
162723           (NVL(l_enc_upg_option, 'N') = 'O')
162724         ) AND
162725         (l_bflow_method_code = 'PRIOR_ENTRY')
162726       )
162727    THEN
162728       IF
162729       --
162730       1 = 2
162731       --
162732       THEN
162733       xla_accounting_err_pkg.build_message
162734                                     (p_appli_s_name            => 'XLA'
162735                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
162736                                     ,p_token_1                 => 'LINE_NUMBER'
162737                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
162738                                     ,p_token_2                 => 'LINE_TYPE_NAME'
162739                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
162740                                                                              l_component_type
162741                                                                             ,l_component_code
162742                                                                             ,l_component_type_code
162743                                                                             ,l_component_appl_id
162744                                                                             ,l_amb_context_code
162745                                                                             ,l_entity_code
162746                                                                             ,l_event_class_code
162747                                                                            )
162748                                     ,p_token_3                 => 'OWNER'
162749                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
162750                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
162751                                                                           ,p_lookup_code    => l_component_type_code
162752                                                                          )
162753                                     ,p_token_4                 => 'PRODUCT_NAME'
162754                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
162755                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
162759                                        );
162756                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
162757                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
162758                                     ,p_ae_header_id            =>  NULL
162760 
162761         IF (C_LEVEL_ERROR>= g_log_level) THEN
162762                  trace
162763                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
162764                       ,p_level    => C_LEVEL_ERROR
162765                       ,p_module   => l_log_module);
162766         END IF;
162767       END IF;
162768    END IF;
162769    --
162770    --
162771    ------------------------------------------------------------------------------------------------
162772    -- 4219869 Business Flow
162773    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
162774    -- Prior Entry.  Currently, the following code is always generated.
162775    ------------------------------------------------------------------------------------------------
162776    XLA_AE_LINES_PKG.ValidateCurrentLine;
162777 
162778    ------------------------------------------------------------------------------------
162779    -- 4219869 Business Flow
162780    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
162781    ------------------------------------------------------------------------------------
162782    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
162783 
162784    ----------------------------------------------------------------------------------
162785    -- 4219869 Business Flow
162786    -- Update journal entry status -- Need to generate this within IF <condition>
162787    ----------------------------------------------------------------------------------
162788    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
162789          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
162790          ,p_balance_type_code => l_balance_type_code
162791          );
162792 
162793    -------------------------------------------------------------------------------------------
162794    -- 4262811 - Generate the Accrual Reversal lines
162795    -------------------------------------------------------------------------------------------
162796    BEGIN
162797       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
162798                               (g_array_event(p_event_id).array_value_num('header_index'));
162799       IF l_acc_rev_flag IS NULL THEN
162800          l_acc_rev_flag := 'N';
162801       END IF;
162802    EXCEPTION
162803       WHEN OTHERS THEN
162804          l_acc_rev_flag := 'N';
162805    END;
162806    --
162807    IF (l_acc_rev_flag = 'Y') THEN
162808 
162809        -- 4645092  ------------------------------------------------------------------------------
162810        -- To allow MPA report to determine if it should generate report process
162811        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
162812        ------------------------------------------------------------------------------------------
162813 
162814        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
162815        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
162816    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
162817    -- call ADRs
162818    -- Bug 4922099
162819    --
162820    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
162821         (NVL(l_actual_upg_option, 'N') = 'O') OR
162822         (NVL(l_enc_upg_option, 'N') = 'O')
162823       )
162824    THEN
162825    NULL;
162826    --
162827    --
162828    
162829   l_ccid := AcctDerRule_29(
162830            p_application_id           => p_application_id
162831          , p_ae_header_id             => l_ae_header_id 
162832 , p_source_3 => p_source_3
162833 , p_source_3_meaning => p_source_3_meaning
162834 , p_source_8 => p_source_8
162835 , p_source_9 => p_source_9
162836 , p_source_10 => p_source_10
162837 , p_source_10_meaning => p_source_10_meaning
162838 , p_source_11 => p_source_11
162839 , p_source_18 => p_source_18
162840 , p_source_35 => p_source_35
162841 , p_source_35_meaning => p_source_35_meaning
162842          , x_transaction_coa_id       => l_adr_transaction_coa_id
162843          , x_accounting_coa_id        => l_adr_accounting_coa_id
162844          , x_value_type_code          => l_adr_value_type_code
162845          , p_side                     => 'NA'
162846    );
162847 
162848    xla_ae_lines_pkg.set_ccid(
162849     p_code_combination_id          => l_ccid
162850   , p_value_type_code              => l_adr_value_type_code
162851   , p_transaction_coa_id           => l_adr_transaction_coa_id
162855   , p_component_type               => l_component_type
162852   , p_accounting_coa_id            => l_adr_accounting_coa_id
162853   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
162854   , p_adr_type_code                => 'S'
162856   , p_component_code               => l_component_code
162857   , p_component_type_code          => l_component_type_code
162858   , p_component_appl_id            => l_component_appl_id
162859   , p_amb_context_code             => l_amb_context_code
162860   , p_side                         => 'NA'
162861   );
162862 
162863 
162864    l_segment := AcctDerRule_7(
162865            p_application_id           => p_application_id
162866          , p_ae_header_id             => l_ae_header_id 
162867 , p_source_3 => p_source_3
162868 , p_source_3_meaning => p_source_3_meaning
162869 , p_source_8 => p_source_8
162870 , p_source_9 => p_source_9
162871 , p_source_10 => p_source_10
162872 , p_source_10_meaning => p_source_10_meaning
162873 , p_source_11 => p_source_11
162874          , x_transaction_coa_id       => l_adr_transaction_coa_id
162875          , x_accounting_coa_id        => l_adr_accounting_coa_id
162876          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
162877          , x_flex_value_set_id        => l_adr_flex_value_set_id
162878          , x_value_type_code          => l_adr_value_type_code
162879          , x_value_combination_id     => l_adr_value_combination_id
162880          , x_value_segment_code       => l_adr_value_segment_code
162881          , p_side                     => 'NA'
162882          , p_override_seg_flag        => 'Y'
162883    );
162884 
162885    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
162886 
162887       xla_ae_lines_pkg.set_segment(
162888           p_to_segment_code         => 'GL_ACCOUNT'
162889         , p_segment_value           => l_segment
162890         , p_from_segment_code       => l_adr_value_segment_code
162891         , p_from_combination_id     => l_adr_value_combination_id
162892         , p_value_type_code         => l_adr_value_type_code
162893         , p_transaction_coa_id      => l_adr_transaction_coa_id
162894         , p_accounting_coa_id       => l_adr_accounting_coa_id
162895         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
162896         , p_flex_value_set_id       => l_adr_flex_value_set_id
162897         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
162898         , p_adr_type_code           => 'S'
162899         , p_component_type          => l_component_type
162900         , p_component_code          => l_component_code
162901         , p_component_type_code     => l_component_type_code
162902         , p_component_appl_id       => l_component_appl_id
162903         , p_amb_context_code        => l_amb_context_code
162904         , p_entity_code             => 'AP_INVOICES'
162905         , p_event_class_code        => 'INVOICES'
162906         , p_side                    => 'NA'
162907         );
162908 
162909   END IF;
162910 
162911    l_segment := AcctDerRule_22(
162912            p_application_id           => p_application_id
162913          , p_ae_header_id             => l_ae_header_id 
162914 , p_source_3 => p_source_3
162915 , p_source_3_meaning => p_source_3_meaning
162916 , p_source_10 => p_source_10
162917 , p_source_10_meaning => p_source_10_meaning
162918 , p_source_18 => p_source_18
162919          , x_transaction_coa_id       => l_adr_transaction_coa_id
162920          , x_accounting_coa_id        => l_adr_accounting_coa_id
162924          , x_value_combination_id     => l_adr_value_combination_id
162921          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
162922          , x_flex_value_set_id        => l_adr_flex_value_set_id
162923          , x_value_type_code          => l_adr_value_type_code
162925          , x_value_segment_code       => l_adr_value_segment_code
162926          , p_side                     => 'NA'
162927          , p_override_seg_flag        => 'Y'
162928    );
162929 
162930    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
162931 
162932       xla_ae_lines_pkg.set_segment(
162933           p_to_segment_code         => 'GL_BALANCING'
162934         , p_segment_value           => l_segment
162935         , p_from_segment_code       => l_adr_value_segment_code
162936         , p_from_combination_id     => l_adr_value_combination_id
162937         , p_value_type_code         => l_adr_value_type_code
162938         , p_transaction_coa_id      => l_adr_transaction_coa_id
162939         , p_accounting_coa_id       => l_adr_accounting_coa_id
162940         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
162941         , p_flex_value_set_id       => l_adr_flex_value_set_id
162942         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
162943         , p_adr_type_code           => 'S'
162944         , p_component_type          => l_component_type
162945         , p_component_code          => l_component_code
162946         , p_component_type_code     => l_component_type_code
162947         , p_component_appl_id       => l_component_appl_id
162948         , p_amb_context_code        => l_amb_context_code
162949         , p_entity_code             => 'AP_INVOICES'
162950         , p_event_class_code        => 'INVOICES'
162951         , p_side                    => 'NA'
162952         );
162953 
162954   END IF;
162955 
162956    --
162957    --
162958    END IF;
162959 
162960        --
162961        -- Update the line information that should be overwritten
162962        --
162963        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
162964                                          p_header_num   => 1);
162965        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
162966 
162967        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
162968 
162969        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
162970           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
162971        END IF;
162972 
162973       --
162974       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
162975       --
162976       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
162977           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
162978       ELSE
162979           ---------------------------------------------------------------------------------------------------
162980           -- 4262811a Switch Sign
162981           ---------------------------------------------------------------------------------------------------
162982           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
162983           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
162984                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
162985           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
162986                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
162987           -- 5132302
162988           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
162989                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
162990 
162991       END IF;
162992 
162993       -- 4955764
162994       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
162995       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
162996 
162997 
162998       XLA_AE_LINES_PKG.ValidateCurrentLine;
162999       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
163000 
163001       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
163002                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
163003                ,p_balance_type_code => l_balance_type_code);
163004 
163005    END IF;
163006 
163007    -----------------------------------------------------------------------------------------
163008    -- 4262811 Multiperiod Accounting
163009    -----------------------------------------------------------------------------------------
163010      -- No MPA option is assigned.
163011 
163012 
163013 END IF;
163014 END IF;
163015 --
163016 
163017 --
163018 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
163019    trace
163020       (p_msg      => 'END of AcctLineType_263'
163021       ,p_level    => C_LEVEL_PROCEDURE
163022       ,p_module   => l_log_module);
163023 END IF;
163024 --
163025 EXCEPTION
163026   WHEN xla_exceptions_pkg.application_exception THEN
163027       RAISE;
163028   WHEN OTHERS THEN
163029        xla_exceptions_pkg.raise_message
163033 
163030            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_263');
163031 END AcctLineType_263;
163032 --
163034 ---------------------------------------
163035 --
163036 -- PRIVATE FUNCTION
163037 --         AcctLineType_264
163038 --
163039 ---------------------------------------
163040 PROCEDURE AcctLineType_264 (
163041   p_application_id        IN NUMBER
163042  ,p_event_id              IN NUMBER
163043  ,p_calculate_acctd_flag  IN VARCHAR2
163044  ,p_calculate_g_l_flag    IN VARCHAR2
163045  ,p_actual_flag           IN OUT VARCHAR2
163046  ,p_balance_type_code     OUT VARCHAR2
163047  ,p_gain_or_loss_ref      OUT VARCHAR2
163048  
163049 --Invoice Distribution Description
163050  , p_source_1            IN VARCHAR2
163051 --Automatic Offsets Value
163052  , p_source_3            IN VARCHAR2
163053  , p_source_3_meaning    IN VARCHAR2
163054 --Purchase Order Rate Variance Gain Account
163055  , p_source_8            IN NUMBER
163056 --Invoice Distribution Ledger Amount
163057  , p_source_9            IN NUMBER
163058 --Destination Type of the PO Distribution
163059  , p_source_10            IN VARCHAR2
163060  , p_source_10_meaning    IN VARCHAR2
163061 --Purchase Order Rate Variance Loss Account
163062  , p_source_11            IN NUMBER
163063 --Invoice Distribution Account
163064  , p_source_18            IN NUMBER
163065 --Invoice Distribution Type
163066  , p_source_21            IN VARCHAR2
163067  , p_source_21_meaning    IN VARCHAR2
163068 --Automatic Offsets Flag
163069  , p_source_35            IN VARCHAR2
163070  , p_source_35_meaning    IN VARCHAR2
163071 --Accounting Reversal Indicator
163072  , p_source_41            IN VARCHAR2
163073 --Distribution Link Type
163074  , p_source_43            IN VARCHAR2
163075 --Allocation to Main Distribution Identifier
163076  , p_source_45            IN NUMBER
163077 --Invoice Identifier
163078  , p_source_46            IN NUMBER
163079 --Invoice Distribution Identifier
163080  , p_source_52            IN NUMBER
163081 --Payables Encumbrance Upgrade Credit Account
163082  , p_source_53            IN NUMBER
163083 --Payables Encumbrance Upgrade Credit Amount
163084  , p_source_54            IN NUMBER
163085 --Invoice Currency Code
163086  , p_source_55            IN VARCHAR2
163087 --Payables Encumbrance Upgrade Credit Base Amount
163088  , p_source_56            IN NUMBER
163089 --Payables Encumbrance Upgrade Debit Account
163090  , p_source_57            IN NUMBER
163091 --Payables Encumbrance Upgrade Debit Amount
163092  , p_source_58            IN NUMBER
163093 --Payables Encumbrance Upgrade Debit Base Amount
163094  , p_source_59            IN NUMBER
163095 --Payables Encumbrance Upgrade Option
163096  , p_source_60            IN VARCHAR2
163097 --Invoice Distribution Amount
163098  , p_source_61            IN NUMBER
163099 --Deferred Accounting End Date
163100  , p_source_65            IN DATE
163101 --Deferred Accounting Option
163102  , p_source_66            IN VARCHAR2
163103 --Deferred Accounting Start Date
163104  , p_source_67            IN DATE
163105 --Override Accounted Amount Indicator
163106  , p_source_68            IN VARCHAR2
163107  , p_source_68_meaning    IN VARCHAR2
163108 --Invoice Supplier Identifier
163109  , p_source_69            IN NUMBER
163110 --Invoice Supplier Site Identifier
163111  , p_source_70            IN NUMBER
163112 --Third Party Type
163113  , p_source_71            IN VARCHAR2
163114 --Parent Reversal Identifier
163115  , p_source_72            IN NUMBER
163116 --Invoice Distribution Statistical Amount
163117  , p_source_73            IN NUMBER
163118 --Invoice Distribution Tax Line Identifier
163119  , p_source_74            IN NUMBER
163120 --Invoice Distribution Tax Distribution Identifier from Tax
163121  , p_source_75            IN NUMBER
163122 --Invoice Distribution Summary Tax Line Identifier
163123  , p_source_76            IN NUMBER
163124 --Payables Upgrade Credit Encumbrance Type Identifier
163125  , p_source_77            IN NUMBER
163126 --Payables Upgrade Debit Encumbrance Type Identifier
163127  , p_source_78            IN NUMBER
163128 --Business Flow Accounts Payable Application Identifier
163129  , p_source_79            IN NUMBER
163130 --Business Flow Invoice Distribution Type
163131  , p_source_80            IN VARCHAR2
163132 --Business Flow Invoice Entity Code
163133  , p_source_81            IN VARCHAR2
163134 --Business Flow Invoice Distribution Identifier
163135  , p_source_82            IN NUMBER
163136 --Business Flow Invoice Identifier
163137  , p_source_83            IN NUMBER
163138 --Accrue on Receipt Option
163139  , p_source_84            IN VARCHAR2
163140  , p_source_84_meaning    IN VARCHAR2
163141 --Invoice Exchange Date
163142  , p_source_136            IN DATE
163143 --Invoice Exchange Rate
163144  , p_source_137            IN NUMBER
163145 --Invoice Exchange Rate Type
163146  , p_source_138            IN VARCHAR2
163147 )
163148 IS
163149 
163150 l_component_type              VARCHAR2(80);
163151 l_component_code              VARCHAR2(30);
163155 l_entity_code                 VARCHAR2(30);
163152 l_component_type_code         VARCHAR2(1);
163153 l_component_appl_id           INTEGER;
163154 l_amb_context_code            VARCHAR2(30);
163156 l_event_class_code            VARCHAR2(30);
163157 l_ae_header_id                NUMBER;
163158 l_event_type_code             VARCHAR2(30);
163159 l_line_definition_code        VARCHAR2(30);
163160 l_line_definition_owner_code  VARCHAR2(1);
163161 --
163162 -- adr variables
163163 l_segment                     VARCHAR2(30);
163164 l_ccid                        NUMBER;
163165 l_adr_transaction_coa_id      NUMBER;
163166 l_adr_accounting_coa_id       NUMBER;
163167 l_adr_flexfield_segment_code  VARCHAR2(30);
163168 l_adr_flex_value_set_id       NUMBER;
163169 l_adr_value_type_code         VARCHAR2(30);
163170 l_adr_value_combination_id    NUMBER;
163171 l_adr_value_segment_code      VARCHAR2(30);
163172 
163173 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
163174 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
163175 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
163176 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
163177 
163178 -- 4262811 Variables ------------------------------------------------------------------------------------------
163179 l_entered_amt_idx             NUMBER;
163180 l_accted_amt_idx              NUMBER;
163181 l_acc_rev_flag                VARCHAR2(1);
163182 l_accrual_line_num            NUMBER;
163183 l_tmp_amt                     NUMBER;
163184 l_acc_rev_natural_side_code   VARCHAR2(1);
163185 
163186 l_num_entries                 NUMBER;
163187 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
163191 l_recog_line_1                NUMBER;
163188 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
163189 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
163190 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
163192 l_recog_line_2                NUMBER;
163193 
163194 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
163195 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
163196 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
163197 
163198 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
163199 
163200 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
163201 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
163202 
163203 ---------------------------------------------------------------------------------------------------------------
163204 
163205 
163206 --
163207 -- bulk performance
163208 --
163209 l_balance_type_code           VARCHAR2(1);
163210 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
163211 l_log_module                  VARCHAR2(240);
163212 
163213 --
163214 -- Upgrade strategy
163215 --
163216 l_actual_upg_option           VARCHAR2(1);
163217 l_enc_upg_option           VARCHAR2(1);
163218 
163219 --
163220 BEGIN
163221 --
163222 IF g_log_enabled THEN
163223       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_264';
163224 END IF;
163225 --
163226 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
163227 
163228       trace
163229          (p_msg      => 'BEGIN of AcctLineType_264'
163230          ,p_level    => C_LEVEL_PROCEDURE
163231          ,p_module   => l_log_module);
163232 
163233 END IF;
163234 --
163235 l_component_type             := 'AMB_JLT';
163236 l_component_code             := 'AP_TAX_EX_RATE_VAR_PREPAY';
163237 l_component_type_code        := 'S';
163238 l_component_appl_id          :=  200;
163239 l_amb_context_code           := 'DEFAULT';
163243 l_line_definition_owner_code := 'S';
163240 l_entity_code                := 'AP_INVOICES';
163241 l_event_class_code           := 'PREPAYMENTS';
163242 l_event_type_code            := 'PREPAYMENTS_ALL';
163244 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
163245 --
163246 l_balance_type_code          := 'A';
163247 l_segment                     := NULL;
163248 l_ccid                        := NULL;
163249 l_adr_transaction_coa_id      := NULL;
163250 l_adr_accounting_coa_id       := NULL;
163251 l_adr_flexfield_segment_code  := NULL;
163252 l_adr_flex_value_set_id       := NULL;
163253 l_adr_value_type_code         := NULL;
163254 l_adr_value_combination_id    := NULL;
163255 l_adr_value_segment_code      := NULL;
163256 
163257 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
163258 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
163259 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
163260 l_budgetary_control_flag     := 'N';
163261 
163262 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
163263 l_bflow_applied_to_amt       := NULL; -- 5132302
163264 l_entered_amt_idx            := NULL;          -- 4262811
163265 l_accted_amt_idx             := NULL;          -- 4262811
163266 l_acc_rev_flag               := NULL;          -- 4262811
163267 l_accrual_line_num           := NULL;          -- 4262811
163268 l_tmp_amt                    := NULL;          -- 4262811
163269 --
163270 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
163271             (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
163272                return;
163273   END IF;
163274   
163275 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
163276     l_balance_type_code <> 'B' THEN
163277 IF NVL(p_source_21,'
163278 ') =  'TERV' AND 
163279 NVL(p_source_84,'
163280 ') =  'Y'
163281  THEN 
163282 
163283    --
163284    XLA_AE_LINES_PKG.SetNewLine;
163285 
163286    p_balance_type_code          := l_balance_type_code;
163287    -- set the flag so later we will know whether the gain loss line needs to be created
163288    
163289    IF(l_balance_type_code = 'A' ) THEN
163290      p_actual_flag :='G';
163291    END IF;
163292 
163293    --
163294    -- bulk performance
163295    --
163296    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
163297                                       p_header_num   => 0); -- 4262811
163298    --
163299    -- set accounting line options
163300    --
163301    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
163302            p_natural_side_code          => 'D'
163303          , p_gain_or_loss_flag          => 'Y'
163304          , p_gl_transfer_mode_code      => 'S'
163305          , p_acct_entry_type_code       => 'A'
163306          , p_switch_side_flag           => 'Y'
163307          , p_merge_duplicate_code       => 'A'
163308          );
163309    --
163310    l_acc_rev_natural_side_code := 'C';  -- 4262811
163311    -- 
163312    --
163313    -- set accounting line type info
163314    --
163315    xla_ae_lines_pkg.SetAcctLineType
163316       (p_component_type             => l_component_type
163317       ,p_event_type_code            => l_event_type_code
163318       ,p_line_definition_owner_code => l_line_definition_owner_code
163319       ,p_line_definition_code       => l_line_definition_code
163320       ,p_accounting_line_code       => l_component_code
163321       ,p_accounting_line_type_code  => l_component_type_code
163322       ,p_accounting_line_appl_id    => l_component_appl_id
163323       ,p_amb_context_code           => l_amb_context_code
163324       ,p_entity_code                => l_entity_code
163325       ,p_event_class_code           => l_event_class_code);
163326    --
163327    -- set accounting class
163328    --
163329    xla_ae_lines_pkg.SetAcctClass(
163330            p_accounting_class_code  => 'TERV'
163331          , p_ae_header_id           => l_ae_header_id
163332          );
163333 
163334    --
163335    -- set rounding class
163336    --
163337    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
163338                       'TERV';
163339 
163340    --
163341    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
163342    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
163343    --
163344    -- bulk performance
163345    --
163351    -- 4955764
163346    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
163347 
163348    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
163349       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
163350 
163352    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
163353       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
163354 
163355    -- 4458381 Public Sector Enh
163356    
163357    --
163358    -- set accounting attributes for the line type
163359    --
163360    l_entered_amt_idx := 23;
163361    l_accted_amt_idx  := 28;
163362    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
163363    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
163364    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
163365    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
163366    l_rec_acct_attrs.array_num_value(2)  := 
163367 xla_ae_sources_pkg.GetSystemSourceNum(
163368    p_source_code           => 'XLA_EVENT_APPL_ID'
163369  , p_source_type_code      => 'Y'
163370  , p_source_application_id =>  602
163371 );
163372    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
163373    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
163374    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
163375    l_rec_acct_attrs.array_char_value(4)  := 
163376 xla_ae_sources_pkg.GetSystemSourceChar(
163377    p_source_code           => 'XLA_ENTITY_CODE'
163378  , p_source_type_code      => 'Y'
163379  , p_source_application_id =>  602
163380 );
163381    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
163382    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
163383    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
163384    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
163385    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
163386    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
163387    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
163388    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
163389    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
163390    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
163391    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
163392    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
163393    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
163394    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
163395    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
163396    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
163397    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
163398    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
163399    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
163400    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
163401    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
163402    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
163403    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
163404    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
163405    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
163406    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
163407    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
163408    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
163409    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
163410    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
163411    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
163412    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
163413    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
163414    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
163415    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
163416    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
163417    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
163418    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
163419    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
163420    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
163421    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
163422    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
163423    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
163424    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
163425    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
163426    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
163427    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
163428    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
163429    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
163430    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
163431    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
163432    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
163433    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
163434    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
163435    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
163436    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
163437    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
163438    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
163439    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
163440    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
163441    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
163442    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
163443    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
163444    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
163448    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
163445    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
163446    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
163447    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
163449    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
163450    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
163451    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
163452    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
163453    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
163454    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
163455    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
163456    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
163460    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
163457    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
163458    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
163459 
163461    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
163462 
163463    ---------------------------------------------------------------------------------------------------------------
163464    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
163465    ---------------------------------------------------------------------------------------------------------------
163466    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
163467 
163468    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
163469    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
163470 
163471    IF xla_accounting_cache_pkg.GetValueChar
163472          (p_source_code         => 'LEDGER_CATEGORY_CODE'
163473          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
163474    AND l_bflow_method_code = 'PRIOR_ENTRY'
163475 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
163476    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
163477          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
163478        )
163479    THEN
163480          xla_ae_lines_pkg.BflowUpgEntry
163481            (p_business_method_code    => l_bflow_method_code
163482            ,p_business_class_code     => l_bflow_class_code
163483            ,p_balance_type            => l_balance_type_code);
163484    ELSE
163485       NULL;
163486 -- No business flow processing for business flow method of NONE.
163487    END IF;
163488 
163489    --
163490    -- call analytical criteria
163491    --
163492    
163493    --
163494    -- call description
163495    --
163496    
163497 xla_ae_lines_pkg.SetLineDescription(
163498    p_ae_header_id => l_ae_header_id
163499   ,p_description  => Description_2 (
163500      p_application_id         => p_application_id
163501    , p_ae_header_id           => l_ae_header_id 
163502 , p_source_1 => p_source_1
163503    )
163504 );
163505 
163506 
163507    --
163508    -- call ADRs
163509    -- Bug 4922099
163510    --
163511    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
163512         (NVL(l_actual_upg_option, 'N') = 'O') OR
163513         (NVL(l_enc_upg_option, 'N') = 'O')
163514       )
163515    THEN
163516    NULL;
163517    --
163518    --
163519    
163520   l_ccid := AcctDerRule_29(
163521            p_application_id           => p_application_id
163522          , p_ae_header_id             => l_ae_header_id 
163523 , p_source_3 => p_source_3
163524 , p_source_3_meaning => p_source_3_meaning
163525 , p_source_8 => p_source_8
163526 , p_source_9 => p_source_9
163527 , p_source_10 => p_source_10
163528 , p_source_10_meaning => p_source_10_meaning
163529 , p_source_11 => p_source_11
163530 , p_source_18 => p_source_18
163531 , p_source_35 => p_source_35
163532 , p_source_35_meaning => p_source_35_meaning
163533          , x_transaction_coa_id       => l_adr_transaction_coa_id
163534          , x_accounting_coa_id        => l_adr_accounting_coa_id
163535          , x_value_type_code          => l_adr_value_type_code
163536          , p_side                     => 'NA'
163537    );
163538 
163539    xla_ae_lines_pkg.set_ccid(
163540     p_code_combination_id          => l_ccid
163541   , p_value_type_code              => l_adr_value_type_code
163542   , p_transaction_coa_id           => l_adr_transaction_coa_id
163543   , p_accounting_coa_id            => l_adr_accounting_coa_id
163544   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
163545   , p_adr_type_code                => 'S'
163546   , p_component_type               => l_component_type
163550   , p_amb_context_code             => l_amb_context_code
163547   , p_component_code               => l_component_code
163548   , p_component_type_code          => l_component_type_code
163549   , p_component_appl_id            => l_component_appl_id
163551   , p_side                         => 'NA'
163552   );
163553 
163554 
163555    l_segment := AcctDerRule_7(
163556            p_application_id           => p_application_id
163557          , p_ae_header_id             => l_ae_header_id 
163558 , p_source_3 => p_source_3
163559 , p_source_3_meaning => p_source_3_meaning
163560 , p_source_8 => p_source_8
163561 , p_source_9 => p_source_9
163562 , p_source_10 => p_source_10
163563 , p_source_10_meaning => p_source_10_meaning
163564 , p_source_11 => p_source_11
163565          , x_transaction_coa_id       => l_adr_transaction_coa_id
163566          , x_accounting_coa_id        => l_adr_accounting_coa_id
163567          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
163568          , x_flex_value_set_id        => l_adr_flex_value_set_id
163569          , x_value_type_code          => l_adr_value_type_code
163570          , x_value_combination_id     => l_adr_value_combination_id
163571          , x_value_segment_code       => l_adr_value_segment_code
163572          , p_side                     => 'NA'
163573          , p_override_seg_flag        => 'Y'
163574    );
163575 
163576    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
163577 
163578       xla_ae_lines_pkg.set_segment(
163579           p_to_segment_code         => 'GL_ACCOUNT'
163580         , p_segment_value           => l_segment
163581         , p_from_segment_code       => l_adr_value_segment_code
163582         , p_from_combination_id     => l_adr_value_combination_id
163583         , p_value_type_code         => l_adr_value_type_code
163584         , p_transaction_coa_id      => l_adr_transaction_coa_id
163585         , p_accounting_coa_id       => l_adr_accounting_coa_id
163586         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
163587         , p_flex_value_set_id       => l_adr_flex_value_set_id
163588         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
163589         , p_adr_type_code           => 'S'
163590         , p_component_type          => l_component_type
163591         , p_component_code          => l_component_code
163592         , p_component_type_code     => l_component_type_code
163593         , p_component_appl_id       => l_component_appl_id
163594         , p_amb_context_code        => l_amb_context_code
163595         , p_entity_code             => 'AP_INVOICES'
163596         , p_event_class_code        => 'PREPAYMENTS'
163597         , p_side                    => 'NA'
163598         );
163599 
163600   END IF;
163601 
163602    l_segment := AcctDerRule_22(
163606 , p_source_3_meaning => p_source_3_meaning
163603            p_application_id           => p_application_id
163604          , p_ae_header_id             => l_ae_header_id 
163605 , p_source_3 => p_source_3
163607 , p_source_10 => p_source_10
163608 , p_source_10_meaning => p_source_10_meaning
163609 , p_source_18 => p_source_18
163610          , x_transaction_coa_id       => l_adr_transaction_coa_id
163611          , x_accounting_coa_id        => l_adr_accounting_coa_id
163612          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
163613          , x_flex_value_set_id        => l_adr_flex_value_set_id
163614          , x_value_type_code          => l_adr_value_type_code
163615          , x_value_combination_id     => l_adr_value_combination_id
163616          , x_value_segment_code       => l_adr_value_segment_code
163617          , p_side                     => 'NA'
163618          , p_override_seg_flag        => 'Y'
163619    );
163620 
163621    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
163622 
163623       xla_ae_lines_pkg.set_segment(
163624           p_to_segment_code         => 'GL_BALANCING'
163625         , p_segment_value           => l_segment
163626         , p_from_segment_code       => l_adr_value_segment_code
163627         , p_from_combination_id     => l_adr_value_combination_id
163628         , p_value_type_code         => l_adr_value_type_code
163629         , p_transaction_coa_id      => l_adr_transaction_coa_id
163630         , p_accounting_coa_id       => l_adr_accounting_coa_id
163631         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
163632         , p_flex_value_set_id       => l_adr_flex_value_set_id
163633         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
163634         , p_adr_type_code           => 'S'
163635         , p_component_type          => l_component_type
163636         , p_component_code          => l_component_code
163637         , p_component_type_code     => l_component_type_code
163638         , p_component_appl_id       => l_component_appl_id
163639         , p_amb_context_code        => l_amb_context_code
163643         );
163640         , p_entity_code             => 'AP_INVOICES'
163641         , p_event_class_code        => 'PREPAYMENTS'
163642         , p_side                    => 'NA'
163644 
163645   END IF;
163646 
163647    --
163648    --
163649    END IF;
163650    --
163651    -- Bug 4922099
163652    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
163653           (NVL(l_enc_upg_option, 'N') = 'O')
163654         ) AND
163655         (l_bflow_method_code = 'PRIOR_ENTRY')
163656       )
163657    THEN
163658       IF
163659       --
163660       1 = 2
163661       --
163662       THEN
163663       xla_accounting_err_pkg.build_message
163664                                     (p_appli_s_name            => 'XLA'
163665                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
163666                                     ,p_token_1                 => 'LINE_NUMBER'
163667                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
163668                                     ,p_token_2                 => 'LINE_TYPE_NAME'
163669                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
163670                                                                              l_component_type
163671                                                                             ,l_component_code
163672                                                                             ,l_component_type_code
163673                                                                             ,l_component_appl_id
163674                                                                             ,l_amb_context_code
163675                                                                             ,l_entity_code
163676                                                                             ,l_event_class_code
163677                                                                            )
163678                                     ,p_token_3                 => 'OWNER'
163679                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
163680                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
163681                                                                           ,p_lookup_code    => l_component_type_code
163682                                                                          )
163683                                     ,p_token_4                 => 'PRODUCT_NAME'
163684                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
163685                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
163686                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
163687                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
163688                                     ,p_ae_header_id            =>  NULL
163689                                        );
163690 
163691         IF (C_LEVEL_ERROR>= g_log_level) THEN
163692                  trace
163693                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
163694                       ,p_level    => C_LEVEL_ERROR
163695                       ,p_module   => l_log_module);
163696         END IF;
163697       END IF;
163698    END IF;
163699    --
163700    --
163701    ------------------------------------------------------------------------------------------------
163702    -- 4219869 Business Flow
163703    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
163704    -- Prior Entry.  Currently, the following code is always generated.
163705    ------------------------------------------------------------------------------------------------
163706    XLA_AE_LINES_PKG.ValidateCurrentLine;
163707 
163708    ------------------------------------------------------------------------------------
163709    -- 4219869 Business Flow
163710    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
163711    ------------------------------------------------------------------------------------
163712    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
163713 
163714    ----------------------------------------------------------------------------------
163715    -- 4219869 Business Flow
163716    -- Update journal entry status -- Need to generate this within IF <condition>
163717    ----------------------------------------------------------------------------------
163718    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
163719          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
163720          ,p_balance_type_code => l_balance_type_code
163721          );
163722 
163726    BEGIN
163723    -------------------------------------------------------------------------------------------
163724    -- 4262811 - Generate the Accrual Reversal lines
163725    -------------------------------------------------------------------------------------------
163727       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
163728                               (g_array_event(p_event_id).array_value_num('header_index'));
163729       IF l_acc_rev_flag IS NULL THEN
163730          l_acc_rev_flag := 'N';
163731       END IF;
163732    EXCEPTION
163733       WHEN OTHERS THEN
163734          l_acc_rev_flag := 'N';
163735    END;
163736    --
163737    IF (l_acc_rev_flag = 'Y') THEN
163738 
163739        -- 4645092  ------------------------------------------------------------------------------
163740        -- To allow MPA report to determine if it should generate report process
163741        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
163742        ------------------------------------------------------------------------------------------
163743 
163744        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
163745        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
163746    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
163747    -- call ADRs
163748    -- Bug 4922099
163749    --
163750    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
163751         (NVL(l_actual_upg_option, 'N') = 'O') OR
163752         (NVL(l_enc_upg_option, 'N') = 'O')
163753       )
163754    THEN
163755    NULL;
163756    --
163757    --
163758    
163759   l_ccid := AcctDerRule_29(
163760            p_application_id           => p_application_id
163761          , p_ae_header_id             => l_ae_header_id 
163762 , p_source_3 => p_source_3
163763 , p_source_3_meaning => p_source_3_meaning
163764 , p_source_8 => p_source_8
163765 , p_source_9 => p_source_9
163766 , p_source_10 => p_source_10
163767 , p_source_10_meaning => p_source_10_meaning
163768 , p_source_11 => p_source_11
163769 , p_source_18 => p_source_18
163770 , p_source_35 => p_source_35
163771 , p_source_35_meaning => p_source_35_meaning
163772          , x_transaction_coa_id       => l_adr_transaction_coa_id
163773          , x_accounting_coa_id        => l_adr_accounting_coa_id
163774          , x_value_type_code          => l_adr_value_type_code
163775          , p_side                     => 'NA'
163776    );
163777 
163778    xla_ae_lines_pkg.set_ccid(
163779     p_code_combination_id          => l_ccid
163780   , p_value_type_code              => l_adr_value_type_code
163781   , p_transaction_coa_id           => l_adr_transaction_coa_id
163782   , p_accounting_coa_id            => l_adr_accounting_coa_id
163783   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
163784   , p_adr_type_code                => 'S'
163785   , p_component_type               => l_component_type
163786   , p_component_code               => l_component_code
163787   , p_component_type_code          => l_component_type_code
163788   , p_component_appl_id            => l_component_appl_id
163789   , p_amb_context_code             => l_amb_context_code
163790   , p_side                         => 'NA'
163791   );
163792 
163793 
163794    l_segment := AcctDerRule_7(
163795            p_application_id           => p_application_id
163796          , p_ae_header_id             => l_ae_header_id 
163797 , p_source_3 => p_source_3
163798 , p_source_3_meaning => p_source_3_meaning
163799 , p_source_8 => p_source_8
163800 , p_source_9 => p_source_9
163801 , p_source_10 => p_source_10
163802 , p_source_10_meaning => p_source_10_meaning
163803 , p_source_11 => p_source_11
163804          , x_transaction_coa_id       => l_adr_transaction_coa_id
163805          , x_accounting_coa_id        => l_adr_accounting_coa_id
163806          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
163807          , x_flex_value_set_id        => l_adr_flex_value_set_id
163808          , x_value_type_code          => l_adr_value_type_code
163809          , x_value_combination_id     => l_adr_value_combination_id
163810          , x_value_segment_code       => l_adr_value_segment_code
163811          , p_side                     => 'NA'
163812          , p_override_seg_flag        => 'Y'
163813    );
163814 
163818           p_to_segment_code         => 'GL_ACCOUNT'
163815    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
163816 
163817       xla_ae_lines_pkg.set_segment(
163819         , p_segment_value           => l_segment
163820         , p_from_segment_code       => l_adr_value_segment_code
163821         , p_from_combination_id     => l_adr_value_combination_id
163822         , p_value_type_code         => l_adr_value_type_code
163823         , p_transaction_coa_id      => l_adr_transaction_coa_id
163824         , p_accounting_coa_id       => l_adr_accounting_coa_id
163825         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
163826         , p_flex_value_set_id       => l_adr_flex_value_set_id
163827         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
163828         , p_adr_type_code           => 'S'
163829         , p_component_type          => l_component_type
163830         , p_component_code          => l_component_code
163831         , p_component_type_code     => l_component_type_code
163832         , p_component_appl_id       => l_component_appl_id
163833         , p_amb_context_code        => l_amb_context_code
163834         , p_entity_code             => 'AP_INVOICES'
163835         , p_event_class_code        => 'PREPAYMENTS'
163836         , p_side                    => 'NA'
163837         );
163838 
163839   END IF;
163840 
163841    l_segment := AcctDerRule_22(
163842            p_application_id           => p_application_id
163843          , p_ae_header_id             => l_ae_header_id 
163844 , p_source_3 => p_source_3
163845 , p_source_3_meaning => p_source_3_meaning
163846 , p_source_10 => p_source_10
163847 , p_source_10_meaning => p_source_10_meaning
163848 , p_source_18 => p_source_18
163849          , x_transaction_coa_id       => l_adr_transaction_coa_id
163850          , x_accounting_coa_id        => l_adr_accounting_coa_id
163851          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
163852          , x_flex_value_set_id        => l_adr_flex_value_set_id
163853          , x_value_type_code          => l_adr_value_type_code
163854          , x_value_combination_id     => l_adr_value_combination_id
163855          , x_value_segment_code       => l_adr_value_segment_code
163856          , p_side                     => 'NA'
163857          , p_override_seg_flag        => 'Y'
163858    );
163859 
163860    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
163861 
163862       xla_ae_lines_pkg.set_segment(
163863           p_to_segment_code         => 'GL_BALANCING'
163864         , p_segment_value           => l_segment
163865         , p_from_segment_code       => l_adr_value_segment_code
163866         , p_from_combination_id     => l_adr_value_combination_id
163867         , p_value_type_code         => l_adr_value_type_code
163868         , p_transaction_coa_id      => l_adr_transaction_coa_id
163869         , p_accounting_coa_id       => l_adr_accounting_coa_id
163870         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
163871         , p_flex_value_set_id       => l_adr_flex_value_set_id
163872         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
163873         , p_adr_type_code           => 'S'
163874         , p_component_type          => l_component_type
163875         , p_component_code          => l_component_code
163876         , p_component_type_code     => l_component_type_code
163877         , p_component_appl_id       => l_component_appl_id
163878         , p_amb_context_code        => l_amb_context_code
163879         , p_entity_code             => 'AP_INVOICES'
163880         , p_event_class_code        => 'PREPAYMENTS'
163881         , p_side                    => 'NA'
163882         );
163883 
163884   END IF;
163885 
163886    --
163887    --
163888    END IF;
163889 
163890        --
163891        -- Update the line information that should be overwritten
163892        --
163893        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
163894                                          p_header_num   => 1);
163895        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
163896 
163897        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
163898 
163899        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
163900           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
163901        END IF;
163902 
163903       --
163904       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
163905       --
163906       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
163907           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
163908       ELSE
163909           ---------------------------------------------------------------------------------------------------
163910           -- 4262811a Switch Sign
163911           ---------------------------------------------------------------------------------------------------
163912           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
163913           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
163914                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
163915           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
163916                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
163917           -- 5132302
163918           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
163919                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
163920 
163921       END IF;
163922 
163923       -- 4955764
163927 
163924       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
163925       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
163926 
163928       XLA_AE_LINES_PKG.ValidateCurrentLine;
163929       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
163930 
163931       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
163932                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
163933                ,p_balance_type_code => l_balance_type_code);
163934 
163935    END IF;
163936 
163937    -----------------------------------------------------------------------------------------
163938    -- 4262811 Multiperiod Accounting
163939    -----------------------------------------------------------------------------------------
163940      -- No MPA option is assigned.
163941 
163942 
163943 END IF;
163944 END IF;
163945 --
163946 
163947 --
163948 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
163949    trace
163950       (p_msg      => 'END of AcctLineType_264'
163951       ,p_level    => C_LEVEL_PROCEDURE
163952       ,p_module   => l_log_module);
163953 END IF;
163954 --
163955 EXCEPTION
163956   WHEN xla_exceptions_pkg.application_exception THEN
163957       RAISE;
163958   WHEN OTHERS THEN
163959        xla_exceptions_pkg.raise_message
163960            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_264');
163961 END AcctLineType_264;
163962 --
163963 
163964 ---------------------------------------
163965 --
163966 -- PRIVATE FUNCTION
163967 --         AcctLineType_265
163968 --
163969 ---------------------------------------
163970 PROCEDURE AcctLineType_265 (
163971   p_application_id        IN NUMBER
163972  ,p_event_id              IN NUMBER
163973  ,p_calculate_acctd_flag  IN VARCHAR2
163974  ,p_calculate_g_l_flag    IN VARCHAR2
163975  ,p_actual_flag           IN OUT VARCHAR2
163976  ,p_balance_type_code     OUT VARCHAR2
163977  ,p_gain_or_loss_ref      OUT VARCHAR2
163978  
163979 --Invoice Distribution Description
163980  , p_source_1            IN VARCHAR2
163981 --Invoice Distribution Ledger Amount
163982  , p_source_9            IN NUMBER
163983 --Invoice Distribution Account
163984  , p_source_18            IN NUMBER
163985 --Invoice Distribution Type
163986  , p_source_21            IN VARCHAR2
163987  , p_source_21_meaning    IN VARCHAR2
163988 --Accounting Reversal Indicator
163989  , p_source_41            IN VARCHAR2
163990 --Distribution Link Type
163991  , p_source_43            IN VARCHAR2
163992 --Allocation to Main Distribution Identifier
163993  , p_source_45            IN NUMBER
163994 --Invoice Identifier
163995  , p_source_46            IN NUMBER
163996 --Invoice Distribution Identifier
163997  , p_source_52            IN NUMBER
163998 --Payables Encumbrance Upgrade Credit Account
163999  , p_source_53            IN NUMBER
164000 --Payables Encumbrance Upgrade Credit Amount
164001  , p_source_54            IN NUMBER
164002 --Invoice Currency Code
164003  , p_source_55            IN VARCHAR2
164004 --Payables Encumbrance Upgrade Credit Base Amount
164005  , p_source_56            IN NUMBER
164006 --Payables Encumbrance Upgrade Debit Account
164007  , p_source_57            IN NUMBER
164008 --Payables Encumbrance Upgrade Debit Amount
164009  , p_source_58            IN NUMBER
164010 --Payables Encumbrance Upgrade Debit Base Amount
164011  , p_source_59            IN NUMBER
164012 --Payables Encumbrance Upgrade Option
164013  , p_source_60            IN VARCHAR2
164014 --Invoice Distribution Amount
164015  , p_source_61            IN NUMBER
164016 --Deferred Accounting End Date
164017  , p_source_65            IN DATE
164018 --Deferred Accounting Option
164019  , p_source_66            IN VARCHAR2
164020 --Deferred Accounting Start Date
164021  , p_source_67            IN DATE
164022 --Override Accounted Amount Indicator
164023  , p_source_68            IN VARCHAR2
164024  , p_source_68_meaning    IN VARCHAR2
164025 --Invoice Supplier Identifier
164026  , p_source_69            IN NUMBER
164027 --Invoice Supplier Site Identifier
164028  , p_source_70            IN NUMBER
164029 --Third Party Type
164030  , p_source_71            IN VARCHAR2
164031 --Parent Reversal Identifier
164032  , p_source_72            IN NUMBER
164033 --Invoice Distribution Statistical Amount
164034  , p_source_73            IN NUMBER
164035 --Invoice Distribution Tax Line Identifier
164036  , p_source_74            IN NUMBER
164037 --Invoice Distribution Tax Distribution Identifier from Tax
164038  , p_source_75            IN NUMBER
164042  , p_source_77            IN NUMBER
164039 --Invoice Distribution Summary Tax Line Identifier
164040  , p_source_76            IN NUMBER
164041 --Payables Upgrade Credit Encumbrance Type Identifier
164043 --Payables Upgrade Debit Encumbrance Type Identifier
164044  , p_source_78            IN NUMBER
164045 --Business Flow Accounts Payable Application Identifier
164046  , p_source_79            IN NUMBER
164047 --Business Flow Invoice Distribution Type
164048  , p_source_80            IN VARCHAR2
164049 --Business Flow Invoice Entity Code
164050  , p_source_81            IN VARCHAR2
164051 --Business Flow Invoice Distribution Identifier
164052  , p_source_82            IN NUMBER
164053 --Business Flow Invoice Identifier
164054  , p_source_83            IN NUMBER
164055 --Accrue on Receipt Option
164056  , p_source_84            IN VARCHAR2
164057  , p_source_84_meaning    IN VARCHAR2
164058 --Invoice Exchange Date
164059  , p_source_136            IN DATE
164060 --Invoice Exchange Rate
164061  , p_source_137            IN NUMBER
164062 --Invoice Exchange Rate Type
164063  , p_source_138            IN VARCHAR2
164064 )
164065 IS
164066 
164067 l_component_type              VARCHAR2(80);
164068 l_component_code              VARCHAR2(30);
164069 l_component_type_code         VARCHAR2(1);
164070 l_component_appl_id           INTEGER;
164071 l_amb_context_code            VARCHAR2(30);
164072 l_entity_code                 VARCHAR2(30);
164073 l_event_class_code            VARCHAR2(30);
164074 l_ae_header_id                NUMBER;
164075 l_event_type_code             VARCHAR2(30);
164076 l_line_definition_code        VARCHAR2(30);
164077 l_line_definition_owner_code  VARCHAR2(1);
164078 --
164079 -- adr variables
164080 l_segment                     VARCHAR2(30);
164081 l_ccid                        NUMBER;
164082 l_adr_transaction_coa_id      NUMBER;
164083 l_adr_accounting_coa_id       NUMBER;
164084 l_adr_flexfield_segment_code  VARCHAR2(30);
164085 l_adr_flex_value_set_id       NUMBER;
164086 l_adr_value_type_code         VARCHAR2(30);
164087 l_adr_value_combination_id    NUMBER;
164088 l_adr_value_segment_code      VARCHAR2(30);
164089 
164090 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
164091 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
164092 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
164093 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
164094 
164095 -- 4262811 Variables ------------------------------------------------------------------------------------------
164096 l_entered_amt_idx             NUMBER;
164097 l_accted_amt_idx              NUMBER;
164098 l_acc_rev_flag                VARCHAR2(1);
164099 l_accrual_line_num            NUMBER;
164100 l_tmp_amt                     NUMBER;
164101 l_acc_rev_natural_side_code   VARCHAR2(1);
164102 
164103 l_num_entries                 NUMBER;
164104 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
164105 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
164106 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
164107 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
164108 l_recog_line_1                NUMBER;
164109 l_recog_line_2                NUMBER;
164110 
164111 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
164112 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
164113 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
164114 
164115 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
164116 
164117 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
164118 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
164119 
164120 ---------------------------------------------------------------------------------------------------------------
164121 
164122 
164123 --
164124 -- bulk performance
164125 --
164126 l_balance_type_code           VARCHAR2(1);
164127 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
164128 l_log_module                  VARCHAR2(240);
164129 
164130 --
164131 -- Upgrade strategy
164132 --
164133 l_actual_upg_option           VARCHAR2(1);
164134 l_enc_upg_option           VARCHAR2(1);
164135 
164136 --
164137 BEGIN
164138 --
164139 IF g_log_enabled THEN
164140       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_265';
164141 END IF;
164142 --
164143 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
164144 
164145       trace
164146          (p_msg      => 'BEGIN of AcctLineType_265'
164147          ,p_level    => C_LEVEL_PROCEDURE
164148          ,p_module   => l_log_module);
164149 
164150 END IF;
164151 --
164152 l_component_type             := 'AMB_JLT';
164153 l_component_code             := 'AP_TAX_INV_PRICE_VAR_CM';
164154 l_component_type_code        := 'S';
164155 l_component_appl_id          :=  200;
164156 l_amb_context_code           := 'DEFAULT';
164157 l_entity_code                := 'AP_INVOICES';
164158 l_event_class_code           := 'CREDIT MEMOS';
164159 l_event_type_code            := 'CREDIT MEMOS_ALL';
164160 l_line_definition_owner_code := 'S';
164161 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
164162 --
164163 l_balance_type_code          := 'A';
164164 l_segment                     := NULL;
164165 l_ccid                        := NULL;
164166 l_adr_transaction_coa_id      := NULL;
164167 l_adr_accounting_coa_id       := NULL;
164168 l_adr_flexfield_segment_code  := NULL;
164169 l_adr_flex_value_set_id       := NULL;
164170 l_adr_value_type_code         := NULL;
164171 l_adr_value_combination_id    := NULL;
164175 l_bflow_class_code           := '';    -- 4219869 Business Flow
164172 l_adr_value_segment_code      := NULL;
164173 
164174 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
164176 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
164177 l_budgetary_control_flag     := 'N';
164178 
164179 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
164180 l_bflow_applied_to_amt       := NULL; -- 5132302
164181 l_entered_amt_idx            := NULL;          -- 4262811
164182 l_accted_amt_idx             := NULL;          -- 4262811
164183 l_acc_rev_flag               := NULL;          -- 4262811
164184 l_accrual_line_num           := NULL;          -- 4262811
164185 l_tmp_amt                    := NULL;          -- 4262811
164186 --
164187  
164188 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
164189     l_balance_type_code <> 'B' THEN
164190 IF NVL(p_source_21,'
164191 ') =  'TIPV' AND 
164192 NVL(p_source_84,'
164193 ') =  'Y'
164194  THEN 
164195 
164196    --
164197    XLA_AE_LINES_PKG.SetNewLine;
164198 
164199    p_balance_type_code          := l_balance_type_code;
164200    -- set the flag so later we will know whether the gain loss line needs to be created
164201    
164202    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
164203      p_actual_flag :='A';
164204    END IF;
164205 
164206    --
164207    -- bulk performance
164208    --
164209    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
164210                                       p_header_num   => 0); -- 4262811
164211    --
164212    -- set accounting line options
164213    --
164214    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
164215            p_natural_side_code          => 'D'
164216          , p_gain_or_loss_flag          => 'N'
164217          , p_gl_transfer_mode_code      => 'S'
164218          , p_acct_entry_type_code       => 'A'
164219          , p_switch_side_flag           => 'Y'
164220          , p_merge_duplicate_code       => 'A'
164221          );
164222    --
164223    l_acc_rev_natural_side_code := 'C';  -- 4262811
164224    -- 
164225    --
164226    -- set accounting line type info
164227    --
164228    xla_ae_lines_pkg.SetAcctLineType
164229       (p_component_type             => l_component_type
164230       ,p_event_type_code            => l_event_type_code
164231       ,p_line_definition_owner_code => l_line_definition_owner_code
164232       ,p_line_definition_code       => l_line_definition_code
164233       ,p_accounting_line_code       => l_component_code
164234       ,p_accounting_line_type_code  => l_component_type_code
164235       ,p_accounting_line_appl_id    => l_component_appl_id
164236       ,p_amb_context_code           => l_amb_context_code
164237       ,p_entity_code                => l_entity_code
164238       ,p_event_class_code           => l_event_class_code);
164239    --
164240    -- set accounting class
164241    --
164242    xla_ae_lines_pkg.SetAcctClass(
164243            p_accounting_class_code  => 'TIPV'
164244          , p_ae_header_id           => l_ae_header_id
164245          );
164246 
164247    --
164248    -- set rounding class
164249    --
164250    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
164251                       'TIPV';
164252 
164253    --
164254    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
164255    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
164256    --
164257    -- bulk performance
164258    --
164259    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
164260 
164261    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
164262       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
164263 
164264    -- 4955764
164265    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
164266       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
164267 
164268    -- 4458381 Public Sector Enh
164269    
164270    --
164271    -- set accounting attributes for the line type
164272    --
164273    l_entered_amt_idx := 23;
164274    l_accted_amt_idx  := 28;
164275    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
164276    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
164277    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
164278    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
164279    l_rec_acct_attrs.array_num_value(2)  := 
164280 xla_ae_sources_pkg.GetSystemSourceNum(
164281    p_source_code           => 'XLA_EVENT_APPL_ID'
164282  , p_source_type_code      => 'Y'
164283  , p_source_application_id =>  602
164284 );
164285    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
164286    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
164287    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
164288    l_rec_acct_attrs.array_char_value(4)  := 
164289 xla_ae_sources_pkg.GetSystemSourceChar(
164290    p_source_code           => 'XLA_ENTITY_CODE'
164291  , p_source_type_code      => 'Y'
164292  , p_source_application_id =>  602
164293 );
164294    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
164295    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
164296    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
164297    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
164301    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
164298    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
164299    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
164300    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
164302    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
164303    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
164304    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
164305    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
164306    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
164307    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
164308    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
164309    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
164310    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
164311    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
164312    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
164313    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
164314    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
164315    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
164316    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
164317    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
164318    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
164319    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
164320    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
164321    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
164322    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
164323    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
164324    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
164325    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
164326    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
164327    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
164328    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
164329    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
164330    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
164331    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
164332    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
164333    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
164334    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
164335    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
164336    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
164337    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
164338    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
164339    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
164340    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
164341    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
164342    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
164343    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
164344    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
164345    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
164346    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
164347    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
164348    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
164349    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
164350    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
164351    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
164352    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
164353    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
164354    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
164355    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
164356    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
164357    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
164358    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
164359    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
164360    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
164361    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
164362    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
164363    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
164364    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
164365    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
164366    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
164367    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
164368    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
164369    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
164370    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
164371    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
164372 
164373    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
164374    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
164375 
164376    ---------------------------------------------------------------------------------------------------------------
164377    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
164378    ---------------------------------------------------------------------------------------------------------------
164379    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
164380 
164381    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
164382    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
164383 
164384    IF xla_accounting_cache_pkg.GetValueChar
164388 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
164385          (p_source_code         => 'LEDGER_CATEGORY_CODE'
164386          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
164387    AND l_bflow_method_code = 'PRIOR_ENTRY'
164389    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
164390          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
164391        )
164392    THEN
164393          xla_ae_lines_pkg.BflowUpgEntry
164394            (p_business_method_code    => l_bflow_method_code
164395            ,p_business_class_code     => l_bflow_class_code
164396            ,p_balance_type            => l_balance_type_code);
164397    ELSE
164398       NULL;
164399 -- No business flow processing for business flow method of NONE.
164400    END IF;
164401 
164402    --
164403    -- call analytical criteria
164404    --
164405    
164406    --
164407    -- call description
164408    --
164409    
164410 xla_ae_lines_pkg.SetLineDescription(
164411    p_ae_header_id => l_ae_header_id
164412   ,p_description  => Description_2 (
164413      p_application_id         => p_application_id
164414    , p_ae_header_id           => l_ae_header_id 
164415 , p_source_1 => p_source_1
164416    )
164417 );
164418 
164419 
164420    --
164421    -- call ADRs
164422    -- Bug 4922099
164423    --
164424    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
164425         (NVL(l_actual_upg_option, 'N') = 'O') OR
164426         (NVL(l_enc_upg_option, 'N') = 'O')
164427       )
164428    THEN
164429    NULL;
164430    --
164431    --
164432    
164433   l_ccid := AcctDerRule_32(
164434            p_application_id           => p_application_id
164435          , p_ae_header_id             => l_ae_header_id 
164436 , p_source_18 => p_source_18
164437          , x_transaction_coa_id       => l_adr_transaction_coa_id
164438          , x_accounting_coa_id        => l_adr_accounting_coa_id
164439          , x_value_type_code          => l_adr_value_type_code
164440          , p_side                     => 'NA'
164441    );
164442 
164443    xla_ae_lines_pkg.set_ccid(
164444     p_code_combination_id          => l_ccid
164445   , p_value_type_code              => l_adr_value_type_code
164446   , p_transaction_coa_id           => l_adr_transaction_coa_id
164447   , p_accounting_coa_id            => l_adr_accounting_coa_id
164448   , p_adr_code                     => 'AP_INVOICE_DIST'
164449   , p_adr_type_code                => 'S'
164450   , p_component_type               => l_component_type
164451   , p_component_code               => l_component_code
164452   , p_component_type_code          => l_component_type_code
164453   , p_component_appl_id            => l_component_appl_id
164454   , p_amb_context_code             => l_amb_context_code
164455   , p_side                         => 'NA'
164456   );
164457 
164458 
164459    --
164460    --
164461    END IF;
164462    --
164463    -- Bug 4922099
164464    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
164465           (NVL(l_enc_upg_option, 'N') = 'O')
164466         ) AND
164467         (l_bflow_method_code = 'PRIOR_ENTRY')
164468       )
164469    THEN
164470       IF
164471       --
164472       1 = 2
164473       --
164474       THEN
164475       xla_accounting_err_pkg.build_message
164476                                     (p_appli_s_name            => 'XLA'
164477                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
164478                                     ,p_token_1                 => 'LINE_NUMBER'
164479                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
164480                                     ,p_token_2                 => 'LINE_TYPE_NAME'
164481                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
164482                                                                              l_component_type
164483                                                                             ,l_component_code
164484                                                                             ,l_component_type_code
164485                                                                             ,l_component_appl_id
164486                                                                             ,l_amb_context_code
164487                                                                             ,l_entity_code
164488                                                                             ,l_event_class_code
164489                                                                            )
164490                                     ,p_token_3                 => 'OWNER'
164491                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
164492                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
164493                                                                           ,p_lookup_code    => l_component_type_code
164494                                                                          )
164495                                     ,p_token_4                 => 'PRODUCT_NAME'
164496                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
164497                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
164498                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
164499                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
164500                                     ,p_ae_header_id            =>  NULL
164501                                        );
164502 
164503         IF (C_LEVEL_ERROR>= g_log_level) THEN
164504                  trace
164508         END IF;
164505                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
164506                       ,p_level    => C_LEVEL_ERROR
164507                       ,p_module   => l_log_module);
164509       END IF;
164510    END IF;
164511    --
164512    --
164513    ------------------------------------------------------------------------------------------------
164514    -- 4219869 Business Flow
164515    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
164516    -- Prior Entry.  Currently, the following code is always generated.
164517    ------------------------------------------------------------------------------------------------
164518    XLA_AE_LINES_PKG.ValidateCurrentLine;
164519 
164520    ------------------------------------------------------------------------------------
164521    -- 4219869 Business Flow
164522    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
164523    ------------------------------------------------------------------------------------
164524    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
164525 
164526    ----------------------------------------------------------------------------------
164527    -- 4219869 Business Flow
164528    -- Update journal entry status -- Need to generate this within IF <condition>
164529    ----------------------------------------------------------------------------------
164530    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
164531          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
164532          ,p_balance_type_code => l_balance_type_code
164533          );
164534 
164535    -------------------------------------------------------------------------------------------
164536    -- 4262811 - Generate the Accrual Reversal lines
164537    -------------------------------------------------------------------------------------------
164538    BEGIN
164539       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
164540                               (g_array_event(p_event_id).array_value_num('header_index'));
164541       IF l_acc_rev_flag IS NULL THEN
164542          l_acc_rev_flag := 'N';
164543       END IF;
164544    EXCEPTION
164545       WHEN OTHERS THEN
164546          l_acc_rev_flag := 'N';
164547    END;
164548    --
164549    IF (l_acc_rev_flag = 'Y') THEN
164550 
164551        -- 4645092  ------------------------------------------------------------------------------
164552        -- To allow MPA report to determine if it should generate report process
164553        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
164554        ------------------------------------------------------------------------------------------
164555 
164556        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
164557        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
164558    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
164559    -- call ADRs
164560    -- Bug 4922099
164561    --
164562    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
164563         (NVL(l_actual_upg_option, 'N') = 'O') OR
164564         (NVL(l_enc_upg_option, 'N') = 'O')
164565       )
164566    THEN
164567    NULL;
164568    --
164569    --
164570    
164571   l_ccid := AcctDerRule_32(
164572            p_application_id           => p_application_id
164573          , p_ae_header_id             => l_ae_header_id 
164574 , p_source_18 => p_source_18
164575          , x_transaction_coa_id       => l_adr_transaction_coa_id
164576          , x_accounting_coa_id        => l_adr_accounting_coa_id
164577          , x_value_type_code          => l_adr_value_type_code
164578          , p_side                     => 'NA'
164579    );
164580 
164581    xla_ae_lines_pkg.set_ccid(
164582     p_code_combination_id          => l_ccid
164583   , p_value_type_code              => l_adr_value_type_code
164584   , p_transaction_coa_id           => l_adr_transaction_coa_id
164585   , p_accounting_coa_id            => l_adr_accounting_coa_id
164586   , p_adr_code                     => 'AP_INVOICE_DIST'
164587   , p_adr_type_code                => 'S'
164588   , p_component_type               => l_component_type
164589   , p_component_code               => l_component_code
164590   , p_component_type_code          => l_component_type_code
164591   , p_component_appl_id            => l_component_appl_id
164592   , p_amb_context_code             => l_amb_context_code
164593   , p_side                         => 'NA'
164594   );
164595 
164596 
164597    --
164598    --
164599    END IF;
164600 
164601        --
164602        -- Update the line information that should be overwritten
164603        --
164604        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
164605                                          p_header_num   => 1);
164606        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
164607 
164608        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
164609 
164610        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
164611           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
164612        END IF;
164613 
164614       --
164615       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
164616       --
164617       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
164618           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
164619       ELSE
164620           ---------------------------------------------------------------------------------------------------
164621           -- 4262811a Switch Sign
164625                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
164622           ---------------------------------------------------------------------------------------------------
164623           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
164624           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
164626           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
164627                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
164628           -- 5132302
164629           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
164630                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
164631 
164632       END IF;
164633 
164634       -- 4955764
164635       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
164636       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
164637 
164638 
164639       XLA_AE_LINES_PKG.ValidateCurrentLine;
164640       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
164641 
164642       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
164643                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
164644                ,p_balance_type_code => l_balance_type_code);
164645 
164646    END IF;
164647 
164648    -----------------------------------------------------------------------------------------
164649    -- 4262811 Multiperiod Accounting
164650    -----------------------------------------------------------------------------------------
164651      -- No MPA option is assigned.
164652 
164653 
164654 END IF;
164655 END IF;
164656 --
164657 
164658 --
164659 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
164660    trace
164661       (p_msg      => 'END of AcctLineType_265'
164662       ,p_level    => C_LEVEL_PROCEDURE
164663       ,p_module   => l_log_module);
164664 END IF;
164665 --
164666 EXCEPTION
164667   WHEN xla_exceptions_pkg.application_exception THEN
164668       RAISE;
164669   WHEN OTHERS THEN
164670        xla_exceptions_pkg.raise_message
164671            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_265');
164672 END AcctLineType_265;
164673 --
164674 
164675 ---------------------------------------
164676 --
164677 -- PRIVATE FUNCTION
164678 --         AcctLineType_266
164679 --
164680 ---------------------------------------
164681 PROCEDURE AcctLineType_266 (
164682   p_application_id        IN NUMBER
164683  ,p_event_id              IN NUMBER
164684  ,p_calculate_acctd_flag  IN VARCHAR2
164685  ,p_calculate_g_l_flag    IN VARCHAR2
164686  ,p_actual_flag           IN OUT VARCHAR2
164687  ,p_balance_type_code     OUT VARCHAR2
164688  ,p_gain_or_loss_ref      OUT VARCHAR2
164689  
164690 --Invoice Distribution Type
164691  , p_source_21            IN VARCHAR2
164692  , p_source_21_meaning    IN VARCHAR2
164693 --Accounting Reversal Indicator
164694  , p_source_41            IN VARCHAR2
164695 --Distribution Link Type
164696  , p_source_43            IN VARCHAR2
164697 --Allocation to Main Distribution Identifier
164698  , p_source_45            IN NUMBER
164699 --Invoice Identifier
164700  , p_source_46            IN NUMBER
164701 --Invoice Distribution Identifier
164702  , p_source_52            IN NUMBER
164703 --Payables Encumbrance Upgrade Credit Account
164704  , p_source_53            IN NUMBER
164705 --Payables Encumbrance Upgrade Credit Amount
164706  , p_source_54            IN NUMBER
164707 --Invoice Currency Code
164708  , p_source_55            IN VARCHAR2
164709 --Payables Encumbrance Upgrade Credit Base Amount
164710  , p_source_56            IN NUMBER
164711 --Payables Encumbrance Upgrade Debit Account
164712  , p_source_57            IN NUMBER
164713 --Payables Encumbrance Upgrade Debit Amount
164714  , p_source_58            IN NUMBER
164715 --Payables Encumbrance Upgrade Debit Base Amount
164716  , p_source_59            IN NUMBER
164717 --Payables Encumbrance Upgrade Option
164718  , p_source_60            IN VARCHAR2
164719 --Deferred Accounting End Date
164720  , p_source_65            IN DATE
164721 --Deferred Accounting Option
164722  , p_source_66            IN VARCHAR2
164723 --Deferred Accounting Start Date
164724  , p_source_67            IN DATE
164725 --Override Accounted Amount Indicator
164726  , p_source_68            IN VARCHAR2
164727  , p_source_68_meaning    IN VARCHAR2
164728 --Third Party Type
164729  , p_source_71            IN VARCHAR2
164730 --Parent Reversal Identifier
164731  , p_source_72            IN NUMBER
164732 --Invoice Distribution Statistical Amount
164733  , p_source_73            IN NUMBER
164734 --Invoice Distribution Tax Line Identifier
164735  , p_source_74            IN NUMBER
164736 --Invoice Distribution Tax Distribution Identifier from Tax
164737  , p_source_75            IN NUMBER
164738 --Invoice Distribution Summary Tax Line Identifier
164739  , p_source_76            IN NUMBER
164740 --Payables Upgrade Credit Encumbrance Type Identifier
164741  , p_source_77            IN NUMBER
164742 --Payables Upgrade Debit Encumbrance Type Identifier
164743  , p_source_78            IN NUMBER
164744 --Business Flow Accounts Payable Application Identifier
164745  , p_source_79            IN NUMBER
164746 --Business Flow Invoice Distribution Type
164747  , p_source_80            IN VARCHAR2
164748 --Business Flow Invoice Entity Code
164749  , p_source_81            IN VARCHAR2
164750 --Business Flow Invoice Distribution Identifier
164751  , p_source_82            IN NUMBER
164752 --Business Flow Invoice Identifier
164756  , p_source_86_meaning    IN VARCHAR2
164753  , p_source_83            IN NUMBER
164754 --Purchasing Encumbrance Option
164755  , p_source_86            IN VARCHAR2
164757 --Invoice Encumbered Option
164758  , p_source_87            IN VARCHAR2
164759  , p_source_87_meaning    IN VARCHAR2
164760 --Invoice Distribution Encumbrance Amount
164761  , p_source_143            IN NUMBER
164762 --Invoice Distribution Encumbrance Ledger Amount
164763  , p_source_144            IN NUMBER
164764 )
164765 IS
164766 
164767 l_component_type              VARCHAR2(80);
164768 l_component_code              VARCHAR2(30);
164769 l_component_type_code         VARCHAR2(1);
164770 l_component_appl_id           INTEGER;
164771 l_amb_context_code            VARCHAR2(30);
164772 l_entity_code                 VARCHAR2(30);
164773 l_event_class_code            VARCHAR2(30);
164774 l_ae_header_id                NUMBER;
164775 l_event_type_code             VARCHAR2(30);
164776 l_line_definition_code        VARCHAR2(30);
164777 l_line_definition_owner_code  VARCHAR2(1);
164778 --
164779 -- adr variables
164780 l_segment                     VARCHAR2(30);
164781 l_ccid                        NUMBER;
164782 l_adr_transaction_coa_id      NUMBER;
164783 l_adr_accounting_coa_id       NUMBER;
164784 l_adr_flexfield_segment_code  VARCHAR2(30);
164785 l_adr_flex_value_set_id       NUMBER;
164786 l_adr_value_type_code         VARCHAR2(30);
164787 l_adr_value_combination_id    NUMBER;
164788 l_adr_value_segment_code      VARCHAR2(30);
164789 
164790 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
164791 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
164792 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
164793 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
164794 
164795 -- 4262811 Variables ------------------------------------------------------------------------------------------
164796 l_entered_amt_idx             NUMBER;
164797 l_accted_amt_idx              NUMBER;
164798 l_acc_rev_flag                VARCHAR2(1);
164799 l_accrual_line_num            NUMBER;
164800 l_tmp_amt                     NUMBER;
164801 l_acc_rev_natural_side_code   VARCHAR2(1);
164802 
164803 l_num_entries                 NUMBER;
164804 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
164805 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
164806 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
164807 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
164808 l_recog_line_1                NUMBER;
164809 l_recog_line_2                NUMBER;
164810 
164811 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
164812 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
164813 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
164814 
164815 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
164816 
164817 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
164818 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
164819 
164820 ---------------------------------------------------------------------------------------------------------------
164821 
164822 
164823 --
164824 -- bulk performance
164825 --
164826 l_balance_type_code           VARCHAR2(1);
164827 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
164828 l_log_module                  VARCHAR2(240);
164829 
164830 --
164831 -- Upgrade strategy
164832 --
164833 l_actual_upg_option           VARCHAR2(1);
164834 l_enc_upg_option           VARCHAR2(1);
164835 
164836 --
164837 BEGIN
164838 --
164839 IF g_log_enabled THEN
164840       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_266';
164841 END IF;
164842 --
164843 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
164844 
164845       trace
164846          (p_msg      => 'BEGIN of AcctLineType_266'
164847          ,p_level    => C_LEVEL_PROCEDURE
164848          ,p_module   => l_log_module);
164849 
164850 END IF;
164851 --
164852 l_component_type             := 'AMB_JLT';
164853 l_component_code             := 'AP_TAX_INV_PRICE_VAR_CM_ENC';
164854 l_component_type_code        := 'S';
164855 l_component_appl_id          :=  200;
164856 l_amb_context_code           := 'DEFAULT';
164857 l_entity_code                := 'AP_INVOICES';
164858 l_event_class_code           := 'CREDIT MEMOS';
164859 l_event_type_code            := 'CREDIT MEMOS_ALL';
164860 l_line_definition_owner_code := 'S';
164861 l_line_definition_code       := 'ENC_REV_CM_ALL';
164862 --
164863 l_balance_type_code          := 'E';
164864 l_segment                     := NULL;
164865 l_ccid                        := NULL;
164866 l_adr_transaction_coa_id      := NULL;
164867 l_adr_accounting_coa_id       := NULL;
164868 l_adr_flexfield_segment_code  := NULL;
164869 l_adr_flex_value_set_id       := NULL;
164870 l_adr_value_type_code         := NULL;
164871 l_adr_value_combination_id    := NULL;
164872 l_adr_value_segment_code      := NULL;
164873 
164874 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
164875 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
164876 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
164877 l_budgetary_control_flag     := 'N';
164878 
164879 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
164880 l_bflow_applied_to_amt       := NULL; -- 5132302
164881 l_entered_amt_idx            := NULL;          -- 4262811
164882 l_accted_amt_idx             := NULL;          -- 4262811
164883 l_acc_rev_flag               := NULL;          -- 4262811
164884 l_accrual_line_num           := NULL;          -- 4262811
164885 l_tmp_amt                    := NULL;          -- 4262811
164889     l_balance_type_code <> 'B' THEN
164886 --
164887  
164888 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
164890 IF NVL(p_source_21,'
164891 ') =  'TIPV' AND 
164892 NVL(p_source_86,'
164893 ') =  'Y' AND 
164894 NVL(p_source_87,'
164895 ') =  'Y'
164896  THEN 
164897 
164898    --
164899    XLA_AE_LINES_PKG.SetNewLine;
164900 
164901    p_balance_type_code          := l_balance_type_code;
164902    -- set the flag so later we will know whether the gain loss line needs to be created
164903    
164904    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
164905      p_actual_flag :='A';
164906    END IF;
164907 
164908    --
164909    -- bulk performance
164910    --
164911    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
164912                                       p_header_num   => 0); -- 4262811
164913    --
164914    -- set accounting line options
164915    --
164916    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
164917            p_natural_side_code          => 'C'
164918          , p_gain_or_loss_flag          => 'N'
164919          , p_gl_transfer_mode_code      => 'S'
164920          , p_acct_entry_type_code       => 'E'
164921          , p_switch_side_flag           => 'Y'
164922          , p_merge_duplicate_code       => 'A'
164923          );
164924    --
164925    l_acc_rev_natural_side_code := 'D';  -- 4262811
164926    -- 
164927    --
164928    -- set accounting line type info
164929    --
164930    xla_ae_lines_pkg.SetAcctLineType
164931       (p_component_type             => l_component_type
164932       ,p_event_type_code            => l_event_type_code
164933       ,p_line_definition_owner_code => l_line_definition_owner_code
164934       ,p_line_definition_code       => l_line_definition_code
164935       ,p_accounting_line_code       => l_component_code
164936       ,p_accounting_line_type_code  => l_component_type_code
164937       ,p_accounting_line_appl_id    => l_component_appl_id
164938       ,p_amb_context_code           => l_amb_context_code
164939       ,p_entity_code                => l_entity_code
164940       ,p_event_class_code           => l_event_class_code);
164941    --
164942    -- set accounting class
164943    --
164944    xla_ae_lines_pkg.SetAcctClass(
164945            p_accounting_class_code  => 'TIPV'
164946          , p_ae_header_id           => l_ae_header_id
164947          );
164948 
164949    --
164950    -- set rounding class
164951    --
164952    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
164953                       'TIPV';
164954 
164955    --
164956    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
164957    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
164958    --
164959    -- bulk performance
164960    --
164961    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
164962 
164963    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
164964       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
164965 
164966    -- 4955764
164967    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
164968       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
164969 
164970    -- 4458381 Public Sector Enh
164971    
164972    --
164973    -- set accounting attributes for the line type
164974    --
164975    l_entered_amt_idx := 23;
164976    l_accted_amt_idx  := 25;
164977    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
164978    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
164979    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
164980    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
164981    l_rec_acct_attrs.array_num_value(2)  := 
164982 xla_ae_sources_pkg.GetSystemSourceNum(
164983    p_source_code           => 'XLA_EVENT_APPL_ID'
164984  , p_source_type_code      => 'Y'
164985  , p_source_application_id =>  602
164986 );
164987    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
164988    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
164989    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
164990    l_rec_acct_attrs.array_char_value(4)  := 
164991 xla_ae_sources_pkg.GetSystemSourceChar(
164992    p_source_code           => 'XLA_ENTITY_CODE'
164993  , p_source_type_code      => 'Y'
164994  , p_source_application_id =>  602
164995 );
164996    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
164997    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
164998    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
164999    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
165000    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
165001    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
165002    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
165003    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
165004    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
165005    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
165006    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
165007    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
165008    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
165009    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
165010    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
165011    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
165015    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
165012    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
165013    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
165014    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
165016    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
165017    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
165018    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
165019    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
165020    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
165021    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
165022    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
165023    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
165024    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
165025    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
165026    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
165027    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
165028    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
165029    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
165030    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
165031    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
165032    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
165033    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
165034    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
165035    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
165036    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
165037    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
165038    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
165039    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
165040    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
165041    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
165042    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
165043    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
165044    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
165045    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
165046    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
165047    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
165048    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
165049    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
165050    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
165051    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
165052    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
165053    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
165054    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
165055    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
165056    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
165057    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
165058    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
165059    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
165060    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
165061    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
165062    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
165063    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
165064 
165065    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
165066    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
165067 
165068    ---------------------------------------------------------------------------------------------------------------
165069    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
165070    ---------------------------------------------------------------------------------------------------------------
165071    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
165072 
165073    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
165074    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
165075 
165076    IF xla_accounting_cache_pkg.GetValueChar
165077          (p_source_code         => 'LEDGER_CATEGORY_CODE'
165078          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
165079    AND l_bflow_method_code = 'PRIOR_ENTRY'
165080 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
165081    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
165082          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
165083        )
165084    THEN
165085          xla_ae_lines_pkg.BflowUpgEntry
165086            (p_business_method_code    => l_bflow_method_code
165087            ,p_business_class_code     => l_bflow_class_code
165088            ,p_balance_type            => l_balance_type_code);
165089    ELSE
165090       NULL;
165091 XLA_AE_LINES_PKG.business_flow_validation(
165092                                 p_business_method_code     => l_bflow_method_code
165093                                ,p_business_class_code      => l_bflow_class_code
165094                                ,p_inherit_description_flag => l_inherit_desc_flag);
165095    END IF;
165096 
165097    --
165098    -- call analytical criteria
165099    --
165100    -- Inherited Analytical Criteria for business flow method of Prior Entry.
165101    --
165102    -- call description
165103    --
165104    -- No description or it is inherited.
165105    --
165106    -- call ADRs
165107    -- Bug 4922099
165108    --
165109    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
165110         (NVL(l_actual_upg_option, 'N') = 'O') OR
165114    NULL;
165111         (NVL(l_enc_upg_option, 'N') = 'O')
165112       )
165113    THEN
165115    --
165116    --
165117    
165118    --
165119    --
165120    END IF;
165121    --
165122    -- Bug 4922099
165123    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
165124           (NVL(l_enc_upg_option, 'N') = 'O')
165125         ) AND
165126         (l_bflow_method_code = 'PRIOR_ENTRY')
165127       )
165128    THEN
165129       IF
165130       --
165131       1 = 1
165132       --
165133       THEN
165134       xla_accounting_err_pkg.build_message
165135                                     (p_appli_s_name            => 'XLA'
165136                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
165137                                     ,p_token_1                 => 'LINE_NUMBER'
165138                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
165139                                     ,p_token_2                 => 'LINE_TYPE_NAME'
165140                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
165141                                                                              l_component_type
165142                                                                             ,l_component_code
165143                                                                             ,l_component_type_code
165144                                                                             ,l_component_appl_id
165145                                                                             ,l_amb_context_code
165146                                                                             ,l_entity_code
165147                                                                             ,l_event_class_code
165148                                                                            )
165149                                     ,p_token_3                 => 'OWNER'
165150                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
165151                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
165152                                                                           ,p_lookup_code    => l_component_type_code
165153                                                                          )
165154                                     ,p_token_4                 => 'PRODUCT_NAME'
165155                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
165156                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
165157                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
165158                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
165159                                     ,p_ae_header_id            =>  NULL
165160                                        );
165161 
165162         IF (C_LEVEL_ERROR>= g_log_level) THEN
165163                  trace
165164                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
165165                       ,p_level    => C_LEVEL_ERROR
165166                       ,p_module   => l_log_module);
165167         END IF;
165168       END IF;
165169    END IF;
165170    --
165171    --
165172    ------------------------------------------------------------------------------------------------
165173    -- 4219869 Business Flow
165174    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
165175    -- Prior Entry.  Currently, the following code is always generated.
165176    ------------------------------------------------------------------------------------------------
165177    -- No ValidateCurrentLine for business flow method of Prior Entry
165178 
165179    ------------------------------------------------------------------------------------
165180    -- 4219869 Business Flow
165181    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
165182    ------------------------------------------------------------------------------------
165183    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
165184 
165185    ----------------------------------------------------------------------------------
165186    -- 4219869 Business Flow
165187    -- Update journal entry status -- Need to generate this within IF <condition>
165188    ----------------------------------------------------------------------------------
165189    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
165190          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
165191          ,p_balance_type_code => l_balance_type_code
165192          );
165193 
165194    -------------------------------------------------------------------------------------------
165195    -- 4262811 - Generate the Accrual Reversal lines
165196    -------------------------------------------------------------------------------------------
165197    BEGIN
165198       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
165199                               (g_array_event(p_event_id).array_value_num('header_index'));
165200       IF l_acc_rev_flag IS NULL THEN
165201          l_acc_rev_flag := 'N';
165202       END IF;
165203    EXCEPTION
165204       WHEN OTHERS THEN
165205          l_acc_rev_flag := 'N';
165206    END;
165207    --
165208    IF (l_acc_rev_flag = 'Y') THEN
165209 
165210        -- 4645092  ------------------------------------------------------------------------------
165211        -- To allow MPA report to determine if it should generate report process
165212        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
165213        ------------------------------------------------------------------------------------------
165214 
165215        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
165216        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
165220    --
165217    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
165218    -- call ADRs
165219    -- Bug 4922099
165221    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
165222         (NVL(l_actual_upg_option, 'N') = 'O') OR
165223         (NVL(l_enc_upg_option, 'N') = 'O')
165224       )
165225    THEN
165226    NULL;
165227    --
165228    --
165229    
165230    --
165231    --
165232    END IF;
165233 
165234        --
165235        -- Update the line information that should be overwritten
165236        --
165237        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
165238                                          p_header_num   => 1);
165239        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
165240 
165241        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
165242 
165243        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
165244           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
165245        END IF;
165246 
165247       --
165248       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
165249       --
165250       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
165251           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
165252       ELSE
165253           ---------------------------------------------------------------------------------------------------
165254           -- 4262811a Switch Sign
165255           ---------------------------------------------------------------------------------------------------
165256           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
165257           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
165258                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
165259           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
165260                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
165261           -- 5132302
165262           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
165263                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
165264 
165265       END IF;
165266 
165267       -- 4955764
165268       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
165269       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
165270 
165271 
165272       XLA_AE_LINES_PKG.ValidateCurrentLine;
165273       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
165274 
165275       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
165276                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
165277                ,p_balance_type_code => l_balance_type_code);
165278 
165279    END IF;
165280 
165281    -----------------------------------------------------------------------------------------
165282    -- 4262811 Multiperiod Accounting
165283    -----------------------------------------------------------------------------------------
165284      -- No MPA option is assigned.
165285 
165286 
165287 END IF;
165288 END IF;
165289 --
165290 
165291 --
165292 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
165293    trace
165294       (p_msg      => 'END of AcctLineType_266'
165295       ,p_level    => C_LEVEL_PROCEDURE
165296       ,p_module   => l_log_module);
165297 END IF;
165298 --
165299 EXCEPTION
165300   WHEN xla_exceptions_pkg.application_exception THEN
165301       RAISE;
165302   WHEN OTHERS THEN
165303        xla_exceptions_pkg.raise_message
165304            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_266');
165305 END AcctLineType_266;
165306 --
165307 
165308 ---------------------------------------
165309 --
165310 -- PRIVATE FUNCTION
165311 --         AcctLineType_267
165312 --
165313 ---------------------------------------
165314 PROCEDURE AcctLineType_267 (
165315   p_application_id        IN NUMBER
165316  ,p_event_id              IN NUMBER
165317  ,p_calculate_acctd_flag  IN VARCHAR2
165318  ,p_calculate_g_l_flag    IN VARCHAR2
165319  ,p_actual_flag           IN OUT VARCHAR2
165320  ,p_balance_type_code     OUT VARCHAR2
165321  ,p_gain_or_loss_ref      OUT VARCHAR2
165322  
165323 --Invoice Distribution Description
165324  , p_source_1            IN VARCHAR2
165325 --Invoice Distribution Ledger Amount
165326  , p_source_9            IN NUMBER
165327 --Invoice Distribution Account
165328  , p_source_18            IN NUMBER
165329 --Invoice Distribution Type
165330  , p_source_21            IN VARCHAR2
165331  , p_source_21_meaning    IN VARCHAR2
165332 --Accounting Reversal Indicator
165333  , p_source_41            IN VARCHAR2
165334 --Distribution Link Type
165335  , p_source_43            IN VARCHAR2
165336 --Allocation to Main Distribution Identifier
165337  , p_source_45            IN NUMBER
165338 --Invoice Identifier
165339  , p_source_46            IN NUMBER
165340 --Invoice Distribution Identifier
165341  , p_source_52            IN NUMBER
165342 --Payables Encumbrance Upgrade Credit Account
165343  , p_source_53            IN NUMBER
165344 --Payables Encumbrance Upgrade Credit Amount
165345  , p_source_54            IN NUMBER
165346 --Invoice Currency Code
165347  , p_source_55            IN VARCHAR2
165348 --Payables Encumbrance Upgrade Credit Base Amount
165352 --Payables Encumbrance Upgrade Debit Amount
165349  , p_source_56            IN NUMBER
165350 --Payables Encumbrance Upgrade Debit Account
165351  , p_source_57            IN NUMBER
165353  , p_source_58            IN NUMBER
165354 --Payables Encumbrance Upgrade Debit Base Amount
165355  , p_source_59            IN NUMBER
165356 --Payables Encumbrance Upgrade Option
165357  , p_source_60            IN VARCHAR2
165358 --Invoice Distribution Amount
165359  , p_source_61            IN NUMBER
165360 --Deferred Accounting End Date
165361  , p_source_65            IN DATE
165362 --Deferred Accounting Option
165363  , p_source_66            IN VARCHAR2
165364 --Deferred Accounting Start Date
165365  , p_source_67            IN DATE
165366 --Override Accounted Amount Indicator
165367  , p_source_68            IN VARCHAR2
165368  , p_source_68_meaning    IN VARCHAR2
165369 --Invoice Supplier Identifier
165370  , p_source_69            IN NUMBER
165371 --Invoice Supplier Site Identifier
165372  , p_source_70            IN NUMBER
165373 --Third Party Type
165374  , p_source_71            IN VARCHAR2
165375 --Parent Reversal Identifier
165376  , p_source_72            IN NUMBER
165377 --Invoice Distribution Tax Line Identifier
165378  , p_source_74            IN NUMBER
165379 --Invoice Distribution Tax Distribution Identifier from Tax
165380  , p_source_75            IN NUMBER
165381 --Invoice Distribution Summary Tax Line Identifier
165382  , p_source_76            IN NUMBER
165383 --Payables Upgrade Credit Encumbrance Type Identifier
165384  , p_source_77            IN NUMBER
165385 --Payables Upgrade Debit Encumbrance Type Identifier
165386  , p_source_78            IN NUMBER
165387 --Business Flow Accounts Payable Application Identifier
165388  , p_source_79            IN NUMBER
165389 --Business Flow Invoice Distribution Type
165390  , p_source_80            IN VARCHAR2
165391 --Business Flow Invoice Entity Code
165392  , p_source_81            IN VARCHAR2
165393 --Business Flow Invoice Distribution Identifier
165394  , p_source_82            IN NUMBER
165395 --Business Flow Invoice Identifier
165396  , p_source_83            IN NUMBER
165397 --Accrue on Receipt Option
165398  , p_source_84            IN VARCHAR2
165399  , p_source_84_meaning    IN VARCHAR2
165400 --Invoice Exchange Date
165401  , p_source_136            IN DATE
165402 --Invoice Exchange Rate
165403  , p_source_137            IN NUMBER
165404 --Invoice Exchange Rate Type
165405  , p_source_138            IN VARCHAR2
165406 )
165407 IS
165408 
165409 l_component_type              VARCHAR2(80);
165410 l_component_code              VARCHAR2(30);
165411 l_component_type_code         VARCHAR2(1);
165412 l_component_appl_id           INTEGER;
165413 l_amb_context_code            VARCHAR2(30);
165414 l_entity_code                 VARCHAR2(30);
165415 l_event_class_code            VARCHAR2(30);
165416 l_ae_header_id                NUMBER;
165417 l_event_type_code             VARCHAR2(30);
165418 l_line_definition_code        VARCHAR2(30);
165419 l_line_definition_owner_code  VARCHAR2(1);
165420 --
165421 -- adr variables
165422 l_segment                     VARCHAR2(30);
165423 l_ccid                        NUMBER;
165424 l_adr_transaction_coa_id      NUMBER;
165425 l_adr_accounting_coa_id       NUMBER;
165426 l_adr_flexfield_segment_code  VARCHAR2(30);
165427 l_adr_flex_value_set_id       NUMBER;
165428 l_adr_value_type_code         VARCHAR2(30);
165429 l_adr_value_combination_id    NUMBER;
165430 l_adr_value_segment_code      VARCHAR2(30);
165431 
165432 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
165433 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
165434 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
165435 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
165436 
165437 -- 4262811 Variables ------------------------------------------------------------------------------------------
165438 l_entered_amt_idx             NUMBER;
165439 l_accted_amt_idx              NUMBER;
165440 l_acc_rev_flag                VARCHAR2(1);
165441 l_accrual_line_num            NUMBER;
165442 l_tmp_amt                     NUMBER;
165443 l_acc_rev_natural_side_code   VARCHAR2(1);
165444 
165445 l_num_entries                 NUMBER;
165446 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
165447 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
165448 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
165449 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
165450 l_recog_line_1                NUMBER;
165451 l_recog_line_2                NUMBER;
165452 
165453 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
165454 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
165455 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
165456 
165457 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
165458 
165459 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
165460 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
165461 
165462 ---------------------------------------------------------------------------------------------------------------
165463 
165464 
165465 --
165466 -- bulk performance
165467 --
165468 l_balance_type_code           VARCHAR2(1);
165469 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
165470 l_log_module                  VARCHAR2(240);
165471 
165472 --
165473 -- Upgrade strategy
165474 --
165475 l_actual_upg_option           VARCHAR2(1);
165476 l_enc_upg_option           VARCHAR2(1);
165477 
165478 --
165479 BEGIN
165480 --
165481 IF g_log_enabled THEN
165485 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
165482       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_267';
165483 END IF;
165484 --
165486 
165487       trace
165488          (p_msg      => 'BEGIN of AcctLineType_267'
165489          ,p_level    => C_LEVEL_PROCEDURE
165490          ,p_module   => l_log_module);
165491 
165492 END IF;
165493 --
165494 l_component_type             := 'AMB_JLT';
165495 l_component_code             := 'AP_TAX_INV_PRICE_VAR_DM';
165496 l_component_type_code        := 'S';
165497 l_component_appl_id          :=  200;
165498 l_amb_context_code           := 'DEFAULT';
165499 l_entity_code                := 'AP_INVOICES';
165500 l_event_class_code           := 'DEBIT MEMOS';
165501 l_event_type_code            := 'DEBIT MEMOS_ALL';
165502 l_line_definition_owner_code := 'S';
165503 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
165504 --
165505 l_balance_type_code          := 'A';
165506 l_segment                     := NULL;
165507 l_ccid                        := NULL;
165508 l_adr_transaction_coa_id      := NULL;
165509 l_adr_accounting_coa_id       := NULL;
165510 l_adr_flexfield_segment_code  := NULL;
165511 l_adr_flex_value_set_id       := NULL;
165512 l_adr_value_type_code         := NULL;
165513 l_adr_value_combination_id    := NULL;
165514 l_adr_value_segment_code      := NULL;
165515 
165516 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
165517 l_bflow_class_code           := '';    -- 4219869 Business Flow
165518 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
165519 l_budgetary_control_flag     := 'N';
165520 
165521 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
165522 l_bflow_applied_to_amt       := NULL; -- 5132302
165523 l_entered_amt_idx            := NULL;          -- 4262811
165524 l_accted_amt_idx             := NULL;          -- 4262811
165525 l_acc_rev_flag               := NULL;          -- 4262811
165526 l_accrual_line_num           := NULL;          -- 4262811
165527 l_tmp_amt                    := NULL;          -- 4262811
165528 --
165529  
165530 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
165531     l_balance_type_code <> 'B' THEN
165532 IF NVL(p_source_21,'
165533 ') =  'TIPV' AND 
165534 NVL(p_source_84,'
165535 ') =  'Y'
165536  THEN 
165537 
165538    --
165539    XLA_AE_LINES_PKG.SetNewLine;
165540 
165541    p_balance_type_code          := l_balance_type_code;
165542    -- set the flag so later we will know whether the gain loss line needs to be created
165543    
165544    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
165545      p_actual_flag :='A';
165546    END IF;
165547 
165548    --
165549    -- bulk performance
165550    --
165551    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
165552                                       p_header_num   => 0); -- 4262811
165553    --
165554    -- set accounting line options
165555    --
165556    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
165557            p_natural_side_code          => 'D'
165558          , p_gain_or_loss_flag          => 'N'
165559          , p_gl_transfer_mode_code      => 'S'
165560          , p_acct_entry_type_code       => 'A'
165561          , p_switch_side_flag           => 'Y'
165562          , p_merge_duplicate_code       => 'A'
165563          );
165564    --
165565    l_acc_rev_natural_side_code := 'C';  -- 4262811
165566    -- 
165567    --
165568    -- set accounting line type info
165569    --
165570    xla_ae_lines_pkg.SetAcctLineType
165571       (p_component_type             => l_component_type
165572       ,p_event_type_code            => l_event_type_code
165573       ,p_line_definition_owner_code => l_line_definition_owner_code
165577       ,p_accounting_line_appl_id    => l_component_appl_id
165574       ,p_line_definition_code       => l_line_definition_code
165575       ,p_accounting_line_code       => l_component_code
165576       ,p_accounting_line_type_code  => l_component_type_code
165578       ,p_amb_context_code           => l_amb_context_code
165579       ,p_entity_code                => l_entity_code
165580       ,p_event_class_code           => l_event_class_code);
165581    --
165582    -- set accounting class
165583    --
165584    xla_ae_lines_pkg.SetAcctClass(
165585            p_accounting_class_code  => 'TIPV'
165586          , p_ae_header_id           => l_ae_header_id
165587          );
165588 
165589    --
165590    -- set rounding class
165591    --
165592    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
165593                       'TIPV';
165594 
165595    --
165596    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
165597    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
165598    --
165599    -- bulk performance
165600    --
165601    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
165602 
165603    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
165604       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
165605 
165606    -- 4955764
165607    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
165608       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
165609 
165610    -- 4458381 Public Sector Enh
165611    
165612    --
165613    -- set accounting attributes for the line type
165614    --
165615    l_entered_amt_idx := 23;
165616    l_accted_amt_idx  := 28;
165617    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
165618    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
165619    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
165620    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
165621    l_rec_acct_attrs.array_num_value(2)  := 
165622 xla_ae_sources_pkg.GetSystemSourceNum(
165623    p_source_code           => 'XLA_EVENT_APPL_ID'
165624  , p_source_type_code      => 'Y'
165625  , p_source_application_id =>  602
165626 );
165627    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
165628    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
165629    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
165630    l_rec_acct_attrs.array_char_value(4)  := 
165631 xla_ae_sources_pkg.GetSystemSourceChar(
165632    p_source_code           => 'XLA_ENTITY_CODE'
165633  , p_source_type_code      => 'Y'
165634  , p_source_application_id =>  602
165635 );
165636    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
165637    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
165638    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
165639    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
165640    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
165641    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
165642    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
165643    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
165644    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
165645    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
165646    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
165647    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
165648    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
165649    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
165650    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
165651    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
165652    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
165653    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
165654    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
165655    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
165656    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
165657    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
165658    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
165659    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
165660    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
165664    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
165661    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
165662    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
165663    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
165665    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
165666    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
165667    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
165668    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
165669    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
165670    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
165671    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
165672    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
165673    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
165674    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
165675    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
165676    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
165677    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
165678    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
165679    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
165680    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
165681    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
165682    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
165683    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
165684    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
165685    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
165686    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
165687    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
165688    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
165689    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
165690    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
165691    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
165692    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
165693    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
165694    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
165695    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
165696    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
165697    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
165698    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
165699    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
165700    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
165701    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
165702    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
165703    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
165704    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
165705    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
165706    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
165707    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
165708    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
165709    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
165710    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
165711    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
165712 
165713    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
165714    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
165715 
165716    ---------------------------------------------------------------------------------------------------------------
165717    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
165718    ---------------------------------------------------------------------------------------------------------------
165719    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
165720 
165721    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
165722    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
165723 
165724    IF xla_accounting_cache_pkg.GetValueChar
165725          (p_source_code         => 'LEDGER_CATEGORY_CODE'
165726          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
165727    AND l_bflow_method_code = 'PRIOR_ENTRY'
165728 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
165729    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
165730          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
165731        )
165732    THEN
165733          xla_ae_lines_pkg.BflowUpgEntry
165734            (p_business_method_code    => l_bflow_method_code
165735            ,p_business_class_code     => l_bflow_class_code
165736            ,p_balance_type            => l_balance_type_code);
165737    ELSE
165738       NULL;
165739 -- No business flow processing for business flow method of NONE.
165740    END IF;
165741 
165742    --
165743    -- call analytical criteria
165744    --
165745    
165746    --
165747    -- call description
165748    --
165749    
165750 xla_ae_lines_pkg.SetLineDescription(
165751    p_ae_header_id => l_ae_header_id
165752   ,p_description  => Description_2 (
165753      p_application_id         => p_application_id
165754    , p_ae_header_id           => l_ae_header_id 
165755 , p_source_1 => p_source_1
165756    )
165757 );
165758 
165759 
165760    --
165761    -- call ADRs
165762    -- Bug 4922099
165763    --
165764    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
165765         (NVL(l_actual_upg_option, 'N') = 'O') OR
165766         (NVL(l_enc_upg_option, 'N') = 'O')
165767       )
165771    --
165768    THEN
165769    NULL;
165770    --
165772    
165773   l_ccid := AcctDerRule_32(
165774            p_application_id           => p_application_id
165775          , p_ae_header_id             => l_ae_header_id 
165776 , p_source_18 => p_source_18
165777          , x_transaction_coa_id       => l_adr_transaction_coa_id
165778          , x_accounting_coa_id        => l_adr_accounting_coa_id
165779          , x_value_type_code          => l_adr_value_type_code
165780          , p_side                     => 'NA'
165781    );
165782 
165783    xla_ae_lines_pkg.set_ccid(
165784     p_code_combination_id          => l_ccid
165785   , p_value_type_code              => l_adr_value_type_code
165786   , p_transaction_coa_id           => l_adr_transaction_coa_id
165787   , p_accounting_coa_id            => l_adr_accounting_coa_id
165788   , p_adr_code                     => 'AP_INVOICE_DIST'
165789   , p_adr_type_code                => 'S'
165790   , p_component_type               => l_component_type
165791   , p_component_code               => l_component_code
165792   , p_component_type_code          => l_component_type_code
165793   , p_component_appl_id            => l_component_appl_id
165794   , p_amb_context_code             => l_amb_context_code
165795   , p_side                         => 'NA'
165796   );
165797 
165798 
165799    --
165800    --
165801    END IF;
165802    --
165803    -- Bug 4922099
165804    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
165805           (NVL(l_enc_upg_option, 'N') = 'O')
165806         ) AND
165807         (l_bflow_method_code = 'PRIOR_ENTRY')
165808       )
165809    THEN
165810       IF
165811       --
165812       1 = 2
165813       --
165814       THEN
165815       xla_accounting_err_pkg.build_message
165816                                     (p_appli_s_name            => 'XLA'
165817                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
165818                                     ,p_token_1                 => 'LINE_NUMBER'
165819                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
165820                                     ,p_token_2                 => 'LINE_TYPE_NAME'
165821                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
165822                                                                              l_component_type
165823                                                                             ,l_component_code
165824                                                                             ,l_component_type_code
165825                                                                             ,l_component_appl_id
165826                                                                             ,l_amb_context_code
165827                                                                             ,l_entity_code
165828                                                                             ,l_event_class_code
165829                                                                            )
165830                                     ,p_token_3                 => 'OWNER'
165831                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
165832                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
165833                                                                           ,p_lookup_code    => l_component_type_code
165834                                                                          )
165835                                     ,p_token_4                 => 'PRODUCT_NAME'
165836                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
165837                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
165838                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
165839                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
165840                                     ,p_ae_header_id            =>  NULL
165841                                        );
165842 
165843         IF (C_LEVEL_ERROR>= g_log_level) THEN
165844                  trace
165845                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
165846                       ,p_level    => C_LEVEL_ERROR
165847                       ,p_module   => l_log_module);
165848         END IF;
165849       END IF;
165850    END IF;
165851    --
165852    --
165853    ------------------------------------------------------------------------------------------------
165854    -- 4219869 Business Flow
165855    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
165856    -- Prior Entry.  Currently, the following code is always generated.
165857    ------------------------------------------------------------------------------------------------
165858    XLA_AE_LINES_PKG.ValidateCurrentLine;
165859 
165860    ------------------------------------------------------------------------------------
165861    -- 4219869 Business Flow
165862    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
165863    ------------------------------------------------------------------------------------
165864    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
165865 
165866    ----------------------------------------------------------------------------------
165867    -- 4219869 Business Flow
165868    -- Update journal entry status -- Need to generate this within IF <condition>
165869    ----------------------------------------------------------------------------------
165870    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
165871          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
165872          ,p_balance_type_code => l_balance_type_code
165873          );
165874 
165878    BEGIN
165875    -------------------------------------------------------------------------------------------
165876    -- 4262811 - Generate the Accrual Reversal lines
165877    -------------------------------------------------------------------------------------------
165879       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
165880                               (g_array_event(p_event_id).array_value_num('header_index'));
165881       IF l_acc_rev_flag IS NULL THEN
165882          l_acc_rev_flag := 'N';
165883       END IF;
165884    EXCEPTION
165885       WHEN OTHERS THEN
165886          l_acc_rev_flag := 'N';
165887    END;
165888    --
165889    IF (l_acc_rev_flag = 'Y') THEN
165890 
165891        -- 4645092  ------------------------------------------------------------------------------
165892        -- To allow MPA report to determine if it should generate report process
165893        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
165894        ------------------------------------------------------------------------------------------
165895 
165896        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
165897        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
165898    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
165899    -- call ADRs
165900    -- Bug 4922099
165901    --
165902    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
165903         (NVL(l_actual_upg_option, 'N') = 'O') OR
165904         (NVL(l_enc_upg_option, 'N') = 'O')
165905       )
165906    THEN
165907    NULL;
165908    --
165909    --
165910    
165911   l_ccid := AcctDerRule_32(
165912            p_application_id           => p_application_id
165913          , p_ae_header_id             => l_ae_header_id 
165914 , p_source_18 => p_source_18
165915          , x_transaction_coa_id       => l_adr_transaction_coa_id
165916          , x_accounting_coa_id        => l_adr_accounting_coa_id
165917          , x_value_type_code          => l_adr_value_type_code
165918          , p_side                     => 'NA'
165919    );
165920 
165921    xla_ae_lines_pkg.set_ccid(
165922     p_code_combination_id          => l_ccid
165923   , p_value_type_code              => l_adr_value_type_code
165924   , p_transaction_coa_id           => l_adr_transaction_coa_id
165925   , p_accounting_coa_id            => l_adr_accounting_coa_id
165926   , p_adr_code                     => 'AP_INVOICE_DIST'
165927   , p_adr_type_code                => 'S'
165928   , p_component_type               => l_component_type
165929   , p_component_code               => l_component_code
165930   , p_component_type_code          => l_component_type_code
165931   , p_component_appl_id            => l_component_appl_id
165932   , p_amb_context_code             => l_amb_context_code
165933   , p_side                         => 'NA'
165934   );
165935 
165936 
165937    --
165938    --
165939    END IF;
165940 
165941        --
165942        -- Update the line information that should be overwritten
165943        --
165944        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
165945                                          p_header_num   => 1);
165946        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
165947 
165948        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
165949 
165950        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
165951           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
165952        END IF;
165953 
165954       --
165955       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
165956       --
165957       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
165958           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
165959       ELSE
165960           ---------------------------------------------------------------------------------------------------
165961           -- 4262811a Switch Sign
165962           ---------------------------------------------------------------------------------------------------
165963           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
165964           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
165965                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
165966           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
165967                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
165968           -- 5132302
165969           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
165970                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
165971 
165972       END IF;
165973 
165974       -- 4955764
165975       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
165976       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
165977 
165978 
165979       XLA_AE_LINES_PKG.ValidateCurrentLine;
165980       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
165981 
165982       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
165983                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
165984                ,p_balance_type_code => l_balance_type_code);
165985 
165986    END IF;
165987 
165988    -----------------------------------------------------------------------------------------
165989    -- 4262811 Multiperiod Accounting
165993 
165990    -----------------------------------------------------------------------------------------
165991      -- No MPA option is assigned.
165992 
165994 END IF;
165995 END IF;
165996 --
165997 
165998 --
165999 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
166000    trace
166001       (p_msg      => 'END of AcctLineType_267'
166002       ,p_level    => C_LEVEL_PROCEDURE
166003       ,p_module   => l_log_module);
166004 END IF;
166005 --
166006 EXCEPTION
166007   WHEN xla_exceptions_pkg.application_exception THEN
166008       RAISE;
166009   WHEN OTHERS THEN
166010        xla_exceptions_pkg.raise_message
166011            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_267');
166012 END AcctLineType_267;
166013 --
166014 
166015 ---------------------------------------
166016 --
166017 -- PRIVATE FUNCTION
166018 --         AcctLineType_268
166019 --
166020 ---------------------------------------
166021 PROCEDURE AcctLineType_268 (
166022   p_application_id        IN NUMBER
166023  ,p_event_id              IN NUMBER
166024  ,p_calculate_acctd_flag  IN VARCHAR2
166025  ,p_calculate_g_l_flag    IN VARCHAR2
166026  ,p_actual_flag           IN OUT VARCHAR2
166027  ,p_balance_type_code     OUT VARCHAR2
166028  ,p_gain_or_loss_ref      OUT VARCHAR2
166029  
166030 --Invoice Distribution Type
166031  , p_source_21            IN VARCHAR2
166032  , p_source_21_meaning    IN VARCHAR2
166033 --Accounting Reversal Indicator
166034  , p_source_41            IN VARCHAR2
166035 --Distribution Link Type
166036  , p_source_43            IN VARCHAR2
166037 --Allocation to Main Distribution Identifier
166038  , p_source_45            IN NUMBER
166039 --Invoice Identifier
166040  , p_source_46            IN NUMBER
166041 --Invoice Distribution Identifier
166042  , p_source_52            IN NUMBER
166043 --Payables Encumbrance Upgrade Credit Account
166044  , p_source_53            IN NUMBER
166045 --Payables Encumbrance Upgrade Credit Amount
166046  , p_source_54            IN NUMBER
166047 --Invoice Currency Code
166048  , p_source_55            IN VARCHAR2
166049 --Payables Encumbrance Upgrade Credit Base Amount
166050  , p_source_56            IN NUMBER
166051 --Payables Encumbrance Upgrade Debit Account
166052  , p_source_57            IN NUMBER
166053 --Payables Encumbrance Upgrade Debit Amount
166054  , p_source_58            IN NUMBER
166055 --Payables Encumbrance Upgrade Debit Base Amount
166056  , p_source_59            IN NUMBER
166057 --Payables Encumbrance Upgrade Option
166058  , p_source_60            IN VARCHAR2
166059 --Deferred Accounting End Date
166060  , p_source_65            IN DATE
166061 --Deferred Accounting Option
166062  , p_source_66            IN VARCHAR2
166063 --Deferred Accounting Start Date
166064  , p_source_67            IN DATE
166065 --Override Accounted Amount Indicator
166066  , p_source_68            IN VARCHAR2
166067  , p_source_68_meaning    IN VARCHAR2
166068 --Third Party Type
166069  , p_source_71            IN VARCHAR2
166070 --Parent Reversal Identifier
166071  , p_source_72            IN NUMBER
166072 --Invoice Distribution Tax Line Identifier
166073  , p_source_74            IN NUMBER
166074 --Invoice Distribution Tax Distribution Identifier from Tax
166075  , p_source_75            IN NUMBER
166076 --Invoice Distribution Summary Tax Line Identifier
166077  , p_source_76            IN NUMBER
166078 --Payables Upgrade Credit Encumbrance Type Identifier
166079  , p_source_77            IN NUMBER
166080 --Payables Upgrade Debit Encumbrance Type Identifier
166081  , p_source_78            IN NUMBER
166082 --Business Flow Accounts Payable Application Identifier
166083  , p_source_79            IN NUMBER
166084 --Business Flow Invoice Distribution Type
166085  , p_source_80            IN VARCHAR2
166086 --Business Flow Invoice Entity Code
166087  , p_source_81            IN VARCHAR2
166091  , p_source_83            IN NUMBER
166088 --Business Flow Invoice Distribution Identifier
166089  , p_source_82            IN NUMBER
166090 --Business Flow Invoice Identifier
166092 --Purchasing Encumbrance Option
166093  , p_source_86            IN VARCHAR2
166094  , p_source_86_meaning    IN VARCHAR2
166095 --Invoice Encumbered Option
166096  , p_source_87            IN VARCHAR2
166097  , p_source_87_meaning    IN VARCHAR2
166098 --Invoice Distribution Encumbrance Amount
166099  , p_source_143            IN NUMBER
166100 --Invoice Distribution Encumbrance Ledger Amount
166101  , p_source_144            IN NUMBER
166102 )
166103 IS
166104 
166105 l_component_type              VARCHAR2(80);
166106 l_component_code              VARCHAR2(30);
166107 l_component_type_code         VARCHAR2(1);
166108 l_component_appl_id           INTEGER;
166109 l_amb_context_code            VARCHAR2(30);
166110 l_entity_code                 VARCHAR2(30);
166111 l_event_class_code            VARCHAR2(30);
166112 l_ae_header_id                NUMBER;
166113 l_event_type_code             VARCHAR2(30);
166117 -- adr variables
166114 l_line_definition_code        VARCHAR2(30);
166115 l_line_definition_owner_code  VARCHAR2(1);
166116 --
166118 l_segment                     VARCHAR2(30);
166119 l_ccid                        NUMBER;
166120 l_adr_transaction_coa_id      NUMBER;
166121 l_adr_accounting_coa_id       NUMBER;
166122 l_adr_flexfield_segment_code  VARCHAR2(30);
166123 l_adr_flex_value_set_id       NUMBER;
166124 l_adr_value_type_code         VARCHAR2(30);
166125 l_adr_value_combination_id    NUMBER;
166126 l_adr_value_segment_code      VARCHAR2(30);
166127 
166128 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
166129 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
166130 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
166131 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
166132 
166133 -- 4262811 Variables ------------------------------------------------------------------------------------------
166134 l_entered_amt_idx             NUMBER;
166135 l_accted_amt_idx              NUMBER;
166136 l_acc_rev_flag                VARCHAR2(1);
166137 l_accrual_line_num            NUMBER;
166138 l_tmp_amt                     NUMBER;
166139 l_acc_rev_natural_side_code   VARCHAR2(1);
166140 
166141 l_num_entries                 NUMBER;
166142 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
166143 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
166144 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
166145 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
166146 l_recog_line_1                NUMBER;
166147 l_recog_line_2                NUMBER;
166148 
166149 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
166150 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
166151 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
166152 
166153 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
166154 
166155 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
166156 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
166157 
166158 ---------------------------------------------------------------------------------------------------------------
166159 
166160 
166161 --
166162 -- bulk performance
166163 --
166164 l_balance_type_code           VARCHAR2(1);
166165 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
166166 l_log_module                  VARCHAR2(240);
166167 
166168 --
166169 -- Upgrade strategy
166170 --
166171 l_actual_upg_option           VARCHAR2(1);
166172 l_enc_upg_option           VARCHAR2(1);
166173 
166174 --
166175 BEGIN
166176 --
166177 IF g_log_enabled THEN
166178       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_268';
166179 END IF;
166180 --
166181 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
166182 
166183       trace
166184          (p_msg      => 'BEGIN of AcctLineType_268'
166185          ,p_level    => C_LEVEL_PROCEDURE
166186          ,p_module   => l_log_module);
166187 
166188 END IF;
166189 --
166190 l_component_type             := 'AMB_JLT';
166191 l_component_code             := 'AP_TAX_INV_PRICE_VAR_DM_ENC';
166192 l_component_type_code        := 'S';
166193 l_component_appl_id          :=  200;
166194 l_amb_context_code           := 'DEFAULT';
166195 l_entity_code                := 'AP_INVOICES';
166196 l_event_class_code           := 'DEBIT MEMOS';
166197 l_event_type_code            := 'DEBIT MEMOS_ALL';
166198 l_line_definition_owner_code := 'S';
166199 l_line_definition_code       := 'ENC_REV_DM_ALL';
166200 --
166204 l_adr_transaction_coa_id      := NULL;
166201 l_balance_type_code          := 'E';
166202 l_segment                     := NULL;
166203 l_ccid                        := NULL;
166205 l_adr_accounting_coa_id       := NULL;
166206 l_adr_flexfield_segment_code  := NULL;
166207 l_adr_flex_value_set_id       := NULL;
166208 l_adr_value_type_code         := NULL;
166209 l_adr_value_combination_id    := NULL;
166210 l_adr_value_segment_code      := NULL;
166211 
166212 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
166213 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
166214 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
166215 l_budgetary_control_flag     := 'N';
166216 
166217 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
166218 l_bflow_applied_to_amt       := NULL; -- 5132302
166219 l_entered_amt_idx            := NULL;          -- 4262811
166220 l_accted_amt_idx             := NULL;          -- 4262811
166221 l_acc_rev_flag               := NULL;          -- 4262811
166222 l_accrual_line_num           := NULL;          -- 4262811
166223 l_tmp_amt                    := NULL;          -- 4262811
166224 --
166225  
166226 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
166227     l_balance_type_code <> 'B' THEN
166228 IF NVL(p_source_21,'
166229 ') =  'TIPV' AND 
166230 NVL(p_source_86,'
166231 ') =  'Y' AND 
166232 NVL(p_source_87,'
166233 ') =  'Y'
166234  THEN 
166235 
166236    --
166237    XLA_AE_LINES_PKG.SetNewLine;
166238 
166239    p_balance_type_code          := l_balance_type_code;
166240    -- set the flag so later we will know whether the gain loss line needs to be created
166241    
166242    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
166243      p_actual_flag :='A';
166244    END IF;
166245 
166246    --
166247    -- bulk performance
166248    --
166249    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
166250                                       p_header_num   => 0); -- 4262811
166251    --
166252    -- set accounting line options
166253    --
166254    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
166255            p_natural_side_code          => 'C'
166256          , p_gain_or_loss_flag          => 'N'
166257          , p_gl_transfer_mode_code      => 'S'
166258          , p_acct_entry_type_code       => 'E'
166259          , p_switch_side_flag           => 'Y'
166260          , p_merge_duplicate_code       => 'A'
166261          );
166262    --
166263    l_acc_rev_natural_side_code := 'D';  -- 4262811
166264    -- 
166265    --
166266    -- set accounting line type info
166267    --
166268    xla_ae_lines_pkg.SetAcctLineType
166269       (p_component_type             => l_component_type
166270       ,p_event_type_code            => l_event_type_code
166271       ,p_line_definition_owner_code => l_line_definition_owner_code
166272       ,p_line_definition_code       => l_line_definition_code
166276       ,p_amb_context_code           => l_amb_context_code
166273       ,p_accounting_line_code       => l_component_code
166274       ,p_accounting_line_type_code  => l_component_type_code
166275       ,p_accounting_line_appl_id    => l_component_appl_id
166277       ,p_entity_code                => l_entity_code
166278       ,p_event_class_code           => l_event_class_code);
166279    --
166280    -- set accounting class
166281    --
166282    xla_ae_lines_pkg.SetAcctClass(
166283            p_accounting_class_code  => 'TIPV'
166284          , p_ae_header_id           => l_ae_header_id
166285          );
166286 
166287    --
166288    -- set rounding class
166289    --
166290    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
166291                       'TIPV';
166292 
166293    --
166294    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
166295    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
166296    --
166297    -- bulk performance
166298    --
166299    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
166300 
166301    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
166302       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
166303 
166304    -- 4955764
166305    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
166306       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
166307 
166308    -- 4458381 Public Sector Enh
166309    
166310    --
166311    -- set accounting attributes for the line type
166312    --
166313    l_entered_amt_idx := 23;
166317    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
166314    l_accted_amt_idx  := 25;
166315    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
166316    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
166318    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
166319    l_rec_acct_attrs.array_num_value(2)  := 
166320 xla_ae_sources_pkg.GetSystemSourceNum(
166321    p_source_code           => 'XLA_EVENT_APPL_ID'
166322  , p_source_type_code      => 'Y'
166323  , p_source_application_id =>  602
166324 );
166325    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
166326    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
166327    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
166328    l_rec_acct_attrs.array_char_value(4)  := 
166329 xla_ae_sources_pkg.GetSystemSourceChar(
166330    p_source_code           => 'XLA_ENTITY_CODE'
166331  , p_source_type_code      => 'Y'
166332  , p_source_application_id =>  602
166333 );
166334    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
166335    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
166336    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
166337    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
166338    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
166339    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
166340    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
166341    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
166342    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
166343    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
166344    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
166345    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
166346    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
166347    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
166348    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
166349    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
166350    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
166351    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
166352    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
166353    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
166354    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
166355    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
166356    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
166357    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
166358    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
166359    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
166360    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
166361    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
166362    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
166363    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
166364    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
166365    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
166366    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
166367    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
166368    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
166369    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
166370    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
166371    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
166372    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
166373    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
166374    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
166375    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
166376    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
166377    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
166378    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
166379    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
166380    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
166381    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
166382    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
166383    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
166384    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
166385    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
166386    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
166387    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
166388    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
166389    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
166390    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
166391    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
166392    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
166396    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
166393    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
166394    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
166395    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
166397    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
166398    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
166399    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
166400 
166401    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
166402    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
166403 
166404    ---------------------------------------------------------------------------------------------------------------
166405    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
166406    ---------------------------------------------------------------------------------------------------------------
166407    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
166408 
166409    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
166410    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
166411 
166412    IF xla_accounting_cache_pkg.GetValueChar
166413          (p_source_code         => 'LEDGER_CATEGORY_CODE'
166414          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
166415    AND l_bflow_method_code = 'PRIOR_ENTRY'
166416 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
166417    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
166418          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
166419        )
166420    THEN
166421          xla_ae_lines_pkg.BflowUpgEntry
166422            (p_business_method_code    => l_bflow_method_code
166423            ,p_business_class_code     => l_bflow_class_code
166424            ,p_balance_type            => l_balance_type_code);
166425    ELSE
166426       NULL;
166427 XLA_AE_LINES_PKG.business_flow_validation(
166428                                 p_business_method_code     => l_bflow_method_code
166429                                ,p_business_class_code      => l_bflow_class_code
166430                                ,p_inherit_description_flag => l_inherit_desc_flag);
166431    END IF;
166432 
166433    --
166434    -- call analytical criteria
166435    --
166436    -- Inherited Analytical Criteria for business flow method of Prior Entry.
166437    --
166438    -- call description
166439    --
166440    -- No description or it is inherited.
166441    --
166442    -- call ADRs
166443    -- Bug 4922099
166444    --
166445    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
166446         (NVL(l_actual_upg_option, 'N') = 'O') OR
166447         (NVL(l_enc_upg_option, 'N') = 'O')
166448       )
166449    THEN
166450    NULL;
166451    --
166452    --
166453    
166454    --
166455    --
166456    END IF;
166457    --
166458    -- Bug 4922099
166459    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
166460           (NVL(l_enc_upg_option, 'N') = 'O')
166461         ) AND
166462         (l_bflow_method_code = 'PRIOR_ENTRY')
166463       )
166464    THEN
166465       IF
166466       --
166467       1 = 1
166468       --
166469       THEN
166470       xla_accounting_err_pkg.build_message
166471                                     (p_appli_s_name            => 'XLA'
166472                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
166473                                     ,p_token_1                 => 'LINE_NUMBER'
166474                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
166475                                     ,p_token_2                 => 'LINE_TYPE_NAME'
166476                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
166477                                                                              l_component_type
166478                                                                             ,l_component_code
166479                                                                             ,l_component_type_code
166480                                                                             ,l_component_appl_id
166481                                                                             ,l_amb_context_code
166482                                                                             ,l_entity_code
166483                                                                             ,l_event_class_code
166484                                                                            )
166485                                     ,p_token_3                 => 'OWNER'
166489                                                                          )
166486                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
166487                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
166488                                                                           ,p_lookup_code    => l_component_type_code
166490                                     ,p_token_4                 => 'PRODUCT_NAME'
166491                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
166492                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
166493                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
166494                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
166495                                     ,p_ae_header_id            =>  NULL
166496                                        );
166497 
166498         IF (C_LEVEL_ERROR>= g_log_level) THEN
166499                  trace
166500                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
166501                       ,p_level    => C_LEVEL_ERROR
166502                       ,p_module   => l_log_module);
166503         END IF;
166504       END IF;
166505    END IF;
166506    --
166507    --
166508    ------------------------------------------------------------------------------------------------
166509    -- 4219869 Business Flow
166510    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
166511    -- Prior Entry.  Currently, the following code is always generated.
166512    ------------------------------------------------------------------------------------------------
166513    -- No ValidateCurrentLine for business flow method of Prior Entry
166514 
166515    ------------------------------------------------------------------------------------
166516    -- 4219869 Business Flow
166517    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
166518    ------------------------------------------------------------------------------------
166519    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
166520 
166521    ----------------------------------------------------------------------------------
166522    -- 4219869 Business Flow
166523    -- Update journal entry status -- Need to generate this within IF <condition>
166524    ----------------------------------------------------------------------------------
166525    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
166526          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
166527          ,p_balance_type_code => l_balance_type_code
166528          );
166529 
166530    -------------------------------------------------------------------------------------------
166531    -- 4262811 - Generate the Accrual Reversal lines
166532    -------------------------------------------------------------------------------------------
166533    BEGIN
166534       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
166535                               (g_array_event(p_event_id).array_value_num('header_index'));
166536       IF l_acc_rev_flag IS NULL THEN
166537          l_acc_rev_flag := 'N';
166538       END IF;
166539    EXCEPTION
166540       WHEN OTHERS THEN
166541          l_acc_rev_flag := 'N';
166542    END;
166543    --
166544    IF (l_acc_rev_flag = 'Y') THEN
166545 
166546        -- 4645092  ------------------------------------------------------------------------------
166547        -- To allow MPA report to determine if it should generate report process
166548        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
166549        ------------------------------------------------------------------------------------------
166550 
166551        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
166552        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
166553    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
166554    -- call ADRs
166555    -- Bug 4922099
166556    --
166557    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
166558         (NVL(l_actual_upg_option, 'N') = 'O') OR
166559         (NVL(l_enc_upg_option, 'N') = 'O')
166560       )
166561    THEN
166562    NULL;
166563    --
166564    --
166565    
166566    --
166567    --
166568    END IF;
166569 
166570        --
166571        -- Update the line information that should be overwritten
166572        --
166573        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
166574                                          p_header_num   => 1);
166575        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
166576 
166577        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
166578 
166579        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
166580           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
166581        END IF;
166582 
166583       --
166584       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
166585       --
166586       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
166587           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
166588       ELSE
166589           ---------------------------------------------------------------------------------------------------
166590           -- 4262811a Switch Sign
166591           ---------------------------------------------------------------------------------------------------
166595           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
166592           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
166593           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
166594                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
166596                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
166597           -- 5132302
166598           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
166599                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
166600 
166601       END IF;
166602 
166603       -- 4955764
166604       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
166605       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
166606 
166607 
166608       XLA_AE_LINES_PKG.ValidateCurrentLine;
166609       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
166610 
166611       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
166612                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
166613                ,p_balance_type_code => l_balance_type_code);
166614 
166615    END IF;
166616 
166617    -----------------------------------------------------------------------------------------
166618    -- 4262811 Multiperiod Accounting
166619    -----------------------------------------------------------------------------------------
166620      -- No MPA option is assigned.
166621 
166622 
166623 END IF;
166624 END IF;
166625 --
166626 
166627 --
166628 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
166629    trace
166630       (p_msg      => 'END of AcctLineType_268'
166631       ,p_level    => C_LEVEL_PROCEDURE
166632       ,p_module   => l_log_module);
166633 END IF;
166634 --
166635 EXCEPTION
166636   WHEN xla_exceptions_pkg.application_exception THEN
166637       RAISE;
166638   WHEN OTHERS THEN
166639        xla_exceptions_pkg.raise_message
166640            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_268');
166641 END AcctLineType_268;
166642 --
166643 
166644 ---------------------------------------
166645 --
166646 -- PRIVATE FUNCTION
166647 --         AcctLineType_269
166648 --
166649 ---------------------------------------
166650 PROCEDURE AcctLineType_269 (
166651   p_application_id        IN NUMBER
166652  ,p_event_id              IN NUMBER
166653  ,p_calculate_acctd_flag  IN VARCHAR2
166654  ,p_calculate_g_l_flag    IN VARCHAR2
166655  ,p_actual_flag           IN OUT VARCHAR2
166656  ,p_balance_type_code     OUT VARCHAR2
166657  ,p_gain_or_loss_ref      OUT VARCHAR2
166658  
166659 --Invoice Distribution Description
166660  , p_source_1            IN VARCHAR2
166661 --Invoice Distribution Ledger Amount
166662  , p_source_9            IN NUMBER
166663 --Invoice Distribution Account
166664  , p_source_18            IN NUMBER
166665 --Invoice Distribution Type
166666  , p_source_21            IN VARCHAR2
166667  , p_source_21_meaning    IN VARCHAR2
166668 --Accounting Reversal Indicator
166669  , p_source_41            IN VARCHAR2
166670 --Distribution Link Type
166671  , p_source_43            IN VARCHAR2
166672 --Allocation to Main Distribution Identifier
166673  , p_source_45            IN NUMBER
166674 --Invoice Identifier
166675  , p_source_46            IN NUMBER
166676 --Invoice Distribution Identifier
166677  , p_source_52            IN NUMBER
166678 --Payables Encumbrance Upgrade Credit Account
166679  , p_source_53            IN NUMBER
166680 --Payables Encumbrance Upgrade Credit Amount
166681  , p_source_54            IN NUMBER
166682 --Invoice Currency Code
166683  , p_source_55            IN VARCHAR2
166684 --Payables Encumbrance Upgrade Credit Base Amount
166685  , p_source_56            IN NUMBER
166686 --Payables Encumbrance Upgrade Debit Account
166687  , p_source_57            IN NUMBER
166688 --Payables Encumbrance Upgrade Debit Amount
166689  , p_source_58            IN NUMBER
166690 --Payables Encumbrance Upgrade Debit Base Amount
166691  , p_source_59            IN NUMBER
166692 --Payables Encumbrance Upgrade Option
166693  , p_source_60            IN VARCHAR2
166694 --Invoice Distribution Amount
166695  , p_source_61            IN NUMBER
166696 --Deferred Accounting End Date
166697  , p_source_65            IN DATE
166698 --Deferred Accounting Option
166699  , p_source_66            IN VARCHAR2
166700 --Deferred Accounting Start Date
166701  , p_source_67            IN DATE
166702 --Override Accounted Amount Indicator
166703  , p_source_68            IN VARCHAR2
166704  , p_source_68_meaning    IN VARCHAR2
166705 --Invoice Supplier Identifier
166706  , p_source_69            IN NUMBER
166707 --Invoice Supplier Site Identifier
166708  , p_source_70            IN NUMBER
166709 --Third Party Type
166710  , p_source_71            IN VARCHAR2
166711 --Parent Reversal Identifier
166712  , p_source_72            IN NUMBER
166713 --Invoice Distribution Statistical Amount
166714  , p_source_73            IN NUMBER
166715 --Invoice Distribution Tax Line Identifier
166716  , p_source_74            IN NUMBER
166717 --Invoice Distribution Tax Distribution Identifier from Tax
166718  , p_source_75            IN NUMBER
166719 --Invoice Distribution Summary Tax Line Identifier
166720  , p_source_76            IN NUMBER
166721 --Payables Upgrade Credit Encumbrance Type Identifier
166722  , p_source_77            IN NUMBER
166723 --Payables Upgrade Debit Encumbrance Type Identifier
166724  , p_source_78            IN NUMBER
166728  , p_source_80            IN VARCHAR2
166725 --Business Flow Accounts Payable Application Identifier
166726  , p_source_79            IN NUMBER
166727 --Business Flow Invoice Distribution Type
166729 --Business Flow Invoice Entity Code
166730  , p_source_81            IN VARCHAR2
166731 --Business Flow Invoice Distribution Identifier
166732  , p_source_82            IN NUMBER
166733 --Business Flow Invoice Identifier
166734  , p_source_83            IN NUMBER
166735 --Accrue on Receipt Option
166736  , p_source_84            IN VARCHAR2
166737  , p_source_84_meaning    IN VARCHAR2
166738 --Invoice Exchange Date
166739  , p_source_136            IN DATE
166740 --Invoice Exchange Rate
166741  , p_source_137            IN NUMBER
166742 --Invoice Exchange Rate Type
166743  , p_source_138            IN VARCHAR2
166744 )
166745 IS
166746 
166747 l_component_type              VARCHAR2(80);
166748 l_component_code              VARCHAR2(30);
166749 l_component_type_code         VARCHAR2(1);
166750 l_component_appl_id           INTEGER;
166751 l_amb_context_code            VARCHAR2(30);
166752 l_entity_code                 VARCHAR2(30);
166753 l_event_class_code            VARCHAR2(30);
166754 l_ae_header_id                NUMBER;
166755 l_event_type_code             VARCHAR2(30);
166756 l_line_definition_code        VARCHAR2(30);
166757 l_line_definition_owner_code  VARCHAR2(1);
166758 --
166759 -- adr variables
166760 l_segment                     VARCHAR2(30);
166761 l_ccid                        NUMBER;
166762 l_adr_transaction_coa_id      NUMBER;
166763 l_adr_accounting_coa_id       NUMBER;
166764 l_adr_flexfield_segment_code  VARCHAR2(30);
166765 l_adr_flex_value_set_id       NUMBER;
166766 l_adr_value_type_code         VARCHAR2(30);
166767 l_adr_value_combination_id    NUMBER;
166768 l_adr_value_segment_code      VARCHAR2(30);
166769 
166770 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
166771 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
166772 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
166773 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
166774 
166775 -- 4262811 Variables ------------------------------------------------------------------------------------------
166776 l_entered_amt_idx             NUMBER;
166777 l_accted_amt_idx              NUMBER;
166778 l_acc_rev_flag                VARCHAR2(1);
166779 l_accrual_line_num            NUMBER;
166780 l_tmp_amt                     NUMBER;
166781 l_acc_rev_natural_side_code   VARCHAR2(1);
166782 
166783 l_num_entries                 NUMBER;
166784 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
166785 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
166786 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
166787 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
166788 l_recog_line_1                NUMBER;
166789 l_recog_line_2                NUMBER;
166790 
166791 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
166792 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
166793 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
166794 
166795 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
166796 
166797 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
166798 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
166799 
166800 ---------------------------------------------------------------------------------------------------------------
166801 
166802 
166803 --
166804 -- bulk performance
166805 --
166806 l_balance_type_code           VARCHAR2(1);
166807 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
166808 l_log_module                  VARCHAR2(240);
166809 
166810 --
166811 -- Upgrade strategy
166812 --
166813 l_actual_upg_option           VARCHAR2(1);
166814 l_enc_upg_option           VARCHAR2(1);
166815 
166816 --
166817 BEGIN
166818 --
166819 IF g_log_enabled THEN
166820       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_269';
166821 END IF;
166822 --
166823 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
166824 
166825       trace
166826          (p_msg      => 'BEGIN of AcctLineType_269'
166827          ,p_level    => C_LEVEL_PROCEDURE
166828          ,p_module   => l_log_module);
166829 
166830 END IF;
166831 --
166832 l_component_type             := 'AMB_JLT';
166833 l_component_code             := 'AP_TAX_INV_PRICE_VAR_INV';
166834 l_component_type_code        := 'S';
166835 l_component_appl_id          :=  200;
166836 l_amb_context_code           := 'DEFAULT';
166837 l_entity_code                := 'AP_INVOICES';
166838 l_event_class_code           := 'INVOICES';
166839 l_event_type_code            := 'INVOICES_ALL';
166840 l_line_definition_owner_code := 'S';
166841 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
166842 --
166843 l_balance_type_code          := 'A';
166844 l_segment                     := NULL;
166845 l_ccid                        := NULL;
166846 l_adr_transaction_coa_id      := NULL;
166847 l_adr_accounting_coa_id       := NULL;
166848 l_adr_flexfield_segment_code  := NULL;
166849 l_adr_flex_value_set_id       := NULL;
166850 l_adr_value_type_code         := NULL;
166851 l_adr_value_combination_id    := NULL;
166852 l_adr_value_segment_code      := NULL;
166853 
166854 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
166855 l_bflow_class_code           := '';    -- 4219869 Business Flow
166856 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
166857 l_budgetary_control_flag     := 'N';
166858 
166859 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
166863 l_acc_rev_flag               := NULL;          -- 4262811
166860 l_bflow_applied_to_amt       := NULL; -- 5132302
166861 l_entered_amt_idx            := NULL;          -- 4262811
166862 l_accted_amt_idx             := NULL;          -- 4262811
166864 l_accrual_line_num           := NULL;          -- 4262811
166865 l_tmp_amt                    := NULL;          -- 4262811
166866 --
166867  
166868 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
166869     l_balance_type_code <> 'B' THEN
166870 IF NVL(p_source_21,'
166871 ') =  'TIPV' AND 
166872 NVL(p_source_84,'
166873 ') =  'Y'
166874  THEN 
166875 
166876    --
166877    XLA_AE_LINES_PKG.SetNewLine;
166878 
166879    p_balance_type_code          := l_balance_type_code;
166880    -- set the flag so later we will know whether the gain loss line needs to be created
166881    
166882    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
166883      p_actual_flag :='A';
166884    END IF;
166885 
166886    --
166887    -- bulk performance
166888    --
166889    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
166890                                       p_header_num   => 0); -- 4262811
166891    --
166892    -- set accounting line options
166893    --
166894    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
166895            p_natural_side_code          => 'D'
166896          , p_gain_or_loss_flag          => 'N'
166897          , p_gl_transfer_mode_code      => 'S'
166898          , p_acct_entry_type_code       => 'A'
166899          , p_switch_side_flag           => 'Y'
166900          , p_merge_duplicate_code       => 'A'
166901          );
166902    --
166903    l_acc_rev_natural_side_code := 'C';  -- 4262811
166904    -- 
166905    --
166906    -- set accounting line type info
166907    --
166908    xla_ae_lines_pkg.SetAcctLineType
166909       (p_component_type             => l_component_type
166910       ,p_event_type_code            => l_event_type_code
166911       ,p_line_definition_owner_code => l_line_definition_owner_code
166912       ,p_line_definition_code       => l_line_definition_code
166913       ,p_accounting_line_code       => l_component_code
166914       ,p_accounting_line_type_code  => l_component_type_code
166915       ,p_accounting_line_appl_id    => l_component_appl_id
166916       ,p_amb_context_code           => l_amb_context_code
166917       ,p_entity_code                => l_entity_code
166918       ,p_event_class_code           => l_event_class_code);
166919    --
166920    -- set accounting class
166921    --
166922    xla_ae_lines_pkg.SetAcctClass(
166923            p_accounting_class_code  => 'TIPV'
166924          , p_ae_header_id           => l_ae_header_id
166925          );
166926 
166927    --
166928    -- set rounding class
166929    --
166930    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
166931                       'TIPV';
166932 
166933    --
166934    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
166935    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
166936    --
166937    -- bulk performance
166938    --
166939    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
166940 
166941    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
166942       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
166943 
166944    -- 4955764
166945    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
166946       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
166947 
166948    -- 4458381 Public Sector Enh
166949    
166950    --
166951    -- set accounting attributes for the line type
166952    --
166953    l_entered_amt_idx := 24;
166954    l_accted_amt_idx  := 29;
166955    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
166956    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
166957    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
166958    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
166959    l_rec_acct_attrs.array_num_value(2)  := 
166960 xla_ae_sources_pkg.GetSystemSourceNum(
166961    p_source_code           => 'XLA_EVENT_APPL_ID'
166962  , p_source_type_code      => 'Y'
166963  , p_source_application_id =>  602
166964 );
166965    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
166966    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
166967    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
166968    l_rec_acct_attrs.array_char_value(4)  := 
166969 xla_ae_sources_pkg.GetSystemSourceChar(
166970    p_source_code           => 'XLA_ENTITY_CODE'
166971  , p_source_type_code      => 'Y'
166972  , p_source_application_id =>  602
166973 );
166974    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
166975    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
166976    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
166977    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
166978    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
166979    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
166980    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
166981    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
166982    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
166983    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
166984    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
166985    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
166989    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
166986    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
166987    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
166988    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
166990    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
166991    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
166992    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
166993    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
166994    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
166995    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
166996    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
166997    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
166998    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
166999    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
167000    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
167001    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
167002    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
167003    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
167004    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
167005    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
167006    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
167007    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
167008    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
167009    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
167010    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
167011    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
167012    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
167013    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
167014    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
167015    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
167016    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
167017    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
167018    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
167019    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
167020    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
167021    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
167022    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
167023    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
167024    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
167025    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
167026    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
167027    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
167028    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
167029    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
167030    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
167031    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
167032    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
167033    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
167034    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
167035    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
167036    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
167037    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
167038    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
167039    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
167040    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
167041    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
167042    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
167043    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
167044    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
167045    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
167046    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
167047    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
167048    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
167049    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
167050    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
167051    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
167052    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
167053    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
167054 
167055    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
167056    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
167057 
167058    ---------------------------------------------------------------------------------------------------------------
167059    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
167060    ---------------------------------------------------------------------------------------------------------------
167061    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
167062 
167063    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
167064    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
167065 
167066    IF xla_accounting_cache_pkg.GetValueChar
167067          (p_source_code         => 'LEDGER_CATEGORY_CODE'
167068          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
167069    AND l_bflow_method_code = 'PRIOR_ENTRY'
167070 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
167071    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
167072          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
167073        )
167074    THEN
167075          xla_ae_lines_pkg.BflowUpgEntry
167079    ELSE
167076            (p_business_method_code    => l_bflow_method_code
167077            ,p_business_class_code     => l_bflow_class_code
167078            ,p_balance_type            => l_balance_type_code);
167080       NULL;
167081 -- No business flow processing for business flow method of NONE.
167082    END IF;
167083 
167084    --
167085    -- call analytical criteria
167086    --
167087    
167088    --
167089    -- call description
167090    --
167091    
167092 xla_ae_lines_pkg.SetLineDescription(
167093    p_ae_header_id => l_ae_header_id
167094   ,p_description  => Description_2 (
167095      p_application_id         => p_application_id
167096    , p_ae_header_id           => l_ae_header_id 
167097 , p_source_1 => p_source_1
167098    )
167099 );
167100 
167101 
167102    --
167103    -- call ADRs
167104    -- Bug 4922099
167105    --
167106    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
167107         (NVL(l_actual_upg_option, 'N') = 'O') OR
167108         (NVL(l_enc_upg_option, 'N') = 'O')
167109       )
167110    THEN
167111    NULL;
167112    --
167113    --
167114    
167115   l_ccid := AcctDerRule_32(
167116            p_application_id           => p_application_id
167117          , p_ae_header_id             => l_ae_header_id 
167118 , p_source_18 => p_source_18
167119          , x_transaction_coa_id       => l_adr_transaction_coa_id
167120          , x_accounting_coa_id        => l_adr_accounting_coa_id
167121          , x_value_type_code          => l_adr_value_type_code
167122          , p_side                     => 'NA'
167123    );
167124 
167125    xla_ae_lines_pkg.set_ccid(
167126     p_code_combination_id          => l_ccid
167127   , p_value_type_code              => l_adr_value_type_code
167128   , p_transaction_coa_id           => l_adr_transaction_coa_id
167129   , p_accounting_coa_id            => l_adr_accounting_coa_id
167130   , p_adr_code                     => 'AP_INVOICE_DIST'
167131   , p_adr_type_code                => 'S'
167132   , p_component_type               => l_component_type
167133   , p_component_code               => l_component_code
167134   , p_component_type_code          => l_component_type_code
167135   , p_component_appl_id            => l_component_appl_id
167136   , p_amb_context_code             => l_amb_context_code
167137   , p_side                         => 'NA'
167138   );
167139 
167140 
167141    --
167142    --
167143    END IF;
167144    --
167145    -- Bug 4922099
167146    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
167147           (NVL(l_enc_upg_option, 'N') = 'O')
167148         ) AND
167149         (l_bflow_method_code = 'PRIOR_ENTRY')
167150       )
167151    THEN
167152       IF
167153       --
167154       1 = 2
167155       --
167156       THEN
167157       xla_accounting_err_pkg.build_message
167158                                     (p_appli_s_name            => 'XLA'
167159                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
167160                                     ,p_token_1                 => 'LINE_NUMBER'
167161                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
167162                                     ,p_token_2                 => 'LINE_TYPE_NAME'
167163                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
167164                                                                              l_component_type
167165                                                                             ,l_component_code
167166                                                                             ,l_component_type_code
167167                                                                             ,l_component_appl_id
167168                                                                             ,l_amb_context_code
167169                                                                             ,l_entity_code
167170                                                                             ,l_event_class_code
167171                                                                            )
167172                                     ,p_token_3                 => 'OWNER'
167173                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
167174                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
167175                                                                           ,p_lookup_code    => l_component_type_code
167176                                                                          )
167177                                     ,p_token_4                 => 'PRODUCT_NAME'
167178                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
167179                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
167180                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
167181                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
167182                                     ,p_ae_header_id            =>  NULL
167183                                        );
167184 
167185         IF (C_LEVEL_ERROR>= g_log_level) THEN
167186                  trace
167187                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
167188                       ,p_level    => C_LEVEL_ERROR
167189                       ,p_module   => l_log_module);
167190         END IF;
167191       END IF;
167192    END IF;
167193    --
167194    --
167195    ------------------------------------------------------------------------------------------------
167196    -- 4219869 Business Flow
167197    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
167201 
167198    -- Prior Entry.  Currently, the following code is always generated.
167199    ------------------------------------------------------------------------------------------------
167200    XLA_AE_LINES_PKG.ValidateCurrentLine;
167202    ------------------------------------------------------------------------------------
167203    -- 4219869 Business Flow
167204    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
167205    ------------------------------------------------------------------------------------
167206    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
167207 
167208    ----------------------------------------------------------------------------------
167209    -- 4219869 Business Flow
167210    -- Update journal entry status -- Need to generate this within IF <condition>
167211    ----------------------------------------------------------------------------------
167212    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
167213          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
167214          ,p_balance_type_code => l_balance_type_code
167215          );
167216 
167217    -------------------------------------------------------------------------------------------
167218    -- 4262811 - Generate the Accrual Reversal lines
167219    -------------------------------------------------------------------------------------------
167220    BEGIN
167221       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
167222                               (g_array_event(p_event_id).array_value_num('header_index'));
167223       IF l_acc_rev_flag IS NULL THEN
167224          l_acc_rev_flag := 'N';
167225       END IF;
167226    EXCEPTION
167227       WHEN OTHERS THEN
167228          l_acc_rev_flag := 'N';
167229    END;
167230    --
167231    IF (l_acc_rev_flag = 'Y') THEN
167232 
167233        -- 4645092  ------------------------------------------------------------------------------
167234        -- To allow MPA report to determine if it should generate report process
167235        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
167236        ------------------------------------------------------------------------------------------
167237 
167238        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
167239        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
167240    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
167241    -- call ADRs
167242    -- Bug 4922099
167243    --
167244    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
167245         (NVL(l_actual_upg_option, 'N') = 'O') OR
167246         (NVL(l_enc_upg_option, 'N') = 'O')
167247       )
167248    THEN
167249    NULL;
167250    --
167251    --
167252    
167253   l_ccid := AcctDerRule_32(
167254            p_application_id           => p_application_id
167255          , p_ae_header_id             => l_ae_header_id 
167256 , p_source_18 => p_source_18
167257          , x_transaction_coa_id       => l_adr_transaction_coa_id
167258          , x_accounting_coa_id        => l_adr_accounting_coa_id
167259          , x_value_type_code          => l_adr_value_type_code
167260          , p_side                     => 'NA'
167261    );
167262 
167263    xla_ae_lines_pkg.set_ccid(
167264     p_code_combination_id          => l_ccid
167265   , p_value_type_code              => l_adr_value_type_code
167266   , p_transaction_coa_id           => l_adr_transaction_coa_id
167267   , p_accounting_coa_id            => l_adr_accounting_coa_id
167268   , p_adr_code                     => 'AP_INVOICE_DIST'
167269   , p_adr_type_code                => 'S'
167270   , p_component_type               => l_component_type
167271   , p_component_code               => l_component_code
167272   , p_component_type_code          => l_component_type_code
167273   , p_component_appl_id            => l_component_appl_id
167274   , p_amb_context_code             => l_amb_context_code
167275   , p_side                         => 'NA'
167276   );
167277 
167278 
167279    --
167280    --
167281    END IF;
167282 
167283        --
167284        -- Update the line information that should be overwritten
167285        --
167286        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
167287                                          p_header_num   => 1);
167288        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
167289 
167290        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
167291 
167292        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
167293           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
167294        END IF;
167295 
167296       --
167297       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
167298       --
167299       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
167300           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
167301       ELSE
167302           ---------------------------------------------------------------------------------------------------
167303           -- 4262811a Switch Sign
167304           ---------------------------------------------------------------------------------------------------
167305           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
167306           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
167307                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
167308           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
167309                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
167310           -- 5132302
167314       END IF;
167311           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
167312                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
167313 
167315 
167316       -- 4955764
167317       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
167318       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
167319 
167320 
167321       XLA_AE_LINES_PKG.ValidateCurrentLine;
167322       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
167323 
167324       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
167325                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
167326                ,p_balance_type_code => l_balance_type_code);
167327 
167328    END IF;
167329 
167330    -----------------------------------------------------------------------------------------
167331    -- 4262811 Multiperiod Accounting
167332    -----------------------------------------------------------------------------------------
167333      -- No MPA option is assigned.
167334 
167335 
167336 END IF;
167337 END IF;
167338 --
167339 
167340 --
167341 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
167342    trace
167343       (p_msg      => 'END of AcctLineType_269'
167344       ,p_level    => C_LEVEL_PROCEDURE
167345       ,p_module   => l_log_module);
167346 END IF;
167347 --
167348 EXCEPTION
167349   WHEN xla_exceptions_pkg.application_exception THEN
167350       RAISE;
167351   WHEN OTHERS THEN
167352        xla_exceptions_pkg.raise_message
167353            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_269');
167354 END AcctLineType_269;
167355 --
167356 
167357 ---------------------------------------
167358 --
167359 -- PRIVATE FUNCTION
167360 --         AcctLineType_270
167361 --
167362 ---------------------------------------
167363 PROCEDURE AcctLineType_270 (
167364   p_application_id        IN NUMBER
167365  ,p_event_id              IN NUMBER
167366  ,p_calculate_acctd_flag  IN VARCHAR2
167367  ,p_calculate_g_l_flag    IN VARCHAR2
167368  ,p_actual_flag           IN OUT VARCHAR2
167369  ,p_balance_type_code     OUT VARCHAR2
167370  ,p_gain_or_loss_ref      OUT VARCHAR2
167371  
167372 --Invoice Distribution Type
167373  , p_source_21            IN VARCHAR2
167374  , p_source_21_meaning    IN VARCHAR2
167375 --Accounting Reversal Indicator
167376  , p_source_41            IN VARCHAR2
167377 --Distribution Link Type
167378  , p_source_43            IN VARCHAR2
167379 --Allocation to Main Distribution Identifier
167380  , p_source_45            IN NUMBER
167381 --Invoice Identifier
167382  , p_source_46            IN NUMBER
167383 --Invoice Distribution Identifier
167384  , p_source_52            IN NUMBER
167385 --Payables Encumbrance Upgrade Credit Account
167386  , p_source_53            IN NUMBER
167387 --Payables Encumbrance Upgrade Credit Amount
167388  , p_source_54            IN NUMBER
167389 --Invoice Currency Code
167390  , p_source_55            IN VARCHAR2
167391 --Payables Encumbrance Upgrade Credit Base Amount
167392  , p_source_56            IN NUMBER
167393 --Payables Encumbrance Upgrade Debit Account
167394  , p_source_57            IN NUMBER
167395 --Payables Encumbrance Upgrade Debit Amount
167396  , p_source_58            IN NUMBER
167397 --Payables Encumbrance Upgrade Debit Base Amount
167398  , p_source_59            IN NUMBER
167399 --Payables Encumbrance Upgrade Option
167400  , p_source_60            IN VARCHAR2
167401 --Invoice Distribution Amount
167402  , p_source_61            IN NUMBER
167403 --Deferred Accounting End Date
167404  , p_source_65            IN DATE
167405 --Deferred Accounting Option
167406  , p_source_66            IN VARCHAR2
167407 --Deferred Accounting Start Date
167408  , p_source_67            IN DATE
167409 --Override Accounted Amount Indicator
167410  , p_source_68            IN VARCHAR2
167411  , p_source_68_meaning    IN VARCHAR2
167412 --Third Party Type
167413  , p_source_71            IN VARCHAR2
167414 --Parent Reversal Identifier
167415  , p_source_72            IN NUMBER
167416 --Invoice Distribution Statistical Amount
167417  , p_source_73            IN NUMBER
167418 --Invoice Distribution Tax Line Identifier
167419  , p_source_74            IN NUMBER
167420 --Invoice Distribution Tax Distribution Identifier from Tax
167421  , p_source_75            IN NUMBER
167422 --Invoice Distribution Summary Tax Line Identifier
167423  , p_source_76            IN NUMBER
167424 --Payables Upgrade Credit Encumbrance Type Identifier
167425  , p_source_77            IN NUMBER
167426 --Payables Upgrade Debit Encumbrance Type Identifier
167427  , p_source_78            IN NUMBER
167428 --Business Flow Accounts Payable Application Identifier
167429  , p_source_79            IN NUMBER
167430 --Business Flow Invoice Distribution Type
167431  , p_source_80            IN VARCHAR2
167432 --Business Flow Invoice Entity Code
167433  , p_source_81            IN VARCHAR2
167434 --Business Flow Invoice Distribution Identifier
167435  , p_source_82            IN NUMBER
167436 --Business Flow Invoice Identifier
167437  , p_source_83            IN NUMBER
167438 --Purchasing Encumbrance Option
167439  , p_source_86            IN VARCHAR2
167440  , p_source_86_meaning    IN VARCHAR2
167441 --Invoice Encumbered Option
167442  , p_source_87            IN VARCHAR2
167443  , p_source_87_meaning    IN VARCHAR2
167444 --Invoice Distribution Encumbrance Amount
167445  , p_source_143            IN NUMBER
167446 --Invoice Distribution Encumbrance Ledger Amount
167447  , p_source_144            IN NUMBER
167448 )
167449 IS
167450 
167451 l_component_type              VARCHAR2(80);
167455 l_amb_context_code            VARCHAR2(30);
167452 l_component_code              VARCHAR2(30);
167453 l_component_type_code         VARCHAR2(1);
167454 l_component_appl_id           INTEGER;
167456 l_entity_code                 VARCHAR2(30);
167457 l_event_class_code            VARCHAR2(30);
167458 l_ae_header_id                NUMBER;
167459 l_event_type_code             VARCHAR2(30);
167460 l_line_definition_code        VARCHAR2(30);
167461 l_line_definition_owner_code  VARCHAR2(1);
167462 --
167463 -- adr variables
167464 l_segment                     VARCHAR2(30);
167465 l_ccid                        NUMBER;
167466 l_adr_transaction_coa_id      NUMBER;
167467 l_adr_accounting_coa_id       NUMBER;
167468 l_adr_flexfield_segment_code  VARCHAR2(30);
167469 l_adr_flex_value_set_id       NUMBER;
167470 l_adr_value_type_code         VARCHAR2(30);
167471 l_adr_value_combination_id    NUMBER;
167472 l_adr_value_segment_code      VARCHAR2(30);
167473 
167474 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
167475 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
167476 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
167477 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
167478 
167479 -- 4262811 Variables ------------------------------------------------------------------------------------------
167480 l_entered_amt_idx             NUMBER;
167481 l_accted_amt_idx              NUMBER;
167482 l_acc_rev_flag                VARCHAR2(1);
167483 l_accrual_line_num            NUMBER;
167484 l_tmp_amt                     NUMBER;
167485 l_acc_rev_natural_side_code   VARCHAR2(1);
167486 
167487 l_num_entries                 NUMBER;
167488 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
167489 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
167490 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
167491 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
167492 l_recog_line_1                NUMBER;
167493 l_recog_line_2                NUMBER;
167494 
167495 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
167496 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
167497 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
167498 
167499 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
167500 
167501 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
167502 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
167503 
167504 ---------------------------------------------------------------------------------------------------------------
167505 
167506 
167507 --
167508 -- bulk performance
167509 --
167510 l_balance_type_code           VARCHAR2(1);
167511 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
167512 l_log_module                  VARCHAR2(240);
167513 
167514 --
167515 -- Upgrade strategy
167516 --
167517 l_actual_upg_option           VARCHAR2(1);
167518 l_enc_upg_option           VARCHAR2(1);
167519 
167520 --
167521 BEGIN
167522 --
167523 IF g_log_enabled THEN
167524       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_270';
167525 END IF;
167526 --
167527 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
167528 
167529       trace
167530          (p_msg      => 'BEGIN of AcctLineType_270'
167531          ,p_level    => C_LEVEL_PROCEDURE
167532          ,p_module   => l_log_module);
167533 
167534 END IF;
167535 --
167536 l_component_type             := 'AMB_JLT';
167537 l_component_code             := 'AP_TAX_INV_PRICE_VAR_INV_ENC';
167538 l_component_type_code        := 'S';
167539 l_component_appl_id          :=  200;
167540 l_amb_context_code           := 'DEFAULT';
167541 l_entity_code                := 'AP_INVOICES';
167542 l_event_class_code           := 'INVOICES';
167543 l_event_type_code            := 'INVOICES_ALL';
167544 l_line_definition_owner_code := 'S';
167545 l_line_definition_code       := 'ENC_REV_INVOICES_ALL';
167546 --
167547 l_balance_type_code          := 'E';
167548 l_segment                     := NULL;
167549 l_ccid                        := NULL;
167550 l_adr_transaction_coa_id      := NULL;
167551 l_adr_accounting_coa_id       := NULL;
167552 l_adr_flexfield_segment_code  := NULL;
167553 l_adr_flex_value_set_id       := NULL;
167554 l_adr_value_type_code         := NULL;
167555 l_adr_value_combination_id    := NULL;
167556 l_adr_value_segment_code      := NULL;
167557 
167558 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
167559 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
167560 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
167561 l_budgetary_control_flag     := 'N';
167562 
167563 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
167564 l_bflow_applied_to_amt       := NULL; -- 5132302
167565 l_entered_amt_idx            := NULL;          -- 4262811
167566 l_accted_amt_idx             := NULL;          -- 4262811
167567 l_acc_rev_flag               := NULL;          -- 4262811
167568 l_accrual_line_num           := NULL;          -- 4262811
167569 l_tmp_amt                    := NULL;          -- 4262811
167570 --
167571  
167572 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
167573     l_balance_type_code <> 'B' THEN
167574 IF NVL(p_source_21,'
167575 ') =  'TIPV' AND 
167576 NVL(p_source_86,'
167577 ') =  'Y' AND 
167578 NVL(p_source_87,'
167579 ') =  'Y'
167580  THEN 
167581 
167582    --
167583    XLA_AE_LINES_PKG.SetNewLine;
167584 
167588    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
167585    p_balance_type_code          := l_balance_type_code;
167586    -- set the flag so later we will know whether the gain loss line needs to be created
167587    
167589      p_actual_flag :='A';
167590    END IF;
167591 
167592    --
167593    -- bulk performance
167594    --
167595    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
167596                                       p_header_num   => 0); -- 4262811
167597    --
167598    -- set accounting line options
167599    --
167600    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
167601            p_natural_side_code          => 'C'
167602          , p_gain_or_loss_flag          => 'N'
167603          , p_gl_transfer_mode_code      => 'S'
167604          , p_acct_entry_type_code       => 'E'
167605          , p_switch_side_flag           => 'Y'
167606          , p_merge_duplicate_code       => 'A'
167607          );
167608    --
167609    l_acc_rev_natural_side_code := 'D';  -- 4262811
167610    -- 
167611    --
167612    -- set accounting line type info
167613    --
167614    xla_ae_lines_pkg.SetAcctLineType
167615       (p_component_type             => l_component_type
167616       ,p_event_type_code            => l_event_type_code
167617       ,p_line_definition_owner_code => l_line_definition_owner_code
167618       ,p_line_definition_code       => l_line_definition_code
167619       ,p_accounting_line_code       => l_component_code
167620       ,p_accounting_line_type_code  => l_component_type_code
167621       ,p_accounting_line_appl_id    => l_component_appl_id
167622       ,p_amb_context_code           => l_amb_context_code
167623       ,p_entity_code                => l_entity_code
167624       ,p_event_class_code           => l_event_class_code);
167625    --
167626    -- set accounting class
167627    --
167628    xla_ae_lines_pkg.SetAcctClass(
167629            p_accounting_class_code  => 'TIPV'
167630          , p_ae_header_id           => l_ae_header_id
167631          );
167632 
167633    --
167634    -- set rounding class
167635    --
167636    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
167637                       'TIPV';
167638 
167639    --
167640    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
167641    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
167642    --
167643    -- bulk performance
167644    --
167645    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
167646 
167647    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
167648       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
167649 
167650    -- 4955764
167651    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
167652       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
167653 
167654    -- 4458381 Public Sector Enh
167655    
167656    --
167657    -- set accounting attributes for the line type
167658    --
167659    l_entered_amt_idx := 24;
167660    l_accted_amt_idx  := 26;
167661    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
167662    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
167663    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
167664    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
167665    l_rec_acct_attrs.array_num_value(2)  := 
167666 xla_ae_sources_pkg.GetSystemSourceNum(
167667    p_source_code           => 'XLA_EVENT_APPL_ID'
167668  , p_source_type_code      => 'Y'
167669  , p_source_application_id =>  602
167670 );
167671    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
167672    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
167673    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
167674    l_rec_acct_attrs.array_char_value(4)  := 
167675 xla_ae_sources_pkg.GetSystemSourceChar(
167676    p_source_code           => 'XLA_ENTITY_CODE'
167677  , p_source_type_code      => 'Y'
167678  , p_source_application_id =>  602
167679 );
167680    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
167681    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
167682    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
167683    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
167684    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
167685    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
167686    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
167687    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
167688    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
167689    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
167690    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
167691    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
167692    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
167693    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
167694    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
167695    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
167696    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
167697    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
167698    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
167699    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
167703    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
167700    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
167701    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
167702    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
167704    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
167705    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
167706    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
167707    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
167708    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
167709    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
167710    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
167711    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
167712    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
167713    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
167714    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
167715    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
167716    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
167717    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
167718    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
167719    l_rec_acct_attrs.array_num_value(24)  := p_source_143;
167720    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
167721    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
167722    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
167723    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
167724    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
167725    l_rec_acct_attrs.array_date_value(27)  := p_source_65;
167726    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
167727    l_rec_acct_attrs.array_char_value(28)  := p_source_66;
167728    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
167729    l_rec_acct_attrs.array_date_value(29)  := p_source_67;
167730    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
167731    l_rec_acct_attrs.array_char_value(30)  := p_source_68;
167732    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
167733    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
167734    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
167735    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
167736    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
167737    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
167738    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
167739    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
167740    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
167741    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
167742    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
167743    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
167744    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
167745    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
167746    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
167747    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
167748    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
167749    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
167750 
167751    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
167752    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
167753 
167754    ---------------------------------------------------------------------------------------------------------------
167755    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
167756    ---------------------------------------------------------------------------------------------------------------
167757    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
167758 
167759    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
167760    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
167761 
167762    IF xla_accounting_cache_pkg.GetValueChar
167763          (p_source_code         => 'LEDGER_CATEGORY_CODE'
167764          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
167765    AND l_bflow_method_code = 'PRIOR_ENTRY'
167766 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
167767    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
167768          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
167769        )
167770    THEN
167771          xla_ae_lines_pkg.BflowUpgEntry
167772            (p_business_method_code    => l_bflow_method_code
167773            ,p_business_class_code     => l_bflow_class_code
167774            ,p_balance_type            => l_balance_type_code);
167775    ELSE
167776       NULL;
167777 XLA_AE_LINES_PKG.business_flow_validation(
167778                                 p_business_method_code     => l_bflow_method_code
167779                                ,p_business_class_code      => l_bflow_class_code
167780                                ,p_inherit_description_flag => l_inherit_desc_flag);
167781    END IF;
167782 
167783    --
167784    -- call analytical criteria
167785    --
167786    -- Inherited Analytical Criteria for business flow method of Prior Entry.
167787    --
167788    -- call description
167789    --
167790    -- No description or it is inherited.
167791    --
167792    -- call ADRs
167793    -- Bug 4922099
167794    --
167795    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
167799    THEN
167796         (NVL(l_actual_upg_option, 'N') = 'O') OR
167797         (NVL(l_enc_upg_option, 'N') = 'O')
167798       )
167800    NULL;
167801    --
167802    --
167803    
167804    --
167805    --
167806    END IF;
167807    --
167808    -- Bug 4922099
167809    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
167810           (NVL(l_enc_upg_option, 'N') = 'O')
167811         ) AND
167812         (l_bflow_method_code = 'PRIOR_ENTRY')
167813       )
167814    THEN
167815       IF
167816       --
167817       1 = 1
167818       --
167819       THEN
167820       xla_accounting_err_pkg.build_message
167821                                     (p_appli_s_name            => 'XLA'
167822                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
167823                                     ,p_token_1                 => 'LINE_NUMBER'
167824                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
167825                                     ,p_token_2                 => 'LINE_TYPE_NAME'
167826                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
167827                                                                              l_component_type
167828                                                                             ,l_component_code
167829                                                                             ,l_component_type_code
167830                                                                             ,l_component_appl_id
167831                                                                             ,l_amb_context_code
167832                                                                             ,l_entity_code
167833                                                                             ,l_event_class_code
167834                                                                            )
167835                                     ,p_token_3                 => 'OWNER'
167836                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
167837                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
167838                                                                           ,p_lookup_code    => l_component_type_code
167839                                                                          )
167840                                     ,p_token_4                 => 'PRODUCT_NAME'
167841                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
167842                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
167843                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
167844                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
167845                                     ,p_ae_header_id            =>  NULL
167846                                        );
167847 
167848         IF (C_LEVEL_ERROR>= g_log_level) THEN
167849                  trace
167850                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
167851                       ,p_level    => C_LEVEL_ERROR
167852                       ,p_module   => l_log_module);
167853         END IF;
167854       END IF;
167855    END IF;
167856    --
167857    --
167858    ------------------------------------------------------------------------------------------------
167859    -- 4219869 Business Flow
167860    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
167861    -- Prior Entry.  Currently, the following code is always generated.
167862    ------------------------------------------------------------------------------------------------
167863    -- No ValidateCurrentLine for business flow method of Prior Entry
167864 
167865    ------------------------------------------------------------------------------------
167866    -- 4219869 Business Flow
167867    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
167868    ------------------------------------------------------------------------------------
167869    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
167870 
167871    ----------------------------------------------------------------------------------
167872    -- 4219869 Business Flow
167873    -- Update journal entry status -- Need to generate this within IF <condition>
167874    ----------------------------------------------------------------------------------
167875    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
167876          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
167877          ,p_balance_type_code => l_balance_type_code
167878          );
167879 
167880    -------------------------------------------------------------------------------------------
167881    -- 4262811 - Generate the Accrual Reversal lines
167882    -------------------------------------------------------------------------------------------
167883    BEGIN
167884       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
167885                               (g_array_event(p_event_id).array_value_num('header_index'));
167886       IF l_acc_rev_flag IS NULL THEN
167887          l_acc_rev_flag := 'N';
167888       END IF;
167889    EXCEPTION
167890       WHEN OTHERS THEN
167891          l_acc_rev_flag := 'N';
167892    END;
167893    --
167894    IF (l_acc_rev_flag = 'Y') THEN
167895 
167896        -- 4645092  ------------------------------------------------------------------------------
167897        -- To allow MPA report to determine if it should generate report process
167901        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
167898        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
167899        ------------------------------------------------------------------------------------------
167900 
167902        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
167903    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
167904    -- call ADRs
167905    -- Bug 4922099
167906    --
167907    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
167908         (NVL(l_actual_upg_option, 'N') = 'O') OR
167909         (NVL(l_enc_upg_option, 'N') = 'O')
167910       )
167911    THEN
167912    NULL;
167913    --
167914    --
167915    
167916    --
167917    --
167918    END IF;
167919 
167920        --
167921        -- Update the line information that should be overwritten
167922        --
167923        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
167924                                          p_header_num   => 1);
167925        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
167926 
167927        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
167928 
167929        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
167930           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
167931        END IF;
167932 
167933       --
167934       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
167935       --
167936       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
167937           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
167938       ELSE
167939           ---------------------------------------------------------------------------------------------------
167940           -- 4262811a Switch Sign
167941           ---------------------------------------------------------------------------------------------------
167942           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
167943           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
167944                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
167945           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
167946                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
167947           -- 5132302
167948           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
167949                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
167950 
167951       END IF;
167952 
167953       -- 4955764
167954       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
167955       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
167956 
167957 
167958       XLA_AE_LINES_PKG.ValidateCurrentLine;
167959       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
167960 
167961       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
167962                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
167963                ,p_balance_type_code => l_balance_type_code);
167964 
167965    END IF;
167966 
167967    -----------------------------------------------------------------------------------------
167968    -- 4262811 Multiperiod Accounting
167969    -----------------------------------------------------------------------------------------
167970      -- No MPA option is assigned.
167971 
167972 
167973 END IF;
167974 END IF;
167975 --
167976 
167977 --
167978 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
167979    trace
167980       (p_msg      => 'END of AcctLineType_270'
167981       ,p_level    => C_LEVEL_PROCEDURE
167982       ,p_module   => l_log_module);
167983 END IF;
167984 --
167985 EXCEPTION
167986   WHEN xla_exceptions_pkg.application_exception THEN
167987       RAISE;
167988   WHEN OTHERS THEN
167989        xla_exceptions_pkg.raise_message
167990            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_270');
167991 END AcctLineType_270;
167992 --
167993 
167994 ---------------------------------------
167995 --
167996 -- PRIVATE FUNCTION
167997 --         AcctLineType_271
167998 --
167999 ---------------------------------------
168000 PROCEDURE AcctLineType_271 (
168001   p_application_id        IN NUMBER
168002  ,p_event_id              IN NUMBER
168003  ,p_calculate_acctd_flag  IN VARCHAR2
168004  ,p_calculate_g_l_flag    IN VARCHAR2
168005  ,p_actual_flag           IN OUT VARCHAR2
168006  ,p_balance_type_code     OUT VARCHAR2
168007  ,p_gain_or_loss_ref      OUT VARCHAR2
168008  
168009 --Invoice Distribution Type
168010  , p_source_21            IN VARCHAR2
168011  , p_source_21_meaning    IN VARCHAR2
168012 --Accounting Reversal Indicator
168013  , p_source_41            IN VARCHAR2
168014 --Distribution Link Type
168015  , p_source_43            IN VARCHAR2
168016 --Allocation to Main Distribution Identifier
168017  , p_source_45            IN NUMBER
168018 --Invoice Identifier
168019  , p_source_46            IN NUMBER
168020 --Invoice Distribution Identifier
168021  , p_source_52            IN NUMBER
168022 --Payables Encumbrance Upgrade Credit Account
168023  , p_source_53            IN NUMBER
168024 --Payables Encumbrance Upgrade Credit Amount
168025  , p_source_54            IN NUMBER
168026 --Invoice Currency Code
168027  , p_source_55            IN VARCHAR2
168028 --Payables Encumbrance Upgrade Credit Base Amount
168032 --Payables Encumbrance Upgrade Debit Amount
168029  , p_source_56            IN NUMBER
168030 --Payables Encumbrance Upgrade Debit Account
168031  , p_source_57            IN NUMBER
168033  , p_source_58            IN NUMBER
168034 --Payables Encumbrance Upgrade Debit Base Amount
168035  , p_source_59            IN NUMBER
168036 --Payables Encumbrance Upgrade Option
168037  , p_source_60            IN VARCHAR2
168038 --Deferred Accounting End Date
168039  , p_source_65            IN DATE
168040 --Deferred Accounting Option
168041  , p_source_66            IN VARCHAR2
168042 --Deferred Accounting Start Date
168043  , p_source_67            IN DATE
168044 --Override Accounted Amount Indicator
168045  , p_source_68            IN VARCHAR2
168046  , p_source_68_meaning    IN VARCHAR2
168047 --Third Party Type
168048  , p_source_71            IN VARCHAR2
168049 --Parent Reversal Identifier
168050  , p_source_72            IN NUMBER
168051 --Invoice Distribution Statistical Amount
168052  , p_source_73            IN NUMBER
168053 --Invoice Distribution Tax Line Identifier
168054  , p_source_74            IN NUMBER
168055 --Invoice Distribution Tax Distribution Identifier from Tax
168056  , p_source_75            IN NUMBER
168057 --Invoice Distribution Summary Tax Line Identifier
168058  , p_source_76            IN NUMBER
168059 --Payables Upgrade Credit Encumbrance Type Identifier
168060  , p_source_77            IN NUMBER
168061 --Payables Upgrade Debit Encumbrance Type Identifier
168062  , p_source_78            IN NUMBER
168063 --Business Flow Accounts Payable Application Identifier
168064  , p_source_79            IN NUMBER
168065 --Business Flow Invoice Distribution Type
168066  , p_source_80            IN VARCHAR2
168067 --Business Flow Invoice Entity Code
168068  , p_source_81            IN VARCHAR2
168069 --Business Flow Invoice Distribution Identifier
168070  , p_source_82            IN NUMBER
168071 --Business Flow Invoice Identifier
168072  , p_source_83            IN NUMBER
168073 --Purchasing Encumbrance Option
168074  , p_source_86            IN VARCHAR2
168075  , p_source_86_meaning    IN VARCHAR2
168076 --Invoice Encumbered Option
168077  , p_source_87            IN VARCHAR2
168078  , p_source_87_meaning    IN VARCHAR2
168079 --Invoice Distribution Encumbrance Amount
168080  , p_source_143            IN NUMBER
168081 --Invoice Distribution Encumbrance Ledger Amount
168082  , p_source_144            IN NUMBER
168083 )
168084 IS
168085 
168086 l_component_type              VARCHAR2(80);
168087 l_component_code              VARCHAR2(30);
168088 l_component_type_code         VARCHAR2(1);
168089 l_component_appl_id           INTEGER;
168090 l_amb_context_code            VARCHAR2(30);
168091 l_entity_code                 VARCHAR2(30);
168092 l_event_class_code            VARCHAR2(30);
168093 l_ae_header_id                NUMBER;
168094 l_event_type_code             VARCHAR2(30);
168095 l_line_definition_code        VARCHAR2(30);
168096 l_line_definition_owner_code  VARCHAR2(1);
168097 --
168098 -- adr variables
168099 l_segment                     VARCHAR2(30);
168100 l_ccid                        NUMBER;
168101 l_adr_transaction_coa_id      NUMBER;
168102 l_adr_accounting_coa_id       NUMBER;
168103 l_adr_flexfield_segment_code  VARCHAR2(30);
168104 l_adr_flex_value_set_id       NUMBER;
168105 l_adr_value_type_code         VARCHAR2(30);
168106 l_adr_value_combination_id    NUMBER;
168107 l_adr_value_segment_code      VARCHAR2(30);
168108 
168109 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
168110 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
168111 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
168112 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
168113 
168114 -- 4262811 Variables ------------------------------------------------------------------------------------------
168115 l_entered_amt_idx             NUMBER;
168116 l_accted_amt_idx              NUMBER;
168117 l_acc_rev_flag                VARCHAR2(1);
168118 l_accrual_line_num            NUMBER;
168119 l_tmp_amt                     NUMBER;
168120 l_acc_rev_natural_side_code   VARCHAR2(1);
168121 
168122 l_num_entries                 NUMBER;
168123 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
168124 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
168125 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
168126 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
168127 l_recog_line_1                NUMBER;
168128 l_recog_line_2                NUMBER;
168129 
168130 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
168131 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
168132 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
168133 
168134 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
168135 
168136 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
168137 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
168138 
168139 ---------------------------------------------------------------------------------------------------------------
168140 
168141 
168142 --
168143 -- bulk performance
168144 --
168145 l_balance_type_code           VARCHAR2(1);
168146 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
168147 l_log_module                  VARCHAR2(240);
168148 
168149 --
168150 -- Upgrade strategy
168151 --
168152 l_actual_upg_option           VARCHAR2(1);
168153 l_enc_upg_option           VARCHAR2(1);
168154 
168155 --
168156 BEGIN
168157 --
168158 IF g_log_enabled THEN
168159       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_271';
168160 END IF;
168164       trace
168161 --
168162 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
168163 
168165          (p_msg      => 'BEGIN of AcctLineType_271'
168166          ,p_level    => C_LEVEL_PROCEDURE
168167          ,p_module   => l_log_module);
168168 
168169 END IF;
168170 --
168171 l_component_type             := 'AMB_JLT';
168172 l_component_code             := 'AP_TAX_INV_PRICE_VAR_PP_ENC';
168173 l_component_type_code        := 'S';
168174 l_component_appl_id          :=  200;
168175 l_amb_context_code           := 'DEFAULT';
168176 l_entity_code                := 'AP_INVOICES';
168177 l_event_class_code           := 'PREPAYMENTS';
168178 l_event_type_code            := 'PREPAYMENTS_ALL';
168179 l_line_definition_owner_code := 'S';
168180 l_line_definition_code       := 'ENC_REV_PREPAY_ALL';
168181 --
168182 l_balance_type_code          := 'E';
168183 l_segment                     := NULL;
168184 l_ccid                        := NULL;
168185 l_adr_transaction_coa_id      := NULL;
168186 l_adr_accounting_coa_id       := NULL;
168187 l_adr_flexfield_segment_code  := NULL;
168188 l_adr_flex_value_set_id       := NULL;
168189 l_adr_value_type_code         := NULL;
168190 l_adr_value_combination_id    := NULL;
168191 l_adr_value_segment_code      := NULL;
168192 
168193 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
168194 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
168195 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
168196 l_budgetary_control_flag     := 'N';
168197 
168198 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
168199 l_bflow_applied_to_amt       := NULL; -- 5132302
168200 l_entered_amt_idx            := NULL;          -- 4262811
168201 l_accted_amt_idx             := NULL;          -- 4262811
168202 l_acc_rev_flag               := NULL;          -- 4262811
168203 l_accrual_line_num           := NULL;          -- 4262811
168204 l_tmp_amt                    := NULL;          -- 4262811
168205 --
168206  
168207 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
168208     l_balance_type_code <> 'B' THEN
168209 IF NVL(p_source_21,'
168210 ') =  'TIPV' AND 
168211 NVL(p_source_86,'
168212 ') =  'Y' AND 
168213 NVL(p_source_87,'
168214 ') =  'Y'
168215  THEN 
168216 
168217    --
168218    XLA_AE_LINES_PKG.SetNewLine;
168219 
168220    p_balance_type_code          := l_balance_type_code;
168221    -- set the flag so later we will know whether the gain loss line needs to be created
168222    
168223    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
168224      p_actual_flag :='A';
168225    END IF;
168226 
168227    --
168228    -- bulk performance
168229    --
168230    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
168231                                       p_header_num   => 0); -- 4262811
168232    --
168233    -- set accounting line options
168234    --
168235    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
168236            p_natural_side_code          => 'C'
168237          , p_gain_or_loss_flag          => 'N'
168238          , p_gl_transfer_mode_code      => 'S'
168239          , p_acct_entry_type_code       => 'E'
168240          , p_switch_side_flag           => 'Y'
168241          , p_merge_duplicate_code       => 'A'
168242          );
168243    --
168244    l_acc_rev_natural_side_code := 'D';  -- 4262811
168245    -- 
168246    --
168247    -- set accounting line type info
168248    --
168249    xla_ae_lines_pkg.SetAcctLineType
168250       (p_component_type             => l_component_type
168251       ,p_event_type_code            => l_event_type_code
168252       ,p_line_definition_owner_code => l_line_definition_owner_code
168253       ,p_line_definition_code       => l_line_definition_code
168254       ,p_accounting_line_code       => l_component_code
168255       ,p_accounting_line_type_code  => l_component_type_code
168256       ,p_accounting_line_appl_id    => l_component_appl_id
168257       ,p_amb_context_code           => l_amb_context_code
168258       ,p_entity_code                => l_entity_code
168259       ,p_event_class_code           => l_event_class_code);
168260    --
168261    -- set accounting class
168262    --
168263    xla_ae_lines_pkg.SetAcctClass(
168264            p_accounting_class_code  => 'TIPV'
168265          , p_ae_header_id           => l_ae_header_id
168266          );
168267 
168268    --
168269    -- set rounding class
168270    --
168271    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
168272                       'TIPV';
168273 
168274    --
168275    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
168276    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
168277    --
168278    -- bulk performance
168279    --
168280    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
168281 
168282    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
168283       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
168284 
168285    -- 4955764
168286    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
168287       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
168288 
168289    -- 4458381 Public Sector Enh
168290    
168291    --
168292    -- set accounting attributes for the line type
168293    --
168294    l_entered_amt_idx := 23;
168295    l_accted_amt_idx  := 25;
168296    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
168300    l_rec_acct_attrs.array_num_value(2)  := 
168297    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
168298    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
168299    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
168301 xla_ae_sources_pkg.GetSystemSourceNum(
168302    p_source_code           => 'XLA_EVENT_APPL_ID'
168303  , p_source_type_code      => 'Y'
168304  , p_source_application_id =>  602
168305 );
168306    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
168307    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
168308    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
168309    l_rec_acct_attrs.array_char_value(4)  := 
168310 xla_ae_sources_pkg.GetSystemSourceChar(
168311    p_source_code           => 'XLA_ENTITY_CODE'
168312  , p_source_type_code      => 'Y'
168313  , p_source_application_id =>  602
168314 );
168315    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
168316    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
168317    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
168318    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
168319    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
168320    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
168321    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
168322    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
168323    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
168324    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
168325    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
168326    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
168327    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
168328    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
168329    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
168330    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
168331    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
168332    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
168333    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
168334    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
168335    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
168336    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
168337    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
168338    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
168339    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
168340    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
168341    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
168342    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
168343    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
168344    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
168345    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
168346    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
168347    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
168348    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
168349    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
168350    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
168351    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
168352    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
168353    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
168354    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
168355    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
168356    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
168357    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
168358    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
168359    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
168360    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
168361    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
168362    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
168363    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
168364    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
168365    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
168366    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
168367    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
168368    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
168369    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
168370    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
168371    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
168372    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
168373    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
168374    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
168375    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
168376    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
168377    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
168378    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
168379    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
168380    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
168381    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
168382    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
168383 
168384    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
168385    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
168386 
168387    ---------------------------------------------------------------------------------------------------------------
168388    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
168392    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
168389    ---------------------------------------------------------------------------------------------------------------
168390    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
168391 
168393    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
168394 
168395    IF xla_accounting_cache_pkg.GetValueChar
168396          (p_source_code         => 'LEDGER_CATEGORY_CODE'
168397          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
168398    AND l_bflow_method_code = 'PRIOR_ENTRY'
168399 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
168400    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
168401          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
168402        )
168403    THEN
168404          xla_ae_lines_pkg.BflowUpgEntry
168405            (p_business_method_code    => l_bflow_method_code
168406            ,p_business_class_code     => l_bflow_class_code
168407            ,p_balance_type            => l_balance_type_code);
168408    ELSE
168409       NULL;
168410 XLA_AE_LINES_PKG.business_flow_validation(
168411                                 p_business_method_code     => l_bflow_method_code
168412                                ,p_business_class_code      => l_bflow_class_code
168413                                ,p_inherit_description_flag => l_inherit_desc_flag);
168414    END IF;
168415 
168416    --
168417    -- call analytical criteria
168418    --
168419    -- Inherited Analytical Criteria for business flow method of Prior Entry.
168420    --
168421    -- call description
168422    --
168423    -- No description or it is inherited.
168424    --
168425    -- call ADRs
168426    -- Bug 4922099
168427    --
168428    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
168429         (NVL(l_actual_upg_option, 'N') = 'O') OR
168430         (NVL(l_enc_upg_option, 'N') = 'O')
168431       )
168432    THEN
168433    NULL;
168434    --
168435    --
168436    
168437    --
168438    --
168439    END IF;
168440    --
168441    -- Bug 4922099
168442    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
168443           (NVL(l_enc_upg_option, 'N') = 'O')
168444         ) AND
168445         (l_bflow_method_code = 'PRIOR_ENTRY')
168446       )
168447    THEN
168448       IF
168449       --
168450       1 = 1
168451       --
168452       THEN
168453       xla_accounting_err_pkg.build_message
168454                                     (p_appli_s_name            => 'XLA'
168455                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
168456                                     ,p_token_1                 => 'LINE_NUMBER'
168457                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
168458                                     ,p_token_2                 => 'LINE_TYPE_NAME'
168459                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
168460                                                                              l_component_type
168461                                                                             ,l_component_code
168462                                                                             ,l_component_type_code
168463                                                                             ,l_component_appl_id
168464                                                                             ,l_amb_context_code
168465                                                                             ,l_entity_code
168466                                                                             ,l_event_class_code
168467                                                                            )
168468                                     ,p_token_3                 => 'OWNER'
168469                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
168470                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
168471                                                                           ,p_lookup_code    => l_component_type_code
168472                                                                          )
168473                                     ,p_token_4                 => 'PRODUCT_NAME'
168474                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
168475                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
168476                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
168477                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
168478                                     ,p_ae_header_id            =>  NULL
168479                                        );
168480 
168481         IF (C_LEVEL_ERROR>= g_log_level) THEN
168482                  trace
168483                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
168484                       ,p_level    => C_LEVEL_ERROR
168485                       ,p_module   => l_log_module);
168486         END IF;
168487       END IF;
168488    END IF;
168489    --
168490    --
168491    ------------------------------------------------------------------------------------------------
168492    -- 4219869 Business Flow
168493    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
168494    -- Prior Entry.  Currently, the following code is always generated.
168495    ------------------------------------------------------------------------------------------------
168496    -- No ValidateCurrentLine for business flow method of Prior Entry
168500    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
168497 
168498    ------------------------------------------------------------------------------------
168499    -- 4219869 Business Flow
168501    ------------------------------------------------------------------------------------
168502    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
168503 
168504    ----------------------------------------------------------------------------------
168505    -- 4219869 Business Flow
168506    -- Update journal entry status -- Need to generate this within IF <condition>
168507    ----------------------------------------------------------------------------------
168508    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
168509          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
168510          ,p_balance_type_code => l_balance_type_code
168511          );
168512 
168513    -------------------------------------------------------------------------------------------
168514    -- 4262811 - Generate the Accrual Reversal lines
168515    -------------------------------------------------------------------------------------------
168516    BEGIN
168517       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
168518                               (g_array_event(p_event_id).array_value_num('header_index'));
168519       IF l_acc_rev_flag IS NULL THEN
168520          l_acc_rev_flag := 'N';
168521       END IF;
168522    EXCEPTION
168523       WHEN OTHERS THEN
168524          l_acc_rev_flag := 'N';
168525    END;
168526    --
168527    IF (l_acc_rev_flag = 'Y') THEN
168528 
168529        -- 4645092  ------------------------------------------------------------------------------
168530        -- To allow MPA report to determine if it should generate report process
168531        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
168532        ------------------------------------------------------------------------------------------
168533 
168534        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
168535        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
168536    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
168537    -- call ADRs
168538    -- Bug 4922099
168539    --
168540    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
168541         (NVL(l_actual_upg_option, 'N') = 'O') OR
168542         (NVL(l_enc_upg_option, 'N') = 'O')
168543       )
168544    THEN
168545    NULL;
168546    --
168547    --
168548    
168549    --
168550    --
168551    END IF;
168552 
168553        --
168554        -- Update the line information that should be overwritten
168555        --
168556        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
168557                                          p_header_num   => 1);
168558        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
168559 
168560        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
168561 
168562        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
168563           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
168564        END IF;
168565 
168566       --
168567       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
168568       --
168569       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
168570           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
168571       ELSE
168572           ---------------------------------------------------------------------------------------------------
168573           -- 4262811a Switch Sign
168574           ---------------------------------------------------------------------------------------------------
168575           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
168576           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
168577                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
168578           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
168579                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
168580           -- 5132302
168581           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
168582                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
168583 
168584       END IF;
168585 
168586       -- 4955764
168587       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
168588       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
168589 
168590 
168591       XLA_AE_LINES_PKG.ValidateCurrentLine;
168592       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
168593 
168594       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
168595                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
168596                ,p_balance_type_code => l_balance_type_code);
168597 
168598    END IF;
168599 
168600    -----------------------------------------------------------------------------------------
168601    -- 4262811 Multiperiod Accounting
168602    -----------------------------------------------------------------------------------------
168603      -- No MPA option is assigned.
168604 
168605 
168606 END IF;
168607 END IF;
168608 --
168609 
168610 --
168611 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
168615       ,p_module   => l_log_module);
168612    trace
168613       (p_msg      => 'END of AcctLineType_271'
168614       ,p_level    => C_LEVEL_PROCEDURE
168616 END IF;
168617 --
168618 EXCEPTION
168619   WHEN xla_exceptions_pkg.application_exception THEN
168620       RAISE;
168621   WHEN OTHERS THEN
168622        xla_exceptions_pkg.raise_message
168623            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_271');
168624 END AcctLineType_271;
168625 --
168626 
168627 ---------------------------------------
168628 --
168629 -- PRIVATE FUNCTION
168630 --         AcctLineType_272
168631 --
168632 ---------------------------------------
168633 PROCEDURE AcctLineType_272 (
168634   p_application_id        IN NUMBER
168635  ,p_event_id              IN NUMBER
168636  ,p_calculate_acctd_flag  IN VARCHAR2
168637  ,p_calculate_g_l_flag    IN VARCHAR2
168638  ,p_actual_flag           IN OUT VARCHAR2
168639  ,p_balance_type_code     OUT VARCHAR2
168640  ,p_gain_or_loss_ref      OUT VARCHAR2
168641  
168642 --Invoice Distribution Description
168643  , p_source_1            IN VARCHAR2
168644 --Invoice Distribution Ledger Amount
168645  , p_source_9            IN NUMBER
168646 --Invoice Distribution Account
168647  , p_source_18            IN NUMBER
168648 --Invoice Distribution Type
168649  , p_source_21            IN VARCHAR2
168650  , p_source_21_meaning    IN VARCHAR2
168651 --Accounting Reversal Indicator
168652  , p_source_41            IN VARCHAR2
168653 --Distribution Link Type
168654  , p_source_43            IN VARCHAR2
168655 --Allocation to Main Distribution Identifier
168656  , p_source_45            IN NUMBER
168657 --Invoice Identifier
168658  , p_source_46            IN NUMBER
168659 --Invoice Distribution Identifier
168660  , p_source_52            IN NUMBER
168661 --Payables Encumbrance Upgrade Credit Account
168662  , p_source_53            IN NUMBER
168663 --Payables Encumbrance Upgrade Credit Amount
168664  , p_source_54            IN NUMBER
168665 --Invoice Currency Code
168666  , p_source_55            IN VARCHAR2
168667 --Payables Encumbrance Upgrade Credit Base Amount
168668  , p_source_56            IN NUMBER
168669 --Payables Encumbrance Upgrade Debit Account
168670  , p_source_57            IN NUMBER
168671 --Payables Encumbrance Upgrade Debit Amount
168672  , p_source_58            IN NUMBER
168673 --Payables Encumbrance Upgrade Debit Base Amount
168674  , p_source_59            IN NUMBER
168675 --Payables Encumbrance Upgrade Option
168676  , p_source_60            IN VARCHAR2
168677 --Invoice Distribution Amount
168678  , p_source_61            IN NUMBER
168679 --Deferred Accounting End Date
168680  , p_source_65            IN DATE
168681 --Deferred Accounting Option
168682  , p_source_66            IN VARCHAR2
168683 --Deferred Accounting Start Date
168684  , p_source_67            IN DATE
168685 --Override Accounted Amount Indicator
168686  , p_source_68            IN VARCHAR2
168687  , p_source_68_meaning    IN VARCHAR2
168688 --Invoice Supplier Identifier
168689  , p_source_69            IN NUMBER
168690 --Invoice Supplier Site Identifier
168691  , p_source_70            IN NUMBER
168692 --Third Party Type
168693  , p_source_71            IN VARCHAR2
168694 --Parent Reversal Identifier
168695  , p_source_72            IN NUMBER
168696 --Invoice Distribution Statistical Amount
168697  , p_source_73            IN NUMBER
168698 --Invoice Distribution Tax Line Identifier
168699  , p_source_74            IN NUMBER
168700 --Invoice Distribution Tax Distribution Identifier from Tax
168701  , p_source_75            IN NUMBER
168702 --Invoice Distribution Summary Tax Line Identifier
168703  , p_source_76            IN NUMBER
168704 --Payables Upgrade Credit Encumbrance Type Identifier
168705  , p_source_77            IN NUMBER
168706 --Payables Upgrade Debit Encumbrance Type Identifier
168707  , p_source_78            IN NUMBER
168708 --Business Flow Accounts Payable Application Identifier
168709  , p_source_79            IN NUMBER
168710 --Business Flow Invoice Distribution Type
168711  , p_source_80            IN VARCHAR2
168712 --Business Flow Invoice Entity Code
168713  , p_source_81            IN VARCHAR2
168714 --Business Flow Invoice Distribution Identifier
168715  , p_source_82            IN NUMBER
168716 --Business Flow Invoice Identifier
168717  , p_source_83            IN NUMBER
168718 --Accrue on Receipt Option
168719  , p_source_84            IN VARCHAR2
168720  , p_source_84_meaning    IN VARCHAR2
168721 --Invoice Exchange Date
168722  , p_source_136            IN DATE
168723 --Invoice Exchange Rate
168724  , p_source_137            IN NUMBER
168725 --Invoice Exchange Rate Type
168726  , p_source_138            IN VARCHAR2
168727 )
168728 IS
168729 
168730 l_component_type              VARCHAR2(80);
168731 l_component_code              VARCHAR2(30);
168732 l_component_type_code         VARCHAR2(1);
168733 l_component_appl_id           INTEGER;
168734 l_amb_context_code            VARCHAR2(30);
168735 l_entity_code                 VARCHAR2(30);
168736 l_event_class_code            VARCHAR2(30);
168737 l_ae_header_id                NUMBER;
168738 l_event_type_code             VARCHAR2(30);
168739 l_line_definition_code        VARCHAR2(30);
168740 l_line_definition_owner_code  VARCHAR2(1);
168741 --
168742 -- adr variables
168743 l_segment                     VARCHAR2(30);
168744 l_ccid                        NUMBER;
168745 l_adr_transaction_coa_id      NUMBER;
168746 l_adr_accounting_coa_id       NUMBER;
168747 l_adr_flexfield_segment_code  VARCHAR2(30);
168748 l_adr_flex_value_set_id       NUMBER;
168749 l_adr_value_type_code         VARCHAR2(30);
168753 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
168750 l_adr_value_combination_id    NUMBER;
168751 l_adr_value_segment_code      VARCHAR2(30);
168752 
168754 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
168755 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
168756 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
168757 
168758 -- 4262811 Variables ------------------------------------------------------------------------------------------
168759 l_entered_amt_idx             NUMBER;
168760 l_accted_amt_idx              NUMBER;
168761 l_acc_rev_flag                VARCHAR2(1);
168762 l_accrual_line_num            NUMBER;
168763 l_tmp_amt                     NUMBER;
168764 l_acc_rev_natural_side_code   VARCHAR2(1);
168765 
168766 l_num_entries                 NUMBER;
168767 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
168768 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
168769 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
168770 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
168771 l_recog_line_1                NUMBER;
168772 l_recog_line_2                NUMBER;
168773 
168774 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
168775 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
168776 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
168777 
168778 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
168779 
168780 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
168781 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
168782 
168783 ---------------------------------------------------------------------------------------------------------------
168784 
168785 
168786 --
168787 -- bulk performance
168788 --
168789 l_balance_type_code           VARCHAR2(1);
168790 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
168791 l_log_module                  VARCHAR2(240);
168792 
168793 --
168794 -- Upgrade strategy
168795 --
168796 l_actual_upg_option           VARCHAR2(1);
168797 l_enc_upg_option           VARCHAR2(1);
168798 
168799 --
168800 BEGIN
168801 --
168802 IF g_log_enabled THEN
168803       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_272';
168804 END IF;
168805 --
168806 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
168807 
168808       trace
168809          (p_msg      => 'BEGIN of AcctLineType_272'
168810          ,p_level    => C_LEVEL_PROCEDURE
168811          ,p_module   => l_log_module);
168812 
168813 END IF;
168814 --
168815 l_component_type             := 'AMB_JLT';
168816 l_component_code             := 'AP_TAX_INV_PRICE_VAR_PREPAY';
168817 l_component_type_code        := 'S';
168818 l_component_appl_id          :=  200;
168819 l_amb_context_code           := 'DEFAULT';
168820 l_entity_code                := 'AP_INVOICES';
168821 l_event_class_code           := 'PREPAYMENTS';
168822 l_event_type_code            := 'PREPAYMENTS_ALL';
168823 l_line_definition_owner_code := 'S';
168824 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
168825 --
168826 l_balance_type_code          := 'A';
168827 l_segment                     := NULL;
168828 l_ccid                        := NULL;
168829 l_adr_transaction_coa_id      := NULL;
168830 l_adr_accounting_coa_id       := NULL;
168831 l_adr_flexfield_segment_code  := NULL;
168832 l_adr_flex_value_set_id       := NULL;
168833 l_adr_value_type_code         := NULL;
168834 l_adr_value_combination_id    := NULL;
168835 l_adr_value_segment_code      := NULL;
168836 
168837 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
168838 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
168839 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
168840 l_budgetary_control_flag     := 'N';
168841 
168842 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
168843 l_bflow_applied_to_amt       := NULL; -- 5132302
168844 l_entered_amt_idx            := NULL;          -- 4262811
168845 l_accted_amt_idx             := NULL;          -- 4262811
168846 l_acc_rev_flag               := NULL;          -- 4262811
168847 l_accrual_line_num           := NULL;          -- 4262811
168848 l_tmp_amt                    := NULL;          -- 4262811
168849 --
168850  
168851 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
168852     l_balance_type_code <> 'B' THEN
168853 IF NVL(p_source_21,'
168854 ') =  'TIPV' AND 
168855 NVL(p_source_84,'
168856 ') =  'Y'
168857  THEN 
168858 
168859    --
168860    XLA_AE_LINES_PKG.SetNewLine;
168861 
168862    p_balance_type_code          := l_balance_type_code;
168863    -- set the flag so later we will know whether the gain loss line needs to be created
168864    
168865    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
168866      p_actual_flag :='A';
168867    END IF;
168868 
168869    --
168870    -- bulk performance
168871    --
168872    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
168873                                       p_header_num   => 0); -- 4262811
168874    --
168875    -- set accounting line options
168876    --
168877    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
168878            p_natural_side_code          => 'D'
168879          , p_gain_or_loss_flag          => 'N'
168880          , p_gl_transfer_mode_code      => 'S'
168881          , p_acct_entry_type_code       => 'A'
168882          , p_switch_side_flag           => 'Y'
168883          , p_merge_duplicate_code       => 'A'
168884          );
168885    --
168889    -- set accounting line type info
168886    l_acc_rev_natural_side_code := 'C';  -- 4262811
168887    -- 
168888    --
168890    --
168891    xla_ae_lines_pkg.SetAcctLineType
168892       (p_component_type             => l_component_type
168893       ,p_event_type_code            => l_event_type_code
168894       ,p_line_definition_owner_code => l_line_definition_owner_code
168895       ,p_line_definition_code       => l_line_definition_code
168896       ,p_accounting_line_code       => l_component_code
168897       ,p_accounting_line_type_code  => l_component_type_code
168898       ,p_accounting_line_appl_id    => l_component_appl_id
168899       ,p_amb_context_code           => l_amb_context_code
168900       ,p_entity_code                => l_entity_code
168901       ,p_event_class_code           => l_event_class_code);
168902    --
168903    -- set accounting class
168904    --
168905    xla_ae_lines_pkg.SetAcctClass(
168906            p_accounting_class_code  => 'TIPV'
168907          , p_ae_header_id           => l_ae_header_id
168908          );
168909 
168910    --
168911    -- set rounding class
168912    --
168913    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
168914                       'TIPV';
168915 
168916    --
168917    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
168918    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
168919    --
168920    -- bulk performance
168921    --
168922    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
168923 
168924    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
168925       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
168926 
168927    -- 4955764
168928    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
168929       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
168930 
168931    -- 4458381 Public Sector Enh
168932    
168933    --
168934    -- set accounting attributes for the line type
168935    --
168936    l_entered_amt_idx := 23;
168937    l_accted_amt_idx  := 28;
168938    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
168939    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
168940    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
168941    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
168942    l_rec_acct_attrs.array_num_value(2)  := 
168943 xla_ae_sources_pkg.GetSystemSourceNum(
168944    p_source_code           => 'XLA_EVENT_APPL_ID'
168945  , p_source_type_code      => 'Y'
168946  , p_source_application_id =>  602
168947 );
168948    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
168949    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
168950    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
168951    l_rec_acct_attrs.array_char_value(4)  := 
168952 xla_ae_sources_pkg.GetSystemSourceChar(
168953    p_source_code           => 'XLA_ENTITY_CODE'
168954  , p_source_type_code      => 'Y'
168955  , p_source_application_id =>  602
168956 );
168957    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
168958    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
168959    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
168960    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
168961    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
168962    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
168963    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
168964    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
168965    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
168966    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
168967    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
168968    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
168969    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
168970    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
168971    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
168972    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
168973    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
168974    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
168975    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
168976    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
168977    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
168978    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
168979    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
168980    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
168981    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
168982    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
168983    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
168984    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
168985    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
168986    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
168987    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
168988    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
168989    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
168990    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
168991    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
168992    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
168993    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
168997    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
168994    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
168995    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
168996    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
168998    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
168999    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
169000    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
169001    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
169002    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
169003    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
169004    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
169005    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
169006    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
169007    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
169008    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
169009    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
169010    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
169011    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
169012    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
169013    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
169014    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
169015    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
169016    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
169017    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
169018    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
169019    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
169020    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
169021    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
169022    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
169023    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
169024    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
169025    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
169026    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
169027    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
169028    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
169029    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
169030    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
169031    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
169032    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
169033    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
169034    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
169035 
169036    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
169037    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
169038 
169039    ---------------------------------------------------------------------------------------------------------------
169040    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
169041    ---------------------------------------------------------------------------------------------------------------
169042    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
169043 
169044    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
169045    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
169046 
169047    IF xla_accounting_cache_pkg.GetValueChar
169048          (p_source_code         => 'LEDGER_CATEGORY_CODE'
169049          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
169050    AND l_bflow_method_code = 'PRIOR_ENTRY'
169051 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
169052    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
169053          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
169054        )
169055    THEN
169056          xla_ae_lines_pkg.BflowUpgEntry
169057            (p_business_method_code    => l_bflow_method_code
169058            ,p_business_class_code     => l_bflow_class_code
169059            ,p_balance_type            => l_balance_type_code);
169060    ELSE
169061       NULL;
169062 -- No business flow processing for business flow method of NONE.
169063    END IF;
169064 
169065    --
169066    -- call analytical criteria
169067    --
169068    
169069    --
169070    -- call description
169071    --
169072    
169073 xla_ae_lines_pkg.SetLineDescription(
169074    p_ae_header_id => l_ae_header_id
169075   ,p_description  => Description_2 (
169076      p_application_id         => p_application_id
169077    , p_ae_header_id           => l_ae_header_id 
169078 , p_source_1 => p_source_1
169079    )
169080 );
169081 
169082 
169083    --
169084    -- call ADRs
169085    -- Bug 4922099
169086    --
169087    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
169088         (NVL(l_actual_upg_option, 'N') = 'O') OR
169089         (NVL(l_enc_upg_option, 'N') = 'O')
169090       )
169091    THEN
169092    NULL;
169093    --
169094    --
169095    
169096   l_ccid := AcctDerRule_32(
169097            p_application_id           => p_application_id
169098          , p_ae_header_id             => l_ae_header_id 
169099 , p_source_18 => p_source_18
169100          , x_transaction_coa_id       => l_adr_transaction_coa_id
169101          , x_accounting_coa_id        => l_adr_accounting_coa_id
169102          , x_value_type_code          => l_adr_value_type_code
169103          , p_side                     => 'NA'
169104    );
169105 
169106    xla_ae_lines_pkg.set_ccid(
169107     p_code_combination_id          => l_ccid
169111   , p_adr_code                     => 'AP_INVOICE_DIST'
169108   , p_value_type_code              => l_adr_value_type_code
169109   , p_transaction_coa_id           => l_adr_transaction_coa_id
169110   , p_accounting_coa_id            => l_adr_accounting_coa_id
169112   , p_adr_type_code                => 'S'
169113   , p_component_type               => l_component_type
169114   , p_component_code               => l_component_code
169115   , p_component_type_code          => l_component_type_code
169116   , p_component_appl_id            => l_component_appl_id
169117   , p_amb_context_code             => l_amb_context_code
169118   , p_side                         => 'NA'
169119   );
169120 
169121 
169122    --
169123    --
169124    END IF;
169125    --
169126    -- Bug 4922099
169127    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
169128           (NVL(l_enc_upg_option, 'N') = 'O')
169129         ) AND
169130         (l_bflow_method_code = 'PRIOR_ENTRY')
169131       )
169132    THEN
169133       IF
169134       --
169135       1 = 2
169136       --
169137       THEN
169138       xla_accounting_err_pkg.build_message
169139                                     (p_appli_s_name            => 'XLA'
169140                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
169141                                     ,p_token_1                 => 'LINE_NUMBER'
169142                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
169143                                     ,p_token_2                 => 'LINE_TYPE_NAME'
169144                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
169145                                                                              l_component_type
169146                                                                             ,l_component_code
169147                                                                             ,l_component_type_code
169148                                                                             ,l_component_appl_id
169149                                                                             ,l_amb_context_code
169150                                                                             ,l_entity_code
169151                                                                             ,l_event_class_code
169152                                                                            )
169153                                     ,p_token_3                 => 'OWNER'
169154                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
169155                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
169156                                                                           ,p_lookup_code    => l_component_type_code
169157                                                                          )
169158                                     ,p_token_4                 => 'PRODUCT_NAME'
169159                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
169160                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
169161                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
169162                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
169163                                     ,p_ae_header_id            =>  NULL
169164                                        );
169165 
169166         IF (C_LEVEL_ERROR>= g_log_level) THEN
169167                  trace
169168                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
169169                       ,p_level    => C_LEVEL_ERROR
169170                       ,p_module   => l_log_module);
169171         END IF;
169172       END IF;
169173    END IF;
169174    --
169175    --
169176    ------------------------------------------------------------------------------------------------
169177    -- 4219869 Business Flow
169178    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
169179    -- Prior Entry.  Currently, the following code is always generated.
169180    ------------------------------------------------------------------------------------------------
169181    XLA_AE_LINES_PKG.ValidateCurrentLine;
169182 
169183    ------------------------------------------------------------------------------------
169184    -- 4219869 Business Flow
169185    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
169186    ------------------------------------------------------------------------------------
169187    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
169188 
169189    ----------------------------------------------------------------------------------
169190    -- 4219869 Business Flow
169191    -- Update journal entry status -- Need to generate this within IF <condition>
169192    ----------------------------------------------------------------------------------
169193    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
169194          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
169195          ,p_balance_type_code => l_balance_type_code
169196          );
169197 
169198    -------------------------------------------------------------------------------------------
169199    -- 4262811 - Generate the Accrual Reversal lines
169200    -------------------------------------------------------------------------------------------
169201    BEGIN
169202       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
169203                               (g_array_event(p_event_id).array_value_num('header_index'));
169204       IF l_acc_rev_flag IS NULL THEN
169205          l_acc_rev_flag := 'N';
169206       END IF;
169210    END;
169207    EXCEPTION
169208       WHEN OTHERS THEN
169209          l_acc_rev_flag := 'N';
169211    --
169212    IF (l_acc_rev_flag = 'Y') THEN
169213 
169214        -- 4645092  ------------------------------------------------------------------------------
169215        -- To allow MPA report to determine if it should generate report process
169216        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
169217        ------------------------------------------------------------------------------------------
169218 
169219        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
169220        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
169221    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
169222    -- call ADRs
169223    -- Bug 4922099
169224    --
169225    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
169226         (NVL(l_actual_upg_option, 'N') = 'O') OR
169227         (NVL(l_enc_upg_option, 'N') = 'O')
169228       )
169229    THEN
169230    NULL;
169231    --
169232    --
169233    
169234   l_ccid := AcctDerRule_32(
169235            p_application_id           => p_application_id
169236          , p_ae_header_id             => l_ae_header_id 
169237 , p_source_18 => p_source_18
169238          , x_transaction_coa_id       => l_adr_transaction_coa_id
169239          , x_accounting_coa_id        => l_adr_accounting_coa_id
169240          , x_value_type_code          => l_adr_value_type_code
169241          , p_side                     => 'NA'
169242    );
169243 
169244    xla_ae_lines_pkg.set_ccid(
169245     p_code_combination_id          => l_ccid
169246   , p_value_type_code              => l_adr_value_type_code
169247   , p_transaction_coa_id           => l_adr_transaction_coa_id
169248   , p_accounting_coa_id            => l_adr_accounting_coa_id
169249   , p_adr_code                     => 'AP_INVOICE_DIST'
169250   , p_adr_type_code                => 'S'
169251   , p_component_type               => l_component_type
169252   , p_component_code               => l_component_code
169253   , p_component_type_code          => l_component_type_code
169254   , p_component_appl_id            => l_component_appl_id
169255   , p_amb_context_code             => l_amb_context_code
169256   , p_side                         => 'NA'
169257   );
169258 
169259 
169260    --
169261    --
169262    END IF;
169263 
169264        --
169265        -- Update the line information that should be overwritten
169266        --
169267        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
169268                                          p_header_num   => 1);
169269        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
169270 
169271        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
169272 
169273        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
169274           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
169275        END IF;
169276 
169277       --
169278       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
169279       --
169280       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
169281           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
169282       ELSE
169283           ---------------------------------------------------------------------------------------------------
169284           -- 4262811a Switch Sign
169285           ---------------------------------------------------------------------------------------------------
169286           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
169287           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
169288                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
169289           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
169290                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
169291           -- 5132302
169292           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
169293                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
169294 
169295       END IF;
169296 
169297       -- 4955764
169298       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
169299       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
169300 
169301 
169302       XLA_AE_LINES_PKG.ValidateCurrentLine;
169303       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
169304 
169305       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
169306                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
169307                ,p_balance_type_code => l_balance_type_code);
169308 
169309    END IF;
169310 
169311    -----------------------------------------------------------------------------------------
169312    -- 4262811 Multiperiod Accounting
169313    -----------------------------------------------------------------------------------------
169314      -- No MPA option is assigned.
169315 
169316 
169317 END IF;
169318 END IF;
169319 --
169320 
169321 --
169322 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
169323    trace
169324       (p_msg      => 'END of AcctLineType_272'
169325       ,p_level    => C_LEVEL_PROCEDURE
169326       ,p_module   => l_log_module);
169327 END IF;
169331       RAISE;
169328 --
169329 EXCEPTION
169330   WHEN xla_exceptions_pkg.application_exception THEN
169332   WHEN OTHERS THEN
169333        xla_exceptions_pkg.raise_message
169334            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_272');
169335 END AcctLineType_272;
169336 --
169337 
169338 ---------------------------------------
169339 --
169340 -- PRIVATE FUNCTION
169341 --         AcctLineType_273
169342 --
169343 ---------------------------------------
169344 PROCEDURE AcctLineType_273 (
169345   p_application_id        IN NUMBER
169346  ,p_event_id              IN NUMBER
169347  ,p_calculate_acctd_flag  IN VARCHAR2
169348  ,p_calculate_g_l_flag    IN VARCHAR2
169349  ,p_actual_flag           IN OUT VARCHAR2
169350  ,p_balance_type_code     OUT VARCHAR2
169351  ,p_gain_or_loss_ref      OUT VARCHAR2
169352  
169353 --Invoice Distribution Type
169354  , p_source_21            IN VARCHAR2
169355  , p_source_21_meaning    IN VARCHAR2
169356 --Accounting Reversal Indicator
169357  , p_source_41            IN VARCHAR2
169358 --Distribution Link Type
169359  , p_source_43            IN VARCHAR2
169360 --Allocation to Main Distribution Identifier
169361  , p_source_45            IN NUMBER
169362 --Invoice Identifier
169363  , p_source_46            IN NUMBER
169364 --Invoice Distribution Identifier
169365  , p_source_52            IN NUMBER
169366 --Payables Encumbrance Upgrade Credit Account
169367  , p_source_53            IN NUMBER
169368 --Payables Encumbrance Upgrade Credit Amount
169369  , p_source_54            IN NUMBER
169370 --Invoice Currency Code
169371  , p_source_55            IN VARCHAR2
169372 --Payables Encumbrance Upgrade Credit Base Amount
169373  , p_source_56            IN NUMBER
169374 --Payables Encumbrance Upgrade Debit Account
169375  , p_source_57            IN NUMBER
169376 --Payables Encumbrance Upgrade Debit Amount
169377  , p_source_58            IN NUMBER
169378 --Payables Encumbrance Upgrade Debit Base Amount
169379  , p_source_59            IN NUMBER
169380 --Payables Encumbrance Upgrade Option
169381  , p_source_60            IN VARCHAR2
169382 --Deferred Accounting End Date
169383  , p_source_65            IN DATE
169384 --Deferred Accounting Option
169385  , p_source_66            IN VARCHAR2
169386 --Deferred Accounting Start Date
169387  , p_source_67            IN DATE
169388 --Override Accounted Amount Indicator
169389  , p_source_68            IN VARCHAR2
169390  , p_source_68_meaning    IN VARCHAR2
169391 --Third Party Type
169392  , p_source_71            IN VARCHAR2
169393 --Parent Reversal Identifier
169394  , p_source_72            IN NUMBER
169395 --Invoice Distribution Statistical Amount
169396  , p_source_73            IN NUMBER
169397 --Invoice Distribution Tax Line Identifier
169398  , p_source_74            IN NUMBER
169399 --Invoice Distribution Tax Distribution Identifier from Tax
169400  , p_source_75            IN NUMBER
169401 --Invoice Distribution Summary Tax Line Identifier
169402  , p_source_76            IN NUMBER
169403 --Payables Upgrade Credit Encumbrance Type Identifier
169404  , p_source_77            IN NUMBER
169405 --Payables Upgrade Debit Encumbrance Type Identifier
169406  , p_source_78            IN NUMBER
169407 --Business Flow Accounts Payable Application Identifier
169408  , p_source_79            IN NUMBER
169409 --Business Flow Invoice Distribution Type
169410  , p_source_80            IN VARCHAR2
169411 --Business Flow Invoice Entity Code
169412  , p_source_81            IN VARCHAR2
169413 --Business Flow Invoice Distribution Identifier
169414  , p_source_82            IN NUMBER
169415 --Business Flow Invoice Identifier
169416  , p_source_83            IN NUMBER
169417 --Accrue on Receipt Option
169418  , p_source_84            IN VARCHAR2
169419  , p_source_84_meaning    IN VARCHAR2
169420 --Amount for Variance Amount
169421  , p_source_85            IN NUMBER
169422 --Purchasing Encumbrance Option
169423  , p_source_86            IN VARCHAR2
169424  , p_source_86_meaning    IN VARCHAR2
169425 --Invoice Encumbered Option
169426  , p_source_87            IN VARCHAR2
169427  , p_source_87_meaning    IN VARCHAR2
169428 --Quantity Variance Amount
169429  , p_source_161            IN NUMBER
169430 --Quantity Variance Amount in Ledger Currency
169431  , p_source_162            IN NUMBER
169432 )
169433 IS
169434 
169435 l_component_type              VARCHAR2(80);
169436 l_component_code              VARCHAR2(30);
169437 l_component_type_code         VARCHAR2(1);
169438 l_component_appl_id           INTEGER;
169439 l_amb_context_code            VARCHAR2(30);
169440 l_entity_code                 VARCHAR2(30);
169441 l_event_class_code            VARCHAR2(30);
169442 l_ae_header_id                NUMBER;
169443 l_event_type_code             VARCHAR2(30);
169444 l_line_definition_code        VARCHAR2(30);
169445 l_line_definition_owner_code  VARCHAR2(1);
169446 --
169447 -- adr variables
169448 l_segment                     VARCHAR2(30);
169449 l_ccid                        NUMBER;
169450 l_adr_transaction_coa_id      NUMBER;
169451 l_adr_accounting_coa_id       NUMBER;
169452 l_adr_flexfield_segment_code  VARCHAR2(30);
169453 l_adr_flex_value_set_id       NUMBER;
169454 l_adr_value_type_code         VARCHAR2(30);
169455 l_adr_value_combination_id    NUMBER;
169456 l_adr_value_segment_code      VARCHAR2(30);
169457 
169458 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
169459 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
169460 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
169461 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
169465 l_accted_amt_idx              NUMBER;
169462 
169463 -- 4262811 Variables ------------------------------------------------------------------------------------------
169464 l_entered_amt_idx             NUMBER;
169466 l_acc_rev_flag                VARCHAR2(1);
169467 l_accrual_line_num            NUMBER;
169468 l_tmp_amt                     NUMBER;
169469 l_acc_rev_natural_side_code   VARCHAR2(1);
169470 
169471 l_num_entries                 NUMBER;
169472 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
169473 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
169474 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
169475 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
169476 l_recog_line_1                NUMBER;
169477 l_recog_line_2                NUMBER;
169478 
169479 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
169480 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
169481 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
169482 
169483 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
169484 
169485 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
169486 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
169487 
169488 ---------------------------------------------------------------------------------------------------------------
169489 
169490 
169491 --
169492 -- bulk performance
169493 --
169494 l_balance_type_code           VARCHAR2(1);
169495 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
169496 l_log_module                  VARCHAR2(240);
169497 
169498 --
169499 -- Upgrade strategy
169500 --
169501 l_actual_upg_option           VARCHAR2(1);
169502 l_enc_upg_option           VARCHAR2(1);
169503 
169504 --
169505 BEGIN
169506 --
169507 IF g_log_enabled THEN
169508       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_273';
169509 END IF;
169510 --
169511 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
169512 
169513       trace
169514          (p_msg      => 'BEGIN of AcctLineType_273'
169515          ,p_level    => C_LEVEL_PROCEDURE
169516          ,p_module   => l_log_module);
169517 
169518 END IF;
169519 --
169520 l_component_type             := 'AMB_JLT';
169521 l_component_code             := 'AP_TAX_QTY_VARIANCE_CM_ENC';
169522 l_component_type_code        := 'S';
169523 l_component_appl_id          :=  200;
169524 l_amb_context_code           := 'DEFAULT';
169525 l_entity_code                := 'AP_INVOICES';
169526 l_event_class_code           := 'CREDIT MEMOS';
169527 l_event_type_code            := 'CREDIT MEMOS_ALL';
169528 l_line_definition_owner_code := 'S';
169529 l_line_definition_code       := 'ENC_REV_CM_ALL';
169530 --
169531 l_balance_type_code          := 'E';
169532 l_segment                     := NULL;
169533 l_ccid                        := NULL;
169534 l_adr_transaction_coa_id      := NULL;
169535 l_adr_accounting_coa_id       := NULL;
169536 l_adr_flexfield_segment_code  := NULL;
169537 l_adr_flex_value_set_id       := NULL;
169538 l_adr_value_type_code         := NULL;
169539 l_adr_value_combination_id    := NULL;
169540 l_adr_value_segment_code      := NULL;
169541 
169542 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
169543 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
169544 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
169545 l_budgetary_control_flag     := 'N';
169546 
169547 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
169548 l_bflow_applied_to_amt       := NULL; -- 5132302
169549 l_entered_amt_idx            := NULL;          -- 4262811
169550 l_accted_amt_idx             := NULL;          -- 4262811
169551 l_acc_rev_flag               := NULL;          -- 4262811
169552 l_accrual_line_num           := NULL;          -- 4262811
169553 l_tmp_amt                    := NULL;          -- 4262811
169554 --
169555  
169556 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
169557     l_balance_type_code <> 'B' THEN
169558 IF NVL(p_source_21,'
169559 ') =  'NONREC_TAX' AND 
169560 p_source_85 IS NOT NULL AND 
169561 NVL(p_source_84,'
169562 ') <>  'Y' AND 
169563 NVL(p_source_86,'
169564 ') =  'Y' AND 
169565 NVL(p_source_87,'
169566 ') =  'Y'
169567  THEN 
169568 
169569    --
169570    XLA_AE_LINES_PKG.SetNewLine;
169571 
169572    p_balance_type_code          := l_balance_type_code;
169573    -- set the flag so later we will know whether the gain loss line needs to be created
169574    
169575    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
169576      p_actual_flag :='A';
169577    END IF;
169578 
169579    --
169580    -- bulk performance
169581    --
169582    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
169583                                       p_header_num   => 0); -- 4262811
169584    --
169585    -- set accounting line options
169586    --
169587    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
169588            p_natural_side_code          => 'C'
169589          , p_gain_or_loss_flag          => 'N'
169590          , p_gl_transfer_mode_code      => 'S'
169591          , p_acct_entry_type_code       => 'E'
169592          , p_switch_side_flag           => 'Y'
169593          , p_merge_duplicate_code       => 'A'
169594          );
169595    --
169596    l_acc_rev_natural_side_code := 'D';  -- 4262811
169597    -- 
169598    --
169599    -- set accounting line type info
169600    --
169601    xla_ae_lines_pkg.SetAcctLineType
169602       (p_component_type             => l_component_type
169606       ,p_accounting_line_code       => l_component_code
169603       ,p_event_type_code            => l_event_type_code
169604       ,p_line_definition_owner_code => l_line_definition_owner_code
169605       ,p_line_definition_code       => l_line_definition_code
169607       ,p_accounting_line_type_code  => l_component_type_code
169608       ,p_accounting_line_appl_id    => l_component_appl_id
169609       ,p_amb_context_code           => l_amb_context_code
169610       ,p_entity_code                => l_entity_code
169611       ,p_event_class_code           => l_event_class_code);
169612    --
169613    -- set accounting class
169614    --
169615    xla_ae_lines_pkg.SetAcctClass(
169616            p_accounting_class_code  => 'TQV'
169617          , p_ae_header_id           => l_ae_header_id
169618          );
169619 
169620    --
169621    -- set rounding class
169622    --
169623    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
169624                       'TQV';
169625 
169626    --
169627    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
169628    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
169629    --
169630    -- bulk performance
169631    --
169632    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
169633 
169634    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
169635       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
169636 
169637    -- 4955764
169638    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
169639       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
169640 
169641    -- 4458381 Public Sector Enh
169642    
169643    --
169644    -- set accounting attributes for the line type
169645    --
169646    l_entered_amt_idx := 23;
169647    l_accted_amt_idx  := 25;
169648    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
169649    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
169650    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
169651    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
169652    l_rec_acct_attrs.array_num_value(2)  := 
169653 xla_ae_sources_pkg.GetSystemSourceNum(
169654    p_source_code           => 'XLA_EVENT_APPL_ID'
169655  , p_source_type_code      => 'Y'
169656  , p_source_application_id =>  602
169657 );
169658    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
169659    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
169660    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
169661    l_rec_acct_attrs.array_char_value(4)  := 
169662 xla_ae_sources_pkg.GetSystemSourceChar(
169663    p_source_code           => 'XLA_ENTITY_CODE'
169664  , p_source_type_code      => 'Y'
169665  , p_source_application_id =>  602
169666 );
169667    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
169668    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
169669    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
169670    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
169671    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
169672    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
169673    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
169674    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
169675    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
169676    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
169677    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
169678    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
169679    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
169680    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
169681    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
169682    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
169683    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
169684    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
169685    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
169686    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
169687    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
169688    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
169689    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
169690    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
169691    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
169692    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
169693    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
169694    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
169695    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
169696    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
169697    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
169698    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
169699    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
169700    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
169701    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
169702    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
169703    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
169704    l_rec_acct_attrs.array_num_value(23)  := p_source_161;
169705    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
169706    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
169707    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
169708    l_rec_acct_attrs.array_num_value(25)  := p_source_162;
169712    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
169709    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
169710    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
169711    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
169713    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
169714    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
169715    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
169716    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
169717    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
169718    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
169719    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
169720    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
169721    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
169722    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
169723    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
169724    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
169725    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
169726    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
169727    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
169728    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
169729    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
169730    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
169731    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
169732    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
169733    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
169734    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
169735 
169736    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
169737    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
169738 
169739    ---------------------------------------------------------------------------------------------------------------
169740    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
169741    ---------------------------------------------------------------------------------------------------------------
169742    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
169743 
169744    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
169745    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
169746 
169747    IF xla_accounting_cache_pkg.GetValueChar
169748          (p_source_code         => 'LEDGER_CATEGORY_CODE'
169749          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
169750    AND l_bflow_method_code = 'PRIOR_ENTRY'
169751 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
169752    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
169753          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
169754        )
169755    THEN
169756          xla_ae_lines_pkg.BflowUpgEntry
169757            (p_business_method_code    => l_bflow_method_code
169758            ,p_business_class_code     => l_bflow_class_code
169759            ,p_balance_type            => l_balance_type_code);
169760    ELSE
169761       NULL;
169762 XLA_AE_LINES_PKG.business_flow_validation(
169763                                 p_business_method_code     => l_bflow_method_code
169764                                ,p_business_class_code      => l_bflow_class_code
169765                                ,p_inherit_description_flag => l_inherit_desc_flag);
169766    END IF;
169767 
169768    --
169769    -- call analytical criteria
169770    --
169771    -- Inherited Analytical Criteria for business flow method of Prior Entry.
169772    --
169773    -- call description
169774    --
169775    -- No description or it is inherited.
169776    --
169777    -- call ADRs
169778    -- Bug 4922099
169779    --
169780    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
169781         (NVL(l_actual_upg_option, 'N') = 'O') OR
169782         (NVL(l_enc_upg_option, 'N') = 'O')
169783       )
169784    THEN
169785    NULL;
169786    --
169787    --
169788    
169789    --
169790    --
169791    END IF;
169792    --
169793    -- Bug 4922099
169794    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
169795           (NVL(l_enc_upg_option, 'N') = 'O')
169796         ) AND
169797         (l_bflow_method_code = 'PRIOR_ENTRY')
169798       )
169799    THEN
169800       IF
169801       --
169802       1 = 1
169803       --
169804       THEN
169805       xla_accounting_err_pkg.build_message
169806                                     (p_appli_s_name            => 'XLA'
169807                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
169808                                     ,p_token_1                 => 'LINE_NUMBER'
169809                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
169810                                     ,p_token_2                 => 'LINE_TYPE_NAME'
169811                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
169812                                                                              l_component_type
169813                                                                             ,l_component_code
169814                                                                             ,l_component_type_code
169815                                                                             ,l_component_appl_id
169816                                                                             ,l_amb_context_code
169817                                                                             ,l_entity_code
169821                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
169818                                                                             ,l_event_class_code
169819                                                                            )
169820                                     ,p_token_3                 => 'OWNER'
169822                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
169823                                                                           ,p_lookup_code    => l_component_type_code
169824                                                                          )
169825                                     ,p_token_4                 => 'PRODUCT_NAME'
169826                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
169827                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
169828                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
169829                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
169830                                     ,p_ae_header_id            =>  NULL
169831                                        );
169832 
169833         IF (C_LEVEL_ERROR>= g_log_level) THEN
169834                  trace
169835                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
169836                       ,p_level    => C_LEVEL_ERROR
169837                       ,p_module   => l_log_module);
169838         END IF;
169839       END IF;
169840    END IF;
169841    --
169842    --
169843    ------------------------------------------------------------------------------------------------
169844    -- 4219869 Business Flow
169845    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
169846    -- Prior Entry.  Currently, the following code is always generated.
169847    ------------------------------------------------------------------------------------------------
169848    -- No ValidateCurrentLine for business flow method of Prior Entry
169849 
169850    ------------------------------------------------------------------------------------
169851    -- 4219869 Business Flow
169852    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
169853    ------------------------------------------------------------------------------------
169854    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
169855 
169856    ----------------------------------------------------------------------------------
169857    -- 4219869 Business Flow
169858    -- Update journal entry status -- Need to generate this within IF <condition>
169859    ----------------------------------------------------------------------------------
169860    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
169861          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
169862          ,p_balance_type_code => l_balance_type_code
169863          );
169864 
169865    -------------------------------------------------------------------------------------------
169866    -- 4262811 - Generate the Accrual Reversal lines
169867    -------------------------------------------------------------------------------------------
169868    BEGIN
169869       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
169870                               (g_array_event(p_event_id).array_value_num('header_index'));
169871       IF l_acc_rev_flag IS NULL THEN
169872          l_acc_rev_flag := 'N';
169873       END IF;
169874    EXCEPTION
169875       WHEN OTHERS THEN
169876          l_acc_rev_flag := 'N';
169877    END;
169878    --
169879    IF (l_acc_rev_flag = 'Y') THEN
169880 
169881        -- 4645092  ------------------------------------------------------------------------------
169882        -- To allow MPA report to determine if it should generate report process
169883        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
169884        ------------------------------------------------------------------------------------------
169885 
169886        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
169887        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
169888    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
169889    -- call ADRs
169890    -- Bug 4922099
169891    --
169892    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
169893         (NVL(l_actual_upg_option, 'N') = 'O') OR
169894         (NVL(l_enc_upg_option, 'N') = 'O')
169895       )
169896    THEN
169897    NULL;
169898    --
169899    --
169900    
169901    --
169902    --
169903    END IF;
169904 
169905        --
169906        -- Update the line information that should be overwritten
169907        --
169908        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
169909                                          p_header_num   => 1);
169910        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
169911 
169912        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
169913 
169914        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
169915           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
169916        END IF;
169917 
169918       --
169919       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
169920       --
169921       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
169922           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
169923       ELSE
169924           ---------------------------------------------------------------------------------------------------
169928           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
169925           -- 4262811a Switch Sign
169926           ---------------------------------------------------------------------------------------------------
169927           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
169929                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
169930           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
169931                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
169932           -- 5132302
169933           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
169934                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
169935 
169936       END IF;
169937 
169938       -- 4955764
169939       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
169940       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
169941 
169942 
169943       XLA_AE_LINES_PKG.ValidateCurrentLine;
169944       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
169945 
169946       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
169947                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
169948                ,p_balance_type_code => l_balance_type_code);
169949 
169950    END IF;
169951 
169952    -----------------------------------------------------------------------------------------
169953    -- 4262811 Multiperiod Accounting
169954    -----------------------------------------------------------------------------------------
169955      -- No MPA option is assigned.
169956 
169957 
169958 END IF;
169959 END IF;
169960 --
169961 
169962 --
169963 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
169964    trace
169965       (p_msg      => 'END of AcctLineType_273'
169966       ,p_level    => C_LEVEL_PROCEDURE
169967       ,p_module   => l_log_module);
169968 END IF;
169969 --
169970 EXCEPTION
169971   WHEN xla_exceptions_pkg.application_exception THEN
169972       RAISE;
169973   WHEN OTHERS THEN
169974        xla_exceptions_pkg.raise_message
169975            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_273');
169976 END AcctLineType_273;
169977 --
169978 
169979 ---------------------------------------
169980 --
169981 -- PRIVATE FUNCTION
169982 --         AcctLineType_274
169983 --
169984 ---------------------------------------
169985 PROCEDURE AcctLineType_274 (
169986   p_application_id        IN NUMBER
169987  ,p_event_id              IN NUMBER
169988  ,p_calculate_acctd_flag  IN VARCHAR2
169989  ,p_calculate_g_l_flag    IN VARCHAR2
169990  ,p_actual_flag           IN OUT VARCHAR2
169991  ,p_balance_type_code     OUT VARCHAR2
169992  ,p_gain_or_loss_ref      OUT VARCHAR2
169993  
169994 --Invoice Distribution Type
169995  , p_source_21            IN VARCHAR2
169996  , p_source_21_meaning    IN VARCHAR2
169997 --Accounting Reversal Indicator
169998  , p_source_41            IN VARCHAR2
169999 --Distribution Link Type
170000  , p_source_43            IN VARCHAR2
170001 --Allocation to Main Distribution Identifier
170002  , p_source_45            IN NUMBER
170003 --Invoice Identifier
170004  , p_source_46            IN NUMBER
170005 --Invoice Distribution Identifier
170006  , p_source_52            IN NUMBER
170007 --Payables Encumbrance Upgrade Credit Account
170008  , p_source_53            IN NUMBER
170009 --Payables Encumbrance Upgrade Credit Amount
170010  , p_source_54            IN NUMBER
170011 --Invoice Currency Code
170012  , p_source_55            IN VARCHAR2
170013 --Payables Encumbrance Upgrade Credit Base Amount
170014  , p_source_56            IN NUMBER
170015 --Payables Encumbrance Upgrade Debit Account
170016  , p_source_57            IN NUMBER
170017 --Payables Encumbrance Upgrade Debit Amount
170018  , p_source_58            IN NUMBER
170019 --Payables Encumbrance Upgrade Debit Base Amount
170020  , p_source_59            IN NUMBER
170021 --Payables Encumbrance Upgrade Option
170022  , p_source_60            IN VARCHAR2
170023 --Deferred Accounting End Date
170024  , p_source_65            IN DATE
170025 --Deferred Accounting Option
170026  , p_source_66            IN VARCHAR2
170027 --Deferred Accounting Start Date
170028  , p_source_67            IN DATE
170029 --Override Accounted Amount Indicator
170030  , p_source_68            IN VARCHAR2
170031  , p_source_68_meaning    IN VARCHAR2
170032 --Third Party Type
170033  , p_source_71            IN VARCHAR2
170034 --Parent Reversal Identifier
170035  , p_source_72            IN NUMBER
170036 --Invoice Distribution Tax Line Identifier
170037  , p_source_74            IN NUMBER
170038 --Invoice Distribution Tax Distribution Identifier from Tax
170039  , p_source_75            IN NUMBER
170040 --Invoice Distribution Summary Tax Line Identifier
170041  , p_source_76            IN NUMBER
170042 --Payables Upgrade Credit Encumbrance Type Identifier
170043  , p_source_77            IN NUMBER
170044 --Payables Upgrade Debit Encumbrance Type Identifier
170045  , p_source_78            IN NUMBER
170046 --Business Flow Accounts Payable Application Identifier
170047  , p_source_79            IN NUMBER
170048 --Business Flow Invoice Distribution Type
170049  , p_source_80            IN VARCHAR2
170050 --Business Flow Invoice Entity Code
170051  , p_source_81            IN VARCHAR2
170052 --Business Flow Invoice Distribution Identifier
170053  , p_source_82            IN NUMBER
170057  , p_source_84            IN VARCHAR2
170054 --Business Flow Invoice Identifier
170055  , p_source_83            IN NUMBER
170056 --Accrue on Receipt Option
170058  , p_source_84_meaning    IN VARCHAR2
170059 --Purchasing Encumbrance Option
170060  , p_source_86            IN VARCHAR2
170061  , p_source_86_meaning    IN VARCHAR2
170062 --Invoice Encumbered Option
170063  , p_source_87            IN VARCHAR2
170064  , p_source_87_meaning    IN VARCHAR2
170065 --Quantity Variance Amount
170066  , p_source_161            IN NUMBER
170067 --Quantity Variance Amount in Ledger Currency
170068  , p_source_162            IN NUMBER
170069 )
170070 IS
170071 
170072 l_component_type              VARCHAR2(80);
170073 l_component_code              VARCHAR2(30);
170074 l_component_type_code         VARCHAR2(1);
170075 l_component_appl_id           INTEGER;
170076 l_amb_context_code            VARCHAR2(30);
170077 l_entity_code                 VARCHAR2(30);
170078 l_event_class_code            VARCHAR2(30);
170079 l_ae_header_id                NUMBER;
170080 l_event_type_code             VARCHAR2(30);
170081 l_line_definition_code        VARCHAR2(30);
170082 l_line_definition_owner_code  VARCHAR2(1);
170083 --
170084 -- adr variables
170085 l_segment                     VARCHAR2(30);
170086 l_ccid                        NUMBER;
170087 l_adr_transaction_coa_id      NUMBER;
170088 l_adr_accounting_coa_id       NUMBER;
170089 l_adr_flexfield_segment_code  VARCHAR2(30);
170090 l_adr_flex_value_set_id       NUMBER;
170091 l_adr_value_type_code         VARCHAR2(30);
170092 l_adr_value_combination_id    NUMBER;
170093 l_adr_value_segment_code      VARCHAR2(30);
170094 
170095 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
170096 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
170097 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
170098 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
170099 
170100 -- 4262811 Variables ------------------------------------------------------------------------------------------
170101 l_entered_amt_idx             NUMBER;
170102 l_accted_amt_idx              NUMBER;
170103 l_acc_rev_flag                VARCHAR2(1);
170104 l_accrual_line_num            NUMBER;
170105 l_tmp_amt                     NUMBER;
170106 l_acc_rev_natural_side_code   VARCHAR2(1);
170107 
170108 l_num_entries                 NUMBER;
170109 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
170110 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
170111 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
170112 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
170113 l_recog_line_1                NUMBER;
170114 l_recog_line_2                NUMBER;
170115 
170116 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
170117 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
170118 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
170119 
170120 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
170121 
170122 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
170123 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
170124 
170125 ---------------------------------------------------------------------------------------------------------------
170126 
170127 
170128 --
170129 -- bulk performance
170130 --
170131 l_balance_type_code           VARCHAR2(1);
170132 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
170133 l_log_module                  VARCHAR2(240);
170134 
170135 --
170136 -- Upgrade strategy
170137 --
170138 l_actual_upg_option           VARCHAR2(1);
170139 l_enc_upg_option           VARCHAR2(1);
170140 
170141 --
170142 BEGIN
170143 --
170144 IF g_log_enabled THEN
170145       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_274';
170146 END IF;
170147 --
170148 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
170149 
170150       trace
170151          (p_msg      => 'BEGIN of AcctLineType_274'
170152          ,p_level    => C_LEVEL_PROCEDURE
170153          ,p_module   => l_log_module);
170154 
170155 END IF;
170156 --
170157 l_component_type             := 'AMB_JLT';
170158 l_component_code             := 'AP_TAX_QTY_VARIANCE_DM_ENC';
170159 l_component_type_code        := 'S';
170160 l_component_appl_id          :=  200;
170161 l_amb_context_code           := 'DEFAULT';
170162 l_entity_code                := 'AP_INVOICES';
170163 l_event_class_code           := 'DEBIT MEMOS';
170164 l_event_type_code            := 'DEBIT MEMOS_ALL';
170165 l_line_definition_owner_code := 'S';
170166 l_line_definition_code       := 'ENC_REV_DM_ALL';
170167 --
170168 l_balance_type_code          := 'E';
170169 l_segment                     := NULL;
170170 l_ccid                        := NULL;
170171 l_adr_transaction_coa_id      := NULL;
170172 l_adr_accounting_coa_id       := NULL;
170173 l_adr_flexfield_segment_code  := NULL;
170174 l_adr_flex_value_set_id       := NULL;
170175 l_adr_value_type_code         := NULL;
170176 l_adr_value_combination_id    := NULL;
170177 l_adr_value_segment_code      := NULL;
170178 
170179 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
170180 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
170181 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
170182 l_budgetary_control_flag     := 'N';
170183 
170187 l_accted_amt_idx             := NULL;          -- 4262811
170184 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
170185 l_bflow_applied_to_amt       := NULL; -- 5132302
170186 l_entered_amt_idx            := NULL;          -- 4262811
170188 l_acc_rev_flag               := NULL;          -- 4262811
170189 l_accrual_line_num           := NULL;          -- 4262811
170190 l_tmp_amt                    := NULL;          -- 4262811
170191 --
170192  
170193 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
170194     l_balance_type_code <> 'B' THEN
170195 IF NVL(p_source_21,'
170196 ') =  'NONREC_TAX' AND 
170197 p_source_161 IS NOT NULL AND 
170198 NVL(p_source_84,'
170199 ') <>  'Y' AND 
170200 NVL(p_source_86,'
170201 ') =  'Y' AND 
170202 NVL(p_source_87,'
170203 ') =  'Y'
170204  THEN 
170205 
170206    --
170207    XLA_AE_LINES_PKG.SetNewLine;
170208 
170209    p_balance_type_code          := l_balance_type_code;
170210    -- set the flag so later we will know whether the gain loss line needs to be created
170211    
170212    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
170213      p_actual_flag :='A';
170214    END IF;
170215 
170216    --
170217    -- bulk performance
170218    --
170219    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
170220                                       p_header_num   => 0); -- 4262811
170221    --
170222    -- set accounting line options
170223    --
170224    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
170225            p_natural_side_code          => 'C'
170226          , p_gain_or_loss_flag          => 'N'
170227          , p_gl_transfer_mode_code      => 'S'
170228          , p_acct_entry_type_code       => 'E'
170229          , p_switch_side_flag           => 'Y'
170230          , p_merge_duplicate_code       => 'A'
170231          );
170232    --
170233    l_acc_rev_natural_side_code := 'D';  -- 4262811
170234    -- 
170235    --
170236    -- set accounting line type info
170237    --
170238    xla_ae_lines_pkg.SetAcctLineType
170239       (p_component_type             => l_component_type
170240       ,p_event_type_code            => l_event_type_code
170241       ,p_line_definition_owner_code => l_line_definition_owner_code
170242       ,p_line_definition_code       => l_line_definition_code
170243       ,p_accounting_line_code       => l_component_code
170244       ,p_accounting_line_type_code  => l_component_type_code
170245       ,p_accounting_line_appl_id    => l_component_appl_id
170246       ,p_amb_context_code           => l_amb_context_code
170247       ,p_entity_code                => l_entity_code
170248       ,p_event_class_code           => l_event_class_code);
170249    --
170250    -- set accounting class
170251    --
170252    xla_ae_lines_pkg.SetAcctClass(
170253            p_accounting_class_code  => 'TQV'
170254          , p_ae_header_id           => l_ae_header_id
170255          );
170256 
170257    --
170258    -- set rounding class
170259    --
170260    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
170261                       'TQV';
170262 
170263    --
170264    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
170265    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
170266    --
170267    -- bulk performance
170268    --
170269    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
170270 
170271    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
170272       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
170273 
170274    -- 4955764
170275    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
170276       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
170277 
170278    -- 4458381 Public Sector Enh
170279    
170280    --
170281    -- set accounting attributes for the line type
170282    --
170283    l_entered_amt_idx := 23;
170284    l_accted_amt_idx  := 25;
170285    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
170286    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
170287    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
170288    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
170289    l_rec_acct_attrs.array_num_value(2)  := 
170290 xla_ae_sources_pkg.GetSystemSourceNum(
170291    p_source_code           => 'XLA_EVENT_APPL_ID'
170292  , p_source_type_code      => 'Y'
170293  , p_source_application_id =>  602
170294 );
170295    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
170296    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
170297    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
170298    l_rec_acct_attrs.array_char_value(4)  := 
170299 xla_ae_sources_pkg.GetSystemSourceChar(
170300    p_source_code           => 'XLA_ENTITY_CODE'
170301  , p_source_type_code      => 'Y'
170302  , p_source_application_id =>  602
170303 );
170304    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
170305    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
170306    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
170307    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
170308    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
170312    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
170309    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
170310    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
170311    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
170313    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
170314    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
170315    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
170316    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
170317    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
170318    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
170319    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
170320    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
170321    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
170322    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
170323    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
170324    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
170325    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
170326    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
170327    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
170328    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
170329    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
170330    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
170331    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
170332    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
170333    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
170334    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
170335    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
170336    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
170337    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
170338    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
170339    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
170340    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
170341    l_rec_acct_attrs.array_num_value(23)  := p_source_161;
170342    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
170343    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
170344    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
170345    l_rec_acct_attrs.array_num_value(25)  := p_source_162;
170346    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
170347    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
170348    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
170349    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
170350    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
170351    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
170352    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
170353    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
170354    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
170355    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
170356    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
170357    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
170358    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
170359    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
170360    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
170361    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
170362    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
170363    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
170364    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
170365    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
170366    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
170367    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
170368    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
170369    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
170370 
170371    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
170372    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
170373 
170374    ---------------------------------------------------------------------------------------------------------------
170375    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
170376    ---------------------------------------------------------------------------------------------------------------
170377    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
170378 
170379    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
170380    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
170381 
170382    IF xla_accounting_cache_pkg.GetValueChar
170383          (p_source_code         => 'LEDGER_CATEGORY_CODE'
170384          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
170385    AND l_bflow_method_code = 'PRIOR_ENTRY'
170386 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
170387    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
170388          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
170389        )
170390    THEN
170391          xla_ae_lines_pkg.BflowUpgEntry
170392            (p_business_method_code    => l_bflow_method_code
170393            ,p_business_class_code     => l_bflow_class_code
170394            ,p_balance_type            => l_balance_type_code);
170395    ELSE
170396       NULL;
170400                                ,p_inherit_description_flag => l_inherit_desc_flag);
170397 XLA_AE_LINES_PKG.business_flow_validation(
170398                                 p_business_method_code     => l_bflow_method_code
170399                                ,p_business_class_code      => l_bflow_class_code
170401    END IF;
170402 
170403    --
170404    -- call analytical criteria
170405    --
170406    -- Inherited Analytical Criteria for business flow method of Prior Entry.
170407    --
170408    -- call description
170409    --
170410    -- No description or it is inherited.
170411    --
170412    -- call ADRs
170413    -- Bug 4922099
170414    --
170415    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
170416         (NVL(l_actual_upg_option, 'N') = 'O') OR
170417         (NVL(l_enc_upg_option, 'N') = 'O')
170418       )
170419    THEN
170420    NULL;
170421    --
170422    --
170423    
170424    --
170425    --
170426    END IF;
170427    --
170428    -- Bug 4922099
170429    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
170430           (NVL(l_enc_upg_option, 'N') = 'O')
170431         ) AND
170432         (l_bflow_method_code = 'PRIOR_ENTRY')
170433       )
170434    THEN
170435       IF
170436       --
170437       1 = 1
170438       --
170439       THEN
170440       xla_accounting_err_pkg.build_message
170441                                     (p_appli_s_name            => 'XLA'
170442                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
170443                                     ,p_token_1                 => 'LINE_NUMBER'
170444                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
170445                                     ,p_token_2                 => 'LINE_TYPE_NAME'
170446                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
170447                                                                              l_component_type
170448                                                                             ,l_component_code
170449                                                                             ,l_component_type_code
170450                                                                             ,l_component_appl_id
170451                                                                             ,l_amb_context_code
170452                                                                             ,l_entity_code
170453                                                                             ,l_event_class_code
170454                                                                            )
170455                                     ,p_token_3                 => 'OWNER'
170456                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
170457                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
170458                                                                           ,p_lookup_code    => l_component_type_code
170459                                                                          )
170460                                     ,p_token_4                 => 'PRODUCT_NAME'
170461                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
170462                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
170463                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
170464                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
170465                                     ,p_ae_header_id            =>  NULL
170466                                        );
170467 
170468         IF (C_LEVEL_ERROR>= g_log_level) THEN
170469                  trace
170470                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
170471                       ,p_level    => C_LEVEL_ERROR
170472                       ,p_module   => l_log_module);
170473         END IF;
170474       END IF;
170475    END IF;
170476    --
170477    --
170478    ------------------------------------------------------------------------------------------------
170479    -- 4219869 Business Flow
170480    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
170481    -- Prior Entry.  Currently, the following code is always generated.
170482    ------------------------------------------------------------------------------------------------
170483    -- No ValidateCurrentLine for business flow method of Prior Entry
170484 
170485    ------------------------------------------------------------------------------------
170486    -- 4219869 Business Flow
170487    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
170488    ------------------------------------------------------------------------------------
170489    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
170490 
170491    ----------------------------------------------------------------------------------
170492    -- 4219869 Business Flow
170493    -- Update journal entry status -- Need to generate this within IF <condition>
170494    ----------------------------------------------------------------------------------
170495    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
170496          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
170497          ,p_balance_type_code => l_balance_type_code
170498          );
170499 
170500    -------------------------------------------------------------------------------------------
170501    -- 4262811 - Generate the Accrual Reversal lines
170505                               (g_array_event(p_event_id).array_value_num('header_index'));
170502    -------------------------------------------------------------------------------------------
170503    BEGIN
170504       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
170506       IF l_acc_rev_flag IS NULL THEN
170507          l_acc_rev_flag := 'N';
170508       END IF;
170509    EXCEPTION
170510       WHEN OTHERS THEN
170511          l_acc_rev_flag := 'N';
170512    END;
170513    --
170514    IF (l_acc_rev_flag = 'Y') THEN
170515 
170516        -- 4645092  ------------------------------------------------------------------------------
170517        -- To allow MPA report to determine if it should generate report process
170518        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
170519        ------------------------------------------------------------------------------------------
170520 
170521        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
170522        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
170523    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
170524    -- call ADRs
170525    -- Bug 4922099
170526    --
170527    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
170528         (NVL(l_actual_upg_option, 'N') = 'O') OR
170529         (NVL(l_enc_upg_option, 'N') = 'O')
170530       )
170531    THEN
170532    NULL;
170533    --
170534    --
170535    
170536    --
170537    --
170538    END IF;
170539 
170540        --
170541        -- Update the line information that should be overwritten
170542        --
170543        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
170544                                          p_header_num   => 1);
170545        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
170546 
170547        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
170548 
170549        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
170550           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
170551        END IF;
170552 
170553       --
170554       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
170555       --
170556       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
170557           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
170558       ELSE
170559           ---------------------------------------------------------------------------------------------------
170560           -- 4262811a Switch Sign
170561           ---------------------------------------------------------------------------------------------------
170562           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
170563           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
170564                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
170565           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
170566                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
170567           -- 5132302
170568           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
170569                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
170570 
170571       END IF;
170572 
170573       -- 4955764
170574       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
170575       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
170576 
170577 
170578       XLA_AE_LINES_PKG.ValidateCurrentLine;
170579       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
170580 
170581       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
170582                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
170583                ,p_balance_type_code => l_balance_type_code);
170584 
170585    END IF;
170586 
170587    -----------------------------------------------------------------------------------------
170588    -- 4262811 Multiperiod Accounting
170589    -----------------------------------------------------------------------------------------
170590      -- No MPA option is assigned.
170591 
170592 
170593 END IF;
170594 END IF;
170595 --
170596 
170597 --
170598 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
170599    trace
170600       (p_msg      => 'END of AcctLineType_274'
170601       ,p_level    => C_LEVEL_PROCEDURE
170602       ,p_module   => l_log_module);
170603 END IF;
170604 --
170605 EXCEPTION
170606   WHEN xla_exceptions_pkg.application_exception THEN
170607       RAISE;
170608   WHEN OTHERS THEN
170609        xla_exceptions_pkg.raise_message
170610            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_274');
170611 END AcctLineType_274;
170612 --
170613 
170614 ---------------------------------------
170615 --
170616 -- PRIVATE FUNCTION
170617 --         AcctLineType_275
170618 --
170619 ---------------------------------------
170620 PROCEDURE AcctLineType_275 (
170621   p_application_id        IN NUMBER
170622  ,p_event_id              IN NUMBER
170623  ,p_calculate_acctd_flag  IN VARCHAR2
170624  ,p_calculate_g_l_flag    IN VARCHAR2
170625  ,p_actual_flag           IN OUT VARCHAR2
170626  ,p_balance_type_code     OUT VARCHAR2
170627  ,p_gain_or_loss_ref      OUT VARCHAR2
170628  
170629 --Invoice Distribution Type
170633  , p_source_41            IN VARCHAR2
170630  , p_source_21            IN VARCHAR2
170631  , p_source_21_meaning    IN VARCHAR2
170632 --Accounting Reversal Indicator
170634 --Distribution Link Type
170635  , p_source_43            IN VARCHAR2
170636 --Allocation to Main Distribution Identifier
170637  , p_source_45            IN NUMBER
170638 --Invoice Identifier
170639  , p_source_46            IN NUMBER
170640 --Invoice Distribution Identifier
170641  , p_source_52            IN NUMBER
170642 --Payables Encumbrance Upgrade Credit Account
170643  , p_source_53            IN NUMBER
170644 --Payables Encumbrance Upgrade Credit Amount
170645  , p_source_54            IN NUMBER
170646 --Invoice Currency Code
170647  , p_source_55            IN VARCHAR2
170648 --Payables Encumbrance Upgrade Credit Base Amount
170649  , p_source_56            IN NUMBER
170650 --Payables Encumbrance Upgrade Debit Account
170651  , p_source_57            IN NUMBER
170652 --Payables Encumbrance Upgrade Debit Amount
170653  , p_source_58            IN NUMBER
170654 --Payables Encumbrance Upgrade Debit Base Amount
170655  , p_source_59            IN NUMBER
170656 --Payables Encumbrance Upgrade Option
170657  , p_source_60            IN VARCHAR2
170658 --Invoice Distribution Amount
170659  , p_source_61            IN NUMBER
170660 --Deferred Accounting End Date
170661  , p_source_65            IN DATE
170662 --Deferred Accounting Option
170663  , p_source_66            IN VARCHAR2
170664 --Deferred Accounting Start Date
170665  , p_source_67            IN DATE
170666 --Override Accounted Amount Indicator
170667  , p_source_68            IN VARCHAR2
170668  , p_source_68_meaning    IN VARCHAR2
170669 --Third Party Type
170670  , p_source_71            IN VARCHAR2
170671 --Parent Reversal Identifier
170672  , p_source_72            IN NUMBER
170673 --Invoice Distribution Statistical Amount
170674  , p_source_73            IN NUMBER
170675 --Invoice Distribution Tax Line Identifier
170676  , p_source_74            IN NUMBER
170677 --Invoice Distribution Tax Distribution Identifier from Tax
170678  , p_source_75            IN NUMBER
170679 --Invoice Distribution Summary Tax Line Identifier
170680  , p_source_76            IN NUMBER
170681 --Payables Upgrade Credit Encumbrance Type Identifier
170682  , p_source_77            IN NUMBER
170683 --Payables Upgrade Debit Encumbrance Type Identifier
170684  , p_source_78            IN NUMBER
170685 --Business Flow Accounts Payable Application Identifier
170686  , p_source_79            IN NUMBER
170687 --Business Flow Invoice Distribution Type
170688  , p_source_80            IN VARCHAR2
170689 --Business Flow Invoice Entity Code
170690  , p_source_81            IN VARCHAR2
170691 --Business Flow Invoice Distribution Identifier
170692  , p_source_82            IN NUMBER
170693 --Business Flow Invoice Identifier
170694  , p_source_83            IN NUMBER
170695 --Accrue on Receipt Option
170696  , p_source_84            IN VARCHAR2
170697  , p_source_84_meaning    IN VARCHAR2
170698 --Purchasing Encumbrance Option
170699  , p_source_86            IN VARCHAR2
170700  , p_source_86_meaning    IN VARCHAR2
170701 --Invoice Encumbered Option
170702  , p_source_87            IN VARCHAR2
170703  , p_source_87_meaning    IN VARCHAR2
170704 --Quantity Variance Amount
170705  , p_source_161            IN NUMBER
170706 --Quantity Variance Amount in Ledger Currency
170707  , p_source_162            IN NUMBER
170708 )
170709 IS
170710 
170711 l_component_type              VARCHAR2(80);
170712 l_component_code              VARCHAR2(30);
170713 l_component_type_code         VARCHAR2(1);
170714 l_component_appl_id           INTEGER;
170715 l_amb_context_code            VARCHAR2(30);
170716 l_entity_code                 VARCHAR2(30);
170717 l_event_class_code            VARCHAR2(30);
170718 l_ae_header_id                NUMBER;
170719 l_event_type_code             VARCHAR2(30);
170720 l_line_definition_code        VARCHAR2(30);
170721 l_line_definition_owner_code  VARCHAR2(1);
170722 --
170723 -- adr variables
170724 l_segment                     VARCHAR2(30);
170725 l_ccid                        NUMBER;
170726 l_adr_transaction_coa_id      NUMBER;
170727 l_adr_accounting_coa_id       NUMBER;
170728 l_adr_flexfield_segment_code  VARCHAR2(30);
170729 l_adr_flex_value_set_id       NUMBER;
170730 l_adr_value_type_code         VARCHAR2(30);
170731 l_adr_value_combination_id    NUMBER;
170732 l_adr_value_segment_code      VARCHAR2(30);
170733 
170734 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
170735 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
170736 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
170737 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
170738 
170739 -- 4262811 Variables ------------------------------------------------------------------------------------------
170740 l_entered_amt_idx             NUMBER;
170741 l_accted_amt_idx              NUMBER;
170742 l_acc_rev_flag                VARCHAR2(1);
170743 l_accrual_line_num            NUMBER;
170744 l_tmp_amt                     NUMBER;
170745 l_acc_rev_natural_side_code   VARCHAR2(1);
170746 
170747 l_num_entries                 NUMBER;
170748 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
170749 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
170750 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
170751 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
170752 l_recog_line_1                NUMBER;
170753 l_recog_line_2                NUMBER;
170754 
170758 
170755 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
170756 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
170757 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
170759 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
170760 
170761 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
170762 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
170763 
170764 ---------------------------------------------------------------------------------------------------------------
170765 
170766 
170767 --
170768 -- bulk performance
170769 --
170770 l_balance_type_code           VARCHAR2(1);
170771 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
170772 l_log_module                  VARCHAR2(240);
170773 
170774 --
170775 -- Upgrade strategy
170776 --
170777 l_actual_upg_option           VARCHAR2(1);
170778 l_enc_upg_option           VARCHAR2(1);
170779 
170780 --
170781 BEGIN
170782 --
170783 IF g_log_enabled THEN
170784       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_275';
170785 END IF;
170786 --
170787 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
170788 
170789       trace
170790          (p_msg      => 'BEGIN of AcctLineType_275'
170791          ,p_level    => C_LEVEL_PROCEDURE
170792          ,p_module   => l_log_module);
170793 
170794 END IF;
170795 --
170796 l_component_type             := 'AMB_JLT';
170797 l_component_code             := 'AP_TAX_QTY_VARIANCE_INV_ENC';
170798 l_component_type_code        := 'S';
170799 l_component_appl_id          :=  200;
170800 l_amb_context_code           := 'DEFAULT';
170801 l_entity_code                := 'AP_INVOICES';
170802 l_event_class_code           := 'INVOICES';
170803 l_event_type_code            := 'INVOICES_ALL';
170804 l_line_definition_owner_code := 'S';
170805 l_line_definition_code       := 'ENC_REV_INVOICES_ALL';
170806 --
170807 l_balance_type_code          := 'E';
170808 l_segment                     := NULL;
170809 l_ccid                        := NULL;
170810 l_adr_transaction_coa_id      := NULL;
170811 l_adr_accounting_coa_id       := NULL;
170812 l_adr_flexfield_segment_code  := NULL;
170813 l_adr_flex_value_set_id       := NULL;
170814 l_adr_value_type_code         := NULL;
170815 l_adr_value_combination_id    := NULL;
170816 l_adr_value_segment_code      := NULL;
170817 
170818 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
170819 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
170820 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
170821 l_budgetary_control_flag     := 'N';
170822 
170823 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
170824 l_bflow_applied_to_amt       := NULL; -- 5132302
170825 l_entered_amt_idx            := NULL;          -- 4262811
170826 l_accted_amt_idx             := NULL;          -- 4262811
170827 l_acc_rev_flag               := NULL;          -- 4262811
170828 l_accrual_line_num           := NULL;          -- 4262811
170829 l_tmp_amt                    := NULL;          -- 4262811
170830 --
170831  
170832 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
170833     l_balance_type_code <> 'B' THEN
170834 IF NVL(p_source_21,'
170835 ') =  'NONREC_TAX' AND 
170836 p_source_161 IS NOT NULL AND 
170837 NVL(p_source_84,'
170838 ') <>  'Y' AND 
170839 NVL(p_source_86,'
170840 ') =  'Y' AND 
170841 NVL(p_source_87,'
170842 ') =  'Y'
170843  THEN 
170844 
170845    --
170846    XLA_AE_LINES_PKG.SetNewLine;
170847 
170848    p_balance_type_code          := l_balance_type_code;
170849    -- set the flag so later we will know whether the gain loss line needs to be created
170850    
170851    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
170852      p_actual_flag :='A';
170853    END IF;
170854 
170855    --
170856    -- bulk performance
170857    --
170858    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
170859                                       p_header_num   => 0); -- 4262811
170860    --
170861    -- set accounting line options
170862    --
170863    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
170864            p_natural_side_code          => 'C'
170865          , p_gain_or_loss_flag          => 'N'
170866          , p_gl_transfer_mode_code      => 'S'
170867          , p_acct_entry_type_code       => 'E'
170868          , p_switch_side_flag           => 'Y'
170869          , p_merge_duplicate_code       => 'A'
170870          );
170871    --
170872    l_acc_rev_natural_side_code := 'D';  -- 4262811
170873    -- 
170874    --
170875    -- set accounting line type info
170876    --
170877    xla_ae_lines_pkg.SetAcctLineType
170878       (p_component_type             => l_component_type
170879       ,p_event_type_code            => l_event_type_code
170880       ,p_line_definition_owner_code => l_line_definition_owner_code
170881       ,p_line_definition_code       => l_line_definition_code
170882       ,p_accounting_line_code       => l_component_code
170883       ,p_accounting_line_type_code  => l_component_type_code
170884       ,p_accounting_line_appl_id    => l_component_appl_id
170885       ,p_amb_context_code           => l_amb_context_code
170886       ,p_entity_code                => l_entity_code
170887       ,p_event_class_code           => l_event_class_code);
170888    --
170889    -- set accounting class
170890    --
170891    xla_ae_lines_pkg.SetAcctClass(
170895 
170892            p_accounting_class_code  => 'TQV'
170893          , p_ae_header_id           => l_ae_header_id
170894          );
170896    --
170897    -- set rounding class
170898    --
170899    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
170900                       'TQV';
170901 
170902    --
170903    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
170904    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
170905    --
170906    -- bulk performance
170907    --
170908    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
170909 
170910    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
170911       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
170912 
170913    -- 4955764
170914    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
170915       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
170916 
170917    -- 4458381 Public Sector Enh
170918    
170919    --
170920    -- set accounting attributes for the line type
170921    --
170922    l_entered_amt_idx := 24;
170923    l_accted_amt_idx  := 26;
170924    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
170925    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
170926    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
170927    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
170928    l_rec_acct_attrs.array_num_value(2)  := 
170929 xla_ae_sources_pkg.GetSystemSourceNum(
170930    p_source_code           => 'XLA_EVENT_APPL_ID'
170931  , p_source_type_code      => 'Y'
170932  , p_source_application_id =>  602
170933 );
170934    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
170935    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
170936    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
170937    l_rec_acct_attrs.array_char_value(4)  := 
170938 xla_ae_sources_pkg.GetSystemSourceChar(
170939    p_source_code           => 'XLA_ENTITY_CODE'
170940  , p_source_type_code      => 'Y'
170941  , p_source_application_id =>  602
170942 );
170943    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
170944    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
170945    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
170946    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
170947    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
170948    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
170949    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
170950    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
170951    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
170952    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
170953    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
170954    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
170955    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
170956    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
170957    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
170958    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
170959    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
170960    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
170961    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
170962    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
170963    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
170964    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
170965    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
170966    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
170967    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
170968    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
170969    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
170970    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
170971    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
170972    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
170973    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
170974    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
170975    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
170976    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
170977    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
170978    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
170979    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
170980    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
170981    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
170982    l_rec_acct_attrs.array_num_value(24)  := p_source_161;
170983    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
170984    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
170985    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
170986    l_rec_acct_attrs.array_num_value(26)  := p_source_162;
170987    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
170988    l_rec_acct_attrs.array_date_value(27)  := p_source_65;
170989    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
170990    l_rec_acct_attrs.array_char_value(28)  := p_source_66;
170991    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
170992    l_rec_acct_attrs.array_date_value(29)  := p_source_67;
170993    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
170994    l_rec_acct_attrs.array_char_value(30)  := p_source_68;
170995    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
170996    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
170997    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
170998    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
170999    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
171000    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
171001    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
171002    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
171003    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
171004    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
171005    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
171006    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
171007    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
171008    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
171009    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
171010    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
171011    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
171012    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
171013 
171014    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
171015    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
171016 
171017    ---------------------------------------------------------------------------------------------------------------
171018    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
171019    ---------------------------------------------------------------------------------------------------------------
171020    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
171021 
171022    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
171023    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
171024 
171025    IF xla_accounting_cache_pkg.GetValueChar
171026          (p_source_code         => 'LEDGER_CATEGORY_CODE'
171027          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
171028    AND l_bflow_method_code = 'PRIOR_ENTRY'
171029 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
171030    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
171031          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
171032        )
171033    THEN
171034          xla_ae_lines_pkg.BflowUpgEntry
171035            (p_business_method_code    => l_bflow_method_code
171036            ,p_business_class_code     => l_bflow_class_code
171037            ,p_balance_type            => l_balance_type_code);
171038    ELSE
171039       NULL;
171040 XLA_AE_LINES_PKG.business_flow_validation(
171041                                 p_business_method_code     => l_bflow_method_code
171042                                ,p_business_class_code      => l_bflow_class_code
171043                                ,p_inherit_description_flag => l_inherit_desc_flag);
171044    END IF;
171045 
171046    --
171047    -- call analytical criteria
171048    --
171049    -- Inherited Analytical Criteria for business flow method of Prior Entry.
171050    --
171051    -- call description
171052    --
171053    -- No description or it is inherited.
171054    --
171055    -- call ADRs
171056    -- Bug 4922099
171057    --
171058    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
171059         (NVL(l_actual_upg_option, 'N') = 'O') OR
171060         (NVL(l_enc_upg_option, 'N') = 'O')
171061       )
171062    THEN
171063    NULL;
171064    --
171065    --
171066    
171067    --
171068    --
171069    END IF;
171070    --
171071    -- Bug 4922099
171072    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
171073           (NVL(l_enc_upg_option, 'N') = 'O')
171074         ) AND
171075         (l_bflow_method_code = 'PRIOR_ENTRY')
171076       )
171077    THEN
171078       IF
171079       --
171080       1 = 1
171081       --
171082       THEN
171083       xla_accounting_err_pkg.build_message
171084                                     (p_appli_s_name            => 'XLA'
171085                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
171086                                     ,p_token_1                 => 'LINE_NUMBER'
171087                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
171088                                     ,p_token_2                 => 'LINE_TYPE_NAME'
171089                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
171090                                                                              l_component_type
171091                                                                             ,l_component_code
171092                                                                             ,l_component_type_code
171093                                                                             ,l_component_appl_id
171094                                                                             ,l_amb_context_code
171095                                                                             ,l_entity_code
171096                                                                             ,l_event_class_code
171097                                                                            )
171098                                     ,p_token_3                 => 'OWNER'
171099                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
171100                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
171101                                                                           ,p_lookup_code    => l_component_type_code
171102                                                                          )
171103                                     ,p_token_4                 => 'PRODUCT_NAME'
171104                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
171105                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
171106                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
171107                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
171108                                     ,p_ae_header_id            =>  NULL
171109                                        );
171110 
171111         IF (C_LEVEL_ERROR>= g_log_level) THEN
171112                  trace
171113                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
171114                       ,p_level    => C_LEVEL_ERROR
171115                       ,p_module   => l_log_module);
171116         END IF;
171117       END IF;
171118    END IF;
171119    --
171120    --
171121    ------------------------------------------------------------------------------------------------
171122    -- 4219869 Business Flow
171123    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
171124    -- Prior Entry.  Currently, the following code is always generated.
171125    ------------------------------------------------------------------------------------------------
171126    -- No ValidateCurrentLine for business flow method of Prior Entry
171127 
171128    ------------------------------------------------------------------------------------
171129    -- 4219869 Business Flow
171130    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
171131    ------------------------------------------------------------------------------------
171132    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
171133 
171134    ----------------------------------------------------------------------------------
171135    -- 4219869 Business Flow
171136    -- Update journal entry status -- Need to generate this within IF <condition>
171137    ----------------------------------------------------------------------------------
171138    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
171139          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
171140          ,p_balance_type_code => l_balance_type_code
171141          );
171142 
171143    -------------------------------------------------------------------------------------------
171144    -- 4262811 - Generate the Accrual Reversal lines
171145    -------------------------------------------------------------------------------------------
171146    BEGIN
171147       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
171148                               (g_array_event(p_event_id).array_value_num('header_index'));
171149       IF l_acc_rev_flag IS NULL THEN
171150          l_acc_rev_flag := 'N';
171151       END IF;
171152    EXCEPTION
171153       WHEN OTHERS THEN
171154          l_acc_rev_flag := 'N';
171155    END;
171156    --
171157    IF (l_acc_rev_flag = 'Y') THEN
171158 
171159        -- 4645092  ------------------------------------------------------------------------------
171160        -- To allow MPA report to determine if it should generate report process
171161        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
171162        ------------------------------------------------------------------------------------------
171163 
171164        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
171165        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
171166    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
171167    -- call ADRs
171168    -- Bug 4922099
171169    --
171170    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
171171         (NVL(l_actual_upg_option, 'N') = 'O') OR
171172         (NVL(l_enc_upg_option, 'N') = 'O')
171173       )
171174    THEN
171175    NULL;
171176    --
171177    --
171178    
171179    --
171180    --
171181    END IF;
171182 
171183        --
171184        -- Update the line information that should be overwritten
171185        --
171186        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
171187                                          p_header_num   => 1);
171188        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
171189 
171190        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
171191 
171192        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
171193           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
171194        END IF;
171195 
171196       --
171197       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
171198       --
171199       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
171200           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
171201       ELSE
171202           ---------------------------------------------------------------------------------------------------
171203           -- 4262811a Switch Sign
171204           ---------------------------------------------------------------------------------------------------
171205           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
171206           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
171207                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
171208           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
171209                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
171210           -- 5132302
171211           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
171212                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
171213 
171214       END IF;
171215 
171216       -- 4955764
171217       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
171218       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
171219 
171220 
171221       XLA_AE_LINES_PKG.ValidateCurrentLine;
171222       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
171223 
171224       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
171225                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
171226                ,p_balance_type_code => l_balance_type_code);
171227 
171228    END IF;
171229 
171230    -----------------------------------------------------------------------------------------
171231    -- 4262811 Multiperiod Accounting
171232    -----------------------------------------------------------------------------------------
171233      -- No MPA option is assigned.
171234 
171235 
171236 END IF;
171237 END IF;
171238 --
171239 
171240 --
171241 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
171242    trace
171243       (p_msg      => 'END of AcctLineType_275'
171244       ,p_level    => C_LEVEL_PROCEDURE
171245       ,p_module   => l_log_module);
171246 END IF;
171247 --
171248 EXCEPTION
171249   WHEN xla_exceptions_pkg.application_exception THEN
171250       RAISE;
171251   WHEN OTHERS THEN
171252        xla_exceptions_pkg.raise_message
171253            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_275');
171254 END AcctLineType_275;
171255 --
171256 
171257 ---------------------------------------
171258 --
171259 -- PRIVATE FUNCTION
171260 --         AcctLineType_276
171261 --
171262 ---------------------------------------
171263 PROCEDURE AcctLineType_276 (
171264   p_application_id        IN NUMBER
171270  ,p_gain_or_loss_ref      OUT VARCHAR2
171265  ,p_event_id              IN NUMBER
171266  ,p_calculate_acctd_flag  IN VARCHAR2
171267  ,p_calculate_g_l_flag    IN VARCHAR2
171268  ,p_actual_flag           IN OUT VARCHAR2
171269  ,p_balance_type_code     OUT VARCHAR2
171271  
171272 --Invoice Distribution Type
171273  , p_source_21            IN VARCHAR2
171274  , p_source_21_meaning    IN VARCHAR2
171275 --Accounting Reversal Indicator
171276  , p_source_41            IN VARCHAR2
171277 --Distribution Link Type
171278  , p_source_43            IN VARCHAR2
171279 --Allocation to Main Distribution Identifier
171280  , p_source_45            IN NUMBER
171281 --Invoice Identifier
171282  , p_source_46            IN NUMBER
171283 --Invoice Distribution Identifier
171284  , p_source_52            IN NUMBER
171285 --Payables Encumbrance Upgrade Credit Account
171286  , p_source_53            IN NUMBER
171287 --Payables Encumbrance Upgrade Credit Amount
171288  , p_source_54            IN NUMBER
171289 --Invoice Currency Code
171290  , p_source_55            IN VARCHAR2
171291 --Payables Encumbrance Upgrade Credit Base Amount
171292  , p_source_56            IN NUMBER
171293 --Payables Encumbrance Upgrade Debit Account
171294  , p_source_57            IN NUMBER
171295 --Payables Encumbrance Upgrade Debit Amount
171296  , p_source_58            IN NUMBER
171297 --Payables Encumbrance Upgrade Debit Base Amount
171298  , p_source_59            IN NUMBER
171299 --Payables Encumbrance Upgrade Option
171300  , p_source_60            IN VARCHAR2
171301 --Deferred Accounting End Date
171302  , p_source_65            IN DATE
171303 --Deferred Accounting Option
171304  , p_source_66            IN VARCHAR2
171305 --Deferred Accounting Start Date
171306  , p_source_67            IN DATE
171307 --Override Accounted Amount Indicator
171308  , p_source_68            IN VARCHAR2
171309  , p_source_68_meaning    IN VARCHAR2
171310 --Third Party Type
171311  , p_source_71            IN VARCHAR2
171312 --Parent Reversal Identifier
171313  , p_source_72            IN NUMBER
171314 --Invoice Distribution Statistical Amount
171315  , p_source_73            IN NUMBER
171316 --Invoice Distribution Tax Line Identifier
171317  , p_source_74            IN NUMBER
171318 --Invoice Distribution Tax Distribution Identifier from Tax
171319  , p_source_75            IN NUMBER
171320 --Invoice Distribution Summary Tax Line Identifier
171321  , p_source_76            IN NUMBER
171322 --Payables Upgrade Credit Encumbrance Type Identifier
171323  , p_source_77            IN NUMBER
171324 --Payables Upgrade Debit Encumbrance Type Identifier
171325  , p_source_78            IN NUMBER
171326 --Business Flow Accounts Payable Application Identifier
171327  , p_source_79            IN NUMBER
171328 --Business Flow Invoice Distribution Type
171329  , p_source_80            IN VARCHAR2
171330 --Business Flow Invoice Entity Code
171331  , p_source_81            IN VARCHAR2
171332 --Business Flow Invoice Distribution Identifier
171333  , p_source_82            IN NUMBER
171334 --Business Flow Invoice Identifier
171335  , p_source_83            IN NUMBER
171336 --Accrue on Receipt Option
171337  , p_source_84            IN VARCHAR2
171338  , p_source_84_meaning    IN VARCHAR2
171339 --Purchasing Encumbrance Option
171340  , p_source_86            IN VARCHAR2
171341  , p_source_86_meaning    IN VARCHAR2
171342 --Invoice Encumbered Option
171343  , p_source_87            IN VARCHAR2
171344  , p_source_87_meaning    IN VARCHAR2
171345 --Quantity Variance Amount
171346  , p_source_161            IN NUMBER
171347 --Quantity Variance Amount in Ledger Currency
171348  , p_source_162            IN NUMBER
171349 )
171350 IS
171351 
171352 l_component_type              VARCHAR2(80);
171353 l_component_code              VARCHAR2(30);
171354 l_component_type_code         VARCHAR2(1);
171355 l_component_appl_id           INTEGER;
171356 l_amb_context_code            VARCHAR2(30);
171357 l_entity_code                 VARCHAR2(30);
171358 l_event_class_code            VARCHAR2(30);
171359 l_ae_header_id                NUMBER;
171360 l_event_type_code             VARCHAR2(30);
171361 l_line_definition_code        VARCHAR2(30);
171362 l_line_definition_owner_code  VARCHAR2(1);
171363 --
171364 -- adr variables
171365 l_segment                     VARCHAR2(30);
171366 l_ccid                        NUMBER;
171367 l_adr_transaction_coa_id      NUMBER;
171368 l_adr_accounting_coa_id       NUMBER;
171369 l_adr_flexfield_segment_code  VARCHAR2(30);
171370 l_adr_flex_value_set_id       NUMBER;
171371 l_adr_value_type_code         VARCHAR2(30);
171372 l_adr_value_combination_id    NUMBER;
171373 l_adr_value_segment_code      VARCHAR2(30);
171374 
171375 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
171376 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
171377 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
171378 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
171379 
171380 -- 4262811 Variables ------------------------------------------------------------------------------------------
171381 l_entered_amt_idx             NUMBER;
171382 l_accted_amt_idx              NUMBER;
171383 l_acc_rev_flag                VARCHAR2(1);
171384 l_accrual_line_num            NUMBER;
171385 l_tmp_amt                     NUMBER;
171386 l_acc_rev_natural_side_code   VARCHAR2(1);
171387 
171391 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
171388 l_num_entries                 NUMBER;
171389 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
171390 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
171392 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
171393 l_recog_line_1                NUMBER;
171394 l_recog_line_2                NUMBER;
171395 
171396 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
171397 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
171398 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
171399 
171400 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
171401 
171402 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
171403 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
171404 
171405 ---------------------------------------------------------------------------------------------------------------
171406 
171407 
171408 --
171409 -- bulk performance
171410 --
171411 l_balance_type_code           VARCHAR2(1);
171412 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
171413 l_log_module                  VARCHAR2(240);
171414 
171415 --
171416 -- Upgrade strategy
171417 --
171418 l_actual_upg_option           VARCHAR2(1);
171419 l_enc_upg_option           VARCHAR2(1);
171420 
171421 --
171422 BEGIN
171423 --
171424 IF g_log_enabled THEN
171425       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_276';
171426 END IF;
171427 --
171428 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
171429 
171430       trace
171431          (p_msg      => 'BEGIN of AcctLineType_276'
171432          ,p_level    => C_LEVEL_PROCEDURE
171433          ,p_module   => l_log_module);
171434 
171435 END IF;
171436 --
171437 l_component_type             := 'AMB_JLT';
171438 l_component_code             := 'AP_TAX_QTY_VARIANCE_PP_ENC';
171439 l_component_type_code        := 'S';
171440 l_component_appl_id          :=  200;
171441 l_amb_context_code           := 'DEFAULT';
171442 l_entity_code                := 'AP_INVOICES';
171443 l_event_class_code           := 'PREPAYMENTS';
171444 l_event_type_code            := 'PREPAYMENTS_ALL';
171445 l_line_definition_owner_code := 'S';
171446 l_line_definition_code       := 'ENC_REV_PREPAY_ALL';
171447 --
171448 l_balance_type_code          := 'E';
171449 l_segment                     := NULL;
171450 l_ccid                        := NULL;
171451 l_adr_transaction_coa_id      := NULL;
171452 l_adr_accounting_coa_id       := NULL;
171453 l_adr_flexfield_segment_code  := NULL;
171454 l_adr_flex_value_set_id       := NULL;
171455 l_adr_value_type_code         := NULL;
171456 l_adr_value_combination_id    := NULL;
171457 l_adr_value_segment_code      := NULL;
171458 
171459 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
171460 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
171461 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
171462 l_budgetary_control_flag     := 'N';
171463 
171464 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
171465 l_bflow_applied_to_amt       := NULL; -- 5132302
171466 l_entered_amt_idx            := NULL;          -- 4262811
171467 l_accted_amt_idx             := NULL;          -- 4262811
171468 l_acc_rev_flag               := NULL;          -- 4262811
171469 l_accrual_line_num           := NULL;          -- 4262811
171470 l_tmp_amt                    := NULL;          -- 4262811
171471 --
171472  
171473 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
171474     l_balance_type_code <> 'B' THEN
171475 IF NVL(p_source_21,'
171476 ') =  'NONREC_TAX' AND 
171477 p_source_161 IS NOT NULL AND 
171478 NVL(p_source_84,'
171479 ') <>  'Y' AND 
171480 NVL(p_source_86,'
171481 ') =  'Y' AND 
171482 NVL(p_source_87,'
171483 ') =  'Y'
171484  THEN 
171485 
171486    --
171487    XLA_AE_LINES_PKG.SetNewLine;
171488 
171489    p_balance_type_code          := l_balance_type_code;
171490    -- set the flag so later we will know whether the gain loss line needs to be created
171491    
171492    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
171493      p_actual_flag :='A';
171494    END IF;
171495 
171496    --
171497    -- bulk performance
171498    --
171499    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
171500                                       p_header_num   => 0); -- 4262811
171501    --
171502    -- set accounting line options
171503    --
171504    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
171505            p_natural_side_code          => 'C'
171506          , p_gain_or_loss_flag          => 'N'
171507          , p_gl_transfer_mode_code      => 'S'
171508          , p_acct_entry_type_code       => 'E'
171509          , p_switch_side_flag           => 'Y'
171510          , p_merge_duplicate_code       => 'A'
171511          );
171512    --
171513    l_acc_rev_natural_side_code := 'D';  -- 4262811
171514    -- 
171515    --
171516    -- set accounting line type info
171517    --
171518    xla_ae_lines_pkg.SetAcctLineType
171519       (p_component_type             => l_component_type
171520       ,p_event_type_code            => l_event_type_code
171521       ,p_line_definition_owner_code => l_line_definition_owner_code
171522       ,p_line_definition_code       => l_line_definition_code
171523       ,p_accounting_line_code       => l_component_code
171524       ,p_accounting_line_type_code  => l_component_type_code
171525       ,p_accounting_line_appl_id    => l_component_appl_id
171526       ,p_amb_context_code           => l_amb_context_code
171527       ,p_entity_code                => l_entity_code
171528       ,p_event_class_code           => l_event_class_code);
171529    --
171530    -- set accounting class
171531    --
171532    xla_ae_lines_pkg.SetAcctClass(
171533            p_accounting_class_code  => 'TQV'
171534          , p_ae_header_id           => l_ae_header_id
171535          );
171536 
171537    --
171538    -- set rounding class
171539    --
171540    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
171541                       'TQV';
171542 
171543    --
171544    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
171545    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
171546    --
171547    -- bulk performance
171548    --
171549    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
171550 
171551    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
171552       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
171553 
171554    -- 4955764
171555    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
171556       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
171557 
171558    -- 4458381 Public Sector Enh
171559    
171560    --
171561    -- set accounting attributes for the line type
171562    --
171563    l_entered_amt_idx := 23;
171564    l_accted_amt_idx  := 25;
171565    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
171566    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
171567    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
171568    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
171569    l_rec_acct_attrs.array_num_value(2)  := 
171570 xla_ae_sources_pkg.GetSystemSourceNum(
171571    p_source_code           => 'XLA_EVENT_APPL_ID'
171572  , p_source_type_code      => 'Y'
171573  , p_source_application_id =>  602
171574 );
171575    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
171576    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
171577    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
171578    l_rec_acct_attrs.array_char_value(4)  := 
171579 xla_ae_sources_pkg.GetSystemSourceChar(
171580    p_source_code           => 'XLA_ENTITY_CODE'
171581  , p_source_type_code      => 'Y'
171582  , p_source_application_id =>  602
171583 );
171584    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
171588    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
171585    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
171586    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
171587    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
171589    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
171590    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
171591    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
171592    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
171593    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
171594    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
171595    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
171596    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
171597    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
171598    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
171599    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
171600    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
171601    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
171602    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
171603    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
171604    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
171605    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
171606    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
171607    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
171608    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
171609    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
171610    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
171611    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
171612    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
171613    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
171614    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
171615    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
171616    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
171617    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
171618    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
171619    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
171620    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
171621    l_rec_acct_attrs.array_num_value(23)  := p_source_161;
171622    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
171623    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
171624    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
171625    l_rec_acct_attrs.array_num_value(25)  := p_source_162;
171626    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
171627    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
171628    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
171629    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
171630    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
171631    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
171632    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
171633    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
171634    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
171635    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
171636    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
171637    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
171638    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
171639    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
171640    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
171641    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
171642    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
171643    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
171644    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
171645    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
171646    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
171647    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
171648    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
171649    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
171650    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
171651    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
171652 
171653    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
171654    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
171655 
171656    ---------------------------------------------------------------------------------------------------------------
171657    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
171658    ---------------------------------------------------------------------------------------------------------------
171659    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
171660 
171661    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
171662    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
171663 
171664    IF xla_accounting_cache_pkg.GetValueChar
171665          (p_source_code         => 'LEDGER_CATEGORY_CODE'
171666          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
171667    AND l_bflow_method_code = 'PRIOR_ENTRY'
171668 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
171669    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
171670          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
171671        )
171672    THEN
171673          xla_ae_lines_pkg.BflowUpgEntry
171677    ELSE
171674            (p_business_method_code    => l_bflow_method_code
171675            ,p_business_class_code     => l_bflow_class_code
171676            ,p_balance_type            => l_balance_type_code);
171678       NULL;
171679 XLA_AE_LINES_PKG.business_flow_validation(
171680                                 p_business_method_code     => l_bflow_method_code
171681                                ,p_business_class_code      => l_bflow_class_code
171682                                ,p_inherit_description_flag => l_inherit_desc_flag);
171683    END IF;
171684 
171685    --
171686    -- call analytical criteria
171687    --
171688    -- Inherited Analytical Criteria for business flow method of Prior Entry.
171689    --
171690    -- call description
171691    --
171692    -- No description or it is inherited.
171693    --
171694    -- call ADRs
171695    -- Bug 4922099
171696    --
171697    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
171698         (NVL(l_actual_upg_option, 'N') = 'O') OR
171699         (NVL(l_enc_upg_option, 'N') = 'O')
171700       )
171701    THEN
171702    NULL;
171703    --
171704    --
171705    
171706    --
171707    --
171708    END IF;
171709    --
171710    -- Bug 4922099
171711    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
171712           (NVL(l_enc_upg_option, 'N') = 'O')
171713         ) AND
171714         (l_bflow_method_code = 'PRIOR_ENTRY')
171715       )
171716    THEN
171717       IF
171718       --
171719       1 = 1
171720       --
171721       THEN
171722       xla_accounting_err_pkg.build_message
171723                                     (p_appli_s_name            => 'XLA'
171724                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
171725                                     ,p_token_1                 => 'LINE_NUMBER'
171726                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
171727                                     ,p_token_2                 => 'LINE_TYPE_NAME'
171728                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
171729                                                                              l_component_type
171730                                                                             ,l_component_code
171731                                                                             ,l_component_type_code
171732                                                                             ,l_component_appl_id
171733                                                                             ,l_amb_context_code
171734                                                                             ,l_entity_code
171735                                                                             ,l_event_class_code
171736                                                                            )
171737                                     ,p_token_3                 => 'OWNER'
171738                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
171739                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
171740                                                                           ,p_lookup_code    => l_component_type_code
171741                                                                          )
171742                                     ,p_token_4                 => 'PRODUCT_NAME'
171743                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
171744                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
171745                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
171746                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
171747                                     ,p_ae_header_id            =>  NULL
171748                                        );
171749 
171750         IF (C_LEVEL_ERROR>= g_log_level) THEN
171751                  trace
171752                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
171753                       ,p_level    => C_LEVEL_ERROR
171754                       ,p_module   => l_log_module);
171755         END IF;
171756       END IF;
171757    END IF;
171758    --
171759    --
171760    ------------------------------------------------------------------------------------------------
171761    -- 4219869 Business Flow
171762    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
171763    -- Prior Entry.  Currently, the following code is always generated.
171764    ------------------------------------------------------------------------------------------------
171765    -- No ValidateCurrentLine for business flow method of Prior Entry
171766 
171767    ------------------------------------------------------------------------------------
171768    -- 4219869 Business Flow
171769    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
171770    ------------------------------------------------------------------------------------
171771    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
171772 
171773    ----------------------------------------------------------------------------------
171774    -- 4219869 Business Flow
171775    -- Update journal entry status -- Need to generate this within IF <condition>
171776    ----------------------------------------------------------------------------------
171777    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
171778          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
171779          ,p_balance_type_code => l_balance_type_code
171780          );
171781 
171782    -------------------------------------------------------------------------------------------
171783    -- 4262811 - Generate the Accrual Reversal lines
171784    -------------------------------------------------------------------------------------------
171785    BEGIN
171786       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
171787                               (g_array_event(p_event_id).array_value_num('header_index'));
171788       IF l_acc_rev_flag IS NULL THEN
171789          l_acc_rev_flag := 'N';
171790       END IF;
171791    EXCEPTION
171792       WHEN OTHERS THEN
171793          l_acc_rev_flag := 'N';
171794    END;
171795    --
171796    IF (l_acc_rev_flag = 'Y') THEN
171797 
171798        -- 4645092  ------------------------------------------------------------------------------
171799        -- To allow MPA report to determine if it should generate report process
171800        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
171801        ------------------------------------------------------------------------------------------
171802 
171803        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
171804        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
171805    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
171806    -- call ADRs
171807    -- Bug 4922099
171808    --
171809    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
171810         (NVL(l_actual_upg_option, 'N') = 'O') OR
171811         (NVL(l_enc_upg_option, 'N') = 'O')
171812       )
171813    THEN
171814    NULL;
171815    --
171816    --
171817    
171818    --
171819    --
171820    END IF;
171821 
171822        --
171823        -- Update the line information that should be overwritten
171824        --
171825        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
171826                                          p_header_num   => 1);
171827        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
171828 
171829        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
171830 
171831        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
171832           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
171833        END IF;
171834 
171835       --
171836       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
171837       --
171838       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
171839           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
171840       ELSE
171841           ---------------------------------------------------------------------------------------------------
171842           -- 4262811a Switch Sign
171843           ---------------------------------------------------------------------------------------------------
171844           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
171845           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
171846                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
171847           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
171848                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
171849           -- 5132302
171850           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
171851                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
171852 
171853       END IF;
171854 
171855       -- 4955764
171856       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
171857       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
171858 
171859 
171860       XLA_AE_LINES_PKG.ValidateCurrentLine;
171861       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
171862 
171863       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
171864                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
171865                ,p_balance_type_code => l_balance_type_code);
171866 
171867    END IF;
171868 
171869    -----------------------------------------------------------------------------------------
171873 
171870    -- 4262811 Multiperiod Accounting
171871    -----------------------------------------------------------------------------------------
171872      -- No MPA option is assigned.
171874 
171875 END IF;
171876 END IF;
171877 --
171878 
171879 --
171880 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
171881    trace
171882       (p_msg      => 'END of AcctLineType_276'
171883       ,p_level    => C_LEVEL_PROCEDURE
171884       ,p_module   => l_log_module);
171885 END IF;
171886 --
171887 EXCEPTION
171888   WHEN xla_exceptions_pkg.application_exception THEN
171889       RAISE;
171890   WHEN OTHERS THEN
171891        xla_exceptions_pkg.raise_message
171892            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_276');
171893 END AcctLineType_276;
171894 --
171895 
171896 ---------------------------------------
171897 --
171898 -- PRIVATE FUNCTION
171899 --         AcctLineType_277
171900 --
171901 ---------------------------------------
171902 PROCEDURE AcctLineType_277 (
171903   p_application_id        IN NUMBER
171904  ,p_event_id              IN NUMBER
171905  ,p_calculate_acctd_flag  IN VARCHAR2
171906  ,p_calculate_g_l_flag    IN VARCHAR2
171907  ,p_actual_flag           IN OUT VARCHAR2
171908  ,p_balance_type_code     OUT VARCHAR2
171909  ,p_gain_or_loss_ref      OUT VARCHAR2
171910  
171911 --Invoice Distribution Description
171912  , p_source_1            IN VARCHAR2
171913 --Invoice Distribution Ledger Amount
171914  , p_source_9            IN NUMBER
171915 --Invoice Distribution Account
171916  , p_source_18            IN NUMBER
171917 --Invoice Distribution Type
171918  , p_source_21            IN VARCHAR2
171919  , p_source_21_meaning    IN VARCHAR2
171920 --Accounting Reversal Indicator
171921  , p_source_41            IN VARCHAR2
171922 --Distribution Link Type
171923  , p_source_43            IN VARCHAR2
171924 --Allocation to Main Distribution Identifier
171925  , p_source_45            IN NUMBER
171926 --Invoice Identifier
171927  , p_source_46            IN NUMBER
171928 --Invoice Distribution Identifier
171929  , p_source_52            IN NUMBER
171930 --Payables Encumbrance Upgrade Credit Account
171931  , p_source_53            IN NUMBER
171932 --Payables Encumbrance Upgrade Credit Amount
171933  , p_source_54            IN NUMBER
171934 --Invoice Currency Code
171935  , p_source_55            IN VARCHAR2
171936 --Payables Encumbrance Upgrade Credit Base Amount
171937  , p_source_56            IN NUMBER
171938 --Payables Encumbrance Upgrade Debit Account
171939  , p_source_57            IN NUMBER
171940 --Payables Encumbrance Upgrade Debit Amount
171941  , p_source_58            IN NUMBER
171942 --Payables Encumbrance Upgrade Debit Base Amount
171943  , p_source_59            IN NUMBER
171944 --Payables Encumbrance Upgrade Option
171945  , p_source_60            IN VARCHAR2
171946 --Invoice Distribution Amount
171947  , p_source_61            IN NUMBER
171948 --Deferred Accounting End Date
171949  , p_source_65            IN DATE
171950 --Deferred Accounting Option
171951  , p_source_66            IN VARCHAR2
171952 --Deferred Accounting Start Date
171953  , p_source_67            IN DATE
171954 --Override Accounted Amount Indicator
171955  , p_source_68            IN VARCHAR2
171956  , p_source_68_meaning    IN VARCHAR2
171957 --Invoice Supplier Identifier
171958  , p_source_69            IN NUMBER
171959 --Invoice Supplier Site Identifier
171960  , p_source_70            IN NUMBER
171961 --Third Party Type
171962  , p_source_71            IN VARCHAR2
171963 --Parent Reversal Identifier
171964  , p_source_72            IN NUMBER
171965 --Invoice Distribution Statistical Amount
171966  , p_source_73            IN NUMBER
171967 --Invoice Distribution Tax Line Identifier
171968  , p_source_74            IN NUMBER
171969 --Invoice Distribution Tax Distribution Identifier from Tax
171970  , p_source_75            IN NUMBER
171971 --Invoice Distribution Summary Tax Line Identifier
171972  , p_source_76            IN NUMBER
171973 --Payables Upgrade Credit Encumbrance Type Identifier
171974  , p_source_77            IN NUMBER
171975 --Payables Upgrade Debit Encumbrance Type Identifier
171976  , p_source_78            IN NUMBER
171977 --Business Flow Accounts Payable Application Identifier
171978  , p_source_79            IN NUMBER
171979 --Business Flow Invoice Distribution Type
171980  , p_source_80            IN VARCHAR2
171981 --Business Flow Invoice Entity Code
171982  , p_source_81            IN VARCHAR2
171983 --Business Flow Invoice Distribution Identifier
171984  , p_source_82            IN NUMBER
171985 --Business Flow Invoice Identifier
171986  , p_source_83            IN NUMBER
171987 --Accrue on Receipt Option
171988  , p_source_84            IN VARCHAR2
171989  , p_source_84_meaning    IN VARCHAR2
171990 --Invoice Exchange Date
171991  , p_source_136            IN DATE
171992 --Invoice Exchange Rate
171993  , p_source_137            IN NUMBER
171994 --Invoice Exchange Rate Type
171995  , p_source_138            IN VARCHAR2
171996 )
171997 IS
171998 
171999 l_component_type              VARCHAR2(80);
172000 l_component_code              VARCHAR2(30);
172001 l_component_type_code         VARCHAR2(1);
172002 l_component_appl_id           INTEGER;
172003 l_amb_context_code            VARCHAR2(30);
172004 l_entity_code                 VARCHAR2(30);
172005 l_event_class_code            VARCHAR2(30);
172006 l_ae_header_id                NUMBER;
172007 l_event_type_code             VARCHAR2(30);
172008 l_line_definition_code        VARCHAR2(30);
172009 l_line_definition_owner_code  VARCHAR2(1);
172010 --
172011 -- adr variables
172012 l_segment                     VARCHAR2(30);
172013 l_ccid                        NUMBER;
172014 l_adr_transaction_coa_id      NUMBER;
172018 l_adr_value_type_code         VARCHAR2(30);
172015 l_adr_accounting_coa_id       NUMBER;
172016 l_adr_flexfield_segment_code  VARCHAR2(30);
172017 l_adr_flex_value_set_id       NUMBER;
172019 l_adr_value_combination_id    NUMBER;
172020 l_adr_value_segment_code      VARCHAR2(30);
172021 
172022 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
172023 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
172024 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
172025 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
172026 
172027 -- 4262811 Variables ------------------------------------------------------------------------------------------
172028 l_entered_amt_idx             NUMBER;
172029 l_accted_amt_idx              NUMBER;
172030 l_acc_rev_flag                VARCHAR2(1);
172031 l_accrual_line_num            NUMBER;
172032 l_tmp_amt                     NUMBER;
172033 l_acc_rev_natural_side_code   VARCHAR2(1);
172034 
172035 l_num_entries                 NUMBER;
172036 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
172037 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
172038 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
172039 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
172040 l_recog_line_1                NUMBER;
172041 l_recog_line_2                NUMBER;
172042 
172043 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
172044 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
172045 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
172046 
172047 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
172048 
172049 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
172050 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
172051 
172052 ---------------------------------------------------------------------------------------------------------------
172053 
172054 
172055 --
172056 -- bulk performance
172057 --
172058 l_balance_type_code           VARCHAR2(1);
172059 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
172060 l_log_module                  VARCHAR2(240);
172061 
172062 --
172063 -- Upgrade strategy
172064 --
172065 l_actual_upg_option           VARCHAR2(1);
172066 l_enc_upg_option           VARCHAR2(1);
172067 
172068 --
172069 BEGIN
172070 --
172071 IF g_log_enabled THEN
172072       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_277';
172073 END IF;
172074 --
172075 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
172076 
172077       trace
172078          (p_msg      => 'BEGIN of AcctLineType_277'
172079          ,p_level    => C_LEVEL_PROCEDURE
172080          ,p_module   => l_log_module);
172081 
172082 END IF;
172083 --
172084 l_component_type             := 'AMB_JLT';
172085 l_component_code             := 'AP_TAX_RATE_VAR_CM';
172086 l_component_type_code        := 'S';
172087 l_component_appl_id          :=  200;
172088 l_amb_context_code           := 'DEFAULT';
172089 l_entity_code                := 'AP_INVOICES';
172090 l_event_class_code           := 'CREDIT MEMOS';
172091 l_event_type_code            := 'CREDIT MEMOS_ALL';
172092 l_line_definition_owner_code := 'S';
172093 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
172094 --
172095 l_balance_type_code          := 'A';
172096 l_segment                     := NULL;
172097 l_ccid                        := NULL;
172098 l_adr_transaction_coa_id      := NULL;
172099 l_adr_accounting_coa_id       := NULL;
172100 l_adr_flexfield_segment_code  := NULL;
172101 l_adr_flex_value_set_id       := NULL;
172102 l_adr_value_type_code         := NULL;
172103 l_adr_value_combination_id    := NULL;
172104 l_adr_value_segment_code      := NULL;
172105 
172106 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
172107 l_bflow_class_code           := '';    -- 4219869 Business Flow
172108 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
172109 l_budgetary_control_flag     := 'N';
172110 
172111 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
172112 l_bflow_applied_to_amt       := NULL; -- 5132302
172113 l_entered_amt_idx            := NULL;          -- 4262811
172114 l_accted_amt_idx             := NULL;          -- 4262811
172115 l_acc_rev_flag               := NULL;          -- 4262811
172116 l_accrual_line_num           := NULL;          -- 4262811
172117 l_tmp_amt                    := NULL;          -- 4262811
172118 --
172119  
172120 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
172121     l_balance_type_code <> 'B' THEN
172122 IF NVL(p_source_21,'
172123 ') =  'TRV' AND 
172124 NVL(p_source_84,'
172125 ') =  'Y'
172126  THEN 
172127 
172128    --
172129    XLA_AE_LINES_PKG.SetNewLine;
172130 
172131    p_balance_type_code          := l_balance_type_code;
172132    -- set the flag so later we will know whether the gain loss line needs to be created
172133    
172134    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
172135      p_actual_flag :='A';
172136    END IF;
172137 
172138    --
172139    -- bulk performance
172140    --
172141    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
172142                                       p_header_num   => 0); -- 4262811
172143    --
172144    -- set accounting line options
172145    --
172146    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
172147            p_natural_side_code          => 'D'
172148          , p_gain_or_loss_flag          => 'N'
172149          , p_gl_transfer_mode_code      => 'S'
172150          , p_acct_entry_type_code       => 'A'
172154    --
172151          , p_switch_side_flag           => 'Y'
172152          , p_merge_duplicate_code       => 'A'
172153          );
172155    l_acc_rev_natural_side_code := 'C';  -- 4262811
172156    -- 
172157    --
172158    -- set accounting line type info
172159    --
172160    xla_ae_lines_pkg.SetAcctLineType
172161       (p_component_type             => l_component_type
172162       ,p_event_type_code            => l_event_type_code
172163       ,p_line_definition_owner_code => l_line_definition_owner_code
172164       ,p_line_definition_code       => l_line_definition_code
172165       ,p_accounting_line_code       => l_component_code
172166       ,p_accounting_line_type_code  => l_component_type_code
172167       ,p_accounting_line_appl_id    => l_component_appl_id
172168       ,p_amb_context_code           => l_amb_context_code
172169       ,p_entity_code                => l_entity_code
172170       ,p_event_class_code           => l_event_class_code);
172171    --
172172    -- set accounting class
172173    --
172174    xla_ae_lines_pkg.SetAcctClass(
172175            p_accounting_class_code  => 'TRV'
172176          , p_ae_header_id           => l_ae_header_id
172177          );
172178 
172179    --
172180    -- set rounding class
172181    --
172182    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
172183                       'TRV';
172184 
172185    --
172186    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
172187    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
172188    --
172189    -- bulk performance
172190    --
172191    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
172192 
172193    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
172194       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
172195 
172196    -- 4955764
172197    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
172198       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
172199 
172200    -- 4458381 Public Sector Enh
172201    
172202    --
172203    -- set accounting attributes for the line type
172204    --
172205    l_entered_amt_idx := 23;
172206    l_accted_amt_idx  := 28;
172207    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
172208    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
172209    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
172210    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
172211    l_rec_acct_attrs.array_num_value(2)  := 
172212 xla_ae_sources_pkg.GetSystemSourceNum(
172213    p_source_code           => 'XLA_EVENT_APPL_ID'
172214  , p_source_type_code      => 'Y'
172215  , p_source_application_id =>  602
172216 );
172217    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
172218    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
172219    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
172220    l_rec_acct_attrs.array_char_value(4)  := 
172221 xla_ae_sources_pkg.GetSystemSourceChar(
172222    p_source_code           => 'XLA_ENTITY_CODE'
172223  , p_source_type_code      => 'Y'
172224  , p_source_application_id =>  602
172225 );
172226    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
172227    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
172228    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
172229    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
172230    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
172231    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
172232    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
172233    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
172234    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
172235    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
172236    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
172237    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
172238    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
172239    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
172240    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
172241    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
172242    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
172243    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
172244    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
172245    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
172246    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
172247    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
172248    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
172249    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
172250    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
172251    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
172252    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
172253    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
172254    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
172255    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
172256    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
172257    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
172258    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
172259    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
172260    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
172261    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
172265    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
172262    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
172263    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
172264    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
172266    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
172267    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
172268    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
172269    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
172270    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
172271    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
172272    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
172273    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
172274    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
172275    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
172276    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
172277    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
172278    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
172279    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
172280    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
172281    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
172282    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
172283    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
172284    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
172285    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
172286    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
172287    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
172288    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
172289    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
172290    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
172291    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
172292    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
172293    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
172294    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
172295    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
172296    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
172297    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
172298    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
172299    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
172300    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
172301    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
172302    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
172303    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
172304 
172305    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
172306    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
172307 
172308    ---------------------------------------------------------------------------------------------------------------
172309    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
172310    ---------------------------------------------------------------------------------------------------------------
172311    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
172312 
172313    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
172314    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
172315 
172316    IF xla_accounting_cache_pkg.GetValueChar
172317          (p_source_code         => 'LEDGER_CATEGORY_CODE'
172318          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
172319    AND l_bflow_method_code = 'PRIOR_ENTRY'
172320 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
172321    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
172322          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
172323        )
172324    THEN
172325          xla_ae_lines_pkg.BflowUpgEntry
172326            (p_business_method_code    => l_bflow_method_code
172327            ,p_business_class_code     => l_bflow_class_code
172328            ,p_balance_type            => l_balance_type_code);
172329    ELSE
172330       NULL;
172331 -- No business flow processing for business flow method of NONE.
172332    END IF;
172333 
172334    --
172335    -- call analytical criteria
172336    --
172337    
172338    --
172339    -- call description
172340    --
172341    
172342 xla_ae_lines_pkg.SetLineDescription(
172343    p_ae_header_id => l_ae_header_id
172344   ,p_description  => Description_2 (
172345      p_application_id         => p_application_id
172346    , p_ae_header_id           => l_ae_header_id 
172347 , p_source_1 => p_source_1
172348    )
172349 );
172350 
172351 
172352    --
172353    -- call ADRs
172354    -- Bug 4922099
172355    --
172356    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
172357         (NVL(l_actual_upg_option, 'N') = 'O') OR
172358         (NVL(l_enc_upg_option, 'N') = 'O')
172359       )
172360    THEN
172361    NULL;
172362    --
172363    --
172364    
172365   l_ccid := AcctDerRule_32(
172366            p_application_id           => p_application_id
172367          , p_ae_header_id             => l_ae_header_id 
172368 , p_source_18 => p_source_18
172369          , x_transaction_coa_id       => l_adr_transaction_coa_id
172370          , x_accounting_coa_id        => l_adr_accounting_coa_id
172371          , x_value_type_code          => l_adr_value_type_code
172372          , p_side                     => 'NA'
172373    );
172374 
172375    xla_ae_lines_pkg.set_ccid(
172379   , p_accounting_coa_id            => l_adr_accounting_coa_id
172376     p_code_combination_id          => l_ccid
172377   , p_value_type_code              => l_adr_value_type_code
172378   , p_transaction_coa_id           => l_adr_transaction_coa_id
172380   , p_adr_code                     => 'AP_INVOICE_DIST'
172381   , p_adr_type_code                => 'S'
172382   , p_component_type               => l_component_type
172383   , p_component_code               => l_component_code
172384   , p_component_type_code          => l_component_type_code
172385   , p_component_appl_id            => l_component_appl_id
172386   , p_amb_context_code             => l_amb_context_code
172387   , p_side                         => 'NA'
172388   );
172389 
172390 
172391    --
172392    --
172393    END IF;
172394    --
172395    -- Bug 4922099
172396    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
172397           (NVL(l_enc_upg_option, 'N') = 'O')
172398         ) AND
172399         (l_bflow_method_code = 'PRIOR_ENTRY')
172400       )
172401    THEN
172402       IF
172403       --
172404       1 = 2
172405       --
172406       THEN
172407       xla_accounting_err_pkg.build_message
172408                                     (p_appli_s_name            => 'XLA'
172409                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
172410                                     ,p_token_1                 => 'LINE_NUMBER'
172411                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
172412                                     ,p_token_2                 => 'LINE_TYPE_NAME'
172413                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
172414                                                                              l_component_type
172415                                                                             ,l_component_code
172416                                                                             ,l_component_type_code
172417                                                                             ,l_component_appl_id
172418                                                                             ,l_amb_context_code
172419                                                                             ,l_entity_code
172420                                                                             ,l_event_class_code
172421                                                                            )
172422                                     ,p_token_3                 => 'OWNER'
172423                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
172424                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
172425                                                                           ,p_lookup_code    => l_component_type_code
172426                                                                          )
172427                                     ,p_token_4                 => 'PRODUCT_NAME'
172428                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
172429                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
172430                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
172431                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
172432                                     ,p_ae_header_id            =>  NULL
172433                                        );
172434 
172435         IF (C_LEVEL_ERROR>= g_log_level) THEN
172436                  trace
172437                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
172438                       ,p_level    => C_LEVEL_ERROR
172439                       ,p_module   => l_log_module);
172440         END IF;
172441       END IF;
172442    END IF;
172443    --
172444    --
172445    ------------------------------------------------------------------------------------------------
172446    -- 4219869 Business Flow
172447    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
172448    -- Prior Entry.  Currently, the following code is always generated.
172449    ------------------------------------------------------------------------------------------------
172450    XLA_AE_LINES_PKG.ValidateCurrentLine;
172451 
172452    ------------------------------------------------------------------------------------
172453    -- 4219869 Business Flow
172454    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
172455    ------------------------------------------------------------------------------------
172456    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
172457 
172458    ----------------------------------------------------------------------------------
172459    -- 4219869 Business Flow
172460    -- Update journal entry status -- Need to generate this within IF <condition>
172461    ----------------------------------------------------------------------------------
172462    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
172463          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
172464          ,p_balance_type_code => l_balance_type_code
172465          );
172466 
172467    -------------------------------------------------------------------------------------------
172468    -- 4262811 - Generate the Accrual Reversal lines
172469    -------------------------------------------------------------------------------------------
172470    BEGIN
172471       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
172472                               (g_array_event(p_event_id).array_value_num('header_index'));
172473       IF l_acc_rev_flag IS NULL THEN
172474          l_acc_rev_flag := 'N';
172475       END IF;
172476    EXCEPTION
172477       WHEN OTHERS THEN
172478          l_acc_rev_flag := 'N';
172482 
172479    END;
172480    --
172481    IF (l_acc_rev_flag = 'Y') THEN
172483        -- 4645092  ------------------------------------------------------------------------------
172484        -- To allow MPA report to determine if it should generate report process
172485        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
172486        ------------------------------------------------------------------------------------------
172487 
172488        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
172489        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
172490    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
172491    -- call ADRs
172492    -- Bug 4922099
172493    --
172494    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
172495         (NVL(l_actual_upg_option, 'N') = 'O') OR
172496         (NVL(l_enc_upg_option, 'N') = 'O')
172497       )
172498    THEN
172499    NULL;
172500    --
172501    --
172502    
172503   l_ccid := AcctDerRule_32(
172504            p_application_id           => p_application_id
172505          , p_ae_header_id             => l_ae_header_id 
172506 , p_source_18 => p_source_18
172507          , x_transaction_coa_id       => l_adr_transaction_coa_id
172508          , x_accounting_coa_id        => l_adr_accounting_coa_id
172509          , x_value_type_code          => l_adr_value_type_code
172510          , p_side                     => 'NA'
172511    );
172512 
172513    xla_ae_lines_pkg.set_ccid(
172514     p_code_combination_id          => l_ccid
172515   , p_value_type_code              => l_adr_value_type_code
172516   , p_transaction_coa_id           => l_adr_transaction_coa_id
172517   , p_accounting_coa_id            => l_adr_accounting_coa_id
172518   , p_adr_code                     => 'AP_INVOICE_DIST'
172519   , p_adr_type_code                => 'S'
172520   , p_component_type               => l_component_type
172521   , p_component_code               => l_component_code
172522   , p_component_type_code          => l_component_type_code
172523   , p_component_appl_id            => l_component_appl_id
172524   , p_amb_context_code             => l_amb_context_code
172525   , p_side                         => 'NA'
172526   );
172527 
172528 
172529    --
172530    --
172531    END IF;
172532 
172533        --
172534        -- Update the line information that should be overwritten
172535        --
172536        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
172537                                          p_header_num   => 1);
172538        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
172539 
172540        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
172541 
172542        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
172543           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
172544        END IF;
172545 
172546       --
172547       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
172548       --
172549       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
172550           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
172551       ELSE
172552           ---------------------------------------------------------------------------------------------------
172553           -- 4262811a Switch Sign
172554           ---------------------------------------------------------------------------------------------------
172555           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
172556           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
172557                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
172558           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
172559                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
172560           -- 5132302
172561           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
172562                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
172563 
172564       END IF;
172565 
172566       -- 4955764
172567       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
172568       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
172569 
172570 
172571       XLA_AE_LINES_PKG.ValidateCurrentLine;
172572       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
172573 
172574       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
172575                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
172576                ,p_balance_type_code => l_balance_type_code);
172577 
172578    END IF;
172579 
172580    -----------------------------------------------------------------------------------------
172581    -- 4262811 Multiperiod Accounting
172582    -----------------------------------------------------------------------------------------
172583      -- No MPA option is assigned.
172584 
172585 
172586 END IF;
172587 END IF;
172588 --
172589 
172590 --
172591 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
172592    trace
172593       (p_msg      => 'END of AcctLineType_277'
172594       ,p_level    => C_LEVEL_PROCEDURE
172595       ,p_module   => l_log_module);
172596 END IF;
172597 --
172598 EXCEPTION
172599   WHEN xla_exceptions_pkg.application_exception THEN
172600       RAISE;
172601   WHEN OTHERS THEN
172602        xla_exceptions_pkg.raise_message
172606 
172603            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_277');
172604 END AcctLineType_277;
172605 --
172607 ---------------------------------------
172608 --
172609 -- PRIVATE FUNCTION
172610 --         AcctLineType_278
172611 --
172612 ---------------------------------------
172613 PROCEDURE AcctLineType_278 (
172614   p_application_id        IN NUMBER
172615  ,p_event_id              IN NUMBER
172616  ,p_calculate_acctd_flag  IN VARCHAR2
172617  ,p_calculate_g_l_flag    IN VARCHAR2
172618  ,p_actual_flag           IN OUT VARCHAR2
172619  ,p_balance_type_code     OUT VARCHAR2
172620  ,p_gain_or_loss_ref      OUT VARCHAR2
172621  
172622 --Invoice Distribution Type
172623  , p_source_21            IN VARCHAR2
172624  , p_source_21_meaning    IN VARCHAR2
172625 --Accounting Reversal Indicator
172626  , p_source_41            IN VARCHAR2
172627 --Distribution Link Type
172628  , p_source_43            IN VARCHAR2
172629 --Allocation to Main Distribution Identifier
172630  , p_source_45            IN NUMBER
172631 --Invoice Identifier
172632  , p_source_46            IN NUMBER
172633 --Invoice Distribution Identifier
172634  , p_source_52            IN NUMBER
172635 --Payables Encumbrance Upgrade Credit Account
172636  , p_source_53            IN NUMBER
172637 --Payables Encumbrance Upgrade Credit Amount
172638  , p_source_54            IN NUMBER
172639 --Invoice Currency Code
172640  , p_source_55            IN VARCHAR2
172641 --Payables Encumbrance Upgrade Credit Base Amount
172642  , p_source_56            IN NUMBER
172643 --Payables Encumbrance Upgrade Debit Account
172644  , p_source_57            IN NUMBER
172645 --Payables Encumbrance Upgrade Debit Amount
172646  , p_source_58            IN NUMBER
172647 --Payables Encumbrance Upgrade Debit Base Amount
172648  , p_source_59            IN NUMBER
172649 --Payables Encumbrance Upgrade Option
172650  , p_source_60            IN VARCHAR2
172651 --Deferred Accounting End Date
172652  , p_source_65            IN DATE
172653 --Deferred Accounting Option
172654  , p_source_66            IN VARCHAR2
172655 --Deferred Accounting Start Date
172656  , p_source_67            IN DATE
172657 --Override Accounted Amount Indicator
172658  , p_source_68            IN VARCHAR2
172659  , p_source_68_meaning    IN VARCHAR2
172660 --Third Party Type
172661  , p_source_71            IN VARCHAR2
172662 --Parent Reversal Identifier
172663  , p_source_72            IN NUMBER
172664 --Invoice Distribution Statistical Amount
172665  , p_source_73            IN NUMBER
172666 --Invoice Distribution Tax Line Identifier
172667  , p_source_74            IN NUMBER
172668 --Invoice Distribution Tax Distribution Identifier from Tax
172669  , p_source_75            IN NUMBER
172670 --Invoice Distribution Summary Tax Line Identifier
172671  , p_source_76            IN NUMBER
172672 --Payables Upgrade Credit Encumbrance Type Identifier
172673  , p_source_77            IN NUMBER
172674 --Payables Upgrade Debit Encumbrance Type Identifier
172675  , p_source_78            IN NUMBER
172676 --Business Flow Accounts Payable Application Identifier
172677  , p_source_79            IN NUMBER
172678 --Business Flow Invoice Distribution Type
172679  , p_source_80            IN VARCHAR2
172680 --Business Flow Invoice Entity Code
172681  , p_source_81            IN VARCHAR2
172682 --Business Flow Invoice Distribution Identifier
172683  , p_source_82            IN NUMBER
172684 --Business Flow Invoice Identifier
172685  , p_source_83            IN NUMBER
172686 --Purchasing Encumbrance Option
172687  , p_source_86            IN VARCHAR2
172688  , p_source_86_meaning    IN VARCHAR2
172689 --Invoice Encumbered Option
172690  , p_source_87            IN VARCHAR2
172691  , p_source_87_meaning    IN VARCHAR2
172692 --Invoice Distribution Encumbrance Amount
172693  , p_source_143            IN NUMBER
172694 --Invoice Distribution Encumbrance Ledger Amount
172695  , p_source_144            IN NUMBER
172696 )
172697 IS
172698 
172699 l_component_type              VARCHAR2(80);
172700 l_component_code              VARCHAR2(30);
172701 l_component_type_code         VARCHAR2(1);
172702 l_component_appl_id           INTEGER;
172703 l_amb_context_code            VARCHAR2(30);
172704 l_entity_code                 VARCHAR2(30);
172705 l_event_class_code            VARCHAR2(30);
172706 l_ae_header_id                NUMBER;
172707 l_event_type_code             VARCHAR2(30);
172708 l_line_definition_code        VARCHAR2(30);
172709 l_line_definition_owner_code  VARCHAR2(1);
172710 --
172711 -- adr variables
172712 l_segment                     VARCHAR2(30);
172713 l_ccid                        NUMBER;
172714 l_adr_transaction_coa_id      NUMBER;
172715 l_adr_accounting_coa_id       NUMBER;
172716 l_adr_flexfield_segment_code  VARCHAR2(30);
172717 l_adr_flex_value_set_id       NUMBER;
172718 l_adr_value_type_code         VARCHAR2(30);
172719 l_adr_value_combination_id    NUMBER;
172720 l_adr_value_segment_code      VARCHAR2(30);
172721 
172722 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
172723 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
172724 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
172725 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
172726 
172727 -- 4262811 Variables ------------------------------------------------------------------------------------------
172728 l_entered_amt_idx             NUMBER;
172729 l_accted_amt_idx              NUMBER;
172730 l_acc_rev_flag                VARCHAR2(1);
172731 l_accrual_line_num            NUMBER;
172732 l_tmp_amt                     NUMBER;
172733 l_acc_rev_natural_side_code   VARCHAR2(1);
172734 
172735 l_num_entries                 NUMBER;
172736 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
172740 l_recog_line_1                NUMBER;
172737 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
172738 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
172739 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
172741 l_recog_line_2                NUMBER;
172742 
172743 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
172744 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
172745 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
172746 
172747 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
172748 
172749 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
172750 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
172751 
172752 ---------------------------------------------------------------------------------------------------------------
172753 
172754 
172755 --
172756 -- bulk performance
172757 --
172758 l_balance_type_code           VARCHAR2(1);
172759 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
172760 l_log_module                  VARCHAR2(240);
172761 
172762 --
172763 -- Upgrade strategy
172764 --
172765 l_actual_upg_option           VARCHAR2(1);
172766 l_enc_upg_option           VARCHAR2(1);
172767 
172768 --
172769 BEGIN
172770 --
172771 IF g_log_enabled THEN
172772       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_278';
172773 END IF;
172774 --
172775 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
172776 
172777       trace
172778          (p_msg      => 'BEGIN of AcctLineType_278'
172779          ,p_level    => C_LEVEL_PROCEDURE
172780          ,p_module   => l_log_module);
172781 
172782 END IF;
172783 --
172784 l_component_type             := 'AMB_JLT';
172785 l_component_code             := 'AP_TAX_RATE_VAR_CM_ENC';
172786 l_component_type_code        := 'S';
172787 l_component_appl_id          :=  200;
172788 l_amb_context_code           := 'DEFAULT';
172789 l_entity_code                := 'AP_INVOICES';
172790 l_event_class_code           := 'CREDIT MEMOS';
172791 l_event_type_code            := 'CREDIT MEMOS_ALL';
172792 l_line_definition_owner_code := 'S';
172793 l_line_definition_code       := 'ENC_REV_CM_ALL';
172794 --
172795 l_balance_type_code          := 'E';
172796 l_segment                     := NULL;
172797 l_ccid                        := NULL;
172798 l_adr_transaction_coa_id      := NULL;
172799 l_adr_accounting_coa_id       := NULL;
172800 l_adr_flexfield_segment_code  := NULL;
172801 l_adr_flex_value_set_id       := NULL;
172802 l_adr_value_type_code         := NULL;
172803 l_adr_value_combination_id    := NULL;
172804 l_adr_value_segment_code      := NULL;
172805 
172806 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
172807 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
172808 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
172809 l_budgetary_control_flag     := 'N';
172810 
172811 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
172812 l_bflow_applied_to_amt       := NULL; -- 5132302
172813 l_entered_amt_idx            := NULL;          -- 4262811
172814 l_accted_amt_idx             := NULL;          -- 4262811
172815 l_acc_rev_flag               := NULL;          -- 4262811
172816 l_accrual_line_num           := NULL;          -- 4262811
172817 l_tmp_amt                    := NULL;          -- 4262811
172818 --
172819  
172820 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
172821     l_balance_type_code <> 'B' THEN
172822 IF NVL(p_source_21,'
172823 ') =  'TRV' AND 
172824 NVL(p_source_86,'
172825 ') =  'Y' AND 
172826 NVL(p_source_87,'
172827 ') =  'Y'
172828  THEN 
172829 
172830    --
172831    XLA_AE_LINES_PKG.SetNewLine;
172832 
172833    p_balance_type_code          := l_balance_type_code;
172834    -- set the flag so later we will know whether the gain loss line needs to be created
172835    
172836    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
172837      p_actual_flag :='A';
172838    END IF;
172839 
172840    --
172841    -- bulk performance
172842    --
172843    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
172844                                       p_header_num   => 0); -- 4262811
172845    --
172846    -- set accounting line options
172847    --
172848    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
172849            p_natural_side_code          => 'C'
172850          , p_gain_or_loss_flag          => 'N'
172851          , p_gl_transfer_mode_code      => 'S'
172855          );
172852          , p_acct_entry_type_code       => 'E'
172853          , p_switch_side_flag           => 'Y'
172854          , p_merge_duplicate_code       => 'A'
172856    --
172857    l_acc_rev_natural_side_code := 'D';  -- 4262811
172858    -- 
172859    --
172860    -- set accounting line type info
172861    --
172862    xla_ae_lines_pkg.SetAcctLineType
172863       (p_component_type             => l_component_type
172864       ,p_event_type_code            => l_event_type_code
172865       ,p_line_definition_owner_code => l_line_definition_owner_code
172866       ,p_line_definition_code       => l_line_definition_code
172867       ,p_accounting_line_code       => l_component_code
172868       ,p_accounting_line_type_code  => l_component_type_code
172869       ,p_accounting_line_appl_id    => l_component_appl_id
172870       ,p_amb_context_code           => l_amb_context_code
172871       ,p_entity_code                => l_entity_code
172872       ,p_event_class_code           => l_event_class_code);
172873    --
172874    -- set accounting class
172875    --
172876    xla_ae_lines_pkg.SetAcctClass(
172877            p_accounting_class_code  => 'TRV'
172878          , p_ae_header_id           => l_ae_header_id
172879          );
172880 
172881    --
172882    -- set rounding class
172883    --
172884    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
172885                       'TRV';
172886 
172887    --
172888    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
172889    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
172890    --
172891    -- bulk performance
172892    --
172893    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
172894 
172895    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
172896       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
172897 
172898    -- 4955764
172899    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
172900       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
172901 
172902    -- 4458381 Public Sector Enh
172903    
172904    --
172905    -- set accounting attributes for the line type
172906    --
172907    l_entered_amt_idx := 23;
172908    l_accted_amt_idx  := 25;
172909    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
172910    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
172911    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
172912    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
172913    l_rec_acct_attrs.array_num_value(2)  := 
172914 xla_ae_sources_pkg.GetSystemSourceNum(
172915    p_source_code           => 'XLA_EVENT_APPL_ID'
172916  , p_source_type_code      => 'Y'
172917  , p_source_application_id =>  602
172918 );
172919    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
172920    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
172921    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
172922    l_rec_acct_attrs.array_char_value(4)  := 
172923 xla_ae_sources_pkg.GetSystemSourceChar(
172924    p_source_code           => 'XLA_ENTITY_CODE'
172925  , p_source_type_code      => 'Y'
172926  , p_source_application_id =>  602
172927 );
172928    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
172929    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
172930    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
172931    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
172932    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
172933    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
172934    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
172935    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
172936    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
172937    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
172938    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
172939    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
172940    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
172941    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
172942    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
172943    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
172944    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
172945    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
172946    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
172947    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
172948    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
172949    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
172950    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
172951    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
172952    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
172953    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
172954    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
172955    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
172956    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
172957    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
172958    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
172959    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
172960    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
172966    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
172961    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
172962    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
172963    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
172964    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
172965    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
172967    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
172968    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
172969    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
172970    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
172971    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
172972    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
172973    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
172974    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
172975    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
172976    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
172977    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
172978    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
172979    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
172980    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
172981    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
172982    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
172983    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
172984    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
172985    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
172986    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
172987    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
172988    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
172989    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
172990    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
172991    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
172992    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
172993    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
172994    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
172995    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
172996 
172997    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
172998    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
172999 
173000    ---------------------------------------------------------------------------------------------------------------
173001    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
173002    ---------------------------------------------------------------------------------------------------------------
173003    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
173004 
173005    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
173006    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
173007 
173008    IF xla_accounting_cache_pkg.GetValueChar
173009          (p_source_code         => 'LEDGER_CATEGORY_CODE'
173010          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
173011    AND l_bflow_method_code = 'PRIOR_ENTRY'
173012 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
173013    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
173014          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
173015        )
173016    THEN
173017          xla_ae_lines_pkg.BflowUpgEntry
173018            (p_business_method_code    => l_bflow_method_code
173019            ,p_business_class_code     => l_bflow_class_code
173020            ,p_balance_type            => l_balance_type_code);
173021    ELSE
173022       NULL;
173023 XLA_AE_LINES_PKG.business_flow_validation(
173024                                 p_business_method_code     => l_bflow_method_code
173025                                ,p_business_class_code      => l_bflow_class_code
173026                                ,p_inherit_description_flag => l_inherit_desc_flag);
173027    END IF;
173028 
173029    --
173030    -- call analytical criteria
173031    --
173032    -- Inherited Analytical Criteria for business flow method of Prior Entry.
173033    --
173034    -- call description
173035    --
173036    -- No description or it is inherited.
173037    --
173038    -- call ADRs
173039    -- Bug 4922099
173040    --
173041    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
173042         (NVL(l_actual_upg_option, 'N') = 'O') OR
173043         (NVL(l_enc_upg_option, 'N') = 'O')
173044       )
173045    THEN
173046    NULL;
173047    --
173048    --
173049    
173050    --
173051    --
173055    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
173052    END IF;
173053    --
173054    -- Bug 4922099
173056           (NVL(l_enc_upg_option, 'N') = 'O')
173057         ) AND
173058         (l_bflow_method_code = 'PRIOR_ENTRY')
173059       )
173060    THEN
173061       IF
173062       --
173063       1 = 1
173064       --
173065       THEN
173066       xla_accounting_err_pkg.build_message
173067                                     (p_appli_s_name            => 'XLA'
173068                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
173069                                     ,p_token_1                 => 'LINE_NUMBER'
173070                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
173071                                     ,p_token_2                 => 'LINE_TYPE_NAME'
173072                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
173073                                                                              l_component_type
173074                                                                             ,l_component_code
173075                                                                             ,l_component_type_code
173076                                                                             ,l_component_appl_id
173077                                                                             ,l_amb_context_code
173078                                                                             ,l_entity_code
173079                                                                             ,l_event_class_code
173080                                                                            )
173081                                     ,p_token_3                 => 'OWNER'
173082                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
173083                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
173084                                                                           ,p_lookup_code    => l_component_type_code
173085                                                                          )
173086                                     ,p_token_4                 => 'PRODUCT_NAME'
173087                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
173088                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
173089                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
173090                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
173091                                     ,p_ae_header_id            =>  NULL
173092                                        );
173093 
173094         IF (C_LEVEL_ERROR>= g_log_level) THEN
173095                  trace
173096                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
173097                       ,p_level    => C_LEVEL_ERROR
173098                       ,p_module   => l_log_module);
173099         END IF;
173100       END IF;
173101    END IF;
173102    --
173103    --
173104    ------------------------------------------------------------------------------------------------
173105    -- 4219869 Business Flow
173106    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
173107    -- Prior Entry.  Currently, the following code is always generated.
173108    ------------------------------------------------------------------------------------------------
173109    -- No ValidateCurrentLine for business flow method of Prior Entry
173110 
173111    ------------------------------------------------------------------------------------
173112    -- 4219869 Business Flow
173113    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
173114    ------------------------------------------------------------------------------------
173115    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
173116 
173117    ----------------------------------------------------------------------------------
173118    -- 4219869 Business Flow
173119    -- Update journal entry status -- Need to generate this within IF <condition>
173120    ----------------------------------------------------------------------------------
173121    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
173122          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
173123          ,p_balance_type_code => l_balance_type_code
173124          );
173125 
173126    -------------------------------------------------------------------------------------------
173127    -- 4262811 - Generate the Accrual Reversal lines
173128    -------------------------------------------------------------------------------------------
173129    BEGIN
173130       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
173131                               (g_array_event(p_event_id).array_value_num('header_index'));
173132       IF l_acc_rev_flag IS NULL THEN
173133          l_acc_rev_flag := 'N';
173134       END IF;
173135    EXCEPTION
173136       WHEN OTHERS THEN
173137          l_acc_rev_flag := 'N';
173138    END;
173139    --
173140    IF (l_acc_rev_flag = 'Y') THEN
173141 
173142        -- 4645092  ------------------------------------------------------------------------------
173143        -- To allow MPA report to determine if it should generate report process
173144        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
173145        ------------------------------------------------------------------------------------------
173146 
173147        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
173148        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
173149    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
173150    -- call ADRs
173151    -- Bug 4922099
173152    --
173156       )
173153    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
173154         (NVL(l_actual_upg_option, 'N') = 'O') OR
173155         (NVL(l_enc_upg_option, 'N') = 'O')
173157    THEN
173158    NULL;
173159    --
173160    --
173161    
173162    --
173163    --
173164    END IF;
173165 
173166        --
173167        -- Update the line information that should be overwritten
173168        --
173169        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
173170                                          p_header_num   => 1);
173171        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
173172 
173173        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
173174 
173175        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
173176           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
173177        END IF;
173178 
173179       --
173180       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
173181       --
173182       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
173183           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
173184       ELSE
173185           ---------------------------------------------------------------------------------------------------
173186           -- 4262811a Switch Sign
173187           ---------------------------------------------------------------------------------------------------
173188           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
173189           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
173190                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
173191           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
173192                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
173193           -- 5132302
173194           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
173195                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
173196 
173197       END IF;
173198 
173199       -- 4955764
173200       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
173201       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
173202 
173203 
173204       XLA_AE_LINES_PKG.ValidateCurrentLine;
173205       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
173206 
173207       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
173208                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
173209                ,p_balance_type_code => l_balance_type_code);
173210 
173211    END IF;
173212 
173213    -----------------------------------------------------------------------------------------
173214    -- 4262811 Multiperiod Accounting
173215    -----------------------------------------------------------------------------------------
173216      -- No MPA option is assigned.
173217 
173218 
173219 END IF;
173220 END IF;
173221 --
173222 
173223 --
173224 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
173225    trace
173226       (p_msg      => 'END of AcctLineType_278'
173227       ,p_level    => C_LEVEL_PROCEDURE
173228       ,p_module   => l_log_module);
173229 END IF;
173230 --
173231 EXCEPTION
173232   WHEN xla_exceptions_pkg.application_exception THEN
173233       RAISE;
173234   WHEN OTHERS THEN
173235        xla_exceptions_pkg.raise_message
173236            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_278');
173237 END AcctLineType_278;
173238 --
173239 
173240 ---------------------------------------
173241 --
173242 -- PRIVATE FUNCTION
173243 --         AcctLineType_279
173244 --
173245 ---------------------------------------
173246 PROCEDURE AcctLineType_279 (
173247   p_application_id        IN NUMBER
173248  ,p_event_id              IN NUMBER
173249  ,p_calculate_acctd_flag  IN VARCHAR2
173250  ,p_calculate_g_l_flag    IN VARCHAR2
173251  ,p_actual_flag           IN OUT VARCHAR2
173252  ,p_balance_type_code     OUT VARCHAR2
173253  ,p_gain_or_loss_ref      OUT VARCHAR2
173254  
173255 --Invoice Distribution Description
173256  , p_source_1            IN VARCHAR2
173257 --Invoice Distribution Ledger Amount
173258  , p_source_9            IN NUMBER
173259 --Invoice Distribution Account
173260  , p_source_18            IN NUMBER
173261 --Invoice Distribution Type
173262  , p_source_21            IN VARCHAR2
173263  , p_source_21_meaning    IN VARCHAR2
173264 --Accounting Reversal Indicator
173265  , p_source_41            IN VARCHAR2
173266 --Distribution Link Type
173267  , p_source_43            IN VARCHAR2
173268 --Allocation to Main Distribution Identifier
173269  , p_source_45            IN NUMBER
173270 --Invoice Identifier
173271  , p_source_46            IN NUMBER
173272 --Invoice Distribution Identifier
173273  , p_source_52            IN NUMBER
173274 --Payables Encumbrance Upgrade Credit Account
173275  , p_source_53            IN NUMBER
173276 --Payables Encumbrance Upgrade Credit Amount
173277  , p_source_54            IN NUMBER
173278 --Invoice Currency Code
173279  , p_source_55            IN VARCHAR2
173280 --Payables Encumbrance Upgrade Credit Base Amount
173284 --Payables Encumbrance Upgrade Debit Amount
173281  , p_source_56            IN NUMBER
173282 --Payables Encumbrance Upgrade Debit Account
173283  , p_source_57            IN NUMBER
173285  , p_source_58            IN NUMBER
173286 --Payables Encumbrance Upgrade Debit Base Amount
173287  , p_source_59            IN NUMBER
173288 --Payables Encumbrance Upgrade Option
173289  , p_source_60            IN VARCHAR2
173290 --Invoice Distribution Amount
173291  , p_source_61            IN NUMBER
173292 --Deferred Accounting End Date
173293  , p_source_65            IN DATE
173294 --Deferred Accounting Option
173295  , p_source_66            IN VARCHAR2
173296 --Deferred Accounting Start Date
173297  , p_source_67            IN DATE
173298 --Override Accounted Amount Indicator
173299  , p_source_68            IN VARCHAR2
173300  , p_source_68_meaning    IN VARCHAR2
173301 --Invoice Supplier Identifier
173302  , p_source_69            IN NUMBER
173303 --Invoice Supplier Site Identifier
173304  , p_source_70            IN NUMBER
173305 --Third Party Type
173306  , p_source_71            IN VARCHAR2
173307 --Parent Reversal Identifier
173308  , p_source_72            IN NUMBER
173309 --Invoice Distribution Tax Line Identifier
173310  , p_source_74            IN NUMBER
173311 --Invoice Distribution Tax Distribution Identifier from Tax
173312  , p_source_75            IN NUMBER
173313 --Invoice Distribution Summary Tax Line Identifier
173314  , p_source_76            IN NUMBER
173315 --Payables Upgrade Credit Encumbrance Type Identifier
173316  , p_source_77            IN NUMBER
173317 --Payables Upgrade Debit Encumbrance Type Identifier
173318  , p_source_78            IN NUMBER
173319 --Business Flow Accounts Payable Application Identifier
173320  , p_source_79            IN NUMBER
173321 --Business Flow Invoice Distribution Type
173322  , p_source_80            IN VARCHAR2
173323 --Business Flow Invoice Entity Code
173324  , p_source_81            IN VARCHAR2
173325 --Business Flow Invoice Distribution Identifier
173326  , p_source_82            IN NUMBER
173327 --Business Flow Invoice Identifier
173328  , p_source_83            IN NUMBER
173329 --Accrue on Receipt Option
173330  , p_source_84            IN VARCHAR2
173331  , p_source_84_meaning    IN VARCHAR2
173332 --Invoice Exchange Date
173333  , p_source_136            IN DATE
173334 --Invoice Exchange Rate
173335  , p_source_137            IN NUMBER
173336 --Invoice Exchange Rate Type
173337  , p_source_138            IN VARCHAR2
173338 )
173339 IS
173340 
173341 l_component_type              VARCHAR2(80);
173342 l_component_code              VARCHAR2(30);
173343 l_component_type_code         VARCHAR2(1);
173344 l_component_appl_id           INTEGER;
173345 l_amb_context_code            VARCHAR2(30);
173346 l_entity_code                 VARCHAR2(30);
173347 l_event_class_code            VARCHAR2(30);
173348 l_ae_header_id                NUMBER;
173349 l_event_type_code             VARCHAR2(30);
173350 l_line_definition_code        VARCHAR2(30);
173351 l_line_definition_owner_code  VARCHAR2(1);
173352 --
173353 -- adr variables
173354 l_segment                     VARCHAR2(30);
173355 l_ccid                        NUMBER;
173356 l_adr_transaction_coa_id      NUMBER;
173357 l_adr_accounting_coa_id       NUMBER;
173358 l_adr_flexfield_segment_code  VARCHAR2(30);
173359 l_adr_flex_value_set_id       NUMBER;
173360 l_adr_value_type_code         VARCHAR2(30);
173361 l_adr_value_combination_id    NUMBER;
173362 l_adr_value_segment_code      VARCHAR2(30);
173363 
173364 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
173365 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
173366 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
173367 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
173368 
173369 -- 4262811 Variables ------------------------------------------------------------------------------------------
173370 l_entered_amt_idx             NUMBER;
173371 l_accted_amt_idx              NUMBER;
173372 l_acc_rev_flag                VARCHAR2(1);
173373 l_accrual_line_num            NUMBER;
173374 l_tmp_amt                     NUMBER;
173375 l_acc_rev_natural_side_code   VARCHAR2(1);
173376 
173377 l_num_entries                 NUMBER;
173378 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
173379 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
173380 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
173381 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
173382 l_recog_line_1                NUMBER;
173383 l_recog_line_2                NUMBER;
173384 
173385 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
173386 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
173387 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
173388 
173389 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
173390 
173391 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
173392 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
173393 
173394 ---------------------------------------------------------------------------------------------------------------
173395 
173396 
173397 --
173398 -- bulk performance
173399 --
173400 l_balance_type_code           VARCHAR2(1);
173401 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
173402 l_log_module                  VARCHAR2(240);
173403 
173404 --
173405 -- Upgrade strategy
173406 --
173407 l_actual_upg_option           VARCHAR2(1);
173408 l_enc_upg_option           VARCHAR2(1);
173409 
173410 --
173411 BEGIN
173412 --
173413 IF g_log_enabled THEN
173414       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_279';
173415 END IF;
173416 --
173417 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
173418 
173419       trace
173420          (p_msg      => 'BEGIN of AcctLineType_279'
173421          ,p_level    => C_LEVEL_PROCEDURE
173422          ,p_module   => l_log_module);
173423 
173424 END IF;
173425 --
173426 l_component_type             := 'AMB_JLT';
173427 l_component_code             := 'AP_TAX_RATE_VAR_DM';
173428 l_component_type_code        := 'S';
173429 l_component_appl_id          :=  200;
173430 l_amb_context_code           := 'DEFAULT';
173431 l_entity_code                := 'AP_INVOICES';
173432 l_event_class_code           := 'DEBIT MEMOS';
173433 l_event_type_code            := 'DEBIT MEMOS_ALL';
173434 l_line_definition_owner_code := 'S';
173435 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
173436 --
173437 l_balance_type_code          := 'A';
173438 l_segment                     := NULL;
173439 l_ccid                        := NULL;
173440 l_adr_transaction_coa_id      := NULL;
173441 l_adr_accounting_coa_id       := NULL;
173442 l_adr_flexfield_segment_code  := NULL;
173443 l_adr_flex_value_set_id       := NULL;
173444 l_adr_value_type_code         := NULL;
173445 l_adr_value_combination_id    := NULL;
173446 l_adr_value_segment_code      := NULL;
173447 
173448 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
173449 l_bflow_class_code           := '';    -- 4219869 Business Flow
173450 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
173451 l_budgetary_control_flag     := 'N';
173452 
173453 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
173454 l_bflow_applied_to_amt       := NULL; -- 5132302
173455 l_entered_amt_idx            := NULL;          -- 4262811
173456 l_accted_amt_idx             := NULL;          -- 4262811
173457 l_acc_rev_flag               := NULL;          -- 4262811
173458 l_accrual_line_num           := NULL;          -- 4262811
173459 l_tmp_amt                    := NULL;          -- 4262811
173460 --
173461  
173462 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
173463     l_balance_type_code <> 'B' THEN
173464 IF NVL(p_source_21,'
173465 ') =  'TRV' AND 
173466 NVL(p_source_84,'
173467 ') =  'Y'
173468  THEN 
173469 
173470    --
173471    XLA_AE_LINES_PKG.SetNewLine;
173472 
173473    p_balance_type_code          := l_balance_type_code;
173474    -- set the flag so later we will know whether the gain loss line needs to be created
173475    
173476    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
173477      p_actual_flag :='A';
173478    END IF;
173479 
173480    --
173481    -- bulk performance
173482    --
173483    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
173484                                       p_header_num   => 0); -- 4262811
173485    --
173486    -- set accounting line options
173487    --
173488    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
173489            p_natural_side_code          => 'D'
173490          , p_gain_or_loss_flag          => 'N'
173491          , p_gl_transfer_mode_code      => 'S'
173492          , p_acct_entry_type_code       => 'A'
173493          , p_switch_side_flag           => 'Y'
173494          , p_merge_duplicate_code       => 'A'
173495          );
173496    --
173497    l_acc_rev_natural_side_code := 'C';  -- 4262811
173498    -- 
173499    --
173500    -- set accounting line type info
173501    --
173502    xla_ae_lines_pkg.SetAcctLineType
173503       (p_component_type             => l_component_type
173504       ,p_event_type_code            => l_event_type_code
173505       ,p_line_definition_owner_code => l_line_definition_owner_code
173506       ,p_line_definition_code       => l_line_definition_code
173507       ,p_accounting_line_code       => l_component_code
173508       ,p_accounting_line_type_code  => l_component_type_code
173509       ,p_accounting_line_appl_id    => l_component_appl_id
173510       ,p_amb_context_code           => l_amb_context_code
173511       ,p_entity_code                => l_entity_code
173512       ,p_event_class_code           => l_event_class_code);
173513    --
173514    -- set accounting class
173515    --
173516    xla_ae_lines_pkg.SetAcctClass(
173517            p_accounting_class_code  => 'TRV'
173518          , p_ae_header_id           => l_ae_header_id
173519          );
173520 
173521    --
173522    -- set rounding class
173523    --
173524    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
173525                       'TRV';
173526 
173527    --
173528    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
173529    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
173530    --
173531    -- bulk performance
173532    --
173533    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
173534 
173535    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
173536       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
173537 
173538    -- 4955764
173539    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
173540       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
173541 
173542    -- 4458381 Public Sector Enh
173543    
173544    --
173545    -- set accounting attributes for the line type
173546    --
173547    l_entered_amt_idx := 23;
173548    l_accted_amt_idx  := 28;
173549    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
173550    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
173551    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
173552    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
173553    l_rec_acct_attrs.array_num_value(2)  := 
173554 xla_ae_sources_pkg.GetSystemSourceNum(
173555    p_source_code           => 'XLA_EVENT_APPL_ID'
173556  , p_source_type_code      => 'Y'
173557  , p_source_application_id =>  602
173558 );
173559    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
173560    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
173561    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
173562    l_rec_acct_attrs.array_char_value(4)  := 
173563 xla_ae_sources_pkg.GetSystemSourceChar(
173564    p_source_code           => 'XLA_ENTITY_CODE'
173565  , p_source_type_code      => 'Y'
173566  , p_source_application_id =>  602
173567 );
173568    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
173569    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
173570    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
173571    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
173572    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
173573    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
173574    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
173575    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
173576    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
173577    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
173578    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
173579    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
173580    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
173581    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
173582    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
173583    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
173584    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
173585    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
173586    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
173587    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
173588    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
173589    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
173590    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
173591    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
173592    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
173593    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
173594    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
173595    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
173596    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
173597    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
173598    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
173599    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
173600    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
173601    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
173602    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
173603    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
173604    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
173605    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
173606    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
173607    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
173608    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
173609    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
173610    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
173611    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
173612    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
173613    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
173614    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
173615    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
173616    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
173620    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
173617    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
173618    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
173619    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
173621    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
173622    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
173623    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
173624    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
173625    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
173626    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
173627    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
173628    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
173629    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
173630    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
173631    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
173632    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
173633    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
173634    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
173635    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
173636    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
173637    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
173638    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
173639    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
173640    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
173641    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
173642    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
173643    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
173644 
173645    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
173646    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
173647 
173648    ---------------------------------------------------------------------------------------------------------------
173649    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
173650    ---------------------------------------------------------------------------------------------------------------
173651    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
173652 
173653    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
173654    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
173655 
173656    IF xla_accounting_cache_pkg.GetValueChar
173657          (p_source_code         => 'LEDGER_CATEGORY_CODE'
173658          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
173659    AND l_bflow_method_code = 'PRIOR_ENTRY'
173660 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
173661    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
173662          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
173663        )
173664    THEN
173665          xla_ae_lines_pkg.BflowUpgEntry
173666            (p_business_method_code    => l_bflow_method_code
173667            ,p_business_class_code     => l_bflow_class_code
173668            ,p_balance_type            => l_balance_type_code);
173669    ELSE
173670       NULL;
173671 -- No business flow processing for business flow method of NONE.
173672    END IF;
173673 
173674    --
173675    -- call analytical criteria
173676    --
173677    
173678    --
173679    -- call description
173680    --
173681    
173682 xla_ae_lines_pkg.SetLineDescription(
173683    p_ae_header_id => l_ae_header_id
173684   ,p_description  => Description_2 (
173685      p_application_id         => p_application_id
173686    , p_ae_header_id           => l_ae_header_id 
173687 , p_source_1 => p_source_1
173688    )
173689 );
173690 
173691 
173692    --
173693    -- call ADRs
173694    -- Bug 4922099
173695    --
173696    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
173697         (NVL(l_actual_upg_option, 'N') = 'O') OR
173698         (NVL(l_enc_upg_option, 'N') = 'O')
173699       )
173700    THEN
173701    NULL;
173702    --
173703    --
173704    
173705   l_ccid := AcctDerRule_32(
173706            p_application_id           => p_application_id
173707          , p_ae_header_id             => l_ae_header_id 
173708 , p_source_18 => p_source_18
173712          , p_side                     => 'NA'
173709          , x_transaction_coa_id       => l_adr_transaction_coa_id
173710          , x_accounting_coa_id        => l_adr_accounting_coa_id
173711          , x_value_type_code          => l_adr_value_type_code
173713    );
173714 
173715    xla_ae_lines_pkg.set_ccid(
173716     p_code_combination_id          => l_ccid
173717   , p_value_type_code              => l_adr_value_type_code
173718   , p_transaction_coa_id           => l_adr_transaction_coa_id
173719   , p_accounting_coa_id            => l_adr_accounting_coa_id
173720   , p_adr_code                     => 'AP_INVOICE_DIST'
173721   , p_adr_type_code                => 'S'
173722   , p_component_type               => l_component_type
173723   , p_component_code               => l_component_code
173724   , p_component_type_code          => l_component_type_code
173725   , p_component_appl_id            => l_component_appl_id
173726   , p_amb_context_code             => l_amb_context_code
173727   , p_side                         => 'NA'
173728   );
173729 
173730 
173731    --
173732    --
173733    END IF;
173734    --
173735    -- Bug 4922099
173736    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
173737           (NVL(l_enc_upg_option, 'N') = 'O')
173738         ) AND
173739         (l_bflow_method_code = 'PRIOR_ENTRY')
173740       )
173741    THEN
173742       IF
173743       --
173744       1 = 2
173745       --
173746       THEN
173747       xla_accounting_err_pkg.build_message
173748                                     (p_appli_s_name            => 'XLA'
173749                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
173750                                     ,p_token_1                 => 'LINE_NUMBER'
173751                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
173752                                     ,p_token_2                 => 'LINE_TYPE_NAME'
173753                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
173754                                                                              l_component_type
173755                                                                             ,l_component_code
173756                                                                             ,l_component_type_code
173757                                                                             ,l_component_appl_id
173758                                                                             ,l_amb_context_code
173759                                                                             ,l_entity_code
173760                                                                             ,l_event_class_code
173761                                                                            )
173762                                     ,p_token_3                 => 'OWNER'
173763                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
173764                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
173765                                                                           ,p_lookup_code    => l_component_type_code
173766                                                                          )
173767                                     ,p_token_4                 => 'PRODUCT_NAME'
173768                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
173769                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
173770                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
173771                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
173772                                     ,p_ae_header_id            =>  NULL
173773                                        );
173774 
173775         IF (C_LEVEL_ERROR>= g_log_level) THEN
173776                  trace
173777                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
173778                       ,p_level    => C_LEVEL_ERROR
173779                       ,p_module   => l_log_module);
173780         END IF;
173781       END IF;
173782    END IF;
173783    --
173784    --
173785    ------------------------------------------------------------------------------------------------
173786    -- 4219869 Business Flow
173787    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
173788    -- Prior Entry.  Currently, the following code is always generated.
173789    ------------------------------------------------------------------------------------------------
173790    XLA_AE_LINES_PKG.ValidateCurrentLine;
173791 
173792    ------------------------------------------------------------------------------------
173793    -- 4219869 Business Flow
173794    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
173795    ------------------------------------------------------------------------------------
173796    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
173797 
173798    ----------------------------------------------------------------------------------
173799    -- 4219869 Business Flow
173800    -- Update journal entry status -- Need to generate this within IF <condition>
173801    ----------------------------------------------------------------------------------
173802    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
173803          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
173804          ,p_balance_type_code => l_balance_type_code
173805          );
173806 
173810    BEGIN
173807    -------------------------------------------------------------------------------------------
173808    -- 4262811 - Generate the Accrual Reversal lines
173809    -------------------------------------------------------------------------------------------
173811       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
173812                               (g_array_event(p_event_id).array_value_num('header_index'));
173813       IF l_acc_rev_flag IS NULL THEN
173814          l_acc_rev_flag := 'N';
173815       END IF;
173816    EXCEPTION
173817       WHEN OTHERS THEN
173818          l_acc_rev_flag := 'N';
173819    END;
173820    --
173821    IF (l_acc_rev_flag = 'Y') THEN
173822 
173823        -- 4645092  ------------------------------------------------------------------------------
173824        -- To allow MPA report to determine if it should generate report process
173825        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
173826        ------------------------------------------------------------------------------------------
173827 
173828        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
173829        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
173830    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
173831    -- call ADRs
173832    -- Bug 4922099
173833    --
173834    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
173835         (NVL(l_actual_upg_option, 'N') = 'O') OR
173836         (NVL(l_enc_upg_option, 'N') = 'O')
173837       )
173838    THEN
173839    NULL;
173840    --
173841    --
173842    
173843   l_ccid := AcctDerRule_32(
173844            p_application_id           => p_application_id
173845          , p_ae_header_id             => l_ae_header_id 
173846 , p_source_18 => p_source_18
173847          , x_transaction_coa_id       => l_adr_transaction_coa_id
173848          , x_accounting_coa_id        => l_adr_accounting_coa_id
173849          , x_value_type_code          => l_adr_value_type_code
173850          , p_side                     => 'NA'
173851    );
173852 
173853    xla_ae_lines_pkg.set_ccid(
173854     p_code_combination_id          => l_ccid
173855   , p_value_type_code              => l_adr_value_type_code
173856   , p_transaction_coa_id           => l_adr_transaction_coa_id
173857   , p_accounting_coa_id            => l_adr_accounting_coa_id
173858   , p_adr_code                     => 'AP_INVOICE_DIST'
173859   , p_adr_type_code                => 'S'
173860   , p_component_type               => l_component_type
173861   , p_component_code               => l_component_code
173862   , p_component_type_code          => l_component_type_code
173863   , p_component_appl_id            => l_component_appl_id
173864   , p_amb_context_code             => l_amb_context_code
173865   , p_side                         => 'NA'
173866   );
173867 
173868 
173869    --
173870    --
173871    END IF;
173872 
173873        --
173874        -- Update the line information that should be overwritten
173875        --
173876        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
173877                                          p_header_num   => 1);
173878        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
173879 
173880        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
173881 
173882        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
173883           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
173884        END IF;
173885 
173886       --
173887       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
173888       --
173889       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
173890           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
173891       ELSE
173892           ---------------------------------------------------------------------------------------------------
173893           -- 4262811a Switch Sign
173894           ---------------------------------------------------------------------------------------------------
173895           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
173896           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
173897                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
173898           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
173899                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
173900           -- 5132302
173901           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
173902                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
173903 
173904       END IF;
173905 
173906       -- 4955764
173907       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
173908       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
173909 
173910 
173911       XLA_AE_LINES_PKG.ValidateCurrentLine;
173912       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
173913 
173914       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
173915                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
173916                ,p_balance_type_code => l_balance_type_code);
173920    -----------------------------------------------------------------------------------------
173917 
173918    END IF;
173919 
173921    -- 4262811 Multiperiod Accounting
173922    -----------------------------------------------------------------------------------------
173923      -- No MPA option is assigned.
173924 
173925 
173926 END IF;
173927 END IF;
173928 --
173929 
173930 --
173931 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
173932    trace
173933       (p_msg      => 'END of AcctLineType_279'
173934       ,p_level    => C_LEVEL_PROCEDURE
173935       ,p_module   => l_log_module);
173936 END IF;
173937 --
173938 EXCEPTION
173939   WHEN xla_exceptions_pkg.application_exception THEN
173940       RAISE;
173941   WHEN OTHERS THEN
173942        xla_exceptions_pkg.raise_message
173943            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_279');
173944 END AcctLineType_279;
173945 --
173946 
173947 ---------------------------------------
173948 --
173949 -- PRIVATE FUNCTION
173950 --         AcctLineType_280
173951 --
173952 ---------------------------------------
173953 PROCEDURE AcctLineType_280 (
173954   p_application_id        IN NUMBER
173955  ,p_event_id              IN NUMBER
173956  ,p_calculate_acctd_flag  IN VARCHAR2
173957  ,p_calculate_g_l_flag    IN VARCHAR2
173958  ,p_actual_flag           IN OUT VARCHAR2
173959  ,p_balance_type_code     OUT VARCHAR2
173960  ,p_gain_or_loss_ref      OUT VARCHAR2
173961  
173962 --Invoice Distribution Type
173963  , p_source_21            IN VARCHAR2
173964  , p_source_21_meaning    IN VARCHAR2
173965 --Accounting Reversal Indicator
173966  , p_source_41            IN VARCHAR2
173967 --Distribution Link Type
173968  , p_source_43            IN VARCHAR2
173969 --Allocation to Main Distribution Identifier
173970  , p_source_45            IN NUMBER
173971 --Invoice Identifier
173972  , p_source_46            IN NUMBER
173973 --Invoice Distribution Identifier
173974  , p_source_52            IN NUMBER
173975 --Payables Encumbrance Upgrade Credit Account
173976  , p_source_53            IN NUMBER
173977 --Payables Encumbrance Upgrade Credit Amount
173978  , p_source_54            IN NUMBER
173979 --Invoice Currency Code
173980  , p_source_55            IN VARCHAR2
173981 --Payables Encumbrance Upgrade Credit Base Amount
173982  , p_source_56            IN NUMBER
173983 --Payables Encumbrance Upgrade Debit Account
173984  , p_source_57            IN NUMBER
173985 --Payables Encumbrance Upgrade Debit Amount
173986  , p_source_58            IN NUMBER
173987 --Payables Encumbrance Upgrade Debit Base Amount
173988  , p_source_59            IN NUMBER
173989 --Payables Encumbrance Upgrade Option
173990  , p_source_60            IN VARCHAR2
173991 --Deferred Accounting End Date
173992  , p_source_65            IN DATE
173993 --Deferred Accounting Option
173994  , p_source_66            IN VARCHAR2
173995 --Deferred Accounting Start Date
173996  , p_source_67            IN DATE
173997 --Override Accounted Amount Indicator
173998  , p_source_68            IN VARCHAR2
173999  , p_source_68_meaning    IN VARCHAR2
174000 --Third Party Type
174001  , p_source_71            IN VARCHAR2
174002 --Parent Reversal Identifier
174003  , p_source_72            IN NUMBER
174004 --Invoice Distribution Tax Line Identifier
174005  , p_source_74            IN NUMBER
174006 --Invoice Distribution Tax Distribution Identifier from Tax
174007  , p_source_75            IN NUMBER
174008 --Invoice Distribution Summary Tax Line Identifier
174009  , p_source_76            IN NUMBER
174010 --Payables Upgrade Credit Encumbrance Type Identifier
174011  , p_source_77            IN NUMBER
174012 --Payables Upgrade Debit Encumbrance Type Identifier
174013  , p_source_78            IN NUMBER
174014 --Business Flow Accounts Payable Application Identifier
174015  , p_source_79            IN NUMBER
174016 --Business Flow Invoice Distribution Type
174017  , p_source_80            IN VARCHAR2
174018 --Business Flow Invoice Entity Code
174019  , p_source_81            IN VARCHAR2
174020 --Business Flow Invoice Distribution Identifier
174021  , p_source_82            IN NUMBER
174022 --Business Flow Invoice Identifier
174023  , p_source_83            IN NUMBER
174024 --Purchasing Encumbrance Option
174025  , p_source_86            IN VARCHAR2
174026  , p_source_86_meaning    IN VARCHAR2
174027 --Invoice Encumbered Option
174028  , p_source_87            IN VARCHAR2
174029  , p_source_87_meaning    IN VARCHAR2
174030 --Invoice Distribution Encumbrance Amount
174031  , p_source_143            IN NUMBER
174032 --Invoice Distribution Encumbrance Ledger Amount
174033  , p_source_144            IN NUMBER
174034 )
174035 IS
174036 
174037 l_component_type              VARCHAR2(80);
174038 l_component_code              VARCHAR2(30);
174039 l_component_type_code         VARCHAR2(1);
174040 l_component_appl_id           INTEGER;
174041 l_amb_context_code            VARCHAR2(30);
174042 l_entity_code                 VARCHAR2(30);
174043 l_event_class_code            VARCHAR2(30);
174044 l_ae_header_id                NUMBER;
174045 l_event_type_code             VARCHAR2(30);
174046 l_line_definition_code        VARCHAR2(30);
174047 l_line_definition_owner_code  VARCHAR2(1);
174048 --
174049 -- adr variables
174050 l_segment                     VARCHAR2(30);
174051 l_ccid                        NUMBER;
174052 l_adr_transaction_coa_id      NUMBER;
174053 l_adr_accounting_coa_id       NUMBER;
174054 l_adr_flexfield_segment_code  VARCHAR2(30);
174055 l_adr_flex_value_set_id       NUMBER;
174056 l_adr_value_type_code         VARCHAR2(30);
174057 l_adr_value_combination_id    NUMBER;
174058 l_adr_value_segment_code      VARCHAR2(30);
174059 
174063 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
174060 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
174061 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
174062 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
174064 
174065 -- 4262811 Variables ------------------------------------------------------------------------------------------
174066 l_entered_amt_idx             NUMBER;
174067 l_accted_amt_idx              NUMBER;
174068 l_acc_rev_flag                VARCHAR2(1);
174069 l_accrual_line_num            NUMBER;
174070 l_tmp_amt                     NUMBER;
174071 l_acc_rev_natural_side_code   VARCHAR2(1);
174072 
174076 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
174073 l_num_entries                 NUMBER;
174074 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
174075 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
174077 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
174078 l_recog_line_1                NUMBER;
174079 l_recog_line_2                NUMBER;
174080 
174081 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
174082 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
174083 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
174084 
174085 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
174086 
174087 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
174088 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
174089 
174090 ---------------------------------------------------------------------------------------------------------------
174091 
174092 
174093 --
174094 -- bulk performance
174095 --
174096 l_balance_type_code           VARCHAR2(1);
174097 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
174098 l_log_module                  VARCHAR2(240);
174099 
174100 --
174101 -- Upgrade strategy
174102 --
174103 l_actual_upg_option           VARCHAR2(1);
174104 l_enc_upg_option           VARCHAR2(1);
174105 
174106 --
174107 BEGIN
174108 --
174109 IF g_log_enabled THEN
174110       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_280';
174111 END IF;
174112 --
174113 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
174114 
174115       trace
174116          (p_msg      => 'BEGIN of AcctLineType_280'
174117          ,p_level    => C_LEVEL_PROCEDURE
174118          ,p_module   => l_log_module);
174119 
174120 END IF;
174121 --
174122 l_component_type             := 'AMB_JLT';
174123 l_component_code             := 'AP_TAX_RATE_VAR_DM_ENC';
174124 l_component_type_code        := 'S';
174125 l_component_appl_id          :=  200;
174126 l_amb_context_code           := 'DEFAULT';
174127 l_entity_code                := 'AP_INVOICES';
174128 l_event_class_code           := 'DEBIT MEMOS';
174129 l_event_type_code            := 'DEBIT MEMOS_ALL';
174130 l_line_definition_owner_code := 'S';
174131 l_line_definition_code       := 'ENC_REV_DM_ALL';
174132 --
174133 l_balance_type_code          := 'E';
174134 l_segment                     := NULL;
174135 l_ccid                        := NULL;
174136 l_adr_transaction_coa_id      := NULL;
174137 l_adr_accounting_coa_id       := NULL;
174138 l_adr_flexfield_segment_code  := NULL;
174139 l_adr_flex_value_set_id       := NULL;
174140 l_adr_value_type_code         := NULL;
174141 l_adr_value_combination_id    := NULL;
174142 l_adr_value_segment_code      := NULL;
174143 
174144 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
174145 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
174146 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
174147 l_budgetary_control_flag     := 'N';
174148 
174149 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
174150 l_bflow_applied_to_amt       := NULL; -- 5132302
174151 l_entered_amt_idx            := NULL;          -- 4262811
174152 l_accted_amt_idx             := NULL;          -- 4262811
174153 l_acc_rev_flag               := NULL;          -- 4262811
174154 l_accrual_line_num           := NULL;          -- 4262811
174155 l_tmp_amt                    := NULL;          -- 4262811
174156 --
174157  
174158 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
174159     l_balance_type_code <> 'B' THEN
174160 IF NVL(p_source_21,'
174161 ') =  'TRV' AND 
174162 NVL(p_source_86,'
174163 ') =  'Y' AND 
174164 NVL(p_source_87,'
174165 ') =  'Y'
174166  THEN 
174167 
174168    --
174169    XLA_AE_LINES_PKG.SetNewLine;
174170 
174174    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
174171    p_balance_type_code          := l_balance_type_code;
174172    -- set the flag so later we will know whether the gain loss line needs to be created
174173    
174175      p_actual_flag :='A';
174176    END IF;
174177 
174178    --
174179    -- bulk performance
174180    --
174181    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
174182                                       p_header_num   => 0); -- 4262811
174183    --
174184    -- set accounting line options
174185    --
174186    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
174187            p_natural_side_code          => 'C'
174188          , p_gain_or_loss_flag          => 'N'
174189          , p_gl_transfer_mode_code      => 'S'
174190          , p_acct_entry_type_code       => 'E'
174191          , p_switch_side_flag           => 'Y'
174192          , p_merge_duplicate_code       => 'A'
174193          );
174194    --
174195    l_acc_rev_natural_side_code := 'D';  -- 4262811
174196    -- 
174197    --
174198    -- set accounting line type info
174199    --
174200    xla_ae_lines_pkg.SetAcctLineType
174201       (p_component_type             => l_component_type
174202       ,p_event_type_code            => l_event_type_code
174203       ,p_line_definition_owner_code => l_line_definition_owner_code
174204       ,p_line_definition_code       => l_line_definition_code
174205       ,p_accounting_line_code       => l_component_code
174206       ,p_accounting_line_type_code  => l_component_type_code
174207       ,p_accounting_line_appl_id    => l_component_appl_id
174208       ,p_amb_context_code           => l_amb_context_code
174209       ,p_entity_code                => l_entity_code
174210       ,p_event_class_code           => l_event_class_code);
174211    --
174212    -- set accounting class
174213    --
174214    xla_ae_lines_pkg.SetAcctClass(
174215            p_accounting_class_code  => 'TRV'
174216          , p_ae_header_id           => l_ae_header_id
174217          );
174218 
174219    --
174220    -- set rounding class
174221    --
174222    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
174223                       'TRV';
174224 
174225    --
174226    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
174227    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
174228    --
174229    -- bulk performance
174230    --
174231    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
174232 
174233    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
174234       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
174235 
174236    -- 4955764
174237    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
174238       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
174239 
174240    -- 4458381 Public Sector Enh
174241    
174242    --
174243    -- set accounting attributes for the line type
174244    --
174245    l_entered_amt_idx := 23;
174246    l_accted_amt_idx  := 25;
174247    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
174248    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
174249    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
174250    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
174251    l_rec_acct_attrs.array_num_value(2)  := 
174252 xla_ae_sources_pkg.GetSystemSourceNum(
174253    p_source_code           => 'XLA_EVENT_APPL_ID'
174254  , p_source_type_code      => 'Y'
174255  , p_source_application_id =>  602
174256 );
174257    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
174258    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
174259    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
174260    l_rec_acct_attrs.array_char_value(4)  := 
174261 xla_ae_sources_pkg.GetSystemSourceChar(
174262    p_source_code           => 'XLA_ENTITY_CODE'
174263  , p_source_type_code      => 'Y'
174264  , p_source_application_id =>  602
174265 );
174266    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
174267    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
174268    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
174269    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
174270    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
174271    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
174272    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
174273    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
174274    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
174275    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
174276    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
174277    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
174278    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
174279    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
174280    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
174281    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
174282    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
174283    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
174284    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
174285    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
174286    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
174287    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
174288    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
174289    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
174290    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
174291    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
174292    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
174293    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
174294    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
174295    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
174296    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
174297    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
174298    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
174299    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
174300    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
174301    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
174302    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
174303    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
174304    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
174305    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
174306    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
174307    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
174308    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
174309    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
174310    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
174311    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
174312    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
174313    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
174314    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
174315    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
174316    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
174317    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
174318    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
174319    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
174320    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
174321    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
174322    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
174323    l_rec_acct_attrs.array_num_value(33)  := p_source_74;
174324    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
174325    l_rec_acct_attrs.array_num_value(34)  := p_source_75;
174326    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
174327    l_rec_acct_attrs.array_num_value(35)  := p_source_76;
174328    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
174329    l_rec_acct_attrs.array_num_value(36)  := p_source_77;
174330    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
174331    l_rec_acct_attrs.array_num_value(37)  := p_source_78;
174332 
174333    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
174334    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
174335 
174336    ---------------------------------------------------------------------------------------------------------------
174337    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
174338    ---------------------------------------------------------------------------------------------------------------
174339    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
174340 
174341    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
174342    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
174343 
174344    IF xla_accounting_cache_pkg.GetValueChar
174345          (p_source_code         => 'LEDGER_CATEGORY_CODE'
174346          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
174347    AND l_bflow_method_code = 'PRIOR_ENTRY'
174348 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
174349    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
174350          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
174351        )
174352    THEN
174353          xla_ae_lines_pkg.BflowUpgEntry
174354            (p_business_method_code    => l_bflow_method_code
174355            ,p_business_class_code     => l_bflow_class_code
174356            ,p_balance_type            => l_balance_type_code);
174357    ELSE
174358       NULL;
174359 XLA_AE_LINES_PKG.business_flow_validation(
174360                                 p_business_method_code     => l_bflow_method_code
174361                                ,p_business_class_code      => l_bflow_class_code
174362                                ,p_inherit_description_flag => l_inherit_desc_flag);
174363    END IF;
174364 
174365    --
174366    -- call analytical criteria
174367    --
174368    -- Inherited Analytical Criteria for business flow method of Prior Entry.
174369    --
174370    -- call description
174371    --
174372    -- No description or it is inherited.
174373    --
174374    -- call ADRs
174375    -- Bug 4922099
174376    --
174377    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
174378         (NVL(l_actual_upg_option, 'N') = 'O') OR
174379         (NVL(l_enc_upg_option, 'N') = 'O')
174380       )
174381    THEN
174382    NULL;
174383    --
174384    --
174385    
174386    --
174387    --
174388    END IF;
174389    --
174390    -- Bug 4922099
174391    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
174392           (NVL(l_enc_upg_option, 'N') = 'O')
174393         ) AND
174394         (l_bflow_method_code = 'PRIOR_ENTRY')
174395       )
174396    THEN
174397       IF
174398       --
174399       1 = 1
174400       --
174401       THEN
174402       xla_accounting_err_pkg.build_message
174403                                     (p_appli_s_name            => 'XLA'
174404                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
174405                                     ,p_token_1                 => 'LINE_NUMBER'
174406                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
174407                                     ,p_token_2                 => 'LINE_TYPE_NAME'
174408                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
174409                                                                              l_component_type
174410                                                                             ,l_component_code
174411                                                                             ,l_component_type_code
174412                                                                             ,l_component_appl_id
174413                                                                             ,l_amb_context_code
174414                                                                             ,l_entity_code
174415                                                                             ,l_event_class_code
174416                                                                            )
174417                                     ,p_token_3                 => 'OWNER'
174418                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
174419                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
174420                                                                           ,p_lookup_code    => l_component_type_code
174421                                                                          )
174422                                     ,p_token_4                 => 'PRODUCT_NAME'
174423                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
174424                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
174425                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
174426                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
174427                                     ,p_ae_header_id            =>  NULL
174428                                        );
174429 
174430         IF (C_LEVEL_ERROR>= g_log_level) THEN
174431                  trace
174432                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
174433                       ,p_level    => C_LEVEL_ERROR
174434                       ,p_module   => l_log_module);
174435         END IF;
174436       END IF;
174437    END IF;
174438    --
174439    --
174440    ------------------------------------------------------------------------------------------------
174441    -- 4219869 Business Flow
174442    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
174443    -- Prior Entry.  Currently, the following code is always generated.
174447    ------------------------------------------------------------------------------------
174444    ------------------------------------------------------------------------------------------------
174445    -- No ValidateCurrentLine for business flow method of Prior Entry
174446 
174448    -- 4219869 Business Flow
174449    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
174450    ------------------------------------------------------------------------------------
174451    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
174452 
174453    ----------------------------------------------------------------------------------
174454    -- 4219869 Business Flow
174455    -- Update journal entry status -- Need to generate this within IF <condition>
174456    ----------------------------------------------------------------------------------
174457    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
174458          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
174459          ,p_balance_type_code => l_balance_type_code
174460          );
174461 
174462    -------------------------------------------------------------------------------------------
174463    -- 4262811 - Generate the Accrual Reversal lines
174464    -------------------------------------------------------------------------------------------
174465    BEGIN
174466       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
174467                               (g_array_event(p_event_id).array_value_num('header_index'));
174468       IF l_acc_rev_flag IS NULL THEN
174469          l_acc_rev_flag := 'N';
174470       END IF;
174471    EXCEPTION
174472       WHEN OTHERS THEN
174473          l_acc_rev_flag := 'N';
174474    END;
174475    --
174476    IF (l_acc_rev_flag = 'Y') THEN
174477 
174478        -- 4645092  ------------------------------------------------------------------------------
174479        -- To allow MPA report to determine if it should generate report process
174480        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
174481        ------------------------------------------------------------------------------------------
174482 
174483        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
174484        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
174485    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
174486    -- call ADRs
174487    -- Bug 4922099
174488    --
174489    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
174490         (NVL(l_actual_upg_option, 'N') = 'O') OR
174491         (NVL(l_enc_upg_option, 'N') = 'O')
174492       )
174493    THEN
174494    NULL;
174495    --
174496    --
174497    
174498    --
174499    --
174500    END IF;
174501 
174502        --
174503        -- Update the line information that should be overwritten
174504        --
174505        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
174506                                          p_header_num   => 1);
174507        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
174508 
174509        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
174510 
174511        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
174512           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
174513        END IF;
174514 
174515       --
174516       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
174517       --
174518       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
174519           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
174520       ELSE
174521           ---------------------------------------------------------------------------------------------------
174522           -- 4262811a Switch Sign
174523           ---------------------------------------------------------------------------------------------------
174524           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
174525           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
174526                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
174527           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
174528                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
174529           -- 5132302
174530           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
174531                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
174532 
174533       END IF;
174534 
174535       -- 4955764
174536       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
174537       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
174538 
174539 
174540       XLA_AE_LINES_PKG.ValidateCurrentLine;
174541       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
174542 
174543       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
174544                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
174545                ,p_balance_type_code => l_balance_type_code);
174546 
174547    END IF;
174548 
174549    -----------------------------------------------------------------------------------------
174550    -- 4262811 Multiperiod Accounting
174551    -----------------------------------------------------------------------------------------
174552      -- No MPA option is assigned.
174553 
174554 
174555 END IF;
174556 END IF;
174557 --
174558 
174559 --
174563       ,p_level    => C_LEVEL_PROCEDURE
174560 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
174561    trace
174562       (p_msg      => 'END of AcctLineType_280'
174564       ,p_module   => l_log_module);
174565 END IF;
174566 --
174567 EXCEPTION
174568   WHEN xla_exceptions_pkg.application_exception THEN
174569       RAISE;
174570   WHEN OTHERS THEN
174571        xla_exceptions_pkg.raise_message
174572            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_280');
174573 END AcctLineType_280;
174574 --
174575 
174576 ---------------------------------------
174577 --
174578 -- PRIVATE FUNCTION
174579 --         AcctLineType_281
174580 --
174581 ---------------------------------------
174582 PROCEDURE AcctLineType_281 (
174583   p_application_id        IN NUMBER
174584  ,p_event_id              IN NUMBER
174585  ,p_calculate_acctd_flag  IN VARCHAR2
174586  ,p_calculate_g_l_flag    IN VARCHAR2
174587  ,p_actual_flag           IN OUT VARCHAR2
174588  ,p_balance_type_code     OUT VARCHAR2
174589  ,p_gain_or_loss_ref      OUT VARCHAR2
174590  
174591 --Invoice Distribution Description
174592  , p_source_1            IN VARCHAR2
174593 --Invoice Distribution Ledger Amount
174594  , p_source_9            IN NUMBER
174595 --Invoice Distribution Account
174596  , p_source_18            IN NUMBER
174597 --Invoice Distribution Type
174598  , p_source_21            IN VARCHAR2
174599  , p_source_21_meaning    IN VARCHAR2
174600 --Accounting Reversal Indicator
174601  , p_source_41            IN VARCHAR2
174602 --Distribution Link Type
174603  , p_source_43            IN VARCHAR2
174604 --Allocation to Main Distribution Identifier
174605  , p_source_45            IN NUMBER
174606 --Invoice Identifier
174607  , p_source_46            IN NUMBER
174608 --Invoice Distribution Identifier
174609  , p_source_52            IN NUMBER
174610 --Payables Encumbrance Upgrade Credit Account
174611  , p_source_53            IN NUMBER
174612 --Payables Encumbrance Upgrade Credit Amount
174613  , p_source_54            IN NUMBER
174614 --Invoice Currency Code
174615  , p_source_55            IN VARCHAR2
174616 --Payables Encumbrance Upgrade Credit Base Amount
174617  , p_source_56            IN NUMBER
174618 --Payables Encumbrance Upgrade Debit Account
174619  , p_source_57            IN NUMBER
174620 --Payables Encumbrance Upgrade Debit Amount
174621  , p_source_58            IN NUMBER
174622 --Payables Encumbrance Upgrade Debit Base Amount
174623  , p_source_59            IN NUMBER
174624 --Payables Encumbrance Upgrade Option
174625  , p_source_60            IN VARCHAR2
174626 --Invoice Distribution Amount
174627  , p_source_61            IN NUMBER
174628 --Deferred Accounting End Date
174629  , p_source_65            IN DATE
174630 --Deferred Accounting Option
174631  , p_source_66            IN VARCHAR2
174632 --Deferred Accounting Start Date
174633  , p_source_67            IN DATE
174634 --Override Accounted Amount Indicator
174635  , p_source_68            IN VARCHAR2
174636  , p_source_68_meaning    IN VARCHAR2
174637 --Invoice Supplier Identifier
174638  , p_source_69            IN NUMBER
174639 --Invoice Supplier Site Identifier
174640  , p_source_70            IN NUMBER
174641 --Third Party Type
174642  , p_source_71            IN VARCHAR2
174643 --Parent Reversal Identifier
174644  , p_source_72            IN NUMBER
174645 --Invoice Distribution Statistical Amount
174646  , p_source_73            IN NUMBER
174647 --Invoice Distribution Tax Line Identifier
174648  , p_source_74            IN NUMBER
174649 --Invoice Distribution Tax Distribution Identifier from Tax
174650  , p_source_75            IN NUMBER
174651 --Invoice Distribution Summary Tax Line Identifier
174652  , p_source_76            IN NUMBER
174653 --Payables Upgrade Credit Encumbrance Type Identifier
174654  , p_source_77            IN NUMBER
174655 --Payables Upgrade Debit Encumbrance Type Identifier
174656  , p_source_78            IN NUMBER
174657 --Business Flow Accounts Payable Application Identifier
174658  , p_source_79            IN NUMBER
174659 --Business Flow Invoice Distribution Type
174660  , p_source_80            IN VARCHAR2
174661 --Business Flow Invoice Entity Code
174662  , p_source_81            IN VARCHAR2
174663 --Business Flow Invoice Distribution Identifier
174664  , p_source_82            IN NUMBER
174665 --Business Flow Invoice Identifier
174666  , p_source_83            IN NUMBER
174667 --Accrue on Receipt Option
174668  , p_source_84            IN VARCHAR2
174669  , p_source_84_meaning    IN VARCHAR2
174670 --Invoice Exchange Date
174671  , p_source_136            IN DATE
174672 --Invoice Exchange Rate
174673  , p_source_137            IN NUMBER
174674 --Invoice Exchange Rate Type
174675  , p_source_138            IN VARCHAR2
174676 )
174677 IS
174678 
174679 l_component_type              VARCHAR2(80);
174680 l_component_code              VARCHAR2(30);
174681 l_component_type_code         VARCHAR2(1);
174682 l_component_appl_id           INTEGER;
174683 l_amb_context_code            VARCHAR2(30);
174684 l_entity_code                 VARCHAR2(30);
174685 l_event_class_code            VARCHAR2(30);
174686 l_ae_header_id                NUMBER;
174687 l_event_type_code             VARCHAR2(30);
174688 l_line_definition_code        VARCHAR2(30);
174689 l_line_definition_owner_code  VARCHAR2(1);
174690 --
174691 -- adr variables
174692 l_segment                     VARCHAR2(30);
174693 l_ccid                        NUMBER;
174694 l_adr_transaction_coa_id      NUMBER;
174695 l_adr_accounting_coa_id       NUMBER;
174696 l_adr_flexfield_segment_code  VARCHAR2(30);
174697 l_adr_flex_value_set_id       NUMBER;
174698 l_adr_value_type_code         VARCHAR2(30);
174699 l_adr_value_combination_id    NUMBER;
174700 l_adr_value_segment_code      VARCHAR2(30);
174701 
174705 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
174702 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
174703 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
174704 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
174706 
174707 -- 4262811 Variables ------------------------------------------------------------------------------------------
174708 l_entered_amt_idx             NUMBER;
174709 l_accted_amt_idx              NUMBER;
174710 l_acc_rev_flag                VARCHAR2(1);
174711 l_accrual_line_num            NUMBER;
174712 l_tmp_amt                     NUMBER;
174713 l_acc_rev_natural_side_code   VARCHAR2(1);
174714 
174715 l_num_entries                 NUMBER;
174716 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
174717 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
174718 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
174719 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
174720 l_recog_line_1                NUMBER;
174721 l_recog_line_2                NUMBER;
174722 
174723 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
174724 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
174725 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
174726 
174727 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
174728 
174729 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
174730 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
174731 
174732 ---------------------------------------------------------------------------------------------------------------
174733 
174734 
174735 --
174736 -- bulk performance
174737 --
174738 l_balance_type_code           VARCHAR2(1);
174739 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
174740 l_log_module                  VARCHAR2(240);
174741 
174742 --
174743 -- Upgrade strategy
174744 --
174745 l_actual_upg_option           VARCHAR2(1);
174746 l_enc_upg_option           VARCHAR2(1);
174747 
174748 --
174749 BEGIN
174750 --
174751 IF g_log_enabled THEN
174752       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_281';
174753 END IF;
174754 --
174755 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
174756 
174757       trace
174758          (p_msg      => 'BEGIN of AcctLineType_281'
174759          ,p_level    => C_LEVEL_PROCEDURE
174760          ,p_module   => l_log_module);
174761 
174762 END IF;
174763 --
174764 l_component_type             := 'AMB_JLT';
174765 l_component_code             := 'AP_TAX_RATE_VAR_INV';
174766 l_component_type_code        := 'S';
174767 l_component_appl_id          :=  200;
174768 l_amb_context_code           := 'DEFAULT';
174769 l_entity_code                := 'AP_INVOICES';
174770 l_event_class_code           := 'INVOICES';
174771 l_event_type_code            := 'INVOICES_ALL';
174772 l_line_definition_owner_code := 'S';
174773 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
174774 --
174775 l_balance_type_code          := 'A';
174776 l_segment                     := NULL;
174777 l_ccid                        := NULL;
174778 l_adr_transaction_coa_id      := NULL;
174779 l_adr_accounting_coa_id       := NULL;
174780 l_adr_flexfield_segment_code  := NULL;
174781 l_adr_flex_value_set_id       := NULL;
174782 l_adr_value_type_code         := NULL;
174783 l_adr_value_combination_id    := NULL;
174784 l_adr_value_segment_code      := NULL;
174785 
174786 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
174787 l_bflow_class_code           := '';    -- 4219869 Business Flow
174788 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
174789 l_budgetary_control_flag     := 'N';
174790 
174791 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
174792 l_bflow_applied_to_amt       := NULL; -- 5132302
174793 l_entered_amt_idx            := NULL;          -- 4262811
174794 l_accted_amt_idx             := NULL;          -- 4262811
174795 l_acc_rev_flag               := NULL;          -- 4262811
174796 l_accrual_line_num           := NULL;          -- 4262811
174797 l_tmp_amt                    := NULL;          -- 4262811
174798 --
174799  
174800 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
174801     l_balance_type_code <> 'B' THEN
174802 IF NVL(p_source_21,'
174803 ') =  'TRV' AND 
174804 NVL(p_source_84,'
174805 ') =  'Y'
174806  THEN 
174807 
174808    --
174809    XLA_AE_LINES_PKG.SetNewLine;
174810 
174811    p_balance_type_code          := l_balance_type_code;
174812    -- set the flag so later we will know whether the gain loss line needs to be created
174813    
174814    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
174815      p_actual_flag :='A';
174816    END IF;
174817 
174818    --
174819    -- bulk performance
174820    --
174821    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
174822                                       p_header_num   => 0); -- 4262811
174823    --
174824    -- set accounting line options
174825    --
174826    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
174827            p_natural_side_code          => 'D'
174828          , p_gain_or_loss_flag          => 'N'
174829          , p_gl_transfer_mode_code      => 'S'
174830          , p_acct_entry_type_code       => 'A'
174831          , p_switch_side_flag           => 'Y'
174832          , p_merge_duplicate_code       => 'A'
174833          );
174834    --
174835    l_acc_rev_natural_side_code := 'C';  -- 4262811
174836    -- 
174837    --
174838    -- set accounting line type info
174839    --
174843       ,p_line_definition_owner_code => l_line_definition_owner_code
174840    xla_ae_lines_pkg.SetAcctLineType
174841       (p_component_type             => l_component_type
174842       ,p_event_type_code            => l_event_type_code
174844       ,p_line_definition_code       => l_line_definition_code
174845       ,p_accounting_line_code       => l_component_code
174846       ,p_accounting_line_type_code  => l_component_type_code
174847       ,p_accounting_line_appl_id    => l_component_appl_id
174848       ,p_amb_context_code           => l_amb_context_code
174849       ,p_entity_code                => l_entity_code
174850       ,p_event_class_code           => l_event_class_code);
174851    --
174852    -- set accounting class
174853    --
174854    xla_ae_lines_pkg.SetAcctClass(
174855            p_accounting_class_code  => 'TRV'
174856          , p_ae_header_id           => l_ae_header_id
174857          );
174858 
174859    --
174860    -- set rounding class
174861    --
174862    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
174863                       'TRV';
174864 
174865    --
174866    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
174867    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
174868    --
174869    -- bulk performance
174870    --
174871    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
174872 
174873    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
174874       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
174875 
174876    -- 4955764
174877    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
174878       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
174879 
174880    -- 4458381 Public Sector Enh
174881    
174882    --
174883    -- set accounting attributes for the line type
174884    --
174885    l_entered_amt_idx := 24;
174886    l_accted_amt_idx  := 29;
174887    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
174888    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
174889    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
174890    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
174891    l_rec_acct_attrs.array_num_value(2)  := 
174892 xla_ae_sources_pkg.GetSystemSourceNum(
174893    p_source_code           => 'XLA_EVENT_APPL_ID'
174894  , p_source_type_code      => 'Y'
174895  , p_source_application_id =>  602
174896 );
174897    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
174898    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
174899    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
174900    l_rec_acct_attrs.array_char_value(4)  := 
174901 xla_ae_sources_pkg.GetSystemSourceChar(
174902    p_source_code           => 'XLA_ENTITY_CODE'
174903  , p_source_type_code      => 'Y'
174904  , p_source_application_id =>  602
174905 );
174906    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
174907    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
174908    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
174909    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
174910    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
174911    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
174912    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
174913    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
174914    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
174915    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
174916    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
174917    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
174918    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
174919    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
174920    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
174921    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
174922    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
174923    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
174924    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
174925    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
174926    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
174927    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
174928    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
174929    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
174930    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
174931    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
174932    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
174933    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
174934    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
174935    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
174936    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
174937    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
174938    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
174939    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
174940    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
174941    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
174942    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
174943    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
174944    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
174945    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
174946    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
174950    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
174947    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
174948    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
174949    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
174951    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
174952    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
174953    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
174954    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
174955    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
174956    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
174957    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
174958    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
174959    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
174960    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
174961    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
174962    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
174963    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
174964    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
174965    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
174966    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
174967    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
174968    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
174969    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
174970    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
174971    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
174972    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
174973    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
174974    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
174975    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
174976    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
174977    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
174978    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
174979    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
174980    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
174981    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
174982    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
174983    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
174984    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
174985    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
174986 
174987    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
174988    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
174989 
174990    ---------------------------------------------------------------------------------------------------------------
174991    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
174992    ---------------------------------------------------------------------------------------------------------------
174993    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
174994 
174995    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
174996    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
174997 
174998    IF xla_accounting_cache_pkg.GetValueChar
174999          (p_source_code         => 'LEDGER_CATEGORY_CODE'
175000          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
175001    AND l_bflow_method_code = 'PRIOR_ENTRY'
175002 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
175003    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
175004          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
175005        )
175006    THEN
175007          xla_ae_lines_pkg.BflowUpgEntry
175008            (p_business_method_code    => l_bflow_method_code
175009            ,p_business_class_code     => l_bflow_class_code
175010            ,p_balance_type            => l_balance_type_code);
175011    ELSE
175012       NULL;
175013 -- No business flow processing for business flow method of NONE.
175014    END IF;
175015 
175016    --
175017    -- call analytical criteria
175018    --
175019    
175020    --
175021    -- call description
175022    --
175023    
175024 xla_ae_lines_pkg.SetLineDescription(
175025    p_ae_header_id => l_ae_header_id
175026   ,p_description  => Description_2 (
175027      p_application_id         => p_application_id
175028    , p_ae_header_id           => l_ae_header_id 
175029 , p_source_1 => p_source_1
175030    )
175031 );
175032 
175033 
175034    --
175035    -- call ADRs
175036    -- Bug 4922099
175037    --
175038    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
175039         (NVL(l_actual_upg_option, 'N') = 'O') OR
175040         (NVL(l_enc_upg_option, 'N') = 'O')
175041       )
175042    THEN
175043    NULL;
175044    --
175045    --
175046    
175047   l_ccid := AcctDerRule_32(
175048            p_application_id           => p_application_id
175049          , p_ae_header_id             => l_ae_header_id 
175050 , p_source_18 => p_source_18
175051          , x_transaction_coa_id       => l_adr_transaction_coa_id
175052          , x_accounting_coa_id        => l_adr_accounting_coa_id
175053          , x_value_type_code          => l_adr_value_type_code
175054          , p_side                     => 'NA'
175055    );
175056 
175057    xla_ae_lines_pkg.set_ccid(
175058     p_code_combination_id          => l_ccid
175062   , p_adr_code                     => 'AP_INVOICE_DIST'
175059   , p_value_type_code              => l_adr_value_type_code
175060   , p_transaction_coa_id           => l_adr_transaction_coa_id
175061   , p_accounting_coa_id            => l_adr_accounting_coa_id
175063   , p_adr_type_code                => 'S'
175064   , p_component_type               => l_component_type
175065   , p_component_code               => l_component_code
175066   , p_component_type_code          => l_component_type_code
175067   , p_component_appl_id            => l_component_appl_id
175068   , p_amb_context_code             => l_amb_context_code
175069   , p_side                         => 'NA'
175070   );
175071 
175072 
175073    --
175074    --
175075    END IF;
175076    --
175077    -- Bug 4922099
175078    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
175079           (NVL(l_enc_upg_option, 'N') = 'O')
175080         ) AND
175081         (l_bflow_method_code = 'PRIOR_ENTRY')
175082       )
175083    THEN
175084       IF
175085       --
175086       1 = 2
175087       --
175088       THEN
175089       xla_accounting_err_pkg.build_message
175090                                     (p_appli_s_name            => 'XLA'
175091                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
175092                                     ,p_token_1                 => 'LINE_NUMBER'
175093                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
175094                                     ,p_token_2                 => 'LINE_TYPE_NAME'
175095                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
175096                                                                              l_component_type
175097                                                                             ,l_component_code
175098                                                                             ,l_component_type_code
175099                                                                             ,l_component_appl_id
175100                                                                             ,l_amb_context_code
175101                                                                             ,l_entity_code
175102                                                                             ,l_event_class_code
175103                                                                            )
175104                                     ,p_token_3                 => 'OWNER'
175105                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
175106                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
175107                                                                           ,p_lookup_code    => l_component_type_code
175108                                                                          )
175109                                     ,p_token_4                 => 'PRODUCT_NAME'
175110                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
175111                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
175112                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
175113                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
175114                                     ,p_ae_header_id            =>  NULL
175115                                        );
175116 
175117         IF (C_LEVEL_ERROR>= g_log_level) THEN
175118                  trace
175119                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
175120                       ,p_level    => C_LEVEL_ERROR
175121                       ,p_module   => l_log_module);
175122         END IF;
175123       END IF;
175124    END IF;
175125    --
175126    --
175127    ------------------------------------------------------------------------------------------------
175128    -- 4219869 Business Flow
175129    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
175130    -- Prior Entry.  Currently, the following code is always generated.
175131    ------------------------------------------------------------------------------------------------
175132    XLA_AE_LINES_PKG.ValidateCurrentLine;
175133 
175134    ------------------------------------------------------------------------------------
175135    -- 4219869 Business Flow
175136    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
175137    ------------------------------------------------------------------------------------
175138    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
175139 
175140    ----------------------------------------------------------------------------------
175141    -- 4219869 Business Flow
175142    -- Update journal entry status -- Need to generate this within IF <condition>
175143    ----------------------------------------------------------------------------------
175144    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
175145          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
175146          ,p_balance_type_code => l_balance_type_code
175147          );
175148 
175149    -------------------------------------------------------------------------------------------
175150    -- 4262811 - Generate the Accrual Reversal lines
175151    -------------------------------------------------------------------------------------------
175152    BEGIN
175153       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
175154                               (g_array_event(p_event_id).array_value_num('header_index'));
175158    EXCEPTION
175155       IF l_acc_rev_flag IS NULL THEN
175156          l_acc_rev_flag := 'N';
175157       END IF;
175159       WHEN OTHERS THEN
175160          l_acc_rev_flag := 'N';
175161    END;
175162    --
175163    IF (l_acc_rev_flag = 'Y') THEN
175164 
175165        -- 4645092  ------------------------------------------------------------------------------
175166        -- To allow MPA report to determine if it should generate report process
175167        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
175168        ------------------------------------------------------------------------------------------
175169 
175170        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
175171        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
175172    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
175173    -- call ADRs
175174    -- Bug 4922099
175175    --
175176    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
175177         (NVL(l_actual_upg_option, 'N') = 'O') OR
175178         (NVL(l_enc_upg_option, 'N') = 'O')
175179       )
175180    THEN
175181    NULL;
175182    --
175183    --
175184    
175185   l_ccid := AcctDerRule_32(
175186            p_application_id           => p_application_id
175187          , p_ae_header_id             => l_ae_header_id 
175188 , p_source_18 => p_source_18
175189          , x_transaction_coa_id       => l_adr_transaction_coa_id
175190          , x_accounting_coa_id        => l_adr_accounting_coa_id
175191          , x_value_type_code          => l_adr_value_type_code
175192          , p_side                     => 'NA'
175193    );
175194 
175195    xla_ae_lines_pkg.set_ccid(
175196     p_code_combination_id          => l_ccid
175197   , p_value_type_code              => l_adr_value_type_code
175198   , p_transaction_coa_id           => l_adr_transaction_coa_id
175199   , p_accounting_coa_id            => l_adr_accounting_coa_id
175200   , p_adr_code                     => 'AP_INVOICE_DIST'
175201   , p_adr_type_code                => 'S'
175202   , p_component_type               => l_component_type
175203   , p_component_code               => l_component_code
175204   , p_component_type_code          => l_component_type_code
175205   , p_component_appl_id            => l_component_appl_id
175206   , p_amb_context_code             => l_amb_context_code
175207   , p_side                         => 'NA'
175208   );
175209 
175210 
175211    --
175212    --
175213    END IF;
175214 
175215        --
175216        -- Update the line information that should be overwritten
175217        --
175218        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
175219                                          p_header_num   => 1);
175220        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
175221 
175222        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
175223 
175224        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
175225           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
175226        END IF;
175227 
175228       --
175229       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
175230       --
175231       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
175232           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
175233       ELSE
175234           ---------------------------------------------------------------------------------------------------
175235           -- 4262811a Switch Sign
175236           ---------------------------------------------------------------------------------------------------
175237           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
175238           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
175239                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
175240           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
175241                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
175242           -- 5132302
175243           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
175244                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
175245 
175246       END IF;
175247 
175248       -- 4955764
175249       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
175250       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
175251 
175252 
175253       XLA_AE_LINES_PKG.ValidateCurrentLine;
175254       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
175255 
175256       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
175257                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
175258                ,p_balance_type_code => l_balance_type_code);
175259 
175260    END IF;
175261 
175262    -----------------------------------------------------------------------------------------
175263    -- 4262811 Multiperiod Accounting
175264    -----------------------------------------------------------------------------------------
175265      -- No MPA option is assigned.
175266 
175267 
175268 END IF;
175269 END IF;
175270 --
175271 
175272 --
175273 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
175274    trace
175275       (p_msg      => 'END of AcctLineType_281'
175276       ,p_level    => C_LEVEL_PROCEDURE
175277       ,p_module   => l_log_module);
175281   WHEN xla_exceptions_pkg.application_exception THEN
175278 END IF;
175279 --
175280 EXCEPTION
175282       RAISE;
175283   WHEN OTHERS THEN
175284        xla_exceptions_pkg.raise_message
175285            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_281');
175286 END AcctLineType_281;
175287 --
175288 
175289 ---------------------------------------
175290 --
175291 -- PRIVATE FUNCTION
175292 --         AcctLineType_282
175293 --
175294 ---------------------------------------
175295 PROCEDURE AcctLineType_282 (
175296   p_application_id        IN NUMBER
175297  ,p_event_id              IN NUMBER
175298  ,p_calculate_acctd_flag  IN VARCHAR2
175299  ,p_calculate_g_l_flag    IN VARCHAR2
175300  ,p_actual_flag           IN OUT VARCHAR2
175301  ,p_balance_type_code     OUT VARCHAR2
175302  ,p_gain_or_loss_ref      OUT VARCHAR2
175303  
175304 --Invoice Distribution Type
175305  , p_source_21            IN VARCHAR2
175306  , p_source_21_meaning    IN VARCHAR2
175307 --Accounting Reversal Indicator
175308  , p_source_41            IN VARCHAR2
175309 --Distribution Link Type
175310  , p_source_43            IN VARCHAR2
175311 --Allocation to Main Distribution Identifier
175312  , p_source_45            IN NUMBER
175313 --Invoice Identifier
175314  , p_source_46            IN NUMBER
175315 --Invoice Distribution Identifier
175316  , p_source_52            IN NUMBER
175317 --Payables Encumbrance Upgrade Credit Account
175318  , p_source_53            IN NUMBER
175319 --Payables Encumbrance Upgrade Credit Amount
175320  , p_source_54            IN NUMBER
175321 --Invoice Currency Code
175322  , p_source_55            IN VARCHAR2
175323 --Payables Encumbrance Upgrade Credit Base Amount
175324  , p_source_56            IN NUMBER
175325 --Payables Encumbrance Upgrade Debit Account
175326  , p_source_57            IN NUMBER
175327 --Payables Encumbrance Upgrade Debit Amount
175328  , p_source_58            IN NUMBER
175329 --Payables Encumbrance Upgrade Debit Base Amount
175330  , p_source_59            IN NUMBER
175331 --Payables Encumbrance Upgrade Option
175332  , p_source_60            IN VARCHAR2
175333 --Invoice Distribution Amount
175334  , p_source_61            IN NUMBER
175335 --Deferred Accounting End Date
175336  , p_source_65            IN DATE
175337 --Deferred Accounting Option
175338  , p_source_66            IN VARCHAR2
175339 --Deferred Accounting Start Date
175340  , p_source_67            IN DATE
175341 --Override Accounted Amount Indicator
175342  , p_source_68            IN VARCHAR2
175343  , p_source_68_meaning    IN VARCHAR2
175344 --Third Party Type
175345  , p_source_71            IN VARCHAR2
175346 --Parent Reversal Identifier
175347  , p_source_72            IN NUMBER
175348 --Invoice Distribution Statistical Amount
175349  , p_source_73            IN NUMBER
175350 --Invoice Distribution Tax Line Identifier
175351  , p_source_74            IN NUMBER
175352 --Invoice Distribution Tax Distribution Identifier from Tax
175353  , p_source_75            IN NUMBER
175354 --Invoice Distribution Summary Tax Line Identifier
175355  , p_source_76            IN NUMBER
175356 --Payables Upgrade Credit Encumbrance Type Identifier
175357  , p_source_77            IN NUMBER
175358 --Payables Upgrade Debit Encumbrance Type Identifier
175359  , p_source_78            IN NUMBER
175360 --Business Flow Accounts Payable Application Identifier
175361  , p_source_79            IN NUMBER
175362 --Business Flow Invoice Distribution Type
175363  , p_source_80            IN VARCHAR2
175364 --Business Flow Invoice Entity Code
175365  , p_source_81            IN VARCHAR2
175366 --Business Flow Invoice Distribution Identifier
175367  , p_source_82            IN NUMBER
175368 --Business Flow Invoice Identifier
175369  , p_source_83            IN NUMBER
175370 --Purchasing Encumbrance Option
175371  , p_source_86            IN VARCHAR2
175372  , p_source_86_meaning    IN VARCHAR2
175373 --Invoice Encumbered Option
175374  , p_source_87            IN VARCHAR2
175375  , p_source_87_meaning    IN VARCHAR2
175376 --Invoice Distribution Encumbrance Amount
175377  , p_source_143            IN NUMBER
175378 --Invoice Distribution Encumbrance Ledger Amount
175379  , p_source_144            IN NUMBER
175380 )
175381 IS
175382 
175383 l_component_type              VARCHAR2(80);
175384 l_component_code              VARCHAR2(30);
175385 l_component_type_code         VARCHAR2(1);
175386 l_component_appl_id           INTEGER;
175387 l_amb_context_code            VARCHAR2(30);
175388 l_entity_code                 VARCHAR2(30);
175389 l_event_class_code            VARCHAR2(30);
175390 l_ae_header_id                NUMBER;
175391 l_event_type_code             VARCHAR2(30);
175392 l_line_definition_code        VARCHAR2(30);
175393 l_line_definition_owner_code  VARCHAR2(1);
175394 --
175395 -- adr variables
175396 l_segment                     VARCHAR2(30);
175397 l_ccid                        NUMBER;
175398 l_adr_transaction_coa_id      NUMBER;
175399 l_adr_accounting_coa_id       NUMBER;
175400 l_adr_flexfield_segment_code  VARCHAR2(30);
175401 l_adr_flex_value_set_id       NUMBER;
175402 l_adr_value_type_code         VARCHAR2(30);
175403 l_adr_value_combination_id    NUMBER;
175404 l_adr_value_segment_code      VARCHAR2(30);
175405 
175406 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
175407 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
175408 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
175409 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
175410 
175411 -- 4262811 Variables ------------------------------------------------------------------------------------------
175412 l_entered_amt_idx             NUMBER;
175416 l_tmp_amt                     NUMBER;
175413 l_accted_amt_idx              NUMBER;
175414 l_acc_rev_flag                VARCHAR2(1);
175415 l_accrual_line_num            NUMBER;
175417 l_acc_rev_natural_side_code   VARCHAR2(1);
175418 
175419 l_num_entries                 NUMBER;
175420 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
175421 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
175422 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
175423 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
175424 l_recog_line_1                NUMBER;
175425 l_recog_line_2                NUMBER;
175426 
175427 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
175428 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
175429 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
175430 
175431 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
175432 
175433 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
175434 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
175435 
175436 ---------------------------------------------------------------------------------------------------------------
175437 
175438 
175439 --
175440 -- bulk performance
175441 --
175442 l_balance_type_code           VARCHAR2(1);
175443 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
175444 l_log_module                  VARCHAR2(240);
175445 
175446 --
175447 -- Upgrade strategy
175448 --
175449 l_actual_upg_option           VARCHAR2(1);
175450 l_enc_upg_option           VARCHAR2(1);
175451 
175452 --
175453 BEGIN
175454 --
175455 IF g_log_enabled THEN
175456       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_282';
175457 END IF;
175458 --
175459 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
175460 
175461       trace
175462          (p_msg      => 'BEGIN of AcctLineType_282'
175463          ,p_level    => C_LEVEL_PROCEDURE
175464          ,p_module   => l_log_module);
175465 
175466 END IF;
175467 --
175468 l_component_type             := 'AMB_JLT';
175469 l_component_code             := 'AP_TAX_RATE_VAR_INV_ENC';
175470 l_component_type_code        := 'S';
175471 l_component_appl_id          :=  200;
175472 l_amb_context_code           := 'DEFAULT';
175473 l_entity_code                := 'AP_INVOICES';
175474 l_event_class_code           := 'INVOICES';
175475 l_event_type_code            := 'INVOICES_ALL';
175476 l_line_definition_owner_code := 'S';
175477 l_line_definition_code       := 'ENC_REV_INVOICES_ALL';
175478 --
175479 l_balance_type_code          := 'E';
175480 l_segment                     := NULL;
175481 l_ccid                        := NULL;
175482 l_adr_transaction_coa_id      := NULL;
175483 l_adr_accounting_coa_id       := NULL;
175484 l_adr_flexfield_segment_code  := NULL;
175485 l_adr_flex_value_set_id       := NULL;
175486 l_adr_value_type_code         := NULL;
175487 l_adr_value_combination_id    := NULL;
175488 l_adr_value_segment_code      := NULL;
175489 
175490 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
175491 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
175492 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
175493 l_budgetary_control_flag     := 'N';
175494 
175495 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
175496 l_bflow_applied_to_amt       := NULL; -- 5132302
175497 l_entered_amt_idx            := NULL;          -- 4262811
175498 l_accted_amt_idx             := NULL;          -- 4262811
175499 l_acc_rev_flag               := NULL;          -- 4262811
175500 l_accrual_line_num           := NULL;          -- 4262811
175501 l_tmp_amt                    := NULL;          -- 4262811
175502 --
175503  
175504 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
175505     l_balance_type_code <> 'B' THEN
175506 IF NVL(p_source_21,'
175507 ') =  'TRV' AND 
175508 NVL(p_source_86,'
175509 ') =  'Y' AND 
175510 NVL(p_source_87,'
175511 ') =  'Y'
175512  THEN 
175513 
175514    --
175515    XLA_AE_LINES_PKG.SetNewLine;
175516 
175517    p_balance_type_code          := l_balance_type_code;
175518    -- set the flag so later we will know whether the gain loss line needs to be created
175519    
175520    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
175521      p_actual_flag :='A';
175522    END IF;
175523 
175524    --
175525    -- bulk performance
175526    --
175527    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
175528                                       p_header_num   => 0); -- 4262811
175529    --
175530    -- set accounting line options
175531    --
175532    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
175533            p_natural_side_code          => 'C'
175534          , p_gain_or_loss_flag          => 'N'
175535          , p_gl_transfer_mode_code      => 'S'
175536          , p_acct_entry_type_code       => 'E'
175537          , p_switch_side_flag           => 'Y'
175538          , p_merge_duplicate_code       => 'A'
175539          );
175540    --
175541    l_acc_rev_natural_side_code := 'D';  -- 4262811
175542    -- 
175543    --
175544    -- set accounting line type info
175545    --
175546    xla_ae_lines_pkg.SetAcctLineType
175547       (p_component_type             => l_component_type
175548       ,p_event_type_code            => l_event_type_code
175549       ,p_line_definition_owner_code => l_line_definition_owner_code
175553       ,p_accounting_line_appl_id    => l_component_appl_id
175550       ,p_line_definition_code       => l_line_definition_code
175551       ,p_accounting_line_code       => l_component_code
175552       ,p_accounting_line_type_code  => l_component_type_code
175554       ,p_amb_context_code           => l_amb_context_code
175555       ,p_entity_code                => l_entity_code
175556       ,p_event_class_code           => l_event_class_code);
175557    --
175558    -- set accounting class
175559    --
175560    xla_ae_lines_pkg.SetAcctClass(
175561            p_accounting_class_code  => 'TRV'
175562          , p_ae_header_id           => l_ae_header_id
175563          );
175564 
175565    --
175566    -- set rounding class
175567    --
175568    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
175569                       'TRV';
175570 
175571    --
175572    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
175573    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
175574    --
175575    -- bulk performance
175576    --
175577    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
175578 
175579    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
175580       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
175581 
175582    -- 4955764
175583    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
175584       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
175585 
175586    -- 4458381 Public Sector Enh
175587    
175588    --
175589    -- set accounting attributes for the line type
175590    --
175591    l_entered_amt_idx := 24;
175592    l_accted_amt_idx  := 26;
175593    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
175594    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
175595    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
175596    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
175597    l_rec_acct_attrs.array_num_value(2)  := 
175598 xla_ae_sources_pkg.GetSystemSourceNum(
175599    p_source_code           => 'XLA_EVENT_APPL_ID'
175600  , p_source_type_code      => 'Y'
175601  , p_source_application_id =>  602
175602 );
175603    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
175604    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
175605    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
175606    l_rec_acct_attrs.array_char_value(4)  := 
175607 xla_ae_sources_pkg.GetSystemSourceChar(
175608    p_source_code           => 'XLA_ENTITY_CODE'
175609  , p_source_type_code      => 'Y'
175610  , p_source_application_id =>  602
175611 );
175612    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
175613    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
175614    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
175615    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
175616    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
175617    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
175618    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
175619    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
175620    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
175621    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
175622    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
175623    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
175624    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
175625    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
175626    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
175627    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
175628    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
175629    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
175630    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
175631    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
175632    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
175633    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
175634    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
175635    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
175636    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
175637    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
175638    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
175639    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
175640    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
175641    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
175642    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
175643    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
175644    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
175645    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
175646    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
175647    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
175648    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
175649    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
175650    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
175651    l_rec_acct_attrs.array_num_value(24)  := p_source_143;
175652    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
175653    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
175657    l_rec_acct_attrs.array_date_value(27)  := p_source_65;
175654    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
175655    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
175656    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
175658    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
175659    l_rec_acct_attrs.array_char_value(28)  := p_source_66;
175660    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
175661    l_rec_acct_attrs.array_date_value(29)  := p_source_67;
175662    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
175663    l_rec_acct_attrs.array_char_value(30)  := p_source_68;
175664    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
175665    l_rec_acct_attrs.array_char_value(31)  := p_source_71;
175666    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
175667    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_72);
175668    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
175669    l_rec_acct_attrs.array_char_value(33)  := p_source_43;
175670    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
175671    l_rec_acct_attrs.array_num_value(34)  := p_source_73;
175672    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
175673    l_rec_acct_attrs.array_num_value(35)  := p_source_74;
175674    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
175675    l_rec_acct_attrs.array_num_value(36)  := p_source_75;
175676    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
175677    l_rec_acct_attrs.array_num_value(37)  := p_source_76;
175678    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
175679    l_rec_acct_attrs.array_num_value(38)  := p_source_77;
175680    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
175681    l_rec_acct_attrs.array_num_value(39)  := p_source_78;
175682 
175683    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
175684    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
175685 
175686    ---------------------------------------------------------------------------------------------------------------
175687    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
175688    ---------------------------------------------------------------------------------------------------------------
175689    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
175690 
175691    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
175692    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
175693 
175694    IF xla_accounting_cache_pkg.GetValueChar
175695          (p_source_code         => 'LEDGER_CATEGORY_CODE'
175696          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
175697    AND l_bflow_method_code = 'PRIOR_ENTRY'
175698 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
175699    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
175700          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
175701        )
175702    THEN
175703          xla_ae_lines_pkg.BflowUpgEntry
175704            (p_business_method_code    => l_bflow_method_code
175705            ,p_business_class_code     => l_bflow_class_code
175706            ,p_balance_type            => l_balance_type_code);
175707    ELSE
175708       NULL;
175709 XLA_AE_LINES_PKG.business_flow_validation(
175710                                 p_business_method_code     => l_bflow_method_code
175711                                ,p_business_class_code      => l_bflow_class_code
175712                                ,p_inherit_description_flag => l_inherit_desc_flag);
175713    END IF;
175714 
175715    --
175716    -- call analytical criteria
175717    --
175718    -- Inherited Analytical Criteria for business flow method of Prior Entry.
175719    --
175720    -- call description
175721    --
175722    -- No description or it is inherited.
175723    --
175724    -- call ADRs
175725    -- Bug 4922099
175726    --
175727    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
175728         (NVL(l_actual_upg_option, 'N') = 'O') OR
175729         (NVL(l_enc_upg_option, 'N') = 'O')
175730       )
175731    THEN
175732    NULL;
175733    --
175734    --
175735    
175736    --
175737    --
175738    END IF;
175739    --
175740    -- Bug 4922099
175741    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
175742           (NVL(l_enc_upg_option, 'N') = 'O')
175743         ) AND
175744         (l_bflow_method_code = 'PRIOR_ENTRY')
175745       )
175746    THEN
175747       IF
175748       --
175749       1 = 1
175750       --
175751       THEN
175752       xla_accounting_err_pkg.build_message
175753                                     (p_appli_s_name            => 'XLA'
175754                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
175755                                     ,p_token_1                 => 'LINE_NUMBER'
175756                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
175757                                     ,p_token_2                 => 'LINE_TYPE_NAME'
175758                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
175759                                                                              l_component_type
175760                                                                             ,l_component_code
175761                                                                             ,l_component_type_code
175762                                                                             ,l_component_appl_id
175766                                                                            )
175763                                                                             ,l_amb_context_code
175764                                                                             ,l_entity_code
175765                                                                             ,l_event_class_code
175767                                     ,p_token_3                 => 'OWNER'
175768                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
175769                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
175770                                                                           ,p_lookup_code    => l_component_type_code
175771                                                                          )
175772                                     ,p_token_4                 => 'PRODUCT_NAME'
175773                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
175774                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
175775                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
175776                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
175777                                     ,p_ae_header_id            =>  NULL
175778                                        );
175779 
175780         IF (C_LEVEL_ERROR>= g_log_level) THEN
175781                  trace
175782                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
175783                       ,p_level    => C_LEVEL_ERROR
175784                       ,p_module   => l_log_module);
175785         END IF;
175786       END IF;
175787    END IF;
175788    --
175789    --
175790    ------------------------------------------------------------------------------------------------
175791    -- 4219869 Business Flow
175792    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
175793    -- Prior Entry.  Currently, the following code is always generated.
175794    ------------------------------------------------------------------------------------------------
175795    -- No ValidateCurrentLine for business flow method of Prior Entry
175796 
175797    ------------------------------------------------------------------------------------
175798    -- 4219869 Business Flow
175799    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
175800    ------------------------------------------------------------------------------------
175801    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
175802 
175803    ----------------------------------------------------------------------------------
175804    -- 4219869 Business Flow
175805    -- Update journal entry status -- Need to generate this within IF <condition>
175806    ----------------------------------------------------------------------------------
175807    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
175808          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
175809          ,p_balance_type_code => l_balance_type_code
175810          );
175811 
175812    -------------------------------------------------------------------------------------------
175813    -- 4262811 - Generate the Accrual Reversal lines
175814    -------------------------------------------------------------------------------------------
175815    BEGIN
175816       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
175817                               (g_array_event(p_event_id).array_value_num('header_index'));
175818       IF l_acc_rev_flag IS NULL THEN
175819          l_acc_rev_flag := 'N';
175820       END IF;
175821    EXCEPTION
175822       WHEN OTHERS THEN
175823          l_acc_rev_flag := 'N';
175824    END;
175825    --
175826    IF (l_acc_rev_flag = 'Y') THEN
175827 
175828        -- 4645092  ------------------------------------------------------------------------------
175829        -- To allow MPA report to determine if it should generate report process
175830        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
175831        ------------------------------------------------------------------------------------------
175832 
175833        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
175834        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
175835    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
175836    -- call ADRs
175837    -- Bug 4922099
175838    --
175839    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
175840         (NVL(l_actual_upg_option, 'N') = 'O') OR
175841         (NVL(l_enc_upg_option, 'N') = 'O')
175842       )
175843    THEN
175844    NULL;
175845    --
175846    --
175847    
175848    --
175849    --
175850    END IF;
175851 
175852        --
175853        -- Update the line information that should be overwritten
175854        --
175855        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
175856                                          p_header_num   => 1);
175857        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
175858 
175859        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
175860 
175861        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
175862           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
175863        END IF;
175864 
175865       --
175866       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
175867       --
175868       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
175872           -- 4262811a Switch Sign
175869           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
175870       ELSE
175871           ---------------------------------------------------------------------------------------------------
175873           ---------------------------------------------------------------------------------------------------
175874           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
175875           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
175876                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
175877           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
175878                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
175879           -- 5132302
175880           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
175881                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
175882 
175883       END IF;
175884 
175885       -- 4955764
175886       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
175887       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
175888 
175889 
175890       XLA_AE_LINES_PKG.ValidateCurrentLine;
175891       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
175892 
175893       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
175894                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
175895                ,p_balance_type_code => l_balance_type_code);
175896 
175897    END IF;
175898 
175899    -----------------------------------------------------------------------------------------
175900    -- 4262811 Multiperiod Accounting
175901    -----------------------------------------------------------------------------------------
175902      -- No MPA option is assigned.
175903 
175904 
175905 END IF;
175906 END IF;
175907 --
175908 
175909 --
175910 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
175911    trace
175912       (p_msg      => 'END of AcctLineType_282'
175913       ,p_level    => C_LEVEL_PROCEDURE
175914       ,p_module   => l_log_module);
175915 END IF;
175916 --
175917 EXCEPTION
175918   WHEN xla_exceptions_pkg.application_exception THEN
175919       RAISE;
175920   WHEN OTHERS THEN
175921        xla_exceptions_pkg.raise_message
175922            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_282');
175923 END AcctLineType_282;
175924 --
175925 
175926 ---------------------------------------
175927 --
175928 -- PRIVATE FUNCTION
175929 --         AcctLineType_283
175930 --
175931 ---------------------------------------
175932 PROCEDURE AcctLineType_283 (
175933   p_application_id        IN NUMBER
175934  ,p_event_id              IN NUMBER
175935  ,p_calculate_acctd_flag  IN VARCHAR2
175936  ,p_calculate_g_l_flag    IN VARCHAR2
175937  ,p_actual_flag           IN OUT VARCHAR2
175938  ,p_balance_type_code     OUT VARCHAR2
175939  ,p_gain_or_loss_ref      OUT VARCHAR2
175940  
175941 --Invoice Distribution Type
175942  , p_source_21            IN VARCHAR2
175943  , p_source_21_meaning    IN VARCHAR2
175944 --Accounting Reversal Indicator
175945  , p_source_41            IN VARCHAR2
175946 --Distribution Link Type
175947  , p_source_43            IN VARCHAR2
175948 --Allocation to Main Distribution Identifier
175949  , p_source_45            IN NUMBER
175950 --Invoice Identifier
175951  , p_source_46            IN NUMBER
175952 --Invoice Distribution Identifier
175953  , p_source_52            IN NUMBER
175954 --Payables Encumbrance Upgrade Credit Account
175955  , p_source_53            IN NUMBER
175956 --Payables Encumbrance Upgrade Credit Amount
175957  , p_source_54            IN NUMBER
175958 --Invoice Currency Code
175959  , p_source_55            IN VARCHAR2
175960 --Payables Encumbrance Upgrade Credit Base Amount
175961  , p_source_56            IN NUMBER
175962 --Payables Encumbrance Upgrade Debit Account
175963  , p_source_57            IN NUMBER
175964 --Payables Encumbrance Upgrade Debit Amount
175965  , p_source_58            IN NUMBER
175966 --Payables Encumbrance Upgrade Debit Base Amount
175967  , p_source_59            IN NUMBER
175968 --Payables Encumbrance Upgrade Option
175969  , p_source_60            IN VARCHAR2
175970 --Deferred Accounting End Date
175971  , p_source_65            IN DATE
175972 --Deferred Accounting Option
175973  , p_source_66            IN VARCHAR2
175974 --Deferred Accounting Start Date
175975  , p_source_67            IN DATE
175976 --Override Accounted Amount Indicator
175977  , p_source_68            IN VARCHAR2
175978  , p_source_68_meaning    IN VARCHAR2
175979 --Third Party Type
175980  , p_source_71            IN VARCHAR2
175981 --Parent Reversal Identifier
175982  , p_source_72            IN NUMBER
175983 --Invoice Distribution Statistical Amount
175984  , p_source_73            IN NUMBER
175985 --Invoice Distribution Tax Line Identifier
175986  , p_source_74            IN NUMBER
175987 --Invoice Distribution Tax Distribution Identifier from Tax
175988  , p_source_75            IN NUMBER
175989 --Invoice Distribution Summary Tax Line Identifier
175990  , p_source_76            IN NUMBER
175991 --Payables Upgrade Credit Encumbrance Type Identifier
175992  , p_source_77            IN NUMBER
175993 --Payables Upgrade Debit Encumbrance Type Identifier
175994  , p_source_78            IN NUMBER
175995 --Business Flow Accounts Payable Application Identifier
175996  , p_source_79            IN NUMBER
175997 --Business Flow Invoice Distribution Type
175998  , p_source_80            IN VARCHAR2
176002  , p_source_82            IN NUMBER
175999 --Business Flow Invoice Entity Code
176000  , p_source_81            IN VARCHAR2
176001 --Business Flow Invoice Distribution Identifier
176003 --Business Flow Invoice Identifier
176004  , p_source_83            IN NUMBER
176005 --Purchasing Encumbrance Option
176006  , p_source_86            IN VARCHAR2
176007  , p_source_86_meaning    IN VARCHAR2
176008 --Invoice Encumbered Option
176009  , p_source_87            IN VARCHAR2
176010  , p_source_87_meaning    IN VARCHAR2
176011 --Invoice Distribution Encumbrance Amount
176012  , p_source_143            IN NUMBER
176013 --Invoice Distribution Encumbrance Ledger Amount
176014  , p_source_144            IN NUMBER
176015 )
176016 IS
176017 
176018 l_component_type              VARCHAR2(80);
176019 l_component_code              VARCHAR2(30);
176020 l_component_type_code         VARCHAR2(1);
176021 l_component_appl_id           INTEGER;
176022 l_amb_context_code            VARCHAR2(30);
176023 l_entity_code                 VARCHAR2(30);
176024 l_event_class_code            VARCHAR2(30);
176025 l_ae_header_id                NUMBER;
176026 l_event_type_code             VARCHAR2(30);
176027 l_line_definition_code        VARCHAR2(30);
176028 l_line_definition_owner_code  VARCHAR2(1);
176029 --
176030 -- adr variables
176031 l_segment                     VARCHAR2(30);
176032 l_ccid                        NUMBER;
176033 l_adr_transaction_coa_id      NUMBER;
176034 l_adr_accounting_coa_id       NUMBER;
176035 l_adr_flexfield_segment_code  VARCHAR2(30);
176036 l_adr_flex_value_set_id       NUMBER;
176037 l_adr_value_type_code         VARCHAR2(30);
176038 l_adr_value_combination_id    NUMBER;
176039 l_adr_value_segment_code      VARCHAR2(30);
176040 
176041 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
176042 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
176043 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
176044 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
176045 
176046 -- 4262811 Variables ------------------------------------------------------------------------------------------
176047 l_entered_amt_idx             NUMBER;
176048 l_accted_amt_idx              NUMBER;
176049 l_acc_rev_flag                VARCHAR2(1);
176050 l_accrual_line_num            NUMBER;
176051 l_tmp_amt                     NUMBER;
176052 l_acc_rev_natural_side_code   VARCHAR2(1);
176053 
176054 l_num_entries                 NUMBER;
176055 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
176056 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
176057 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
176058 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
176059 l_recog_line_1                NUMBER;
176060 l_recog_line_2                NUMBER;
176061 
176062 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
176063 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
176064 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
176065 
176066 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
176067 
176068 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
176069 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
176070 
176071 ---------------------------------------------------------------------------------------------------------------
176072 
176073 
176074 --
176075 -- bulk performance
176076 --
176077 l_balance_type_code           VARCHAR2(1);
176078 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
176079 l_log_module                  VARCHAR2(240);
176080 
176081 --
176082 -- Upgrade strategy
176083 --
176084 l_actual_upg_option           VARCHAR2(1);
176085 l_enc_upg_option           VARCHAR2(1);
176086 
176087 --
176088 BEGIN
176089 --
176090 IF g_log_enabled THEN
176091       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_283';
176092 END IF;
176093 --
176094 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
176095 
176096       trace
176097          (p_msg      => 'BEGIN of AcctLineType_283'
176098          ,p_level    => C_LEVEL_PROCEDURE
176099          ,p_module   => l_log_module);
176100 
176101 END IF;
176102 --
176103 l_component_type             := 'AMB_JLT';
176104 l_component_code             := 'AP_TAX_RATE_VAR_PP_ENC';
176105 l_component_type_code        := 'S';
176106 l_component_appl_id          :=  200;
176107 l_amb_context_code           := 'DEFAULT';
176108 l_entity_code                := 'AP_INVOICES';
176109 l_event_class_code           := 'PREPAYMENTS';
176110 l_event_type_code            := 'PREPAYMENTS_ALL';
176111 l_line_definition_owner_code := 'S';
176112 l_line_definition_code       := 'ENC_REV_PREPAY_ALL';
176113 --
176114 l_balance_type_code          := 'E';
176115 l_segment                     := NULL;
176116 l_ccid                        := NULL;
176117 l_adr_transaction_coa_id      := NULL;
176118 l_adr_accounting_coa_id       := NULL;
176119 l_adr_flexfield_segment_code  := NULL;
176120 l_adr_flex_value_set_id       := NULL;
176121 l_adr_value_type_code         := NULL;
176122 l_adr_value_combination_id    := NULL;
176123 l_adr_value_segment_code      := NULL;
176124 
176125 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
176126 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
176127 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
176128 l_budgetary_control_flag     := 'N';
176129 
176130 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
176131 l_bflow_applied_to_amt       := NULL; -- 5132302
176132 l_entered_amt_idx            := NULL;          -- 4262811
176136 l_tmp_amt                    := NULL;          -- 4262811
176133 l_accted_amt_idx             := NULL;          -- 4262811
176134 l_acc_rev_flag               := NULL;          -- 4262811
176135 l_accrual_line_num           := NULL;          -- 4262811
176137 --
176138  
176139 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
176140     l_balance_type_code <> 'B' THEN
176141 IF NVL(p_source_21,'
176142 ') =  'TRV' AND 
176143 NVL(p_source_86,'
176144 ') =  'Y' AND 
176145 NVL(p_source_87,'
176146 ') =  'Y'
176147  THEN 
176148 
176149    --
176150    XLA_AE_LINES_PKG.SetNewLine;
176151 
176152    p_balance_type_code          := l_balance_type_code;
176153    -- set the flag so later we will know whether the gain loss line needs to be created
176154    
176155    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
176156      p_actual_flag :='A';
176157    END IF;
176158 
176159    --
176160    -- bulk performance
176161    --
176162    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
176163                                       p_header_num   => 0); -- 4262811
176164    --
176165    -- set accounting line options
176166    --
176167    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
176168            p_natural_side_code          => 'C'
176169          , p_gain_or_loss_flag          => 'N'
176170          , p_gl_transfer_mode_code      => 'S'
176171          , p_acct_entry_type_code       => 'E'
176172          , p_switch_side_flag           => 'Y'
176173          , p_merge_duplicate_code       => 'A'
176174          );
176175    --
176176    l_acc_rev_natural_side_code := 'D';  -- 4262811
176177    -- 
176178    --
176179    -- set accounting line type info
176180    --
176181    xla_ae_lines_pkg.SetAcctLineType
176182       (p_component_type             => l_component_type
176183       ,p_event_type_code            => l_event_type_code
176184       ,p_line_definition_owner_code => l_line_definition_owner_code
176185       ,p_line_definition_code       => l_line_definition_code
176186       ,p_accounting_line_code       => l_component_code
176187       ,p_accounting_line_type_code  => l_component_type_code
176188       ,p_accounting_line_appl_id    => l_component_appl_id
176189       ,p_amb_context_code           => l_amb_context_code
176190       ,p_entity_code                => l_entity_code
176191       ,p_event_class_code           => l_event_class_code);
176192    --
176193    -- set accounting class
176194    --
176195    xla_ae_lines_pkg.SetAcctClass(
176196            p_accounting_class_code  => 'TRV'
176197          , p_ae_header_id           => l_ae_header_id
176198          );
176199 
176200    --
176201    -- set rounding class
176202    --
176203    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
176204                       'TRV';
176205 
176206    --
176207    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
176208    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
176209    --
176210    -- bulk performance
176211    --
176212    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
176213 
176214    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
176215       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
176216 
176217    -- 4955764
176218    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
176219       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
176220 
176221    -- 4458381 Public Sector Enh
176222    
176223    --
176224    -- set accounting attributes for the line type
176225    --
176226    l_entered_amt_idx := 23;
176227    l_accted_amt_idx  := 25;
176228    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
176229    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
176230    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
176231    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
176232    l_rec_acct_attrs.array_num_value(2)  := 
176233 xla_ae_sources_pkg.GetSystemSourceNum(
176234    p_source_code           => 'XLA_EVENT_APPL_ID'
176235  , p_source_type_code      => 'Y'
176236  , p_source_application_id =>  602
176237 );
176238    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
176239    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
176240    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
176241    l_rec_acct_attrs.array_char_value(4)  := 
176242 xla_ae_sources_pkg.GetSystemSourceChar(
176243    p_source_code           => 'XLA_ENTITY_CODE'
176244  , p_source_type_code      => 'Y'
176245  , p_source_application_id =>  602
176246 );
176247    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
176248    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
176249    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
176250    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
176251    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
176252    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
176253    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
176254    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
176255    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
176256    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
176257    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
176258    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
176259    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
176263    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
176260    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
176261    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
176262    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
176264    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
176265    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
176266    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
176267    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
176268    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
176269    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
176270    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
176271    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
176272    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
176273    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
176274    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
176275    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
176276    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
176277    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
176278    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
176279    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
176280    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
176281    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
176282    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
176283    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
176284    l_rec_acct_attrs.array_num_value(23)  := p_source_143;
176285    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
176286    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
176287    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
176288    l_rec_acct_attrs.array_num_value(25)  := p_source_144;
176289    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
176290    l_rec_acct_attrs.array_date_value(26)  := p_source_65;
176291    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
176292    l_rec_acct_attrs.array_char_value(27)  := p_source_66;
176293    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
176294    l_rec_acct_attrs.array_date_value(28)  := p_source_67;
176295    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
176296    l_rec_acct_attrs.array_char_value(29)  := p_source_68;
176297    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
176298    l_rec_acct_attrs.array_char_value(30)  := p_source_71;
176299    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
176300    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_72);
176301    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
176302    l_rec_acct_attrs.array_char_value(32)  := p_source_43;
176303    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
176304    l_rec_acct_attrs.array_num_value(33)  := p_source_73;
176305    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
176306    l_rec_acct_attrs.array_num_value(34)  := p_source_74;
176307    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
176308    l_rec_acct_attrs.array_num_value(35)  := p_source_75;
176309    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
176310    l_rec_acct_attrs.array_num_value(36)  := p_source_76;
176311    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
176312    l_rec_acct_attrs.array_num_value(37)  := p_source_77;
176313    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
176314    l_rec_acct_attrs.array_num_value(38)  := p_source_78;
176315 
176316    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
176317    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
176318 
176319    ---------------------------------------------------------------------------------------------------------------
176320    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
176321    ---------------------------------------------------------------------------------------------------------------
176322    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
176323 
176324    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
176325    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
176326 
176327    IF xla_accounting_cache_pkg.GetValueChar
176328          (p_source_code         => 'LEDGER_CATEGORY_CODE'
176329          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
176330    AND l_bflow_method_code = 'PRIOR_ENTRY'
176331 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
176332    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
176333          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
176334        )
176335    THEN
176336          xla_ae_lines_pkg.BflowUpgEntry
176337            (p_business_method_code    => l_bflow_method_code
176338            ,p_business_class_code     => l_bflow_class_code
176339            ,p_balance_type            => l_balance_type_code);
176340    ELSE
176341       NULL;
176342 XLA_AE_LINES_PKG.business_flow_validation(
176343                                 p_business_method_code     => l_bflow_method_code
176344                                ,p_business_class_code      => l_bflow_class_code
176345                                ,p_inherit_description_flag => l_inherit_desc_flag);
176346    END IF;
176347 
176348    --
176349    -- call analytical criteria
176350    --
176354    --
176351    -- Inherited Analytical Criteria for business flow method of Prior Entry.
176352    --
176353    -- call description
176355    -- No description or it is inherited.
176356    --
176357    -- call ADRs
176358    -- Bug 4922099
176359    --
176360    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
176361         (NVL(l_actual_upg_option, 'N') = 'O') OR
176362         (NVL(l_enc_upg_option, 'N') = 'O')
176363       )
176364    THEN
176365    NULL;
176366    --
176367    --
176368    
176369    --
176370    --
176371    END IF;
176372    --
176373    -- Bug 4922099
176374    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
176375           (NVL(l_enc_upg_option, 'N') = 'O')
176376         ) AND
176377         (l_bflow_method_code = 'PRIOR_ENTRY')
176378       )
176379    THEN
176380       IF
176381       --
176382       1 = 1
176383       --
176384       THEN
176385       xla_accounting_err_pkg.build_message
176386                                     (p_appli_s_name            => 'XLA'
176387                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
176388                                     ,p_token_1                 => 'LINE_NUMBER'
176389                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
176390                                     ,p_token_2                 => 'LINE_TYPE_NAME'
176391                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
176392                                                                              l_component_type
176393                                                                             ,l_component_code
176394                                                                             ,l_component_type_code
176395                                                                             ,l_component_appl_id
176396                                                                             ,l_amb_context_code
176397                                                                             ,l_entity_code
176398                                                                             ,l_event_class_code
176399                                                                            )
176400                                     ,p_token_3                 => 'OWNER'
176401                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
176402                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
176403                                                                           ,p_lookup_code    => l_component_type_code
176404                                                                          )
176405                                     ,p_token_4                 => 'PRODUCT_NAME'
176406                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
176407                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
176408                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
176409                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
176410                                     ,p_ae_header_id            =>  NULL
176411                                        );
176412 
176413         IF (C_LEVEL_ERROR>= g_log_level) THEN
176414                  trace
176415                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
176416                       ,p_level    => C_LEVEL_ERROR
176417                       ,p_module   => l_log_module);
176418         END IF;
176419       END IF;
176420    END IF;
176421    --
176422    --
176423    ------------------------------------------------------------------------------------------------
176424    -- 4219869 Business Flow
176425    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
176426    -- Prior Entry.  Currently, the following code is always generated.
176427    ------------------------------------------------------------------------------------------------
176428    -- No ValidateCurrentLine for business flow method of Prior Entry
176429 
176430    ------------------------------------------------------------------------------------
176431    -- 4219869 Business Flow
176432    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
176433    ------------------------------------------------------------------------------------
176434    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
176435 
176436    ----------------------------------------------------------------------------------
176437    -- 4219869 Business Flow
176438    -- Update journal entry status -- Need to generate this within IF <condition>
176439    ----------------------------------------------------------------------------------
176440    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
176441          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
176442          ,p_balance_type_code => l_balance_type_code
176443          );
176444 
176445    -------------------------------------------------------------------------------------------
176446    -- 4262811 - Generate the Accrual Reversal lines
176447    -------------------------------------------------------------------------------------------
176448    BEGIN
176449       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
176450                               (g_array_event(p_event_id).array_value_num('header_index'));
176451       IF l_acc_rev_flag IS NULL THEN
176452          l_acc_rev_flag := 'N';
176453       END IF;
176454    EXCEPTION
176455       WHEN OTHERS THEN
176456          l_acc_rev_flag := 'N';
176457    END;
176458    --
176459    IF (l_acc_rev_flag = 'Y') THEN
176460 
176464        ------------------------------------------------------------------------------------------
176461        -- 4645092  ------------------------------------------------------------------------------
176462        -- To allow MPA report to determine if it should generate report process
176463        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
176465 
176466        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
176467        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
176468    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
176469    -- call ADRs
176470    -- Bug 4922099
176471    --
176472    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
176473         (NVL(l_actual_upg_option, 'N') = 'O') OR
176474         (NVL(l_enc_upg_option, 'N') = 'O')
176475       )
176476    THEN
176477    NULL;
176478    --
176479    --
176480    
176481    --
176482    --
176483    END IF;
176484 
176485        --
176486        -- Update the line information that should be overwritten
176487        --
176488        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
176489                                          p_header_num   => 1);
176490        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
176491 
176492        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
176493 
176494        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
176495           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
176496        END IF;
176497 
176498       --
176499       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
176500       --
176501       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
176502           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
176503       ELSE
176504           ---------------------------------------------------------------------------------------------------
176505           -- 4262811a Switch Sign
176506           ---------------------------------------------------------------------------------------------------
176507           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
176508           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
176509                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
176510           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
176511                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
176512           -- 5132302
176513           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
176514                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
176515 
176516       END IF;
176517 
176518       -- 4955764
176519       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
176520       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
176521 
176522 
176523       XLA_AE_LINES_PKG.ValidateCurrentLine;
176524       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
176525 
176526       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
176527                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
176528                ,p_balance_type_code => l_balance_type_code);
176529 
176530    END IF;
176531 
176532    -----------------------------------------------------------------------------------------
176533    -- 4262811 Multiperiod Accounting
176534    -----------------------------------------------------------------------------------------
176535      -- No MPA option is assigned.
176536 
176537 
176538 END IF;
176539 END IF;
176540 --
176541 
176542 --
176543 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
176544    trace
176545       (p_msg      => 'END of AcctLineType_283'
176546       ,p_level    => C_LEVEL_PROCEDURE
176547       ,p_module   => l_log_module);
176548 END IF;
176549 --
176550 EXCEPTION
176551   WHEN xla_exceptions_pkg.application_exception THEN
176552       RAISE;
176553   WHEN OTHERS THEN
176554        xla_exceptions_pkg.raise_message
176555            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_283');
176556 END AcctLineType_283;
176557 --
176558 
176559 ---------------------------------------
176560 --
176561 -- PRIVATE FUNCTION
176562 --         AcctLineType_284
176563 --
176564 ---------------------------------------
176565 PROCEDURE AcctLineType_284 (
176566   p_application_id        IN NUMBER
176567  ,p_event_id              IN NUMBER
176568  ,p_calculate_acctd_flag  IN VARCHAR2
176569  ,p_calculate_g_l_flag    IN VARCHAR2
176570  ,p_actual_flag           IN OUT VARCHAR2
176571  ,p_balance_type_code     OUT VARCHAR2
176572  ,p_gain_or_loss_ref      OUT VARCHAR2
176573  
176574 --Invoice Distribution Description
176575  , p_source_1            IN VARCHAR2
176576 --Invoice Distribution Ledger Amount
176577  , p_source_9            IN NUMBER
176578 --Invoice Distribution Account
176579  , p_source_18            IN NUMBER
176580 --Invoice Distribution Type
176581  , p_source_21            IN VARCHAR2
176582  , p_source_21_meaning    IN VARCHAR2
176583 --Accounting Reversal Indicator
176584  , p_source_41            IN VARCHAR2
176585 --Distribution Link Type
176586  , p_source_43            IN VARCHAR2
176590  , p_source_46            IN NUMBER
176587 --Allocation to Main Distribution Identifier
176588  , p_source_45            IN NUMBER
176589 --Invoice Identifier
176591 --Invoice Distribution Identifier
176592  , p_source_52            IN NUMBER
176593 --Payables Encumbrance Upgrade Credit Account
176594  , p_source_53            IN NUMBER
176595 --Payables Encumbrance Upgrade Credit Amount
176596  , p_source_54            IN NUMBER
176597 --Invoice Currency Code
176598  , p_source_55            IN VARCHAR2
176599 --Payables Encumbrance Upgrade Credit Base Amount
176600  , p_source_56            IN NUMBER
176601 --Payables Encumbrance Upgrade Debit Account
176602  , p_source_57            IN NUMBER
176603 --Payables Encumbrance Upgrade Debit Amount
176604  , p_source_58            IN NUMBER
176605 --Payables Encumbrance Upgrade Debit Base Amount
176606  , p_source_59            IN NUMBER
176607 --Payables Encumbrance Upgrade Option
176608  , p_source_60            IN VARCHAR2
176609 --Invoice Distribution Amount
176610  , p_source_61            IN NUMBER
176611 --Deferred Accounting End Date
176612  , p_source_65            IN DATE
176613 --Deferred Accounting Option
176614  , p_source_66            IN VARCHAR2
176615 --Deferred Accounting Start Date
176616  , p_source_67            IN DATE
176617 --Override Accounted Amount Indicator
176618  , p_source_68            IN VARCHAR2
176619  , p_source_68_meaning    IN VARCHAR2
176620 --Invoice Supplier Identifier
176621  , p_source_69            IN NUMBER
176622 --Invoice Supplier Site Identifier
176623  , p_source_70            IN NUMBER
176624 --Third Party Type
176625  , p_source_71            IN VARCHAR2
176626 --Parent Reversal Identifier
176627  , p_source_72            IN NUMBER
176628 --Invoice Distribution Statistical Amount
176629  , p_source_73            IN NUMBER
176630 --Invoice Distribution Tax Line Identifier
176631  , p_source_74            IN NUMBER
176632 --Invoice Distribution Tax Distribution Identifier from Tax
176633  , p_source_75            IN NUMBER
176634 --Invoice Distribution Summary Tax Line Identifier
176635  , p_source_76            IN NUMBER
176636 --Payables Upgrade Credit Encumbrance Type Identifier
176637  , p_source_77            IN NUMBER
176638 --Payables Upgrade Debit Encumbrance Type Identifier
176639  , p_source_78            IN NUMBER
176640 --Business Flow Accounts Payable Application Identifier
176641  , p_source_79            IN NUMBER
176642 --Business Flow Invoice Distribution Type
176643  , p_source_80            IN VARCHAR2
176644 --Business Flow Invoice Entity Code
176645  , p_source_81            IN VARCHAR2
176646 --Business Flow Invoice Distribution Identifier
176647  , p_source_82            IN NUMBER
176648 --Business Flow Invoice Identifier
176649  , p_source_83            IN NUMBER
176650 --Accrue on Receipt Option
176651  , p_source_84            IN VARCHAR2
176652  , p_source_84_meaning    IN VARCHAR2
176653 --Invoice Exchange Date
176654  , p_source_136            IN DATE
176655 --Invoice Exchange Rate
176656  , p_source_137            IN NUMBER
176657 --Invoice Exchange Rate Type
176658  , p_source_138            IN VARCHAR2
176659 )
176660 IS
176661 
176662 l_component_type              VARCHAR2(80);
176663 l_component_code              VARCHAR2(30);
176664 l_component_type_code         VARCHAR2(1);
176665 l_component_appl_id           INTEGER;
176666 l_amb_context_code            VARCHAR2(30);
176667 l_entity_code                 VARCHAR2(30);
176668 l_event_class_code            VARCHAR2(30);
176669 l_ae_header_id                NUMBER;
176670 l_event_type_code             VARCHAR2(30);
176671 l_line_definition_code        VARCHAR2(30);
176672 l_line_definition_owner_code  VARCHAR2(1);
176673 --
176674 -- adr variables
176675 l_segment                     VARCHAR2(30);
176676 l_ccid                        NUMBER;
176677 l_adr_transaction_coa_id      NUMBER;
176678 l_adr_accounting_coa_id       NUMBER;
176679 l_adr_flexfield_segment_code  VARCHAR2(30);
176680 l_adr_flex_value_set_id       NUMBER;
176681 l_adr_value_type_code         VARCHAR2(30);
176682 l_adr_value_combination_id    NUMBER;
176683 l_adr_value_segment_code      VARCHAR2(30);
176684 
176685 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
176686 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
176687 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
176688 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
176689 
176690 -- 4262811 Variables ------------------------------------------------------------------------------------------
176691 l_entered_amt_idx             NUMBER;
176692 l_accted_amt_idx              NUMBER;
176693 l_acc_rev_flag                VARCHAR2(1);
176694 l_accrual_line_num            NUMBER;
176695 l_tmp_amt                     NUMBER;
176696 l_acc_rev_natural_side_code   VARCHAR2(1);
176697 
176698 l_num_entries                 NUMBER;
176699 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
176700 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
176701 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
176702 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
176703 l_recog_line_1                NUMBER;
176704 l_recog_line_2                NUMBER;
176705 
176706 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
176707 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
176708 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
176709 
176710 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
176711 
176717 
176712 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
176713 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
176714 
176715 ---------------------------------------------------------------------------------------------------------------
176716 
176718 --
176719 -- bulk performance
176720 --
176721 l_balance_type_code           VARCHAR2(1);
176722 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
176723 l_log_module                  VARCHAR2(240);
176724 
176725 --
176726 -- Upgrade strategy
176727 --
176728 l_actual_upg_option           VARCHAR2(1);
176729 l_enc_upg_option           VARCHAR2(1);
176730 
176731 --
176732 BEGIN
176733 --
176734 IF g_log_enabled THEN
176735       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_284';
176736 END IF;
176737 --
176738 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
176739 
176740       trace
176741          (p_msg      => 'BEGIN of AcctLineType_284'
176742          ,p_level    => C_LEVEL_PROCEDURE
176743          ,p_module   => l_log_module);
176744 
176745 END IF;
176746 --
176747 l_component_type             := 'AMB_JLT';
176748 l_component_code             := 'AP_TAX_RATE_VAR_PREPAY';
176749 l_component_type_code        := 'S';
176750 l_component_appl_id          :=  200;
176751 l_amb_context_code           := 'DEFAULT';
176752 l_entity_code                := 'AP_INVOICES';
176753 l_event_class_code           := 'PREPAYMENTS';
176754 l_event_type_code            := 'PREPAYMENTS_ALL';
176755 l_line_definition_owner_code := 'S';
176756 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
176757 --
176758 l_balance_type_code          := 'A';
176759 l_segment                     := NULL;
176760 l_ccid                        := NULL;
176761 l_adr_transaction_coa_id      := NULL;
176762 l_adr_accounting_coa_id       := NULL;
176763 l_adr_flexfield_segment_code  := NULL;
176764 l_adr_flex_value_set_id       := NULL;
176765 l_adr_value_type_code         := NULL;
176766 l_adr_value_combination_id    := NULL;
176767 l_adr_value_segment_code      := NULL;
176768 
176769 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
176770 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
176771 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
176772 l_budgetary_control_flag     := 'N';
176773 
176774 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
176775 l_bflow_applied_to_amt       := NULL; -- 5132302
176776 l_entered_amt_idx            := NULL;          -- 4262811
176777 l_accted_amt_idx             := NULL;          -- 4262811
176778 l_acc_rev_flag               := NULL;          -- 4262811
176779 l_accrual_line_num           := NULL;          -- 4262811
176780 l_tmp_amt                    := NULL;          -- 4262811
176781 --
176782  
176783 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
176784     l_balance_type_code <> 'B' THEN
176785 IF NVL(p_source_21,'
176786 ') =  'TRV' AND 
176787 NVL(p_source_84,'
176788 ') =  'Y'
176789  THEN 
176790 
176791    --
176792    XLA_AE_LINES_PKG.SetNewLine;
176793 
176794    p_balance_type_code          := l_balance_type_code;
176795    -- set the flag so later we will know whether the gain loss line needs to be created
176796    
176797    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
176798      p_actual_flag :='A';
176799    END IF;
176800 
176801    --
176802    -- bulk performance
176803    --
176804    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
176805                                       p_header_num   => 0); -- 4262811
176806    --
176807    -- set accounting line options
176808    --
176809    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
176810            p_natural_side_code          => 'D'
176811          , p_gain_or_loss_flag          => 'N'
176812          , p_gl_transfer_mode_code      => 'S'
176813          , p_acct_entry_type_code       => 'A'
176814          , p_switch_side_flag           => 'Y'
176815          , p_merge_duplicate_code       => 'A'
176816          );
176817    --
176818    l_acc_rev_natural_side_code := 'C';  -- 4262811
176819    -- 
176820    --
176821    -- set accounting line type info
176822    --
176823    xla_ae_lines_pkg.SetAcctLineType
176824       (p_component_type             => l_component_type
176825       ,p_event_type_code            => l_event_type_code
176826       ,p_line_definition_owner_code => l_line_definition_owner_code
176827       ,p_line_definition_code       => l_line_definition_code
176828       ,p_accounting_line_code       => l_component_code
176829       ,p_accounting_line_type_code  => l_component_type_code
176830       ,p_accounting_line_appl_id    => l_component_appl_id
176834    --
176831       ,p_amb_context_code           => l_amb_context_code
176832       ,p_entity_code                => l_entity_code
176833       ,p_event_class_code           => l_event_class_code);
176835    -- set accounting class
176836    --
176837    xla_ae_lines_pkg.SetAcctClass(
176838            p_accounting_class_code  => 'TRV'
176839          , p_ae_header_id           => l_ae_header_id
176840          );
176841 
176842    --
176843    -- set rounding class
176844    --
176845    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
176846                       'TRV';
176847 
176848    --
176849    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
176850    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
176851    --
176852    -- bulk performance
176853    --
176854    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
176855 
176856    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
176857       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
176858 
176859    -- 4955764
176860    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
176861       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
176862 
176863    -- 4458381 Public Sector Enh
176864    
176865    --
176866    -- set accounting attributes for the line type
176867    --
176868    l_entered_amt_idx := 23;
176869    l_accted_amt_idx  := 28;
176870    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
176871    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
176872    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
176873    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
176874    l_rec_acct_attrs.array_num_value(2)  := 
176875 xla_ae_sources_pkg.GetSystemSourceNum(
176876    p_source_code           => 'XLA_EVENT_APPL_ID'
176877  , p_source_type_code      => 'Y'
176878  , p_source_application_id =>  602
176879 );
176880    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
176881    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
176882    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
176883    l_rec_acct_attrs.array_char_value(4)  := 
176884 xla_ae_sources_pkg.GetSystemSourceChar(
176885    p_source_code           => 'XLA_ENTITY_CODE'
176886  , p_source_type_code      => 'Y'
176887  , p_source_application_id =>  602
176888 );
176889    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
176890    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
176891    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
176892    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
176893    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
176894    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
176895    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
176896    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
176897    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
176898    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
176899    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
176900    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
176901    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
176902    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
176903    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
176904    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
176905    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
176906    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
176907    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
176908    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
176909    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
176910    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
176911    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
176912    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
176913    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
176914    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
176915    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
176916    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
176917    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
176918    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
176919    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
176920    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
176921    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
176922    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
176923    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
176924    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
176925    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
176926    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
176927    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
176928    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
176929    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
176930    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
176931    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
176932    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
176933    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
176934    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
176935    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
176936    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
176940    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
176937    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
176938    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
176939    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
176941    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
176942    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
176943    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
176944    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
176945    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
176946    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
176947    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
176948    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
176949    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
176950    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
176951    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
176952    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
176953    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
176954    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
176955    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
176956    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
176957    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
176958    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
176959    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
176960    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
176961    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
176962    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
176963    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
176964    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
176965    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
176966    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
176967 
176968    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
176969    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
176970 
176971    ---------------------------------------------------------------------------------------------------------------
176972    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
176973    ---------------------------------------------------------------------------------------------------------------
176974    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
176975 
176976    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
176977    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
176978 
176979    IF xla_accounting_cache_pkg.GetValueChar
176980          (p_source_code         => 'LEDGER_CATEGORY_CODE'
176981          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
176982    AND l_bflow_method_code = 'PRIOR_ENTRY'
176983 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
176984    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
176985          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
176986        )
176987    THEN
176988          xla_ae_lines_pkg.BflowUpgEntry
176989            (p_business_method_code    => l_bflow_method_code
176990            ,p_business_class_code     => l_bflow_class_code
176991            ,p_balance_type            => l_balance_type_code);
176992    ELSE
176993       NULL;
176994 -- No business flow processing for business flow method of NONE.
176995    END IF;
176996 
176997    --
176998    -- call analytical criteria
176999    --
177000    
177001    --
177002    -- call description
177003    --
177004    
177005 xla_ae_lines_pkg.SetLineDescription(
177006    p_ae_header_id => l_ae_header_id
177007   ,p_description  => Description_2 (
177008      p_application_id         => p_application_id
177009    , p_ae_header_id           => l_ae_header_id 
177010 , p_source_1 => p_source_1
177011    )
177012 );
177013 
177014 
177015    --
177016    -- call ADRs
177017    -- Bug 4922099
177018    --
177019    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
177020         (NVL(l_actual_upg_option, 'N') = 'O') OR
177021         (NVL(l_enc_upg_option, 'N') = 'O')
177022       )
177023    THEN
177024    NULL;
177025    --
177026    --
177027    
177028   l_ccid := AcctDerRule_32(
177029            p_application_id           => p_application_id
177030          , p_ae_header_id             => l_ae_header_id 
177031 , p_source_18 => p_source_18
177032          , x_transaction_coa_id       => l_adr_transaction_coa_id
177033          , x_accounting_coa_id        => l_adr_accounting_coa_id
177034          , x_value_type_code          => l_adr_value_type_code
177035          , p_side                     => 'NA'
177036    );
177037 
177038    xla_ae_lines_pkg.set_ccid(
177039     p_code_combination_id          => l_ccid
177040   , p_value_type_code              => l_adr_value_type_code
177041   , p_transaction_coa_id           => l_adr_transaction_coa_id
177042   , p_accounting_coa_id            => l_adr_accounting_coa_id
177043   , p_adr_code                     => 'AP_INVOICE_DIST'
177044   , p_adr_type_code                => 'S'
177045   , p_component_type               => l_component_type
177046   , p_component_code               => l_component_code
177047   , p_component_type_code          => l_component_type_code
177048   , p_component_appl_id            => l_component_appl_id
177049   , p_amb_context_code             => l_amb_context_code
177050   , p_side                         => 'NA'
177051   );
177052 
177053 
177054    --
177055    --
177059    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
177056    END IF;
177057    --
177058    -- Bug 4922099
177060           (NVL(l_enc_upg_option, 'N') = 'O')
177061         ) AND
177062         (l_bflow_method_code = 'PRIOR_ENTRY')
177063       )
177064    THEN
177065       IF
177066       --
177067       1 = 2
177068       --
177069       THEN
177070       xla_accounting_err_pkg.build_message
177071                                     (p_appli_s_name            => 'XLA'
177072                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
177073                                     ,p_token_1                 => 'LINE_NUMBER'
177074                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
177075                                     ,p_token_2                 => 'LINE_TYPE_NAME'
177076                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
177077                                                                              l_component_type
177078                                                                             ,l_component_code
177079                                                                             ,l_component_type_code
177080                                                                             ,l_component_appl_id
177081                                                                             ,l_amb_context_code
177082                                                                             ,l_entity_code
177083                                                                             ,l_event_class_code
177084                                                                            )
177085                                     ,p_token_3                 => 'OWNER'
177086                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
177087                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
177088                                                                           ,p_lookup_code    => l_component_type_code
177089                                                                          )
177090                                     ,p_token_4                 => 'PRODUCT_NAME'
177091                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
177092                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
177093                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
177094                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
177095                                     ,p_ae_header_id            =>  NULL
177096                                        );
177097 
177098         IF (C_LEVEL_ERROR>= g_log_level) THEN
177099                  trace
177100                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
177101                       ,p_level    => C_LEVEL_ERROR
177102                       ,p_module   => l_log_module);
177103         END IF;
177104       END IF;
177105    END IF;
177106    --
177107    --
177108    ------------------------------------------------------------------------------------------------
177109    -- 4219869 Business Flow
177110    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
177111    -- Prior Entry.  Currently, the following code is always generated.
177112    ------------------------------------------------------------------------------------------------
177113    XLA_AE_LINES_PKG.ValidateCurrentLine;
177114 
177115    ------------------------------------------------------------------------------------
177116    -- 4219869 Business Flow
177117    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
177118    ------------------------------------------------------------------------------------
177119    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
177120 
177121    ----------------------------------------------------------------------------------
177122    -- 4219869 Business Flow
177123    -- Update journal entry status -- Need to generate this within IF <condition>
177124    ----------------------------------------------------------------------------------
177125    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
177126          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
177127          ,p_balance_type_code => l_balance_type_code
177128          );
177129 
177130    -------------------------------------------------------------------------------------------
177131    -- 4262811 - Generate the Accrual Reversal lines
177132    -------------------------------------------------------------------------------------------
177133    BEGIN
177134       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
177135                               (g_array_event(p_event_id).array_value_num('header_index'));
177136       IF l_acc_rev_flag IS NULL THEN
177137          l_acc_rev_flag := 'N';
177138       END IF;
177139    EXCEPTION
177140       WHEN OTHERS THEN
177141          l_acc_rev_flag := 'N';
177142    END;
177143    --
177144    IF (l_acc_rev_flag = 'Y') THEN
177145 
177146        -- 4645092  ------------------------------------------------------------------------------
177147        -- To allow MPA report to determine if it should generate report process
177148        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
177149        ------------------------------------------------------------------------------------------
177150 
177151        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
177152        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
177156    --
177153    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
177154    -- call ADRs
177155    -- Bug 4922099
177157    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
177158         (NVL(l_actual_upg_option, 'N') = 'O') OR
177159         (NVL(l_enc_upg_option, 'N') = 'O')
177160       )
177161    THEN
177162    NULL;
177163    --
177164    --
177165    
177166   l_ccid := AcctDerRule_32(
177167            p_application_id           => p_application_id
177168          , p_ae_header_id             => l_ae_header_id 
177169 , p_source_18 => p_source_18
177170          , x_transaction_coa_id       => l_adr_transaction_coa_id
177171          , x_accounting_coa_id        => l_adr_accounting_coa_id
177172          , x_value_type_code          => l_adr_value_type_code
177173          , p_side                     => 'NA'
177174    );
177175 
177176    xla_ae_lines_pkg.set_ccid(
177177     p_code_combination_id          => l_ccid
177178   , p_value_type_code              => l_adr_value_type_code
177179   , p_transaction_coa_id           => l_adr_transaction_coa_id
177180   , p_accounting_coa_id            => l_adr_accounting_coa_id
177181   , p_adr_code                     => 'AP_INVOICE_DIST'
177182   , p_adr_type_code                => 'S'
177183   , p_component_type               => l_component_type
177184   , p_component_code               => l_component_code
177185   , p_component_type_code          => l_component_type_code
177186   , p_component_appl_id            => l_component_appl_id
177187   , p_amb_context_code             => l_amb_context_code
177188   , p_side                         => 'NA'
177189   );
177190 
177191 
177192    --
177193    --
177194    END IF;
177195 
177196        --
177197        -- Update the line information that should be overwritten
177198        --
177199        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
177200                                          p_header_num   => 1);
177201        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
177202 
177203        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
177204 
177205        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
177206           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
177207        END IF;
177208 
177209       --
177210       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
177211       --
177212       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
177213           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
177214       ELSE
177215           ---------------------------------------------------------------------------------------------------
177216           -- 4262811a Switch Sign
177217           ---------------------------------------------------------------------------------------------------
177218           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
177219           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
177220                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
177221           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
177222                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
177223           -- 5132302
177224           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
177225                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
177226 
177227       END IF;
177228 
177229       -- 4955764
177230       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
177231       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
177232 
177233 
177234       XLA_AE_LINES_PKG.ValidateCurrentLine;
177235       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
177236 
177237       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
177238                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
177239                ,p_balance_type_code => l_balance_type_code);
177240 
177241    END IF;
177242 
177243    -----------------------------------------------------------------------------------------
177244    -- 4262811 Multiperiod Accounting
177245    -----------------------------------------------------------------------------------------
177246      -- No MPA option is assigned.
177247 
177248 
177249 END IF;
177250 END IF;
177251 --
177252 
177253 --
177254 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
177255    trace
177256       (p_msg      => 'END of AcctLineType_284'
177257       ,p_level    => C_LEVEL_PROCEDURE
177258       ,p_module   => l_log_module);
177259 END IF;
177260 --
177261 EXCEPTION
177262   WHEN xla_exceptions_pkg.application_exception THEN
177263       RAISE;
177264   WHEN OTHERS THEN
177265        xla_exceptions_pkg.raise_message
177266            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_284');
177267 END AcctLineType_284;
177268 --
177269 
177270 ---------------------------------------
177271 --
177272 -- PRIVATE FUNCTION
177273 --         AcctLineType_285
177274 --
177275 ---------------------------------------
177276 PROCEDURE AcctLineType_285 (
177277   p_application_id        IN NUMBER
177278  ,p_event_id              IN NUMBER
177279  ,p_calculate_acctd_flag  IN VARCHAR2
177280  ,p_calculate_g_l_flag    IN VARCHAR2
177281  ,p_actual_flag           IN OUT VARCHAR2
177285 --Automatic Offsets Value
177282  ,p_balance_type_code     OUT VARCHAR2
177283  ,p_gain_or_loss_ref      OUT VARCHAR2
177284  
177286  , p_source_3            IN VARCHAR2
177287  , p_source_3_meaning    IN VARCHAR2
177288 --Invoice Distribution Account
177289  , p_source_18            IN NUMBER
177290 --Withholding Related Distribution Account
177291  , p_source_31            IN NUMBER
177292 --Accounting Reversal Indicator
177293  , p_source_41            IN VARCHAR2
177294 --Distribution Link Type
177295  , p_source_43            IN VARCHAR2
177296 --Override Accounted Amount Indicator
177297  , p_source_68            IN VARCHAR2
177298  , p_source_68_meaning    IN VARCHAR2
177299 --Third Party Type
177300  , p_source_71            IN VARCHAR2
177301 --Invoice Distribution Tax Line Identifier
177302  , p_source_74            IN NUMBER
177303 --Invoice Distribution Summary Tax Line Identifier
177304  , p_source_76            IN NUMBER
177305 --Business Flow Accounts Payable Application Identifier
177306  , p_source_79            IN NUMBER
177307 --When to Account for Payment Option
177308  , p_source_89            IN VARCHAR2
177309 --Payment Distribution Type
177310  , p_source_90            IN VARCHAR2
177311  , p_source_90_meaning    IN VARCHAR2
177312 --Payment Distribution Amount
177313  , p_source_91            IN NUMBER
177314 --Business Flow Payment Distribution Type
177315  , p_source_92            IN VARCHAR2
177316 --Business Flow Payment Entity Code
177317  , p_source_93            IN VARCHAR2
177318 --Business Flow Payment Distribution Identifier
177319  , p_source_94            IN NUMBER
177320 --Business Flow Payment Identifier
177321  , p_source_95            IN NUMBER
177322 --Payment Distribution Identifier
177323  , p_source_96            IN NUMBER
177324 --Payment Supplier Identifier
177325  , p_source_102            IN NUMBER
177326 --Payment Supplier Site Identifier
177327  , p_source_103            IN NUMBER
177328 --Payment Distribution Reversed Identifier
177329  , p_source_104            IN NUMBER
177330 --Payment Currency Code
177331  , p_source_106            IN VARCHAR2
177332 --Payment Distribution (Invoice Rate) Ledger Amount
177333  , p_source_109            IN NUMBER
177334 --Invoice Exchange Date
177335  , p_source_136            IN DATE
177336 --Invoice Exchange Rate
177337  , p_source_137            IN NUMBER
177338 --Invoice Exchange Rate Type
177339  , p_source_138            IN VARCHAR2
177340 --Withholding at Payment Indicator
177341  , p_source_160            IN VARCHAR2
177342  , p_source_160_meaning    IN VARCHAR2
177343 )
177344 IS
177345 
177346 l_component_type              VARCHAR2(80);
177347 l_component_code              VARCHAR2(30);
177348 l_component_type_code         VARCHAR2(1);
177349 l_component_appl_id           INTEGER;
177350 l_amb_context_code            VARCHAR2(30);
177351 l_entity_code                 VARCHAR2(30);
177352 l_event_class_code            VARCHAR2(30);
177353 l_ae_header_id                NUMBER;
177354 l_event_type_code             VARCHAR2(30);
177355 l_line_definition_code        VARCHAR2(30);
177356 l_line_definition_owner_code  VARCHAR2(1);
177357 --
177358 -- adr variables
177359 l_segment                     VARCHAR2(30);
177360 l_ccid                        NUMBER;
177361 l_adr_transaction_coa_id      NUMBER;
177362 l_adr_accounting_coa_id       NUMBER;
177363 l_adr_flexfield_segment_code  VARCHAR2(30);
177364 l_adr_flex_value_set_id       NUMBER;
177365 l_adr_value_type_code         VARCHAR2(30);
177366 l_adr_value_combination_id    NUMBER;
177367 l_adr_value_segment_code      VARCHAR2(30);
177368 
177369 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
177370 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
177371 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
177372 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
177373 
177374 -- 4262811 Variables ------------------------------------------------------------------------------------------
177375 l_entered_amt_idx             NUMBER;
177376 l_accted_amt_idx              NUMBER;
177377 l_acc_rev_flag                VARCHAR2(1);
177378 l_accrual_line_num            NUMBER;
177379 l_tmp_amt                     NUMBER;
177380 l_acc_rev_natural_side_code   VARCHAR2(1);
177381 
177382 l_num_entries                 NUMBER;
177383 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
177384 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
177385 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
177386 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
177387 l_recog_line_1                NUMBER;
177388 l_recog_line_2                NUMBER;
177389 
177390 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
177391 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
177392 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
177393 
177394 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
177395 
177396 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
177397 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
177398 
177399 ---------------------------------------------------------------------------------------------------------------
177400 
177401 
177402 --
177403 -- bulk performance
177404 --
177405 l_balance_type_code           VARCHAR2(1);
177406 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
177407 l_log_module                  VARCHAR2(240);
177408 
177409 --
177410 -- Upgrade strategy
177411 --
177412 l_actual_upg_option           VARCHAR2(1);
177416 BEGIN
177413 l_enc_upg_option           VARCHAR2(1);
177414 
177415 --
177417 --
177418 IF g_log_enabled THEN
177419       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_285';
177420 END IF;
177421 --
177422 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
177423 
177424       trace
177425          (p_msg      => 'BEGIN of AcctLineType_285'
177426          ,p_level    => C_LEVEL_PROCEDURE
177427          ,p_module   => l_log_module);
177428 
177429 END IF;
177430 --
177431 l_component_type             := 'AMB_JLT';
177432 l_component_code             := 'AP_WITHHOLD_TAX_ACCR_CLEAR';
177433 l_component_type_code        := 'S';
177434 l_component_appl_id          :=  200;
177435 l_amb_context_code           := 'DEFAULT';
177436 l_entity_code                := 'AP_PAYMENTS';
177437 l_event_class_code           := 'RECONCILED PAYMENTS';
177438 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
177439 l_line_definition_owner_code := 'S';
177440 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
177441 --
177442 l_balance_type_code          := 'A';
177443 l_segment                     := NULL;
177444 l_ccid                        := NULL;
177445 l_adr_transaction_coa_id      := NULL;
177446 l_adr_accounting_coa_id       := NULL;
177447 l_adr_flexfield_segment_code  := NULL;
177448 l_adr_flex_value_set_id       := NULL;
177449 l_adr_value_type_code         := NULL;
177450 l_adr_value_combination_id    := NULL;
177451 l_adr_value_segment_code      := NULL;
177452 
177453 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
177454 l_bflow_class_code           := '';    -- 4219869 Business Flow
177455 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
177456 l_budgetary_control_flag     := 'N';
177457 
177458 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
177459 l_bflow_applied_to_amt       := NULL; -- 5132302
177460 l_entered_amt_idx            := NULL;          -- 4262811
177461 l_accted_amt_idx             := NULL;          -- 4262811
177462 l_acc_rev_flag               := NULL;          -- 4262811
177463 l_accrual_line_num           := NULL;          -- 4262811
177464 l_tmp_amt                    := NULL;          -- 4262811
177465 --
177466  
177467 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
177468     l_balance_type_code <> 'B' THEN
177469 IF NVL(p_source_89,'
177470 ') =  'CLEAR_CLEAR' AND 
177471 NVL(p_source_90,'
177472 ') =  'AWT' AND 
177473 NVL(p_source_160,'
177474 ') =  'Y'
177475  THEN 
177476 
177477    --
177478    XLA_AE_LINES_PKG.SetNewLine;
177479 
177480    p_balance_type_code          := l_balance_type_code;
177481    -- set the flag so later we will know whether the gain loss line needs to be created
177482    
177483    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
177484      p_actual_flag :='A';
177485    END IF;
177486 
177487    --
177488    -- bulk performance
177489    --
177490    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
177491                                       p_header_num   => 0); -- 4262811
177492    --
177493    -- set accounting line options
177494    --
177495    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
177499          , p_acct_entry_type_code       => 'A'
177496            p_natural_side_code          => 'C'
177497          , p_gain_or_loss_flag          => 'N'
177498          , p_gl_transfer_mode_code      => 'S'
177500          , p_switch_side_flag           => 'Y'
177501          , p_merge_duplicate_code       => 'A'
177502          );
177503    --
177504    l_acc_rev_natural_side_code := 'D';  -- 4262811
177505    -- 
177506    --
177507    -- set accounting line type info
177508    --
177509    xla_ae_lines_pkg.SetAcctLineType
177510       (p_component_type             => l_component_type
177511       ,p_event_type_code            => l_event_type_code
177512       ,p_line_definition_owner_code => l_line_definition_owner_code
177513       ,p_line_definition_code       => l_line_definition_code
177514       ,p_accounting_line_code       => l_component_code
177515       ,p_accounting_line_type_code  => l_component_type_code
177516       ,p_accounting_line_appl_id    => l_component_appl_id
177517       ,p_amb_context_code           => l_amb_context_code
177518       ,p_entity_code                => l_entity_code
177519       ,p_event_class_code           => l_event_class_code);
177520    --
177521    -- set accounting class
177522    --
177523    xla_ae_lines_pkg.SetAcctClass(
177524            p_accounting_class_code  => 'AWT'
177525          , p_ae_header_id           => l_ae_header_id
177526          );
177527 
177528    --
177529    -- set rounding class
177530    --
177531    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
177532                       'AWT';
177533 
177534    --
177535    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
177536    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
177537    --
177538    -- bulk performance
177539    --
177540    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
177541 
177542    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
177543       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
177544 
177545    -- 4955764
177546    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
177547       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
177548 
177549    -- 4458381 Public Sector Enh
177550    
177551    --
177552    -- set accounting attributes for the line type
177553    --
177554    l_entered_amt_idx := 10;
177555    l_accted_amt_idx  := 15;
177556    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
177557    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
177558    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
177559    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
177560    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
177561    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
177562    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
177563    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
177564    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
177565    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
177566    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
177567    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
177568    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
177569    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
177570    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
177571    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
177572    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
177573    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
177574    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
177575    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
177576    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
177577    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
177578    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
177579    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
177580    l_rec_acct_attrs.array_date_value(12)  := p_source_136;
177581    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
177582    l_rec_acct_attrs.array_num_value(13)  := p_source_137;
177583    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
177584    l_rec_acct_attrs.array_char_value(14)  := p_source_138;
177585    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
177586    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
177587    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
177588    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
177589    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
177590    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
177591    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
177592    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
177593    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
177594    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
177595    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
177596    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
177597    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
177598    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
177599    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
177600    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
177601    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
177602    l_rec_acct_attrs.array_num_value(23)  := p_source_74;
177603    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
177607    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
177604    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
177605 
177606    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
177608 
177609    ---------------------------------------------------------------------------------------------------------------
177610    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
177611    ---------------------------------------------------------------------------------------------------------------
177612    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
177613 
177614    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
177615    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
177616 
177617    IF xla_accounting_cache_pkg.GetValueChar
177618          (p_source_code         => 'LEDGER_CATEGORY_CODE'
177619          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
177620    AND l_bflow_method_code = 'PRIOR_ENTRY'
177621 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
177622    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
177623          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
177624        )
177625    THEN
177626          xla_ae_lines_pkg.BflowUpgEntry
177627            (p_business_method_code    => l_bflow_method_code
177628            ,p_business_class_code     => l_bflow_class_code
177629            ,p_balance_type            => l_balance_type_code);
177630    ELSE
177631       NULL;
177632 -- No business flow processing for business flow method of NONE.
177633    END IF;
177634 
177635    --
177636    -- call analytical criteria
177637    --
177638    
177639    --
177640    -- call description
177641    --
177642    -- No description or it is inherited.
177643    --
177644    -- call ADRs
177645    -- Bug 4922099
177646    --
177647    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
177648         (NVL(l_actual_upg_option, 'N') = 'O') OR
177649         (NVL(l_enc_upg_option, 'N') = 'O')
177650       )
177651    THEN
177652    NULL;
177653    --
177654    --
177655    
177656   l_ccid := AcctDerRule_45(
177657            p_application_id           => p_application_id
177658          , p_ae_header_id             => l_ae_header_id 
177659 , p_source_3 => p_source_3
177660 , p_source_3_meaning => p_source_3_meaning
177661 , p_source_18 => p_source_18
177662 , p_source_31 => p_source_31
177663          , x_transaction_coa_id       => l_adr_transaction_coa_id
177664          , x_accounting_coa_id        => l_adr_accounting_coa_id
177665          , x_value_type_code          => l_adr_value_type_code
177666          , p_side                     => 'NA'
177667    );
177668 
177669    xla_ae_lines_pkg.set_ccid(
177670     p_code_combination_id          => l_ccid
177671   , p_value_type_code              => l_adr_value_type_code
177672   , p_transaction_coa_id           => l_adr_transaction_coa_id
177673   , p_accounting_coa_id            => l_adr_accounting_coa_id
177674   , p_adr_code                     => 'AP_WH_DIST_ACCT'
177675   , p_adr_type_code                => 'S'
177676   , p_component_type               => l_component_type
177677   , p_component_code               => l_component_code
177678   , p_component_type_code          => l_component_type_code
177679   , p_component_appl_id            => l_component_appl_id
177680   , p_amb_context_code             => l_amb_context_code
177681   , p_side                         => 'NA'
177682   );
177683 
177684 
177685    l_segment := AcctDerRule_13(
177686            p_application_id           => p_application_id
177687          , p_ae_header_id             => l_ae_header_id 
177688 , p_source_3 => p_source_3
177689 , p_source_3_meaning => p_source_3_meaning
177690 , p_source_18 => p_source_18
177691          , x_transaction_coa_id       => l_adr_transaction_coa_id
177692          , x_accounting_coa_id        => l_adr_accounting_coa_id
177693          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
177694          , x_flex_value_set_id        => l_adr_flex_value_set_id
177695          , x_value_type_code          => l_adr_value_type_code
177696          , x_value_combination_id     => l_adr_value_combination_id
177697          , x_value_segment_code       => l_adr_value_segment_code
177698          , p_side                     => 'NA'
177699          , p_override_seg_flag        => 'Y'
177700    );
177701 
177702    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
177703 
177704       xla_ae_lines_pkg.set_segment(
177705           p_to_segment_code         => 'GL_ACCOUNT'
177706         , p_segment_value           => l_segment
177707         , p_from_segment_code       => l_adr_value_segment_code
177708         , p_from_combination_id     => l_adr_value_combination_id
177709         , p_value_type_code         => l_adr_value_type_code
177710         , p_transaction_coa_id      => l_adr_transaction_coa_id
177711         , p_accounting_coa_id       => l_adr_accounting_coa_id
177712         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
177713         , p_flex_value_set_id       => l_adr_flex_value_set_id
177714         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
177715         , p_adr_type_code           => 'S'
177716         , p_component_type          => l_component_type
177717         , p_component_code          => l_component_code
177718         , p_component_type_code     => l_component_type_code
177722         , p_event_class_code        => 'RECONCILED PAYMENTS'
177719         , p_component_appl_id       => l_component_appl_id
177720         , p_amb_context_code        => l_amb_context_code
177721         , p_entity_code             => 'AP_PAYMENTS'
177723         , p_side                    => 'NA'
177724         );
177725 
177726   END IF;
177727 
177728    l_segment := AcctDerRule_24(
177729            p_application_id           => p_application_id
177730          , p_ae_header_id             => l_ae_header_id 
177731 , p_source_3 => p_source_3
177732 , p_source_3_meaning => p_source_3_meaning
177733 , p_source_31 => p_source_31
177734          , x_transaction_coa_id       => l_adr_transaction_coa_id
177735          , x_accounting_coa_id        => l_adr_accounting_coa_id
177736          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
177737          , x_flex_value_set_id        => l_adr_flex_value_set_id
177741          , p_side                     => 'NA'
177738          , x_value_type_code          => l_adr_value_type_code
177739          , x_value_combination_id     => l_adr_value_combination_id
177740          , x_value_segment_code       => l_adr_value_segment_code
177742          , p_override_seg_flag        => 'Y'
177743    );
177744 
177745    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
177746 
177747       xla_ae_lines_pkg.set_segment(
177748           p_to_segment_code         => 'GL_BALANCING'
177749         , p_segment_value           => l_segment
177750         , p_from_segment_code       => l_adr_value_segment_code
177751         , p_from_combination_id     => l_adr_value_combination_id
177752         , p_value_type_code         => l_adr_value_type_code
177753         , p_transaction_coa_id      => l_adr_transaction_coa_id
177754         , p_accounting_coa_id       => l_adr_accounting_coa_id
177755         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
177756         , p_flex_value_set_id       => l_adr_flex_value_set_id
177757         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
177758         , p_adr_type_code           => 'S'
177759         , p_component_type          => l_component_type
177760         , p_component_code          => l_component_code
177761         , p_component_type_code     => l_component_type_code
177762         , p_component_appl_id       => l_component_appl_id
177763         , p_amb_context_code        => l_amb_context_code
177764         , p_entity_code             => 'AP_PAYMENTS'
177765         , p_event_class_code        => 'RECONCILED PAYMENTS'
177766         , p_side                    => 'NA'
177767         );
177768 
177769   END IF;
177770 
177771    --
177772    --
177773    END IF;
177774    --
177775    -- Bug 4922099
177776    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
177777           (NVL(l_enc_upg_option, 'N') = 'O')
177778         ) AND
177779         (l_bflow_method_code = 'PRIOR_ENTRY')
177780       )
177781    THEN
177782       IF
177783       --
177784       1 = 2
177785       --
177786       THEN
177787       xla_accounting_err_pkg.build_message
177788                                     (p_appli_s_name            => 'XLA'
177789                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
177790                                     ,p_token_1                 => 'LINE_NUMBER'
177791                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
177792                                     ,p_token_2                 => 'LINE_TYPE_NAME'
177793                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
177794                                                                              l_component_type
177795                                                                             ,l_component_code
177796                                                                             ,l_component_type_code
177797                                                                             ,l_component_appl_id
177798                                                                             ,l_amb_context_code
177799                                                                             ,l_entity_code
177800                                                                             ,l_event_class_code
177801                                                                            )
177802                                     ,p_token_3                 => 'OWNER'
177803                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
177804                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
177805                                                                           ,p_lookup_code    => l_component_type_code
177809                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
177806                                                                          )
177807                                     ,p_token_4                 => 'PRODUCT_NAME'
177808                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
177810                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
177811                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
177812                                     ,p_ae_header_id            =>  NULL
177813                                        );
177814 
177815         IF (C_LEVEL_ERROR>= g_log_level) THEN
177816                  trace
177817                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
177818                       ,p_level    => C_LEVEL_ERROR
177819                       ,p_module   => l_log_module);
177820         END IF;
177821       END IF;
177822    END IF;
177823    --
177824    --
177825    ------------------------------------------------------------------------------------------------
177829    ------------------------------------------------------------------------------------------------
177826    -- 4219869 Business Flow
177827    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
177828    -- Prior Entry.  Currently, the following code is always generated.
177830    XLA_AE_LINES_PKG.ValidateCurrentLine;
177831 
177832    ------------------------------------------------------------------------------------
177833    -- 4219869 Business Flow
177834    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
177835    ------------------------------------------------------------------------------------
177836    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
177837 
177838    ----------------------------------------------------------------------------------
177839    -- 4219869 Business Flow
177840    -- Update journal entry status -- Need to generate this within IF <condition>
177841    ----------------------------------------------------------------------------------
177842    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
177843          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
177844          ,p_balance_type_code => l_balance_type_code
177845          );
177846 
177847    -------------------------------------------------------------------------------------------
177848    -- 4262811 - Generate the Accrual Reversal lines
177849    -------------------------------------------------------------------------------------------
177850    BEGIN
177851       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
177852                               (g_array_event(p_event_id).array_value_num('header_index'));
177853       IF l_acc_rev_flag IS NULL THEN
177854          l_acc_rev_flag := 'N';
177855       END IF;
177856    EXCEPTION
177857       WHEN OTHERS THEN
177858          l_acc_rev_flag := 'N';
177859    END;
177860    --
177861    IF (l_acc_rev_flag = 'Y') THEN
177862 
177863        -- 4645092  ------------------------------------------------------------------------------
177864        -- To allow MPA report to determine if it should generate report process
177865        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
177866        ------------------------------------------------------------------------------------------
177867 
177868        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
177869        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
177870    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
177871    -- call ADRs
177872    -- Bug 4922099
177873    --
177874    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
177875         (NVL(l_actual_upg_option, 'N') = 'O') OR
177876         (NVL(l_enc_upg_option, 'N') = 'O')
177877       )
177881    --
177878    THEN
177879    NULL;
177880    --
177882    
177883   l_ccid := AcctDerRule_45(
177884            p_application_id           => p_application_id
177885          , p_ae_header_id             => l_ae_header_id 
177886 , p_source_3 => p_source_3
177887 , p_source_3_meaning => p_source_3_meaning
177888 , p_source_18 => p_source_18
177889 , p_source_31 => p_source_31
177890          , x_transaction_coa_id       => l_adr_transaction_coa_id
177891          , x_accounting_coa_id        => l_adr_accounting_coa_id
177892          , x_value_type_code          => l_adr_value_type_code
177893          , p_side                     => 'NA'
177894    );
177895 
177896    xla_ae_lines_pkg.set_ccid(
177897     p_code_combination_id          => l_ccid
177898   , p_value_type_code              => l_adr_value_type_code
177899   , p_transaction_coa_id           => l_adr_transaction_coa_id
177900   , p_accounting_coa_id            => l_adr_accounting_coa_id
177901   , p_adr_code                     => 'AP_WH_DIST_ACCT'
177902   , p_adr_type_code                => 'S'
177903   , p_component_type               => l_component_type
177904   , p_component_code               => l_component_code
177905   , p_component_type_code          => l_component_type_code
177906   , p_component_appl_id            => l_component_appl_id
177907   , p_amb_context_code             => l_amb_context_code
177908   , p_side                         => 'NA'
177909   );
177910 
177911 
177912    l_segment := AcctDerRule_13(
177913            p_application_id           => p_application_id
177914          , p_ae_header_id             => l_ae_header_id 
177915 , p_source_3 => p_source_3
177916 , p_source_3_meaning => p_source_3_meaning
177917 , p_source_18 => p_source_18
177918          , x_transaction_coa_id       => l_adr_transaction_coa_id
177919          , x_accounting_coa_id        => l_adr_accounting_coa_id
177920          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
177921          , x_flex_value_set_id        => l_adr_flex_value_set_id
177922          , x_value_type_code          => l_adr_value_type_code
177923          , x_value_combination_id     => l_adr_value_combination_id
177924          , x_value_segment_code       => l_adr_value_segment_code
177925          , p_side                     => 'NA'
177926          , p_override_seg_flag        => 'Y'
177927    );
177928 
177929    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
177930 
177931       xla_ae_lines_pkg.set_segment(
177932           p_to_segment_code         => 'GL_ACCOUNT'
177933         , p_segment_value           => l_segment
177934         , p_from_segment_code       => l_adr_value_segment_code
177935         , p_from_combination_id     => l_adr_value_combination_id
177936         , p_value_type_code         => l_adr_value_type_code
177937         , p_transaction_coa_id      => l_adr_transaction_coa_id
177938         , p_accounting_coa_id       => l_adr_accounting_coa_id
177939         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
177940         , p_flex_value_set_id       => l_adr_flex_value_set_id
177941         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
177942         , p_adr_type_code           => 'S'
177943         , p_component_type          => l_component_type
177944         , p_component_code          => l_component_code
177945         , p_component_type_code     => l_component_type_code
177946         , p_component_appl_id       => l_component_appl_id
177947         , p_amb_context_code        => l_amb_context_code
177948         , p_entity_code             => 'AP_PAYMENTS'
177949         , p_event_class_code        => 'RECONCILED PAYMENTS'
177950         , p_side                    => 'NA'
177951         );
177952 
177953   END IF;
177954 
177955    l_segment := AcctDerRule_24(
177956            p_application_id           => p_application_id
177957          , p_ae_header_id             => l_ae_header_id 
177958 , p_source_3 => p_source_3
177959 , p_source_3_meaning => p_source_3_meaning
177960 , p_source_31 => p_source_31
177961          , x_transaction_coa_id       => l_adr_transaction_coa_id
177962          , x_accounting_coa_id        => l_adr_accounting_coa_id
177963          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
177964          , x_flex_value_set_id        => l_adr_flex_value_set_id
177965          , x_value_type_code          => l_adr_value_type_code
177966          , x_value_combination_id     => l_adr_value_combination_id
177967          , x_value_segment_code       => l_adr_value_segment_code
177968          , p_side                     => 'NA'
177969          , p_override_seg_flag        => 'Y'
177970    );
177971 
177972    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
177973 
177974       xla_ae_lines_pkg.set_segment(
177975           p_to_segment_code         => 'GL_BALANCING'
177976         , p_segment_value           => l_segment
177977         , p_from_segment_code       => l_adr_value_segment_code
177978         , p_from_combination_id     => l_adr_value_combination_id
177979         , p_value_type_code         => l_adr_value_type_code
177980         , p_transaction_coa_id      => l_adr_transaction_coa_id
177981         , p_accounting_coa_id       => l_adr_accounting_coa_id
177982         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
177983         , p_flex_value_set_id       => l_adr_flex_value_set_id
177984         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
177985         , p_adr_type_code           => 'S'
177986         , p_component_type          => l_component_type
177987         , p_component_code          => l_component_code
177988         , p_component_type_code     => l_component_type_code
177989         , p_component_appl_id       => l_component_appl_id
177990         , p_amb_context_code        => l_amb_context_code
177991         , p_entity_code             => 'AP_PAYMENTS'
177992         , p_event_class_code        => 'RECONCILED PAYMENTS'
177993         , p_side                    => 'NA'
177997 
177994         );
177995 
177996   END IF;
177998    --
177999    --
178000    END IF;
178001 
178002        --
178003        -- Update the line information that should be overwritten
178004        --
178005        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
178006                                          p_header_num   => 1);
178007        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
178008 
178009        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
178010 
178011        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
178012           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
178013        END IF;
178014 
178015       --
178016       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
178017       --
178018       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
178019           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
178020       ELSE
178021           ---------------------------------------------------------------------------------------------------
178022           -- 4262811a Switch Sign
178023           ---------------------------------------------------------------------------------------------------
178024           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
178025           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
178026                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
178027           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
178028                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
178029           -- 5132302
178030           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
178031                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
178032 
178033       END IF;
178034 
178035       -- 4955764
178036       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
178037       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
178038 
178039 
178040       XLA_AE_LINES_PKG.ValidateCurrentLine;
178041       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
178042 
178043       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
178044                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
178045                ,p_balance_type_code => l_balance_type_code);
178046 
178047    END IF;
178048 
178049    -----------------------------------------------------------------------------------------
178050    -- 4262811 Multiperiod Accounting
178051    -----------------------------------------------------------------------------------------
178052      -- No MPA option is assigned.
178053 
178054 
178055 END IF;
178056 END IF;
178057 --
178058 
178059 --
178060 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
178061    trace
178062       (p_msg      => 'END of AcctLineType_285'
178063       ,p_level    => C_LEVEL_PROCEDURE
178064       ,p_module   => l_log_module);
178065 END IF;
178066 --
178067 EXCEPTION
178068   WHEN xla_exceptions_pkg.application_exception THEN
178069       RAISE;
178070   WHEN OTHERS THEN
178071        xla_exceptions_pkg.raise_message
178072            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_285');
178073 END AcctLineType_285;
178074 --
178075 
178076 ---------------------------------------
178077 --
178078 -- PRIVATE FUNCTION
178079 --         AcctLineType_286
178080 --
178081 ---------------------------------------
178082 PROCEDURE AcctLineType_286 (
178083   p_application_id        IN NUMBER
178084  ,p_event_id              IN NUMBER
178085  ,p_calculate_acctd_flag  IN VARCHAR2
178086  ,p_calculate_g_l_flag    IN VARCHAR2
178087  ,p_actual_flag           IN OUT VARCHAR2
178088  ,p_balance_type_code     OUT VARCHAR2
178089  ,p_gain_or_loss_ref      OUT VARCHAR2
178090  
178091 --Automatic Offsets Value
178092  , p_source_3            IN VARCHAR2
178093  , p_source_3_meaning    IN VARCHAR2
178094 --Invoice Distribution Account
178095  , p_source_18            IN NUMBER
178096 --Withholding Related Distribution Account
178097  , p_source_31            IN NUMBER
178098 --Accounting Reversal Indicator
178099  , p_source_41            IN VARCHAR2
178100 --Distribution Link Type
178101  , p_source_43            IN VARCHAR2
178102 --Override Accounted Amount Indicator
178103  , p_source_68            IN VARCHAR2
178104  , p_source_68_meaning    IN VARCHAR2
178105 --Third Party Type
178106  , p_source_71            IN VARCHAR2
178110  , p_source_75            IN NUMBER
178107 --Invoice Distribution Tax Line Identifier
178108  , p_source_74            IN NUMBER
178109 --Invoice Distribution Tax Distribution Identifier from Tax
178111 --Invoice Distribution Summary Tax Line Identifier
178112  , p_source_76            IN NUMBER
178113 --Business Flow Accounts Payable Application Identifier
178114  , p_source_79            IN NUMBER
178115 --Business Flow Invoice Distribution Type
178116  , p_source_80            IN VARCHAR2
178117 --Business Flow Invoice Entity Code
178118  , p_source_81            IN VARCHAR2
178119 --Business Flow Invoice Distribution Identifier
178120  , p_source_82            IN NUMBER
178121 --Business Flow Invoice Identifier
178122  , p_source_83            IN NUMBER
178123 --When to Account for Payment Option
178124  , p_source_89            IN VARCHAR2
178125 --Payment Distribution Type
178126  , p_source_90            IN VARCHAR2
178127  , p_source_90_meaning    IN VARCHAR2
178128 --Payment Distribution Amount
178129  , p_source_91            IN NUMBER
178130 --Payment Distribution Identifier
178131  , p_source_96            IN NUMBER
178132 --Payment Supplier Identifier
178133  , p_source_102            IN NUMBER
178134 --Payment Supplier Site Identifier
178135  , p_source_103            IN NUMBER
178136 --Payment Distribution Reversed Identifier
178137  , p_source_104            IN NUMBER
178138 --Payment Currency Code
178139  , p_source_106            IN VARCHAR2
178140 --Payment Distribution (Invoice Rate) Ledger Amount
178141  , p_source_109            IN NUMBER
178142 --Payment Type
178143  , p_source_115            IN VARCHAR2
178144  , p_source_115_meaning    IN VARCHAR2
178145 --Payment Processing Type
178146  , p_source_116            IN VARCHAR2
178147 --Invoice Distribution Amount of the Payment Distribution
178148  , p_source_117            IN NUMBER
178149 --Invoice Exchange Date
178150  , p_source_136            IN DATE
178151 --Invoice Exchange Rate
178152  , p_source_137            IN NUMBER
178153 --Invoice Exchange Rate Type
178154  , p_source_138            IN VARCHAR2
178155 --Withholding at Payment Indicator
178156  , p_source_160            IN VARCHAR2
178157  , p_source_160_meaning    IN VARCHAR2
178158 )
178159 IS
178160 
178161 l_component_type              VARCHAR2(80);
178162 l_component_code              VARCHAR2(30);
178163 l_component_type_code         VARCHAR2(1);
178164 l_component_appl_id           INTEGER;
178165 l_amb_context_code            VARCHAR2(30);
178166 l_entity_code                 VARCHAR2(30);
178167 l_event_class_code            VARCHAR2(30);
178168 l_ae_header_id                NUMBER;
178169 l_event_type_code             VARCHAR2(30);
178170 l_line_definition_code        VARCHAR2(30);
178171 l_line_definition_owner_code  VARCHAR2(1);
178172 --
178173 -- adr variables
178174 l_segment                     VARCHAR2(30);
178175 l_ccid                        NUMBER;
178176 l_adr_transaction_coa_id      NUMBER;
178177 l_adr_accounting_coa_id       NUMBER;
178178 l_adr_flexfield_segment_code  VARCHAR2(30);
178179 l_adr_flex_value_set_id       NUMBER;
178180 l_adr_value_type_code         VARCHAR2(30);
178181 l_adr_value_combination_id    NUMBER;
178182 l_adr_value_segment_code      VARCHAR2(30);
178183 
178184 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
178185 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
178186 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
178187 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
178188 
178192 l_acc_rev_flag                VARCHAR2(1);
178189 -- 4262811 Variables ------------------------------------------------------------------------------------------
178190 l_entered_amt_idx             NUMBER;
178191 l_accted_amt_idx              NUMBER;
178193 l_accrual_line_num            NUMBER;
178194 l_tmp_amt                     NUMBER;
178195 l_acc_rev_natural_side_code   VARCHAR2(1);
178196 
178197 l_num_entries                 NUMBER;
178198 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
178199 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
178200 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
178201 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
178202 l_recog_line_1                NUMBER;
178203 l_recog_line_2                NUMBER;
178204 
178205 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
178206 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
178207 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
178208 
178209 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
178210 
178211 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
178212 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
178213 
178214 ---------------------------------------------------------------------------------------------------------------
178215 
178216 
178217 --
178218 -- bulk performance
178219 --
178220 l_balance_type_code           VARCHAR2(1);
178221 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
178222 l_log_module                  VARCHAR2(240);
178223 
178224 --
178225 -- Upgrade strategy
178226 --
178227 l_actual_upg_option           VARCHAR2(1);
178228 l_enc_upg_option           VARCHAR2(1);
178229 
178230 --
178231 BEGIN
178232 --
178233 IF g_log_enabled THEN
178234       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_286';
178235 END IF;
178236 --
178237 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
178238 
178239       trace
178240          (p_msg      => 'BEGIN of AcctLineType_286'
178241          ,p_level    => C_LEVEL_PROCEDURE
178242          ,p_module   => l_log_module);
178243 
178244 END IF;
178245 --
178246 l_component_type             := 'AMB_JLT';
178247 l_component_code             := 'AP_WITHHOLD_TAX_ACCR_PMT';
178248 l_component_type_code        := 'S';
178249 l_component_appl_id          :=  200;
178250 l_amb_context_code           := 'DEFAULT';
178251 l_entity_code                := 'AP_PAYMENTS';
178252 l_event_class_code           := 'PAYMENTS';
178253 l_event_type_code            := 'PAYMENTS_ALL';
178254 l_line_definition_owner_code := 'S';
178255 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
178256 --
178257 l_balance_type_code          := 'A';
178258 l_segment                     := NULL;
178259 l_ccid                        := NULL;
178260 l_adr_transaction_coa_id      := NULL;
178261 l_adr_accounting_coa_id       := NULL;
178262 l_adr_flexfield_segment_code  := NULL;
178263 l_adr_flex_value_set_id       := NULL;
178264 l_adr_value_type_code         := NULL;
178268 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
178265 l_adr_value_combination_id    := NULL;
178266 l_adr_value_segment_code      := NULL;
178267 
178269 l_bflow_class_code           := '';    -- 4219869 Business Flow
178270 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
178271 l_budgetary_control_flag     := 'N';
178272 
178273 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
178274 l_bflow_applied_to_amt       := NULL; -- 5132302
178275 l_entered_amt_idx            := NULL;          -- 4262811
178276 l_accted_amt_idx             := NULL;          -- 4262811
178277 l_acc_rev_flag               := NULL;          -- 4262811
178278 l_accrual_line_num           := NULL;          -- 4262811
178279 l_tmp_amt                    := NULL;          -- 4262811
178280 --
178281  
178282 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
178283     l_balance_type_code <> 'B' THEN
178284 IF NVL(p_source_89,'
178285 ') <>  'CLEAR_CLEAR' AND 
178286 NVL(p_source_90,'
178287 ') =  'AWT' AND 
178288 NVL(p_source_160,'
178289 ') =  'Y' AND 
178290 NVL(p_source_115,'
178291 ') <>  'R' AND 
178292 NVL(p_source_116,'
178293 ') <>  'PAYMENTCARD'
178294  THEN 
178295 
178296    --
178297    XLA_AE_LINES_PKG.SetNewLine;
178298 
178299    p_balance_type_code          := l_balance_type_code;
178300    -- set the flag so later we will know whether the gain loss line needs to be created
178301    
178302    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
178303      p_actual_flag :='A';
178304    END IF;
178308    --
178305 
178306    --
178307    -- bulk performance
178309    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
178310                                       p_header_num   => 0); -- 4262811
178311    --
178312    -- set accounting line options
178313    --
178314    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
178315            p_natural_side_code          => 'C'
178316          , p_gain_or_loss_flag          => 'N'
178317          , p_gl_transfer_mode_code      => 'S'
178318          , p_acct_entry_type_code       => 'A'
178319          , p_switch_side_flag           => 'Y'
178320          , p_merge_duplicate_code       => 'A'
178321          );
178322    --
178323    l_acc_rev_natural_side_code := 'D';  -- 4262811
178324    -- 
178325    --
178326    -- set accounting line type info
178327    --
178328    xla_ae_lines_pkg.SetAcctLineType
178329       (p_component_type             => l_component_type
178330       ,p_event_type_code            => l_event_type_code
178331       ,p_line_definition_owner_code => l_line_definition_owner_code
178332       ,p_line_definition_code       => l_line_definition_code
178333       ,p_accounting_line_code       => l_component_code
178334       ,p_accounting_line_type_code  => l_component_type_code
178335       ,p_accounting_line_appl_id    => l_component_appl_id
178336       ,p_amb_context_code           => l_amb_context_code
178337       ,p_entity_code                => l_entity_code
178338       ,p_event_class_code           => l_event_class_code);
178339    --
178340    -- set accounting class
178341    --
178342    xla_ae_lines_pkg.SetAcctClass(
178343            p_accounting_class_code  => 'AWT'
178344          , p_ae_header_id           => l_ae_header_id
178345          );
178346 
178347    --
178348    -- set rounding class
178349    --
178350    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
178351                       'AWT';
178352 
178353    --
178354    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
178355    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
178356    --
178357    -- bulk performance
178358    --
178359    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
178360 
178361    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
178362       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
178363 
178364    -- 4955764
178365    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
178366       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
178367 
178368    -- 4458381 Public Sector Enh
178369    
178370    --
178371    -- set accounting attributes for the line type
178372    --
178373    l_entered_amt_idx := 10;
178374    l_accted_amt_idx  := 15;
178375    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
178376    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
178377    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
178378    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
178379    l_rec_acct_attrs.array_num_value(2)  := p_source_117;
178380    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
178381    l_rec_acct_attrs.array_num_value(3)  := p_source_79;
178382    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
178383    l_rec_acct_attrs.array_char_value(4)  := p_source_80;
178384    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
178385    l_rec_acct_attrs.array_char_value(5)  := p_source_81;
178386    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
178387    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_82);
178388    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
178389    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_83);
178390    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
178391    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_96);
178392    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
178393    l_rec_acct_attrs.array_char_value(9)  := p_source_43;
178394    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
178395    l_rec_acct_attrs.array_num_value(10)  := p_source_91;
178396    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
178397    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
178398    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
178399    l_rec_acct_attrs.array_date_value(12)  := p_source_136;
178400    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
178401    l_rec_acct_attrs.array_num_value(13)  := p_source_137;
178402    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
178403    l_rec_acct_attrs.array_char_value(14)  := p_source_138;
178404    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
178405    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
178406    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
178410    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
178407    l_rec_acct_attrs.array_char_value(16)  := p_source_68;
178408    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
178409    l_rec_acct_attrs.array_num_value(17)  := p_source_102;
178411    l_rec_acct_attrs.array_num_value(18)  := p_source_103;
178412    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
178413    l_rec_acct_attrs.array_char_value(19)  := p_source_71;
178414    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
178415    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_104);
178416    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
178417    l_rec_acct_attrs.array_char_value(21)  := p_source_43;
178418    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
178419    l_rec_acct_attrs.array_num_value(22)  := p_source_74;
178420    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
178421    l_rec_acct_attrs.array_num_value(23)  := p_source_75;
178422    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
178423    l_rec_acct_attrs.array_num_value(24)  := p_source_76;
178424 
178425    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
178426    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
178427 
178428    ---------------------------------------------------------------------------------------------------------------
178429    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
178430    ---------------------------------------------------------------------------------------------------------------
178431    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
178432 
178433    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
178434    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
178435 
178436    IF xla_accounting_cache_pkg.GetValueChar
178437          (p_source_code         => 'LEDGER_CATEGORY_CODE'
178438          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
178439    AND l_bflow_method_code = 'PRIOR_ENTRY'
178440 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
178441    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
178442          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
178443        )
178444    THEN
178445          xla_ae_lines_pkg.BflowUpgEntry
178446            (p_business_method_code    => l_bflow_method_code
178447            ,p_business_class_code     => l_bflow_class_code
178448            ,p_balance_type            => l_balance_type_code);
178449    ELSE
178450       NULL;
178451 -- No business flow processing for business flow method of NONE.
178452    END IF;
178453 
178454    --
178455    -- call analytical criteria
178456    --
178457    
178458    --
178459    -- call description
178460    --
178461    -- No description or it is inherited.
178462    --
178463    -- call ADRs
178464    -- Bug 4922099
178465    --
178466    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
178467         (NVL(l_actual_upg_option, 'N') = 'O') OR
178468         (NVL(l_enc_upg_option, 'N') = 'O')
178469       )
178470    THEN
178471    NULL;
178472    --
178473    --
178474    
178475   l_ccid := AcctDerRule_45(
178476            p_application_id           => p_application_id
178477          , p_ae_header_id             => l_ae_header_id 
178478 , p_source_3 => p_source_3
178479 , p_source_3_meaning => p_source_3_meaning
178480 , p_source_18 => p_source_18
178481 , p_source_31 => p_source_31
178482          , x_transaction_coa_id       => l_adr_transaction_coa_id
178483          , x_accounting_coa_id        => l_adr_accounting_coa_id
178484          , x_value_type_code          => l_adr_value_type_code
178485          , p_side                     => 'NA'
178486    );
178487 
178488    xla_ae_lines_pkg.set_ccid(
178489     p_code_combination_id          => l_ccid
178490   , p_value_type_code              => l_adr_value_type_code
178491   , p_transaction_coa_id           => l_adr_transaction_coa_id
178492   , p_accounting_coa_id            => l_adr_accounting_coa_id
178493   , p_adr_code                     => 'AP_WH_DIST_ACCT'
178494   , p_adr_type_code                => 'S'
178495   , p_component_type               => l_component_type
178496   , p_component_code               => l_component_code
178497   , p_component_type_code          => l_component_type_code
178498   , p_component_appl_id            => l_component_appl_id
178499   , p_amb_context_code             => l_amb_context_code
178500   , p_side                         => 'NA'
178501   );
178502 
178503 
178504    l_segment := AcctDerRule_13(
178505            p_application_id           => p_application_id
178506          , p_ae_header_id             => l_ae_header_id 
178507 , p_source_3 => p_source_3
178508 , p_source_3_meaning => p_source_3_meaning
178509 , p_source_18 => p_source_18
178510          , x_transaction_coa_id       => l_adr_transaction_coa_id
178511          , x_accounting_coa_id        => l_adr_accounting_coa_id
178512          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
178513          , x_flex_value_set_id        => l_adr_flex_value_set_id
178514          , x_value_type_code          => l_adr_value_type_code
178515          , x_value_combination_id     => l_adr_value_combination_id
178516          , x_value_segment_code       => l_adr_value_segment_code
178517          , p_side                     => 'NA'
178521    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
178518          , p_override_seg_flag        => 'Y'
178519    );
178520 
178522 
178523       xla_ae_lines_pkg.set_segment(
178524           p_to_segment_code         => 'GL_ACCOUNT'
178525         , p_segment_value           => l_segment
178526         , p_from_segment_code       => l_adr_value_segment_code
178527         , p_from_combination_id     => l_adr_value_combination_id
178528         , p_value_type_code         => l_adr_value_type_code
178529         , p_transaction_coa_id      => l_adr_transaction_coa_id
178530         , p_accounting_coa_id       => l_adr_accounting_coa_id
178531         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
178532         , p_flex_value_set_id       => l_adr_flex_value_set_id
178533         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
178534         , p_adr_type_code           => 'S'
178535         , p_component_type          => l_component_type
178536         , p_component_code          => l_component_code
178537         , p_component_type_code     => l_component_type_code
178538         , p_component_appl_id       => l_component_appl_id
178539         , p_amb_context_code        => l_amb_context_code
178543         );
178540         , p_entity_code             => 'AP_PAYMENTS'
178541         , p_event_class_code        => 'PAYMENTS'
178542         , p_side                    => 'NA'
178544 
178545   END IF;
178546 
178547    l_segment := AcctDerRule_24(
178548            p_application_id           => p_application_id
178549          , p_ae_header_id             => l_ae_header_id 
178550 , p_source_3 => p_source_3
178551 , p_source_3_meaning => p_source_3_meaning
178552 , p_source_31 => p_source_31
178553          , x_transaction_coa_id       => l_adr_transaction_coa_id
178554          , x_accounting_coa_id        => l_adr_accounting_coa_id
178555          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
178556          , x_flex_value_set_id        => l_adr_flex_value_set_id
178557          , x_value_type_code          => l_adr_value_type_code
178558          , x_value_combination_id     => l_adr_value_combination_id
178559          , x_value_segment_code       => l_adr_value_segment_code
178560          , p_side                     => 'NA'
178561          , p_override_seg_flag        => 'Y'
178562    );
178563 
178564    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
178565 
178566       xla_ae_lines_pkg.set_segment(
178567           p_to_segment_code         => 'GL_BALANCING'
178568         , p_segment_value           => l_segment
178569         , p_from_segment_code       => l_adr_value_segment_code
178570         , p_from_combination_id     => l_adr_value_combination_id
178571         , p_value_type_code         => l_adr_value_type_code
178572         , p_transaction_coa_id      => l_adr_transaction_coa_id
178573         , p_accounting_coa_id       => l_adr_accounting_coa_id
178574         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
178575         , p_flex_value_set_id       => l_adr_flex_value_set_id
178576         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
178580         , p_component_type_code     => l_component_type_code
178577         , p_adr_type_code           => 'S'
178578         , p_component_type          => l_component_type
178579         , p_component_code          => l_component_code
178581         , p_component_appl_id       => l_component_appl_id
178582         , p_amb_context_code        => l_amb_context_code
178583         , p_entity_code             => 'AP_PAYMENTS'
178584         , p_event_class_code        => 'PAYMENTS'
178585         , p_side                    => 'NA'
178586         );
178587 
178588   END IF;
178589 
178590    --
178591    --
178592    END IF;
178593    --
178594    -- Bug 4922099
178595    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
178596           (NVL(l_enc_upg_option, 'N') = 'O')
178597         ) AND
178598         (l_bflow_method_code = 'PRIOR_ENTRY')
178599       )
178600    THEN
178601       IF
178602       --
178603       1 = 2
178604       --
178605       THEN
178606       xla_accounting_err_pkg.build_message
178607                                     (p_appli_s_name            => 'XLA'
178608                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
178609                                     ,p_token_1                 => 'LINE_NUMBER'
178610                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
178611                                     ,p_token_2                 => 'LINE_TYPE_NAME'
178612                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
178613                                                                              l_component_type
178614                                                                             ,l_component_code
178615                                                                             ,l_component_type_code
178616                                                                             ,l_component_appl_id
178617                                                                             ,l_amb_context_code
178618                                                                             ,l_entity_code
178619                                                                             ,l_event_class_code
178620                                                                            )
178621                                     ,p_token_3                 => 'OWNER'
178622                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
178623                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
178624                                                                           ,p_lookup_code    => l_component_type_code
178625                                                                          )
178626                                     ,p_token_4                 => 'PRODUCT_NAME'
178627                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
178628                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
178629                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
178630                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
178631                                     ,p_ae_header_id            =>  NULL
178632                                        );
178633 
178634         IF (C_LEVEL_ERROR>= g_log_level) THEN
178635                  trace
178636                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
178637                       ,p_level    => C_LEVEL_ERROR
178638                       ,p_module   => l_log_module);
178639         END IF;
178640       END IF;
178641    END IF;
178642    --
178643    --
178644    ------------------------------------------------------------------------------------------------
178645    -- 4219869 Business Flow
178646    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
178647    -- Prior Entry.  Currently, the following code is always generated.
178648    ------------------------------------------------------------------------------------------------
178649    XLA_AE_LINES_PKG.ValidateCurrentLine;
178650 
178651    ------------------------------------------------------------------------------------
178652    -- 4219869 Business Flow
178653    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
178654    ------------------------------------------------------------------------------------
178655    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
178656 
178657    ----------------------------------------------------------------------------------
178658    -- 4219869 Business Flow
178659    -- Update journal entry status -- Need to generate this within IF <condition>
178660    ----------------------------------------------------------------------------------
178661    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
178662          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
178663          ,p_balance_type_code => l_balance_type_code
178664          );
178665 
178666    -------------------------------------------------------------------------------------------
178667    -- 4262811 - Generate the Accrual Reversal lines
178668    -------------------------------------------------------------------------------------------
178669    BEGIN
178670       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
178671                               (g_array_event(p_event_id).array_value_num('header_index'));
178672       IF l_acc_rev_flag IS NULL THEN
178673          l_acc_rev_flag := 'N';
178674       END IF;
178675    EXCEPTION
178676       WHEN OTHERS THEN
178677          l_acc_rev_flag := 'N';
178678    END;
178679    --
178680    IF (l_acc_rev_flag = 'Y') THEN
178681 
178685        ------------------------------------------------------------------------------------------
178682        -- 4645092  ------------------------------------------------------------------------------
178683        -- To allow MPA report to determine if it should generate report process
178684        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
178686 
178687        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
178688        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
178689    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
178690    -- call ADRs
178691    -- Bug 4922099
178692    --
178693    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
178694         (NVL(l_actual_upg_option, 'N') = 'O') OR
178695         (NVL(l_enc_upg_option, 'N') = 'O')
178696       )
178697    THEN
178698    NULL;
178699    --
178700    --
178701    
178702   l_ccid := AcctDerRule_45(
178703            p_application_id           => p_application_id
178704          , p_ae_header_id             => l_ae_header_id 
178705 , p_source_3 => p_source_3
178706 , p_source_3_meaning => p_source_3_meaning
178707 , p_source_18 => p_source_18
178708 , p_source_31 => p_source_31
178709          , x_transaction_coa_id       => l_adr_transaction_coa_id
178710          , x_accounting_coa_id        => l_adr_accounting_coa_id
178711          , x_value_type_code          => l_adr_value_type_code
178712          , p_side                     => 'NA'
178713    );
178714 
178715    xla_ae_lines_pkg.set_ccid(
178716     p_code_combination_id          => l_ccid
178717   , p_value_type_code              => l_adr_value_type_code
178718   , p_transaction_coa_id           => l_adr_transaction_coa_id
178719   , p_accounting_coa_id            => l_adr_accounting_coa_id
178720   , p_adr_code                     => 'AP_WH_DIST_ACCT'
178721   , p_adr_type_code                => 'S'
178722   , p_component_type               => l_component_type
178723   , p_component_code               => l_component_code
178724   , p_component_type_code          => l_component_type_code
178725   , p_component_appl_id            => l_component_appl_id
178726   , p_amb_context_code             => l_amb_context_code
178727   , p_side                         => 'NA'
178728   );
178729 
178730 
178731    l_segment := AcctDerRule_13(
178732            p_application_id           => p_application_id
178733          , p_ae_header_id             => l_ae_header_id 
178734 , p_source_3 => p_source_3
178735 , p_source_3_meaning => p_source_3_meaning
178736 , p_source_18 => p_source_18
178737          , x_transaction_coa_id       => l_adr_transaction_coa_id
178738          , x_accounting_coa_id        => l_adr_accounting_coa_id
178739          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
178740          , x_flex_value_set_id        => l_adr_flex_value_set_id
178741          , x_value_type_code          => l_adr_value_type_code
178742          , x_value_combination_id     => l_adr_value_combination_id
178743          , x_value_segment_code       => l_adr_value_segment_code
178744          , p_side                     => 'NA'
178745          , p_override_seg_flag        => 'Y'
178746    );
178747 
178748    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
178749 
178750       xla_ae_lines_pkg.set_segment(
178751           p_to_segment_code         => 'GL_ACCOUNT'
178752         , p_segment_value           => l_segment
178753         , p_from_segment_code       => l_adr_value_segment_code
178754         , p_from_combination_id     => l_adr_value_combination_id
178755         , p_value_type_code         => l_adr_value_type_code
178756         , p_transaction_coa_id      => l_adr_transaction_coa_id
178757         , p_accounting_coa_id       => l_adr_accounting_coa_id
178758         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
178759         , p_flex_value_set_id       => l_adr_flex_value_set_id
178760         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
178761         , p_adr_type_code           => 'S'
178762         , p_component_type          => l_component_type
178763         , p_component_code          => l_component_code
178764         , p_component_type_code     => l_component_type_code
178765         , p_component_appl_id       => l_component_appl_id
178766         , p_amb_context_code        => l_amb_context_code
178767         , p_entity_code             => 'AP_PAYMENTS'
178768         , p_event_class_code        => 'PAYMENTS'
178769         , p_side                    => 'NA'
178770         );
178771 
178772   END IF;
178773 
178774    l_segment := AcctDerRule_24(
178775            p_application_id           => p_application_id
178776          , p_ae_header_id             => l_ae_header_id 
178777 , p_source_3 => p_source_3
178778 , p_source_3_meaning => p_source_3_meaning
178779 , p_source_31 => p_source_31
178780          , x_transaction_coa_id       => l_adr_transaction_coa_id
178781          , x_accounting_coa_id        => l_adr_accounting_coa_id
178782          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
178783          , x_flex_value_set_id        => l_adr_flex_value_set_id
178784          , x_value_type_code          => l_adr_value_type_code
178785          , x_value_combination_id     => l_adr_value_combination_id
178786          , x_value_segment_code       => l_adr_value_segment_code
178787          , p_side                     => 'NA'
178788          , p_override_seg_flag        => 'Y'
178789    );
178790 
178791    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
178792 
178793       xla_ae_lines_pkg.set_segment(
178794           p_to_segment_code         => 'GL_BALANCING'
178795         , p_segment_value           => l_segment
178796         , p_from_segment_code       => l_adr_value_segment_code
178797         , p_from_combination_id     => l_adr_value_combination_id
178798         , p_value_type_code         => l_adr_value_type_code
178799         , p_transaction_coa_id      => l_adr_transaction_coa_id
178803         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
178800         , p_accounting_coa_id       => l_adr_accounting_coa_id
178801         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
178802         , p_flex_value_set_id       => l_adr_flex_value_set_id
178804         , p_adr_type_code           => 'S'
178805         , p_component_type          => l_component_type
178806         , p_component_code          => l_component_code
178807         , p_component_type_code     => l_component_type_code
178808         , p_component_appl_id       => l_component_appl_id
178809         , p_amb_context_code        => l_amb_context_code
178810         , p_entity_code             => 'AP_PAYMENTS'
178811         , p_event_class_code        => 'PAYMENTS'
178812         , p_side                    => 'NA'
178813         );
178814 
178815   END IF;
178816 
178817    --
178818    --
178819    END IF;
178820 
178821        --
178822        -- Update the line information that should be overwritten
178823        --
178824        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
178825                                          p_header_num   => 1);
178826        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
178827 
178828        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
178829 
178830        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
178831           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
178832        END IF;
178833 
178834       --
178835       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
178836       --
178837       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
178838           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
178839       ELSE
178840           ---------------------------------------------------------------------------------------------------
178841           -- 4262811a Switch Sign
178842           ---------------------------------------------------------------------------------------------------
178843           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
178844           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
178845                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
178846           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
178847                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
178848           -- 5132302
178849           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
178850                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
178851 
178852       END IF;
178853 
178854       -- 4955764
178855       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
178856       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
178857 
178858 
178859       XLA_AE_LINES_PKG.ValidateCurrentLine;
178860       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
178861 
178862       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
178863                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
178864                ,p_balance_type_code => l_balance_type_code);
178865 
178866    END IF;
178867 
178868    -----------------------------------------------------------------------------------------
178869    -- 4262811 Multiperiod Accounting
178870    -----------------------------------------------------------------------------------------
178871      -- No MPA option is assigned.
178872 
178873 
178874 END IF;
178875 END IF;
178876 --
178877 
178878 --
178879 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
178880    trace
178881       (p_msg      => 'END of AcctLineType_286'
178882       ,p_level    => C_LEVEL_PROCEDURE
178883       ,p_module   => l_log_module);
178884 END IF;
178885 --
178886 EXCEPTION
178887   WHEN xla_exceptions_pkg.application_exception THEN
178888       RAISE;
178889   WHEN OTHERS THEN
178890        xla_exceptions_pkg.raise_message
178891            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_286');
178892 END AcctLineType_286;
178893 --
178894 
178895 ---------------------------------------
178896 --
178897 -- PRIVATE FUNCTION
178898 --         AcctLineType_287
178899 --
178900 ---------------------------------------
178901 PROCEDURE AcctLineType_287 (
178902   p_application_id        IN NUMBER
178903  ,p_event_id              IN NUMBER
178904  ,p_calculate_acctd_flag  IN VARCHAR2
178905  ,p_calculate_g_l_flag    IN VARCHAR2
178906  ,p_actual_flag           IN OUT VARCHAR2
178907  ,p_balance_type_code     OUT VARCHAR2
178908  ,p_gain_or_loss_ref      OUT VARCHAR2
178909  
178910 --Invoice Distribution Description
178911  , p_source_1            IN VARCHAR2
178912 --Automatic Offsets Value
178913  , p_source_3            IN VARCHAR2
178914  , p_source_3_meaning    IN VARCHAR2
178915 --Invoice Distribution Ledger Amount
178916  , p_source_9            IN NUMBER
178917 --Invoice Distribution Account
178918  , p_source_18            IN NUMBER
178919 --Invoice Distribution Type
178920  , p_source_21            IN VARCHAR2
178921  , p_source_21_meaning    IN VARCHAR2
178922 --Withholding Related Distribution Account
178926 --Distribution Link Type
178923  , p_source_31            IN NUMBER
178924 --Accounting Reversal Indicator
178925  , p_source_41            IN VARCHAR2
178927  , p_source_43            IN VARCHAR2
178928 --Allocation to Main Distribution Identifier
178929  , p_source_45            IN NUMBER
178930 --Invoice Identifier
178931  , p_source_46            IN NUMBER
178932 --Invoice Distribution Identifier
178933  , p_source_52            IN NUMBER
178934 --Payables Encumbrance Upgrade Credit Account
178935  , p_source_53            IN NUMBER
178936 --Payables Encumbrance Upgrade Credit Amount
178937  , p_source_54            IN NUMBER
178938 --Invoice Currency Code
178939  , p_source_55            IN VARCHAR2
178940 --Payables Encumbrance Upgrade Credit Base Amount
178941  , p_source_56            IN NUMBER
178942 --Payables Encumbrance Upgrade Debit Account
178943  , p_source_57            IN NUMBER
178944 --Payables Encumbrance Upgrade Debit Amount
178945  , p_source_58            IN NUMBER
178946 --Payables Encumbrance Upgrade Debit Base Amount
178947  , p_source_59            IN NUMBER
178948 --Payables Encumbrance Upgrade Option
178949  , p_source_60            IN VARCHAR2
178950 --Invoice Distribution Amount
178951  , p_source_61            IN NUMBER
178952 --Deferred Accounting End Date
178953  , p_source_65            IN DATE
178954 --Deferred Accounting Option
178955  , p_source_66            IN VARCHAR2
178956 --Deferred Accounting Start Date
178957  , p_source_67            IN DATE
178958 --Override Accounted Amount Indicator
178959  , p_source_68            IN VARCHAR2
178960  , p_source_68_meaning    IN VARCHAR2
178961 --Invoice Supplier Identifier
178962  , p_source_69            IN NUMBER
178963 --Invoice Supplier Site Identifier
178964  , p_source_70            IN NUMBER
178965 --Third Party Type
178966  , p_source_71            IN VARCHAR2
178967 --Parent Reversal Identifier
178968  , p_source_72            IN NUMBER
178969 --Invoice Distribution Statistical Amount
178970  , p_source_73            IN NUMBER
178971 --Invoice Distribution Tax Line Identifier
178972  , p_source_74            IN NUMBER
178973 --Invoice Distribution Tax Distribution Identifier from Tax
178974  , p_source_75            IN NUMBER
178975 --Invoice Distribution Summary Tax Line Identifier
178976  , p_source_76            IN NUMBER
178977 --Payables Upgrade Credit Encumbrance Type Identifier
178978  , p_source_77            IN NUMBER
178979 --Payables Upgrade Debit Encumbrance Type Identifier
178980  , p_source_78            IN NUMBER
178981 --Business Flow Accounts Payable Application Identifier
178982  , p_source_79            IN NUMBER
178983 --Business Flow Invoice Distribution Type
178984  , p_source_80            IN VARCHAR2
178985 --Business Flow Invoice Entity Code
178986  , p_source_81            IN VARCHAR2
178987 --Business Flow Invoice Distribution Identifier
178988  , p_source_82            IN NUMBER
178989 --Business Flow Invoice Identifier
178990  , p_source_83            IN NUMBER
178991 --Invoice Exchange Date
178992  , p_source_136            IN DATE
178993 --Invoice Exchange Rate
178994  , p_source_137            IN NUMBER
178995 --Invoice Exchange Rate Type
178996  , p_source_138            IN VARCHAR2
178997 )
178998 IS
178999 
179000 l_component_type              VARCHAR2(80);
179001 l_component_code              VARCHAR2(30);
179002 l_component_type_code         VARCHAR2(1);
179003 l_component_appl_id           INTEGER;
179004 l_amb_context_code            VARCHAR2(30);
179005 l_entity_code                 VARCHAR2(30);
179006 l_event_class_code            VARCHAR2(30);
179007 l_ae_header_id                NUMBER;
179008 l_event_type_code             VARCHAR2(30);
179009 l_line_definition_code        VARCHAR2(30);
179010 l_line_definition_owner_code  VARCHAR2(1);
179011 --
179012 -- adr variables
179013 l_segment                     VARCHAR2(30);
179014 l_ccid                        NUMBER;
179015 l_adr_transaction_coa_id      NUMBER;
179016 l_adr_accounting_coa_id       NUMBER;
179017 l_adr_flexfield_segment_code  VARCHAR2(30);
179018 l_adr_flex_value_set_id       NUMBER;
179019 l_adr_value_type_code         VARCHAR2(30);
179020 l_adr_value_combination_id    NUMBER;
179021 l_adr_value_segment_code      VARCHAR2(30);
179022 
179023 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
179024 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
179025 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
179026 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
179027 
179028 -- 4262811 Variables ------------------------------------------------------------------------------------------
179029 l_entered_amt_idx             NUMBER;
179030 l_accted_amt_idx              NUMBER;
179031 l_acc_rev_flag                VARCHAR2(1);
179032 l_accrual_line_num            NUMBER;
179033 l_tmp_amt                     NUMBER;
179034 l_acc_rev_natural_side_code   VARCHAR2(1);
179035 
179036 l_num_entries                 NUMBER;
179037 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
179038 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
179039 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
179040 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
179041 l_recog_line_1                NUMBER;
179042 l_recog_line_2                NUMBER;
179043 
179044 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
179045 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
179046 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
179047 
179048 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
179049 
179050 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
179054 
179051 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
179052 
179053 ---------------------------------------------------------------------------------------------------------------
179055 
179056 --
179057 -- bulk performance
179058 --
179059 l_balance_type_code           VARCHAR2(1);
179060 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
179061 l_log_module                  VARCHAR2(240);
179062 
179063 --
179064 -- Upgrade strategy
179065 --
179066 l_actual_upg_option           VARCHAR2(1);
179067 l_enc_upg_option           VARCHAR2(1);
179068 
179069 --
179070 BEGIN
179071 --
179072 IF g_log_enabled THEN
179073       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_287';
179074 END IF;
179075 --
179076 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
179077 
179078       trace
179079          (p_msg      => 'BEGIN of AcctLineType_287'
179080          ,p_level    => C_LEVEL_PROCEDURE
179081          ,p_module   => l_log_module);
179082 
179083 END IF;
179084 --
179085 l_component_type             := 'AMB_JLT';
179086 l_component_code             := 'AP_WITHHOLD_TAX_CM';
179087 l_component_type_code        := 'S';
179088 l_component_appl_id          :=  200;
179089 l_amb_context_code           := 'DEFAULT';
179090 l_entity_code                := 'AP_INVOICES';
179091 l_event_class_code           := 'CREDIT MEMOS';
179092 l_event_type_code            := 'CREDIT MEMOS_ALL';
179093 l_line_definition_owner_code := 'S';
179094 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
179095 --
179096 l_balance_type_code          := 'A';
179097 l_segment                     := NULL;
179098 l_ccid                        := NULL;
179099 l_adr_transaction_coa_id      := NULL;
179100 l_adr_accounting_coa_id       := NULL;
179101 l_adr_flexfield_segment_code  := NULL;
179102 l_adr_flex_value_set_id       := NULL;
179103 l_adr_value_type_code         := NULL;
179104 l_adr_value_combination_id    := NULL;
179105 l_adr_value_segment_code      := NULL;
179106 
179107 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
179108 l_bflow_class_code           := '';    -- 4219869 Business Flow
179109 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
179110 l_budgetary_control_flag     := 'N';
179111 
179112 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
179113 l_bflow_applied_to_amt       := NULL; -- 5132302
179114 l_entered_amt_idx            := NULL;          -- 4262811
179115 l_accted_amt_idx             := NULL;          -- 4262811
179116 l_acc_rev_flag               := NULL;          -- 4262811
179117 l_accrual_line_num           := NULL;          -- 4262811
179118 l_tmp_amt                    := NULL;          -- 4262811
179119 --
179120  
179121 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
179122     l_balance_type_code <> 'B' THEN
179123 IF NVL(p_source_21,'
179124 ') =  'AWT'
179125  THEN 
179126 
179127    --
179128    XLA_AE_LINES_PKG.SetNewLine;
179129 
179130    p_balance_type_code          := l_balance_type_code;
179131    -- set the flag so later we will know whether the gain loss line needs to be created
179132    
179133    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
179134      p_actual_flag :='A';
179135    END IF;
179136 
179137    --
179138    -- bulk performance
179139    --
179140    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
179141                                       p_header_num   => 0); -- 4262811
179142    --
179143    -- set accounting line options
179144    --
179145    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
179146            p_natural_side_code          => 'D'
179147          , p_gain_or_loss_flag          => 'N'
179148          , p_gl_transfer_mode_code      => 'S'
179149          , p_acct_entry_type_code       => 'A'
179150          , p_switch_side_flag           => 'Y'
179151          , p_merge_duplicate_code       => 'A'
179152          );
179153    --
179154    l_acc_rev_natural_side_code := 'C';  -- 4262811
179155    -- 
179156    --
179157    -- set accounting line type info
179158    --
179159    xla_ae_lines_pkg.SetAcctLineType
179160       (p_component_type             => l_component_type
179161       ,p_event_type_code            => l_event_type_code
179162       ,p_line_definition_owner_code => l_line_definition_owner_code
179163       ,p_line_definition_code       => l_line_definition_code
179164       ,p_accounting_line_code       => l_component_code
179165       ,p_accounting_line_type_code  => l_component_type_code
179166       ,p_accounting_line_appl_id    => l_component_appl_id
179167       ,p_amb_context_code           => l_amb_context_code
179168       ,p_entity_code                => l_entity_code
179169       ,p_event_class_code           => l_event_class_code);
179170    --
179171    -- set accounting class
179172    --
179173    xla_ae_lines_pkg.SetAcctClass(
179174            p_accounting_class_code  => 'AWT'
179175          , p_ae_header_id           => l_ae_header_id
179176          );
179177 
179178    --
179179    -- set rounding class
179180    --
179181    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
179182                       'AWT';
179183 
179184    --
179185    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
179186    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
179187    --
179188    -- bulk performance
179189    --
179190    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
179191 
179192    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
179196    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
179193       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
179194 
179195    -- 4955764
179197       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
179198 
179199    -- 4458381 Public Sector Enh
179200    
179201    --
179202    -- set accounting attributes for the line type
179203    --
179204    l_entered_amt_idx := 23;
179205    l_accted_amt_idx  := 28;
179206    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
179207    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
179208    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
179209    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
179210    l_rec_acct_attrs.array_num_value(2)  := 
179211 xla_ae_sources_pkg.GetSystemSourceNum(
179212    p_source_code           => 'XLA_EVENT_APPL_ID'
179213  , p_source_type_code      => 'Y'
179214  , p_source_application_id =>  602
179215 );
179216    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
179217    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
179218    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
179219    l_rec_acct_attrs.array_char_value(4)  := 
179220 xla_ae_sources_pkg.GetSystemSourceChar(
179221    p_source_code           => 'XLA_ENTITY_CODE'
179222  , p_source_type_code      => 'Y'
179223  , p_source_application_id =>  602
179224 );
179225    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
179226    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
179227    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
179228    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
179229    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
179230    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
179231    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
179232    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
179233    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
179234    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
179235    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
179236    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
179237    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
179238    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
179239    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
179240    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
179241    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
179242    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
179243    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
179244    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
179245    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
179246    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
179247    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
179248    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
179249    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
179250    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
179251    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
179252    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
179253    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
179254    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
179255    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
179256    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
179257    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
179258    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
179259    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
179260    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
179261    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
179262    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
179263    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
179264    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
179265    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
179266    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
179267    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
179268    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
179269    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
179270    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
179271    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
179272    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
179273    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
179274    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
179275    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
179276    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
179277    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
179278    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
179279    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
179280    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
179281    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
179282    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
179283    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
179284    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
179285    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
179286    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
179287    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
179288    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
179289    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
179290    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
179294    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
179291    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
179292    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
179293    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
179295    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
179296    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
179297    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
179298    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
179299    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
179300    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
179301    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
179302    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
179303 
179304    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
179305    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
179306 
179307    ---------------------------------------------------------------------------------------------------------------
179308    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
179309    ---------------------------------------------------------------------------------------------------------------
179310    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
179311 
179312    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
179313    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
179314 
179315    IF xla_accounting_cache_pkg.GetValueChar
179316          (p_source_code         => 'LEDGER_CATEGORY_CODE'
179317          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
179318    AND l_bflow_method_code = 'PRIOR_ENTRY'
179319 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
179320    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
179321          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
179322        )
179323    THEN
179324          xla_ae_lines_pkg.BflowUpgEntry
179325            (p_business_method_code    => l_bflow_method_code
179326            ,p_business_class_code     => l_bflow_class_code
179327            ,p_balance_type            => l_balance_type_code);
179328    ELSE
179329       NULL;
179330 -- No business flow processing for business flow method of NONE.
179331    END IF;
179332 
179333    --
179334    -- call analytical criteria
179335    --
179336    
179337    --
179338    -- call description
179339    --
179340    
179341 xla_ae_lines_pkg.SetLineDescription(
179342    p_ae_header_id => l_ae_header_id
179343   ,p_description  => Description_2 (
179344      p_application_id         => p_application_id
179345    , p_ae_header_id           => l_ae_header_id 
179346 , p_source_1 => p_source_1
179347    )
179348 );
179349 
179350 
179351    --
179352    -- call ADRs
179353    -- Bug 4922099
179354    --
179355    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
179356         (NVL(l_actual_upg_option, 'N') = 'O') OR
179357         (NVL(l_enc_upg_option, 'N') = 'O')
179358       )
179359    THEN
179360    NULL;
179361    --
179362    --
179363    
179364   l_ccid := AcctDerRule_45(
179365            p_application_id           => p_application_id
179366          , p_ae_header_id             => l_ae_header_id 
179367 , p_source_3 => p_source_3
179368 , p_source_3_meaning => p_source_3_meaning
179369 , p_source_18 => p_source_18
179370 , p_source_31 => p_source_31
179371          , x_transaction_coa_id       => l_adr_transaction_coa_id
179372          , x_accounting_coa_id        => l_adr_accounting_coa_id
179373          , x_value_type_code          => l_adr_value_type_code
179374          , p_side                     => 'NA'
179375    );
179376 
179377    xla_ae_lines_pkg.set_ccid(
179378     p_code_combination_id          => l_ccid
179379   , p_value_type_code              => l_adr_value_type_code
179380   , p_transaction_coa_id           => l_adr_transaction_coa_id
179381   , p_accounting_coa_id            => l_adr_accounting_coa_id
179382   , p_adr_code                     => 'AP_WH_DIST_ACCT'
179383   , p_adr_type_code                => 'S'
179384   , p_component_type               => l_component_type
179385   , p_component_code               => l_component_code
179386   , p_component_type_code          => l_component_type_code
179387   , p_component_appl_id            => l_component_appl_id
179388   , p_amb_context_code             => l_amb_context_code
179389   , p_side                         => 'NA'
179390   );
179391 
179392 
179393    l_segment := AcctDerRule_13(
179394            p_application_id           => p_application_id
179395          , p_ae_header_id             => l_ae_header_id 
179396 , p_source_3 => p_source_3
179397 , p_source_3_meaning => p_source_3_meaning
179398 , p_source_18 => p_source_18
179399          , x_transaction_coa_id       => l_adr_transaction_coa_id
179400          , x_accounting_coa_id        => l_adr_accounting_coa_id
179401          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
179402          , x_flex_value_set_id        => l_adr_flex_value_set_id
179403          , x_value_type_code          => l_adr_value_type_code
179404          , x_value_combination_id     => l_adr_value_combination_id
179405          , x_value_segment_code       => l_adr_value_segment_code
179406          , p_side                     => 'NA'
179407          , p_override_seg_flag        => 'Y'
179408    );
179409 
179410    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
179411 
179412       xla_ae_lines_pkg.set_segment(
179413           p_to_segment_code         => 'GL_ACCOUNT'
179414         , p_segment_value           => l_segment
179418         , p_transaction_coa_id      => l_adr_transaction_coa_id
179415         , p_from_segment_code       => l_adr_value_segment_code
179416         , p_from_combination_id     => l_adr_value_combination_id
179417         , p_value_type_code         => l_adr_value_type_code
179419         , p_accounting_coa_id       => l_adr_accounting_coa_id
179420         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
179421         , p_flex_value_set_id       => l_adr_flex_value_set_id
179422         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
179423         , p_adr_type_code           => 'S'
179424         , p_component_type          => l_component_type
179425         , p_component_code          => l_component_code
179426         , p_component_type_code     => l_component_type_code
179427         , p_component_appl_id       => l_component_appl_id
179428         , p_amb_context_code        => l_amb_context_code
179429         , p_entity_code             => 'AP_INVOICES'
179430         , p_event_class_code        => 'CREDIT MEMOS'
179431         , p_side                    => 'NA'
179432         );
179433 
179434   END IF;
179435 
179436    l_segment := AcctDerRule_24(
179437            p_application_id           => p_application_id
179438          , p_ae_header_id             => l_ae_header_id 
179439 , p_source_3 => p_source_3
179440 , p_source_3_meaning => p_source_3_meaning
179441 , p_source_31 => p_source_31
179442          , x_transaction_coa_id       => l_adr_transaction_coa_id
179443          , x_accounting_coa_id        => l_adr_accounting_coa_id
179444          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
179445          , x_flex_value_set_id        => l_adr_flex_value_set_id
179446          , x_value_type_code          => l_adr_value_type_code
179447          , x_value_combination_id     => l_adr_value_combination_id
179448          , x_value_segment_code       => l_adr_value_segment_code
179449          , p_side                     => 'NA'
179450          , p_override_seg_flag        => 'Y'
179451    );
179452 
179453    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
179454 
179455       xla_ae_lines_pkg.set_segment(
179456           p_to_segment_code         => 'GL_BALANCING'
179457         , p_segment_value           => l_segment
179458         , p_from_segment_code       => l_adr_value_segment_code
179459         , p_from_combination_id     => l_adr_value_combination_id
179460         , p_value_type_code         => l_adr_value_type_code
179461         , p_transaction_coa_id      => l_adr_transaction_coa_id
179462         , p_accounting_coa_id       => l_adr_accounting_coa_id
179463         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
179464         , p_flex_value_set_id       => l_adr_flex_value_set_id
179465         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
179466         , p_adr_type_code           => 'S'
179467         , p_component_type          => l_component_type
179468         , p_component_code          => l_component_code
179469         , p_component_type_code     => l_component_type_code
179470         , p_component_appl_id       => l_component_appl_id
179471         , p_amb_context_code        => l_amb_context_code
179472         , p_entity_code             => 'AP_INVOICES'
179473         , p_event_class_code        => 'CREDIT MEMOS'
179474         , p_side                    => 'NA'
179475         );
179476 
179477   END IF;
179478 
179479    --
179480    --
179481    END IF;
179482    --
179483    -- Bug 4922099
179484    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
179485           (NVL(l_enc_upg_option, 'N') = 'O')
179486         ) AND
179487         (l_bflow_method_code = 'PRIOR_ENTRY')
179488       )
179489    THEN
179490       IF
179491       --
179492       1 = 2
179493       --
179494       THEN
179495       xla_accounting_err_pkg.build_message
179496                                     (p_appli_s_name            => 'XLA'
179497                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
179498                                     ,p_token_1                 => 'LINE_NUMBER'
179499                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
179500                                     ,p_token_2                 => 'LINE_TYPE_NAME'
179501                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
179502                                                                              l_component_type
179503                                                                             ,l_component_code
179504                                                                             ,l_component_type_code
179505                                                                             ,l_component_appl_id
179506                                                                             ,l_amb_context_code
179507                                                                             ,l_entity_code
179508                                                                             ,l_event_class_code
179509                                                                            )
179510                                     ,p_token_3                 => 'OWNER'
179511                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
179512                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
179513                                                                           ,p_lookup_code    => l_component_type_code
179514                                                                          )
179515                                     ,p_token_4                 => 'PRODUCT_NAME'
179516                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
179517                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
179521                                        );
179518                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
179519                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
179520                                     ,p_ae_header_id            =>  NULL
179522 
179523         IF (C_LEVEL_ERROR>= g_log_level) THEN
179524                  trace
179525                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
179526                       ,p_level    => C_LEVEL_ERROR
179527                       ,p_module   => l_log_module);
179528         END IF;
179529       END IF;
179530    END IF;
179531    --
179532    --
179533    ------------------------------------------------------------------------------------------------
179534    -- 4219869 Business Flow
179535    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
179536    -- Prior Entry.  Currently, the following code is always generated.
179537    ------------------------------------------------------------------------------------------------
179538    XLA_AE_LINES_PKG.ValidateCurrentLine;
179539 
179540    ------------------------------------------------------------------------------------
179541    -- 4219869 Business Flow
179542    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
179543    ------------------------------------------------------------------------------------
179544    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
179545 
179546    ----------------------------------------------------------------------------------
179547    -- 4219869 Business Flow
179548    -- Update journal entry status -- Need to generate this within IF <condition>
179549    ----------------------------------------------------------------------------------
179550    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
179551          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
179552          ,p_balance_type_code => l_balance_type_code
179553          );
179554 
179555    -------------------------------------------------------------------------------------------
179556    -- 4262811 - Generate the Accrual Reversal lines
179557    -------------------------------------------------------------------------------------------
179558    BEGIN
179559       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
179560                               (g_array_event(p_event_id).array_value_num('header_index'));
179561       IF l_acc_rev_flag IS NULL THEN
179562          l_acc_rev_flag := 'N';
179563       END IF;
179564    EXCEPTION
179565       WHEN OTHERS THEN
179566          l_acc_rev_flag := 'N';
179567    END;
179568    --
179569    IF (l_acc_rev_flag = 'Y') THEN
179570 
179571        -- 4645092  ------------------------------------------------------------------------------
179572        -- To allow MPA report to determine if it should generate report process
179573        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
179574        ------------------------------------------------------------------------------------------
179575 
179576        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
179577        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
179578    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
179579    -- call ADRs
179580    -- Bug 4922099
179581    --
179582    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
179583         (NVL(l_actual_upg_option, 'N') = 'O') OR
179584         (NVL(l_enc_upg_option, 'N') = 'O')
179585       )
179586    THEN
179587    NULL;
179588    --
179589    --
179590    
179591   l_ccid := AcctDerRule_45(
179592            p_application_id           => p_application_id
179593          , p_ae_header_id             => l_ae_header_id 
179594 , p_source_3 => p_source_3
179595 , p_source_3_meaning => p_source_3_meaning
179596 , p_source_18 => p_source_18
179597 , p_source_31 => p_source_31
179598          , x_transaction_coa_id       => l_adr_transaction_coa_id
179599          , x_accounting_coa_id        => l_adr_accounting_coa_id
179600          , x_value_type_code          => l_adr_value_type_code
179601          , p_side                     => 'NA'
179602    );
179603 
179604    xla_ae_lines_pkg.set_ccid(
179605     p_code_combination_id          => l_ccid
179606   , p_value_type_code              => l_adr_value_type_code
179607   , p_transaction_coa_id           => l_adr_transaction_coa_id
179608   , p_accounting_coa_id            => l_adr_accounting_coa_id
179609   , p_adr_code                     => 'AP_WH_DIST_ACCT'
179610   , p_adr_type_code                => 'S'
179611   , p_component_type               => l_component_type
179612   , p_component_code               => l_component_code
179613   , p_component_type_code          => l_component_type_code
179614   , p_component_appl_id            => l_component_appl_id
179615   , p_amb_context_code             => l_amb_context_code
179616   , p_side                         => 'NA'
179617   );
179618 
179619 
179620    l_segment := AcctDerRule_13(
179621            p_application_id           => p_application_id
179622          , p_ae_header_id             => l_ae_header_id 
179623 , p_source_3 => p_source_3
179624 , p_source_3_meaning => p_source_3_meaning
179625 , p_source_18 => p_source_18
179626          , x_transaction_coa_id       => l_adr_transaction_coa_id
179627          , x_accounting_coa_id        => l_adr_accounting_coa_id
179628          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
179629          , x_flex_value_set_id        => l_adr_flex_value_set_id
179630          , x_value_type_code          => l_adr_value_type_code
179631          , x_value_combination_id     => l_adr_value_combination_id
179632          , x_value_segment_code       => l_adr_value_segment_code
179633          , p_side                     => 'NA'
179637    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
179634          , p_override_seg_flag        => 'Y'
179635    );
179636 
179638 
179639       xla_ae_lines_pkg.set_segment(
179640           p_to_segment_code         => 'GL_ACCOUNT'
179641         , p_segment_value           => l_segment
179642         , p_from_segment_code       => l_adr_value_segment_code
179643         , p_from_combination_id     => l_adr_value_combination_id
179644         , p_value_type_code         => l_adr_value_type_code
179645         , p_transaction_coa_id      => l_adr_transaction_coa_id
179646         , p_accounting_coa_id       => l_adr_accounting_coa_id
179647         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
179648         , p_flex_value_set_id       => l_adr_flex_value_set_id
179649         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
179650         , p_adr_type_code           => 'S'
179651         , p_component_type          => l_component_type
179652         , p_component_code          => l_component_code
179653         , p_component_type_code     => l_component_type_code
179654         , p_component_appl_id       => l_component_appl_id
179655         , p_amb_context_code        => l_amb_context_code
179656         , p_entity_code             => 'AP_INVOICES'
179657         , p_event_class_code        => 'CREDIT MEMOS'
179658         , p_side                    => 'NA'
179659         );
179660 
179661   END IF;
179662 
179663    l_segment := AcctDerRule_24(
179664            p_application_id           => p_application_id
179665          , p_ae_header_id             => l_ae_header_id 
179666 , p_source_3 => p_source_3
179667 , p_source_3_meaning => p_source_3_meaning
179668 , p_source_31 => p_source_31
179669          , x_transaction_coa_id       => l_adr_transaction_coa_id
179670          , x_accounting_coa_id        => l_adr_accounting_coa_id
179671          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
179672          , x_flex_value_set_id        => l_adr_flex_value_set_id
179673          , x_value_type_code          => l_adr_value_type_code
179674          , x_value_combination_id     => l_adr_value_combination_id
179675          , x_value_segment_code       => l_adr_value_segment_code
179676          , p_side                     => 'NA'
179677          , p_override_seg_flag        => 'Y'
179678    );
179679 
179680    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
179681 
179682       xla_ae_lines_pkg.set_segment(
179683           p_to_segment_code         => 'GL_BALANCING'
179684         , p_segment_value           => l_segment
179685         , p_from_segment_code       => l_adr_value_segment_code
179686         , p_from_combination_id     => l_adr_value_combination_id
179687         , p_value_type_code         => l_adr_value_type_code
179688         , p_transaction_coa_id      => l_adr_transaction_coa_id
179689         , p_accounting_coa_id       => l_adr_accounting_coa_id
179690         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
179691         , p_flex_value_set_id       => l_adr_flex_value_set_id
179692         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
179693         , p_adr_type_code           => 'S'
179694         , p_component_type          => l_component_type
179695         , p_component_code          => l_component_code
179696         , p_component_type_code     => l_component_type_code
179697         , p_component_appl_id       => l_component_appl_id
179698         , p_amb_context_code        => l_amb_context_code
179699         , p_entity_code             => 'AP_INVOICES'
179700         , p_event_class_code        => 'CREDIT MEMOS'
179701         , p_side                    => 'NA'
179702         );
179703 
179704   END IF;
179705 
179706    --
179707    --
179708    END IF;
179709 
179710        --
179711        -- Update the line information that should be overwritten
179712        --
179713        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
179714                                          p_header_num   => 1);
179715        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
179716 
179717        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
179718 
179719        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
179720           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
179721        END IF;
179722 
179723       --
179724       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
179725       --
179726       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
179727           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
179728       ELSE
179729           ---------------------------------------------------------------------------------------------------
179730           -- 4262811a Switch Sign
179731           ---------------------------------------------------------------------------------------------------
179732           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
179733           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
179734                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
179735           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
179736                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
179737           -- 5132302
179738           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
179739                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
179740 
179741       END IF;
179742 
179743       -- 4955764
179747 
179744       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
179745       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
179746 
179748       XLA_AE_LINES_PKG.ValidateCurrentLine;
179749       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
179750 
179751       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
179752                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
179753                ,p_balance_type_code => l_balance_type_code);
179754 
179755    END IF;
179756 
179757    -----------------------------------------------------------------------------------------
179758    -- 4262811 Multiperiod Accounting
179759    -----------------------------------------------------------------------------------------
179760      -- No MPA option is assigned.
179761 
179762 
179763 END IF;
179764 END IF;
179765 --
179766 
179767 --
179768 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
179769    trace
179770       (p_msg      => 'END of AcctLineType_287'
179771       ,p_level    => C_LEVEL_PROCEDURE
179772       ,p_module   => l_log_module);
179773 END IF;
179774 --
179775 EXCEPTION
179776   WHEN xla_exceptions_pkg.application_exception THEN
179777       RAISE;
179778   WHEN OTHERS THEN
179779        xla_exceptions_pkg.raise_message
179780            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_287');
179781 END AcctLineType_287;
179782 --
179783 
179784 ---------------------------------------
179785 --
179786 -- PRIVATE FUNCTION
179787 --         AcctLineType_288
179788 --
179789 ---------------------------------------
179790 PROCEDURE AcctLineType_288 (
179791   p_application_id        IN NUMBER
179792  ,p_event_id              IN NUMBER
179793  ,p_calculate_acctd_flag  IN VARCHAR2
179794  ,p_calculate_g_l_flag    IN VARCHAR2
179795  ,p_actual_flag           IN OUT VARCHAR2
179796  ,p_balance_type_code     OUT VARCHAR2
179797  ,p_gain_or_loss_ref      OUT VARCHAR2
179798  
179799 --Invoice Distribution Description
179800  , p_source_1            IN VARCHAR2
179801 --Automatic Offsets Value
179802  , p_source_3            IN VARCHAR2
179803  , p_source_3_meaning    IN VARCHAR2
179804 --Invoice Distribution Ledger Amount
179805  , p_source_9            IN NUMBER
179806 --Invoice Distribution Account
179807  , p_source_18            IN NUMBER
179808 --Invoice Distribution Type
179809  , p_source_21            IN VARCHAR2
179810  , p_source_21_meaning    IN VARCHAR2
179811 --Withholding Related Distribution Account
179812  , p_source_31            IN NUMBER
179813 --Accounting Reversal Indicator
179814  , p_source_41            IN VARCHAR2
179815 --Distribution Link Type
179816  , p_source_43            IN VARCHAR2
179817 --Allocation to Main Distribution Identifier
179818  , p_source_45            IN NUMBER
179819 --Invoice Identifier
179820  , p_source_46            IN NUMBER
179821 --Invoice Distribution Identifier
179822  , p_source_52            IN NUMBER
179823 --Payables Encumbrance Upgrade Credit Account
179824  , p_source_53            IN NUMBER
179825 --Payables Encumbrance Upgrade Credit Amount
179826  , p_source_54            IN NUMBER
179827 --Invoice Currency Code
179828  , p_source_55            IN VARCHAR2
179829 --Payables Encumbrance Upgrade Credit Base Amount
179830  , p_source_56            IN NUMBER
179831 --Payables Encumbrance Upgrade Debit Account
179832  , p_source_57            IN NUMBER
179833 --Payables Encumbrance Upgrade Debit Amount
179834  , p_source_58            IN NUMBER
179835 --Payables Encumbrance Upgrade Debit Base Amount
179836  , p_source_59            IN NUMBER
179837 --Payables Encumbrance Upgrade Option
179838  , p_source_60            IN VARCHAR2
179839 --Invoice Distribution Amount
179840  , p_source_61            IN NUMBER
179841 --Deferred Accounting End Date
179842  , p_source_65            IN DATE
179843 --Deferred Accounting Option
179844  , p_source_66            IN VARCHAR2
179845 --Deferred Accounting Start Date
179846  , p_source_67            IN DATE
179847 --Override Accounted Amount Indicator
179848  , p_source_68            IN VARCHAR2
179849  , p_source_68_meaning    IN VARCHAR2
179850 --Invoice Supplier Identifier
179851  , p_source_69            IN NUMBER
179852 --Invoice Supplier Site Identifier
179853  , p_source_70            IN NUMBER
179854 --Third Party Type
179855  , p_source_71            IN VARCHAR2
179856 --Parent Reversal Identifier
179857  , p_source_72            IN NUMBER
179858 --Invoice Distribution Tax Line Identifier
179859  , p_source_74            IN NUMBER
179860 --Invoice Distribution Tax Distribution Identifier from Tax
179861  , p_source_75            IN NUMBER
179862 --Invoice Distribution Summary Tax Line Identifier
179863  , p_source_76            IN NUMBER
179864 --Payables Upgrade Credit Encumbrance Type Identifier
179865  , p_source_77            IN NUMBER
179866 --Payables Upgrade Debit Encumbrance Type Identifier
179867  , p_source_78            IN NUMBER
179868 --Business Flow Accounts Payable Application Identifier
179869  , p_source_79            IN NUMBER
179870 --Business Flow Invoice Distribution Type
179871  , p_source_80            IN VARCHAR2
179872 --Business Flow Invoice Entity Code
179873  , p_source_81            IN VARCHAR2
179874 --Business Flow Invoice Distribution Identifier
179875  , p_source_82            IN NUMBER
179876 --Business Flow Invoice Identifier
179877  , p_source_83            IN NUMBER
179878 --Invoice Exchange Date
179879  , p_source_136            IN DATE
179880 --Invoice Exchange Rate
179881  , p_source_137            IN NUMBER
179882 --Invoice Exchange Rate Type
179883  , p_source_138            IN VARCHAR2
179884 )
179885 IS
179886 
179890 l_component_appl_id           INTEGER;
179887 l_component_type              VARCHAR2(80);
179888 l_component_code              VARCHAR2(30);
179889 l_component_type_code         VARCHAR2(1);
179891 l_amb_context_code            VARCHAR2(30);
179892 l_entity_code                 VARCHAR2(30);
179893 l_event_class_code            VARCHAR2(30);
179894 l_ae_header_id                NUMBER;
179895 l_event_type_code             VARCHAR2(30);
179896 l_line_definition_code        VARCHAR2(30);
179897 l_line_definition_owner_code  VARCHAR2(1);
179898 --
179899 -- adr variables
179900 l_segment                     VARCHAR2(30);
179901 l_ccid                        NUMBER;
179902 l_adr_transaction_coa_id      NUMBER;
179903 l_adr_accounting_coa_id       NUMBER;
179904 l_adr_flexfield_segment_code  VARCHAR2(30);
179905 l_adr_flex_value_set_id       NUMBER;
179906 l_adr_value_type_code         VARCHAR2(30);
179907 l_adr_value_combination_id    NUMBER;
179908 l_adr_value_segment_code      VARCHAR2(30);
179909 
179910 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
179911 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
179912 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
179913 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
179914 
179915 -- 4262811 Variables ------------------------------------------------------------------------------------------
179916 l_entered_amt_idx             NUMBER;
179917 l_accted_amt_idx              NUMBER;
179918 l_acc_rev_flag                VARCHAR2(1);
179919 l_accrual_line_num            NUMBER;
179920 l_tmp_amt                     NUMBER;
179921 l_acc_rev_natural_side_code   VARCHAR2(1);
179922 
179923 l_num_entries                 NUMBER;
179924 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
179925 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
179926 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
179927 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
179928 l_recog_line_1                NUMBER;
179929 l_recog_line_2                NUMBER;
179930 
179931 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
179932 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
179933 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
179934 
179935 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
179936 
179937 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
179938 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
179939 
179940 ---------------------------------------------------------------------------------------------------------------
179941 
179942 
179943 --
179944 -- bulk performance
179945 --
179946 l_balance_type_code           VARCHAR2(1);
179947 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
179948 l_log_module                  VARCHAR2(240);
179949 
179950 --
179951 -- Upgrade strategy
179952 --
179953 l_actual_upg_option           VARCHAR2(1);
179954 l_enc_upg_option           VARCHAR2(1);
179955 
179956 --
179957 BEGIN
179958 --
179959 IF g_log_enabled THEN
179960       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_288';
179961 END IF;
179962 --
179963 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
179964 
179965       trace
179966          (p_msg      => 'BEGIN of AcctLineType_288'
179967          ,p_level    => C_LEVEL_PROCEDURE
179968          ,p_module   => l_log_module);
179969 
179970 END IF;
179971 --
179972 l_component_type             := 'AMB_JLT';
179973 l_component_code             := 'AP_WITHHOLD_TAX_DM';
179974 l_component_type_code        := 'S';
179975 l_component_appl_id          :=  200;
179976 l_amb_context_code           := 'DEFAULT';
179977 l_entity_code                := 'AP_INVOICES';
179978 l_event_class_code           := 'DEBIT MEMOS';
179979 l_event_type_code            := 'DEBIT MEMOS_ALL';
179980 l_line_definition_owner_code := 'S';
179981 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
179982 --
179983 l_balance_type_code          := 'A';
179984 l_segment                     := NULL;
179985 l_ccid                        := NULL;
179986 l_adr_transaction_coa_id      := NULL;
179987 l_adr_accounting_coa_id       := NULL;
179988 l_adr_flexfield_segment_code  := NULL;
179989 l_adr_flex_value_set_id       := NULL;
179990 l_adr_value_type_code         := NULL;
179991 l_adr_value_combination_id    := NULL;
179992 l_adr_value_segment_code      := NULL;
179993 
179994 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
179995 l_bflow_class_code           := '';    -- 4219869 Business Flow
179996 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
179997 l_budgetary_control_flag     := 'N';
179998 
179999 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
180000 l_bflow_applied_to_amt       := NULL; -- 5132302
180001 l_entered_amt_idx            := NULL;          -- 4262811
180002 l_accted_amt_idx             := NULL;          -- 4262811
180003 l_acc_rev_flag               := NULL;          -- 4262811
180004 l_accrual_line_num           := NULL;          -- 4262811
180005 l_tmp_amt                    := NULL;          -- 4262811
180006 --
180007  
180008 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
180009     l_balance_type_code <> 'B' THEN
180010 IF NVL(p_source_21,'
180011 ') =  'AWT'
180012  THEN 
180013 
180014    --
180015    XLA_AE_LINES_PKG.SetNewLine;
180016 
180017    p_balance_type_code          := l_balance_type_code;
180018    -- set the flag so later we will know whether the gain loss line needs to be created
180019    
180023 
180020    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
180021      p_actual_flag :='A';
180022    END IF;
180024    --
180025    -- bulk performance
180026    --
180027    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
180028                                       p_header_num   => 0); -- 4262811
180029    --
180030    -- set accounting line options
180031    --
180032    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
180033            p_natural_side_code          => 'D'
180034          , p_gain_or_loss_flag          => 'N'
180035          , p_gl_transfer_mode_code      => 'S'
180036          , p_acct_entry_type_code       => 'A'
180037          , p_switch_side_flag           => 'Y'
180038          , p_merge_duplicate_code       => 'A'
180039          );
180040    --
180041    l_acc_rev_natural_side_code := 'C';  -- 4262811
180042    -- 
180043    --
180044    -- set accounting line type info
180045    --
180046    xla_ae_lines_pkg.SetAcctLineType
180047       (p_component_type             => l_component_type
180048       ,p_event_type_code            => l_event_type_code
180049       ,p_line_definition_owner_code => l_line_definition_owner_code
180050       ,p_line_definition_code       => l_line_definition_code
180051       ,p_accounting_line_code       => l_component_code
180052       ,p_accounting_line_type_code  => l_component_type_code
180053       ,p_accounting_line_appl_id    => l_component_appl_id
180054       ,p_amb_context_code           => l_amb_context_code
180055       ,p_entity_code                => l_entity_code
180056       ,p_event_class_code           => l_event_class_code);
180057    --
180058    -- set accounting class
180059    --
180060    xla_ae_lines_pkg.SetAcctClass(
180061            p_accounting_class_code  => 'AWT'
180062          , p_ae_header_id           => l_ae_header_id
180063          );
180064 
180065    --
180066    -- set rounding class
180067    --
180068    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
180069                       'AWT';
180070 
180071    --
180072    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
180073    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
180074    --
180075    -- bulk performance
180076    --
180077    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
180078 
180079    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
180080       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
180081 
180082    -- 4955764
180083    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
180084       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
180085 
180086    -- 4458381 Public Sector Enh
180087    
180088    --
180089    -- set accounting attributes for the line type
180090    --
180091    l_entered_amt_idx := 23;
180092    l_accted_amt_idx  := 28;
180093    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
180094    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
180095    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
180096    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
180097    l_rec_acct_attrs.array_num_value(2)  := 
180098 xla_ae_sources_pkg.GetSystemSourceNum(
180099    p_source_code           => 'XLA_EVENT_APPL_ID'
180100  , p_source_type_code      => 'Y'
180101  , p_source_application_id =>  602
180102 );
180103    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
180104    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
180105    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
180106    l_rec_acct_attrs.array_char_value(4)  := 
180107 xla_ae_sources_pkg.GetSystemSourceChar(
180108    p_source_code           => 'XLA_ENTITY_CODE'
180109  , p_source_type_code      => 'Y'
180110  , p_source_application_id =>  602
180111 );
180112    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
180113    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
180114    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
180115    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
180116    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
180117    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
180118    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
180119    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
180120    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
180121    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
180122    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
180123    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
180124    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
180125    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
180126    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
180127    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
180128    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
180129    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
180130    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
180131    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
180132    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
180133    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
180134    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
180135    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
180136    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
180137    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
180141    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
180138    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
180139    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
180140    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
180142    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
180143    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
180144    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
180145    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
180146    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
180147    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
180148    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
180149    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
180150    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
180151    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
180152    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
180153    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
180154    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
180155    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
180156    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
180157    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
180158    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
180159    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
180160    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
180161    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
180162    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
180163    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
180164    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
180165    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
180166    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
180167    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
180168    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
180169    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
180170    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
180171    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
180172    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
180173    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
180174    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
180175    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
180176    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
180177    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
180178    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
180179    l_rec_acct_attrs.array_num_value(38)  := p_source_74;
180180    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
180181    l_rec_acct_attrs.array_num_value(39)  := p_source_75;
180182    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
180183    l_rec_acct_attrs.array_num_value(40)  := p_source_76;
180184    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
180185    l_rec_acct_attrs.array_num_value(41)  := p_source_77;
180186    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
180187    l_rec_acct_attrs.array_num_value(42)  := p_source_78;
180188 
180189    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
180190    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
180191 
180192    ---------------------------------------------------------------------------------------------------------------
180193    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
180194    ---------------------------------------------------------------------------------------------------------------
180195    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
180196 
180197    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
180198    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
180199 
180200    IF xla_accounting_cache_pkg.GetValueChar
180201          (p_source_code         => 'LEDGER_CATEGORY_CODE'
180202          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
180203    AND l_bflow_method_code = 'PRIOR_ENTRY'
180204 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
180205    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
180206          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
180207        )
180208    THEN
180209          xla_ae_lines_pkg.BflowUpgEntry
180210            (p_business_method_code    => l_bflow_method_code
180211            ,p_business_class_code     => l_bflow_class_code
180212            ,p_balance_type            => l_balance_type_code);
180213    ELSE
180214       NULL;
180215 -- No business flow processing for business flow method of NONE.
180216    END IF;
180217 
180218    --
180219    -- call analytical criteria
180220    --
180221    
180222    --
180223    -- call description
180224    --
180225    
180226 xla_ae_lines_pkg.SetLineDescription(
180227    p_ae_header_id => l_ae_header_id
180228   ,p_description  => Description_2 (
180229      p_application_id         => p_application_id
180230    , p_ae_header_id           => l_ae_header_id 
180231 , p_source_1 => p_source_1
180232    )
180233 );
180234 
180235 
180236    --
180237    -- call ADRs
180238    -- Bug 4922099
180239    --
180240    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
180241         (NVL(l_actual_upg_option, 'N') = 'O') OR
180242         (NVL(l_enc_upg_option, 'N') = 'O')
180243       )
180244    THEN
180245    NULL;
180246    --
180247    --
180248    
180252 , p_source_3 => p_source_3
180249   l_ccid := AcctDerRule_45(
180250            p_application_id           => p_application_id
180251          , p_ae_header_id             => l_ae_header_id 
180253 , p_source_3_meaning => p_source_3_meaning
180254 , p_source_18 => p_source_18
180255 , p_source_31 => p_source_31
180256          , x_transaction_coa_id       => l_adr_transaction_coa_id
180257          , x_accounting_coa_id        => l_adr_accounting_coa_id
180258          , x_value_type_code          => l_adr_value_type_code
180259          , p_side                     => 'NA'
180260    );
180261 
180262    xla_ae_lines_pkg.set_ccid(
180263     p_code_combination_id          => l_ccid
180264   , p_value_type_code              => l_adr_value_type_code
180265   , p_transaction_coa_id           => l_adr_transaction_coa_id
180266   , p_accounting_coa_id            => l_adr_accounting_coa_id
180267   , p_adr_code                     => 'AP_WH_DIST_ACCT'
180268   , p_adr_type_code                => 'S'
180269   , p_component_type               => l_component_type
180270   , p_component_code               => l_component_code
180271   , p_component_type_code          => l_component_type_code
180272   , p_component_appl_id            => l_component_appl_id
180273   , p_amb_context_code             => l_amb_context_code
180274   , p_side                         => 'NA'
180275   );
180276 
180277 
180278    l_segment := AcctDerRule_13(
180279            p_application_id           => p_application_id
180280          , p_ae_header_id             => l_ae_header_id 
180281 , p_source_3 => p_source_3
180282 , p_source_3_meaning => p_source_3_meaning
180283 , p_source_18 => p_source_18
180284          , x_transaction_coa_id       => l_adr_transaction_coa_id
180285          , x_accounting_coa_id        => l_adr_accounting_coa_id
180286          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
180287          , x_flex_value_set_id        => l_adr_flex_value_set_id
180288          , x_value_type_code          => l_adr_value_type_code
180289          , x_value_combination_id     => l_adr_value_combination_id
180290          , x_value_segment_code       => l_adr_value_segment_code
180291          , p_side                     => 'NA'
180292          , p_override_seg_flag        => 'Y'
180293    );
180294 
180295    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
180296 
180297       xla_ae_lines_pkg.set_segment(
180298           p_to_segment_code         => 'GL_ACCOUNT'
180299         , p_segment_value           => l_segment
180300         , p_from_segment_code       => l_adr_value_segment_code
180301         , p_from_combination_id     => l_adr_value_combination_id
180302         , p_value_type_code         => l_adr_value_type_code
180303         , p_transaction_coa_id      => l_adr_transaction_coa_id
180304         , p_accounting_coa_id       => l_adr_accounting_coa_id
180305         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
180306         , p_flex_value_set_id       => l_adr_flex_value_set_id
180307         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
180308         , p_adr_type_code           => 'S'
180309         , p_component_type          => l_component_type
180310         , p_component_code          => l_component_code
180311         , p_component_type_code     => l_component_type_code
180312         , p_component_appl_id       => l_component_appl_id
180313         , p_amb_context_code        => l_amb_context_code
180314         , p_entity_code             => 'AP_INVOICES'
180315         , p_event_class_code        => 'DEBIT MEMOS'
180316         , p_side                    => 'NA'
180317         );
180318 
180319   END IF;
180320 
180321    l_segment := AcctDerRule_24(
180322            p_application_id           => p_application_id
180323          , p_ae_header_id             => l_ae_header_id 
180324 , p_source_3 => p_source_3
180325 , p_source_3_meaning => p_source_3_meaning
180326 , p_source_31 => p_source_31
180327          , x_transaction_coa_id       => l_adr_transaction_coa_id
180328          , x_accounting_coa_id        => l_adr_accounting_coa_id
180329          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
180330          , x_flex_value_set_id        => l_adr_flex_value_set_id
180331          , x_value_type_code          => l_adr_value_type_code
180332          , x_value_combination_id     => l_adr_value_combination_id
180333          , x_value_segment_code       => l_adr_value_segment_code
180334          , p_side                     => 'NA'
180335          , p_override_seg_flag        => 'Y'
180336    );
180337 
180338    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
180339 
180340       xla_ae_lines_pkg.set_segment(
180341           p_to_segment_code         => 'GL_BALANCING'
180342         , p_segment_value           => l_segment
180343         , p_from_segment_code       => l_adr_value_segment_code
180344         , p_from_combination_id     => l_adr_value_combination_id
180345         , p_value_type_code         => l_adr_value_type_code
180346         , p_transaction_coa_id      => l_adr_transaction_coa_id
180347         , p_accounting_coa_id       => l_adr_accounting_coa_id
180348         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
180349         , p_flex_value_set_id       => l_adr_flex_value_set_id
180350         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
180351         , p_adr_type_code           => 'S'
180352         , p_component_type          => l_component_type
180353         , p_component_code          => l_component_code
180354         , p_component_type_code     => l_component_type_code
180355         , p_component_appl_id       => l_component_appl_id
180356         , p_amb_context_code        => l_amb_context_code
180357         , p_entity_code             => 'AP_INVOICES'
180358         , p_event_class_code        => 'DEBIT MEMOS'
180359         , p_side                    => 'NA'
180360         );
180361 
180362   END IF;
180363 
180364    --
180365    --
180369    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
180366    END IF;
180367    --
180368    -- Bug 4922099
180370           (NVL(l_enc_upg_option, 'N') = 'O')
180371         ) AND
180372         (l_bflow_method_code = 'PRIOR_ENTRY')
180373       )
180374    THEN
180375       IF
180376       --
180377       1 = 2
180378       --
180379       THEN
180380       xla_accounting_err_pkg.build_message
180381                                     (p_appli_s_name            => 'XLA'
180382                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
180383                                     ,p_token_1                 => 'LINE_NUMBER'
180384                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
180385                                     ,p_token_2                 => 'LINE_TYPE_NAME'
180386                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
180387                                                                              l_component_type
180388                                                                             ,l_component_code
180389                                                                             ,l_component_type_code
180390                                                                             ,l_component_appl_id
180391                                                                             ,l_amb_context_code
180392                                                                             ,l_entity_code
180393                                                                             ,l_event_class_code
180394                                                                            )
180395                                     ,p_token_3                 => 'OWNER'
180396                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
180397                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
180398                                                                           ,p_lookup_code    => l_component_type_code
180399                                                                          )
180400                                     ,p_token_4                 => 'PRODUCT_NAME'
180401                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
180402                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
180403                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
180404                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
180405                                     ,p_ae_header_id            =>  NULL
180406                                        );
180407 
180408         IF (C_LEVEL_ERROR>= g_log_level) THEN
180409                  trace
180410                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
180411                       ,p_level    => C_LEVEL_ERROR
180412                       ,p_module   => l_log_module);
180413         END IF;
180414       END IF;
180415    END IF;
180416    --
180417    --
180418    ------------------------------------------------------------------------------------------------
180419    -- 4219869 Business Flow
180420    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
180421    -- Prior Entry.  Currently, the following code is always generated.
180422    ------------------------------------------------------------------------------------------------
180423    XLA_AE_LINES_PKG.ValidateCurrentLine;
180424 
180425    ------------------------------------------------------------------------------------
180426    -- 4219869 Business Flow
180427    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
180428    ------------------------------------------------------------------------------------
180429    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
180430 
180431    ----------------------------------------------------------------------------------
180432    -- 4219869 Business Flow
180433    -- Update journal entry status -- Need to generate this within IF <condition>
180434    ----------------------------------------------------------------------------------
180435    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
180436          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
180437          ,p_balance_type_code => l_balance_type_code
180438          );
180439 
180440    -------------------------------------------------------------------------------------------
180441    -- 4262811 - Generate the Accrual Reversal lines
180442    -------------------------------------------------------------------------------------------
180443    BEGIN
180444       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
180445                               (g_array_event(p_event_id).array_value_num('header_index'));
180446       IF l_acc_rev_flag IS NULL THEN
180447          l_acc_rev_flag := 'N';
180448       END IF;
180449    EXCEPTION
180450       WHEN OTHERS THEN
180451          l_acc_rev_flag := 'N';
180452    END;
180453    --
180454    IF (l_acc_rev_flag = 'Y') THEN
180455 
180456        -- 4645092  ------------------------------------------------------------------------------
180457        -- To allow MPA report to determine if it should generate report process
180458        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
180459        ------------------------------------------------------------------------------------------
180460 
180461        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
180462        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
180463    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
180464    -- call ADRs
180465    -- Bug 4922099
180466    --
180467    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
180471    THEN
180468         (NVL(l_actual_upg_option, 'N') = 'O') OR
180469         (NVL(l_enc_upg_option, 'N') = 'O')
180470       )
180472    NULL;
180473    --
180474    --
180475    
180476   l_ccid := AcctDerRule_45(
180477            p_application_id           => p_application_id
180478          , p_ae_header_id             => l_ae_header_id 
180479 , p_source_3 => p_source_3
180480 , p_source_3_meaning => p_source_3_meaning
180481 , p_source_18 => p_source_18
180482 , p_source_31 => p_source_31
180483          , x_transaction_coa_id       => l_adr_transaction_coa_id
180484          , x_accounting_coa_id        => l_adr_accounting_coa_id
180485          , x_value_type_code          => l_adr_value_type_code
180486          , p_side                     => 'NA'
180487    );
180488 
180489    xla_ae_lines_pkg.set_ccid(
180490     p_code_combination_id          => l_ccid
180491   , p_value_type_code              => l_adr_value_type_code
180492   , p_transaction_coa_id           => l_adr_transaction_coa_id
180493   , p_accounting_coa_id            => l_adr_accounting_coa_id
180494   , p_adr_code                     => 'AP_WH_DIST_ACCT'
180495   , p_adr_type_code                => 'S'
180496   , p_component_type               => l_component_type
180497   , p_component_code               => l_component_code
180498   , p_component_type_code          => l_component_type_code
180499   , p_component_appl_id            => l_component_appl_id
180500   , p_amb_context_code             => l_amb_context_code
180501   , p_side                         => 'NA'
180502   );
180503 
180504 
180505    l_segment := AcctDerRule_13(
180506            p_application_id           => p_application_id
180507          , p_ae_header_id             => l_ae_header_id 
180508 , p_source_3 => p_source_3
180509 , p_source_3_meaning => p_source_3_meaning
180510 , p_source_18 => p_source_18
180511          , x_transaction_coa_id       => l_adr_transaction_coa_id
180512          , x_accounting_coa_id        => l_adr_accounting_coa_id
180513          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
180514          , x_flex_value_set_id        => l_adr_flex_value_set_id
180515          , x_value_type_code          => l_adr_value_type_code
180516          , x_value_combination_id     => l_adr_value_combination_id
180517          , x_value_segment_code       => l_adr_value_segment_code
180518          , p_side                     => 'NA'
180519          , p_override_seg_flag        => 'Y'
180520    );
180521 
180522    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
180523 
180524       xla_ae_lines_pkg.set_segment(
180525           p_to_segment_code         => 'GL_ACCOUNT'
180526         , p_segment_value           => l_segment
180527         , p_from_segment_code       => l_adr_value_segment_code
180528         , p_from_combination_id     => l_adr_value_combination_id
180529         , p_value_type_code         => l_adr_value_type_code
180530         , p_transaction_coa_id      => l_adr_transaction_coa_id
180531         , p_accounting_coa_id       => l_adr_accounting_coa_id
180532         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
180533         , p_flex_value_set_id       => l_adr_flex_value_set_id
180534         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
180535         , p_adr_type_code           => 'S'
180536         , p_component_type          => l_component_type
180537         , p_component_code          => l_component_code
180538         , p_component_type_code     => l_component_type_code
180539         , p_component_appl_id       => l_component_appl_id
180540         , p_amb_context_code        => l_amb_context_code
180541         , p_entity_code             => 'AP_INVOICES'
180542         , p_event_class_code        => 'DEBIT MEMOS'
180543         , p_side                    => 'NA'
180544         );
180545 
180546   END IF;
180547 
180548    l_segment := AcctDerRule_24(
180549            p_application_id           => p_application_id
180550          , p_ae_header_id             => l_ae_header_id 
180551 , p_source_3 => p_source_3
180552 , p_source_3_meaning => p_source_3_meaning
180553 , p_source_31 => p_source_31
180554          , x_transaction_coa_id       => l_adr_transaction_coa_id
180555          , x_accounting_coa_id        => l_adr_accounting_coa_id
180556          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
180557          , x_flex_value_set_id        => l_adr_flex_value_set_id
180558          , x_value_type_code          => l_adr_value_type_code
180559          , x_value_combination_id     => l_adr_value_combination_id
180560          , x_value_segment_code       => l_adr_value_segment_code
180561          , p_side                     => 'NA'
180562          , p_override_seg_flag        => 'Y'
180563    );
180564 
180565    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
180566 
180567       xla_ae_lines_pkg.set_segment(
180568           p_to_segment_code         => 'GL_BALANCING'
180569         , p_segment_value           => l_segment
180570         , p_from_segment_code       => l_adr_value_segment_code
180571         , p_from_combination_id     => l_adr_value_combination_id
180572         , p_value_type_code         => l_adr_value_type_code
180573         , p_transaction_coa_id      => l_adr_transaction_coa_id
180574         , p_accounting_coa_id       => l_adr_accounting_coa_id
180575         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
180576         , p_flex_value_set_id       => l_adr_flex_value_set_id
180577         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
180578         , p_adr_type_code           => 'S'
180579         , p_component_type          => l_component_type
180580         , p_component_code          => l_component_code
180581         , p_component_type_code     => l_component_type_code
180582         , p_component_appl_id       => l_component_appl_id
180583         , p_amb_context_code        => l_amb_context_code
180584         , p_entity_code             => 'AP_INVOICES'
180588 
180585         , p_event_class_code        => 'DEBIT MEMOS'
180586         , p_side                    => 'NA'
180587         );
180589   END IF;
180590 
180591    --
180592    --
180593    END IF;
180594 
180595        --
180596        -- Update the line information that should be overwritten
180597        --
180598        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
180599                                          p_header_num   => 1);
180600        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
180601 
180602        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
180603 
180604        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
180605           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
180606        END IF;
180607 
180608       --
180609       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
180610       --
180611       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
180612           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
180613       ELSE
180614           ---------------------------------------------------------------------------------------------------
180615           -- 4262811a Switch Sign
180616           ---------------------------------------------------------------------------------------------------
180617           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
180618           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
180619                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
180620           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
180621                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
180622           -- 5132302
180623           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
180624                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
180625 
180626       END IF;
180627 
180628       -- 4955764
180629       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
180630       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
180631 
180632 
180633       XLA_AE_LINES_PKG.ValidateCurrentLine;
180634       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
180635 
180636       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
180637                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
180638                ,p_balance_type_code => l_balance_type_code);
180639 
180640    END IF;
180641 
180642    -----------------------------------------------------------------------------------------
180643    -- 4262811 Multiperiod Accounting
180644    -----------------------------------------------------------------------------------------
180645      -- No MPA option is assigned.
180646 
180647 
180648 END IF;
180649 END IF;
180650 --
180651 
180652 --
180653 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
180654    trace
180655       (p_msg      => 'END of AcctLineType_288'
180656       ,p_level    => C_LEVEL_PROCEDURE
180657       ,p_module   => l_log_module);
180658 END IF;
180659 --
180660 EXCEPTION
180661   WHEN xla_exceptions_pkg.application_exception THEN
180662       RAISE;
180663   WHEN OTHERS THEN
180664        xla_exceptions_pkg.raise_message
180665            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_288');
180666 END AcctLineType_288;
180667 --
180668 
180669 ---------------------------------------
180670 --
180671 -- PRIVATE FUNCTION
180672 --         AcctLineType_289
180673 --
180674 ---------------------------------------
180675 PROCEDURE AcctLineType_289 (
180676   p_application_id        IN NUMBER
180677  ,p_event_id              IN NUMBER
180678  ,p_calculate_acctd_flag  IN VARCHAR2
180679  ,p_calculate_g_l_flag    IN VARCHAR2
180680  ,p_actual_flag           IN OUT VARCHAR2
180681  ,p_balance_type_code     OUT VARCHAR2
180682  ,p_gain_or_loss_ref      OUT VARCHAR2
180683  
180684 --Invoice Distribution Description
180685  , p_source_1            IN VARCHAR2
180686 --Automatic Offsets Value
180687  , p_source_3            IN VARCHAR2
180688  , p_source_3_meaning    IN VARCHAR2
180689 --Invoice Distribution Ledger Amount
180690  , p_source_9            IN NUMBER
180691 --Invoice Distribution Account
180692  , p_source_18            IN NUMBER
180693 --Invoice Distribution Type
180694  , p_source_21            IN VARCHAR2
180695  , p_source_21_meaning    IN VARCHAR2
180696 --Withholding Related Distribution Account
180697  , p_source_31            IN NUMBER
180698 --Accounting Reversal Indicator
180699  , p_source_41            IN VARCHAR2
180700 --Distribution Link Type
180701  , p_source_43            IN VARCHAR2
180702 --Allocation to Main Distribution Identifier
180703  , p_source_45            IN NUMBER
180704 --Invoice Identifier
180705  , p_source_46            IN NUMBER
180706 --Invoice Distribution Identifier
180707  , p_source_52            IN NUMBER
180708 --Payables Encumbrance Upgrade Credit Account
180709  , p_source_53            IN NUMBER
180710 --Payables Encumbrance Upgrade Credit Amount
180711  , p_source_54            IN NUMBER
180712 --Invoice Currency Code
180713  , p_source_55            IN VARCHAR2
180714 --Payables Encumbrance Upgrade Credit Base Amount
180715  , p_source_56            IN NUMBER
180716 --Payables Encumbrance Upgrade Debit Account
180720 --Payables Encumbrance Upgrade Debit Base Amount
180717  , p_source_57            IN NUMBER
180718 --Payables Encumbrance Upgrade Debit Amount
180719  , p_source_58            IN NUMBER
180721  , p_source_59            IN NUMBER
180722 --Payables Encumbrance Upgrade Option
180723  , p_source_60            IN VARCHAR2
180724 --Invoice Distribution Amount
180725  , p_source_61            IN NUMBER
180726 --Deferred Accounting End Date
180727  , p_source_65            IN DATE
180728 --Deferred Accounting Option
180729  , p_source_66            IN VARCHAR2
180730 --Deferred Accounting Start Date
180731  , p_source_67            IN DATE
180732 --Override Accounted Amount Indicator
180733  , p_source_68            IN VARCHAR2
180734  , p_source_68_meaning    IN VARCHAR2
180735 --Invoice Supplier Identifier
180736  , p_source_69            IN NUMBER
180737 --Invoice Supplier Site Identifier
180738  , p_source_70            IN NUMBER
180739 --Third Party Type
180740  , p_source_71            IN VARCHAR2
180741 --Parent Reversal Identifier
180742  , p_source_72            IN NUMBER
180743 --Invoice Distribution Statistical Amount
180744  , p_source_73            IN NUMBER
180745 --Invoice Distribution Tax Line Identifier
180746  , p_source_74            IN NUMBER
180747 --Invoice Distribution Tax Distribution Identifier from Tax
180748  , p_source_75            IN NUMBER
180749 --Invoice Distribution Summary Tax Line Identifier
180750  , p_source_76            IN NUMBER
180751 --Payables Upgrade Credit Encumbrance Type Identifier
180752  , p_source_77            IN NUMBER
180753 --Payables Upgrade Debit Encumbrance Type Identifier
180754  , p_source_78            IN NUMBER
180755 --Business Flow Accounts Payable Application Identifier
180756  , p_source_79            IN NUMBER
180757 --Business Flow Invoice Distribution Type
180758  , p_source_80            IN VARCHAR2
180759 --Business Flow Invoice Entity Code
180760  , p_source_81            IN VARCHAR2
180761 --Business Flow Invoice Distribution Identifier
180762  , p_source_82            IN NUMBER
180763 --Business Flow Invoice Identifier
180764  , p_source_83            IN NUMBER
180765 --Invoice Exchange Date
180766  , p_source_136            IN DATE
180767 --Invoice Exchange Rate
180768  , p_source_137            IN NUMBER
180769 --Invoice Exchange Rate Type
180770  , p_source_138            IN VARCHAR2
180771 )
180772 IS
180773 
180774 l_component_type              VARCHAR2(80);
180775 l_component_code              VARCHAR2(30);
180776 l_component_type_code         VARCHAR2(1);
180777 l_component_appl_id           INTEGER;
180778 l_amb_context_code            VARCHAR2(30);
180779 l_entity_code                 VARCHAR2(30);
180780 l_event_class_code            VARCHAR2(30);
180781 l_ae_header_id                NUMBER;
180782 l_event_type_code             VARCHAR2(30);
180783 l_line_definition_code        VARCHAR2(30);
180784 l_line_definition_owner_code  VARCHAR2(1);
180785 --
180786 -- adr variables
180787 l_segment                     VARCHAR2(30);
180788 l_ccid                        NUMBER;
180789 l_adr_transaction_coa_id      NUMBER;
180790 l_adr_accounting_coa_id       NUMBER;
180791 l_adr_flexfield_segment_code  VARCHAR2(30);
180792 l_adr_flex_value_set_id       NUMBER;
180793 l_adr_value_type_code         VARCHAR2(30);
180794 l_adr_value_combination_id    NUMBER;
180795 l_adr_value_segment_code      VARCHAR2(30);
180796 
180797 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
180798 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
180799 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
180800 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
180801 
180802 -- 4262811 Variables ------------------------------------------------------------------------------------------
180803 l_entered_amt_idx             NUMBER;
180804 l_accted_amt_idx              NUMBER;
180805 l_acc_rev_flag                VARCHAR2(1);
180806 l_accrual_line_num            NUMBER;
180807 l_tmp_amt                     NUMBER;
180808 l_acc_rev_natural_side_code   VARCHAR2(1);
180809 
180810 l_num_entries                 NUMBER;
180811 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
180812 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
180813 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
180814 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
180815 l_recog_line_1                NUMBER;
180816 l_recog_line_2                NUMBER;
180817 
180818 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
180819 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
180820 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
180821 
180822 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
180823 
180824 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
180825 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
180826 
180827 ---------------------------------------------------------------------------------------------------------------
180828 
180829 
180830 --
180831 -- bulk performance
180832 --
180833 l_balance_type_code           VARCHAR2(1);
180834 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
180835 l_log_module                  VARCHAR2(240);
180836 
180837 --
180838 -- Upgrade strategy
180839 --
180840 l_actual_upg_option           VARCHAR2(1);
180841 l_enc_upg_option           VARCHAR2(1);
180842 
180843 --
180844 BEGIN
180845 --
180846 IF g_log_enabled THEN
180847       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_289';
180848 END IF;
180849 --
180850 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
180851 
180855          ,p_module   => l_log_module);
180852       trace
180853          (p_msg      => 'BEGIN of AcctLineType_289'
180854          ,p_level    => C_LEVEL_PROCEDURE
180856 
180857 END IF;
180858 --
180859 l_component_type             := 'AMB_JLT';
180860 l_component_code             := 'AP_WITHHOLD_TAX_INV';
180861 l_component_type_code        := 'S';
180862 l_component_appl_id          :=  200;
180863 l_amb_context_code           := 'DEFAULT';
180864 l_entity_code                := 'AP_INVOICES';
180865 l_event_class_code           := 'INVOICES';
180866 l_event_type_code            := 'INVOICES_ALL';
180867 l_line_definition_owner_code := 'S';
180868 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
180869 --
180870 l_balance_type_code          := 'A';
180871 l_segment                     := NULL;
180872 l_ccid                        := NULL;
180873 l_adr_transaction_coa_id      := NULL;
180874 l_adr_accounting_coa_id       := NULL;
180875 l_adr_flexfield_segment_code  := NULL;
180876 l_adr_flex_value_set_id       := NULL;
180877 l_adr_value_type_code         := NULL;
180878 l_adr_value_combination_id    := NULL;
180879 l_adr_value_segment_code      := NULL;
180880 
180881 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
180882 l_bflow_class_code           := '';    -- 4219869 Business Flow
180883 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
180884 l_budgetary_control_flag     := 'N';
180885 
180886 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
180887 l_bflow_applied_to_amt       := NULL; -- 5132302
180888 l_entered_amt_idx            := NULL;          -- 4262811
180889 l_accted_amt_idx             := NULL;          -- 4262811
180890 l_acc_rev_flag               := NULL;          -- 4262811
180891 l_accrual_line_num           := NULL;          -- 4262811
180892 l_tmp_amt                    := NULL;          -- 4262811
180893 --
180894  
180895 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
180896     l_balance_type_code <> 'B' THEN
180897 IF NVL(p_source_21,'
180898 ') =  'AWT'
180899  THEN 
180900 
180901    --
180902    XLA_AE_LINES_PKG.SetNewLine;
180903 
180904    p_balance_type_code          := l_balance_type_code;
180905    -- set the flag so later we will know whether the gain loss line needs to be created
180906    
180907    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
180908      p_actual_flag :='A';
180909    END IF;
180910 
180911    --
180912    -- bulk performance
180913    --
180914    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
180915                                       p_header_num   => 0); -- 4262811
180916    --
180917    -- set accounting line options
180918    --
180919    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
180920            p_natural_side_code          => 'D'
180921          , p_gain_or_loss_flag          => 'N'
180922          , p_gl_transfer_mode_code      => 'S'
180923          , p_acct_entry_type_code       => 'A'
180924          , p_switch_side_flag           => 'Y'
180925          , p_merge_duplicate_code       => 'A'
180926          );
180927    --
180928    l_acc_rev_natural_side_code := 'C';  -- 4262811
180929    -- 
180930    --
180931    -- set accounting line type info
180932    --
180933    xla_ae_lines_pkg.SetAcctLineType
180934       (p_component_type             => l_component_type
180935       ,p_event_type_code            => l_event_type_code
180936       ,p_line_definition_owner_code => l_line_definition_owner_code
180937       ,p_line_definition_code       => l_line_definition_code
180938       ,p_accounting_line_code       => l_component_code
180939       ,p_accounting_line_type_code  => l_component_type_code
180940       ,p_accounting_line_appl_id    => l_component_appl_id
180941       ,p_amb_context_code           => l_amb_context_code
180942       ,p_entity_code                => l_entity_code
180943       ,p_event_class_code           => l_event_class_code);
180944    --
180945    -- set accounting class
180946    --
180947    xla_ae_lines_pkg.SetAcctClass(
180948            p_accounting_class_code  => 'AWT'
180949          , p_ae_header_id           => l_ae_header_id
180950          );
180951 
180952    --
180953    -- set rounding class
180954    --
180955    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
180956                       'AWT';
180957 
180958    --
180959    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
180960    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
180961    --
180962    -- bulk performance
180963    --
180964    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
180965 
180966    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
180967       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
180968 
180969    -- 4955764
180970    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
180971       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
180972 
180973    -- 4458381 Public Sector Enh
180974    
180975    --
180976    -- set accounting attributes for the line type
180977    --
180978    l_entered_amt_idx := 24;
180979    l_accted_amt_idx  := 29;
180980    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
180981    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
180982    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
180983    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
180984    l_rec_acct_attrs.array_num_value(2)  := 
180985 xla_ae_sources_pkg.GetSystemSourceNum(
180989 );
180986    p_source_code           => 'XLA_EVENT_APPL_ID'
180987  , p_source_type_code      => 'Y'
180988  , p_source_application_id =>  602
180990    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
180991    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
180992    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
180993    l_rec_acct_attrs.array_char_value(4)  := 
180994 xla_ae_sources_pkg.GetSystemSourceChar(
180995    p_source_code           => 'XLA_ENTITY_CODE'
180996  , p_source_type_code      => 'Y'
180997  , p_source_application_id =>  602
180998 );
180999    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
181000    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
181001    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
181002    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
181003    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
181004    l_rec_acct_attrs.array_num_value(7)  := p_source_61;
181005    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
181006    l_rec_acct_attrs.array_num_value(8)  := p_source_79;
181007    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
181008    l_rec_acct_attrs.array_char_value(9)  := p_source_80;
181009    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
181010    l_rec_acct_attrs.array_char_value(10)  := p_source_81;
181011    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
181012    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_82);
181013    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
181014    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_83);
181015    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
181016    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_52);
181017    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
181018    l_rec_acct_attrs.array_char_value(14)  := p_source_43;
181019    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
181020    l_rec_acct_attrs.array_num_value(15)  := p_source_53;
181021    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
181022    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
181023    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
181024    l_rec_acct_attrs.array_char_value(17)  := p_source_55;
181025    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
181026    l_rec_acct_attrs.array_num_value(18)  := p_source_56;
181027    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
181028    l_rec_acct_attrs.array_num_value(19)  := p_source_57;
181029    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
181030    l_rec_acct_attrs.array_num_value(20)  := p_source_58;
181031    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
181032    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
181033    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
181034    l_rec_acct_attrs.array_num_value(22)  := p_source_59;
181035    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
181036    l_rec_acct_attrs.array_char_value(23)  := p_source_60;
181037    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
181038    l_rec_acct_attrs.array_num_value(24)  := p_source_61;
181039    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
181040    l_rec_acct_attrs.array_char_value(25)  := p_source_55;
181041    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
181042    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
181043    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
181044    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
181045    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
181046    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
181047    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
181048    l_rec_acct_attrs.array_num_value(29)  := p_source_9;
181049    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
181050    l_rec_acct_attrs.array_date_value(30)  := p_source_65;
181051    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
181052    l_rec_acct_attrs.array_char_value(31)  := p_source_66;
181053    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
181054    l_rec_acct_attrs.array_date_value(32)  := p_source_67;
181055    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
181056    l_rec_acct_attrs.array_char_value(33)  := p_source_68;
181057    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
181058    l_rec_acct_attrs.array_num_value(34)  := p_source_69;
181059    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
181060    l_rec_acct_attrs.array_num_value(35)  := p_source_70;
181061    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
181062    l_rec_acct_attrs.array_char_value(36)  := p_source_71;
181063    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
181064    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_72);
181065    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
181066    l_rec_acct_attrs.array_char_value(38)  := p_source_43;
181067    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
181068    l_rec_acct_attrs.array_num_value(39)  := p_source_73;
181069    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
181070    l_rec_acct_attrs.array_num_value(40)  := p_source_74;
181071    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
181072    l_rec_acct_attrs.array_num_value(41)  := p_source_75;
181073    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
181074    l_rec_acct_attrs.array_num_value(42)  := p_source_76;
181075    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
181076    l_rec_acct_attrs.array_num_value(43)  := p_source_77;
181077    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
181081    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
181078    l_rec_acct_attrs.array_num_value(44)  := p_source_78;
181079 
181080    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
181082 
181083    ---------------------------------------------------------------------------------------------------------------
181084    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
181085    ---------------------------------------------------------------------------------------------------------------
181086    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
181087 
181088    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
181089    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
181090 
181091    IF xla_accounting_cache_pkg.GetValueChar
181092          (p_source_code         => 'LEDGER_CATEGORY_CODE'
181093          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
181094    AND l_bflow_method_code = 'PRIOR_ENTRY'
181095 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
181096    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
181097          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
181098        )
181099    THEN
181100          xla_ae_lines_pkg.BflowUpgEntry
181101            (p_business_method_code    => l_bflow_method_code
181102            ,p_business_class_code     => l_bflow_class_code
181103            ,p_balance_type            => l_balance_type_code);
181104    ELSE
181105       NULL;
181106 -- No business flow processing for business flow method of NONE.
181107    END IF;
181108 
181109    --
181110    -- call analytical criteria
181111    --
181112    
181113    --
181114    -- call description
181115    --
181116    
181117 xla_ae_lines_pkg.SetLineDescription(
181118    p_ae_header_id => l_ae_header_id
181119   ,p_description  => Description_2 (
181120      p_application_id         => p_application_id
181121    , p_ae_header_id           => l_ae_header_id 
181122 , p_source_1 => p_source_1
181123    )
181124 );
181125 
181126 
181127    --
181128    -- call ADRs
181129    -- Bug 4922099
181130    --
181131    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
181132         (NVL(l_actual_upg_option, 'N') = 'O') OR
181133         (NVL(l_enc_upg_option, 'N') = 'O')
181134       )
181135    THEN
181136    NULL;
181137    --
181138    --
181139    
181140   l_ccid := AcctDerRule_45(
181141            p_application_id           => p_application_id
181142          , p_ae_header_id             => l_ae_header_id 
181143 , p_source_3 => p_source_3
181144 , p_source_3_meaning => p_source_3_meaning
181145 , p_source_18 => p_source_18
181146 , p_source_31 => p_source_31
181147          , x_transaction_coa_id       => l_adr_transaction_coa_id
181148          , x_accounting_coa_id        => l_adr_accounting_coa_id
181149          , x_value_type_code          => l_adr_value_type_code
181150          , p_side                     => 'NA'
181151    );
181152 
181153    xla_ae_lines_pkg.set_ccid(
181154     p_code_combination_id          => l_ccid
181155   , p_value_type_code              => l_adr_value_type_code
181156   , p_transaction_coa_id           => l_adr_transaction_coa_id
181157   , p_accounting_coa_id            => l_adr_accounting_coa_id
181158   , p_adr_code                     => 'AP_WH_DIST_ACCT'
181159   , p_adr_type_code                => 'S'
181160   , p_component_type               => l_component_type
181161   , p_component_code               => l_component_code
181162   , p_component_type_code          => l_component_type_code
181163   , p_component_appl_id            => l_component_appl_id
181164   , p_amb_context_code             => l_amb_context_code
181165   , p_side                         => 'NA'
181166   );
181167 
181168 
181169    l_segment := AcctDerRule_13(
181170            p_application_id           => p_application_id
181171          , p_ae_header_id             => l_ae_header_id 
181172 , p_source_3 => p_source_3
181173 , p_source_3_meaning => p_source_3_meaning
181174 , p_source_18 => p_source_18
181175          , x_transaction_coa_id       => l_adr_transaction_coa_id
181176          , x_accounting_coa_id        => l_adr_accounting_coa_id
181177          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
181178          , x_flex_value_set_id        => l_adr_flex_value_set_id
181179          , x_value_type_code          => l_adr_value_type_code
181180          , x_value_combination_id     => l_adr_value_combination_id
181181          , x_value_segment_code       => l_adr_value_segment_code
181182          , p_side                     => 'NA'
181183          , p_override_seg_flag        => 'Y'
181184    );
181185 
181186    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
181187 
181188       xla_ae_lines_pkg.set_segment(
181189           p_to_segment_code         => 'GL_ACCOUNT'
181190         , p_segment_value           => l_segment
181191         , p_from_segment_code       => l_adr_value_segment_code
181192         , p_from_combination_id     => l_adr_value_combination_id
181193         , p_value_type_code         => l_adr_value_type_code
181194         , p_transaction_coa_id      => l_adr_transaction_coa_id
181195         , p_accounting_coa_id       => l_adr_accounting_coa_id
181196         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
181197         , p_flex_value_set_id       => l_adr_flex_value_set_id
181198         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
181199         , p_adr_type_code           => 'S'
181200         , p_component_type          => l_component_type
181201         , p_component_code          => l_component_code
181205         , p_entity_code             => 'AP_INVOICES'
181202         , p_component_type_code     => l_component_type_code
181203         , p_component_appl_id       => l_component_appl_id
181204         , p_amb_context_code        => l_amb_context_code
181206         , p_event_class_code        => 'INVOICES'
181207         , p_side                    => 'NA'
181208         );
181209 
181210   END IF;
181211 
181212    l_segment := AcctDerRule_24(
181213            p_application_id           => p_application_id
181214          , p_ae_header_id             => l_ae_header_id 
181215 , p_source_3 => p_source_3
181216 , p_source_3_meaning => p_source_3_meaning
181217 , p_source_31 => p_source_31
181218          , x_transaction_coa_id       => l_adr_transaction_coa_id
181219          , x_accounting_coa_id        => l_adr_accounting_coa_id
181220          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
181221          , x_flex_value_set_id        => l_adr_flex_value_set_id
181222          , x_value_type_code          => l_adr_value_type_code
181223          , x_value_combination_id     => l_adr_value_combination_id
181224          , x_value_segment_code       => l_adr_value_segment_code
181225          , p_side                     => 'NA'
181226          , p_override_seg_flag        => 'Y'
181227    );
181228 
181229    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
181230 
181231       xla_ae_lines_pkg.set_segment(
181232           p_to_segment_code         => 'GL_BALANCING'
181233         , p_segment_value           => l_segment
181234         , p_from_segment_code       => l_adr_value_segment_code
181235         , p_from_combination_id     => l_adr_value_combination_id
181236         , p_value_type_code         => l_adr_value_type_code
181237         , p_transaction_coa_id      => l_adr_transaction_coa_id
181238         , p_accounting_coa_id       => l_adr_accounting_coa_id
181239         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
181240         , p_flex_value_set_id       => l_adr_flex_value_set_id
181241         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
181242         , p_adr_type_code           => 'S'
181243         , p_component_type          => l_component_type
181244         , p_component_code          => l_component_code
181245         , p_component_type_code     => l_component_type_code
181246         , p_component_appl_id       => l_component_appl_id
181247         , p_amb_context_code        => l_amb_context_code
181248         , p_entity_code             => 'AP_INVOICES'
181249         , p_event_class_code        => 'INVOICES'
181250         , p_side                    => 'NA'
181251         );
181252 
181253   END IF;
181254 
181255    --
181256    --
181257    END IF;
181258    --
181259    -- Bug 4922099
181260    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
181261           (NVL(l_enc_upg_option, 'N') = 'O')
181262         ) AND
181263         (l_bflow_method_code = 'PRIOR_ENTRY')
181264       )
181265    THEN
181266       IF
181267       --
181268       1 = 2
181269       --
181270       THEN
181271       xla_accounting_err_pkg.build_message
181272                                     (p_appli_s_name            => 'XLA'
181273                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
181274                                     ,p_token_1                 => 'LINE_NUMBER'
181275                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
181276                                     ,p_token_2                 => 'LINE_TYPE_NAME'
181277                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
181278                                                                              l_component_type
181279                                                                             ,l_component_code
181280                                                                             ,l_component_type_code
181281                                                                             ,l_component_appl_id
181282                                                                             ,l_amb_context_code
181283                                                                             ,l_entity_code
181284                                                                             ,l_event_class_code
181285                                                                            )
181286                                     ,p_token_3                 => 'OWNER'
181287                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
181288                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
181289                                                                           ,p_lookup_code    => l_component_type_code
181290                                                                          )
181291                                     ,p_token_4                 => 'PRODUCT_NAME'
181292                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
181293                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
181294                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
181295                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
181296                                     ,p_ae_header_id            =>  NULL
181297                                        );
181298 
181299         IF (C_LEVEL_ERROR>= g_log_level) THEN
181300                  trace
181301                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
181302                       ,p_level    => C_LEVEL_ERROR
181303                       ,p_module   => l_log_module);
181304         END IF;
181305       END IF;
181306    END IF;
181307    --
181308    --
181312    -- Prior Entry.  Currently, the following code is always generated.
181309    ------------------------------------------------------------------------------------------------
181310    -- 4219869 Business Flow
181311    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
181313    ------------------------------------------------------------------------------------------------
181314    XLA_AE_LINES_PKG.ValidateCurrentLine;
181315 
181316    ------------------------------------------------------------------------------------
181317    -- 4219869 Business Flow
181318    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
181319    ------------------------------------------------------------------------------------
181320    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
181321 
181322    ----------------------------------------------------------------------------------
181323    -- 4219869 Business Flow
181324    -- Update journal entry status -- Need to generate this within IF <condition>
181325    ----------------------------------------------------------------------------------
181326    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
181327          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
181328          ,p_balance_type_code => l_balance_type_code
181329          );
181330 
181331    -------------------------------------------------------------------------------------------
181332    -- 4262811 - Generate the Accrual Reversal lines
181333    -------------------------------------------------------------------------------------------
181334    BEGIN
181335       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
181336                               (g_array_event(p_event_id).array_value_num('header_index'));
181337       IF l_acc_rev_flag IS NULL THEN
181338          l_acc_rev_flag := 'N';
181339       END IF;
181340    EXCEPTION
181341       WHEN OTHERS THEN
181342          l_acc_rev_flag := 'N';
181343    END;
181344    --
181345    IF (l_acc_rev_flag = 'Y') THEN
181346 
181347        -- 4645092  ------------------------------------------------------------------------------
181348        -- To allow MPA report to determine if it should generate report process
181349        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
181350        ------------------------------------------------------------------------------------------
181351 
181352        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
181353        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
181354    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
181355    -- call ADRs
181356    -- Bug 4922099
181357    --
181358    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
181359         (NVL(l_actual_upg_option, 'N') = 'O') OR
181360         (NVL(l_enc_upg_option, 'N') = 'O')
181361       )
181362    THEN
181363    NULL;
181364    --
181365    --
181366    
181367   l_ccid := AcctDerRule_45(
181368            p_application_id           => p_application_id
181369          , p_ae_header_id             => l_ae_header_id 
181370 , p_source_3 => p_source_3
181371 , p_source_3_meaning => p_source_3_meaning
181372 , p_source_18 => p_source_18
181373 , p_source_31 => p_source_31
181374          , x_transaction_coa_id       => l_adr_transaction_coa_id
181375          , x_accounting_coa_id        => l_adr_accounting_coa_id
181376          , x_value_type_code          => l_adr_value_type_code
181377          , p_side                     => 'NA'
181378    );
181379 
181380    xla_ae_lines_pkg.set_ccid(
181381     p_code_combination_id          => l_ccid
181382   , p_value_type_code              => l_adr_value_type_code
181383   , p_transaction_coa_id           => l_adr_transaction_coa_id
181384   , p_accounting_coa_id            => l_adr_accounting_coa_id
181385   , p_adr_code                     => 'AP_WH_DIST_ACCT'
181386   , p_adr_type_code                => 'S'
181387   , p_component_type               => l_component_type
181388   , p_component_code               => l_component_code
181389   , p_component_type_code          => l_component_type_code
181390   , p_component_appl_id            => l_component_appl_id
181391   , p_amb_context_code             => l_amb_context_code
181392   , p_side                         => 'NA'
181393   );
181394 
181395 
181396    l_segment := AcctDerRule_13(
181397            p_application_id           => p_application_id
181398          , p_ae_header_id             => l_ae_header_id 
181399 , p_source_3 => p_source_3
181400 , p_source_3_meaning => p_source_3_meaning
181401 , p_source_18 => p_source_18
181402          , x_transaction_coa_id       => l_adr_transaction_coa_id
181403          , x_accounting_coa_id        => l_adr_accounting_coa_id
181404          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
181405          , x_flex_value_set_id        => l_adr_flex_value_set_id
181406          , x_value_type_code          => l_adr_value_type_code
181407          , x_value_combination_id     => l_adr_value_combination_id
181408          , x_value_segment_code       => l_adr_value_segment_code
181409          , p_side                     => 'NA'
181410          , p_override_seg_flag        => 'Y'
181411    );
181412 
181413    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
181414 
181415       xla_ae_lines_pkg.set_segment(
181416           p_to_segment_code         => 'GL_ACCOUNT'
181417         , p_segment_value           => l_segment
181418         , p_from_segment_code       => l_adr_value_segment_code
181419         , p_from_combination_id     => l_adr_value_combination_id
181420         , p_value_type_code         => l_adr_value_type_code
181421         , p_transaction_coa_id      => l_adr_transaction_coa_id
181422         , p_accounting_coa_id       => l_adr_accounting_coa_id
181423         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
181427         , p_component_type          => l_component_type
181424         , p_flex_value_set_id       => l_adr_flex_value_set_id
181425         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
181426         , p_adr_type_code           => 'S'
181428         , p_component_code          => l_component_code
181429         , p_component_type_code     => l_component_type_code
181430         , p_component_appl_id       => l_component_appl_id
181431         , p_amb_context_code        => l_amb_context_code
181432         , p_entity_code             => 'AP_INVOICES'
181433         , p_event_class_code        => 'INVOICES'
181434         , p_side                    => 'NA'
181435         );
181436 
181437   END IF;
181438 
181439    l_segment := AcctDerRule_24(
181440            p_application_id           => p_application_id
181441          , p_ae_header_id             => l_ae_header_id 
181442 , p_source_3 => p_source_3
181443 , p_source_3_meaning => p_source_3_meaning
181444 , p_source_31 => p_source_31
181445          , x_transaction_coa_id       => l_adr_transaction_coa_id
181446          , x_accounting_coa_id        => l_adr_accounting_coa_id
181447          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
181448          , x_flex_value_set_id        => l_adr_flex_value_set_id
181449          , x_value_type_code          => l_adr_value_type_code
181450          , x_value_combination_id     => l_adr_value_combination_id
181451          , x_value_segment_code       => l_adr_value_segment_code
181452          , p_side                     => 'NA'
181453          , p_override_seg_flag        => 'Y'
181454    );
181455 
181456    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
181457 
181458       xla_ae_lines_pkg.set_segment(
181459           p_to_segment_code         => 'GL_BALANCING'
181460         , p_segment_value           => l_segment
181461         , p_from_segment_code       => l_adr_value_segment_code
181462         , p_from_combination_id     => l_adr_value_combination_id
181463         , p_value_type_code         => l_adr_value_type_code
181464         , p_transaction_coa_id      => l_adr_transaction_coa_id
181465         , p_accounting_coa_id       => l_adr_accounting_coa_id
181466         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
181467         , p_flex_value_set_id       => l_adr_flex_value_set_id
181468         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
181469         , p_adr_type_code           => 'S'
181470         , p_component_type          => l_component_type
181471         , p_component_code          => l_component_code
181472         , p_component_type_code     => l_component_type_code
181473         , p_component_appl_id       => l_component_appl_id
181474         , p_amb_context_code        => l_amb_context_code
181475         , p_entity_code             => 'AP_INVOICES'
181476         , p_event_class_code        => 'INVOICES'
181477         , p_side                    => 'NA'
181478         );
181479 
181480   END IF;
181481 
181482    --
181483    --
181484    END IF;
181485 
181486        --
181487        -- Update the line information that should be overwritten
181488        --
181489        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
181490                                          p_header_num   => 1);
181491        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
181492 
181493        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
181494 
181495        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
181496           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
181497        END IF;
181498 
181499       --
181500       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
181501       --
181502       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
181503           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
181504       ELSE
181505           ---------------------------------------------------------------------------------------------------
181506           -- 4262811a Switch Sign
181507           ---------------------------------------------------------------------------------------------------
181508           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
181509           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
181510                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
181511           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
181512                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
181513           -- 5132302
181514           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
181515                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
181516 
181517       END IF;
181518 
181519       -- 4955764
181520       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
181521       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
181522 
181523 
181524       XLA_AE_LINES_PKG.ValidateCurrentLine;
181525       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
181526 
181527       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
181528                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
181529                ,p_balance_type_code => l_balance_type_code);
181530 
181534    -- 4262811 Multiperiod Accounting
181531    END IF;
181532 
181533    -----------------------------------------------------------------------------------------
181535    -----------------------------------------------------------------------------------------
181536      -- No MPA option is assigned.
181537 
181538 
181539 END IF;
181540 END IF;
181541 --
181542 
181543 --
181544 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
181545    trace
181546       (p_msg      => 'END of AcctLineType_289'
181547       ,p_level    => C_LEVEL_PROCEDURE
181548       ,p_module   => l_log_module);
181549 END IF;
181550 --
181551 EXCEPTION
181552   WHEN xla_exceptions_pkg.application_exception THEN
181553       RAISE;
181554   WHEN OTHERS THEN
181555        xla_exceptions_pkg.raise_message
181556            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_289');
181557 END AcctLineType_289;
181558 --
181559 
181560 ---------------------------------------
181561 --
181562 -- PRIVATE FUNCTION
181563 --         AcctLineType_290
181564 --
181565 ---------------------------------------
181566 PROCEDURE AcctLineType_290 (
181567   p_application_id        IN NUMBER
181568  ,p_event_id              IN NUMBER
181569  ,p_calculate_acctd_flag  IN VARCHAR2
181570  ,p_calculate_g_l_flag    IN VARCHAR2
181571  ,p_actual_flag           IN OUT VARCHAR2
181572  ,p_balance_type_code     OUT VARCHAR2
181573  ,p_gain_or_loss_ref      OUT VARCHAR2
181574  
181575 --Invoice Distribution Description
181576  , p_source_1            IN VARCHAR2
181577 --Automatic Offsets Value
181578  , p_source_3            IN VARCHAR2
181579  , p_source_3_meaning    IN VARCHAR2
181580 --Invoice Distribution Ledger Amount
181581  , p_source_9            IN NUMBER
181582 --Invoice Distribution Account
181583  , p_source_18            IN NUMBER
181584 --Invoice Distribution Type
181585  , p_source_21            IN VARCHAR2
181586  , p_source_21_meaning    IN VARCHAR2
181587 --Withholding Related Distribution Account
181588  , p_source_31            IN NUMBER
181589 --Accounting Reversal Indicator
181590  , p_source_41            IN VARCHAR2
181591 --Distribution Link Type
181592  , p_source_43            IN VARCHAR2
181593 --Allocation to Main Distribution Identifier
181594  , p_source_45            IN NUMBER
181595 --Invoice Identifier
181596  , p_source_46            IN NUMBER
181597 --Invoice Distribution Identifier
181598  , p_source_52            IN NUMBER
181599 --Payables Encumbrance Upgrade Credit Account
181600  , p_source_53            IN NUMBER
181601 --Payables Encumbrance Upgrade Credit Amount
181602  , p_source_54            IN NUMBER
181603 --Invoice Currency Code
181604  , p_source_55            IN VARCHAR2
181605 --Payables Encumbrance Upgrade Credit Base Amount
181606  , p_source_56            IN NUMBER
181607 --Payables Encumbrance Upgrade Debit Account
181608  , p_source_57            IN NUMBER
181609 --Payables Encumbrance Upgrade Debit Amount
181610  , p_source_58            IN NUMBER
181611 --Payables Encumbrance Upgrade Debit Base Amount
181612  , p_source_59            IN NUMBER
181613 --Payables Encumbrance Upgrade Option
181614  , p_source_60            IN VARCHAR2
181615 --Invoice Distribution Amount
181616  , p_source_61            IN NUMBER
181617 --Deferred Accounting End Date
181618  , p_source_65            IN DATE
181619 --Deferred Accounting Option
181620  , p_source_66            IN VARCHAR2
181621 --Deferred Accounting Start Date
181622  , p_source_67            IN DATE
181623 --Override Accounted Amount Indicator
181624  , p_source_68            IN VARCHAR2
181625  , p_source_68_meaning    IN VARCHAR2
181626 --Invoice Supplier Identifier
181627  , p_source_69            IN NUMBER
181628 --Invoice Supplier Site Identifier
181629  , p_source_70            IN NUMBER
181630 --Third Party Type
181631  , p_source_71            IN VARCHAR2
181632 --Parent Reversal Identifier
181633  , p_source_72            IN NUMBER
181634 --Invoice Distribution Statistical Amount
181635  , p_source_73            IN NUMBER
181636 --Invoice Distribution Tax Line Identifier
181637  , p_source_74            IN NUMBER
181638 --Invoice Distribution Tax Distribution Identifier from Tax
181639  , p_source_75            IN NUMBER
181640 --Invoice Distribution Summary Tax Line Identifier
181641  , p_source_76            IN NUMBER
181642 --Payables Upgrade Credit Encumbrance Type Identifier
181643  , p_source_77            IN NUMBER
181644 --Payables Upgrade Debit Encumbrance Type Identifier
181645  , p_source_78            IN NUMBER
181646 --Business Flow Accounts Payable Application Identifier
181647  , p_source_79            IN NUMBER
181648 --Business Flow Invoice Distribution Type
181649  , p_source_80            IN VARCHAR2
181650 --Business Flow Invoice Entity Code
181651  , p_source_81            IN VARCHAR2
181652 --Business Flow Invoice Distribution Identifier
181653  , p_source_82            IN NUMBER
181654 --Business Flow Invoice Identifier
181655  , p_source_83            IN NUMBER
181656 --Invoice Exchange Date
181657  , p_source_136            IN DATE
181658 --Invoice Exchange Rate
181659  , p_source_137            IN NUMBER
181660 --Invoice Exchange Rate Type
181661  , p_source_138            IN VARCHAR2
181662 )
181663 IS
181664 
181665 l_component_type              VARCHAR2(80);
181666 l_component_code              VARCHAR2(30);
181667 l_component_type_code         VARCHAR2(1);
181668 l_component_appl_id           INTEGER;
181669 l_amb_context_code            VARCHAR2(30);
181670 l_entity_code                 VARCHAR2(30);
181671 l_event_class_code            VARCHAR2(30);
181672 l_ae_header_id                NUMBER;
181676 --
181673 l_event_type_code             VARCHAR2(30);
181674 l_line_definition_code        VARCHAR2(30);
181675 l_line_definition_owner_code  VARCHAR2(1);
181677 -- adr variables
181678 l_segment                     VARCHAR2(30);
181679 l_ccid                        NUMBER;
181680 l_adr_transaction_coa_id      NUMBER;
181681 l_adr_accounting_coa_id       NUMBER;
181682 l_adr_flexfield_segment_code  VARCHAR2(30);
181683 l_adr_flex_value_set_id       NUMBER;
181684 l_adr_value_type_code         VARCHAR2(30);
181685 l_adr_value_combination_id    NUMBER;
181686 l_adr_value_segment_code      VARCHAR2(30);
181687 
181688 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
181689 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
181690 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
181691 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
181692 
181693 -- 4262811 Variables ------------------------------------------------------------------------------------------
181694 l_entered_amt_idx             NUMBER;
181695 l_accted_amt_idx              NUMBER;
181696 l_acc_rev_flag                VARCHAR2(1);
181697 l_accrual_line_num            NUMBER;
181698 l_tmp_amt                     NUMBER;
181699 l_acc_rev_natural_side_code   VARCHAR2(1);
181700 
181701 l_num_entries                 NUMBER;
181702 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
181703 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
181704 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
181705 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
181706 l_recog_line_1                NUMBER;
181707 l_recog_line_2                NUMBER;
181708 
181709 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
181710 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
181711 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
181712 
181713 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
181714 
181715 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
181716 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
181717 
181718 ---------------------------------------------------------------------------------------------------------------
181719 
181720 
181721 --
181722 -- bulk performance
181723 --
181724 l_balance_type_code           VARCHAR2(1);
181725 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
181726 l_log_module                  VARCHAR2(240);
181727 
181728 --
181729 -- Upgrade strategy
181730 --
181731 l_actual_upg_option           VARCHAR2(1);
181732 l_enc_upg_option           VARCHAR2(1);
181733 
181734 --
181735 BEGIN
181736 --
181737 IF g_log_enabled THEN
181738       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_290';
181739 END IF;
181740 --
181741 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
181742 
181743       trace
181744          (p_msg      => 'BEGIN of AcctLineType_290'
181745          ,p_level    => C_LEVEL_PROCEDURE
181746          ,p_module   => l_log_module);
181747 
181748 END IF;
181749 --
181750 l_component_type             := 'AMB_JLT';
181751 l_component_code             := 'AP_WITHHOLD_TAX_PREPAY';
181752 l_component_type_code        := 'S';
181753 l_component_appl_id          :=  200;
181754 l_amb_context_code           := 'DEFAULT';
181755 l_entity_code                := 'AP_INVOICES';
181756 l_event_class_code           := 'PREPAYMENTS';
181757 l_event_type_code            := 'PREPAYMENTS_ALL';
181758 l_line_definition_owner_code := 'S';
181759 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
181760 --
181761 l_balance_type_code          := 'A';
181762 l_segment                     := NULL;
181763 l_ccid                        := NULL;
181764 l_adr_transaction_coa_id      := NULL;
181765 l_adr_accounting_coa_id       := NULL;
181766 l_adr_flexfield_segment_code  := NULL;
181767 l_adr_flex_value_set_id       := NULL;
181768 l_adr_value_type_code         := NULL;
181769 l_adr_value_combination_id    := NULL;
181770 l_adr_value_segment_code      := NULL;
181771 
181772 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
181773 l_bflow_class_code           := '';    -- 4219869 Business Flow
181774 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
181775 l_budgetary_control_flag     := 'N';
181776 
181777 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
181778 l_bflow_applied_to_amt       := NULL; -- 5132302
181779 l_entered_amt_idx            := NULL;          -- 4262811
181780 l_accted_amt_idx             := NULL;          -- 4262811
181781 l_acc_rev_flag               := NULL;          -- 4262811
181782 l_accrual_line_num           := NULL;          -- 4262811
181783 l_tmp_amt                    := NULL;          -- 4262811
181784 --
181785  
181786 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
181787     l_balance_type_code <> 'B' THEN
181788 IF NVL(p_source_21,'
181789 ') =  'AWT'
181790  THEN 
181791 
181792    --
181793    XLA_AE_LINES_PKG.SetNewLine;
181794 
181795    p_balance_type_code          := l_balance_type_code;
181796    -- set the flag so later we will know whether the gain loss line needs to be created
181797    
181798    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
181799      p_actual_flag :='A';
181800    END IF;
181801 
181802    --
181803    -- bulk performance
181804    --
181805    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
181806                                       p_header_num   => 0); -- 4262811
181807    --
181808    -- set accounting line options
181809    --
181813          , p_gl_transfer_mode_code      => 'S'
181810    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
181811            p_natural_side_code          => 'D'
181812          , p_gain_or_loss_flag          => 'N'
181814          , p_acct_entry_type_code       => 'A'
181815          , p_switch_side_flag           => 'Y'
181816          , p_merge_duplicate_code       => 'A'
181817          );
181818    --
181819    l_acc_rev_natural_side_code := 'C';  -- 4262811
181820    -- 
181821    --
181822    -- set accounting line type info
181823    --
181824    xla_ae_lines_pkg.SetAcctLineType
181825       (p_component_type             => l_component_type
181826       ,p_event_type_code            => l_event_type_code
181827       ,p_line_definition_owner_code => l_line_definition_owner_code
181828       ,p_line_definition_code       => l_line_definition_code
181829       ,p_accounting_line_code       => l_component_code
181830       ,p_accounting_line_type_code  => l_component_type_code
181831       ,p_accounting_line_appl_id    => l_component_appl_id
181832       ,p_amb_context_code           => l_amb_context_code
181833       ,p_entity_code                => l_entity_code
181834       ,p_event_class_code           => l_event_class_code);
181835    --
181836    -- set accounting class
181837    --
181838    xla_ae_lines_pkg.SetAcctClass(
181839            p_accounting_class_code  => 'AWT'
181840          , p_ae_header_id           => l_ae_header_id
181841          );
181842 
181843    --
181844    -- set rounding class
181845    --
181846    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
181847                       'AWT';
181848 
181849    --
181850    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
181851    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
181852    --
181853    -- bulk performance
181854    --
181855    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
181856 
181857    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
181858       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
181859 
181860    -- 4955764
181861    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
181862       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
181863 
181864    -- 4458381 Public Sector Enh
181865    
181866    --
181867    -- set accounting attributes for the line type
181868    --
181869    l_entered_amt_idx := 23;
181870    l_accted_amt_idx  := 28;
181871    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
181872    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
181873    l_rec_acct_attrs.array_char_value(1)  := p_source_41;
181874    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
181875    l_rec_acct_attrs.array_num_value(2)  := 
181876 xla_ae_sources_pkg.GetSystemSourceNum(
181877    p_source_code           => 'XLA_EVENT_APPL_ID'
181878  , p_source_type_code      => 'Y'
181879  , p_source_application_id =>  602
181880 );
181881    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
181882    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
181883    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
181884    l_rec_acct_attrs.array_char_value(4)  := 
181885 xla_ae_sources_pkg.GetSystemSourceChar(
181886    p_source_code           => 'XLA_ENTITY_CODE'
181887  , p_source_type_code      => 'Y'
181888  , p_source_application_id =>  602
181889 );
181890    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
181891    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
181892    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
181893    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
181894    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
181895    l_rec_acct_attrs.array_num_value(7)  := p_source_79;
181896    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
181897    l_rec_acct_attrs.array_char_value(8)  := p_source_80;
181898    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
181899    l_rec_acct_attrs.array_char_value(9)  := p_source_81;
181900    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
181901    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_82);
181902    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
181903    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_83);
181904    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
181905    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_52);
181906    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
181907    l_rec_acct_attrs.array_char_value(13)  := p_source_43;
181908    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
181909    l_rec_acct_attrs.array_num_value(14)  := p_source_53;
181910    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
181911    l_rec_acct_attrs.array_num_value(15)  := p_source_54;
181912    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
181913    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
181914    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
181915    l_rec_acct_attrs.array_num_value(17)  := p_source_56;
181916    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
181917    l_rec_acct_attrs.array_num_value(18)  := p_source_57;
181918    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
181922    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
181919    l_rec_acct_attrs.array_num_value(19)  := p_source_58;
181920    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
181921    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
181923    l_rec_acct_attrs.array_num_value(21)  := p_source_59;
181924    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
181925    l_rec_acct_attrs.array_char_value(22)  := p_source_60;
181926    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
181927    l_rec_acct_attrs.array_num_value(23)  := p_source_61;
181928    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
181929    l_rec_acct_attrs.array_char_value(24)  := p_source_55;
181930    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
181931    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
181932    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
181933    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
181934    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
181935    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
181936    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
181937    l_rec_acct_attrs.array_num_value(28)  := p_source_9;
181938    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
181939    l_rec_acct_attrs.array_date_value(29)  := p_source_65;
181940    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
181941    l_rec_acct_attrs.array_char_value(30)  := p_source_66;
181942    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
181943    l_rec_acct_attrs.array_date_value(31)  := p_source_67;
181944    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
181945    l_rec_acct_attrs.array_char_value(32)  := p_source_68;
181946    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
181947    l_rec_acct_attrs.array_num_value(33)  := p_source_69;
181948    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
181949    l_rec_acct_attrs.array_num_value(34)  := p_source_70;
181950    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
181951    l_rec_acct_attrs.array_char_value(35)  := p_source_71;
181952    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
181953    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_72);
181954    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
181955    l_rec_acct_attrs.array_char_value(37)  := p_source_43;
181956    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
181957    l_rec_acct_attrs.array_num_value(38)  := p_source_73;
181958    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
181959    l_rec_acct_attrs.array_num_value(39)  := p_source_74;
181960    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
181961    l_rec_acct_attrs.array_num_value(40)  := p_source_75;
181962    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
181963    l_rec_acct_attrs.array_num_value(41)  := p_source_76;
181964    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
181965    l_rec_acct_attrs.array_num_value(42)  := p_source_77;
181966    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
181967    l_rec_acct_attrs.array_num_value(43)  := p_source_78;
181968 
181969    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
181970    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
181971 
181972    ---------------------------------------------------------------------------------------------------------------
181973    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
181974    ---------------------------------------------------------------------------------------------------------------
181975    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
181976 
181977    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
181978    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
181979 
181980    IF xla_accounting_cache_pkg.GetValueChar
181981          (p_source_code         => 'LEDGER_CATEGORY_CODE'
181982          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
181983    AND l_bflow_method_code = 'PRIOR_ENTRY'
181984 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
181985    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
181986          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
181987        )
181988    THEN
181989          xla_ae_lines_pkg.BflowUpgEntry
181990            (p_business_method_code    => l_bflow_method_code
181991            ,p_business_class_code     => l_bflow_class_code
181992            ,p_balance_type            => l_balance_type_code);
181993    ELSE
181994       NULL;
181995 -- No business flow processing for business flow method of NONE.
181996    END IF;
181997 
181998    --
181999    -- call analytical criteria
182000    --
182001    
182002    --
182003    -- call description
182004    --
182005    
182006 xla_ae_lines_pkg.SetLineDescription(
182007    p_ae_header_id => l_ae_header_id
182008   ,p_description  => Description_2 (
182009      p_application_id         => p_application_id
182010    , p_ae_header_id           => l_ae_header_id 
182011 , p_source_1 => p_source_1
182012    )
182013 );
182014 
182015 
182016    --
182017    -- call ADRs
182018    -- Bug 4922099
182019    --
182020    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
182021         (NVL(l_actual_upg_option, 'N') = 'O') OR
182025    NULL;
182022         (NVL(l_enc_upg_option, 'N') = 'O')
182023       )
182024    THEN
182026    --
182027    --
182028    
182029   l_ccid := AcctDerRule_45(
182030            p_application_id           => p_application_id
182031          , p_ae_header_id             => l_ae_header_id 
182032 , p_source_3 => p_source_3
182033 , p_source_3_meaning => p_source_3_meaning
182034 , p_source_18 => p_source_18
182035 , p_source_31 => p_source_31
182036          , x_transaction_coa_id       => l_adr_transaction_coa_id
182037          , x_accounting_coa_id        => l_adr_accounting_coa_id
182038          , x_value_type_code          => l_adr_value_type_code
182039          , p_side                     => 'NA'
182040    );
182041 
182042    xla_ae_lines_pkg.set_ccid(
182043     p_code_combination_id          => l_ccid
182044   , p_value_type_code              => l_adr_value_type_code
182045   , p_transaction_coa_id           => l_adr_transaction_coa_id
182046   , p_accounting_coa_id            => l_adr_accounting_coa_id
182047   , p_adr_code                     => 'AP_WH_DIST_ACCT'
182048   , p_adr_type_code                => 'S'
182049   , p_component_type               => l_component_type
182050   , p_component_code               => l_component_code
182051   , p_component_type_code          => l_component_type_code
182052   , p_component_appl_id            => l_component_appl_id
182053   , p_amb_context_code             => l_amb_context_code
182054   , p_side                         => 'NA'
182055   );
182056 
182057 
182058    l_segment := AcctDerRule_13(
182059            p_application_id           => p_application_id
182060          , p_ae_header_id             => l_ae_header_id 
182061 , p_source_3 => p_source_3
182062 , p_source_3_meaning => p_source_3_meaning
182063 , p_source_18 => p_source_18
182064          , x_transaction_coa_id       => l_adr_transaction_coa_id
182065          , x_accounting_coa_id        => l_adr_accounting_coa_id
182066          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
182067          , x_flex_value_set_id        => l_adr_flex_value_set_id
182068          , x_value_type_code          => l_adr_value_type_code
182069          , x_value_combination_id     => l_adr_value_combination_id
182070          , x_value_segment_code       => l_adr_value_segment_code
182071          , p_side                     => 'NA'
182072          , p_override_seg_flag        => 'Y'
182073    );
182074 
182075    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
182076 
182077       xla_ae_lines_pkg.set_segment(
182078           p_to_segment_code         => 'GL_ACCOUNT'
182079         , p_segment_value           => l_segment
182080         , p_from_segment_code       => l_adr_value_segment_code
182081         , p_from_combination_id     => l_adr_value_combination_id
182082         , p_value_type_code         => l_adr_value_type_code
182083         , p_transaction_coa_id      => l_adr_transaction_coa_id
182084         , p_accounting_coa_id       => l_adr_accounting_coa_id
182085         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
182086         , p_flex_value_set_id       => l_adr_flex_value_set_id
182087         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
182088         , p_adr_type_code           => 'S'
182089         , p_component_type          => l_component_type
182090         , p_component_code          => l_component_code
182091         , p_component_type_code     => l_component_type_code
182092         , p_component_appl_id       => l_component_appl_id
182093         , p_amb_context_code        => l_amb_context_code
182094         , p_entity_code             => 'AP_INVOICES'
182095         , p_event_class_code        => 'PREPAYMENTS'
182096         , p_side                    => 'NA'
182097         );
182098 
182099   END IF;
182100 
182101    l_segment := AcctDerRule_24(
182102            p_application_id           => p_application_id
182103          , p_ae_header_id             => l_ae_header_id 
182104 , p_source_3 => p_source_3
182105 , p_source_3_meaning => p_source_3_meaning
182106 , p_source_31 => p_source_31
182107          , x_transaction_coa_id       => l_adr_transaction_coa_id
182108          , x_accounting_coa_id        => l_adr_accounting_coa_id
182109          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
182110          , x_flex_value_set_id        => l_adr_flex_value_set_id
182111          , x_value_type_code          => l_adr_value_type_code
182112          , x_value_combination_id     => l_adr_value_combination_id
182113          , x_value_segment_code       => l_adr_value_segment_code
182114          , p_side                     => 'NA'
182115          , p_override_seg_flag        => 'Y'
182116    );
182117 
182118    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
182119 
182120       xla_ae_lines_pkg.set_segment(
182121           p_to_segment_code         => 'GL_BALANCING'
182122         , p_segment_value           => l_segment
182123         , p_from_segment_code       => l_adr_value_segment_code
182124         , p_from_combination_id     => l_adr_value_combination_id
182125         , p_value_type_code         => l_adr_value_type_code
182126         , p_transaction_coa_id      => l_adr_transaction_coa_id
182127         , p_accounting_coa_id       => l_adr_accounting_coa_id
182128         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
182129         , p_flex_value_set_id       => l_adr_flex_value_set_id
182130         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
182131         , p_adr_type_code           => 'S'
182132         , p_component_type          => l_component_type
182133         , p_component_code          => l_component_code
182137         , p_entity_code             => 'AP_INVOICES'
182134         , p_component_type_code     => l_component_type_code
182135         , p_component_appl_id       => l_component_appl_id
182136         , p_amb_context_code        => l_amb_context_code
182138         , p_event_class_code        => 'PREPAYMENTS'
182139         , p_side                    => 'NA'
182140         );
182141 
182142   END IF;
182143 
182144    --
182145    --
182146    END IF;
182147    --
182148    -- Bug 4922099
182149    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
182150           (NVL(l_enc_upg_option, 'N') = 'O')
182151         ) AND
182152         (l_bflow_method_code = 'PRIOR_ENTRY')
182153       )
182154    THEN
182155       IF
182156       --
182157       1 = 2
182158       --
182159       THEN
182160       xla_accounting_err_pkg.build_message
182161                                     (p_appli_s_name            => 'XLA'
182162                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
182163                                     ,p_token_1                 => 'LINE_NUMBER'
182164                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
182165                                     ,p_token_2                 => 'LINE_TYPE_NAME'
182166                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
182167                                                                              l_component_type
182168                                                                             ,l_component_code
182169                                                                             ,l_component_type_code
182170                                                                             ,l_component_appl_id
182171                                                                             ,l_amb_context_code
182172                                                                             ,l_entity_code
182173                                                                             ,l_event_class_code
182174                                                                            )
182175                                     ,p_token_3                 => 'OWNER'
182176                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
182177                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
182178                                                                           ,p_lookup_code    => l_component_type_code
182179                                                                          )
182180                                     ,p_token_4                 => 'PRODUCT_NAME'
182181                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
182182                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
182183                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
182184                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
182185                                     ,p_ae_header_id            =>  NULL
182186                                        );
182187 
182188         IF (C_LEVEL_ERROR>= g_log_level) THEN
182189                  trace
182190                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
182191                       ,p_level    => C_LEVEL_ERROR
182192                       ,p_module   => l_log_module);
182193         END IF;
182194       END IF;
182195    END IF;
182196    --
182197    --
182198    ------------------------------------------------------------------------------------------------
182199    -- 4219869 Business Flow
182200    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
182201    -- Prior Entry.  Currently, the following code is always generated.
182202    ------------------------------------------------------------------------------------------------
182203    XLA_AE_LINES_PKG.ValidateCurrentLine;
182204 
182205    ------------------------------------------------------------------------------------
182206    -- 4219869 Business Flow
182207    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
182208    ------------------------------------------------------------------------------------
182209    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
182210 
182211    ----------------------------------------------------------------------------------
182212    -- 4219869 Business Flow
182213    -- Update journal entry status -- Need to generate this within IF <condition>
182214    ----------------------------------------------------------------------------------
182215    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
182216          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
182217          ,p_balance_type_code => l_balance_type_code
182218          );
182219 
182220    -------------------------------------------------------------------------------------------
182221    -- 4262811 - Generate the Accrual Reversal lines
182222    -------------------------------------------------------------------------------------------
182223    BEGIN
182224       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
182225                               (g_array_event(p_event_id).array_value_num('header_index'));
182226       IF l_acc_rev_flag IS NULL THEN
182227          l_acc_rev_flag := 'N';
182228       END IF;
182229    EXCEPTION
182230       WHEN OTHERS THEN
182231          l_acc_rev_flag := 'N';
182232    END;
182233    --
182237        -- To allow MPA report to determine if it should generate report process
182234    IF (l_acc_rev_flag = 'Y') THEN
182235 
182236        -- 4645092  ------------------------------------------------------------------------------
182238        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
182239        ------------------------------------------------------------------------------------------
182240 
182241        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
182242        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
182243    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
182244    -- call ADRs
182245    -- Bug 4922099
182246    --
182247    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
182248         (NVL(l_actual_upg_option, 'N') = 'O') OR
182249         (NVL(l_enc_upg_option, 'N') = 'O')
182250       )
182251    THEN
182252    NULL;
182253    --
182254    --
182255    
182256   l_ccid := AcctDerRule_45(
182257            p_application_id           => p_application_id
182258          , p_ae_header_id             => l_ae_header_id 
182259 , p_source_3 => p_source_3
182260 , p_source_3_meaning => p_source_3_meaning
182261 , p_source_18 => p_source_18
182262 , p_source_31 => p_source_31
182263          , x_transaction_coa_id       => l_adr_transaction_coa_id
182264          , x_accounting_coa_id        => l_adr_accounting_coa_id
182265          , x_value_type_code          => l_adr_value_type_code
182266          , p_side                     => 'NA'
182267    );
182268 
182269    xla_ae_lines_pkg.set_ccid(
182270     p_code_combination_id          => l_ccid
182271   , p_value_type_code              => l_adr_value_type_code
182272   , p_transaction_coa_id           => l_adr_transaction_coa_id
182273   , p_accounting_coa_id            => l_adr_accounting_coa_id
182274   , p_adr_code                     => 'AP_WH_DIST_ACCT'
182275   , p_adr_type_code                => 'S'
182276   , p_component_type               => l_component_type
182277   , p_component_code               => l_component_code
182278   , p_component_type_code          => l_component_type_code
182279   , p_component_appl_id            => l_component_appl_id
182280   , p_amb_context_code             => l_amb_context_code
182281   , p_side                         => 'NA'
182282   );
182283 
182284 
182285    l_segment := AcctDerRule_13(
182286            p_application_id           => p_application_id
182287          , p_ae_header_id             => l_ae_header_id 
182288 , p_source_3 => p_source_3
182289 , p_source_3_meaning => p_source_3_meaning
182290 , p_source_18 => p_source_18
182291          , x_transaction_coa_id       => l_adr_transaction_coa_id
182292          , x_accounting_coa_id        => l_adr_accounting_coa_id
182293          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
182294          , x_flex_value_set_id        => l_adr_flex_value_set_id
182295          , x_value_type_code          => l_adr_value_type_code
182296          , x_value_combination_id     => l_adr_value_combination_id
182297          , x_value_segment_code       => l_adr_value_segment_code
182298          , p_side                     => 'NA'
182299          , p_override_seg_flag        => 'Y'
182300    );
182301 
182302    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
182303 
182304       xla_ae_lines_pkg.set_segment(
182305           p_to_segment_code         => 'GL_ACCOUNT'
182306         , p_segment_value           => l_segment
182307         , p_from_segment_code       => l_adr_value_segment_code
182308         , p_from_combination_id     => l_adr_value_combination_id
182309         , p_value_type_code         => l_adr_value_type_code
182310         , p_transaction_coa_id      => l_adr_transaction_coa_id
182311         , p_accounting_coa_id       => l_adr_accounting_coa_id
182312         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
182313         , p_flex_value_set_id       => l_adr_flex_value_set_id
182314         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
182315         , p_adr_type_code           => 'S'
182316         , p_component_type          => l_component_type
182317         , p_component_code          => l_component_code
182318         , p_component_type_code     => l_component_type_code
182319         , p_component_appl_id       => l_component_appl_id
182320         , p_amb_context_code        => l_amb_context_code
182321         , p_entity_code             => 'AP_INVOICES'
182322         , p_event_class_code        => 'PREPAYMENTS'
182323         , p_side                    => 'NA'
182324         );
182325 
182326   END IF;
182327 
182328    l_segment := AcctDerRule_24(
182329            p_application_id           => p_application_id
182330          , p_ae_header_id             => l_ae_header_id 
182331 , p_source_3 => p_source_3
182332 , p_source_3_meaning => p_source_3_meaning
182333 , p_source_31 => p_source_31
182334          , x_transaction_coa_id       => l_adr_transaction_coa_id
182335          , x_accounting_coa_id        => l_adr_accounting_coa_id
182336          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
182337          , x_flex_value_set_id        => l_adr_flex_value_set_id
182338          , x_value_type_code          => l_adr_value_type_code
182339          , x_value_combination_id     => l_adr_value_combination_id
182340          , x_value_segment_code       => l_adr_value_segment_code
182341          , p_side                     => 'NA'
182342          , p_override_seg_flag        => 'Y'
182343    );
182344 
182345    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
182346 
182347       xla_ae_lines_pkg.set_segment(
182348           p_to_segment_code         => 'GL_BALANCING'
182349         , p_segment_value           => l_segment
182350         , p_from_segment_code       => l_adr_value_segment_code
182351         , p_from_combination_id     => l_adr_value_combination_id
182355         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
182352         , p_value_type_code         => l_adr_value_type_code
182353         , p_transaction_coa_id      => l_adr_transaction_coa_id
182354         , p_accounting_coa_id       => l_adr_accounting_coa_id
182356         , p_flex_value_set_id       => l_adr_flex_value_set_id
182357         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
182358         , p_adr_type_code           => 'S'
182359         , p_component_type          => l_component_type
182360         , p_component_code          => l_component_code
182361         , p_component_type_code     => l_component_type_code
182362         , p_component_appl_id       => l_component_appl_id
182363         , p_amb_context_code        => l_amb_context_code
182364         , p_entity_code             => 'AP_INVOICES'
182365         , p_event_class_code        => 'PREPAYMENTS'
182366         , p_side                    => 'NA'
182367         );
182368 
182369   END IF;
182370 
182371    --
182372    --
182373    END IF;
182374 
182375        --
182376        -- Update the line information that should be overwritten
182377        --
182378        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
182379                                          p_header_num   => 1);
182380        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
182381 
182382        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
182383 
182384        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
182385           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
182386        END IF;
182387 
182388       --
182389       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
182390       --
182391       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
182392           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
182393       ELSE
182394           ---------------------------------------------------------------------------------------------------
182395           -- 4262811a Switch Sign
182396           ---------------------------------------------------------------------------------------------------
182397           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
182398           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
182399                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
182400           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
182401                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
182402           -- 5132302
182403           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
182404                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
182405 
182406       END IF;
182407 
182408       -- 4955764
182409       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
182410       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
182411 
182412 
182413       XLA_AE_LINES_PKG.ValidateCurrentLine;
182414       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
182415 
182416       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
182417                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
182418                ,p_balance_type_code => l_balance_type_code);
182419 
182420    END IF;
182421 
182422    -----------------------------------------------------------------------------------------
182423    -- 4262811 Multiperiod Accounting
182424    -----------------------------------------------------------------------------------------
182425      -- No MPA option is assigned.
182426 
182427 
182428 END IF;
182429 END IF;
182430 --
182431 
182432 --
182433 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
182434    trace
182435       (p_msg      => 'END of AcctLineType_290'
182436       ,p_level    => C_LEVEL_PROCEDURE
182437       ,p_module   => l_log_module);
182438 END IF;
182439 --
182440 EXCEPTION
182441   WHEN xla_exceptions_pkg.application_exception THEN
182442       RAISE;
182443   WHEN OTHERS THEN
182444        xla_exceptions_pkg.raise_message
182445            (p_location => 'XLA_00200_AAD_S_000006_PKG.AcctLineType_290');
182446 END AcctLineType_290;
182447 --
182448 
182449 ---------------------------------------
182450 --
182451 -- PRIVATE PROCEDURE
182452 --         insert_sources_291
182453 --
182454 ----------------------------------------
182455 --
182456 PROCEDURE insert_sources_291(
182457                                 p_target_ledger_id       IN NUMBER
182458                               , p_language               IN VARCHAR2
182459                               , p_sla_ledger_id          IN NUMBER
182460                               , p_pad_start_date         IN DATE
182461                               , p_pad_end_date           IN DATE
182462                          )
182463 IS
182464 
182465 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'CREDIT MEMOS_ALL';
182466 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'CREDIT MEMOS';
182467 p_apps_owner                   VARCHAR2(30);
182468 l_log_module                   VARCHAR2(240);
182469 BEGIN
182470 IF g_log_enabled THEN
182471       l_log_module := C_DEFAULT_MODULE||'.insert_sources_291';
182472 END IF;
182473 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
182474 
182475       trace
182479 
182476          (p_msg      => 'BEGIN of insert_sources_291'
182477          ,p_level    => C_LEVEL_PROCEDURE
182478          ,p_module   => l_log_module);
182480 END IF;
182481 
182482 -- select APPS owner
182483 SELECT oracle_username
182484   INTO p_apps_owner
182485   FROM fnd_oracle_userid
182486  WHERE read_only_flag = 'U'
182487 ;
182488 
182489 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
182490       trace
182491          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
182492                         ' - p_language = '||p_language||
182493                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
182494                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
182495                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
182496                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
182497          ,p_level    => C_LEVEL_STATEMENT
182498          ,p_module   => l_log_module);
182499 END IF;
182500 
182501 
182502 --
182503 INSERT INTO xla_diag_sources --hdr2
182504 (
182505         event_id
182506       , ledger_id
182507       , sla_ledger_id
182508       , description_language
182509       , object_name
182510       , object_type_code
182511       , line_number
182512       , source_application_id
182513       , source_type_code
182514       , source_code
182515       , source_value
182516       , source_meaning
182517       , created_by
182518       , creation_date
182519       , last_update_date
182520       , last_updated_by
182521       , last_update_login
182522       , program_update_date
182523       , program_application_id
182524       , program_id
182525       , request_id
182526 )
182527 SELECT
182528         event_id
182529       , p_target_ledger_id
182530       , p_sla_ledger_id
182531       , p_language
182532       , object_name
182533       , object_type_code
182534       , line_number
182535       , source_application_id
182536       , source_type_code
182537       , source_code
182538       , SUBSTR(source_value ,1,1996)
182539       , SUBSTR(source_meaning ,1,200)
182540       , xla_environment_pkg.g_Usr_Id
182541       , TRUNC(SYSDATE)
182542       , TRUNC(SYSDATE)
182543       , xla_environment_pkg.g_Usr_Id
182544       , xla_environment_pkg.g_Login_Id
182545       , TRUNC(SYSDATE)
182546       , xla_environment_pkg.g_Prog_Appl_Id
182547       , xla_environment_pkg.g_Prog_Id
182548       , xla_environment_pkg.g_Req_Id
182549   FROM (
182550        SELECT xet.event_id                  event_id
182551             , 0                          line_number
182552             , CASE r
182553                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
182554                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
182555                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
182556                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
182557                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
182558                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
182559                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
182560                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
182561                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
182562                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
182563                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
182564                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
182565                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
182566                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
182567                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
182568                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
182569                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
182570                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
182571                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
182572                 
182573                ELSE null
182574               END                           object_name
182575             , CASE r
182576                 WHEN 1 THEN 'HEADER' 
182577                 WHEN 2 THEN 'HEADER' 
182578                 WHEN 3 THEN 'HEADER' 
182579                 WHEN 4 THEN 'HEADER' 
182580                 WHEN 5 THEN 'HEADER' 
182581                 WHEN 6 THEN 'HEADER' 
182582                 WHEN 7 THEN 'HEADER' 
182583                 WHEN 8 THEN 'HEADER' 
182584                 WHEN 9 THEN 'HEADER' 
182585                 WHEN 10 THEN 'HEADER' 
182586                 WHEN 11 THEN 'HEADER' 
182587                 WHEN 12 THEN 'HEADER' 
182588                 WHEN 13 THEN 'HEADER' 
182589                 WHEN 14 THEN 'HEADER' 
182590                 WHEN 15 THEN 'HEADER' 
182591                 WHEN 16 THEN 'HEADER' 
182592                 WHEN 17 THEN 'HEADER' 
182593                 WHEN 18 THEN 'HEADER' 
182594                 WHEN 19 THEN 'HEADER' 
182595                 
182596                 ELSE null
182597               END                           object_type_code
182598             , CASE r
182599                 WHEN 1 THEN '200' 
182600                 WHEN 2 THEN '200' 
182601                 WHEN 3 THEN '200' 
182602                 WHEN 4 THEN '200' 
182603                 WHEN 5 THEN '200' 
182604                 WHEN 6 THEN '200' 
182605                 WHEN 7 THEN '200' 
182606                 WHEN 8 THEN '200' 
182607                 WHEN 9 THEN '200' 
182608                 WHEN 10 THEN '200' 
182609                 WHEN 11 THEN '200' 
182610                 WHEN 12 THEN '200' 
182611                 WHEN 13 THEN '200' 
182612                 WHEN 14 THEN '200' 
182613                 WHEN 15 THEN '200' 
182617                 WHEN 19 THEN '200' 
182614                 WHEN 16 THEN '200' 
182615                 WHEN 17 THEN '200' 
182616                 WHEN 18 THEN '200' 
182618                 
182619                 ELSE null
182620               END                           source_application_id
182621             , 'S'             source_type_code
182622             , CASE r
182623                 WHEN 1 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
182624                 WHEN 2 THEN 'ASP_RATE_VAR_GAIN_CCID' 
182625                 WHEN 3 THEN 'ASP_RATE_VAR_LOSS_CCID' 
182626                 WHEN 4 THEN 'AI_ACCTS_PAY_CCID' 
182627                 WHEN 5 THEN 'FSP_RETAINAGE_ACCOUNT' 
182628                 WHEN 6 THEN 'ASP_AUTO_OFFSET_FLAG' 
182629                 WHEN 7 THEN 'AI_INVOICE_ID' 
182630                 WHEN 8 THEN 'AI_INVOICE_CURRENCY_CODE' 
182631                 WHEN 9 THEN 'AI_VENDOR_ID' 
182632                 WHEN 10 THEN 'AI_VENDOR_SITE_ID' 
182633                 WHEN 11 THEN 'THIRD_PARTY_TYPE' 
182634                 WHEN 12 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG' 
182635                 WHEN 13 THEN 'INV_EXCHANGE_DATE' 
182636                 WHEN 14 THEN 'INV_EXCHANGE_RATE' 
182637                 WHEN 15 THEN 'INV_EXCHANGE_RATE_TYPE' 
182638                 WHEN 16 THEN 'AI_INVOICE_TYPE_LOOKUP_CODE' 
182639                 WHEN 17 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
182640                 WHEN 18 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
182641                 WHEN 19 THEN 'INV_DOC_SEQUENCE_VALUE' 
182642                 
182643                 ELSE null
182644               END                           source_code
182645             , CASE r
182646                 WHEN 1 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
182647                 WHEN 2 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
182648                 WHEN 3 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
182649                 WHEN 4 THEN TO_CHAR(h2.AI_ACCTS_PAY_CCID)
182650                 WHEN 5 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
182651                 WHEN 6 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
182652                 WHEN 7 THEN TO_CHAR(h2.AI_INVOICE_ID)
182653                 WHEN 8 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
182654                 WHEN 9 THEN TO_CHAR(h2.AI_VENDOR_ID)
182655                 WHEN 10 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
182656                 WHEN 11 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
182657                 WHEN 12 THEN TO_CHAR(h4.FSP_PURCH_ENCUMBRANCE_FLAG)
182658                 WHEN 13 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
182659                 WHEN 14 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
182660                 WHEN 15 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
182661                 WHEN 16 THEN TO_CHAR(h2.AI_INVOICE_TYPE_LOOKUP_CODE)
182662                 WHEN 17 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
182663                 WHEN 18 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
182664                 WHEN 19 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
182665                 
182666                 ELSE null
182667               END                           source_value
182668             , CASE r
182669                 WHEN 1 THEN fvl3.meaning
182670                 WHEN 6 THEN fvl35.meaning
182671                 WHEN 12 THEN fvl86.meaning
182672                 WHEN 16 THEN fvl159.meaning
182673                 
182674                 ELSE null
182675               END               source_meaning
182676          FROM xla_events_gt     xet  
182677       , AP_INVOICE_EXTRACT_HEADER_V  h2
182678       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
182679   , fnd_lookup_values    fvl3
182680   , fnd_lookup_values    fvl35
182681   , fnd_lookup_values    fvl86
182682   , fnd_lookup_values    fvl159
182683              ,(select rownum r from all_objects where rownum <= 19 and owner = p_apps_owner)
182684          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
182685            AND xet.event_class_code = C_EVENT_CLASS_CODE
182686               AND h2.event_id = xet.event_id
182687  AND h4.asp_org_id = h2.ai_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
182688   AND fvl3.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
182689   AND fvl3.view_application_id(+) = 200
182690   AND fvl3.language(+)            = USERENV('LANG')
182691      AND fvl35.lookup_type(+)         = 'YES_NO'
182692   AND fvl35.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
182693   AND fvl35.view_application_id(+) = 0
182694   AND fvl35.language(+)            = USERENV('LANG')
182695      AND fvl86.lookup_type(+)         = 'YES_NO'
182696   AND fvl86.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
182697   AND fvl86.view_application_id(+) = 0
182698   AND fvl86.language(+)            = USERENV('LANG')
182699      AND fvl159.lookup_type(+)         = 'INVOICE TYPE'
182700   AND fvl159.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
182701   AND fvl159.view_application_id(+) = 200
182702   AND fvl159.language(+)            = USERENV('LANG')
182703   
182704 )
182705 ;
182706 --
182707 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
182708 
182709       trace
182710          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
182711          ,p_level    => C_LEVEL_STATEMENT
182712          ,p_module   => l_log_module);
182713 
182714 END IF;
182715 --
182716 
182717 
182718 
182719 --
182720 INSERT INTO xla_diag_sources  --line2
182721 (
182722         event_id
182723       , ledger_id
182724       , sla_ledger_id
182725       , description_language
182726       , object_name
182727       , object_type_code
182728       , line_number
182729       , source_application_id
182730       , source_type_code
182731       , source_code
182732       , source_value
182733       , source_meaning
182734       , created_by
182735       , creation_date
182736       , last_update_date
182740       , program_application_id
182737       , last_updated_by
182738       , last_update_login
182739       , program_update_date
182741       , program_id
182742       , request_id
182743 )
182744 SELECT  event_id
182745       , p_target_ledger_id
182746       , p_sla_ledger_id
182747       , p_language
182748       , object_name
182749       , object_type_code
182750       , line_number
182751       , source_application_id
182752       , source_type_code
182753       , source_code
182754       , SUBSTR(source_value,1,1996)
182755       , SUBSTR(source_meaning ,1,200)
182756       , xla_environment_pkg.g_Usr_Id
182757       , TRUNC(SYSDATE)
182758       , TRUNC(SYSDATE)
182759       , xla_environment_pkg.g_Usr_Id
182760       , xla_environment_pkg.g_Login_Id
182761       , TRUNC(SYSDATE)
182762       , xla_environment_pkg.g_Prog_Appl_Id
182763       , xla_environment_pkg.g_Prog_Id
182764       , xla_environment_pkg.g_Req_Id
182765   FROM (
182766        SELECT xet.event_id                  event_id
182767             , l1.line_number                 line_number
182768             , CASE r
182769                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182770                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182771                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182772                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182773                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182774                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182775                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182776                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182777                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182778                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182779                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182780                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182781                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182782                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182783                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182784                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182785                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182786                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182787                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182788                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182789                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182790                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182791                 WHEN 23 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182792                 WHEN 24 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182793                 WHEN 25 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182794                 WHEN 26 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182795                 WHEN 27 THEN 'AP_PO_HEADERS_EXTRACT_V' 
182796                 WHEN 28 THEN 'AP_PO_HEADERS_EXTRACT_V' 
182797                 WHEN 29 THEN 'AP_PO_HEADERS_EXTRACT_V' 
182798                 WHEN 30 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182799                 WHEN 31 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182800                 WHEN 32 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182801                 WHEN 33 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182802                 WHEN 34 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182803                 WHEN 35 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182804                 WHEN 36 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
182805                 WHEN 37 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
182806                 WHEN 38 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182807                 WHEN 39 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182808                 WHEN 40 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182809                 WHEN 41 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182810                 WHEN 42 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182811                 WHEN 43 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182812                 WHEN 44 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182813                 WHEN 45 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182814                 WHEN 46 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182815                 WHEN 47 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182816                 WHEN 48 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182817                 WHEN 49 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182818                 WHEN 50 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182819                 WHEN 51 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182820                 WHEN 52 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182821                 WHEN 53 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182822                 WHEN 54 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
182823                 
182824                ELSE null
182825               END                           object_name
182826             , CASE r
182827                 WHEN 1 THEN 'LINE' 
182828                 WHEN 2 THEN 'LINE' 
182829                 WHEN 3 THEN 'LINE' 
182830                 WHEN 4 THEN 'LINE' 
182831                 WHEN 5 THEN 'LINE' 
182832                 WHEN 6 THEN 'LINE' 
182833                 WHEN 7 THEN 'LINE' 
182834                 WHEN 8 THEN 'LINE' 
182835                 WHEN 9 THEN 'LINE' 
182836                 WHEN 10 THEN 'LINE' 
182837                 WHEN 11 THEN 'LINE' 
182838                 WHEN 12 THEN 'LINE' 
182839                 WHEN 13 THEN 'LINE' 
182840                 WHEN 14 THEN 'LINE' 
182841                 WHEN 15 THEN 'LINE' 
182842                 WHEN 16 THEN 'LINE' 
182843                 WHEN 17 THEN 'LINE' 
182844                 WHEN 18 THEN 'LINE' 
182845                 WHEN 19 THEN 'LINE' 
182846                 WHEN 20 THEN 'LINE' 
182847                 WHEN 21 THEN 'LINE' 
182848                 WHEN 22 THEN 'LINE' 
182849                 WHEN 23 THEN 'LINE' 
182853                 WHEN 27 THEN 'LINE' 
182850                 WHEN 24 THEN 'LINE' 
182851                 WHEN 25 THEN 'LINE' 
182852                 WHEN 26 THEN 'LINE' 
182854                 WHEN 28 THEN 'LINE' 
182855                 WHEN 29 THEN 'LINE' 
182856                 WHEN 30 THEN 'LINE' 
182857                 WHEN 31 THEN 'LINE' 
182858                 WHEN 32 THEN 'LINE' 
182859                 WHEN 33 THEN 'LINE' 
182860                 WHEN 34 THEN 'LINE' 
182861                 WHEN 35 THEN 'LINE' 
182862                 WHEN 36 THEN 'LINE' 
182863                 WHEN 37 THEN 'LINE' 
182864                 WHEN 38 THEN 'LINE' 
182865                 WHEN 39 THEN 'LINE' 
182866                 WHEN 40 THEN 'LINE' 
182867                 WHEN 41 THEN 'LINE' 
182868                 WHEN 42 THEN 'LINE' 
182869                 WHEN 43 THEN 'LINE' 
182870                 WHEN 44 THEN 'LINE' 
182871                 WHEN 45 THEN 'LINE' 
182872                 WHEN 46 THEN 'LINE' 
182873                 WHEN 47 THEN 'LINE' 
182874                 WHEN 48 THEN 'LINE' 
182875                 WHEN 49 THEN 'LINE' 
182876                 WHEN 50 THEN 'LINE' 
182877                 WHEN 51 THEN 'LINE' 
182878                 WHEN 52 THEN 'LINE' 
182879                 WHEN 53 THEN 'LINE' 
182880                 WHEN 54 THEN 'LINE' 
182881                 
182882                 ELSE null
182883               END                           object_type_code
182884             , CASE r
182885                 WHEN 1 THEN '200' 
182886                 WHEN 2 THEN '200' 
182887                 WHEN 3 THEN '200' 
182888                 WHEN 4 THEN '200' 
182889                 WHEN 5 THEN '200' 
182890                 WHEN 6 THEN '200' 
182891                 WHEN 7 THEN '200' 
182892                 WHEN 8 THEN '200' 
182893                 WHEN 9 THEN '200' 
182894                 WHEN 10 THEN '200' 
182895                 WHEN 11 THEN '200' 
182896                 WHEN 12 THEN '200' 
182897                 WHEN 13 THEN '200' 
182898                 WHEN 14 THEN '200' 
182899                 WHEN 15 THEN '200' 
182900                 WHEN 16 THEN '200' 
182901                 WHEN 17 THEN '200' 
182902                 WHEN 18 THEN '200' 
182903                 WHEN 19 THEN '200' 
182904                 WHEN 20 THEN '200' 
182905                 WHEN 21 THEN '200' 
182906                 WHEN 22 THEN '200' 
182907                 WHEN 23 THEN '200' 
182908                 WHEN 24 THEN '200' 
182909                 WHEN 25 THEN '200' 
182910                 WHEN 26 THEN '200' 
182911                 WHEN 27 THEN '200' 
182912                 WHEN 28 THEN '200' 
182913                 WHEN 29 THEN '200' 
182914                 WHEN 30 THEN '200' 
182915                 WHEN 31 THEN '200' 
182916                 WHEN 32 THEN '200' 
182917                 WHEN 33 THEN '200' 
182918                 WHEN 34 THEN '200' 
182919                 WHEN 35 THEN '200' 
182920                 WHEN 36 THEN '200' 
182921                 WHEN 37 THEN '200' 
182922                 WHEN 38 THEN '200' 
182923                 WHEN 39 THEN '200' 
182924                 WHEN 40 THEN '200' 
182925                 WHEN 41 THEN '200' 
182926                 WHEN 42 THEN '200' 
182927                 WHEN 43 THEN '200' 
182928                 WHEN 44 THEN '200' 
182929                 WHEN 45 THEN '200' 
182930                 WHEN 46 THEN '200' 
182931                 WHEN 47 THEN '200' 
182932                 WHEN 48 THEN '200' 
182933                 WHEN 49 THEN '200' 
182934                 WHEN 50 THEN '200' 
182935                 WHEN 51 THEN '200' 
182936                 WHEN 52 THEN '200' 
182937                 WHEN 53 THEN '200' 
182938                 WHEN 54 THEN '200' 
182939                 
182940                 ELSE null
182941               END                           source_application_id
182942             , 'S'             source_type_code
182943             , CASE r
182944                 WHEN 1 THEN 'AID_DESCRIPTION' 
182945                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
182946                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
182947                 WHEN 4 THEN 'AID_DIST_CCID' 
182948                 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
182949                 WHEN 6 THEN 'AID_RET_RELATED_DIST_CCID' 
182950                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
182951                 WHEN 8 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
182952                 WHEN 9 THEN 'ASAT_LIAB_CCID' 
182953                 WHEN 10 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
182954                 WHEN 11 THEN 'DISTRIBUTION_LINK_TYPE' 
182955                 WHEN 12 THEN 'ALLOC_TO_MAIN_DIST_ID' 
182956                 WHEN 13 THEN 'BUS_FLOW_PO_APP_ID' 
182957                 WHEN 14 THEN 'BUS_FLOW_PO_DIST_TYPE' 
182958                 WHEN 15 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
182959                 WHEN 16 THEN 'BUS_FLOW_PO_DIST_ID' 
182960                 WHEN 17 THEN 'BUS_FLOW_PO_DOC_ID' 
182961                 WHEN 18 THEN 'AID_INVOICE_DIST_ID' 
182962                 WHEN 19 THEN 'UPG_ENC_CR_CCID' 
182963                 WHEN 20 THEN 'UPG_ENC_CR_AMT' 
182964                 WHEN 21 THEN 'UPG_ENC_CR_BASE_AMT' 
182965                 WHEN 22 THEN 'UPG_ENC_DR_CCID' 
182966                 WHEN 23 THEN 'UPG_ENC_DR_AMT' 
182967                 WHEN 24 THEN 'UPG_ENC_DR_BASE_AMT' 
182968                 WHEN 25 THEN 'UPG_AP_ENCUM_OPTION' 
182969                 WHEN 26 THEN 'AID_AMOUNT' 
182970                 WHEN 27 THEN 'POH_RATE_DATE' 
182971                 WHEN 28 THEN 'POH_RATE' 
182972                 WHEN 29 THEN 'POH_RATE_TYPE' 
182973                 WHEN 30 THEN 'DEFERRED_END_DATE' 
182977                 WHEN 34 THEN 'AID_PARENT_REVERSAL_ID' 
182974                 WHEN 31 THEN 'DEFERRED_OPTION' 
182975                 WHEN 32 THEN 'DEFERRED_START_DATE' 
182976                 WHEN 33 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
182978                 WHEN 35 THEN 'AID_STAT_AMOUNT' 
182979                 WHEN 36 THEN 'TAX_LINE_ID' 
182980                 WHEN 37 THEN 'REC_NREC_TAX_DIST_ID' 
182981                 WHEN 38 THEN 'SUMMARY_TAX_LINE_ID' 
182982                 WHEN 39 THEN 'UPG_CR_ENC_TYPE_ID' 
182983                 WHEN 40 THEN 'UPG_DR_ENC_TYPE_ID' 
182984                 WHEN 41 THEN 'BUS_FLOW_AP_APP_ID' 
182985                 WHEN 42 THEN 'BUS_FLOW_INV_DIST_TYPE' 
182986                 WHEN 43 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
182987                 WHEN 44 THEN 'BUS_FLOW_INV_DIST_ID' 
182988                 WHEN 45 THEN 'BUS_FLOW_INV_ID' 
182989                 WHEN 46 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
182990                 WHEN 47 THEN 'AID_AMOUNT_VARIANCE' 
182991                 WHEN 48 THEN 'AID_ENCUMBERED_FLAG' 
182992                 WHEN 49 THEN 'AID_BASE_AMOUNT_VARIANCE' 
182993                 WHEN 50 THEN 'SELF_ASSESSED_TAX_FLAG' 
182994                 WHEN 51 THEN 'ENCUMBRANCE_AMOUNT' 
182995                 WHEN 52 THEN 'ENCUMBRANCE_BASE_AMOUNT' 
182996                 WHEN 53 THEN 'AID_QUANTITY_VARIANCE' 
182997                 WHEN 54 THEN 'AID_BASE_QUANTITY_VARIANCE' 
182998                 
182999                 ELSE null
183000               END                           source_code
183001             , CASE r
183002                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
183003                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
183004                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
183005                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
183006                 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
183007                 WHEN 6 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
183008                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
183009                 WHEN 8 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
183010                 WHEN 9 THEN TO_CHAR(l1.ASAT_LIAB_CCID)
183011                 WHEN 10 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
183012                 WHEN 11 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
183013                 WHEN 12 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
183014                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
183015                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
183016                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
183017                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
183018                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
183019                 WHEN 18 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
183020                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
183021                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
183022                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
183023                 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
183024                 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
183025                 WHEN 24 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
183026                 WHEN 25 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
183027                 WHEN 26 THEN TO_CHAR(l1.AID_AMOUNT)
183028                 WHEN 27 THEN TO_CHAR(l3.POH_RATE_DATE)
183029                 WHEN 28 THEN TO_CHAR(l3.POH_RATE)
183030                 WHEN 29 THEN TO_CHAR(l3.POH_RATE_TYPE)
183031                 WHEN 30 THEN TO_CHAR(l1.DEFERRED_END_DATE)
183032                 WHEN 31 THEN TO_CHAR(l1.DEFERRED_OPTION)
183033                 WHEN 32 THEN TO_CHAR(l1.DEFERRED_START_DATE)
183034                 WHEN 33 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
183035                 WHEN 34 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
183036                 WHEN 35 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
183037                 WHEN 36 THEN TO_CHAR(l5.TAX_LINE_ID)
183038                 WHEN 37 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
183039                 WHEN 38 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
183040                 WHEN 39 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
183041                 WHEN 40 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
183042                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
183043                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
183044                 WHEN 43 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
183045                 WHEN 44 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
183046                 WHEN 45 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
183047                 WHEN 46 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
183048                 WHEN 47 THEN TO_CHAR(l1.AID_AMOUNT_VARIANCE)
183049                 WHEN 48 THEN TO_CHAR(l1.AID_ENCUMBERED_FLAG)
183050                 WHEN 49 THEN TO_CHAR(l1.AID_BASE_AMOUNT_VARIANCE)
183051                 WHEN 50 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
183052                 WHEN 51 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
183053                 WHEN 52 THEN TO_CHAR(l1.ENCUMBRANCE_BASE_AMOUNT)
183054                 WHEN 53 THEN TO_CHAR(l1.AID_QUANTITY_VARIANCE)
183055                 WHEN 54 THEN TO_CHAR(l1.AID_BASE_QUANTITY_VARIANCE)
183056                 
183057                 ELSE null
183058               END                           source_value
183059             , CASE r
183060                 WHEN 3 THEN fvl10.meaning
183061                 WHEN 5 THEN fvl21.meaning
183062                 WHEN 33 THEN fvl68.meaning
183063                 WHEN 46 THEN fvl84.meaning
183064                 WHEN 48 THEN fvl87.meaning
183065                 WHEN 50 THEN fvl135.meaning
183066                 
183067                 ELSE null
183068               END               source_meaning
183069          FROM  xla_events_gt     xet  
183070         , AP_INVOICE_EXTRACT_DETAILS_V  l1
183071         , AP_PO_HEADERS_EXTRACT_V  l3
183072         , ZX_AP_DEF_TAX_EXTRACT_V  l5
183073         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
183074   , fnd_lookup_values    fvl10
183075   , fnd_lookup_values    fvl21
183076   , fnd_lookup_values    fvl68
183080             , (select rownum r from all_objects where rownum <= 54 and owner = p_apps_owner)
183077   , fnd_lookup_values    fvl84
183078   , fnd_lookup_values    fvl87
183079   , fnd_lookup_values    fvl135
183081         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
183082           AND xet.event_class_code = C_EVENT_CLASS_CODE
183083             AND l1.event_id          = xet.event_id
183084  AND l1.pod_po_header_id  = l3.po_header_id (+)  AND l1.zrnd_tax_dist_id = l5.rec_nrec_tax_dist_id (+)  AND l1.zrnd_tax_dist_id = l6.rec_nrec_tax_dist_id (+)    AND fvl10.lookup_type(+)         = 'DESTINATION TYPE'
183085   AND fvl10.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
183086   AND fvl10.view_application_id(+) = 201
183087   AND fvl10.language(+)            = USERENV('LANG')
183088      AND fvl21.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
183089   AND fvl21.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
183090   AND fvl21.view_application_id(+) = 200
183091   AND fvl21.language(+)            = USERENV('LANG')
183092      AND fvl68.lookup_type(+)         = 'YES_NO'
183093   AND fvl68.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
183094   AND fvl68.view_application_id(+) = 0
183095   AND fvl68.language(+)            = USERENV('LANG')
183096      AND fvl84.lookup_type(+)         = 'YES_NO'
183097   AND fvl84.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
183098   AND fvl84.view_application_id(+) = 0
183099   AND fvl84.language(+)            = USERENV('LANG')
183100      AND fvl87.lookup_type(+)         = 'YES_NO'
183101   AND fvl87.lookup_code(+)         = l1.AID_ENCUMBERED_FLAG
183102   AND fvl87.view_application_id(+) = 0
183103   AND fvl87.language(+)            = USERENV('LANG')
183104      AND fvl135.lookup_type(+)         = 'YES_NO'
183105   AND fvl135.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
183106   AND fvl135.view_application_id(+) = 0
183107   AND fvl135.language(+)            = USERENV('LANG')
183108   
183109 )
183110 ;
183111 --
183112 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
183113 
183114       trace
183115          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
183116          ,p_level    => C_LEVEL_STATEMENT
183117          ,p_module   => l_log_module);
183118 
183119 END IF;
183120 
183121 
183122 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
183123       trace
183124          (p_msg      => 'END of insert_sources_291'
183125          ,p_level    => C_LEVEL_PROCEDURE
183126          ,p_module   => l_log_module);
183127 END IF;
183128 EXCEPTION
183129   WHEN xla_exceptions_pkg.application_exception THEN
183130       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
183131             trace
183132                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
183133                ,p_level    => C_LEVEL_EXCEPTION
183134                ,p_module   => l_log_module);
183135       END IF;
183136       RAISE;
183137   WHEN OTHERS THEN
183138       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
183139             trace
183140                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
183141                ,p_level    => C_LEVEL_EXCEPTION
183142                ,p_module   => l_log_module);
183143        END IF;
183144        xla_exceptions_pkg.raise_message
183145            (p_location => 'XLA_00200_AAD_S_000006_PKG.insert_sources_291');
183146 END insert_sources_291;
183147 --
183148 
183149 ---------------------------------------
183150 --
183151 -- PRIVATE FUNCTION
183152 --         EventClass_291
183153 --
183154 ----------------------------------------
183155 --
183156 FUNCTION EventClass_291
183157        (p_application_id         IN NUMBER
183158        ,p_base_ledger_id         IN NUMBER
183159        ,p_target_ledger_id       IN NUMBER
183160        ,p_language               IN VARCHAR2
183161        ,p_currency_code          IN VARCHAR2
183162        ,p_sla_ledger_id          IN NUMBER
183163        ,p_pad_start_date         IN DATE
183164        ,p_pad_end_date           IN DATE
183165        ,p_primary_ledger_id      IN NUMBER)
183166 RETURN BOOLEAN IS
183167 --
183168 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'CREDIT MEMOS_ALL';
183169 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'CREDIT MEMOS';
183170 
183171 l_calculate_acctd_flag   VARCHAR2(1) :='N';
183172 l_calculate_g_l_flag     VARCHAR2(1) :='N';
183173 --
183174 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
183175 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
183176 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
183177 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
183178 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
183179 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
183180 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
183181 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
183182 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
183183 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
183184 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
183185 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
183186 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
183187 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
183188 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
183189 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
183190 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
183191 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
183192 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
183196 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
183193 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
183194 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
183195 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
183197 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
183198 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
183199 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
183200 
183201 l_event_id                             NUMBER;
183202 l_previous_event_id                    NUMBER;
183203 l_first_event_id                       NUMBER;
183204 l_last_event_id                        NUMBER;
183205 
183206 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
183207 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
183208 --
183209 --
183210 l_result                    BOOLEAN := TRUE;
183211 l_rows                      NUMBER  := 1000;
183212 l_event_type_name           VARCHAR2(80) := 'All';
183213 l_event_class_name          VARCHAR2(80) := 'Credit Memos';
183214 l_description               VARCHAR2(4000);
183215 l_transaction_reversal      NUMBER;
183216 l_ae_header_id              NUMBER;
183217 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
183218 l_log_module                VARCHAR2(240);
183219 --
183220 l_acct_reversal_source      VARCHAR2(30);
183221 l_trx_reversal_source       VARCHAR2(30);
183222 
183223 l_continue_with_lines       BOOLEAN := TRUE;
183224 --
183225 l_acc_rev_gl_date_source    DATE;                      -- 4262811
183226 --
183227 type t_array_event_id is table of number index by binary_integer;
183228 
183229 l_rec_array_event                    t_rec_array_event;
183230 l_null_rec_array_event               t_rec_array_event;
183231 l_array_ae_header_id                 xla_number_array_type;
183232 l_actual_flag                        VARCHAR2(1) := NULL;
183233 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
183234 l_balance_type_code                  VARCHAR2(1) :=NULL;
183235 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
183236 
183237 --
183238 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
183239 --
183240 
183241 TYPE t_array_source_3 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
183242 TYPE t_array_source_8 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
183243 TYPE t_array_source_11 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
183244 TYPE t_array_source_22 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
183245 TYPE t_array_source_28 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
183246 TYPE t_array_source_35 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
183247 TYPE t_array_source_46 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
183248 TYPE t_array_source_55 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
183249 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
183250 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
183251 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
183252 TYPE t_array_source_86 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
183253 TYPE t_array_source_136 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
183254 TYPE t_array_source_137 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
183255 TYPE t_array_source_138 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
183256 TYPE t_array_source_159 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
183257 TYPE t_array_source_165 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
183258 TYPE t_array_source_166 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
183259 TYPE t_array_source_167 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
183260 
183261 TYPE t_array_source_1 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
183262 TYPE t_array_source_9 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
183263 TYPE t_array_source_10 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
183264 TYPE t_array_source_18 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
183265 TYPE t_array_source_21 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
183266 TYPE t_array_source_30 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
183267 TYPE t_array_source_31 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
183268 TYPE t_array_source_38 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
183269 TYPE t_array_source_39 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ASAT_LIAB_CCID%TYPE INDEX BY BINARY_INTEGER;
183270 TYPE t_array_source_41 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
183271 TYPE t_array_source_43 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
183272 TYPE t_array_source_45 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
183276 TYPE t_array_source_50 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
183273 TYPE t_array_source_47 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
183274 TYPE t_array_source_48 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
183275 TYPE t_array_source_49 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
183277 TYPE t_array_source_51 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
183278 TYPE t_array_source_52 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
183279 TYPE t_array_source_53 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
183280 TYPE t_array_source_54 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
183281 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
183282 TYPE t_array_source_57 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
183283 TYPE t_array_source_58 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
183284 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
183285 TYPE t_array_source_60 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
183286 TYPE t_array_source_61 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
183287 TYPE t_array_source_62 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
183288 TYPE t_array_source_63 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
183289 TYPE t_array_source_64 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
183290 TYPE t_array_source_65 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
183291 TYPE t_array_source_66 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
183292 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
183293 TYPE t_array_source_68 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
183294 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
183295 TYPE t_array_source_73 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
183296 TYPE t_array_source_74 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
183297 TYPE t_array_source_75 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
183298 TYPE t_array_source_76 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
183299 TYPE t_array_source_77 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
183300 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
183301 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
183302 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
183303 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
183304 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
183305 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
183306 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
183307 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
183308 TYPE t_array_source_87 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_ENCUMBERED_FLAG%TYPE INDEX BY BINARY_INTEGER;
183309 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_BASE_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
183310 TYPE t_array_source_135 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
183311 TYPE t_array_source_143 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
183312 TYPE t_array_source_144 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ENCUMBRANCE_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
183313 TYPE t_array_source_161 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
183314 TYPE t_array_source_162 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_BASE_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
183315 
183316 l_array_source_3              t_array_source_3;
183317 l_array_source_3_meaning      t_array_lookup_meaning;
183318 l_array_source_8              t_array_source_8;
183319 l_array_source_11              t_array_source_11;
183320 l_array_source_22              t_array_source_22;
183321 l_array_source_28              t_array_source_28;
183322 l_array_source_35              t_array_source_35;
183323 l_array_source_35_meaning      t_array_lookup_meaning;
183324 l_array_source_46              t_array_source_46;
183325 l_array_source_55              t_array_source_55;
183326 l_array_source_69              t_array_source_69;
183327 l_array_source_70              t_array_source_70;
183328 l_array_source_71              t_array_source_71;
183329 l_array_source_86              t_array_source_86;
183330 l_array_source_86_meaning      t_array_lookup_meaning;
183331 l_array_source_136              t_array_source_136;
183332 l_array_source_137              t_array_source_137;
183333 l_array_source_138              t_array_source_138;
183334 l_array_source_159              t_array_source_159;
183335 l_array_source_159_meaning      t_array_lookup_meaning;
183336 l_array_source_165              t_array_source_165;
183337 l_array_source_166              t_array_source_166;
183338 l_array_source_167              t_array_source_167;
183339 
183343 l_array_source_10_meaning      t_array_lookup_meaning;
183340 l_array_source_1      t_array_source_1;
183341 l_array_source_9      t_array_source_9;
183342 l_array_source_10      t_array_source_10;
183344 l_array_source_18      t_array_source_18;
183345 l_array_source_21      t_array_source_21;
183346 l_array_source_21_meaning      t_array_lookup_meaning;
183347 l_array_source_30      t_array_source_30;
183348 l_array_source_31      t_array_source_31;
183349 l_array_source_38      t_array_source_38;
183350 l_array_source_39      t_array_source_39;
183351 l_array_source_41      t_array_source_41;
183352 l_array_source_43      t_array_source_43;
183353 l_array_source_45      t_array_source_45;
183354 l_array_source_47      t_array_source_47;
183355 l_array_source_48      t_array_source_48;
183356 l_array_source_49      t_array_source_49;
183357 l_array_source_50      t_array_source_50;
183358 l_array_source_51      t_array_source_51;
183359 l_array_source_52      t_array_source_52;
183360 l_array_source_53      t_array_source_53;
183361 l_array_source_54      t_array_source_54;
183362 l_array_source_56      t_array_source_56;
183363 l_array_source_57      t_array_source_57;
183364 l_array_source_58      t_array_source_58;
183365 l_array_source_59      t_array_source_59;
183366 l_array_source_60      t_array_source_60;
183367 l_array_source_61      t_array_source_61;
183368 l_array_source_62      t_array_source_62;
183369 l_array_source_63      t_array_source_63;
183370 l_array_source_64      t_array_source_64;
183371 l_array_source_65      t_array_source_65;
183372 l_array_source_66      t_array_source_66;
183373 l_array_source_67      t_array_source_67;
183374 l_array_source_68      t_array_source_68;
183375 l_array_source_68_meaning      t_array_lookup_meaning;
183376 l_array_source_72      t_array_source_72;
183377 l_array_source_73      t_array_source_73;
183378 l_array_source_74      t_array_source_74;
183379 l_array_source_75      t_array_source_75;
183380 l_array_source_76      t_array_source_76;
183381 l_array_source_77      t_array_source_77;
183382 l_array_source_78      t_array_source_78;
183383 l_array_source_79      t_array_source_79;
183384 l_array_source_80      t_array_source_80;
183385 l_array_source_81      t_array_source_81;
183386 l_array_source_82      t_array_source_82;
183387 l_array_source_83      t_array_source_83;
183388 l_array_source_84      t_array_source_84;
183389 l_array_source_84_meaning      t_array_lookup_meaning;
183390 l_array_source_85      t_array_source_85;
183391 l_array_source_87      t_array_source_87;
183392 l_array_source_87_meaning      t_array_lookup_meaning;
183393 l_array_source_88      t_array_source_88;
183394 l_array_source_135      t_array_source_135;
183395 l_array_source_135_meaning      t_array_lookup_meaning;
183396 l_array_source_143      t_array_source_143;
183397 l_array_source_144      t_array_source_144;
183398 l_array_source_161      t_array_source_161;
183399 l_array_source_162      t_array_source_162;
183400 
183401 --
183402 CURSOR header_cur
183403 IS
183404 SELECT /*+ leading(xet) cardinality(xet,1) */
183405 -- Event Class Code: CREDIT MEMOS
183406     xet.entity_id
183407    ,xet.legal_entity_id
183408    ,xet.entity_code
183409    ,xet.transaction_number
183410    ,xet.event_id
183411    ,xet.event_class_code
183412    ,xet.event_type_code
183413    ,xet.event_number
183414    ,xet.event_date
183415    ,xet.transaction_date
183416    ,xet.reference_num_1
183417    ,xet.reference_num_2
183418    ,xet.reference_num_3
183419    ,xet.reference_num_4
183420    ,xet.reference_char_1
183421    ,xet.reference_char_2
183422    ,xet.reference_char_3
183423    ,xet.reference_char_4
183424    ,xet.reference_date_1
183425    ,xet.reference_date_2
183426    ,xet.reference_date_3
183427    ,xet.reference_date_4
183428    ,xet.event_created_by
183429    ,xet.budgetary_control_flag 
183430   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_3
183431   , fvl3.meaning   source_3_meaning
183432   , h4.ASP_RATE_VAR_GAIN_CCID    source_8
183433   , h4.ASP_RATE_VAR_LOSS_CCID    source_11
183434   , h2.AI_ACCTS_PAY_CCID    source_22
183435   , h4.FSP_RETAINAGE_ACCOUNT    source_28
183436   , h4.ASP_AUTO_OFFSET_FLAG    source_35
183437   , fvl35.meaning   source_35_meaning
183438   , h2.AI_INVOICE_ID    source_46
183439   , h2.AI_INVOICE_CURRENCY_CODE    source_55
183440   , h2.AI_VENDOR_ID    source_69
183441   , h2.AI_VENDOR_SITE_ID    source_70
183442   , h2.THIRD_PARTY_TYPE    source_71
183443   , h4.FSP_PURCH_ENCUMBRANCE_FLAG    source_86
183444   , fvl86.meaning   source_86_meaning
183445   , h2.INV_EXCHANGE_DATE    source_136
183446   , h2.INV_EXCHANGE_RATE    source_137
183447   , h2.INV_EXCHANGE_RATE_TYPE    source_138
183448   , h2.AI_INVOICE_TYPE_LOOKUP_CODE    source_159
183449   , fvl159.meaning   source_159_meaning
183450   , h2.INV_DOC_SEQUENCE_CATEGORY    source_165
183451   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_166
183452   , h2.INV_DOC_SEQUENCE_VALUE    source_167
183453   FROM xla_events_gt     xet 
183454   , AP_INVOICE_EXTRACT_HEADER_V  h2
183455   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
183456   , fnd_lookup_values    fvl3
183457   , fnd_lookup_values    fvl35
183458   , fnd_lookup_values    fvl86
183459   , fnd_lookup_values    fvl159
183460  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
183461    and xet.event_class_code = C_EVENT_CLASS_CODE
183462    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
183463  AND h4.asp_org_id = h2.ai_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
183464   AND fvl3.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
183465   AND fvl3.view_application_id(+) = 200
183469   AND fvl35.view_application_id(+) = 0
183466   AND fvl3.language(+)            = USERENV('LANG')
183467      AND fvl35.lookup_type(+)         = 'YES_NO'
183468   AND fvl35.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
183470   AND fvl35.language(+)            = USERENV('LANG')
183471      AND fvl86.lookup_type(+)         = 'YES_NO'
183472   AND fvl86.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
183473   AND fvl86.view_application_id(+) = 0
183474   AND fvl86.language(+)            = USERENV('LANG')
183475      AND fvl159.lookup_type(+)         = 'INVOICE TYPE'
183476   AND fvl159.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
183477   AND fvl159.view_application_id(+) = 200
183478   AND fvl159.language(+)            = USERENV('LANG')
183479   
183480  ORDER BY event_id
183481 ;
183482 
183483 
183484 --
183485 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
183486 IS
183487 SELECT  /*+ leading(xet) cardinality(xet,1) */
183488 -- Event Class Code: CREDIT MEMOS
183489     xet.entity_id
183490    ,xet.legal_entity_id
183491    ,xet.entity_code
183492    ,xet.transaction_number
183493    ,xet.event_id
183494    ,xet.event_class_code
183495    ,xet.event_type_code
183496    ,xet.event_number
183497    ,xet.event_date
183498    ,xet.transaction_date
183499    ,xet.reference_num_1
183500    ,xet.reference_num_2
183501    ,xet.reference_num_3
183502    ,xet.reference_num_4
183503    ,xet.reference_char_1
183504    ,xet.reference_char_2
183505    ,xet.reference_char_3
183506    ,xet.reference_char_4
183507    ,xet.reference_date_1
183508    ,xet.reference_date_2
183509    ,xet.reference_date_3
183510    ,xet.reference_date_4
183511    ,xet.event_created_by
183512    ,xet.budgetary_control_flag
183513  , l1.LINE_NUMBER  
183514   , l1.AID_DESCRIPTION    source_1
183515   , l1.INV_DIST_BASE_AMOUNT    source_9
183516   , l1.RELATED_INV_DIST_DEST_TYPE    source_10
183517   , fvl10.meaning   source_10_meaning
183518   , l1.AID_DIST_CCID    source_18
183519   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_21
183520   , fvl21.meaning   source_21_meaning
183521   , l1.AID_RET_RELATED_DIST_CCID    source_30
183522   , l1.AWT_RELATED_DIST_ACCOUNT    source_31
183523   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_38
183524   , l1.ASAT_LIAB_CCID    source_39
183525   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_41
183526   , l1.DISTRIBUTION_LINK_TYPE    source_43
183527   , l1.ALLOC_TO_MAIN_DIST_ID    source_45
183528   , l1.BUS_FLOW_PO_APP_ID    source_47
183529   , l1.BUS_FLOW_PO_DIST_TYPE    source_48
183530   , l1.BUS_FLOW_PO_ENTITY_CODE    source_49
183531   , l1.BUS_FLOW_PO_DIST_ID    source_50
183532   , l1.BUS_FLOW_PO_DOC_ID    source_51
183533   , l1.AID_INVOICE_DIST_ID    source_52
183534   , l1.UPG_ENC_CR_CCID    source_53
183535   , l1.UPG_ENC_CR_AMT    source_54
183536   , l1.UPG_ENC_CR_BASE_AMT    source_56
183537   , l1.UPG_ENC_DR_CCID    source_57
183538   , l1.UPG_ENC_DR_AMT    source_58
183539   , l1.UPG_ENC_DR_BASE_AMT    source_59
183540   , l1.UPG_AP_ENCUM_OPTION    source_60
183541   , l1.AID_AMOUNT    source_61
183542   , l3.POH_RATE_DATE    source_62
183543   , l3.POH_RATE    source_63
183544   , l3.POH_RATE_TYPE    source_64
183545   , l1.DEFERRED_END_DATE    source_65
183546   , l1.DEFERRED_OPTION    source_66
183547   , l1.DEFERRED_START_DATE    source_67
183548   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_68
183549   , fvl68.meaning   source_68_meaning
183550   , l1.AID_PARENT_REVERSAL_ID    source_72
183551   , l1.AID_STAT_AMOUNT    source_73
183552   , l5.TAX_LINE_ID    source_74
183553   , l6.REC_NREC_TAX_DIST_ID    source_75
183554   , l1.SUMMARY_TAX_LINE_ID    source_76
183555   , l1.UPG_CR_ENC_TYPE_ID    source_77
183556   , l1.UPG_DR_ENC_TYPE_ID    source_78
183557   , l1.BUS_FLOW_AP_APP_ID    source_79
183558   , l1.BUS_FLOW_INV_DIST_TYPE    source_80
183559   , l1.BUS_FLOW_INV_ENTITY_CODE    source_81
183560   , l1.BUS_FLOW_INV_DIST_ID    source_82
183561   , l1.BUS_FLOW_INV_ID    source_83
183562   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_84
183563   , fvl84.meaning   source_84_meaning
183564   , l1.AID_AMOUNT_VARIANCE    source_85
183565   , l1.AID_ENCUMBERED_FLAG    source_87
183566   , fvl87.meaning   source_87_meaning
183567   , l1.AID_BASE_AMOUNT_VARIANCE    source_88
183568   , l1.SELF_ASSESSED_TAX_FLAG    source_135
183569   , fvl135.meaning   source_135_meaning
183570   , l1.ENCUMBRANCE_AMOUNT    source_143
183571   , l1.ENCUMBRANCE_BASE_AMOUNT    source_144
183572   , l1.AID_QUANTITY_VARIANCE    source_161
183573   , l1.AID_BASE_QUANTITY_VARIANCE    source_162
183574   FROM xla_events_gt     xet 
183575   , AP_INVOICE_EXTRACT_DETAILS_V  l1
183576   , AP_PO_HEADERS_EXTRACT_V  l3
183577   , ZX_AP_DEF_TAX_EXTRACT_V  l5
183578   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
183579   , fnd_lookup_values    fvl10
183580   , fnd_lookup_values    fvl21
183581   , fnd_lookup_values    fvl68
183582   , fnd_lookup_values    fvl84
183583   , fnd_lookup_values    fvl87
183584   , fnd_lookup_values    fvl135
183585  WHERE xet.event_id between x_first_event_id and x_last_event_id
183586    and xet.event_date between p_pad_start_date and p_pad_end_date
183587    and xet.event_class_code = C_EVENT_CLASS_CODE
183588    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
183589  AND l1.POD_PO_Header_Id  = l3.PO_Header_Id (+)  AND l1.ZRND_tax_dist_id = l5.REC_NREC_TAX_DIST_ID (+)  AND l1.ZRND_tax_dist_id = l6.REC_NREC_TAX_DIST_ID (+)    AND fvl10.lookup_type(+)         = 'DESTINATION TYPE'
183590   AND fvl10.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
183591   AND fvl10.view_application_id(+) = 201
183592   AND fvl10.language(+)            = USERENV('LANG')
183596   AND fvl21.language(+)            = USERENV('LANG')
183593      AND fvl21.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
183594   AND fvl21.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
183595   AND fvl21.view_application_id(+) = 200
183597      AND fvl68.lookup_type(+)         = 'YES_NO'
183598   AND fvl68.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
183599   AND fvl68.view_application_id(+) = 0
183600   AND fvl68.language(+)            = USERENV('LANG')
183601      AND fvl84.lookup_type(+)         = 'YES_NO'
183602   AND fvl84.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
183603   AND fvl84.view_application_id(+) = 0
183604   AND fvl84.language(+)            = USERENV('LANG')
183605      AND fvl87.lookup_type(+)         = 'YES_NO'
183606   AND fvl87.lookup_code(+)         = l1.AID_ENCUMBERED_FLAG
183607   AND fvl87.view_application_id(+) = 0
183608   AND fvl87.language(+)            = USERENV('LANG')
183609      AND fvl135.lookup_type(+)         = 'YES_NO'
183610   AND fvl135.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
183611   AND fvl135.view_application_id(+) = 0
183612   AND fvl135.language(+)            = USERENV('LANG')
183613   ;
183614 
183615 --
183616 BEGIN
183617 IF g_log_enabled THEN
183618    l_log_module := C_DEFAULT_MODULE||'.EventClass_291';
183619 END IF;
183620 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
183621    trace
183622       (p_msg      => 'BEGIN of EventClass_291'
183623       ,p_level    => C_LEVEL_PROCEDURE
183624       ,p_module   => l_log_module);
183625 END IF;
183626 
183627 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
183628    trace
183629       (p_msg      => 'p_application_id = '||p_application_id||
183630                      ' - p_base_ledger_id = '||p_base_ledger_id||
183631                      ' - p_target_ledger_id  = '||p_target_ledger_id||
183632                      ' - p_language = '||p_language||
183633                      ' - p_currency_code = '||p_currency_code||
183634                      ' - p_sla_ledger_id = '||p_sla_ledger_id
183635       ,p_level    => C_LEVEL_STATEMENT
183636       ,p_module   => l_log_module);
183637 END IF;
183638 --
183639 -- initialze arrays
183640 --
183641 g_array_event.DELETE;
183642 l_rec_array_event := l_null_rec_array_event;
183643 --
183644 --------------------------------------
183645 -- 4262811 Initialze MPA Line Number
183646 --------------------------------------
183647 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
183648 
183649 --
183650 
183651 --
183652 OPEN header_cur;
183653 --
183654 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
183655    trace
183656    (p_msg      => 'SQL - FETCH header_cur'
183657    ,p_level    => C_LEVEL_STATEMENT
183658    ,p_module   => l_log_module);
183659 END IF;
183660 --
183661 LOOP
183662 FETCH header_cur BULK COLLECT INTO
183663         l_array_entity_id
183664       , l_array_legal_entity_id
183665       , l_array_entity_code
183666       , l_array_transaction_num
183667       , l_array_event_id
183668       , l_array_class_code
183669       , l_array_event_type
183670       , l_array_event_number
183671       , l_array_event_date
183672       , l_array_transaction_date
183673       , l_array_reference_num_1
183674       , l_array_reference_num_2
183675       , l_array_reference_num_3
183676       , l_array_reference_num_4
183677       , l_array_reference_char_1
183678       , l_array_reference_char_2
183679       , l_array_reference_char_3
183680       , l_array_reference_char_4
183681       , l_array_reference_date_1
183682       , l_array_reference_date_2
183683       , l_array_reference_date_3
183684       , l_array_reference_date_4
183685       , l_array_event_created_by
183686       , l_array_budgetary_control_flag 
183687       , l_array_source_3
183688       , l_array_source_3_meaning
183689       , l_array_source_8
183690       , l_array_source_11
183691       , l_array_source_22
183692       , l_array_source_28
183693       , l_array_source_35
183694       , l_array_source_35_meaning
183695       , l_array_source_46
183696       , l_array_source_55
183697       , l_array_source_69
183698       , l_array_source_70
183699       , l_array_source_71
183700       , l_array_source_86
183701       , l_array_source_86_meaning
183702       , l_array_source_136
183703       , l_array_source_137
183704       , l_array_source_138
183705       , l_array_source_159
183706       , l_array_source_159_meaning
183707       , l_array_source_165
183708       , l_array_source_166
183709       , l_array_source_167
183710       LIMIT l_rows;
183711 --
183712 IF (C_LEVEL_EVENT >= g_log_level) THEN
183713    trace
183714    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
183715    ,p_level    => C_LEVEL_EVENT
183716    ,p_module   => l_log_module);
183717 END IF;
183718 --
183719 EXIT WHEN l_array_entity_id.COUNT = 0;
183720 
183721 -- initialize arrays
183722 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
183723 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
183724 
183725 --
183726 -- Bug 4458708
183727 --
183728 XLA_AE_LINES_PKG.g_LineNumber := 0;
183729 
183730 
183731 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
183732 g_last_hdr_idx := l_array_event_id.LAST;
183733 --
183734 -- loop for the headers. Each iteration is for each header extract row
183735 -- fetched in header cursor
183736 --
183737 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
183738 
183739 --
183740 -- set event info as cache for other routines to refer event attributes
183741 --
183742 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
183743    (p_application_id           => p_application_id
183747    ,p_entity_id                => l_array_entity_id(hdr_idx)
183744    ,p_primary_ledger_id        => p_primary_ledger_id
183745    ,p_base_ledger_id           => p_base_ledger_id
183746    ,p_target_ledger_id         => p_target_ledger_id
183748    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
183749    ,p_entity_code              => l_array_entity_code(hdr_idx)
183750    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
183751    ,p_event_id                 => l_array_event_id(hdr_idx)
183752    ,p_event_class_code         => l_array_class_code(hdr_idx)
183753    ,p_event_type_code          => l_array_event_type(hdr_idx)
183754    ,p_event_number             => l_array_event_number(hdr_idx)
183755    ,p_event_date               => l_array_event_date(hdr_idx)
183756    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
183757    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
183758    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
183759    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
183760    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
183761    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
183762    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
183763    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
183764    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
183765    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
183766    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
183767    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
183768    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
183769    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
183770    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
183771 
183772 --
183773 -- set the status of entry to C_VALID (0)
183774 --
183775 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
183776 
183777 --
183778 -- initialize a row for ae header
183779 --
183780 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
183781 
183782 l_event_id := l_array_event_id(hdr_idx);
183783 
183784 --
183785 -- storing the hdr_idx for event. May be used by line cursor.
183786 --
183787 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
183788 
183789 --
183790 -- store sources from header extract. This can be improved to
183791 -- store only those sources from header extract that may be used in lines
183792 --
183793 
183794 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
183795 g_array_event(l_event_id).array_value_char('source_3_meaning') := l_array_source_3_meaning(hdr_idx);
183796 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
183797 g_array_event(l_event_id).array_value_num('source_11') := l_array_source_11(hdr_idx);
183798 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
183799 g_array_event(l_event_id).array_value_num('source_28') := l_array_source_28(hdr_idx);
183800 g_array_event(l_event_id).array_value_char('source_35') := l_array_source_35(hdr_idx);
183801 g_array_event(l_event_id).array_value_char('source_35_meaning') := l_array_source_35_meaning(hdr_idx);
183802 g_array_event(l_event_id).array_value_num('source_46') := l_array_source_46(hdr_idx);
183803 g_array_event(l_event_id).array_value_char('source_55') := l_array_source_55(hdr_idx);
183804 g_array_event(l_event_id).array_value_num('source_69') := l_array_source_69(hdr_idx);
183805 g_array_event(l_event_id).array_value_num('source_70') := l_array_source_70(hdr_idx);
183806 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
183807 g_array_event(l_event_id).array_value_char('source_86') := l_array_source_86(hdr_idx);
183808 g_array_event(l_event_id).array_value_char('source_86_meaning') := l_array_source_86_meaning(hdr_idx);
183809 g_array_event(l_event_id).array_value_date('source_136') := l_array_source_136(hdr_idx);
183810 g_array_event(l_event_id).array_value_num('source_137') := l_array_source_137(hdr_idx);
183811 g_array_event(l_event_id).array_value_char('source_138') := l_array_source_138(hdr_idx);
183812 g_array_event(l_event_id).array_value_char('source_159') := l_array_source_159(hdr_idx);
183813 g_array_event(l_event_id).array_value_char('source_159_meaning') := l_array_source_159_meaning(hdr_idx);
183814 g_array_event(l_event_id).array_value_char('source_165') := l_array_source_165(hdr_idx);
183815 g_array_event(l_event_id).array_value_num('source_166') := l_array_source_166(hdr_idx);
183816 g_array_event(l_event_id).array_value_num('source_167') := l_array_source_167(hdr_idx);
183817 
183818 --
183819 -- initilaize the status of ae headers for diffrent balance types
183820 -- the status is initialised to C_NOT_CREATED (2)
183821 --
183822 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
183823 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
183824 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
183825 
183826 --
183827 -- call api to validate and store accounting attributes for header
183828 --
183829 
183830 ------------------------------------------------------------
183831 -- Accrual Reversal : to get date for Standard Source (NONE)
183832 ------------------------------------------------------------
183833 l_acc_rev_gl_date_source := NULL;
183834 
183835      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
183836       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_165');
183837      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
183838       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_166');
183839      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
183840       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_167');
183844    p_source_code           => 'XLA_EVENT_DATE'
183841      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
183842       l_rec_acct_attrs.array_date_value(4) := 
183843 xla_ae_sources_pkg.GetSystemSourceDate(
183845  , p_source_type_code      => 'Y'
183846  , p_source_application_id =>  602
183847 );
183848 
183849 
183850 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
183851 
183852 XLA_AE_HEADER_PKG.SetJeCategoryName;
183853 
183854 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
183855 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
183856 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
183857 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
183858 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
183859 
183860 
183861 --
183862 xla_ae_header_pkg.SetHdrDescription(
183863    p_description => Description_1 (
183864    p_application_id => p_application_id 
183865    )
183866 );
183867 --
183868 
183869 -- No header level analytical criteria
183870 
183871 --
183872 --accounting attribute enhancement, bug 3612931
183873 --
183874 l_trx_reversal_source := SUBSTR(NULL, 1,30);
183875 
183876 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
183877    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
183878 
183879    xla_accounting_err_pkg.build_message
183880       (p_appli_s_name            => 'XLA'
183881       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
183882       ,p_token_1                 => 'ACCT_ATTR_NAME'
183883       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
183884       ,p_token_2                 => 'PRODUCT_NAME'
183885       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
183886       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
183887       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
183888       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
183889 
183890 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
183891    --
183892    -- following sets the accounting attributes needed to reverse
183893    -- accounting for a distributeion
183894    --
183895    xla_ae_lines_pkg.SetTrxReversalAttrs
183896       (p_event_id              => l_event_id
183897       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
183898       ,p_trx_reversal_source   => l_trx_reversal_source);
183899 
183900 END IF;
183901 
183902 
183903 ----------------------------------------------------------------
183904 -- 4262811 -  update the header statuses to invalid in need be
183905 ----------------------------------------------------------------
183906 --
183907 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
183908 
183909 
183910   -----------------------------------------------
183911   -- No accrual reversal for the event class/type
183912   -----------------------------------------------
183913 ----------------------------------------------------------------
183914 
183915 --
183916 -- this ends the header loop iteration for one bulk fetch
183917 --
183918 END LOOP;
183919 
183920 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
183921 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
183922 
183923 --
183924 -- insert dummy rows into lines gt table that were created due to
183925 -- transaction reversals
183926 --
183927 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
183928    l_result := XLA_AE_LINES_PKG.InsertLines;
183929 END IF;
183930 
183931 --
183932 -- reset the temp_line_num for each set of events fetched from header
183933 -- cursor rather than doing it for each new event in line cursor
183934 -- Bug 3939231
183935 --
183936 xla_ae_lines_pkg.g_temp_line_num := 0;
183937 
183938 
183939 
183940 --
183941 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
183942 --
183943 --
183944 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
183945 
183946       trace
183947          (p_msg      => 'SQL - FETCH line_cur'
183948          ,p_level    => C_LEVEL_STATEMENT
183949          ,p_module   => l_log_module);
183950 
183951 END IF;
183952 --
183953 --
183954 LOOP
183955   --
183956   FETCH line_cur BULK COLLECT INTO
183957         l_array_entity_id
183958       , l_array_legal_entity_id
183959       , l_array_entity_code
183960       , l_array_transaction_num
183961       , l_array_event_id
183962       , l_array_class_code
183963       , l_array_event_type
183964       , l_array_event_number
183965       , l_array_event_date
183966       , l_array_transaction_date
183967       , l_array_reference_num_1
183968       , l_array_reference_num_2
183969       , l_array_reference_num_3
183970       , l_array_reference_num_4
183971       , l_array_reference_char_1
183972       , l_array_reference_char_2
183973       , l_array_reference_char_3
183974       , l_array_reference_char_4
183975       , l_array_reference_date_1
183976       , l_array_reference_date_2
183977       , l_array_reference_date_3
183978       , l_array_reference_date_4
183979       , l_array_event_created_by
183980       , l_array_budgetary_control_flag
183981       , l_array_extract_line_num 
183982       , l_array_source_1
183983       , l_array_source_9
183984       , l_array_source_10
183985       , l_array_source_10_meaning
183986       , l_array_source_18
183987       , l_array_source_21
183991       , l_array_source_38
183988       , l_array_source_21_meaning
183989       , l_array_source_30
183990       , l_array_source_31
183992       , l_array_source_39
183993       , l_array_source_41
183994       , l_array_source_43
183995       , l_array_source_45
183996       , l_array_source_47
183997       , l_array_source_48
183998       , l_array_source_49
183999       , l_array_source_50
184000       , l_array_source_51
184001       , l_array_source_52
184002       , l_array_source_53
184003       , l_array_source_54
184004       , l_array_source_56
184005       , l_array_source_57
184006       , l_array_source_58
184007       , l_array_source_59
184008       , l_array_source_60
184009       , l_array_source_61
184010       , l_array_source_62
184011       , l_array_source_63
184012       , l_array_source_64
184013       , l_array_source_65
184014       , l_array_source_66
184015       , l_array_source_67
184016       , l_array_source_68
184017       , l_array_source_68_meaning
184018       , l_array_source_72
184019       , l_array_source_73
184020       , l_array_source_74
184021       , l_array_source_75
184022       , l_array_source_76
184023       , l_array_source_77
184024       , l_array_source_78
184025       , l_array_source_79
184026       , l_array_source_80
184027       , l_array_source_81
184028       , l_array_source_82
184029       , l_array_source_83
184030       , l_array_source_84
184031       , l_array_source_84_meaning
184032       , l_array_source_85
184033       , l_array_source_87
184034       , l_array_source_87_meaning
184035       , l_array_source_88
184036       , l_array_source_135
184037       , l_array_source_135_meaning
184038       , l_array_source_143
184039       , l_array_source_144
184040       , l_array_source_161
184041       , l_array_source_162
184042       LIMIT l_rows;
184043 
184044   --
184045   IF (C_LEVEL_EVENT >= g_log_level) THEN
184046             trace
184047                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
184048                ,p_level    => C_LEVEL_EVENT
184049                ,p_module   => l_log_module);
184050   END IF;
184051   --
184052   EXIT WHEN l_array_entity_id.count = 0;
184053 
184054   XLA_AE_LINES_PKG.g_rec_lines := null;
184055 
184056 --
184057 -- Bug 4458708
184058 --
184059 XLA_AE_LINES_PKG.g_LineNumber := 0;
184060 --
184061 --
184062 
184063 FOR Idx IN 1..l_array_event_id.count LOOP
184064    --
184065    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
184066    --
184067    l_event_id := l_array_event_id(idx);  -- 5648433
184068 
184069    --
184070    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
184071    --
184072 
184073    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
184074              (g_array_event(l_event_id).array_value_num('header_index'))
184075          ,'N'
184076          ) <> 'Y'
184077    THEN
184078       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
184079          trace
184080             (p_msg      => 'Trancaction revesal option is not Y '
184081             ,p_level    => C_LEVEL_STATEMENT
184082             ,p_module   => l_log_module);
184083       END IF;
184084 
184085 --
184086 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
184087 --
184088 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
184089 --
184090 -- set event info as cache for other routines to refer event attributes
184091 --
184092 
184093 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
184094    l_previous_event_id := l_event_id;
184095 
184096    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
184097       (p_application_id           => p_application_id
184098       ,p_primary_ledger_id        => p_primary_ledger_id
184099       ,p_base_ledger_id           => p_base_ledger_id
184100       ,p_target_ledger_id         => p_target_ledger_id
184101       ,p_entity_id                => l_array_entity_id(Idx)
184102       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
184103       ,p_entity_code              => l_array_entity_code(Idx)
184104       ,p_transaction_num          => l_array_transaction_num(Idx)
184105       ,p_event_id                 => l_array_event_id(Idx)
184106       ,p_event_class_code         => l_array_class_code(Idx)
184107       ,p_event_type_code          => l_array_event_type(Idx)
184108       ,p_event_number             => l_array_event_number(Idx)
184109       ,p_event_date               => l_array_event_date(Idx)
184110       ,p_transaction_date         => l_array_transaction_date(Idx)
184111       ,p_reference_num_1          => l_array_reference_num_1(Idx)
184112       ,p_reference_num_2          => l_array_reference_num_2(Idx)
184113       ,p_reference_num_3          => l_array_reference_num_3(Idx)
184114       ,p_reference_num_4          => l_array_reference_num_4(Idx)
184115       ,p_reference_char_1         => l_array_reference_char_1(Idx)
184116       ,p_reference_char_2         => l_array_reference_char_2(Idx)
184117       ,p_reference_char_3         => l_array_reference_char_3(Idx)
184118       ,p_reference_char_4         => l_array_reference_char_4(Idx)
184119       ,p_reference_date_1         => l_array_reference_date_1(Idx)
184120       ,p_reference_date_2         => l_array_reference_date_2(Idx)
184121       ,p_reference_date_3         => l_array_reference_date_3(Idx)
184122       ,p_reference_date_4         => l_array_reference_date_4(Idx)
184123       ,p_event_created_by         => l_array_event_created_by(Idx)
184127 
184124       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
184125        --
184126 END IF;
184128 
184129 
184130 --
184131 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
184132 
184133 l_acct_reversal_source := SUBSTR(l_array_source_41(Idx), 1,30);
184134 
184135 IF l_continue_with_lines THEN
184136    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
184137       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
184138 
184139       xla_accounting_err_pkg.build_message
184140          (p_appli_s_name            => 'XLA'
184141          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
184142          ,p_token_1                 => 'LINE_NUMBER'
184143          ,p_value_1                 => l_array_extract_line_num(Idx)
184144          ,p_token_2                 => 'PRODUCT_NAME'
184145          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
184146          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
184147          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
184148          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
184149 
184150    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
184151       --
184152       -- following sets the accounting attributes needed to reverse
184153       -- accounting for a distributeion
184154       --
184155 
184156       --
184157       -- 5217187
184158       --
184159       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
184160       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
184161                                        g_array_event(l_event_id).array_value_num('header_index'));
184162       --
184163       --
184164 
184165       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
184166       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_41(Idx);
184167       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
184168       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_52(Idx);
184169       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
184170       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_43(Idx);
184171       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
184172       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_53(Idx);
184173       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
184174       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_54(Idx);
184175       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
184176       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_55');
184177       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
184178       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_56(Idx);
184179       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
184180       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_57(Idx);
184181       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
184182       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_58(Idx);
184183       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
184184       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_55');
184185       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
184186       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_59(Idx);
184187       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
184188       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_60(Idx);
184189       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
184190       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_71');
184191       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
184192       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_72(Idx);
184193       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
184194       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_43(Idx);
184195       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
184196       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_74(Idx);
184197       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
184198       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_75(Idx);
184199       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
184200       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_76(Idx);
184201       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
184202       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_77(Idx);
184203       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
184204       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_78(Idx);
184205 
184206 
184207       xla_ae_lines_pkg.SetAcctReversalAttrs
184208          (p_event_id             => l_event_id
184209          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
184210          ,p_calculate_acctd_flag => l_calculate_acctd_flag
184211          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
184212    END IF;
184213 
184214    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
184215        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
184216 
184217 --
184218 AcctLineType_47 (
184219  p_application_id  => p_application_id
184220  ,p_event_id     => l_event_id
184221  ,p_calculate_acctd_flag => l_calculate_acctd_flag
184222  ,p_calculate_g_l_flag => l_calculate_g_l_flag
184226  
184223  ,p_actual_flag => l_actual_flag
184224  ,p_balance_type_code => l_balance_type_code
184225  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
184227  , p_source_1 => l_array_source_1(Idx)
184228  , p_source_9 => l_array_source_9(Idx)
184229  , p_source_18 => l_array_source_18(Idx)
184230  , p_source_21 => l_array_source_21(Idx)
184231  , p_source_21_meaning => l_array_source_21_meaning(Idx)
184232  , p_source_41 => l_array_source_41(Idx)
184233  , p_source_43 => l_array_source_43(Idx)
184234  , p_source_45 => l_array_source_45(Idx)
184235  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
184236  , p_source_47 => l_array_source_47(Idx)
184237  , p_source_48 => l_array_source_48(Idx)
184238  , p_source_49 => l_array_source_49(Idx)
184239  , p_source_50 => l_array_source_50(Idx)
184240  , p_source_51 => l_array_source_51(Idx)
184241  , p_source_52 => l_array_source_52(Idx)
184242  , p_source_53 => l_array_source_53(Idx)
184243  , p_source_54 => l_array_source_54(Idx)
184244  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
184245  , p_source_56 => l_array_source_56(Idx)
184246  , p_source_57 => l_array_source_57(Idx)
184247  , p_source_58 => l_array_source_58(Idx)
184248  , p_source_59 => l_array_source_59(Idx)
184249  , p_source_60 => l_array_source_60(Idx)
184250  , p_source_61 => l_array_source_61(Idx)
184251  , p_source_62 => l_array_source_62(Idx)
184252  , p_source_63 => l_array_source_63(Idx)
184253  , p_source_64 => l_array_source_64(Idx)
184254  , p_source_65 => l_array_source_65(Idx)
184255  , p_source_66 => l_array_source_66(Idx)
184256  , p_source_67 => l_array_source_67(Idx)
184257  , p_source_68 => l_array_source_68(Idx)
184258  , p_source_68_meaning => l_array_source_68_meaning(Idx)
184259  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
184260  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
184261  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
184262  , p_source_72 => l_array_source_72(Idx)
184263  , p_source_73 => l_array_source_73(Idx)
184264  , p_source_74 => l_array_source_74(Idx)
184265  , p_source_75 => l_array_source_75(Idx)
184266  , p_source_76 => l_array_source_76(Idx)
184267  , p_source_77 => l_array_source_77(Idx)
184268  , p_source_78 => l_array_source_78(Idx)
184269  );
184270 If(l_balance_type_code = 'A') THEN
184271   l_actual_gain_loss_ref := l_gain_or_loss_ref;
184272 END IF;
184273 
184274 --
184275 
184276 
184277 --
184278 AcctLineType_51 (
184279  p_application_id  => p_application_id
184280  ,p_event_id     => l_event_id
184281  ,p_calculate_acctd_flag => l_calculate_acctd_flag
184282  ,p_calculate_g_l_flag => l_calculate_g_l_flag
184283  ,p_actual_flag => l_actual_flag
184284  ,p_balance_type_code => l_balance_type_code
184285  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
184286  
184287  , p_source_1 => l_array_source_1(Idx)
184288  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
184289  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
184290  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
184291  , p_source_9 => l_array_source_9(Idx)
184292  , p_source_10 => l_array_source_10(Idx)
184293  , p_source_10_meaning => l_array_source_10_meaning(Idx)
184294  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
184295  , p_source_18 => l_array_source_18(Idx)
184296  , p_source_21 => l_array_source_21(Idx)
184297  , p_source_21_meaning => l_array_source_21_meaning(Idx)
184298  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
184299  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
184300  , p_source_41 => l_array_source_41(Idx)
184301  , p_source_43 => l_array_source_43(Idx)
184302  , p_source_45 => l_array_source_45(Idx)
184303  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
184304  , p_source_52 => l_array_source_52(Idx)
184305  , p_source_53 => l_array_source_53(Idx)
184306  , p_source_54 => l_array_source_54(Idx)
184307  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
184308  , p_source_56 => l_array_source_56(Idx)
184309  , p_source_57 => l_array_source_57(Idx)
184310  , p_source_58 => l_array_source_58(Idx)
184311  , p_source_59 => l_array_source_59(Idx)
184315  , p_source_67 => l_array_source_67(Idx)
184312  , p_source_60 => l_array_source_60(Idx)
184313  , p_source_65 => l_array_source_65(Idx)
184314  , p_source_66 => l_array_source_66(Idx)
184316  , p_source_68 => l_array_source_68(Idx)
184317  , p_source_68_meaning => l_array_source_68_meaning(Idx)
184318  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
184319  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
184320  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
184321  , p_source_72 => l_array_source_72(Idx)
184322  , p_source_73 => l_array_source_73(Idx)
184323  , p_source_74 => l_array_source_74(Idx)
184324  , p_source_75 => l_array_source_75(Idx)
184325  , p_source_76 => l_array_source_76(Idx)
184326  , p_source_77 => l_array_source_77(Idx)
184327  , p_source_78 => l_array_source_78(Idx)
184328  , p_source_79 => l_array_source_79(Idx)
184329  , p_source_80 => l_array_source_80(Idx)
184330  , p_source_81 => l_array_source_81(Idx)
184331  , p_source_82 => l_array_source_82(Idx)
184332  , p_source_83 => l_array_source_83(Idx)
184333  );
184334 If(l_balance_type_code = 'A') THEN
184335   l_actual_gain_loss_ref := l_gain_or_loss_ref;
184336 END IF;
184337 
184338 --
184339 
184340 
184341 --
184342 AcctLineType_55 (
184343  p_application_id  => p_application_id
184344  ,p_event_id     => l_event_id
184345  ,p_calculate_acctd_flag => l_calculate_acctd_flag
184346  ,p_calculate_g_l_flag => l_calculate_g_l_flag
184347  ,p_actual_flag => l_actual_flag
184348  ,p_balance_type_code => l_balance_type_code
184349  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
184350  
184351  , p_source_1 => l_array_source_1(Idx)
184352  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
184353  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
184354  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
184355  , p_source_9 => l_array_source_9(Idx)
184356  , p_source_10 => l_array_source_10(Idx)
184357  , p_source_10_meaning => l_array_source_10_meaning(Idx)
184358  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
184359  , p_source_18 => l_array_source_18(Idx)
184360  , p_source_21 => l_array_source_21(Idx)
184361  , p_source_21_meaning => l_array_source_21_meaning(Idx)
184362  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
184363  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
184364  , p_source_41 => l_array_source_41(Idx)
184365  , p_source_43 => l_array_source_43(Idx)
184366  , p_source_45 => l_array_source_45(Idx)
184367  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
184368  , p_source_52 => l_array_source_52(Idx)
184369  , p_source_53 => l_array_source_53(Idx)
184370  , p_source_54 => l_array_source_54(Idx)
184371  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
184372  , p_source_56 => l_array_source_56(Idx)
184373  , p_source_57 => l_array_source_57(Idx)
184374  , p_source_58 => l_array_source_58(Idx)
184375  , p_source_59 => l_array_source_59(Idx)
184376  , p_source_60 => l_array_source_60(Idx)
184377  , p_source_65 => l_array_source_65(Idx)
184378  , p_source_66 => l_array_source_66(Idx)
184379  , p_source_67 => l_array_source_67(Idx)
184380  , p_source_68 => l_array_source_68(Idx)
184381  , p_source_68_meaning => l_array_source_68_meaning(Idx)
184382  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
184383  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
184384  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
184385  , p_source_72 => l_array_source_72(Idx)
184386  , p_source_73 => l_array_source_73(Idx)
184387  , p_source_74 => l_array_source_74(Idx)
184388  , p_source_75 => l_array_source_75(Idx)
184389  , p_source_76 => l_array_source_76(Idx)
184390  , p_source_77 => l_array_source_77(Idx)
184391  , p_source_78 => l_array_source_78(Idx)
184392  , p_source_79 => l_array_source_79(Idx)
184393  , p_source_80 => l_array_source_80(Idx)
184394  , p_source_81 => l_array_source_81(Idx)
184395  , p_source_82 => l_array_source_82(Idx)
184396  , p_source_83 => l_array_source_83(Idx)
184397  , p_source_84 => l_array_source_84(Idx)
184398  , p_source_84_meaning => l_array_source_84_meaning(Idx)
184399  );
184400 If(l_balance_type_code = 'A') THEN
184401   l_actual_gain_loss_ref := l_gain_or_loss_ref;
184402 END IF;
184403 
184404 --
184405 
184406 
184407 --
184408 AcctLineType_59 (
184409  p_application_id  => p_application_id
184410  ,p_event_id     => l_event_id
184411  ,p_calculate_acctd_flag => l_calculate_acctd_flag
184412  ,p_calculate_g_l_flag => l_calculate_g_l_flag
184413  ,p_actual_flag => l_actual_flag
184414  ,p_balance_type_code => l_balance_type_code
184415  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
184416  
184417  , p_source_21 => l_array_source_21(Idx)
184418  , p_source_21_meaning => l_array_source_21_meaning(Idx)
184419  , p_source_41 => l_array_source_41(Idx)
184420  , p_source_43 => l_array_source_43(Idx)
184421  , p_source_45 => l_array_source_45(Idx)
184422  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
184423  , p_source_52 => l_array_source_52(Idx)
184424  , p_source_53 => l_array_source_53(Idx)
184425  , p_source_54 => l_array_source_54(Idx)
184426  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
184427  , p_source_56 => l_array_source_56(Idx)
184428  , p_source_57 => l_array_source_57(Idx)
184429  , p_source_58 => l_array_source_58(Idx)
184430  , p_source_59 => l_array_source_59(Idx)
184431  , p_source_60 => l_array_source_60(Idx)
184432  , p_source_65 => l_array_source_65(Idx)
184433  , p_source_66 => l_array_source_66(Idx)
184434  , p_source_67 => l_array_source_67(Idx)
184435  , p_source_68 => l_array_source_68(Idx)
184439  , p_source_73 => l_array_source_73(Idx)
184436  , p_source_68_meaning => l_array_source_68_meaning(Idx)
184437  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
184438  , p_source_72 => l_array_source_72(Idx)
184440  , p_source_74 => l_array_source_74(Idx)
184441  , p_source_75 => l_array_source_75(Idx)
184442  , p_source_76 => l_array_source_76(Idx)
184443  , p_source_77 => l_array_source_77(Idx)
184444  , p_source_78 => l_array_source_78(Idx)
184445  , p_source_79 => l_array_source_79(Idx)
184446  , p_source_80 => l_array_source_80(Idx)
184447  , p_source_81 => l_array_source_81(Idx)
184448  , p_source_82 => l_array_source_82(Idx)
184449  , p_source_83 => l_array_source_83(Idx)
184450  , p_source_84 => l_array_source_84(Idx)
184451  , p_source_84_meaning => l_array_source_84_meaning(Idx)
184452  , p_source_85 => l_array_source_85(Idx)
184453  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
184454  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
184455  , p_source_87 => l_array_source_87(Idx)
184456  , p_source_87_meaning => l_array_source_87_meaning(Idx)
184457  , p_source_88 => l_array_source_88(Idx)
184458  );
184459 If(l_balance_type_code = 'A') THEN
184460   l_actual_gain_loss_ref := l_gain_or_loss_ref;
184461 END IF;
184462 
184463 --
184464 
184465 
184466 --
184467 AcctLineType_111 (
184468  p_application_id  => p_application_id
184469  ,p_event_id     => l_event_id
184470  ,p_calculate_acctd_flag => l_calculate_acctd_flag
184471  ,p_calculate_g_l_flag => l_calculate_g_l_flag
184472  ,p_actual_flag => l_actual_flag
184473  ,p_balance_type_code => l_balance_type_code
184474  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
184475  
184476  , p_source_1 => l_array_source_1(Idx)
184477  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
184478  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
184479  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
184480  , p_source_9 => l_array_source_9(Idx)
184481  , p_source_10 => l_array_source_10(Idx)
184482  , p_source_10_meaning => l_array_source_10_meaning(Idx)
184483  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
184484  , p_source_18 => l_array_source_18(Idx)
184485  , p_source_21 => l_array_source_21(Idx)
184486  , p_source_21_meaning => l_array_source_21_meaning(Idx)
184487  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
184488  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
184489  , p_source_41 => l_array_source_41(Idx)
184490  , p_source_43 => l_array_source_43(Idx)
184491  , p_source_45 => l_array_source_45(Idx)
184492  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
184493  , p_source_52 => l_array_source_52(Idx)
184494  , p_source_53 => l_array_source_53(Idx)
184495  , p_source_54 => l_array_source_54(Idx)
184496  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
184497  , p_source_56 => l_array_source_56(Idx)
184498  , p_source_57 => l_array_source_57(Idx)
184499  , p_source_58 => l_array_source_58(Idx)
184500  , p_source_59 => l_array_source_59(Idx)
184501  , p_source_60 => l_array_source_60(Idx)
184502  , p_source_61 => l_array_source_61(Idx)
184503  , p_source_65 => l_array_source_65(Idx)
184504  , p_source_66 => l_array_source_66(Idx)
184505  , p_source_67 => l_array_source_67(Idx)
184506  , p_source_68 => l_array_source_68(Idx)
184507  , p_source_68_meaning => l_array_source_68_meaning(Idx)
184508  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
184509  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
184510  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
184511  , p_source_72 => l_array_source_72(Idx)
184512  , p_source_73 => l_array_source_73(Idx)
184513  , p_source_74 => l_array_source_74(Idx)
184514  , p_source_75 => l_array_source_75(Idx)
184515  , p_source_76 => l_array_source_76(Idx)
184516  , p_source_77 => l_array_source_77(Idx)
184517  , p_source_78 => l_array_source_78(Idx)
184518  , p_source_79 => l_array_source_79(Idx)
184519  , p_source_80 => l_array_source_80(Idx)
184520  , p_source_81 => l_array_source_81(Idx)
184521  , p_source_82 => l_array_source_82(Idx)
184522  , p_source_83 => l_array_source_83(Idx)
184523  , p_source_84 => l_array_source_84(Idx)
184524  , p_source_84_meaning => l_array_source_84_meaning(Idx)
184525  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
184526  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
184527  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
184528  );
184529 If(l_balance_type_code = 'A') THEN
184530   l_actual_gain_loss_ref := l_gain_or_loss_ref;
184531 END IF;
184532 
184533 --
184534 
184535 
184536 --
184537 AcctLineType_112 (
184538  p_application_id  => p_application_id
184539  ,p_event_id     => l_event_id
184540  ,p_calculate_acctd_flag => l_calculate_acctd_flag
184541  ,p_calculate_g_l_flag => l_calculate_g_l_flag
184542  ,p_actual_flag => l_actual_flag
184543  ,p_balance_type_code => l_balance_type_code
184544  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
184545  
184546  , p_source_21 => l_array_source_21(Idx)
184547  , p_source_21_meaning => l_array_source_21_meaning(Idx)
184548  , p_source_41 => l_array_source_41(Idx)
184549  , p_source_43 => l_array_source_43(Idx)
184550  , p_source_45 => l_array_source_45(Idx)
184551  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
184552  , p_source_52 => l_array_source_52(Idx)
184553  , p_source_53 => l_array_source_53(Idx)
184554  , p_source_54 => l_array_source_54(Idx)
184555  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
184556  , p_source_56 => l_array_source_56(Idx)
184560  , p_source_60 => l_array_source_60(Idx)
184557  , p_source_57 => l_array_source_57(Idx)
184558  , p_source_58 => l_array_source_58(Idx)
184559  , p_source_59 => l_array_source_59(Idx)
184561  , p_source_65 => l_array_source_65(Idx)
184562  , p_source_66 => l_array_source_66(Idx)
184563  , p_source_67 => l_array_source_67(Idx)
184564  , p_source_68 => l_array_source_68(Idx)
184565  , p_source_68_meaning => l_array_source_68_meaning(Idx)
184566  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
184567  , p_source_72 => l_array_source_72(Idx)
184568  , p_source_73 => l_array_source_73(Idx)
184569  , p_source_74 => l_array_source_74(Idx)
184570  , p_source_75 => l_array_source_75(Idx)
184571  , p_source_76 => l_array_source_76(Idx)
184572  , p_source_77 => l_array_source_77(Idx)
184573  , p_source_78 => l_array_source_78(Idx)
184574  , p_source_79 => l_array_source_79(Idx)
184575  , p_source_80 => l_array_source_80(Idx)
184576  , p_source_81 => l_array_source_81(Idx)
184577  , p_source_82 => l_array_source_82(Idx)
184578  , p_source_83 => l_array_source_83(Idx)
184579  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
184580  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
184581  , p_source_87 => l_array_source_87(Idx)
184582  , p_source_87_meaning => l_array_source_87_meaning(Idx)
184583  , p_source_143 => l_array_source_143(Idx)
184584  , p_source_144 => l_array_source_144(Idx)
184585  );
184586 If(l_balance_type_code = 'A') THEN
184587   l_actual_gain_loss_ref := l_gain_or_loss_ref;
184588 END IF;
184589 
184590 --
184591 
184592 
184593 --
184594 AcctLineType_124 (
184595  p_application_id  => p_application_id
184596  ,p_event_id     => l_event_id
184597  ,p_calculate_acctd_flag => l_calculate_acctd_flag
184598  ,p_calculate_g_l_flag => l_calculate_g_l_flag
184599  ,p_actual_flag => l_actual_flag
184600  ,p_balance_type_code => l_balance_type_code
184601  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
184602  
184603  , p_source_1 => l_array_source_1(Idx)
184604  , p_source_9 => l_array_source_9(Idx)
184605  , p_source_18 => l_array_source_18(Idx)
184606  , p_source_21 => l_array_source_21(Idx)
184607  , p_source_21_meaning => l_array_source_21_meaning(Idx)
184608  , p_source_41 => l_array_source_41(Idx)
184609  , p_source_43 => l_array_source_43(Idx)
184610  , p_source_45 => l_array_source_45(Idx)
184611  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
184612  , p_source_52 => l_array_source_52(Idx)
184613  , p_source_53 => l_array_source_53(Idx)
184614  , p_source_54 => l_array_source_54(Idx)
184615  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
184616  , p_source_56 => l_array_source_56(Idx)
184617  , p_source_57 => l_array_source_57(Idx)
184618  , p_source_58 => l_array_source_58(Idx)
184619  , p_source_59 => l_array_source_59(Idx)
184620  , p_source_60 => l_array_source_60(Idx)
184621  , p_source_61 => l_array_source_61(Idx)
184622  , p_source_65 => l_array_source_65(Idx)
184623  , p_source_66 => l_array_source_66(Idx)
184624  , p_source_67 => l_array_source_67(Idx)
184625  , p_source_68 => l_array_source_68(Idx)
184626  , p_source_68_meaning => l_array_source_68_meaning(Idx)
184627  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
184628  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
184629  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
184630  , p_source_72 => l_array_source_72(Idx)
184631  , p_source_73 => l_array_source_73(Idx)
184632  , p_source_74 => l_array_source_74(Idx)
184633  , p_source_75 => l_array_source_75(Idx)
184634  , p_source_76 => l_array_source_76(Idx)
184635  , p_source_77 => l_array_source_77(Idx)
184636  , p_source_78 => l_array_source_78(Idx)
184637  , p_source_79 => l_array_source_79(Idx)
184638  , p_source_80 => l_array_source_80(Idx)
184639  , p_source_81 => l_array_source_81(Idx)
184640  , p_source_82 => l_array_source_82(Idx)
184641  , p_source_83 => l_array_source_83(Idx)
184642  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
184643  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
184644  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
184645  );
184646 If(l_balance_type_code = 'A') THEN
184647   l_actual_gain_loss_ref := l_gain_or_loss_ref;
184648 END IF;
184649 
184650 --
184651 
184652 
184653 --
184654 AcctLineType_125 (
184655  p_application_id  => p_application_id
184656  ,p_event_id     => l_event_id
184657  ,p_calculate_acctd_flag => l_calculate_acctd_flag
184658  ,p_calculate_g_l_flag => l_calculate_g_l_flag
184659  ,p_actual_flag => l_actual_flag
184660  ,p_balance_type_code => l_balance_type_code
184661  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
184662  
184663  , p_source_21 => l_array_source_21(Idx)
184664  , p_source_21_meaning => l_array_source_21_meaning(Idx)
184665  , p_source_41 => l_array_source_41(Idx)
184666  , p_source_43 => l_array_source_43(Idx)
184667  , p_source_45 => l_array_source_45(Idx)
184668  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
184669  , p_source_52 => l_array_source_52(Idx)
184670  , p_source_53 => l_array_source_53(Idx)
184671  , p_source_54 => l_array_source_54(Idx)
184672  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
184673  , p_source_56 => l_array_source_56(Idx)
184674  , p_source_57 => l_array_source_57(Idx)
184675  , p_source_58 => l_array_source_58(Idx)
184676  , p_source_59 => l_array_source_59(Idx)
184677  , p_source_60 => l_array_source_60(Idx)
184678  , p_source_65 => l_array_source_65(Idx)
184679  , p_source_66 => l_array_source_66(Idx)
184680  , p_source_67 => l_array_source_67(Idx)
184681  , p_source_68 => l_array_source_68(Idx)
184682  , p_source_68_meaning => l_array_source_68_meaning(Idx)
184686  , p_source_74 => l_array_source_74(Idx)
184683  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
184684  , p_source_72 => l_array_source_72(Idx)
184685  , p_source_73 => l_array_source_73(Idx)
184687  , p_source_75 => l_array_source_75(Idx)
184688  , p_source_76 => l_array_source_76(Idx)
184689  , p_source_77 => l_array_source_77(Idx)
184690  , p_source_78 => l_array_source_78(Idx)
184691  , p_source_79 => l_array_source_79(Idx)
184692  , p_source_80 => l_array_source_80(Idx)
184693  , p_source_81 => l_array_source_81(Idx)
184694  , p_source_82 => l_array_source_82(Idx)
184695  , p_source_83 => l_array_source_83(Idx)
184696  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
184697  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
184698  , p_source_87 => l_array_source_87(Idx)
184699  , p_source_87_meaning => l_array_source_87_meaning(Idx)
184700  , p_source_143 => l_array_source_143(Idx)
184701  , p_source_144 => l_array_source_144(Idx)
184702  );
184703 If(l_balance_type_code = 'A') THEN
184704   l_actual_gain_loss_ref := l_gain_or_loss_ref;
184705 END IF;
184706 
184707 --
184708 
184709 
184710 --
184711 AcctLineType_150 (
184712  p_application_id  => p_application_id
184713  ,p_event_id     => l_event_id
184714  ,p_calculate_acctd_flag => l_calculate_acctd_flag
184715  ,p_calculate_g_l_flag => l_calculate_g_l_flag
184716  ,p_actual_flag => l_actual_flag
184717  ,p_balance_type_code => l_balance_type_code
184718  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
184719  
184720  , p_source_1 => l_array_source_1(Idx)
184721  , p_source_9 => l_array_source_9(Idx)
184722  , p_source_18 => l_array_source_18(Idx)
184723  , p_source_21 => l_array_source_21(Idx)
184724  , p_source_21_meaning => l_array_source_21_meaning(Idx)
184725  , p_source_41 => l_array_source_41(Idx)
184726  , p_source_43 => l_array_source_43(Idx)
184727  , p_source_45 => l_array_source_45(Idx)
184728  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
184729  , p_source_52 => l_array_source_52(Idx)
184730  , p_source_53 => l_array_source_53(Idx)
184731  , p_source_54 => l_array_source_54(Idx)
184732  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
184733  , p_source_56 => l_array_source_56(Idx)
184734  , p_source_57 => l_array_source_57(Idx)
184735  , p_source_58 => l_array_source_58(Idx)
184736  , p_source_59 => l_array_source_59(Idx)
184737  , p_source_60 => l_array_source_60(Idx)
184738  , p_source_61 => l_array_source_61(Idx)
184739  , p_source_65 => l_array_source_65(Idx)
184740  , p_source_66 => l_array_source_66(Idx)
184741  , p_source_67 => l_array_source_67(Idx)
184742  , p_source_68 => l_array_source_68(Idx)
184743  , p_source_68_meaning => l_array_source_68_meaning(Idx)
184744  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
184745  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
184746  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
184747  , p_source_72 => l_array_source_72(Idx)
184748  , p_source_73 => l_array_source_73(Idx)
184749  , p_source_74 => l_array_source_74(Idx)
184750  , p_source_75 => l_array_source_75(Idx)
184751  , p_source_76 => l_array_source_76(Idx)
184752  , p_source_77 => l_array_source_77(Idx)
184753  , p_source_78 => l_array_source_78(Idx)
184754  , p_source_79 => l_array_source_79(Idx)
184755  , p_source_80 => l_array_source_80(Idx)
184756  , p_source_81 => l_array_source_81(Idx)
184757  , p_source_82 => l_array_source_82(Idx)
184758  , p_source_83 => l_array_source_83(Idx)
184759  , p_source_84 => l_array_source_84(Idx)
184760  , p_source_84_meaning => l_array_source_84_meaning(Idx)
184761  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
184762  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
184763  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
184764  );
184765 If(l_balance_type_code = 'A') THEN
184766   l_actual_gain_loss_ref := l_gain_or_loss_ref;
184767 END IF;
184768 
184769 --
184770 
184771 
184772 --
184773 AcctLineType_151 (
184774  p_application_id  => p_application_id
184775  ,p_event_id     => l_event_id
184776  ,p_calculate_acctd_flag => l_calculate_acctd_flag
184777  ,p_calculate_g_l_flag => l_calculate_g_l_flag
184778  ,p_actual_flag => l_actual_flag
184779  ,p_balance_type_code => l_balance_type_code
184780  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
184781  
184782  , p_source_21 => l_array_source_21(Idx)
184783  , p_source_21_meaning => l_array_source_21_meaning(Idx)
184784  , p_source_41 => l_array_source_41(Idx)
184785  , p_source_43 => l_array_source_43(Idx)
184786  , p_source_45 => l_array_source_45(Idx)
184787  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
184788  , p_source_52 => l_array_source_52(Idx)
184789  , p_source_53 => l_array_source_53(Idx)
184790  , p_source_54 => l_array_source_54(Idx)
184791  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
184792  , p_source_56 => l_array_source_56(Idx)
184793  , p_source_57 => l_array_source_57(Idx)
184794  , p_source_58 => l_array_source_58(Idx)
184795  , p_source_59 => l_array_source_59(Idx)
184796  , p_source_60 => l_array_source_60(Idx)
184797  , p_source_65 => l_array_source_65(Idx)
184798  , p_source_66 => l_array_source_66(Idx)
184799  , p_source_67 => l_array_source_67(Idx)
184800  , p_source_68 => l_array_source_68(Idx)
184801  , p_source_68_meaning => l_array_source_68_meaning(Idx)
184802  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
184803  , p_source_72 => l_array_source_72(Idx)
184804  , p_source_73 => l_array_source_73(Idx)
184805  , p_source_74 => l_array_source_74(Idx)
184806  , p_source_75 => l_array_source_75(Idx)
184807  , p_source_76 => l_array_source_76(Idx)
184808  , p_source_77 => l_array_source_77(Idx)
184809  , p_source_78 => l_array_source_78(Idx)
184813  , p_source_82 => l_array_source_82(Idx)
184810  , p_source_79 => l_array_source_79(Idx)
184811  , p_source_80 => l_array_source_80(Idx)
184812  , p_source_81 => l_array_source_81(Idx)
184814  , p_source_83 => l_array_source_83(Idx)
184815  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
184816  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
184817  , p_source_87 => l_array_source_87(Idx)
184818  , p_source_87_meaning => l_array_source_87_meaning(Idx)
184819  , p_source_143 => l_array_source_143(Idx)
184820  , p_source_144 => l_array_source_144(Idx)
184821  );
184822 If(l_balance_type_code = 'A') THEN
184823   l_actual_gain_loss_ref := l_gain_or_loss_ref;
184824 END IF;
184825 
184826 --
184827 
184828 
184829 --
184830 AcctLineType_158 (
184831  p_application_id  => p_application_id
184832  ,p_event_id     => l_event_id
184833  ,p_calculate_acctd_flag => l_calculate_acctd_flag
184834  ,p_calculate_g_l_flag => l_calculate_g_l_flag
184835  ,p_actual_flag => l_actual_flag
184836  ,p_balance_type_code => l_balance_type_code
184837  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
184838  
184839  , p_source_1 => l_array_source_1(Idx)
184840  , p_source_9 => l_array_source_9(Idx)
184841  , p_source_18 => l_array_source_18(Idx)
184842  , p_source_21 => l_array_source_21(Idx)
184843  , p_source_21_meaning => l_array_source_21_meaning(Idx)
184844  , p_source_41 => l_array_source_41(Idx)
184845  , p_source_43 => l_array_source_43(Idx)
184846  , p_source_45 => l_array_source_45(Idx)
184847  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
184848  , p_source_52 => l_array_source_52(Idx)
184849  , p_source_53 => l_array_source_53(Idx)
184850  , p_source_54 => l_array_source_54(Idx)
184851  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
184852  , p_source_56 => l_array_source_56(Idx)
184853  , p_source_57 => l_array_source_57(Idx)
184854  , p_source_58 => l_array_source_58(Idx)
184855  , p_source_59 => l_array_source_59(Idx)
184856  , p_source_60 => l_array_source_60(Idx)
184857  , p_source_61 => l_array_source_61(Idx)
184858  , p_source_65 => l_array_source_65(Idx)
184859  , p_source_66 => l_array_source_66(Idx)
184860  , p_source_67 => l_array_source_67(Idx)
184861  , p_source_68 => l_array_source_68(Idx)
184862  , p_source_68_meaning => l_array_source_68_meaning(Idx)
184863  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
184864  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
184865  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
184866  , p_source_72 => l_array_source_72(Idx)
184867  , p_source_73 => l_array_source_73(Idx)
184868  , p_source_74 => l_array_source_74(Idx)
184869  , p_source_75 => l_array_source_75(Idx)
184870  , p_source_76 => l_array_source_76(Idx)
184871  , p_source_77 => l_array_source_77(Idx)
184872  , p_source_78 => l_array_source_78(Idx)
184873  , p_source_79 => l_array_source_79(Idx)
184874  , p_source_80 => l_array_source_80(Idx)
184875  , p_source_81 => l_array_source_81(Idx)
184876  , p_source_82 => l_array_source_82(Idx)
184877  , p_source_83 => l_array_source_83(Idx)
184878  , p_source_84 => l_array_source_84(Idx)
184879  , p_source_84_meaning => l_array_source_84_meaning(Idx)
184880  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
184881  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
184882  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
184883  );
184884 If(l_balance_type_code = 'A') THEN
184885   l_actual_gain_loss_ref := l_gain_or_loss_ref;
184886 END IF;
184887 
184888 --
184889 
184890 
184891 --
184892 AcctLineType_159 (
184893  p_application_id  => p_application_id
184894  ,p_event_id     => l_event_id
184895  ,p_calculate_acctd_flag => l_calculate_acctd_flag
184896  ,p_calculate_g_l_flag => l_calculate_g_l_flag
184897  ,p_actual_flag => l_actual_flag
184898  ,p_balance_type_code => l_balance_type_code
184899  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
184900  
184901  , p_source_21 => l_array_source_21(Idx)
184902  , p_source_21_meaning => l_array_source_21_meaning(Idx)
184903  , p_source_41 => l_array_source_41(Idx)
184904  , p_source_43 => l_array_source_43(Idx)
184905  , p_source_45 => l_array_source_45(Idx)
184906  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
184907  , p_source_52 => l_array_source_52(Idx)
184908  , p_source_53 => l_array_source_53(Idx)
184909  , p_source_54 => l_array_source_54(Idx)
184910  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
184911  , p_source_56 => l_array_source_56(Idx)
184912  , p_source_57 => l_array_source_57(Idx)
184913  , p_source_58 => l_array_source_58(Idx)
184914  , p_source_59 => l_array_source_59(Idx)
184915  , p_source_60 => l_array_source_60(Idx)
184916  , p_source_65 => l_array_source_65(Idx)
184917  , p_source_66 => l_array_source_66(Idx)
184918  , p_source_67 => l_array_source_67(Idx)
184919  , p_source_68 => l_array_source_68(Idx)
184920  , p_source_68_meaning => l_array_source_68_meaning(Idx)
184921  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
184922  , p_source_72 => l_array_source_72(Idx)
184923  , p_source_73 => l_array_source_73(Idx)
184924  , p_source_74 => l_array_source_74(Idx)
184925  , p_source_75 => l_array_source_75(Idx)
184926  , p_source_76 => l_array_source_76(Idx)
184927  , p_source_77 => l_array_source_77(Idx)
184928  , p_source_78 => l_array_source_78(Idx)
184929  , p_source_79 => l_array_source_79(Idx)
184930  , p_source_80 => l_array_source_80(Idx)
184931  , p_source_81 => l_array_source_81(Idx)
184932  , p_source_82 => l_array_source_82(Idx)
184933  , p_source_83 => l_array_source_83(Idx)
184934  , p_source_84 => l_array_source_84(Idx)
184935  , p_source_84_meaning => l_array_source_84_meaning(Idx)
184939  , p_source_87_meaning => l_array_source_87_meaning(Idx)
184936  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
184937  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
184938  , p_source_87 => l_array_source_87(Idx)
184940  , p_source_143 => l_array_source_143(Idx)
184941  , p_source_144 => l_array_source_144(Idx)
184942  );
184943 If(l_balance_type_code = 'A') THEN
184944   l_actual_gain_loss_ref := l_gain_or_loss_ref;
184945 END IF;
184946 
184947 --
184948 
184949 
184950 --
184951 AcctLineType_168 (
184952  p_application_id  => p_application_id
184953  ,p_event_id     => l_event_id
184954  ,p_calculate_acctd_flag => l_calculate_acctd_flag
184955  ,p_calculate_g_l_flag => l_calculate_g_l_flag
184956  ,p_actual_flag => l_actual_flag
184957  ,p_balance_type_code => l_balance_type_code
184958  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
184959  
184960  , p_source_1 => l_array_source_1(Idx)
184961  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
184962  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
184963  , p_source_9 => l_array_source_9(Idx)
184964  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
184965  , p_source_41 => l_array_source_41(Idx)
184966  , p_source_43 => l_array_source_43(Idx)
184967  , p_source_45 => l_array_source_45(Idx)
184968  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
184969  , p_source_52 => l_array_source_52(Idx)
184970  , p_source_53 => l_array_source_53(Idx)
184971  , p_source_54 => l_array_source_54(Idx)
184972  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
184973  , p_source_56 => l_array_source_56(Idx)
184974  , p_source_57 => l_array_source_57(Idx)
184975  , p_source_58 => l_array_source_58(Idx)
184976  , p_source_59 => l_array_source_59(Idx)
184977  , p_source_60 => l_array_source_60(Idx)
184978  , p_source_61 => l_array_source_61(Idx)
184979  , p_source_65 => l_array_source_65(Idx)
184980  , p_source_66 => l_array_source_66(Idx)
184981  , p_source_67 => l_array_source_67(Idx)
184982  , p_source_68 => l_array_source_68(Idx)
184983  , p_source_68_meaning => l_array_source_68_meaning(Idx)
184984  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
184985  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
184986  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
184987  , p_source_72 => l_array_source_72(Idx)
184988  , p_source_73 => l_array_source_73(Idx)
184989  , p_source_74 => l_array_source_74(Idx)
184990  , p_source_75 => l_array_source_75(Idx)
184991  , p_source_76 => l_array_source_76(Idx)
184992  , p_source_77 => l_array_source_77(Idx)
184993  , p_source_78 => l_array_source_78(Idx)
184994  , p_source_79 => l_array_source_79(Idx)
184995  , p_source_80 => l_array_source_80(Idx)
184996  , p_source_81 => l_array_source_81(Idx)
184997  , p_source_82 => l_array_source_82(Idx)
184998  , p_source_83 => l_array_source_83(Idx)
184999  , p_source_135 => l_array_source_135(Idx)
185000  , p_source_135_meaning => l_array_source_135_meaning(Idx)
185001  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
185002  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
185003  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
185004  );
185005 If(l_balance_type_code = 'A') THEN
185006   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185007 END IF;
185008 
185009 --
185010 
185011 
185012 --
185013 AcctLineType_169 (
185014  p_application_id  => p_application_id
185015  ,p_event_id     => l_event_id
185016  ,p_calculate_acctd_flag => l_calculate_acctd_flag
185017  ,p_calculate_g_l_flag => l_calculate_g_l_flag
185018  ,p_actual_flag => l_actual_flag
185019  ,p_balance_type_code => l_balance_type_code
185020  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
185021  
185022  , p_source_1 => l_array_source_1(Idx)
185023  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
185024  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
185025  , p_source_9 => l_array_source_9(Idx)
185026  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
185027  , p_source_41 => l_array_source_41(Idx)
185028  , p_source_43 => l_array_source_43(Idx)
185029  , p_source_45 => l_array_source_45(Idx)
185030  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
185031  , p_source_52 => l_array_source_52(Idx)
185032  , p_source_53 => l_array_source_53(Idx)
185033  , p_source_54 => l_array_source_54(Idx)
185034  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
185035  , p_source_56 => l_array_source_56(Idx)
185036  , p_source_57 => l_array_source_57(Idx)
185037  , p_source_58 => l_array_source_58(Idx)
185038  , p_source_59 => l_array_source_59(Idx)
185039  , p_source_60 => l_array_source_60(Idx)
185040  , p_source_61 => l_array_source_61(Idx)
185041  , p_source_65 => l_array_source_65(Idx)
185042  , p_source_66 => l_array_source_66(Idx)
185043  , p_source_67 => l_array_source_67(Idx)
185044  , p_source_68 => l_array_source_68(Idx)
185045  , p_source_68_meaning => l_array_source_68_meaning(Idx)
185046  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
185047  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
185048  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
185049  , p_source_72 => l_array_source_72(Idx)
185050  , p_source_73 => l_array_source_73(Idx)
185051  , p_source_74 => l_array_source_74(Idx)
185052  , p_source_75 => l_array_source_75(Idx)
185053  , p_source_76 => l_array_source_76(Idx)
185057  , p_source_80 => l_array_source_80(Idx)
185054  , p_source_77 => l_array_source_77(Idx)
185055  , p_source_78 => l_array_source_78(Idx)
185056  , p_source_79 => l_array_source_79(Idx)
185058  , p_source_81 => l_array_source_81(Idx)
185059  , p_source_82 => l_array_source_82(Idx)
185060  , p_source_83 => l_array_source_83(Idx)
185061  , p_source_135 => l_array_source_135(Idx)
185062  , p_source_135_meaning => l_array_source_135_meaning(Idx)
185063  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
185064  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
185065  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
185066  );
185067 If(l_balance_type_code = 'A') THEN
185068   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185069 END IF;
185070 
185071 --
185072 
185073 
185074 --
185075 AcctLineType_170 (
185076  p_application_id  => p_application_id
185077  ,p_event_id     => l_event_id
185078  ,p_calculate_acctd_flag => l_calculate_acctd_flag
185079  ,p_calculate_g_l_flag => l_calculate_g_l_flag
185080  ,p_actual_flag => l_actual_flag
185081  ,p_balance_type_code => l_balance_type_code
185082  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
185083  
185084  , p_source_1 => l_array_source_1(Idx)
185085  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
185086  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
185087  , p_source_9 => l_array_source_9(Idx)
185088  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
185089  , p_source_41 => l_array_source_41(Idx)
185090  , p_source_43 => l_array_source_43(Idx)
185091  , p_source_45 => l_array_source_45(Idx)
185092  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
185093  , p_source_52 => l_array_source_52(Idx)
185094  , p_source_53 => l_array_source_53(Idx)
185095  , p_source_54 => l_array_source_54(Idx)
185096  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
185097  , p_source_56 => l_array_source_56(Idx)
185098  , p_source_57 => l_array_source_57(Idx)
185099  , p_source_58 => l_array_source_58(Idx)
185100  , p_source_59 => l_array_source_59(Idx)
185101  , p_source_60 => l_array_source_60(Idx)
185102  , p_source_61 => l_array_source_61(Idx)
185103  , p_source_65 => l_array_source_65(Idx)
185104  , p_source_66 => l_array_source_66(Idx)
185105  , p_source_67 => l_array_source_67(Idx)
185106  , p_source_68 => l_array_source_68(Idx)
185107  , p_source_68_meaning => l_array_source_68_meaning(Idx)
185108  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
185109  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
185110  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
185111  , p_source_72 => l_array_source_72(Idx)
185112  , p_source_73 => l_array_source_73(Idx)
185113  , p_source_74 => l_array_source_74(Idx)
185114  , p_source_75 => l_array_source_75(Idx)
185115  , p_source_76 => l_array_source_76(Idx)
185116  , p_source_77 => l_array_source_77(Idx)
185117  , p_source_78 => l_array_source_78(Idx)
185118  , p_source_79 => l_array_source_79(Idx)
185119  , p_source_80 => l_array_source_80(Idx)
185120  , p_source_81 => l_array_source_81(Idx)
185121  , p_source_82 => l_array_source_82(Idx)
185122  , p_source_83 => l_array_source_83(Idx)
185123  , p_source_135 => l_array_source_135(Idx)
185124  , p_source_135_meaning => l_array_source_135_meaning(Idx)
185125  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
185126  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
185127  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
185128  );
185129 If(l_balance_type_code = 'A') THEN
185130   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185131 END IF;
185132 
185133 --
185134 
185135 
185136 --
185137 AcctLineType_191 (
185138  p_application_id  => p_application_id
185139  ,p_event_id     => l_event_id
185140  ,p_calculate_acctd_flag => l_calculate_acctd_flag
185141  ,p_calculate_g_l_flag => l_calculate_g_l_flag
185142  ,p_actual_flag => l_actual_flag
185143  ,p_balance_type_code => l_balance_type_code
185144  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
185145  
185146  , p_source_1 => l_array_source_1(Idx)
185147  , p_source_9 => l_array_source_9(Idx)
185148  , p_source_18 => l_array_source_18(Idx)
185149  , p_source_21 => l_array_source_21(Idx)
185150  , p_source_21_meaning => l_array_source_21_meaning(Idx)
185151  , p_source_41 => l_array_source_41(Idx)
185152  , p_source_43 => l_array_source_43(Idx)
185153  , p_source_45 => l_array_source_45(Idx)
185154  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
185155  , p_source_52 => l_array_source_52(Idx)
185156  , p_source_53 => l_array_source_53(Idx)
185157  , p_source_54 => l_array_source_54(Idx)
185158  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
185159  , p_source_56 => l_array_source_56(Idx)
185160  , p_source_57 => l_array_source_57(Idx)
185161  , p_source_58 => l_array_source_58(Idx)
185162  , p_source_59 => l_array_source_59(Idx)
185163  , p_source_60 => l_array_source_60(Idx)
185164  , p_source_61 => l_array_source_61(Idx)
185165  , p_source_65 => l_array_source_65(Idx)
185166  , p_source_66 => l_array_source_66(Idx)
185167  , p_source_67 => l_array_source_67(Idx)
185168  , p_source_68 => l_array_source_68(Idx)
185169  , p_source_68_meaning => l_array_source_68_meaning(Idx)
185170  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
185171  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
185172  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
185173  , p_source_72 => l_array_source_72(Idx)
185174  , p_source_73 => l_array_source_73(Idx)
185175  , p_source_74 => l_array_source_74(Idx)
185176  , p_source_75 => l_array_source_75(Idx)
185177  , p_source_76 => l_array_source_76(Idx)
185181  , p_source_80 => l_array_source_80(Idx)
185178  , p_source_77 => l_array_source_77(Idx)
185179  , p_source_78 => l_array_source_78(Idx)
185180  , p_source_79 => l_array_source_79(Idx)
185182  , p_source_81 => l_array_source_81(Idx)
185183  , p_source_82 => l_array_source_82(Idx)
185184  , p_source_83 => l_array_source_83(Idx)
185185  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
185186  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
185187  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
185188  );
185189 If(l_balance_type_code = 'A') THEN
185190   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185191 END IF;
185192 
185193 --
185194 
185195 
185196 --
185197 AcctLineType_192 (
185198  p_application_id  => p_application_id
185199  ,p_event_id     => l_event_id
185200  ,p_calculate_acctd_flag => l_calculate_acctd_flag
185201  ,p_calculate_g_l_flag => l_calculate_g_l_flag
185202  ,p_actual_flag => l_actual_flag
185203  ,p_balance_type_code => l_balance_type_code
185204  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
185205  
185206  , p_source_21 => l_array_source_21(Idx)
185207  , p_source_21_meaning => l_array_source_21_meaning(Idx)
185208  , p_source_41 => l_array_source_41(Idx)
185209  , p_source_43 => l_array_source_43(Idx)
185210  , p_source_45 => l_array_source_45(Idx)
185211  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
185212  , p_source_52 => l_array_source_52(Idx)
185213  , p_source_53 => l_array_source_53(Idx)
185214  , p_source_54 => l_array_source_54(Idx)
185215  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
185216  , p_source_56 => l_array_source_56(Idx)
185217  , p_source_57 => l_array_source_57(Idx)
185218  , p_source_58 => l_array_source_58(Idx)
185219  , p_source_59 => l_array_source_59(Idx)
185220  , p_source_60 => l_array_source_60(Idx)
185221  , p_source_65 => l_array_source_65(Idx)
185222  , p_source_66 => l_array_source_66(Idx)
185223  , p_source_67 => l_array_source_67(Idx)
185224  , p_source_68 => l_array_source_68(Idx)
185225  , p_source_68_meaning => l_array_source_68_meaning(Idx)
185226  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
185227  , p_source_72 => l_array_source_72(Idx)
185228  , p_source_73 => l_array_source_73(Idx)
185229  , p_source_74 => l_array_source_74(Idx)
185230  , p_source_75 => l_array_source_75(Idx)
185231  , p_source_76 => l_array_source_76(Idx)
185232  , p_source_77 => l_array_source_77(Idx)
185233  , p_source_78 => l_array_source_78(Idx)
185234  , p_source_79 => l_array_source_79(Idx)
185235  , p_source_80 => l_array_source_80(Idx)
185236  , p_source_81 => l_array_source_81(Idx)
185237  , p_source_82 => l_array_source_82(Idx)
185238  , p_source_83 => l_array_source_83(Idx)
185239  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
185240  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
185241  , p_source_87 => l_array_source_87(Idx)
185242  , p_source_87_meaning => l_array_source_87_meaning(Idx)
185243  , p_source_143 => l_array_source_143(Idx)
185244  , p_source_144 => l_array_source_144(Idx)
185245  );
185246 If(l_balance_type_code = 'A') THEN
185247   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185248 END IF;
185249 
185250 --
185251 
185252 
185253 --
185254 AcctLineType_199 (
185255  p_application_id  => p_application_id
185256  ,p_event_id     => l_event_id
185257  ,p_calculate_acctd_flag => l_calculate_acctd_flag
185258  ,p_calculate_g_l_flag => l_calculate_g_l_flag
185259  ,p_actual_flag => l_actual_flag
185260  ,p_balance_type_code => l_balance_type_code
185261  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
185262  
185263  , p_source_1 => l_array_source_1(Idx)
185264  , p_source_9 => l_array_source_9(Idx)
185265  , p_source_18 => l_array_source_18(Idx)
185266  , p_source_21 => l_array_source_21(Idx)
185267  , p_source_21_meaning => l_array_source_21_meaning(Idx)
185268  , p_source_41 => l_array_source_41(Idx)
185269  , p_source_43 => l_array_source_43(Idx)
185270  , p_source_45 => l_array_source_45(Idx)
185271  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
185272  , p_source_52 => l_array_source_52(Idx)
185273  , p_source_53 => l_array_source_53(Idx)
185274  , p_source_54 => l_array_source_54(Idx)
185275  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
185276  , p_source_56 => l_array_source_56(Idx)
185277  , p_source_57 => l_array_source_57(Idx)
185278  , p_source_58 => l_array_source_58(Idx)
185279  , p_source_59 => l_array_source_59(Idx)
185280  , p_source_60 => l_array_source_60(Idx)
185281  , p_source_61 => l_array_source_61(Idx)
185282  , p_source_62 => l_array_source_62(Idx)
185283  , p_source_63 => l_array_source_63(Idx)
185284  , p_source_64 => l_array_source_64(Idx)
185285  , p_source_65 => l_array_source_65(Idx)
185286  , p_source_66 => l_array_source_66(Idx)
185287  , p_source_67 => l_array_source_67(Idx)
185288  , p_source_68 => l_array_source_68(Idx)
185289  , p_source_68_meaning => l_array_source_68_meaning(Idx)
185290  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
185291  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
185292  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
185293  , p_source_72 => l_array_source_72(Idx)
185294  , p_source_73 => l_array_source_73(Idx)
185295  , p_source_74 => l_array_source_74(Idx)
185296  , p_source_75 => l_array_source_75(Idx)
185297  , p_source_76 => l_array_source_76(Idx)
185298  , p_source_77 => l_array_source_77(Idx)
185299  , p_source_78 => l_array_source_78(Idx)
185300  , p_source_79 => l_array_source_79(Idx)
185301  , p_source_80 => l_array_source_80(Idx)
185302  , p_source_81 => l_array_source_81(Idx)
185303  , p_source_82 => l_array_source_82(Idx)
185304  , p_source_83 => l_array_source_83(Idx)
185308  , p_source_135_meaning => l_array_source_135_meaning(Idx)
185305  , p_source_84 => l_array_source_84(Idx)
185306  , p_source_84_meaning => l_array_source_84_meaning(Idx)
185307  , p_source_135 => l_array_source_135(Idx)
185309  );
185310 If(l_balance_type_code = 'A') THEN
185311   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185312 END IF;
185313 
185314 --
185315 
185316 
185317 --
185318 AcctLineType_202 (
185319  p_application_id  => p_application_id
185320  ,p_event_id     => l_event_id
185321  ,p_calculate_acctd_flag => l_calculate_acctd_flag
185322  ,p_calculate_g_l_flag => l_calculate_g_l_flag
185323  ,p_actual_flag => l_actual_flag
185324  ,p_balance_type_code => l_balance_type_code
185325  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
185326  
185327  , p_source_1 => l_array_source_1(Idx)
185328  , p_source_9 => l_array_source_9(Idx)
185329  , p_source_18 => l_array_source_18(Idx)
185330  , p_source_21 => l_array_source_21(Idx)
185331  , p_source_21_meaning => l_array_source_21_meaning(Idx)
185332  , p_source_41 => l_array_source_41(Idx)
185333  , p_source_43 => l_array_source_43(Idx)
185334  , p_source_45 => l_array_source_45(Idx)
185335  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
185336  , p_source_52 => l_array_source_52(Idx)
185337  , p_source_53 => l_array_source_53(Idx)
185338  , p_source_54 => l_array_source_54(Idx)
185339  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
185340  , p_source_56 => l_array_source_56(Idx)
185341  , p_source_57 => l_array_source_57(Idx)
185342  , p_source_58 => l_array_source_58(Idx)
185343  , p_source_59 => l_array_source_59(Idx)
185344  , p_source_60 => l_array_source_60(Idx)
185345  , p_source_61 => l_array_source_61(Idx)
185346  , p_source_65 => l_array_source_65(Idx)
185347  , p_source_66 => l_array_source_66(Idx)
185348  , p_source_67 => l_array_source_67(Idx)
185349  , p_source_68 => l_array_source_68(Idx)
185350  , p_source_68_meaning => l_array_source_68_meaning(Idx)
185351  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
185352  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
185353  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
185354  , p_source_72 => l_array_source_72(Idx)
185355  , p_source_73 => l_array_source_73(Idx)
185356  , p_source_74 => l_array_source_74(Idx)
185357  , p_source_75 => l_array_source_75(Idx)
185358  , p_source_76 => l_array_source_76(Idx)
185359  , p_source_77 => l_array_source_77(Idx)
185360  , p_source_78 => l_array_source_78(Idx)
185361  , p_source_79 => l_array_source_79(Idx)
185362  , p_source_80 => l_array_source_80(Idx)
185363  , p_source_81 => l_array_source_81(Idx)
185364  , p_source_82 => l_array_source_82(Idx)
185365  , p_source_83 => l_array_source_83(Idx)
185366  , p_source_84 => l_array_source_84(Idx)
185367  , p_source_84_meaning => l_array_source_84_meaning(Idx)
185368  , p_source_135 => l_array_source_135(Idx)
185369  , p_source_135_meaning => l_array_source_135_meaning(Idx)
185370  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
185371  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
185372  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
185373  );
185374 If(l_balance_type_code = 'A') THEN
185375   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185376 END IF;
185377 
185378 --
185379 
185380 
185381 --
185382 AcctLineType_203 (
185383  p_application_id  => p_application_id
185384  ,p_event_id     => l_event_id
185385  ,p_calculate_acctd_flag => l_calculate_acctd_flag
185386  ,p_calculate_g_l_flag => l_calculate_g_l_flag
185387  ,p_actual_flag => l_actual_flag
185388  ,p_balance_type_code => l_balance_type_code
185389  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
185390  
185391  , p_source_21 => l_array_source_21(Idx)
185392  , p_source_21_meaning => l_array_source_21_meaning(Idx)
185393  , p_source_41 => l_array_source_41(Idx)
185394  , p_source_43 => l_array_source_43(Idx)
185395  , p_source_45 => l_array_source_45(Idx)
185396  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
185397  , p_source_52 => l_array_source_52(Idx)
185398  , p_source_53 => l_array_source_53(Idx)
185399  , p_source_54 => l_array_source_54(Idx)
185400  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
185401  , p_source_56 => l_array_source_56(Idx)
185402  , p_source_57 => l_array_source_57(Idx)
185403  , p_source_58 => l_array_source_58(Idx)
185404  , p_source_59 => l_array_source_59(Idx)
185405  , p_source_60 => l_array_source_60(Idx)
185406  , p_source_65 => l_array_source_65(Idx)
185407  , p_source_66 => l_array_source_66(Idx)
185408  , p_source_67 => l_array_source_67(Idx)
185409  , p_source_68 => l_array_source_68(Idx)
185410  , p_source_68_meaning => l_array_source_68_meaning(Idx)
185411  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
185412  , p_source_72 => l_array_source_72(Idx)
185413  , p_source_73 => l_array_source_73(Idx)
185414  , p_source_74 => l_array_source_74(Idx)
185415  , p_source_75 => l_array_source_75(Idx)
185416  , p_source_76 => l_array_source_76(Idx)
185417  , p_source_77 => l_array_source_77(Idx)
185418  , p_source_78 => l_array_source_78(Idx)
185419  , p_source_79 => l_array_source_79(Idx)
185420  , p_source_80 => l_array_source_80(Idx)
185421  , p_source_81 => l_array_source_81(Idx)
185422  , p_source_82 => l_array_source_82(Idx)
185423  , p_source_83 => l_array_source_83(Idx)
185424  , p_source_84 => l_array_source_84(Idx)
185425  , p_source_84_meaning => l_array_source_84_meaning(Idx)
185426  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
185427  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
185428  , p_source_87 => l_array_source_87(Idx)
185429  , p_source_87_meaning => l_array_source_87_meaning(Idx)
185433  , p_source_144 => l_array_source_144(Idx)
185430  , p_source_135 => l_array_source_135(Idx)
185431  , p_source_135_meaning => l_array_source_135_meaning(Idx)
185432  , p_source_143 => l_array_source_143(Idx)
185434  );
185435 If(l_balance_type_code = 'A') THEN
185436   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185437 END IF;
185438 
185439 --
185440 
185441 
185442 --
185443 AcctLineType_216 (
185444  p_application_id  => p_application_id
185445  ,p_event_id     => l_event_id
185446  ,p_calculate_acctd_flag => l_calculate_acctd_flag
185447  ,p_calculate_g_l_flag => l_calculate_g_l_flag
185448  ,p_actual_flag => l_actual_flag
185449  ,p_balance_type_code => l_balance_type_code
185450  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
185451  
185452  , p_source_21 => l_array_source_21(Idx)
185453  , p_source_21_meaning => l_array_source_21_meaning(Idx)
185454  , p_source_41 => l_array_source_41(Idx)
185455  , p_source_43 => l_array_source_43(Idx)
185456  , p_source_45 => l_array_source_45(Idx)
185457  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
185458  , p_source_52 => l_array_source_52(Idx)
185459  , p_source_53 => l_array_source_53(Idx)
185460  , p_source_54 => l_array_source_54(Idx)
185461  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
185462  , p_source_56 => l_array_source_56(Idx)
185463  , p_source_57 => l_array_source_57(Idx)
185464  , p_source_58 => l_array_source_58(Idx)
185465  , p_source_59 => l_array_source_59(Idx)
185466  , p_source_60 => l_array_source_60(Idx)
185467  , p_source_65 => l_array_source_65(Idx)
185468  , p_source_66 => l_array_source_66(Idx)
185469  , p_source_67 => l_array_source_67(Idx)
185470  , p_source_68 => l_array_source_68(Idx)
185471  , p_source_68_meaning => l_array_source_68_meaning(Idx)
185472  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
185473  , p_source_72 => l_array_source_72(Idx)
185474  , p_source_73 => l_array_source_73(Idx)
185475  , p_source_74 => l_array_source_74(Idx)
185476  , p_source_75 => l_array_source_75(Idx)
185477  , p_source_76 => l_array_source_76(Idx)
185478  , p_source_77 => l_array_source_77(Idx)
185479  , p_source_78 => l_array_source_78(Idx)
185480  , p_source_79 => l_array_source_79(Idx)
185481  , p_source_80 => l_array_source_80(Idx)
185482  , p_source_81 => l_array_source_81(Idx)
185483  , p_source_82 => l_array_source_82(Idx)
185484  , p_source_83 => l_array_source_83(Idx)
185485  , p_source_84 => l_array_source_84(Idx)
185486  , p_source_84_meaning => l_array_source_84_meaning(Idx)
185487  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
185488  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
185489  , p_source_87 => l_array_source_87(Idx)
185490  , p_source_87_meaning => l_array_source_87_meaning(Idx)
185491  , p_source_161 => l_array_source_161(Idx)
185492  , p_source_162 => l_array_source_162(Idx)
185493  );
185494 If(l_balance_type_code = 'A') THEN
185495   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185496 END IF;
185497 
185498 --
185499 
185500 
185501 --
185502 AcctLineType_220 (
185503  p_application_id  => p_application_id
185504  ,p_event_id     => l_event_id
185505  ,p_calculate_acctd_flag => l_calculate_acctd_flag
185506  ,p_calculate_g_l_flag => l_calculate_g_l_flag
185507  ,p_actual_flag => l_actual_flag
185508  ,p_balance_type_code => l_balance_type_code
185509  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
185510  
185511  , p_source_1 => l_array_source_1(Idx)
185512  , p_source_9 => l_array_source_9(Idx)
185513  , p_source_18 => l_array_source_18(Idx)
185514  , p_source_21 => l_array_source_21(Idx)
185515  , p_source_21_meaning => l_array_source_21_meaning(Idx)
185516  , p_source_41 => l_array_source_41(Idx)
185517  , p_source_43 => l_array_source_43(Idx)
185518  , p_source_45 => l_array_source_45(Idx)
185519  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
185520  , p_source_52 => l_array_source_52(Idx)
185521  , p_source_53 => l_array_source_53(Idx)
185522  , p_source_54 => l_array_source_54(Idx)
185523  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
185524  , p_source_56 => l_array_source_56(Idx)
185525  , p_source_57 => l_array_source_57(Idx)
185526  , p_source_58 => l_array_source_58(Idx)
185527  , p_source_59 => l_array_source_59(Idx)
185528  , p_source_60 => l_array_source_60(Idx)
185529  , p_source_61 => l_array_source_61(Idx)
185530  , p_source_65 => l_array_source_65(Idx)
185531  , p_source_66 => l_array_source_66(Idx)
185532  , p_source_67 => l_array_source_67(Idx)
185533  , p_source_68 => l_array_source_68(Idx)
185534  , p_source_68_meaning => l_array_source_68_meaning(Idx)
185535  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
185536  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
185537  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
185538  , p_source_72 => l_array_source_72(Idx)
185539  , p_source_73 => l_array_source_73(Idx)
185540  , p_source_74 => l_array_source_74(Idx)
185541  , p_source_75 => l_array_source_75(Idx)
185542  , p_source_76 => l_array_source_76(Idx)
185543  , p_source_77 => l_array_source_77(Idx)
185544  , p_source_78 => l_array_source_78(Idx)
185545  , p_source_79 => l_array_source_79(Idx)
185546  , p_source_80 => l_array_source_80(Idx)
185547  , p_source_81 => l_array_source_81(Idx)
185548  , p_source_82 => l_array_source_82(Idx)
185549  , p_source_83 => l_array_source_83(Idx)
185550  , p_source_135 => l_array_source_135(Idx)
185551  , p_source_135_meaning => l_array_source_135_meaning(Idx)
185552  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
185553  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
185557   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185554  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
185555  );
185556 If(l_balance_type_code = 'A') THEN
185558 END IF;
185559 
185560 --
185561 
185562 
185563 --
185564 AcctLineType_221 (
185565  p_application_id  => p_application_id
185566  ,p_event_id     => l_event_id
185567  ,p_calculate_acctd_flag => l_calculate_acctd_flag
185568  ,p_calculate_g_l_flag => l_calculate_g_l_flag
185569  ,p_actual_flag => l_actual_flag
185570  ,p_balance_type_code => l_balance_type_code
185571  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
185572  
185573  , p_source_21 => l_array_source_21(Idx)
185574  , p_source_21_meaning => l_array_source_21_meaning(Idx)
185575  , p_source_41 => l_array_source_41(Idx)
185576  , p_source_43 => l_array_source_43(Idx)
185577  , p_source_45 => l_array_source_45(Idx)
185578  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
185579  , p_source_52 => l_array_source_52(Idx)
185580  , p_source_53 => l_array_source_53(Idx)
185581  , p_source_54 => l_array_source_54(Idx)
185582  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
185583  , p_source_56 => l_array_source_56(Idx)
185584  , p_source_57 => l_array_source_57(Idx)
185585  , p_source_58 => l_array_source_58(Idx)
185586  , p_source_59 => l_array_source_59(Idx)
185587  , p_source_60 => l_array_source_60(Idx)
185588  , p_source_65 => l_array_source_65(Idx)
185589  , p_source_66 => l_array_source_66(Idx)
185590  , p_source_67 => l_array_source_67(Idx)
185591  , p_source_68 => l_array_source_68(Idx)
185592  , p_source_68_meaning => l_array_source_68_meaning(Idx)
185593  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
185594  , p_source_72 => l_array_source_72(Idx)
185595  , p_source_73 => l_array_source_73(Idx)
185596  , p_source_74 => l_array_source_74(Idx)
185597  , p_source_75 => l_array_source_75(Idx)
185598  , p_source_76 => l_array_source_76(Idx)
185599  , p_source_77 => l_array_source_77(Idx)
185600  , p_source_78 => l_array_source_78(Idx)
185601  , p_source_79 => l_array_source_79(Idx)
185602  , p_source_80 => l_array_source_80(Idx)
185603  , p_source_81 => l_array_source_81(Idx)
185604  , p_source_82 => l_array_source_82(Idx)
185605  , p_source_83 => l_array_source_83(Idx)
185606  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
185607  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
185608  , p_source_87 => l_array_source_87(Idx)
185609  , p_source_87_meaning => l_array_source_87_meaning(Idx)
185610  , p_source_135 => l_array_source_135(Idx)
185611  , p_source_135_meaning => l_array_source_135_meaning(Idx)
185612  , p_source_143 => l_array_source_143(Idx)
185613  , p_source_144 => l_array_source_144(Idx)
185614  );
185615 If(l_balance_type_code = 'A') THEN
185616   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185617 END IF;
185618 
185619 --
185620 
185621 
185622 --
185623 AcctLineType_229 (
185624  p_application_id  => p_application_id
185625  ,p_event_id     => l_event_id
185626  ,p_calculate_acctd_flag => l_calculate_acctd_flag
185627  ,p_calculate_g_l_flag => l_calculate_g_l_flag
185628  ,p_actual_flag => l_actual_flag
185629  ,p_balance_type_code => l_balance_type_code
185630  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
185631  
185632  , p_source_1 => l_array_source_1(Idx)
185633  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
185634  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
185635  , p_source_9 => l_array_source_9(Idx)
185636  , p_source_18 => l_array_source_18(Idx)
185637  , p_source_21 => l_array_source_21(Idx)
185638  , p_source_21_meaning => l_array_source_21_meaning(Idx)
185639  , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
185640  , p_source_30 => l_array_source_30(Idx)
185641  , p_source_41 => l_array_source_41(Idx)
185642  , p_source_43 => l_array_source_43(Idx)
185643  , p_source_45 => l_array_source_45(Idx)
185644  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
185645  , p_source_52 => l_array_source_52(Idx)
185646  , p_source_53 => l_array_source_53(Idx)
185647  , p_source_54 => l_array_source_54(Idx)
185648  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
185649  , p_source_56 => l_array_source_56(Idx)
185650  , p_source_57 => l_array_source_57(Idx)
185651  , p_source_58 => l_array_source_58(Idx)
185652  , p_source_59 => l_array_source_59(Idx)
185653  , p_source_60 => l_array_source_60(Idx)
185654  , p_source_61 => l_array_source_61(Idx)
185655  , p_source_65 => l_array_source_65(Idx)
185656  , p_source_66 => l_array_source_66(Idx)
185657  , p_source_67 => l_array_source_67(Idx)
185658  , p_source_68 => l_array_source_68(Idx)
185659  , p_source_68_meaning => l_array_source_68_meaning(Idx)
185660  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
185661  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
185662  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
185663  , p_source_72 => l_array_source_72(Idx)
185664  , p_source_73 => l_array_source_73(Idx)
185665  , p_source_74 => l_array_source_74(Idx)
185666  , p_source_75 => l_array_source_75(Idx)
185667  , p_source_76 => l_array_source_76(Idx)
185668  , p_source_77 => l_array_source_77(Idx)
185669  , p_source_78 => l_array_source_78(Idx)
185670  , p_source_79 => l_array_source_79(Idx)
185671  , p_source_80 => l_array_source_80(Idx)
185672  , p_source_81 => l_array_source_81(Idx)
185673  , p_source_82 => l_array_source_82(Idx)
185674  , p_source_83 => l_array_source_83(Idx)
185675  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
185676  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
185677  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
185681 If(l_balance_type_code = 'A') THEN
185678  , p_source_159 => g_array_event(l_event_id).array_value_char('source_159')
185679  , p_source_159_meaning => g_array_event(l_event_id).array_value_char('source_159_meaning')
185680  );
185682   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185683 END IF;
185684 
185685 --
185686 
185687 
185688 --
185689 AcctLineType_232 (
185690  p_application_id  => p_application_id
185691  ,p_event_id     => l_event_id
185692  ,p_calculate_acctd_flag => l_calculate_acctd_flag
185693  ,p_calculate_g_l_flag => l_calculate_g_l_flag
185694  ,p_actual_flag => l_actual_flag
185695  ,p_balance_type_code => l_balance_type_code
185696  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
185697  
185698  , p_source_21 => l_array_source_21(Idx)
185699  , p_source_21_meaning => l_array_source_21_meaning(Idx)
185700  , p_source_41 => l_array_source_41(Idx)
185701  , p_source_43 => l_array_source_43(Idx)
185702  , p_source_45 => l_array_source_45(Idx)
185703  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
185704  , p_source_52 => l_array_source_52(Idx)
185705  , p_source_53 => l_array_source_53(Idx)
185706  , p_source_54 => l_array_source_54(Idx)
185707  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
185708  , p_source_56 => l_array_source_56(Idx)
185709  , p_source_57 => l_array_source_57(Idx)
185710  , p_source_58 => l_array_source_58(Idx)
185711  , p_source_59 => l_array_source_59(Idx)
185712  , p_source_60 => l_array_source_60(Idx)
185713  , p_source_65 => l_array_source_65(Idx)
185714  , p_source_66 => l_array_source_66(Idx)
185715  , p_source_67 => l_array_source_67(Idx)
185716  , p_source_68 => l_array_source_68(Idx)
185717  , p_source_68_meaning => l_array_source_68_meaning(Idx)
185718  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
185719  , p_source_72 => l_array_source_72(Idx)
185720  , p_source_73 => l_array_source_73(Idx)
185721  , p_source_74 => l_array_source_74(Idx)
185722  , p_source_75 => l_array_source_75(Idx)
185723  , p_source_76 => l_array_source_76(Idx)
185724  , p_source_77 => l_array_source_77(Idx)
185725  , p_source_78 => l_array_source_78(Idx)
185726  , p_source_79 => l_array_source_79(Idx)
185727  , p_source_80 => l_array_source_80(Idx)
185728  , p_source_81 => l_array_source_81(Idx)
185729  , p_source_82 => l_array_source_82(Idx)
185730  , p_source_83 => l_array_source_83(Idx)
185731  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
185732  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
185733  , p_source_87 => l_array_source_87(Idx)
185734  , p_source_87_meaning => l_array_source_87_meaning(Idx)
185735  , p_source_135 => l_array_source_135(Idx)
185736  , p_source_135_meaning => l_array_source_135_meaning(Idx)
185737  , p_source_143 => l_array_source_143(Idx)
185738  , p_source_144 => l_array_source_144(Idx)
185739  );
185740 If(l_balance_type_code = 'A') THEN
185741   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185742 END IF;
185743 
185744 --
185745 
185746 
185747 --
185748 AcctLineType_237 (
185749  p_application_id  => p_application_id
185750  ,p_event_id     => l_event_id
185751  ,p_calculate_acctd_flag => l_calculate_acctd_flag
185752  ,p_calculate_g_l_flag => l_calculate_g_l_flag
185753  ,p_actual_flag => l_actual_flag
185754  ,p_balance_type_code => l_balance_type_code
185755  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
185756  
185757  , p_source_1 => l_array_source_1(Idx)
185758  , p_source_9 => l_array_source_9(Idx)
185759  , p_source_21 => l_array_source_21(Idx)
185760  , p_source_21_meaning => l_array_source_21_meaning(Idx)
185761  , p_source_38 => l_array_source_38(Idx)
185762  , p_source_41 => l_array_source_41(Idx)
185763  , p_source_43 => l_array_source_43(Idx)
185764  , p_source_45 => l_array_source_45(Idx)
185765  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
185766  , p_source_52 => l_array_source_52(Idx)
185767  , p_source_53 => l_array_source_53(Idx)
185768  , p_source_54 => l_array_source_54(Idx)
185769  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
185770  , p_source_56 => l_array_source_56(Idx)
185771  , p_source_57 => l_array_source_57(Idx)
185772  , p_source_58 => l_array_source_58(Idx)
185773  , p_source_59 => l_array_source_59(Idx)
185774  , p_source_60 => l_array_source_60(Idx)
185775  , p_source_61 => l_array_source_61(Idx)
185776  , p_source_65 => l_array_source_65(Idx)
185777  , p_source_66 => l_array_source_66(Idx)
185778  , p_source_67 => l_array_source_67(Idx)
185779  , p_source_68 => l_array_source_68(Idx)
185780  , p_source_68_meaning => l_array_source_68_meaning(Idx)
185781  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
185782  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
185783  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
185784  , p_source_72 => l_array_source_72(Idx)
185785  , p_source_73 => l_array_source_73(Idx)
185786  , p_source_74 => l_array_source_74(Idx)
185787  , p_source_75 => l_array_source_75(Idx)
185788  , p_source_76 => l_array_source_76(Idx)
185789  , p_source_77 => l_array_source_77(Idx)
185790  , p_source_78 => l_array_source_78(Idx)
185791  , p_source_79 => l_array_source_79(Idx)
185792  , p_source_80 => l_array_source_80(Idx)
185793  , p_source_81 => l_array_source_81(Idx)
185794  , p_source_82 => l_array_source_82(Idx)
185795  , p_source_83 => l_array_source_83(Idx)
185796  , p_source_84 => l_array_source_84(Idx)
185797  , p_source_84_meaning => l_array_source_84_meaning(Idx)
185798  , p_source_135 => l_array_source_135(Idx)
185799  , p_source_135_meaning => l_array_source_135_meaning(Idx)
185800  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
185804 If(l_balance_type_code = 'A') THEN
185801  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
185802  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
185803  );
185805   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185806 END IF;
185807 
185808 --
185809 
185810 
185811 --
185812 AcctLineType_241 (
185813  p_application_id  => p_application_id
185814  ,p_event_id     => l_event_id
185815  ,p_calculate_acctd_flag => l_calculate_acctd_flag
185816  ,p_calculate_g_l_flag => l_calculate_g_l_flag
185817  ,p_actual_flag => l_actual_flag
185818  ,p_balance_type_code => l_balance_type_code
185819  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
185820  
185821  , p_source_1 => l_array_source_1(Idx)
185822  , p_source_9 => l_array_source_9(Idx)
185823  , p_source_21 => l_array_source_21(Idx)
185824  , p_source_21_meaning => l_array_source_21_meaning(Idx)
185825  , p_source_38 => l_array_source_38(Idx)
185826  , p_source_41 => l_array_source_41(Idx)
185827  , p_source_43 => l_array_source_43(Idx)
185828  , p_source_45 => l_array_source_45(Idx)
185829  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
185830  , p_source_52 => l_array_source_52(Idx)
185831  , p_source_53 => l_array_source_53(Idx)
185832  , p_source_54 => l_array_source_54(Idx)
185833  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
185834  , p_source_56 => l_array_source_56(Idx)
185835  , p_source_57 => l_array_source_57(Idx)
185836  , p_source_58 => l_array_source_58(Idx)
185837  , p_source_59 => l_array_source_59(Idx)
185838  , p_source_60 => l_array_source_60(Idx)
185839  , p_source_61 => l_array_source_61(Idx)
185840  , p_source_65 => l_array_source_65(Idx)
185841  , p_source_66 => l_array_source_66(Idx)
185842  , p_source_67 => l_array_source_67(Idx)
185843  , p_source_68 => l_array_source_68(Idx)
185844  , p_source_68_meaning => l_array_source_68_meaning(Idx)
185845  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
185846  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
185847  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
185848  , p_source_72 => l_array_source_72(Idx)
185849  , p_source_73 => l_array_source_73(Idx)
185850  , p_source_74 => l_array_source_74(Idx)
185851  , p_source_75 => l_array_source_75(Idx)
185852  , p_source_76 => l_array_source_76(Idx)
185853  , p_source_77 => l_array_source_77(Idx)
185854  , p_source_78 => l_array_source_78(Idx)
185855  , p_source_79 => l_array_source_79(Idx)
185856  , p_source_80 => l_array_source_80(Idx)
185857  , p_source_81 => l_array_source_81(Idx)
185858  , p_source_82 => l_array_source_82(Idx)
185859  , p_source_83 => l_array_source_83(Idx)
185860  , p_source_135 => l_array_source_135(Idx)
185861  , p_source_135_meaning => l_array_source_135_meaning(Idx)
185862  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
185863  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
185864  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
185865  );
185866 If(l_balance_type_code = 'A') THEN
185867   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185868 END IF;
185869 
185870 --
185871 
185872 
185873 --
185874 AcctLineType_244 (
185875  p_application_id  => p_application_id
185876  ,p_event_id     => l_event_id
185877  ,p_calculate_acctd_flag => l_calculate_acctd_flag
185878  ,p_calculate_g_l_flag => l_calculate_g_l_flag
185879  ,p_actual_flag => l_actual_flag
185880  ,p_balance_type_code => l_balance_type_code
185881  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
185882  
185883  , p_source_1 => l_array_source_1(Idx)
185884  , p_source_9 => l_array_source_9(Idx)
185885  , p_source_21 => l_array_source_21(Idx)
185886  , p_source_21_meaning => l_array_source_21_meaning(Idx)
185887  , p_source_39 => l_array_source_39(Idx)
185888  , p_source_41 => l_array_source_41(Idx)
185889  , p_source_43 => l_array_source_43(Idx)
185890  , p_source_45 => l_array_source_45(Idx)
185891  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
185892  , p_source_52 => l_array_source_52(Idx)
185893  , p_source_53 => l_array_source_53(Idx)
185894  , p_source_54 => l_array_source_54(Idx)
185895  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
185896  , p_source_56 => l_array_source_56(Idx)
185897  , p_source_57 => l_array_source_57(Idx)
185898  , p_source_58 => l_array_source_58(Idx)
185899  , p_source_59 => l_array_source_59(Idx)
185900  , p_source_60 => l_array_source_60(Idx)
185901  , p_source_61 => l_array_source_61(Idx)
185902  , p_source_65 => l_array_source_65(Idx)
185903  , p_source_66 => l_array_source_66(Idx)
185904  , p_source_67 => l_array_source_67(Idx)
185905  , p_source_68 => l_array_source_68(Idx)
185906  , p_source_68_meaning => l_array_source_68_meaning(Idx)
185907  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
185908  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
185909  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
185910  , p_source_72 => l_array_source_72(Idx)
185911  , p_source_73 => l_array_source_73(Idx)
185912  , p_source_74 => l_array_source_74(Idx)
185913  , p_source_75 => l_array_source_75(Idx)
185914  , p_source_76 => l_array_source_76(Idx)
185915  , p_source_77 => l_array_source_77(Idx)
185916  , p_source_78 => l_array_source_78(Idx)
185917  , p_source_79 => l_array_source_79(Idx)
185918  , p_source_80 => l_array_source_80(Idx)
185919  , p_source_81 => l_array_source_81(Idx)
185920  , p_source_82 => l_array_source_82(Idx)
185921  , p_source_83 => l_array_source_83(Idx)
185922  , p_source_135 => l_array_source_135(Idx)
185926  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
185923  , p_source_135_meaning => l_array_source_135_meaning(Idx)
185924  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
185925  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
185927  );
185928 If(l_balance_type_code = 'A') THEN
185929   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185930 END IF;
185931 
185932 --
185933 
185934 
185935 --
185936 AcctLineType_249 (
185937  p_application_id  => p_application_id
185938  ,p_event_id     => l_event_id
185939  ,p_calculate_acctd_flag => l_calculate_acctd_flag
185940  ,p_calculate_g_l_flag => l_calculate_g_l_flag
185944  
185941  ,p_actual_flag => l_actual_flag
185942  ,p_balance_type_code => l_balance_type_code
185943  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
185945  , p_source_1 => l_array_source_1(Idx)
185946  , p_source_9 => l_array_source_9(Idx)
185947  , p_source_21 => l_array_source_21(Idx)
185948  , p_source_21_meaning => l_array_source_21_meaning(Idx)
185949  , p_source_38 => l_array_source_38(Idx)
185950  , p_source_41 => l_array_source_41(Idx)
185951  , p_source_43 => l_array_source_43(Idx)
185952  , p_source_45 => l_array_source_45(Idx)
185953  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
185954  , p_source_52 => l_array_source_52(Idx)
185955  , p_source_53 => l_array_source_53(Idx)
185956  , p_source_54 => l_array_source_54(Idx)
185957  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
185958  , p_source_56 => l_array_source_56(Idx)
185959  , p_source_57 => l_array_source_57(Idx)
185960  , p_source_58 => l_array_source_58(Idx)
185961  , p_source_59 => l_array_source_59(Idx)
185962  , p_source_60 => l_array_source_60(Idx)
185963  , p_source_61 => l_array_source_61(Idx)
185964  , p_source_62 => l_array_source_62(Idx)
185965  , p_source_63 => l_array_source_63(Idx)
185966  , p_source_64 => l_array_source_64(Idx)
185967  , p_source_65 => l_array_source_65(Idx)
185968  , p_source_66 => l_array_source_66(Idx)
185969  , p_source_67 => l_array_source_67(Idx)
185970  , p_source_68 => l_array_source_68(Idx)
185971  , p_source_68_meaning => l_array_source_68_meaning(Idx)
185972  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
185973  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
185974  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
185975  , p_source_72 => l_array_source_72(Idx)
185976  , p_source_73 => l_array_source_73(Idx)
185977  , p_source_74 => l_array_source_74(Idx)
185978  , p_source_75 => l_array_source_75(Idx)
185979  , p_source_76 => l_array_source_76(Idx)
185980  , p_source_77 => l_array_source_77(Idx)
185981  , p_source_78 => l_array_source_78(Idx)
185982  , p_source_79 => l_array_source_79(Idx)
185983  , p_source_80 => l_array_source_80(Idx)
185984  , p_source_81 => l_array_source_81(Idx)
185985  , p_source_82 => l_array_source_82(Idx)
185986  , p_source_83 => l_array_source_83(Idx)
185987  , p_source_84 => l_array_source_84(Idx)
185988  , p_source_84_meaning => l_array_source_84_meaning(Idx)
185989  , p_source_135 => l_array_source_135(Idx)
185990  , p_source_135_meaning => l_array_source_135_meaning(Idx)
185991  );
185992 If(l_balance_type_code = 'A') THEN
185993   l_actual_gain_loss_ref := l_gain_or_loss_ref;
185994 END IF;
185995 
185996 --
185997 
185998 
185999 --
186000 AcctLineType_252 (
186001  p_application_id  => p_application_id
186002  ,p_event_id     => l_event_id
186003  ,p_calculate_acctd_flag => l_calculate_acctd_flag
186004  ,p_calculate_g_l_flag => l_calculate_g_l_flag
186005  ,p_actual_flag => l_actual_flag
186006  ,p_balance_type_code => l_balance_type_code
186007  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
186008  
186009  , p_source_21 => l_array_source_21(Idx)
186010  , p_source_21_meaning => l_array_source_21_meaning(Idx)
186011  , p_source_41 => l_array_source_41(Idx)
186012  , p_source_43 => l_array_source_43(Idx)
186013  , p_source_45 => l_array_source_45(Idx)
186014  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
186015  , p_source_52 => l_array_source_52(Idx)
186016  , p_source_53 => l_array_source_53(Idx)
186017  , p_source_54 => l_array_source_54(Idx)
186018  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
186019  , p_source_56 => l_array_source_56(Idx)
186020  , p_source_57 => l_array_source_57(Idx)
186021  , p_source_58 => l_array_source_58(Idx)
186022  , p_source_59 => l_array_source_59(Idx)
186023  , p_source_60 => l_array_source_60(Idx)
186024  , p_source_65 => l_array_source_65(Idx)
186025  , p_source_66 => l_array_source_66(Idx)
186026  , p_source_67 => l_array_source_67(Idx)
186027  , p_source_68 => l_array_source_68(Idx)
186028  , p_source_68_meaning => l_array_source_68_meaning(Idx)
186029  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
186030  , p_source_72 => l_array_source_72(Idx)
186031  , p_source_73 => l_array_source_73(Idx)
186032  , p_source_74 => l_array_source_74(Idx)
186033  , p_source_75 => l_array_source_75(Idx)
186034  , p_source_76 => l_array_source_76(Idx)
186035  , p_source_77 => l_array_source_77(Idx)
186036  , p_source_78 => l_array_source_78(Idx)
186037  , p_source_79 => l_array_source_79(Idx)
186038  , p_source_80 => l_array_source_80(Idx)
186039  , p_source_81 => l_array_source_81(Idx)
186040  , p_source_82 => l_array_source_82(Idx)
186041  , p_source_83 => l_array_source_83(Idx)
186042  , p_source_84 => l_array_source_84(Idx)
186043  , p_source_84_meaning => l_array_source_84_meaning(Idx)
186044  , p_source_85 => l_array_source_85(Idx)
186045  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
186046  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
186047  , p_source_87 => l_array_source_87(Idx)
186048  , p_source_87_meaning => l_array_source_87_meaning(Idx)
186049  , p_source_88 => l_array_source_88(Idx)
186050  );
186051 If(l_balance_type_code = 'A') THEN
186052   l_actual_gain_loss_ref := l_gain_or_loss_ref;
186053 END IF;
186054 
186055 --
186056 
186057 
186058 --
186059 AcctLineType_257 (
186060  p_application_id  => p_application_id
186061  ,p_event_id     => l_event_id
186062  ,p_calculate_acctd_flag => l_calculate_acctd_flag
186063  ,p_calculate_g_l_flag => l_calculate_g_l_flag
186064  ,p_actual_flag => l_actual_flag
186065  ,p_balance_type_code => l_balance_type_code
186066  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
186067  
186068  , p_source_21 => l_array_source_21(Idx)
186069  , p_source_21_meaning => l_array_source_21_meaning(Idx)
186070  , p_source_41 => l_array_source_41(Idx)
186071  , p_source_43 => l_array_source_43(Idx)
186072  , p_source_45 => l_array_source_45(Idx)
186073  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
186074  , p_source_52 => l_array_source_52(Idx)
186075  , p_source_53 => l_array_source_53(Idx)
186076  , p_source_54 => l_array_source_54(Idx)
186077  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
186078  , p_source_56 => l_array_source_56(Idx)
186079  , p_source_57 => l_array_source_57(Idx)
186080  , p_source_58 => l_array_source_58(Idx)
186081  , p_source_59 => l_array_source_59(Idx)
186082  , p_source_60 => l_array_source_60(Idx)
186083  , p_source_65 => l_array_source_65(Idx)
186084  , p_source_66 => l_array_source_66(Idx)
186085  , p_source_67 => l_array_source_67(Idx)
186086  , p_source_68 => l_array_source_68(Idx)
186087  , p_source_68_meaning => l_array_source_68_meaning(Idx)
186091  , p_source_74 => l_array_source_74(Idx)
186088  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
186089  , p_source_72 => l_array_source_72(Idx)
186090  , p_source_73 => l_array_source_73(Idx)
186092  , p_source_75 => l_array_source_75(Idx)
186093  , p_source_76 => l_array_source_76(Idx)
186094  , p_source_77 => l_array_source_77(Idx)
186095  , p_source_78 => l_array_source_78(Idx)
186096  , p_source_79 => l_array_source_79(Idx)
186097  , p_source_80 => l_array_source_80(Idx)
186098  , p_source_81 => l_array_source_81(Idx)
186099  , p_source_82 => l_array_source_82(Idx)
186100  , p_source_83 => l_array_source_83(Idx)
186101  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
186102  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
186103  , p_source_87 => l_array_source_87(Idx)
186104  , p_source_87_meaning => l_array_source_87_meaning(Idx)
186105  , p_source_143 => l_array_source_143(Idx)
186106  , p_source_144 => l_array_source_144(Idx)
186107  );
186108 If(l_balance_type_code = 'A') THEN
186109   l_actual_gain_loss_ref := l_gain_or_loss_ref;
186110 END IF;
186111 
186112 --
186113 
186114 
186115 --
186116 AcctLineType_261 (
186117  p_application_id  => p_application_id
186118  ,p_event_id     => l_event_id
186119  ,p_calculate_acctd_flag => l_calculate_acctd_flag
186120  ,p_calculate_g_l_flag => l_calculate_g_l_flag
186121  ,p_actual_flag => l_actual_flag
186122  ,p_balance_type_code => l_balance_type_code
186123  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
186124  
186125  , p_source_1 => l_array_source_1(Idx)
186126  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
186127  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
186128  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
186129  , p_source_9 => l_array_source_9(Idx)
186130  , p_source_10 => l_array_source_10(Idx)
186131  , p_source_10_meaning => l_array_source_10_meaning(Idx)
186132  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
186133  , p_source_18 => l_array_source_18(Idx)
186134  , p_source_21 => l_array_source_21(Idx)
186135  , p_source_21_meaning => l_array_source_21_meaning(Idx)
186136  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
186137  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
186138  , p_source_41 => l_array_source_41(Idx)
186139  , p_source_43 => l_array_source_43(Idx)
186140  , p_source_45 => l_array_source_45(Idx)
186141  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
186142  , p_source_52 => l_array_source_52(Idx)
186143  , p_source_53 => l_array_source_53(Idx)
186144  , p_source_54 => l_array_source_54(Idx)
186145  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
186146  , p_source_56 => l_array_source_56(Idx)
186147  , p_source_57 => l_array_source_57(Idx)
186148  , p_source_58 => l_array_source_58(Idx)
186149  , p_source_59 => l_array_source_59(Idx)
186150  , p_source_60 => l_array_source_60(Idx)
186151  , p_source_61 => l_array_source_61(Idx)
186152  , p_source_65 => l_array_source_65(Idx)
186153  , p_source_66 => l_array_source_66(Idx)
186154  , p_source_67 => l_array_source_67(Idx)
186155  , p_source_68 => l_array_source_68(Idx)
186156  , p_source_68_meaning => l_array_source_68_meaning(Idx)
186157  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
186158  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
186159  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
186160  , p_source_72 => l_array_source_72(Idx)
186161  , p_source_73 => l_array_source_73(Idx)
186162  , p_source_74 => l_array_source_74(Idx)
186163  , p_source_75 => l_array_source_75(Idx)
186164  , p_source_76 => l_array_source_76(Idx)
186165  , p_source_77 => l_array_source_77(Idx)
186166  , p_source_78 => l_array_source_78(Idx)
186167  , p_source_79 => l_array_source_79(Idx)
186168  , p_source_80 => l_array_source_80(Idx)
186169  , p_source_81 => l_array_source_81(Idx)
186170  , p_source_82 => l_array_source_82(Idx)
186171  , p_source_83 => l_array_source_83(Idx)
186172  , p_source_84 => l_array_source_84(Idx)
186173  , p_source_84_meaning => l_array_source_84_meaning(Idx)
186174  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
186175  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
186176  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
186177  );
186178 If(l_balance_type_code = 'A') THEN
186179   l_actual_gain_loss_ref := l_gain_or_loss_ref;
186180 END IF;
186181 
186182 --
186183 
186184 
186185 --
186186 AcctLineType_265 (
186187  p_application_id  => p_application_id
186188  ,p_event_id     => l_event_id
186189  ,p_calculate_acctd_flag => l_calculate_acctd_flag
186190  ,p_calculate_g_l_flag => l_calculate_g_l_flag
186191  ,p_actual_flag => l_actual_flag
186192  ,p_balance_type_code => l_balance_type_code
186193  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
186194  
186195  , p_source_1 => l_array_source_1(Idx)
186196  , p_source_9 => l_array_source_9(Idx)
186197  , p_source_18 => l_array_source_18(Idx)
186198  , p_source_21 => l_array_source_21(Idx)
186199  , p_source_21_meaning => l_array_source_21_meaning(Idx)
186200  , p_source_41 => l_array_source_41(Idx)
186201  , p_source_43 => l_array_source_43(Idx)
186202  , p_source_45 => l_array_source_45(Idx)
186203  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
186204  , p_source_52 => l_array_source_52(Idx)
186205  , p_source_53 => l_array_source_53(Idx)
186206  , p_source_54 => l_array_source_54(Idx)
186207  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
186208  , p_source_56 => l_array_source_56(Idx)
186209  , p_source_57 => l_array_source_57(Idx)
186210  , p_source_58 => l_array_source_58(Idx)
186211  , p_source_59 => l_array_source_59(Idx)
186212  , p_source_60 => l_array_source_60(Idx)
186213  , p_source_61 => l_array_source_61(Idx)
186214  , p_source_65 => l_array_source_65(Idx)
186215  , p_source_66 => l_array_source_66(Idx)
186216  , p_source_67 => l_array_source_67(Idx)
186217  , p_source_68 => l_array_source_68(Idx)
186218  , p_source_68_meaning => l_array_source_68_meaning(Idx)
186219  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
186220  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
186221  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
186222  , p_source_72 => l_array_source_72(Idx)
186223  , p_source_73 => l_array_source_73(Idx)
186224  , p_source_74 => l_array_source_74(Idx)
186225  , p_source_75 => l_array_source_75(Idx)
186226  , p_source_76 => l_array_source_76(Idx)
186227  , p_source_77 => l_array_source_77(Idx)
186228  , p_source_78 => l_array_source_78(Idx)
186229  , p_source_79 => l_array_source_79(Idx)
186230  , p_source_80 => l_array_source_80(Idx)
186231  , p_source_81 => l_array_source_81(Idx)
186232  , p_source_82 => l_array_source_82(Idx)
186233  , p_source_83 => l_array_source_83(Idx)
186234  , p_source_84 => l_array_source_84(Idx)
186235  , p_source_84_meaning => l_array_source_84_meaning(Idx)
186236  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
186237  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
186238  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
186239  );
186240 If(l_balance_type_code = 'A') THEN
186241   l_actual_gain_loss_ref := l_gain_or_loss_ref;
186242 END IF;
186243 
186244 --
186245 
186246 
186247 --
186248 AcctLineType_266 (
186249  p_application_id  => p_application_id
186250  ,p_event_id     => l_event_id
186251  ,p_calculate_acctd_flag => l_calculate_acctd_flag
186252  ,p_calculate_g_l_flag => l_calculate_g_l_flag
186253  ,p_actual_flag => l_actual_flag
186254  ,p_balance_type_code => l_balance_type_code
186255  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
186256  
186257  , p_source_21 => l_array_source_21(Idx)
186258  , p_source_21_meaning => l_array_source_21_meaning(Idx)
186259  , p_source_41 => l_array_source_41(Idx)
186260  , p_source_43 => l_array_source_43(Idx)
186261  , p_source_45 => l_array_source_45(Idx)
186262  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
186263  , p_source_52 => l_array_source_52(Idx)
186264  , p_source_53 => l_array_source_53(Idx)
186265  , p_source_54 => l_array_source_54(Idx)
186266  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
186267  , p_source_56 => l_array_source_56(Idx)
186268  , p_source_57 => l_array_source_57(Idx)
186269  , p_source_58 => l_array_source_58(Idx)
186270  , p_source_59 => l_array_source_59(Idx)
186271  , p_source_60 => l_array_source_60(Idx)
186272  , p_source_65 => l_array_source_65(Idx)
186273  , p_source_66 => l_array_source_66(Idx)
186274  , p_source_67 => l_array_source_67(Idx)
186275  , p_source_68 => l_array_source_68(Idx)
186276  , p_source_68_meaning => l_array_source_68_meaning(Idx)
186277  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
186278  , p_source_72 => l_array_source_72(Idx)
186279  , p_source_73 => l_array_source_73(Idx)
186280  , p_source_74 => l_array_source_74(Idx)
186281  , p_source_75 => l_array_source_75(Idx)
186282  , p_source_76 => l_array_source_76(Idx)
186283  , p_source_77 => l_array_source_77(Idx)
186284  , p_source_78 => l_array_source_78(Idx)
186285  , p_source_79 => l_array_source_79(Idx)
186286  , p_source_80 => l_array_source_80(Idx)
186287  , p_source_81 => l_array_source_81(Idx)
186288  , p_source_82 => l_array_source_82(Idx)
186289  , p_source_83 => l_array_source_83(Idx)
186290  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
186291  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
186292  , p_source_87 => l_array_source_87(Idx)
186293  , p_source_87_meaning => l_array_source_87_meaning(Idx)
186294  , p_source_143 => l_array_source_143(Idx)
186295  , p_source_144 => l_array_source_144(Idx)
186296  );
186297 If(l_balance_type_code = 'A') THEN
186298   l_actual_gain_loss_ref := l_gain_or_loss_ref;
186299 END IF;
186300 
186301 --
186302 
186303 
186304 --
186305 AcctLineType_273 (
186306  p_application_id  => p_application_id
186307  ,p_event_id     => l_event_id
186308  ,p_calculate_acctd_flag => l_calculate_acctd_flag
186309  ,p_calculate_g_l_flag => l_calculate_g_l_flag
186310  ,p_actual_flag => l_actual_flag
186311  ,p_balance_type_code => l_balance_type_code
186312  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
186313  
186314  , p_source_21 => l_array_source_21(Idx)
186315  , p_source_21_meaning => l_array_source_21_meaning(Idx)
186316  , p_source_41 => l_array_source_41(Idx)
186317  , p_source_43 => l_array_source_43(Idx)
186318  , p_source_45 => l_array_source_45(Idx)
186319  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
186320  , p_source_52 => l_array_source_52(Idx)
186321  , p_source_53 => l_array_source_53(Idx)
186322  , p_source_54 => l_array_source_54(Idx)
186323  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
186324  , p_source_56 => l_array_source_56(Idx)
186325  , p_source_57 => l_array_source_57(Idx)
186326  , p_source_58 => l_array_source_58(Idx)
186327  , p_source_59 => l_array_source_59(Idx)
186328  , p_source_60 => l_array_source_60(Idx)
186329  , p_source_65 => l_array_source_65(Idx)
186330  , p_source_66 => l_array_source_66(Idx)
186331  , p_source_67 => l_array_source_67(Idx)
186332  , p_source_68 => l_array_source_68(Idx)
186333  , p_source_68_meaning => l_array_source_68_meaning(Idx)
186334  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
186335  , p_source_72 => l_array_source_72(Idx)
186336  , p_source_73 => l_array_source_73(Idx)
186337  , p_source_74 => l_array_source_74(Idx)
186338  , p_source_75 => l_array_source_75(Idx)
186339  , p_source_76 => l_array_source_76(Idx)
186340  , p_source_77 => l_array_source_77(Idx)
186341  , p_source_78 => l_array_source_78(Idx)
186342  , p_source_79 => l_array_source_79(Idx)
186343  , p_source_80 => l_array_source_80(Idx)
186344  , p_source_81 => l_array_source_81(Idx)
186345  , p_source_82 => l_array_source_82(Idx)
186346  , p_source_83 => l_array_source_83(Idx)
186347  , p_source_84 => l_array_source_84(Idx)
186348  , p_source_84_meaning => l_array_source_84_meaning(Idx)
186349  , p_source_85 => l_array_source_85(Idx)
186350  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
186351  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
186352  , p_source_87 => l_array_source_87(Idx)
186353  , p_source_87_meaning => l_array_source_87_meaning(Idx)
186354  , p_source_161 => l_array_source_161(Idx)
186355  , p_source_162 => l_array_source_162(Idx)
186356  );
186357 If(l_balance_type_code = 'A') THEN
186358   l_actual_gain_loss_ref := l_gain_or_loss_ref;
186359 END IF;
186360 
186361 --
186362 
186363 
186364 --
186365 AcctLineType_277 (
186366  p_application_id  => p_application_id
186367  ,p_event_id     => l_event_id
186368  ,p_calculate_acctd_flag => l_calculate_acctd_flag
186369  ,p_calculate_g_l_flag => l_calculate_g_l_flag
186370  ,p_actual_flag => l_actual_flag
186371  ,p_balance_type_code => l_balance_type_code
186372  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
186373  
186374  , p_source_1 => l_array_source_1(Idx)
186375  , p_source_9 => l_array_source_9(Idx)
186376  , p_source_18 => l_array_source_18(Idx)
186377  , p_source_21 => l_array_source_21(Idx)
186378  , p_source_21_meaning => l_array_source_21_meaning(Idx)
186379  , p_source_41 => l_array_source_41(Idx)
186380  , p_source_43 => l_array_source_43(Idx)
186384  , p_source_53 => l_array_source_53(Idx)
186381  , p_source_45 => l_array_source_45(Idx)
186382  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
186383  , p_source_52 => l_array_source_52(Idx)
186385  , p_source_54 => l_array_source_54(Idx)
186386  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
186387  , p_source_56 => l_array_source_56(Idx)
186388  , p_source_57 => l_array_source_57(Idx)
186389  , p_source_58 => l_array_source_58(Idx)
186390  , p_source_59 => l_array_source_59(Idx)
186391  , p_source_60 => l_array_source_60(Idx)
186392  , p_source_61 => l_array_source_61(Idx)
186393  , p_source_65 => l_array_source_65(Idx)
186394  , p_source_66 => l_array_source_66(Idx)
186395  , p_source_67 => l_array_source_67(Idx)
186396  , p_source_68 => l_array_source_68(Idx)
186397  , p_source_68_meaning => l_array_source_68_meaning(Idx)
186398  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
186399  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
186400  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
186401  , p_source_72 => l_array_source_72(Idx)
186402  , p_source_73 => l_array_source_73(Idx)
186403  , p_source_74 => l_array_source_74(Idx)
186404  , p_source_75 => l_array_source_75(Idx)
186405  , p_source_76 => l_array_source_76(Idx)
186406  , p_source_77 => l_array_source_77(Idx)
186407  , p_source_78 => l_array_source_78(Idx)
186408  , p_source_79 => l_array_source_79(Idx)
186409  , p_source_80 => l_array_source_80(Idx)
186410  , p_source_81 => l_array_source_81(Idx)
186411  , p_source_82 => l_array_source_82(Idx)
186412  , p_source_83 => l_array_source_83(Idx)
186413  , p_source_84 => l_array_source_84(Idx)
186414  , p_source_84_meaning => l_array_source_84_meaning(Idx)
186415  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
186416  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
186417  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
186418  );
186419 If(l_balance_type_code = 'A') THEN
186420   l_actual_gain_loss_ref := l_gain_or_loss_ref;
186421 END IF;
186422 
186423 --
186424 
186425 
186426 --
186427 AcctLineType_278 (
186428  p_application_id  => p_application_id
186429  ,p_event_id     => l_event_id
186430  ,p_calculate_acctd_flag => l_calculate_acctd_flag
186431  ,p_calculate_g_l_flag => l_calculate_g_l_flag
186432  ,p_actual_flag => l_actual_flag
186433  ,p_balance_type_code => l_balance_type_code
186434  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
186435  
186436  , p_source_21 => l_array_source_21(Idx)
186437  , p_source_21_meaning => l_array_source_21_meaning(Idx)
186438  , p_source_41 => l_array_source_41(Idx)
186439  , p_source_43 => l_array_source_43(Idx)
186440  , p_source_45 => l_array_source_45(Idx)
186441  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
186442  , p_source_52 => l_array_source_52(Idx)
186443  , p_source_53 => l_array_source_53(Idx)
186444  , p_source_54 => l_array_source_54(Idx)
186445  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
186446  , p_source_56 => l_array_source_56(Idx)
186447  , p_source_57 => l_array_source_57(Idx)
186448  , p_source_58 => l_array_source_58(Idx)
186449  , p_source_59 => l_array_source_59(Idx)
186450  , p_source_60 => l_array_source_60(Idx)
186451  , p_source_65 => l_array_source_65(Idx)
186452  , p_source_66 => l_array_source_66(Idx)
186453  , p_source_67 => l_array_source_67(Idx)
186454  , p_source_68 => l_array_source_68(Idx)
186455  , p_source_68_meaning => l_array_source_68_meaning(Idx)
186456  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
186457  , p_source_72 => l_array_source_72(Idx)
186458  , p_source_73 => l_array_source_73(Idx)
186459  , p_source_74 => l_array_source_74(Idx)
186460  , p_source_75 => l_array_source_75(Idx)
186461  , p_source_76 => l_array_source_76(Idx)
186462  , p_source_77 => l_array_source_77(Idx)
186463  , p_source_78 => l_array_source_78(Idx)
186464  , p_source_79 => l_array_source_79(Idx)
186465  , p_source_80 => l_array_source_80(Idx)
186466  , p_source_81 => l_array_source_81(Idx)
186467  , p_source_82 => l_array_source_82(Idx)
186468  , p_source_83 => l_array_source_83(Idx)
186469  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
186470  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
186471  , p_source_87 => l_array_source_87(Idx)
186472  , p_source_87_meaning => l_array_source_87_meaning(Idx)
186473  , p_source_143 => l_array_source_143(Idx)
186474  , p_source_144 => l_array_source_144(Idx)
186475  );
186476 If(l_balance_type_code = 'A') THEN
186477   l_actual_gain_loss_ref := l_gain_or_loss_ref;
186478 END IF;
186479 
186480 --
186481 
186482 
186483 --
186484 AcctLineType_287 (
186485  p_application_id  => p_application_id
186486  ,p_event_id     => l_event_id
186487  ,p_calculate_acctd_flag => l_calculate_acctd_flag
186488  ,p_calculate_g_l_flag => l_calculate_g_l_flag
186489  ,p_actual_flag => l_actual_flag
186490  ,p_balance_type_code => l_balance_type_code
186491  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
186492  
186493  , p_source_1 => l_array_source_1(Idx)
186494  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
186495  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
186496  , p_source_9 => l_array_source_9(Idx)
186497  , p_source_18 => l_array_source_18(Idx)
186498  , p_source_21 => l_array_source_21(Idx)
186499  , p_source_21_meaning => l_array_source_21_meaning(Idx)
186500  , p_source_31 => l_array_source_31(Idx)
186501  , p_source_41 => l_array_source_41(Idx)
186502  , p_source_43 => l_array_source_43(Idx)
186503  , p_source_45 => l_array_source_45(Idx)
186504  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
186505  , p_source_52 => l_array_source_52(Idx)
186506  , p_source_53 => l_array_source_53(Idx)
186507  , p_source_54 => l_array_source_54(Idx)
186508  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
186509  , p_source_56 => l_array_source_56(Idx)
186510  , p_source_57 => l_array_source_57(Idx)
186511  , p_source_58 => l_array_source_58(Idx)
186512  , p_source_59 => l_array_source_59(Idx)
186513  , p_source_60 => l_array_source_60(Idx)
186514  , p_source_61 => l_array_source_61(Idx)
186515  , p_source_65 => l_array_source_65(Idx)
186516  , p_source_66 => l_array_source_66(Idx)
186517  , p_source_67 => l_array_source_67(Idx)
186518  , p_source_68 => l_array_source_68(Idx)
186519  , p_source_68_meaning => l_array_source_68_meaning(Idx)
186520  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
186521  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
186522  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
186523  , p_source_72 => l_array_source_72(Idx)
186527  , p_source_76 => l_array_source_76(Idx)
186524  , p_source_73 => l_array_source_73(Idx)
186525  , p_source_74 => l_array_source_74(Idx)
186526  , p_source_75 => l_array_source_75(Idx)
186528  , p_source_77 => l_array_source_77(Idx)
186529  , p_source_78 => l_array_source_78(Idx)
186530  , p_source_79 => l_array_source_79(Idx)
186531  , p_source_80 => l_array_source_80(Idx)
186532  , p_source_81 => l_array_source_81(Idx)
186533  , p_source_82 => l_array_source_82(Idx)
186534  , p_source_83 => l_array_source_83(Idx)
186535  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
186536  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
186537  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
186538  );
186539 If(l_balance_type_code = 'A') THEN
186540   l_actual_gain_loss_ref := l_gain_or_loss_ref;
186541 END IF;
186542 
186543 --
186544 
186545       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
186546       -- or secondary ledger that has different currency with primary
186547       -- or alc that is calculated by sla
186548       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
186549             (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'))
186550 
186551 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
186552 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
186553           AND (l_actual_flag = 'A')) THEN
186554         XLA_AE_LINES_PKG.CreateGainOrLossLines(
186555           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
186556          ,p_application_id   => p_application_id
186557          ,p_amb_context_code => 'DEFAULT'
186558          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
186559          ,p_event_class_code => C_EVENT_CLASS_CODE
186560          ,p_event_type_code  => C_EVENT_TYPE_CODE
186561          
186562          ,p_gain_ccid        => -1
186563          ,p_loss_ccid        => -1
186564 
186565          ,p_actual_flag      => l_actual_flag
186566          ,p_enc_flag         => null
186567          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
186568          ,p_enc_g_l_ref      => null
186569          );
186570       END IF;
186571    END IF;
186572 END IF;
186573 
186574    ELSE
186575       --
186576       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
186577       --
186578       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
186579          trace
186580             (p_msg      => 'Trancaction revesal option is Y'
186581             ,p_level    => C_LEVEL_STATEMENT
186582             ,p_module   => l_log_module);
186583       END IF;
186584    END IF;
186585 
186586 END LOOP;
186587 l_result := XLA_AE_LINES_PKG.InsertLines ;
186588 end loop;
186589 close line_cur;
186590 
186591 
186592 --
186593 -- insert headers into xla_ae_headers_gt table
186594 --
186595 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
186596 
186597 -- insert into errors table here.
186598 
186599 END LOOP;
186600 
186601 --
186602 -- 4865292
186603 --
186604 -- Compare g_hdr_extract_count with event count in
186605 -- CreateHeadersAndLines.
186606 --
186607 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
186608 
186609 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
186613          ,p_level   => C_LEVEL_STATEMENT
186610    trace (p_msg     => '# rows extracted from header extract objects '
186611                     || ' (running total): '
186612                     || g_hdr_extract_count
186614          ,p_module  => l_log_module);
186615 END IF;
186616 
186617 CLOSE header_cur;
186618 --
186619 
186620 --
186621 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
186622    trace
186623       (p_msg      => 'END of EventClass_291'
186624       ,p_level    => C_LEVEL_PROCEDURE
186625       ,p_module   => l_log_module);
186626 END IF;
186627 --
186628 RETURN l_result;
186629 EXCEPTION
186630 WHEN xla_exceptions_pkg.application_exception THEN
186631    
186632 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
186633 
186634    
186635 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
186636 
186637    RAISE;
186638 
186639 WHEN NO_DATA_FOUND THEN
186640 
186641 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
186642 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
186643 
186644 FOR header_record IN header_cur
186645 LOOP
186646     l_array_header_events(header_record.event_id) := header_record.event_id;
186647 END LOOP;
186648 
186649 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
186650 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
186651 
186652 fnd_file.put_line(fnd_file.LOG, '                    ');
186653 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
186654 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
186655 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
186656 
186657 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
186658 LOOP
186659 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
186660 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
186661         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
186662 	END IF;
186663 END LOOP;
186664 
186665 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
186666 fnd_file.put_line(fnd_file.LOG, '                    ');
186667 
186668 
186669 xla_exceptions_pkg.raise_message
186670       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_291');
186671 
186672 
186673 WHEN OTHERS THEN
186674    xla_exceptions_pkg.raise_message
186675       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_291');
186676 END EventClass_291;
186677 --
186678 
186679 ---------------------------------------
186680 --
186681 -- PRIVATE PROCEDURE
186682 --         insert_sources_292
186683 --
186684 ----------------------------------------
186685 --
186686 PROCEDURE insert_sources_292(
186687                                 p_target_ledger_id       IN NUMBER
186688                               , p_language               IN VARCHAR2
186689                               , p_sla_ledger_id          IN NUMBER
186690                               , p_pad_start_date         IN DATE
186694 
186691                               , p_pad_end_date           IN DATE
186692                          )
186693 IS
186695 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'DEBIT MEMOS_ALL';
186696 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'DEBIT MEMOS';
186697 p_apps_owner                   VARCHAR2(30);
186698 l_log_module                   VARCHAR2(240);
186699 BEGIN
186700 IF g_log_enabled THEN
186701       l_log_module := C_DEFAULT_MODULE||'.insert_sources_292';
186702 END IF;
186703 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
186704 
186705       trace
186706          (p_msg      => 'BEGIN of insert_sources_292'
186707          ,p_level    => C_LEVEL_PROCEDURE
186708          ,p_module   => l_log_module);
186709 
186710 END IF;
186711 
186712 -- select APPS owner
186713 SELECT oracle_username
186714   INTO p_apps_owner
186715   FROM fnd_oracle_userid
186716  WHERE read_only_flag = 'U'
186717 ;
186718 
186719 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
186720       trace
186721          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
186722                         ' - p_language = '||p_language||
186723                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
186724                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
186725                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
186729 END IF;
186726                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
186727          ,p_level    => C_LEVEL_STATEMENT
186728          ,p_module   => l_log_module);
186730 
186731 
186732 --
186733 INSERT INTO xla_diag_sources --hdr2
186734 (
186735         event_id
186736       , ledger_id
186737       , sla_ledger_id
186738       , description_language
186739       , object_name
186740       , object_type_code
186741       , line_number
186742       , source_application_id
186743       , source_type_code
186744       , source_code
186745       , source_value
186746       , source_meaning
186747       , created_by
186748       , creation_date
186749       , last_update_date
186750       , last_updated_by
186751       , last_update_login
186752       , program_update_date
186753       , program_application_id
186754       , program_id
186755       , request_id
186756 )
186757 SELECT
186758         event_id
186759       , p_target_ledger_id
186760       , p_sla_ledger_id
186761       , p_language
186762       , object_name
186763       , object_type_code
186764       , line_number
186765       , source_application_id
186766       , source_type_code
186767       , source_code
186768       , SUBSTR(source_value ,1,1996)
186769       , SUBSTR(source_meaning ,1,200)
186770       , xla_environment_pkg.g_Usr_Id
186771       , TRUNC(SYSDATE)
186772       , TRUNC(SYSDATE)
186773       , xla_environment_pkg.g_Usr_Id
186774       , xla_environment_pkg.g_Login_Id
186775       , TRUNC(SYSDATE)
186776       , xla_environment_pkg.g_Prog_Appl_Id
186777       , xla_environment_pkg.g_Prog_Id
186778       , xla_environment_pkg.g_Req_Id
186779   FROM (
186780        SELECT xet.event_id                  event_id
186781             , 0                          line_number
186782             , CASE r
186783                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
186784                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
186785                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
186786                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
186787                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
186788                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
186789                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
186790                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
186791                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
186792                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
186793                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
186794                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
186795                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
186796                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
186797                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
186798                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
186799                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
186800                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
186801                 
186802                ELSE null
186803               END                           object_name
186804             , CASE r
186805                 WHEN 1 THEN 'HEADER' 
186806                 WHEN 2 THEN 'HEADER' 
186807                 WHEN 3 THEN 'HEADER' 
186808                 WHEN 4 THEN 'HEADER' 
186809                 WHEN 5 THEN 'HEADER' 
186810                 WHEN 6 THEN 'HEADER' 
186811                 WHEN 7 THEN 'HEADER' 
186812                 WHEN 8 THEN 'HEADER' 
186813                 WHEN 9 THEN 'HEADER' 
186814                 WHEN 10 THEN 'HEADER' 
186815                 WHEN 11 THEN 'HEADER' 
186816                 WHEN 12 THEN 'HEADER' 
186817                 WHEN 13 THEN 'HEADER' 
186818                 WHEN 14 THEN 'HEADER' 
186819                 WHEN 15 THEN 'HEADER' 
186820                 WHEN 16 THEN 'HEADER' 
186821                 WHEN 17 THEN 'HEADER' 
186822                 WHEN 18 THEN 'HEADER' 
186823                 
186824                 ELSE null
186825               END                           object_type_code
186826             , CASE r
186827                 WHEN 1 THEN '200' 
186828                 WHEN 2 THEN '200' 
186829                 WHEN 3 THEN '200' 
186830                 WHEN 4 THEN '200' 
186831                 WHEN 5 THEN '200' 
186832                 WHEN 6 THEN '200' 
186833                 WHEN 7 THEN '200' 
186834                 WHEN 8 THEN '200' 
186835                 WHEN 9 THEN '200' 
186836                 WHEN 10 THEN '200' 
186837                 WHEN 11 THEN '200' 
186838                 WHEN 12 THEN '200' 
186839                 WHEN 13 THEN '200' 
186840                 WHEN 14 THEN '200' 
186841                 WHEN 15 THEN '200' 
186842                 WHEN 16 THEN '200' 
186843                 WHEN 17 THEN '200' 
186844                 WHEN 18 THEN '200' 
186845                 
186846                 ELSE null
186847               END                           source_application_id
186848             , 'S'             source_type_code
186849             , CASE r
186850                 WHEN 1 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
186851                 WHEN 2 THEN 'ASP_RATE_VAR_GAIN_CCID' 
186852                 WHEN 3 THEN 'ASP_RATE_VAR_LOSS_CCID' 
186853                 WHEN 4 THEN 'AI_ACCTS_PAY_CCID' 
186854                 WHEN 5 THEN 'FSP_RETAINAGE_ACCOUNT' 
186855                 WHEN 6 THEN 'ASP_AUTO_OFFSET_FLAG' 
186859                 WHEN 10 THEN 'AI_VENDOR_SITE_ID' 
186856                 WHEN 7 THEN 'AI_INVOICE_ID' 
186857                 WHEN 8 THEN 'AI_INVOICE_CURRENCY_CODE' 
186858                 WHEN 9 THEN 'AI_VENDOR_ID' 
186860                 WHEN 11 THEN 'THIRD_PARTY_TYPE' 
186861                 WHEN 12 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG' 
186862                 WHEN 13 THEN 'INV_EXCHANGE_DATE' 
186863                 WHEN 14 THEN 'INV_EXCHANGE_RATE' 
186864                 WHEN 15 THEN 'INV_EXCHANGE_RATE_TYPE' 
186865                 WHEN 16 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
186866                 WHEN 17 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
186867                 WHEN 18 THEN 'INV_DOC_SEQUENCE_VALUE' 
186868                 
186869                 ELSE null
186870               END                           source_code
186871             , CASE r
186872                 WHEN 1 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
186873                 WHEN 2 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
186874                 WHEN 3 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
186875                 WHEN 4 THEN TO_CHAR(h2.AI_ACCTS_PAY_CCID)
186876                 WHEN 5 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
186877                 WHEN 6 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
186878                 WHEN 7 THEN TO_CHAR(h2.AI_INVOICE_ID)
186879                 WHEN 8 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
186880                 WHEN 9 THEN TO_CHAR(h2.AI_VENDOR_ID)
186881                 WHEN 10 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
186882                 WHEN 11 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
186883                 WHEN 12 THEN TO_CHAR(h4.FSP_PURCH_ENCUMBRANCE_FLAG)
186884                 WHEN 13 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
186885                 WHEN 14 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
186886                 WHEN 15 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
186887                 WHEN 16 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
186888                 WHEN 17 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
186889                 WHEN 18 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
186890                 
186891                 ELSE null
186892               END                           source_value
186893             , CASE r
186894                 WHEN 1 THEN fvl3.meaning
186895                 WHEN 6 THEN fvl35.meaning
186896                 WHEN 12 THEN fvl86.meaning
186897                 
186898                 ELSE null
186899               END               source_meaning
186900          FROM xla_events_gt     xet  
186901       , AP_INVOICE_EXTRACT_HEADER_V  h2
186902       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
186903   , fnd_lookup_values    fvl3
186904   , fnd_lookup_values    fvl35
186905   , fnd_lookup_values    fvl86
186906              ,(select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
186907          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
186908            AND xet.event_class_code = C_EVENT_CLASS_CODE
186909               AND h2.event_id = xet.event_id
186910  AND h4.asp_org_id= h2.ai_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
186911   AND fvl3.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
186912   AND fvl3.view_application_id(+) = 200
186913   AND fvl3.language(+)            = USERENV('LANG')
186914      AND fvl35.lookup_type(+)         = 'YES_NO'
186915   AND fvl35.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
186916   AND fvl35.view_application_id(+) = 0
186917   AND fvl35.language(+)            = USERENV('LANG')
186918      AND fvl86.lookup_type(+)         = 'YES_NO'
186919   AND fvl86.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
186920   AND fvl86.view_application_id(+) = 0
186921   AND fvl86.language(+)            = USERENV('LANG')
186922   
186923 )
186924 ;
186925 --
186926 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
186927 
186928       trace
186929          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
186930          ,p_level    => C_LEVEL_STATEMENT
186931          ,p_module   => l_log_module);
186932 
186933 END IF;
186934 --
186935 
186936 
186937 
186938 --
186939 INSERT INTO xla_diag_sources  --line2
186940 (
186941         event_id
186942       , ledger_id
186943       , sla_ledger_id
186944       , description_language
186945       , object_name
186946       , object_type_code
186947       , line_number
186948       , source_application_id
186949       , source_type_code
186950       , source_code
186951       , source_value
186952       , source_meaning
186953       , created_by
186954       , creation_date
186955       , last_update_date
186956       , last_updated_by
186957       , last_update_login
186958       , program_update_date
186959       , program_application_id
186960       , program_id
186961       , request_id
186962 )
186963 SELECT  event_id
186964       , p_target_ledger_id
186965       , p_sla_ledger_id
186966       , p_language
186970       , source_application_id
186967       , object_name
186968       , object_type_code
186969       , line_number
186971       , source_type_code
186972       , source_code
186973       , SUBSTR(source_value,1,1996)
186974       , SUBSTR(source_meaning ,1,200)
186975       , xla_environment_pkg.g_Usr_Id
186976       , TRUNC(SYSDATE)
186977       , TRUNC(SYSDATE)
186978       , xla_environment_pkg.g_Usr_Id
186979       , xla_environment_pkg.g_Login_Id
186980       , TRUNC(SYSDATE)
186981       , xla_environment_pkg.g_Prog_Appl_Id
186982       , xla_environment_pkg.g_Prog_Id
186983       , xla_environment_pkg.g_Req_Id
186984   FROM (
186985        SELECT xet.event_id                  event_id
186986             , l1.line_number                 line_number
186987             , CASE r
186988                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
186989                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
186990                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
186991                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
186992                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
186993                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
186994                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
186995                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
186996                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
186997                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
186998                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
186999                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187000                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187001                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187002                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187003                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187004                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187005                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187006                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187007                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187008                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187009                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187010                 WHEN 23 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187011                 WHEN 24 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187012                 WHEN 25 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187013                 WHEN 26 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187014                 WHEN 27 THEN 'AP_PO_HEADERS_EXTRACT_V' 
187015                 WHEN 28 THEN 'AP_PO_HEADERS_EXTRACT_V' 
187016                 WHEN 29 THEN 'AP_PO_HEADERS_EXTRACT_V' 
187017                 WHEN 30 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187018                 WHEN 31 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187019                 WHEN 32 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187020                 WHEN 33 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187021                 WHEN 34 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187022                 WHEN 35 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
187023                 WHEN 36 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
187024                 WHEN 37 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187025                 WHEN 38 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187026                 WHEN 39 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187027                 WHEN 40 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187028                 WHEN 41 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187029                 WHEN 42 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187030                 WHEN 43 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187031                 WHEN 44 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187032                 WHEN 45 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187033                 WHEN 46 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187034                 WHEN 47 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187035                 WHEN 48 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187036                 WHEN 49 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187037                 WHEN 50 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187038                 WHEN 51 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187039                 WHEN 52 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187040                 WHEN 53 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
187041                 
187042                ELSE null
187043               END                           object_name
187044             , CASE r
187045                 WHEN 1 THEN 'LINE' 
187046                 WHEN 2 THEN 'LINE' 
187047                 WHEN 3 THEN 'LINE' 
187048                 WHEN 4 THEN 'LINE' 
187049                 WHEN 5 THEN 'LINE' 
187050                 WHEN 6 THEN 'LINE' 
187051                 WHEN 7 THEN 'LINE' 
187052                 WHEN 8 THEN 'LINE' 
187053                 WHEN 9 THEN 'LINE' 
187054                 WHEN 10 THEN 'LINE' 
187055                 WHEN 11 THEN 'LINE' 
187056                 WHEN 12 THEN 'LINE' 
187057                 WHEN 13 THEN 'LINE' 
187058                 WHEN 14 THEN 'LINE' 
187059                 WHEN 15 THEN 'LINE' 
187063                 WHEN 19 THEN 'LINE' 
187060                 WHEN 16 THEN 'LINE' 
187061                 WHEN 17 THEN 'LINE' 
187062                 WHEN 18 THEN 'LINE' 
187064                 WHEN 20 THEN 'LINE' 
187065                 WHEN 21 THEN 'LINE' 
187066                 WHEN 22 THEN 'LINE' 
187067                 WHEN 23 THEN 'LINE' 
187068                 WHEN 24 THEN 'LINE' 
187069                 WHEN 25 THEN 'LINE' 
187070                 WHEN 26 THEN 'LINE' 
187071                 WHEN 27 THEN 'LINE' 
187072                 WHEN 28 THEN 'LINE' 
187073                 WHEN 29 THEN 'LINE' 
187074                 WHEN 30 THEN 'LINE' 
187075                 WHEN 31 THEN 'LINE' 
187076                 WHEN 32 THEN 'LINE' 
187077                 WHEN 33 THEN 'LINE' 
187078                 WHEN 34 THEN 'LINE' 
187079                 WHEN 35 THEN 'LINE' 
187080                 WHEN 36 THEN 'LINE' 
187081                 WHEN 37 THEN 'LINE' 
187082                 WHEN 38 THEN 'LINE' 
187083                 WHEN 39 THEN 'LINE' 
187084                 WHEN 40 THEN 'LINE' 
187085                 WHEN 41 THEN 'LINE' 
187086                 WHEN 42 THEN 'LINE' 
187087                 WHEN 43 THEN 'LINE' 
187088                 WHEN 44 THEN 'LINE' 
187089                 WHEN 45 THEN 'LINE' 
187090                 WHEN 46 THEN 'LINE' 
187091                 WHEN 47 THEN 'LINE' 
187092                 WHEN 48 THEN 'LINE' 
187093                 WHEN 49 THEN 'LINE' 
187094                 WHEN 50 THEN 'LINE' 
187095                 WHEN 51 THEN 'LINE' 
187096                 WHEN 52 THEN 'LINE' 
187097                 WHEN 53 THEN 'LINE' 
187098                 
187099                 ELSE null
187100               END                           object_type_code
187101             , CASE r
187102                 WHEN 1 THEN '200' 
187103                 WHEN 2 THEN '200' 
187104                 WHEN 3 THEN '200' 
187105                 WHEN 4 THEN '200' 
187106                 WHEN 5 THEN '200' 
187107                 WHEN 6 THEN '200' 
187108                 WHEN 7 THEN '200' 
187109                 WHEN 8 THEN '200' 
187110                 WHEN 9 THEN '200' 
187111                 WHEN 10 THEN '200' 
187112                 WHEN 11 THEN '200' 
187113                 WHEN 12 THEN '200' 
187114                 WHEN 13 THEN '200' 
187115                 WHEN 14 THEN '200' 
187116                 WHEN 15 THEN '200' 
187117                 WHEN 16 THEN '200' 
187118                 WHEN 17 THEN '200' 
187119                 WHEN 18 THEN '200' 
187120                 WHEN 19 THEN '200' 
187121                 WHEN 20 THEN '200' 
187122                 WHEN 21 THEN '200' 
187123                 WHEN 22 THEN '200' 
187124                 WHEN 23 THEN '200' 
187125                 WHEN 24 THEN '200' 
187126                 WHEN 25 THEN '200' 
187127                 WHEN 26 THEN '200' 
187128                 WHEN 27 THEN '200' 
187129                 WHEN 28 THEN '200' 
187130                 WHEN 29 THEN '200' 
187131                 WHEN 30 THEN '200' 
187132                 WHEN 31 THEN '200' 
187133                 WHEN 32 THEN '200' 
187134                 WHEN 33 THEN '200' 
187135                 WHEN 34 THEN '200' 
187136                 WHEN 35 THEN '200' 
187137                 WHEN 36 THEN '200' 
187138                 WHEN 37 THEN '200' 
187139                 WHEN 38 THEN '200' 
187140                 WHEN 39 THEN '200' 
187141                 WHEN 40 THEN '200' 
187142                 WHEN 41 THEN '200' 
187143                 WHEN 42 THEN '200' 
187144                 WHEN 43 THEN '200' 
187145                 WHEN 44 THEN '200' 
187149                 WHEN 48 THEN '200' 
187146                 WHEN 45 THEN '200' 
187147                 WHEN 46 THEN '200' 
187148                 WHEN 47 THEN '200' 
187150                 WHEN 49 THEN '200' 
187151                 WHEN 50 THEN '200' 
187152                 WHEN 51 THEN '200' 
187153                 WHEN 52 THEN '200' 
187154                 WHEN 53 THEN '200' 
187155                 
187156                 ELSE null
187157               END                           source_application_id
187158             , 'S'             source_type_code
187159             , CASE r
187160                 WHEN 1 THEN 'AID_DESCRIPTION' 
187161                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
187162                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
187163                 WHEN 4 THEN 'AID_DIST_CCID' 
187164                 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
187165                 WHEN 6 THEN 'AID_RET_RELATED_DIST_CCID' 
187166                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
187167                 WHEN 8 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
187168                 WHEN 9 THEN 'ASAT_LIAB_CCID' 
187169                 WHEN 10 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
187173                 WHEN 14 THEN 'BUS_FLOW_PO_DIST_TYPE' 
187170                 WHEN 11 THEN 'DISTRIBUTION_LINK_TYPE' 
187171                 WHEN 12 THEN 'ALLOC_TO_MAIN_DIST_ID' 
187172                 WHEN 13 THEN 'BUS_FLOW_PO_APP_ID' 
187174                 WHEN 15 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
187175                 WHEN 16 THEN 'BUS_FLOW_PO_DIST_ID' 
187176                 WHEN 17 THEN 'BUS_FLOW_PO_DOC_ID' 
187177                 WHEN 18 THEN 'AID_INVOICE_DIST_ID' 
187178                 WHEN 19 THEN 'UPG_ENC_CR_CCID' 
187179                 WHEN 20 THEN 'UPG_ENC_CR_AMT' 
187180                 WHEN 21 THEN 'UPG_ENC_CR_BASE_AMT' 
187181                 WHEN 22 THEN 'UPG_ENC_DR_CCID' 
187182                 WHEN 23 THEN 'UPG_ENC_DR_AMT' 
187183                 WHEN 24 THEN 'UPG_ENC_DR_BASE_AMT' 
187184                 WHEN 25 THEN 'UPG_AP_ENCUM_OPTION' 
187185                 WHEN 26 THEN 'AID_AMOUNT' 
187186                 WHEN 27 THEN 'POH_RATE_DATE' 
187187                 WHEN 28 THEN 'POH_RATE' 
187188                 WHEN 29 THEN 'POH_RATE_TYPE' 
187189                 WHEN 30 THEN 'DEFERRED_END_DATE' 
187190                 WHEN 31 THEN 'DEFERRED_OPTION' 
187191                 WHEN 32 THEN 'DEFERRED_START_DATE' 
187192                 WHEN 33 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
187193                 WHEN 34 THEN 'AID_PARENT_REVERSAL_ID' 
187194                 WHEN 35 THEN 'TAX_LINE_ID' 
187195                 WHEN 36 THEN 'REC_NREC_TAX_DIST_ID' 
187196                 WHEN 37 THEN 'SUMMARY_TAX_LINE_ID' 
187197                 WHEN 38 THEN 'UPG_CR_ENC_TYPE_ID' 
187198                 WHEN 39 THEN 'UPG_DR_ENC_TYPE_ID' 
187199                 WHEN 40 THEN 'BUS_FLOW_AP_APP_ID' 
187200                 WHEN 41 THEN 'BUS_FLOW_INV_DIST_TYPE' 
187201                 WHEN 42 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
187202                 WHEN 43 THEN 'BUS_FLOW_INV_DIST_ID' 
187203                 WHEN 44 THEN 'BUS_FLOW_INV_ID' 
187204                 WHEN 45 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
187205                 WHEN 46 THEN 'AID_AMOUNT_VARIANCE' 
187206                 WHEN 47 THEN 'AID_ENCUMBERED_FLAG' 
187207                 WHEN 48 THEN 'AID_BASE_AMOUNT_VARIANCE' 
187208                 WHEN 49 THEN 'SELF_ASSESSED_TAX_FLAG' 
187209                 WHEN 50 THEN 'ENCUMBRANCE_AMOUNT' 
187210                 WHEN 51 THEN 'ENCUMBRANCE_BASE_AMOUNT' 
187211                 WHEN 52 THEN 'AID_QUANTITY_VARIANCE' 
187212                 WHEN 53 THEN 'AID_BASE_QUANTITY_VARIANCE' 
187213                 
187214                 ELSE null
187215               END                           source_code
187216             , CASE r
187217                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
187218                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
187219                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
187220                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
187221                 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
187222                 WHEN 6 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
187223                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
187224                 WHEN 8 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
187225                 WHEN 9 THEN TO_CHAR(l1.ASAT_LIAB_CCID)
187226                 WHEN 10 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
187227                 WHEN 11 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
187228                 WHEN 12 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
187229                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
187230                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
187231                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
187232                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
187233                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
187234                 WHEN 18 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
187235                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
187236                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
187237                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
187238                 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
187239                 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
187240                 WHEN 24 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
187241                 WHEN 25 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
187242                 WHEN 26 THEN TO_CHAR(l1.AID_AMOUNT)
187243                 WHEN 27 THEN TO_CHAR(l3.POH_RATE_DATE)
187244                 WHEN 28 THEN TO_CHAR(l3.POH_RATE)
187245                 WHEN 29 THEN TO_CHAR(l3.POH_RATE_TYPE)
187246                 WHEN 30 THEN TO_CHAR(l1.DEFERRED_END_DATE)
187247                 WHEN 31 THEN TO_CHAR(l1.DEFERRED_OPTION)
187248                 WHEN 32 THEN TO_CHAR(l1.DEFERRED_START_DATE)
187249                 WHEN 33 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
187250                 WHEN 34 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
187251                 WHEN 35 THEN TO_CHAR(l5.TAX_LINE_ID)
187252                 WHEN 36 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
187253                 WHEN 37 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
187254                 WHEN 38 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
187255                 WHEN 39 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
187256                 WHEN 40 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
187257                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
187258                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
187259                 WHEN 43 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
187260                 WHEN 44 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
187261                 WHEN 45 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
187262                 WHEN 46 THEN TO_CHAR(l1.AID_AMOUNT_VARIANCE)
187263                 WHEN 47 THEN TO_CHAR(l1.AID_ENCUMBERED_FLAG)
187264                 WHEN 48 THEN TO_CHAR(l1.AID_BASE_AMOUNT_VARIANCE)
187265                 WHEN 49 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
187266                 WHEN 50 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
187267                 WHEN 51 THEN TO_CHAR(l1.ENCUMBRANCE_BASE_AMOUNT)
187268                 WHEN 52 THEN TO_CHAR(l1.AID_QUANTITY_VARIANCE)
187269                 WHEN 53 THEN TO_CHAR(l1.AID_BASE_QUANTITY_VARIANCE)
187270                 
187271                 ELSE null
187272               END                           source_value
187273             , CASE r
187274                 WHEN 3 THEN fvl10.meaning
187275                 WHEN 5 THEN fvl21.meaning
187276                 WHEN 33 THEN fvl68.meaning
187277                 WHEN 45 THEN fvl84.meaning
187278                 WHEN 47 THEN fvl87.meaning
187279                 WHEN 49 THEN fvl135.meaning
187280                 
187281                 ELSE null
187282               END               source_meaning
187283          FROM  xla_events_gt     xet  
187284         , AP_INVOICE_EXTRACT_DETAILS_V  l1
187285         , AP_PO_HEADERS_EXTRACT_V  l3
187286         , ZX_AP_DEF_TAX_EXTRACT_V  l5
187287         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
187288   , fnd_lookup_values    fvl10
187289   , fnd_lookup_values    fvl21
187290   , fnd_lookup_values    fvl68
187291   , fnd_lookup_values    fvl84
187292   , fnd_lookup_values    fvl87
187293   , fnd_lookup_values    fvl135
187294             , (select rownum r from all_objects where rownum <= 53 and owner = p_apps_owner)
187295         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
187296           AND xet.event_class_code = C_EVENT_CLASS_CODE
187297             AND l1.event_id          = xet.event_id
187298  AND l1.pod_po_header_id  = l3.po_header_id (+)  AND l1.zrnd_tax_dist_id = l5.rec_nrec_tax_dist_id (+)  AND l1.zrnd_tax_dist_id = l6.rec_nrec_tax_dist_id (+)    AND fvl10.lookup_type(+)         = 'DESTINATION TYPE'
187299   AND fvl10.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
187300   AND fvl10.view_application_id(+) = 201
187301   AND fvl10.language(+)            = USERENV('LANG')
187302      AND fvl21.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
187303   AND fvl21.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
187304   AND fvl21.view_application_id(+) = 200
187305   AND fvl21.language(+)            = USERENV('LANG')
187306      AND fvl68.lookup_type(+)         = 'YES_NO'
187307   AND fvl68.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
187308   AND fvl68.view_application_id(+) = 0
187309   AND fvl68.language(+)            = USERENV('LANG')
187310      AND fvl84.lookup_type(+)         = 'YES_NO'
187311   AND fvl84.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
187312   AND fvl84.view_application_id(+) = 0
187313   AND fvl84.language(+)            = USERENV('LANG')
187314      AND fvl87.lookup_type(+)         = 'YES_NO'
187315   AND fvl87.lookup_code(+)         = l1.AID_ENCUMBERED_FLAG
187316   AND fvl87.view_application_id(+) = 0
187317   AND fvl87.language(+)            = USERENV('LANG')
187318      AND fvl135.lookup_type(+)         = 'YES_NO'
187319   AND fvl135.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
187320   AND fvl135.view_application_id(+) = 0
187321   AND fvl135.language(+)            = USERENV('LANG')
187322   
187323 )
187324 ;
187325 --
187326 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
187327 
187328       trace
187329          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
187330          ,p_level    => C_LEVEL_STATEMENT
187331          ,p_module   => l_log_module);
187332 
187333 END IF;
187334 
187335 
187336 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
187337       trace
187338          (p_msg      => 'END of insert_sources_292'
187339          ,p_level    => C_LEVEL_PROCEDURE
187340          ,p_module   => l_log_module);
187341 END IF;
187342 EXCEPTION
187343   WHEN xla_exceptions_pkg.application_exception THEN
187344       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
187345             trace
187346                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
187347                ,p_level    => C_LEVEL_EXCEPTION
187348                ,p_module   => l_log_module);
187349       END IF;
187350       RAISE;
187351   WHEN OTHERS THEN
187352       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
187353             trace
187354                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
187355                ,p_level    => C_LEVEL_EXCEPTION
187356                ,p_module   => l_log_module);
187357        END IF;
187358        xla_exceptions_pkg.raise_message
187359            (p_location => 'XLA_00200_AAD_S_000006_PKG.insert_sources_292');
187360 END insert_sources_292;
187361 --
187362 
187363 ---------------------------------------
187364 --
187365 -- PRIVATE FUNCTION
187366 --         EventClass_292
187367 --
187368 ----------------------------------------
187369 --
187370 FUNCTION EventClass_292
187371        (p_application_id         IN NUMBER
187372        ,p_base_ledger_id         IN NUMBER
187373        ,p_target_ledger_id       IN NUMBER
187374        ,p_language               IN VARCHAR2
187375        ,p_currency_code          IN VARCHAR2
187376        ,p_sla_ledger_id          IN NUMBER
187377        ,p_pad_start_date         IN DATE
187378        ,p_pad_end_date           IN DATE
187379        ,p_primary_ledger_id      IN NUMBER)
187383 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'DEBIT MEMOS';
187380 RETURN BOOLEAN IS
187381 --
187382 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'DEBIT MEMOS_ALL';
187384 
187385 l_calculate_acctd_flag   VARCHAR2(1) :='N';
187386 l_calculate_g_l_flag     VARCHAR2(1) :='N';
187387 --
187388 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
187389 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
187390 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
187391 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
187392 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
187393 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
187394 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
187395 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
187396 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
187397 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
187398 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
187399 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
187400 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
187401 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
187402 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
187403 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
187404 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
187405 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
187406 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
187407 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
187408 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
187409 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
187410 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
187411 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
187412 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
187413 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
187414 
187415 l_event_id                             NUMBER;
187416 l_previous_event_id                    NUMBER;
187417 l_first_event_id                       NUMBER;
187418 l_last_event_id                        NUMBER;
187419 
187420 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
187421 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
187422 --
187423 --
187424 l_result                    BOOLEAN := TRUE;
187425 l_rows                      NUMBER  := 1000;
187426 l_event_type_name           VARCHAR2(80) := 'All';
187427 l_event_class_name          VARCHAR2(80) := 'Debit Memos';
187428 l_description               VARCHAR2(4000);
187429 l_transaction_reversal      NUMBER;
187430 l_ae_header_id              NUMBER;
187431 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
187432 l_log_module                VARCHAR2(240);
187433 --
187434 l_acct_reversal_source      VARCHAR2(30);
187435 l_trx_reversal_source       VARCHAR2(30);
187436 
187437 l_continue_with_lines       BOOLEAN := TRUE;
187438 --
187439 l_acc_rev_gl_date_source    DATE;                      -- 4262811
187440 --
187441 type t_array_event_id is table of number index by binary_integer;
187442 
187443 l_rec_array_event                    t_rec_array_event;
187444 l_null_rec_array_event               t_rec_array_event;
187445 l_array_ae_header_id                 xla_number_array_type;
187446 l_actual_flag                        VARCHAR2(1) := NULL;
187447 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
187448 l_balance_type_code                  VARCHAR2(1) :=NULL;
187449 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
187450 
187451 --
187452 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
187453 --
187454 
187455 TYPE t_array_source_3 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
187456 TYPE t_array_source_8 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
187457 TYPE t_array_source_11 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
187458 TYPE t_array_source_22 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
187459 TYPE t_array_source_28 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
187460 TYPE t_array_source_35 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
187461 TYPE t_array_source_46 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
187462 TYPE t_array_source_55 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
187466 TYPE t_array_source_86 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
187463 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
187464 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
187465 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
187467 TYPE t_array_source_136 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
187468 TYPE t_array_source_137 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
187469 TYPE t_array_source_138 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
187470 TYPE t_array_source_165 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
187471 TYPE t_array_source_166 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
187472 TYPE t_array_source_167 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
187473 
187474 TYPE t_array_source_1 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
187475 TYPE t_array_source_9 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
187476 TYPE t_array_source_10 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
187477 TYPE t_array_source_18 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
187478 TYPE t_array_source_21 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
187479 TYPE t_array_source_30 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
187480 TYPE t_array_source_31 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
187481 TYPE t_array_source_38 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
187482 TYPE t_array_source_39 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ASAT_LIAB_CCID%TYPE INDEX BY BINARY_INTEGER;
187483 TYPE t_array_source_41 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
187484 TYPE t_array_source_43 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
187485 TYPE t_array_source_45 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
187486 TYPE t_array_source_47 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
187487 TYPE t_array_source_48 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
187488 TYPE t_array_source_49 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
187489 TYPE t_array_source_50 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
187490 TYPE t_array_source_51 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
187491 TYPE t_array_source_52 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
187492 TYPE t_array_source_53 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
187493 TYPE t_array_source_54 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
187494 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
187495 TYPE t_array_source_57 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
187496 TYPE t_array_source_58 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
187497 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
187498 TYPE t_array_source_60 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
187499 TYPE t_array_source_61 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
187500 TYPE t_array_source_62 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
187501 TYPE t_array_source_63 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
187502 TYPE t_array_source_64 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
187503 TYPE t_array_source_65 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
187504 TYPE t_array_source_66 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
187505 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
187506 TYPE t_array_source_68 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
187507 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
187508 TYPE t_array_source_74 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
187509 TYPE t_array_source_75 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
187510 TYPE t_array_source_76 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
187511 TYPE t_array_source_77 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
187512 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
187513 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
187514 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
187515 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
187516 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
187517 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
187518 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
187522 TYPE t_array_source_135 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
187519 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
187520 TYPE t_array_source_87 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_ENCUMBERED_FLAG%TYPE INDEX BY BINARY_INTEGER;
187521 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_BASE_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
187523 TYPE t_array_source_143 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
187524 TYPE t_array_source_144 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ENCUMBRANCE_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
187525 TYPE t_array_source_161 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
187526 TYPE t_array_source_162 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_BASE_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
187527 
187528 l_array_source_3              t_array_source_3;
187529 l_array_source_3_meaning      t_array_lookup_meaning;
187530 l_array_source_8              t_array_source_8;
187531 l_array_source_11              t_array_source_11;
187532 l_array_source_22              t_array_source_22;
187533 l_array_source_28              t_array_source_28;
187534 l_array_source_35              t_array_source_35;
187535 l_array_source_35_meaning      t_array_lookup_meaning;
187536 l_array_source_46              t_array_source_46;
187537 l_array_source_55              t_array_source_55;
187538 l_array_source_69              t_array_source_69;
187539 l_array_source_70              t_array_source_70;
187540 l_array_source_71              t_array_source_71;
187541 l_array_source_86              t_array_source_86;
187542 l_array_source_86_meaning      t_array_lookup_meaning;
187543 l_array_source_136              t_array_source_136;
187544 l_array_source_137              t_array_source_137;
187545 l_array_source_138              t_array_source_138;
187546 l_array_source_165              t_array_source_165;
187547 l_array_source_166              t_array_source_166;
187548 l_array_source_167              t_array_source_167;
187549 
187550 l_array_source_1      t_array_source_1;
187551 l_array_source_9      t_array_source_9;
187552 l_array_source_10      t_array_source_10;
187553 l_array_source_10_meaning      t_array_lookup_meaning;
187554 l_array_source_18      t_array_source_18;
187555 l_array_source_21      t_array_source_21;
187556 l_array_source_21_meaning      t_array_lookup_meaning;
187557 l_array_source_30      t_array_source_30;
187558 l_array_source_31      t_array_source_31;
187559 l_array_source_38      t_array_source_38;
187560 l_array_source_39      t_array_source_39;
187561 l_array_source_41      t_array_source_41;
187562 l_array_source_43      t_array_source_43;
187563 l_array_source_45      t_array_source_45;
187564 l_array_source_47      t_array_source_47;
187565 l_array_source_48      t_array_source_48;
187566 l_array_source_49      t_array_source_49;
187567 l_array_source_50      t_array_source_50;
187568 l_array_source_51      t_array_source_51;
187569 l_array_source_52      t_array_source_52;
187570 l_array_source_53      t_array_source_53;
187571 l_array_source_54      t_array_source_54;
187572 l_array_source_56      t_array_source_56;
187573 l_array_source_57      t_array_source_57;
187574 l_array_source_58      t_array_source_58;
187575 l_array_source_59      t_array_source_59;
187576 l_array_source_60      t_array_source_60;
187577 l_array_source_61      t_array_source_61;
187578 l_array_source_62      t_array_source_62;
187579 l_array_source_63      t_array_source_63;
187580 l_array_source_64      t_array_source_64;
187581 l_array_source_65      t_array_source_65;
187582 l_array_source_66      t_array_source_66;
187583 l_array_source_67      t_array_source_67;
187584 l_array_source_68      t_array_source_68;
187585 l_array_source_68_meaning      t_array_lookup_meaning;
187586 l_array_source_72      t_array_source_72;
187587 l_array_source_74      t_array_source_74;
187588 l_array_source_75      t_array_source_75;
187589 l_array_source_76      t_array_source_76;
187590 l_array_source_77      t_array_source_77;
187591 l_array_source_78      t_array_source_78;
187592 l_array_source_79      t_array_source_79;
187593 l_array_source_80      t_array_source_80;
187594 l_array_source_81      t_array_source_81;
187595 l_array_source_82      t_array_source_82;
187596 l_array_source_83      t_array_source_83;
187597 l_array_source_84      t_array_source_84;
187598 l_array_source_84_meaning      t_array_lookup_meaning;
187599 l_array_source_85      t_array_source_85;
187600 l_array_source_87      t_array_source_87;
187601 l_array_source_87_meaning      t_array_lookup_meaning;
187602 l_array_source_88      t_array_source_88;
187603 l_array_source_135      t_array_source_135;
187604 l_array_source_135_meaning      t_array_lookup_meaning;
187605 l_array_source_143      t_array_source_143;
187606 l_array_source_144      t_array_source_144;
187607 l_array_source_161      t_array_source_161;
187608 l_array_source_162      t_array_source_162;
187609 
187610 --
187611 CURSOR header_cur
187612 IS
187613 SELECT /*+ leading(xet) cardinality(xet,1) */
187614 -- Event Class Code: DEBIT MEMOS
187615     xet.entity_id
187616    ,xet.legal_entity_id
187617    ,xet.entity_code
187618    ,xet.transaction_number
187619    ,xet.event_id
187620    ,xet.event_class_code
187621    ,xet.event_type_code
187622    ,xet.event_number
187623    ,xet.event_date
187624    ,xet.transaction_date
187625    ,xet.reference_num_1
187626    ,xet.reference_num_2
187627    ,xet.reference_num_3
187628    ,xet.reference_num_4
187629    ,xet.reference_char_1
187630    ,xet.reference_char_2
187631    ,xet.reference_char_3
187632    ,xet.reference_char_4
187633    ,xet.reference_date_1
187634    ,xet.reference_date_2
187635    ,xet.reference_date_3
187636    ,xet.reference_date_4
187637    ,xet.event_created_by
187638    ,xet.budgetary_control_flag 
187642   , h4.ASP_RATE_VAR_LOSS_CCID    source_11
187639   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_3
187640   , fvl3.meaning   source_3_meaning
187641   , h4.ASP_RATE_VAR_GAIN_CCID    source_8
187643   , h2.AI_ACCTS_PAY_CCID    source_22
187644   , h4.FSP_RETAINAGE_ACCOUNT    source_28
187645   , h4.ASP_AUTO_OFFSET_FLAG    source_35
187646   , fvl35.meaning   source_35_meaning
187647   , h2.AI_INVOICE_ID    source_46
187648   , h2.AI_INVOICE_CURRENCY_CODE    source_55
187649   , h2.AI_VENDOR_ID    source_69
187650   , h2.AI_VENDOR_SITE_ID    source_70
187651   , h2.THIRD_PARTY_TYPE    source_71
187652   , h4.FSP_PURCH_ENCUMBRANCE_FLAG    source_86
187653   , fvl86.meaning   source_86_meaning
187654   , h2.INV_EXCHANGE_DATE    source_136
187655   , h2.INV_EXCHANGE_RATE    source_137
187656   , h2.INV_EXCHANGE_RATE_TYPE    source_138
187657   , h2.INV_DOC_SEQUENCE_CATEGORY    source_165
187658   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_166
187659   , h2.INV_DOC_SEQUENCE_VALUE    source_167
187660   FROM xla_events_gt     xet 
187661   , AP_INVOICE_EXTRACT_HEADER_V  h2
187662   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
187663   , fnd_lookup_values    fvl3
187664   , fnd_lookup_values    fvl35
187665   , fnd_lookup_values    fvl86
187666  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
187667    and xet.event_class_code = C_EVENT_CLASS_CODE
187668    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
187669  AND h4.asp_org_id= h2.ai_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
187670   AND fvl3.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
187671   AND fvl3.view_application_id(+) = 200
187672   AND fvl3.language(+)            = USERENV('LANG')
187673      AND fvl35.lookup_type(+)         = 'YES_NO'
187674   AND fvl35.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
187675   AND fvl35.view_application_id(+) = 0
187676   AND fvl35.language(+)            = USERENV('LANG')
187677      AND fvl86.lookup_type(+)         = 'YES_NO'
187678   AND fvl86.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
187679   AND fvl86.view_application_id(+) = 0
187680   AND fvl86.language(+)            = USERENV('LANG')
187681   
187682  ORDER BY event_id
187683 ;
187684 
187685 
187686 --
187687 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
187688 IS
187689 SELECT  /*+ leading(xet) cardinality(xet,1) */
187690 -- Event Class Code: DEBIT MEMOS
187691     xet.entity_id
187692    ,xet.legal_entity_id
187693    ,xet.entity_code
187694    ,xet.transaction_number
187695    ,xet.event_id
187696    ,xet.event_class_code
187697    ,xet.event_type_code
187698    ,xet.event_number
187699    ,xet.event_date
187700    ,xet.transaction_date
187701    ,xet.reference_num_1
187702    ,xet.reference_num_2
187703    ,xet.reference_num_3
187704    ,xet.reference_num_4
187705    ,xet.reference_char_1
187706    ,xet.reference_char_2
187707    ,xet.reference_char_3
187708    ,xet.reference_char_4
187709    ,xet.reference_date_1
187710    ,xet.reference_date_2
187711    ,xet.reference_date_3
187712    ,xet.reference_date_4
187713    ,xet.event_created_by
187714    ,xet.budgetary_control_flag
187715  , l1.LINE_NUMBER  
187716   , l1.AID_DESCRIPTION    source_1
187717   , l1.INV_DIST_BASE_AMOUNT    source_9
187718   , l1.RELATED_INV_DIST_DEST_TYPE    source_10
187719   , fvl10.meaning   source_10_meaning
187720   , l1.AID_DIST_CCID    source_18
187721   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_21
187722   , fvl21.meaning   source_21_meaning
187723   , l1.AID_RET_RELATED_DIST_CCID    source_30
187724   , l1.AWT_RELATED_DIST_ACCOUNT    source_31
187725   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_38
187726   , l1.ASAT_LIAB_CCID    source_39
187727   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_41
187728   , l1.DISTRIBUTION_LINK_TYPE    source_43
187729   , l1.ALLOC_TO_MAIN_DIST_ID    source_45
187730   , l1.BUS_FLOW_PO_APP_ID    source_47
187731   , l1.BUS_FLOW_PO_DIST_TYPE    source_48
187732   , l1.BUS_FLOW_PO_ENTITY_CODE    source_49
187733   , l1.BUS_FLOW_PO_DIST_ID    source_50
187734   , l1.BUS_FLOW_PO_DOC_ID    source_51
187735   , l1.AID_INVOICE_DIST_ID    source_52
187736   , l1.UPG_ENC_CR_CCID    source_53
187737   , l1.UPG_ENC_CR_AMT    source_54
187738   , l1.UPG_ENC_CR_BASE_AMT    source_56
187739   , l1.UPG_ENC_DR_CCID    source_57
187740   , l1.UPG_ENC_DR_AMT    source_58
187741   , l1.UPG_ENC_DR_BASE_AMT    source_59
187742   , l1.UPG_AP_ENCUM_OPTION    source_60
187743   , l1.AID_AMOUNT    source_61
187744   , l3.POH_RATE_DATE    source_62
187745   , l3.POH_RATE    source_63
187746   , l3.POH_RATE_TYPE    source_64
187747   , l1.DEFERRED_END_DATE    source_65
187748   , l1.DEFERRED_OPTION    source_66
187749   , l1.DEFERRED_START_DATE    source_67
187750   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_68
187751   , fvl68.meaning   source_68_meaning
187752   , l1.AID_PARENT_REVERSAL_ID    source_72
187753   , l5.TAX_LINE_ID    source_74
187754   , l6.REC_NREC_TAX_DIST_ID    source_75
187755   , l1.SUMMARY_TAX_LINE_ID    source_76
187756   , l1.UPG_CR_ENC_TYPE_ID    source_77
187757   , l1.UPG_DR_ENC_TYPE_ID    source_78
187758   , l1.BUS_FLOW_AP_APP_ID    source_79
187759   , l1.BUS_FLOW_INV_DIST_TYPE    source_80
187760   , l1.BUS_FLOW_INV_ENTITY_CODE    source_81
187761   , l1.BUS_FLOW_INV_DIST_ID    source_82
187762   , l1.BUS_FLOW_INV_ID    source_83
187763   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_84
187764   , fvl84.meaning   source_84_meaning
187765   , l1.AID_AMOUNT_VARIANCE    source_85
187766   , l1.AID_ENCUMBERED_FLAG    source_87
187767   , fvl87.meaning   source_87_meaning
187768   , l1.AID_BASE_AMOUNT_VARIANCE    source_88
187769   , l1.SELF_ASSESSED_TAX_FLAG    source_135
187770   , fvl135.meaning   source_135_meaning
187771   , l1.ENCUMBRANCE_AMOUNT    source_143
187772   , l1.ENCUMBRANCE_BASE_AMOUNT    source_144
187776   , AP_INVOICE_EXTRACT_DETAILS_V  l1
187773   , l1.AID_QUANTITY_VARIANCE    source_161
187774   , l1.AID_BASE_QUANTITY_VARIANCE    source_162
187775   FROM xla_events_gt     xet 
187777   , AP_PO_HEADERS_EXTRACT_V  l3
187778   , ZX_AP_DEF_TAX_EXTRACT_V  l5
187779   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
187780   , fnd_lookup_values    fvl10
187781   , fnd_lookup_values    fvl21
187782   , fnd_lookup_values    fvl68
187783   , fnd_lookup_values    fvl84
187784   , fnd_lookup_values    fvl87
187785   , fnd_lookup_values    fvl135
187786  WHERE xet.event_id between x_first_event_id and x_last_event_id
187787    and xet.event_date between p_pad_start_date and p_pad_end_date
187788    and xet.event_class_code = C_EVENT_CLASS_CODE
187789    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
187790  AND l1.POD_PO_Header_Id  = l3.PO_Header_Id (+)  AND l1.ZRND_tax_dist_id = l5.REC_NREC_TAX_DIST_ID (+)  AND l1.ZRND_tax_dist_id = l6.REC_NREC_TAX_DIST_ID (+)    AND fvl10.lookup_type(+)         = 'DESTINATION TYPE'
187791   AND fvl10.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
187792   AND fvl10.view_application_id(+) = 201
187793   AND fvl10.language(+)            = USERENV('LANG')
187794      AND fvl21.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
187795   AND fvl21.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
187796   AND fvl21.view_application_id(+) = 200
187797   AND fvl21.language(+)            = USERENV('LANG')
187798      AND fvl68.lookup_type(+)         = 'YES_NO'
187799   AND fvl68.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
187800   AND fvl68.view_application_id(+) = 0
187801   AND fvl68.language(+)            = USERENV('LANG')
187802      AND fvl84.lookup_type(+)         = 'YES_NO'
187803   AND fvl84.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
187804   AND fvl84.view_application_id(+) = 0
187805   AND fvl84.language(+)            = USERENV('LANG')
187806      AND fvl87.lookup_type(+)         = 'YES_NO'
187807   AND fvl87.lookup_code(+)         = l1.AID_ENCUMBERED_FLAG
187808   AND fvl87.view_application_id(+) = 0
187809   AND fvl87.language(+)            = USERENV('LANG')
187810      AND fvl135.lookup_type(+)         = 'YES_NO'
187811   AND fvl135.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
187812   AND fvl135.view_application_id(+) = 0
187813   AND fvl135.language(+)            = USERENV('LANG')
187814   ;
187815 
187816 --
187817 BEGIN
187818 IF g_log_enabled THEN
187819    l_log_module := C_DEFAULT_MODULE||'.EventClass_292';
187820 END IF;
187821 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
187822    trace
187823       (p_msg      => 'BEGIN of EventClass_292'
187824       ,p_level    => C_LEVEL_PROCEDURE
187825       ,p_module   => l_log_module);
187826 END IF;
187827 
187828 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
187829    trace
187830       (p_msg      => 'p_application_id = '||p_application_id||
187831                      ' - p_base_ledger_id = '||p_base_ledger_id||
187832                      ' - p_target_ledger_id  = '||p_target_ledger_id||
187833                      ' - p_language = '||p_language||
187834                      ' - p_currency_code = '||p_currency_code||
187835                      ' - p_sla_ledger_id = '||p_sla_ledger_id
187836       ,p_level    => C_LEVEL_STATEMENT
187837       ,p_module   => l_log_module);
187838 END IF;
187839 --
187840 -- initialze arrays
187841 --
187842 g_array_event.DELETE;
187843 l_rec_array_event := l_null_rec_array_event;
187844 --
187845 --------------------------------------
187846 -- 4262811 Initialze MPA Line Number
187847 --------------------------------------
187848 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
187849 
187850 --
187851 
187852 --
187853 OPEN header_cur;
187854 --
187855 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
187856    trace
187857    (p_msg      => 'SQL - FETCH header_cur'
187858    ,p_level    => C_LEVEL_STATEMENT
187859    ,p_module   => l_log_module);
187860 END IF;
187861 --
187862 LOOP
187863 FETCH header_cur BULK COLLECT INTO
187864         l_array_entity_id
187865       , l_array_legal_entity_id
187866       , l_array_entity_code
187867       , l_array_transaction_num
187868       , l_array_event_id
187869       , l_array_class_code
187870       , l_array_event_type
187871       , l_array_event_number
187872       , l_array_event_date
187873       , l_array_transaction_date
187874       , l_array_reference_num_1
187875       , l_array_reference_num_2
187876       , l_array_reference_num_3
187877       , l_array_reference_num_4
187878       , l_array_reference_char_1
187879       , l_array_reference_char_2
187880       , l_array_reference_char_3
187881       , l_array_reference_char_4
187882       , l_array_reference_date_1
187883       , l_array_reference_date_2
187884       , l_array_reference_date_3
187885       , l_array_reference_date_4
187886       , l_array_event_created_by
187887       , l_array_budgetary_control_flag 
187888       , l_array_source_3
187889       , l_array_source_3_meaning
187890       , l_array_source_8
187891       , l_array_source_11
187892       , l_array_source_22
187893       , l_array_source_28
187894       , l_array_source_35
187895       , l_array_source_35_meaning
187896       , l_array_source_46
187897       , l_array_source_55
187898       , l_array_source_69
187899       , l_array_source_70
187900       , l_array_source_71
187901       , l_array_source_86
187902       , l_array_source_86_meaning
187903       , l_array_source_136
187904       , l_array_source_137
187905       , l_array_source_138
187906       , l_array_source_165
187907       , l_array_source_166
187908       , l_array_source_167
187909       LIMIT l_rows;
187910 --
187914    ,p_level    => C_LEVEL_EVENT
187911 IF (C_LEVEL_EVENT >= g_log_level) THEN
187912    trace
187913    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
187915    ,p_module   => l_log_module);
187916 END IF;
187917 --
187918 EXIT WHEN l_array_entity_id.COUNT = 0;
187919 
187920 -- initialize arrays
187921 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
187922 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
187923 
187924 --
187925 -- Bug 4458708
187926 --
187927 XLA_AE_LINES_PKG.g_LineNumber := 0;
187928 
187929 
187930 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
187931 g_last_hdr_idx := l_array_event_id.LAST;
187932 --
187933 -- loop for the headers. Each iteration is for each header extract row
187934 -- fetched in header cursor
187935 --
187936 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
187937 
187938 --
187939 -- set event info as cache for other routines to refer event attributes
187940 --
187941 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
187942    (p_application_id           => p_application_id
187943    ,p_primary_ledger_id        => p_primary_ledger_id
187944    ,p_base_ledger_id           => p_base_ledger_id
187945    ,p_target_ledger_id         => p_target_ledger_id
187946    ,p_entity_id                => l_array_entity_id(hdr_idx)
187947    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
187948    ,p_entity_code              => l_array_entity_code(hdr_idx)
187949    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
187950    ,p_event_id                 => l_array_event_id(hdr_idx)
187951    ,p_event_class_code         => l_array_class_code(hdr_idx)
187952    ,p_event_type_code          => l_array_event_type(hdr_idx)
187953    ,p_event_number             => l_array_event_number(hdr_idx)
187954    ,p_event_date               => l_array_event_date(hdr_idx)
187955    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
187956    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
187957    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
187958    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
187959    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
187960    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
187961    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
187962    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
187963    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
187964    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
187965    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
187966    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
187967    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
187968    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
187969    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
187970 
187971 --
187972 -- set the status of entry to C_VALID (0)
187973 --
187974 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
187975 
187976 --
187977 -- initialize a row for ae header
187978 --
187979 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
187980 
187981 l_event_id := l_array_event_id(hdr_idx);
187982 
187983 --
187984 -- storing the hdr_idx for event. May be used by line cursor.
187985 --
187986 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
187987 
187988 --
187989 -- store sources from header extract. This can be improved to
187990 -- store only those sources from header extract that may be used in lines
187991 --
187992 
187993 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
187994 g_array_event(l_event_id).array_value_char('source_3_meaning') := l_array_source_3_meaning(hdr_idx);
187995 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
187996 g_array_event(l_event_id).array_value_num('source_11') := l_array_source_11(hdr_idx);
187997 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
187998 g_array_event(l_event_id).array_value_num('source_28') := l_array_source_28(hdr_idx);
187999 g_array_event(l_event_id).array_value_char('source_35') := l_array_source_35(hdr_idx);
188000 g_array_event(l_event_id).array_value_char('source_35_meaning') := l_array_source_35_meaning(hdr_idx);
188001 g_array_event(l_event_id).array_value_num('source_46') := l_array_source_46(hdr_idx);
188002 g_array_event(l_event_id).array_value_char('source_55') := l_array_source_55(hdr_idx);
188003 g_array_event(l_event_id).array_value_num('source_69') := l_array_source_69(hdr_idx);
188004 g_array_event(l_event_id).array_value_num('source_70') := l_array_source_70(hdr_idx);
188005 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
188006 g_array_event(l_event_id).array_value_char('source_86') := l_array_source_86(hdr_idx);
188007 g_array_event(l_event_id).array_value_char('source_86_meaning') := l_array_source_86_meaning(hdr_idx);
188008 g_array_event(l_event_id).array_value_date('source_136') := l_array_source_136(hdr_idx);
188009 g_array_event(l_event_id).array_value_num('source_137') := l_array_source_137(hdr_idx);
188010 g_array_event(l_event_id).array_value_char('source_138') := l_array_source_138(hdr_idx);
188011 g_array_event(l_event_id).array_value_char('source_165') := l_array_source_165(hdr_idx);
188012 g_array_event(l_event_id).array_value_num('source_166') := l_array_source_166(hdr_idx);
188013 g_array_event(l_event_id).array_value_num('source_167') := l_array_source_167(hdr_idx);
188014 
188015 --
188016 -- initilaize the status of ae headers for diffrent balance types
188017 -- the status is initialised to C_NOT_CREATED (2)
188018 --
188019 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
188023 --
188020 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
188021 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
188022 
188024 -- call api to validate and store accounting attributes for header
188025 --
188026 
188027 ------------------------------------------------------------
188028 -- Accrual Reversal : to get date for Standard Source (NONE)
188029 ------------------------------------------------------------
188030 l_acc_rev_gl_date_source := NULL;
188031 
188032      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
188033       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_165');
188034      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
188035       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_166');
188036      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
188037       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_167');
188038      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
188039       l_rec_acct_attrs.array_date_value(4) := 
188040 xla_ae_sources_pkg.GetSystemSourceDate(
188041    p_source_code           => 'XLA_EVENT_DATE'
188042  , p_source_type_code      => 'Y'
188043  , p_source_application_id =>  602
188044 );
188045 
188046 
188047 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
188048 
188049 XLA_AE_HEADER_PKG.SetJeCategoryName;
188050 
188051 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
188052 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
188053 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
188054 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
188055 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
188056 
188057 
188058 --
188059 xla_ae_header_pkg.SetHdrDescription(
188060    p_description => Description_1 (
188061    p_application_id => p_application_id 
188062    )
188063 );
188064 --
188065 
188066 -- No header level analytical criteria
188067 
188068 --
188069 --accounting attribute enhancement, bug 3612931
188070 --
188071 l_trx_reversal_source := SUBSTR(NULL, 1,30);
188072 
188073 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
188074    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
188075 
188076    xla_accounting_err_pkg.build_message
188077       (p_appli_s_name            => 'XLA'
188078       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
188079       ,p_token_1                 => 'ACCT_ATTR_NAME'
188080       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
188081       ,p_token_2                 => 'PRODUCT_NAME'
188082       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
188083       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
188084       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
188085       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
188086 
188087 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
188088    --
188089    -- following sets the accounting attributes needed to reverse
188090    -- accounting for a distributeion
188091    --
188092    xla_ae_lines_pkg.SetTrxReversalAttrs
188093       (p_event_id              => l_event_id
188094       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
188095       ,p_trx_reversal_source   => l_trx_reversal_source);
188096 
188097 END IF;
188098 
188099 
188100 ----------------------------------------------------------------
188101 -- 4262811 -  update the header statuses to invalid in need be
188102 ----------------------------------------------------------------
188103 --
188104 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
188105 
188106 
188107   -----------------------------------------------
188108   -- No accrual reversal for the event class/type
188109   -----------------------------------------------
188110 ----------------------------------------------------------------
188111 
188112 --
188113 -- this ends the header loop iteration for one bulk fetch
188114 --
188115 END LOOP;
188116 
188117 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
188118 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
188119 
188120 --
188121 -- insert dummy rows into lines gt table that were created due to
188122 -- transaction reversals
188123 --
188124 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
188125    l_result := XLA_AE_LINES_PKG.InsertLines;
188126 END IF;
188127 
188128 --
188129 -- reset the temp_line_num for each set of events fetched from header
188130 -- cursor rather than doing it for each new event in line cursor
188131 -- Bug 3939231
188132 --
188133 xla_ae_lines_pkg.g_temp_line_num := 0;
188134 
188135 
188136 
188137 --
188138 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
188139 --
188140 --
188141 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
188142 
188143       trace
188144          (p_msg      => 'SQL - FETCH line_cur'
188145          ,p_level    => C_LEVEL_STATEMENT
188146          ,p_module   => l_log_module);
188147 
188148 END IF;
188149 --
188150 --
188151 LOOP
188152   --
188153   FETCH line_cur BULK COLLECT INTO
188154         l_array_entity_id
188155       , l_array_legal_entity_id
188159       , l_array_class_code
188156       , l_array_entity_code
188157       , l_array_transaction_num
188158       , l_array_event_id
188160       , l_array_event_type
188161       , l_array_event_number
188162       , l_array_event_date
188163       , l_array_transaction_date
188164       , l_array_reference_num_1
188165       , l_array_reference_num_2
188166       , l_array_reference_num_3
188167       , l_array_reference_num_4
188168       , l_array_reference_char_1
188169       , l_array_reference_char_2
188170       , l_array_reference_char_3
188171       , l_array_reference_char_4
188172       , l_array_reference_date_1
188173       , l_array_reference_date_2
188174       , l_array_reference_date_3
188175       , l_array_reference_date_4
188176       , l_array_event_created_by
188177       , l_array_budgetary_control_flag
188178       , l_array_extract_line_num 
188179       , l_array_source_1
188180       , l_array_source_9
188181       , l_array_source_10
188182       , l_array_source_10_meaning
188183       , l_array_source_18
188184       , l_array_source_21
188185       , l_array_source_21_meaning
188186       , l_array_source_30
188187       , l_array_source_31
188188       , l_array_source_38
188189       , l_array_source_39
188190       , l_array_source_41
188191       , l_array_source_43
188192       , l_array_source_45
188193       , l_array_source_47
188194       , l_array_source_48
188195       , l_array_source_49
188196       , l_array_source_50
188197       , l_array_source_51
188198       , l_array_source_52
188199       , l_array_source_53
188200       , l_array_source_54
188201       , l_array_source_56
188202       , l_array_source_57
188203       , l_array_source_58
188204       , l_array_source_59
188205       , l_array_source_60
188206       , l_array_source_61
188207       , l_array_source_62
188208       , l_array_source_63
188209       , l_array_source_64
188210       , l_array_source_65
188211       , l_array_source_66
188212       , l_array_source_67
188213       , l_array_source_68
188214       , l_array_source_68_meaning
188215       , l_array_source_72
188216       , l_array_source_74
188217       , l_array_source_75
188218       , l_array_source_76
188219       , l_array_source_77
188220       , l_array_source_78
188221       , l_array_source_79
188222       , l_array_source_80
188223       , l_array_source_81
188224       , l_array_source_82
188225       , l_array_source_83
188226       , l_array_source_84
188227       , l_array_source_84_meaning
188228       , l_array_source_85
188229       , l_array_source_87
188230       , l_array_source_87_meaning
188231       , l_array_source_88
188232       , l_array_source_135
188233       , l_array_source_135_meaning
188234       , l_array_source_143
188235       , l_array_source_144
188236       , l_array_source_161
188237       , l_array_source_162
188238       LIMIT l_rows;
188239 
188240   --
188241   IF (C_LEVEL_EVENT >= g_log_level) THEN
188242             trace
188243                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
188244                ,p_level    => C_LEVEL_EVENT
188245                ,p_module   => l_log_module);
188246   END IF;
188247   --
188248   EXIT WHEN l_array_entity_id.count = 0;
188249 
188250   XLA_AE_LINES_PKG.g_rec_lines := null;
188251 
188252 --
188253 -- Bug 4458708
188254 --
188255 XLA_AE_LINES_PKG.g_LineNumber := 0;
188256 --
188257 --
188258 
188259 FOR Idx IN 1..l_array_event_id.count LOOP
188260    --
188261    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
188262    --
188263    l_event_id := l_array_event_id(idx);  -- 5648433
188264 
188265    --
188266    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
188267    --
188268 
188269    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
188270              (g_array_event(l_event_id).array_value_num('header_index'))
188271          ,'N'
188272          ) <> 'Y'
188273    THEN
188274       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
188275          trace
188276             (p_msg      => 'Trancaction revesal option is not Y '
188277             ,p_level    => C_LEVEL_STATEMENT
188278             ,p_module   => l_log_module);
188279       END IF;
188280 
188281 --
188282 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
188283 --
188284 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
188285 --
188286 -- set event info as cache for other routines to refer event attributes
188287 --
188288 
188289 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
188290    l_previous_event_id := l_event_id;
188291 
188292    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
188293       (p_application_id           => p_application_id
188294       ,p_primary_ledger_id        => p_primary_ledger_id
188295       ,p_base_ledger_id           => p_base_ledger_id
188296       ,p_target_ledger_id         => p_target_ledger_id
188297       ,p_entity_id                => l_array_entity_id(Idx)
188298       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
188299       ,p_entity_code              => l_array_entity_code(Idx)
188300       ,p_transaction_num          => l_array_transaction_num(Idx)
188301       ,p_event_id                 => l_array_event_id(Idx)
188302       ,p_event_class_code         => l_array_class_code(Idx)
188303       ,p_event_type_code          => l_array_event_type(Idx)
188304       ,p_event_number             => l_array_event_number(Idx)
188305       ,p_event_date               => l_array_event_date(Idx)
188306       ,p_transaction_date         => l_array_transaction_date(Idx)
188310       ,p_reference_num_4          => l_array_reference_num_4(Idx)
188307       ,p_reference_num_1          => l_array_reference_num_1(Idx)
188308       ,p_reference_num_2          => l_array_reference_num_2(Idx)
188309       ,p_reference_num_3          => l_array_reference_num_3(Idx)
188311       ,p_reference_char_1         => l_array_reference_char_1(Idx)
188312       ,p_reference_char_2         => l_array_reference_char_2(Idx)
188313       ,p_reference_char_3         => l_array_reference_char_3(Idx)
188314       ,p_reference_char_4         => l_array_reference_char_4(Idx)
188315       ,p_reference_date_1         => l_array_reference_date_1(Idx)
188316       ,p_reference_date_2         => l_array_reference_date_2(Idx)
188317       ,p_reference_date_3         => l_array_reference_date_3(Idx)
188318       ,p_reference_date_4         => l_array_reference_date_4(Idx)
188319       ,p_event_created_by         => l_array_event_created_by(Idx)
188320       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
188321        --
188322 END IF;
188323 
188324 
188325 
188326 --
188327 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
188328 
188329 l_acct_reversal_source := SUBSTR(l_array_source_41(Idx), 1,30);
188330 
188331 IF l_continue_with_lines THEN
188332    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
188333       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
188334 
188335       xla_accounting_err_pkg.build_message
188336          (p_appli_s_name            => 'XLA'
188337          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
188338          ,p_token_1                 => 'LINE_NUMBER'
188339          ,p_value_1                 => l_array_extract_line_num(Idx)
188340          ,p_token_2                 => 'PRODUCT_NAME'
188341          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
188342          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
188343          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
188344          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
188345 
188346    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
188347       --
188348       -- following sets the accounting attributes needed to reverse
188349       -- accounting for a distributeion
188350       --
188351 
188352       --
188353       -- 5217187
188354       --
188355       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
188356       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
188357                                        g_array_event(l_event_id).array_value_num('header_index'));
188358       --
188359       --
188360 
188361       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
188362       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_41(Idx);
188363       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
188364       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_52(Idx);
188365       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
188366       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_43(Idx);
188367       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
188368       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_53(Idx);
188369       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
188370       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_54(Idx);
188371       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
188372       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_55');
188373       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
188374       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_56(Idx);
188375       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
188376       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_57(Idx);
188377       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
188378       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_58(Idx);
188379       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
188380       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_55');
188381       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
188382       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_59(Idx);
188383       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
188384       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_60(Idx);
188385       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
188386       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_71');
188387       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
188388       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_72(Idx);
188389       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
188390       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_43(Idx);
188391       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
188392       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_74(Idx);
188393       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
188394       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_75(Idx);
188395       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
188396       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_76(Idx);
188397       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
188401 
188398       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_77(Idx);
188399       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
188400       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_78(Idx);
188402 
188403       xla_ae_lines_pkg.SetAcctReversalAttrs
188404          (p_event_id             => l_event_id
188405          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
188406          ,p_calculate_acctd_flag => l_calculate_acctd_flag
188407          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
188408    END IF;
188409 
188410    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
188411        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
188412 
188413 --
188414 AcctLineType_48 (
188415  p_application_id  => p_application_id
188416  ,p_event_id     => l_event_id
188417  ,p_calculate_acctd_flag => l_calculate_acctd_flag
188418  ,p_calculate_g_l_flag => l_calculate_g_l_flag
188419  ,p_actual_flag => l_actual_flag
188420  ,p_balance_type_code => l_balance_type_code
188421  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
188422  
188423  , p_source_1 => l_array_source_1(Idx)
188424  , p_source_9 => l_array_source_9(Idx)
188425  , p_source_18 => l_array_source_18(Idx)
188426  , p_source_21 => l_array_source_21(Idx)
188427  , p_source_21_meaning => l_array_source_21_meaning(Idx)
188428  , p_source_41 => l_array_source_41(Idx)
188429  , p_source_43 => l_array_source_43(Idx)
188430  , p_source_45 => l_array_source_45(Idx)
188431  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
188432  , p_source_47 => l_array_source_47(Idx)
188433  , p_source_48 => l_array_source_48(Idx)
188434  , p_source_49 => l_array_source_49(Idx)
188435  , p_source_50 => l_array_source_50(Idx)
188436  , p_source_51 => l_array_source_51(Idx)
188437  , p_source_52 => l_array_source_52(Idx)
188438  , p_source_53 => l_array_source_53(Idx)
188439  , p_source_54 => l_array_source_54(Idx)
188440  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
188441  , p_source_56 => l_array_source_56(Idx)
188442  , p_source_57 => l_array_source_57(Idx)
188443  , p_source_58 => l_array_source_58(Idx)
188444  , p_source_59 => l_array_source_59(Idx)
188445  , p_source_60 => l_array_source_60(Idx)
188446  , p_source_61 => l_array_source_61(Idx)
188447  , p_source_62 => l_array_source_62(Idx)
188448  , p_source_63 => l_array_source_63(Idx)
188449  , p_source_64 => l_array_source_64(Idx)
188450  , p_source_65 => l_array_source_65(Idx)
188451  , p_source_66 => l_array_source_66(Idx)
188452  , p_source_67 => l_array_source_67(Idx)
188453  , p_source_68 => l_array_source_68(Idx)
188454  , p_source_68_meaning => l_array_source_68_meaning(Idx)
188455  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
188456  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
188457  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
188458  , p_source_72 => l_array_source_72(Idx)
188459  , p_source_74 => l_array_source_74(Idx)
188460  , p_source_75 => l_array_source_75(Idx)
188461  , p_source_76 => l_array_source_76(Idx)
188462  , p_source_77 => l_array_source_77(Idx)
188463  , p_source_78 => l_array_source_78(Idx)
188464  );
188465 If(l_balance_type_code = 'A') THEN
188466   l_actual_gain_loss_ref := l_gain_or_loss_ref;
188467 END IF;
188468 
188469 --
188470 
188471 
188472 --
188473 AcctLineType_52 (
188474  p_application_id  => p_application_id
188475  ,p_event_id     => l_event_id
188476  ,p_calculate_acctd_flag => l_calculate_acctd_flag
188477  ,p_calculate_g_l_flag => l_calculate_g_l_flag
188478  ,p_actual_flag => l_actual_flag
188479  ,p_balance_type_code => l_balance_type_code
188480  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
188481  
188482  , p_source_1 => l_array_source_1(Idx)
188483  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
188484  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
188485  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
188486  , p_source_9 => l_array_source_9(Idx)
188487  , p_source_10 => l_array_source_10(Idx)
188488  , p_source_10_meaning => l_array_source_10_meaning(Idx)
188489  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
188490  , p_source_18 => l_array_source_18(Idx)
188491  , p_source_21 => l_array_source_21(Idx)
188492  , p_source_21_meaning => l_array_source_21_meaning(Idx)
188493  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
188494  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
188495  , p_source_41 => l_array_source_41(Idx)
188496  , p_source_43 => l_array_source_43(Idx)
188497  , p_source_45 => l_array_source_45(Idx)
188498  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
188499  , p_source_52 => l_array_source_52(Idx)
188500  , p_source_53 => l_array_source_53(Idx)
188501  , p_source_54 => l_array_source_54(Idx)
188502  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
188503  , p_source_56 => l_array_source_56(Idx)
188504  , p_source_57 => l_array_source_57(Idx)
188505  , p_source_58 => l_array_source_58(Idx)
188506  , p_source_59 => l_array_source_59(Idx)
188507  , p_source_60 => l_array_source_60(Idx)
188508  , p_source_65 => l_array_source_65(Idx)
188509  , p_source_66 => l_array_source_66(Idx)
188510  , p_source_67 => l_array_source_67(Idx)
188511  , p_source_68 => l_array_source_68(Idx)
188512  , p_source_68_meaning => l_array_source_68_meaning(Idx)
188513  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
188517  , p_source_74 => l_array_source_74(Idx)
188514  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
188515  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
188516  , p_source_72 => l_array_source_72(Idx)
188518  , p_source_75 => l_array_source_75(Idx)
188519  , p_source_76 => l_array_source_76(Idx)
188520  , p_source_77 => l_array_source_77(Idx)
188521  , p_source_78 => l_array_source_78(Idx)
188522  , p_source_79 => l_array_source_79(Idx)
188523  , p_source_80 => l_array_source_80(Idx)
188524  , p_source_81 => l_array_source_81(Idx)
188525  , p_source_82 => l_array_source_82(Idx)
188526  , p_source_83 => l_array_source_83(Idx)
188527  );
188528 If(l_balance_type_code = 'A') THEN
188529   l_actual_gain_loss_ref := l_gain_or_loss_ref;
188530 END IF;
188531 
188532 --
188533 
188534 
188535 --
188536 AcctLineType_56 (
188537  p_application_id  => p_application_id
188538  ,p_event_id     => l_event_id
188539  ,p_calculate_acctd_flag => l_calculate_acctd_flag
188540  ,p_calculate_g_l_flag => l_calculate_g_l_flag
188541  ,p_actual_flag => l_actual_flag
188542  ,p_balance_type_code => l_balance_type_code
188543  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
188544  
188545  , p_source_1 => l_array_source_1(Idx)
188546  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
188547  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
188548  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
188549  , p_source_9 => l_array_source_9(Idx)
188550  , p_source_10 => l_array_source_10(Idx)
188551  , p_source_10_meaning => l_array_source_10_meaning(Idx)
188552  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
188553  , p_source_18 => l_array_source_18(Idx)
188554  , p_source_21 => l_array_source_21(Idx)
188555  , p_source_21_meaning => l_array_source_21_meaning(Idx)
188556  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
188557  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
188558  , p_source_41 => l_array_source_41(Idx)
188559  , p_source_43 => l_array_source_43(Idx)
188560  , p_source_45 => l_array_source_45(Idx)
188561  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
188562  , p_source_52 => l_array_source_52(Idx)
188563  , p_source_53 => l_array_source_53(Idx)
188564  , p_source_54 => l_array_source_54(Idx)
188565  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
188566  , p_source_56 => l_array_source_56(Idx)
188567  , p_source_57 => l_array_source_57(Idx)
188568  , p_source_58 => l_array_source_58(Idx)
188569  , p_source_59 => l_array_source_59(Idx)
188570  , p_source_60 => l_array_source_60(Idx)
188571  , p_source_65 => l_array_source_65(Idx)
188572  , p_source_66 => l_array_source_66(Idx)
188573  , p_source_67 => l_array_source_67(Idx)
188574  , p_source_68 => l_array_source_68(Idx)
188575  , p_source_68_meaning => l_array_source_68_meaning(Idx)
188576  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
188577  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
188578  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
188579  , p_source_72 => l_array_source_72(Idx)
188580  , p_source_74 => l_array_source_74(Idx)
188581  , p_source_75 => l_array_source_75(Idx)
188582  , p_source_76 => l_array_source_76(Idx)
188583  , p_source_77 => l_array_source_77(Idx)
188584  , p_source_78 => l_array_source_78(Idx)
188585  , p_source_79 => l_array_source_79(Idx)
188586  , p_source_80 => l_array_source_80(Idx)
188587  , p_source_81 => l_array_source_81(Idx)
188588  , p_source_82 => l_array_source_82(Idx)
188589  , p_source_83 => l_array_source_83(Idx)
188590  , p_source_84 => l_array_source_84(Idx)
188591  , p_source_84_meaning => l_array_source_84_meaning(Idx)
188592  );
188593 If(l_balance_type_code = 'A') THEN
188594   l_actual_gain_loss_ref := l_gain_or_loss_ref;
188595 END IF;
188596 
188597 --
188598 
188599 
188600 --
188601 AcctLineType_60 (
188602  p_application_id  => p_application_id
188603  ,p_event_id     => l_event_id
188604  ,p_calculate_acctd_flag => l_calculate_acctd_flag
188605  ,p_calculate_g_l_flag => l_calculate_g_l_flag
188606  ,p_actual_flag => l_actual_flag
188607  ,p_balance_type_code => l_balance_type_code
188608  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
188609  
188610  , p_source_21 => l_array_source_21(Idx)
188611  , p_source_21_meaning => l_array_source_21_meaning(Idx)
188612  , p_source_41 => l_array_source_41(Idx)
188613  , p_source_43 => l_array_source_43(Idx)
188614  , p_source_45 => l_array_source_45(Idx)
188615  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
188616  , p_source_52 => l_array_source_52(Idx)
188617  , p_source_53 => l_array_source_53(Idx)
188618  , p_source_54 => l_array_source_54(Idx)
188619  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
188620  , p_source_56 => l_array_source_56(Idx)
188621  , p_source_57 => l_array_source_57(Idx)
188622  , p_source_58 => l_array_source_58(Idx)
188623  , p_source_59 => l_array_source_59(Idx)
188624  , p_source_60 => l_array_source_60(Idx)
188625  , p_source_65 => l_array_source_65(Idx)
188626  , p_source_66 => l_array_source_66(Idx)
188627  , p_source_67 => l_array_source_67(Idx)
188628  , p_source_68 => l_array_source_68(Idx)
188629  , p_source_68_meaning => l_array_source_68_meaning(Idx)
188630  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
188631  , p_source_72 => l_array_source_72(Idx)
188632  , p_source_74 => l_array_source_74(Idx)
188633  , p_source_75 => l_array_source_75(Idx)
188634  , p_source_76 => l_array_source_76(Idx)
188638  , p_source_80 => l_array_source_80(Idx)
188635  , p_source_77 => l_array_source_77(Idx)
188636  , p_source_78 => l_array_source_78(Idx)
188637  , p_source_79 => l_array_source_79(Idx)
188639  , p_source_81 => l_array_source_81(Idx)
188640  , p_source_82 => l_array_source_82(Idx)
188641  , p_source_83 => l_array_source_83(Idx)
188642  , p_source_84 => l_array_source_84(Idx)
188643  , p_source_84_meaning => l_array_source_84_meaning(Idx)
188644  , p_source_85 => l_array_source_85(Idx)
188645  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
188646  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
188647  , p_source_87 => l_array_source_87(Idx)
188648  , p_source_87_meaning => l_array_source_87_meaning(Idx)
188649  , p_source_88 => l_array_source_88(Idx)
188650  );
188651 If(l_balance_type_code = 'A') THEN
188652   l_actual_gain_loss_ref := l_gain_or_loss_ref;
188653 END IF;
188654 
188655 --
188656 
188657 
188658 --
188659 AcctLineType_113 (
188660  p_application_id  => p_application_id
188661  ,p_event_id     => l_event_id
188662  ,p_calculate_acctd_flag => l_calculate_acctd_flag
188663  ,p_calculate_g_l_flag => l_calculate_g_l_flag
188664  ,p_actual_flag => l_actual_flag
188665  ,p_balance_type_code => l_balance_type_code
188666  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
188667  
188668  , p_source_1 => l_array_source_1(Idx)
188669  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
188670  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
188671  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
188672  , p_source_9 => l_array_source_9(Idx)
188673  , p_source_10 => l_array_source_10(Idx)
188674  , p_source_10_meaning => l_array_source_10_meaning(Idx)
188675  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
188676  , p_source_18 => l_array_source_18(Idx)
188677  , p_source_21 => l_array_source_21(Idx)
188678  , p_source_21_meaning => l_array_source_21_meaning(Idx)
188679  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
188680  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
188681  , p_source_41 => l_array_source_41(Idx)
188682  , p_source_43 => l_array_source_43(Idx)
188683  , p_source_45 => l_array_source_45(Idx)
188684  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
188685  , p_source_52 => l_array_source_52(Idx)
188686  , p_source_53 => l_array_source_53(Idx)
188687  , p_source_54 => l_array_source_54(Idx)
188688  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
188689  , p_source_56 => l_array_source_56(Idx)
188690  , p_source_57 => l_array_source_57(Idx)
188691  , p_source_58 => l_array_source_58(Idx)
188692  , p_source_59 => l_array_source_59(Idx)
188693  , p_source_60 => l_array_source_60(Idx)
188694  , p_source_61 => l_array_source_61(Idx)
188695  , p_source_65 => l_array_source_65(Idx)
188696  , p_source_66 => l_array_source_66(Idx)
188697  , p_source_67 => l_array_source_67(Idx)
188698  , p_source_68 => l_array_source_68(Idx)
188699  , p_source_68_meaning => l_array_source_68_meaning(Idx)
188700  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
188701  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
188702  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
188703  , p_source_72 => l_array_source_72(Idx)
188704  , p_source_74 => l_array_source_74(Idx)
188705  , p_source_75 => l_array_source_75(Idx)
188706  , p_source_76 => l_array_source_76(Idx)
188707  , p_source_77 => l_array_source_77(Idx)
188708  , p_source_78 => l_array_source_78(Idx)
188709  , p_source_79 => l_array_source_79(Idx)
188710  , p_source_80 => l_array_source_80(Idx)
188711  , p_source_81 => l_array_source_81(Idx)
188712  , p_source_82 => l_array_source_82(Idx)
188713  , p_source_83 => l_array_source_83(Idx)
188714  , p_source_84 => l_array_source_84(Idx)
188715  , p_source_84_meaning => l_array_source_84_meaning(Idx)
188716  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
188717  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
188718  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
188719  );
188720 If(l_balance_type_code = 'A') THEN
188721   l_actual_gain_loss_ref := l_gain_or_loss_ref;
188722 END IF;
188723 
188724 --
188725 
188726 
188727 --
188728 AcctLineType_114 (
188729  p_application_id  => p_application_id
188730  ,p_event_id     => l_event_id
188731  ,p_calculate_acctd_flag => l_calculate_acctd_flag
188732  ,p_calculate_g_l_flag => l_calculate_g_l_flag
188733  ,p_actual_flag => l_actual_flag
188734  ,p_balance_type_code => l_balance_type_code
188735  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
188736  
188737  , p_source_21 => l_array_source_21(Idx)
188738  , p_source_21_meaning => l_array_source_21_meaning(Idx)
188739  , p_source_41 => l_array_source_41(Idx)
188740  , p_source_43 => l_array_source_43(Idx)
188741  , p_source_45 => l_array_source_45(Idx)
188742  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
188743  , p_source_52 => l_array_source_52(Idx)
188744  , p_source_53 => l_array_source_53(Idx)
188745  , p_source_54 => l_array_source_54(Idx)
188746  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
188747  , p_source_56 => l_array_source_56(Idx)
188748  , p_source_57 => l_array_source_57(Idx)
188749  , p_source_58 => l_array_source_58(Idx)
188750  , p_source_59 => l_array_source_59(Idx)
188751  , p_source_60 => l_array_source_60(Idx)
188752  , p_source_65 => l_array_source_65(Idx)
188753  , p_source_66 => l_array_source_66(Idx)
188757  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
188754  , p_source_67 => l_array_source_67(Idx)
188755  , p_source_68 => l_array_source_68(Idx)
188756  , p_source_68_meaning => l_array_source_68_meaning(Idx)
188758  , p_source_72 => l_array_source_72(Idx)
188759  , p_source_74 => l_array_source_74(Idx)
188760  , p_source_75 => l_array_source_75(Idx)
188761  , p_source_76 => l_array_source_76(Idx)
188762  , p_source_77 => l_array_source_77(Idx)
188763  , p_source_78 => l_array_source_78(Idx)
188764  , p_source_79 => l_array_source_79(Idx)
188765  , p_source_80 => l_array_source_80(Idx)
188766  , p_source_81 => l_array_source_81(Idx)
188767  , p_source_82 => l_array_source_82(Idx)
188768  , p_source_83 => l_array_source_83(Idx)
188769  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
188770  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
188771  , p_source_87 => l_array_source_87(Idx)
188772  , p_source_87_meaning => l_array_source_87_meaning(Idx)
188773  , p_source_143 => l_array_source_143(Idx)
188774  , p_source_144 => l_array_source_144(Idx)
188775  );
188776 If(l_balance_type_code = 'A') THEN
188777   l_actual_gain_loss_ref := l_gain_or_loss_ref;
188778 END IF;
188779 
188780 --
188781 
188782 
188783 --
188784 AcctLineType_126 (
188785  p_application_id  => p_application_id
188786  ,p_event_id     => l_event_id
188787  ,p_calculate_acctd_flag => l_calculate_acctd_flag
188788  ,p_calculate_g_l_flag => l_calculate_g_l_flag
188789  ,p_actual_flag => l_actual_flag
188790  ,p_balance_type_code => l_balance_type_code
188791  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
188792  
188793  , p_source_1 => l_array_source_1(Idx)
188794  , p_source_9 => l_array_source_9(Idx)
188795  , p_source_18 => l_array_source_18(Idx)
188796  , p_source_21 => l_array_source_21(Idx)
188797  , p_source_21_meaning => l_array_source_21_meaning(Idx)
188798  , p_source_41 => l_array_source_41(Idx)
188799  , p_source_43 => l_array_source_43(Idx)
188800  , p_source_45 => l_array_source_45(Idx)
188801  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
188802  , p_source_52 => l_array_source_52(Idx)
188803  , p_source_53 => l_array_source_53(Idx)
188804  , p_source_54 => l_array_source_54(Idx)
188805  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
188806  , p_source_56 => l_array_source_56(Idx)
188807  , p_source_57 => l_array_source_57(Idx)
188808  , p_source_58 => l_array_source_58(Idx)
188809  , p_source_59 => l_array_source_59(Idx)
188810  , p_source_60 => l_array_source_60(Idx)
188811  , p_source_61 => l_array_source_61(Idx)
188812  , p_source_65 => l_array_source_65(Idx)
188813  , p_source_66 => l_array_source_66(Idx)
188814  , p_source_67 => l_array_source_67(Idx)
188815  , p_source_68 => l_array_source_68(Idx)
188816  , p_source_68_meaning => l_array_source_68_meaning(Idx)
188817  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
188818  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
188819  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
188820  , p_source_72 => l_array_source_72(Idx)
188821  , p_source_74 => l_array_source_74(Idx)
188822  , p_source_75 => l_array_source_75(Idx)
188823  , p_source_76 => l_array_source_76(Idx)
188824  , p_source_77 => l_array_source_77(Idx)
188825  , p_source_78 => l_array_source_78(Idx)
188826  , p_source_79 => l_array_source_79(Idx)
188827  , p_source_80 => l_array_source_80(Idx)
188828  , p_source_81 => l_array_source_81(Idx)
188829  , p_source_82 => l_array_source_82(Idx)
188830  , p_source_83 => l_array_source_83(Idx)
188831  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
188832  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
188833  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
188834  );
188835 If(l_balance_type_code = 'A') THEN
188836   l_actual_gain_loss_ref := l_gain_or_loss_ref;
188837 END IF;
188838 
188839 --
188840 
188841 
188842 --
188843 AcctLineType_127 (
188844  p_application_id  => p_application_id
188845  ,p_event_id     => l_event_id
188846  ,p_calculate_acctd_flag => l_calculate_acctd_flag
188847  ,p_calculate_g_l_flag => l_calculate_g_l_flag
188848  ,p_actual_flag => l_actual_flag
188849  ,p_balance_type_code => l_balance_type_code
188850  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
188851  
188852  , p_source_21 => l_array_source_21(Idx)
188853  , p_source_21_meaning => l_array_source_21_meaning(Idx)
188854  , p_source_41 => l_array_source_41(Idx)
188855  , p_source_43 => l_array_source_43(Idx)
188856  , p_source_45 => l_array_source_45(Idx)
188857  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
188858  , p_source_52 => l_array_source_52(Idx)
188859  , p_source_53 => l_array_source_53(Idx)
188860  , p_source_54 => l_array_source_54(Idx)
188861  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
188862  , p_source_56 => l_array_source_56(Idx)
188863  , p_source_57 => l_array_source_57(Idx)
188864  , p_source_58 => l_array_source_58(Idx)
188865  , p_source_59 => l_array_source_59(Idx)
188866  , p_source_60 => l_array_source_60(Idx)
188867  , p_source_65 => l_array_source_65(Idx)
188868  , p_source_66 => l_array_source_66(Idx)
188869  , p_source_67 => l_array_source_67(Idx)
188870  , p_source_68 => l_array_source_68(Idx)
188871  , p_source_68_meaning => l_array_source_68_meaning(Idx)
188872  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
188873  , p_source_72 => l_array_source_72(Idx)
188874  , p_source_74 => l_array_source_74(Idx)
188875  , p_source_75 => l_array_source_75(Idx)
188876  , p_source_76 => l_array_source_76(Idx)
188877  , p_source_77 => l_array_source_77(Idx)
188878  , p_source_78 => l_array_source_78(Idx)
188882  , p_source_82 => l_array_source_82(Idx)
188879  , p_source_79 => l_array_source_79(Idx)
188880  , p_source_80 => l_array_source_80(Idx)
188881  , p_source_81 => l_array_source_81(Idx)
188883  , p_source_83 => l_array_source_83(Idx)
188884  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
188885  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
188886  , p_source_87 => l_array_source_87(Idx)
188887  , p_source_87_meaning => l_array_source_87_meaning(Idx)
188888  , p_source_143 => l_array_source_143(Idx)
188889  , p_source_144 => l_array_source_144(Idx)
188890  );
188891 If(l_balance_type_code = 'A') THEN
188892   l_actual_gain_loss_ref := l_gain_or_loss_ref;
188893 END IF;
188894 
188895 --
188896 
188897 
188898 --
188899 AcctLineType_152 (
188900  p_application_id  => p_application_id
188901  ,p_event_id     => l_event_id
188902  ,p_calculate_acctd_flag => l_calculate_acctd_flag
188903  ,p_calculate_g_l_flag => l_calculate_g_l_flag
188904  ,p_actual_flag => l_actual_flag
188905  ,p_balance_type_code => l_balance_type_code
188906  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
188907  
188908  , p_source_1 => l_array_source_1(Idx)
188909  , p_source_9 => l_array_source_9(Idx)
188910  , p_source_18 => l_array_source_18(Idx)
188911  , p_source_21 => l_array_source_21(Idx)
188912  , p_source_21_meaning => l_array_source_21_meaning(Idx)
188913  , p_source_41 => l_array_source_41(Idx)
188914  , p_source_43 => l_array_source_43(Idx)
188915  , p_source_45 => l_array_source_45(Idx)
188916  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
188917  , p_source_52 => l_array_source_52(Idx)
188918  , p_source_53 => l_array_source_53(Idx)
188919  , p_source_54 => l_array_source_54(Idx)
188920  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
188921  , p_source_56 => l_array_source_56(Idx)
188922  , p_source_57 => l_array_source_57(Idx)
188923  , p_source_58 => l_array_source_58(Idx)
188924  , p_source_59 => l_array_source_59(Idx)
188925  , p_source_60 => l_array_source_60(Idx)
188926  , p_source_61 => l_array_source_61(Idx)
188927  , p_source_65 => l_array_source_65(Idx)
188928  , p_source_66 => l_array_source_66(Idx)
188929  , p_source_67 => l_array_source_67(Idx)
188930  , p_source_68 => l_array_source_68(Idx)
188931  , p_source_68_meaning => l_array_source_68_meaning(Idx)
188932  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
188933  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
188934  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
188935  , p_source_72 => l_array_source_72(Idx)
188936  , p_source_74 => l_array_source_74(Idx)
188937  , p_source_75 => l_array_source_75(Idx)
188938  , p_source_76 => l_array_source_76(Idx)
188939  , p_source_77 => l_array_source_77(Idx)
188940  , p_source_78 => l_array_source_78(Idx)
188941  , p_source_79 => l_array_source_79(Idx)
188942  , p_source_80 => l_array_source_80(Idx)
188943  , p_source_81 => l_array_source_81(Idx)
188944  , p_source_82 => l_array_source_82(Idx)
188945  , p_source_83 => l_array_source_83(Idx)
188946  , p_source_84 => l_array_source_84(Idx)
188947  , p_source_84_meaning => l_array_source_84_meaning(Idx)
188948  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
188949  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
188950  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
188951  );
188952 If(l_balance_type_code = 'A') THEN
188953   l_actual_gain_loss_ref := l_gain_or_loss_ref;
188954 END IF;
188955 
188956 --
188957 
188958 
188959 --
188960 AcctLineType_153 (
188961  p_application_id  => p_application_id
188962  ,p_event_id     => l_event_id
188963  ,p_calculate_acctd_flag => l_calculate_acctd_flag
188964  ,p_calculate_g_l_flag => l_calculate_g_l_flag
188965  ,p_actual_flag => l_actual_flag
188966  ,p_balance_type_code => l_balance_type_code
188967  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
188968  
188969  , p_source_21 => l_array_source_21(Idx)
188970  , p_source_21_meaning => l_array_source_21_meaning(Idx)
188971  , p_source_41 => l_array_source_41(Idx)
188972  , p_source_43 => l_array_source_43(Idx)
188973  , p_source_45 => l_array_source_45(Idx)
188974  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
188975  , p_source_52 => l_array_source_52(Idx)
188976  , p_source_53 => l_array_source_53(Idx)
188977  , p_source_54 => l_array_source_54(Idx)
188978  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
188979  , p_source_56 => l_array_source_56(Idx)
188980  , p_source_57 => l_array_source_57(Idx)
188981  , p_source_58 => l_array_source_58(Idx)
188982  , p_source_59 => l_array_source_59(Idx)
188983  , p_source_60 => l_array_source_60(Idx)
188984  , p_source_65 => l_array_source_65(Idx)
188985  , p_source_66 => l_array_source_66(Idx)
188986  , p_source_67 => l_array_source_67(Idx)
188987  , p_source_68 => l_array_source_68(Idx)
188988  , p_source_68_meaning => l_array_source_68_meaning(Idx)
188989  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
188990  , p_source_72 => l_array_source_72(Idx)
188991  , p_source_74 => l_array_source_74(Idx)
188992  , p_source_75 => l_array_source_75(Idx)
188993  , p_source_76 => l_array_source_76(Idx)
188994  , p_source_77 => l_array_source_77(Idx)
188995  , p_source_78 => l_array_source_78(Idx)
188996  , p_source_79 => l_array_source_79(Idx)
188997  , p_source_80 => l_array_source_80(Idx)
188998  , p_source_81 => l_array_source_81(Idx)
188999  , p_source_82 => l_array_source_82(Idx)
189000  , p_source_83 => l_array_source_83(Idx)
189001  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
189002  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
189006  , p_source_144 => l_array_source_144(Idx)
189003  , p_source_87 => l_array_source_87(Idx)
189004  , p_source_87_meaning => l_array_source_87_meaning(Idx)
189005  , p_source_143 => l_array_source_143(Idx)
189007  );
189008 If(l_balance_type_code = 'A') THEN
189009   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189010 END IF;
189011 
189012 --
189013 
189014 
189015 --
189016 AcctLineType_160 (
189017  p_application_id  => p_application_id
189018  ,p_event_id     => l_event_id
189019  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189020  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189021  ,p_actual_flag => l_actual_flag
189022  ,p_balance_type_code => l_balance_type_code
189023  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189024  
189025  , p_source_1 => l_array_source_1(Idx)
189026  , p_source_9 => l_array_source_9(Idx)
189027  , p_source_18 => l_array_source_18(Idx)
189028  , p_source_21 => l_array_source_21(Idx)
189029  , p_source_21_meaning => l_array_source_21_meaning(Idx)
189030  , p_source_41 => l_array_source_41(Idx)
189031  , p_source_43 => l_array_source_43(Idx)
189032  , p_source_45 => l_array_source_45(Idx)
189033  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189034  , p_source_52 => l_array_source_52(Idx)
189035  , p_source_53 => l_array_source_53(Idx)
189036  , p_source_54 => l_array_source_54(Idx)
189037  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
189038  , p_source_56 => l_array_source_56(Idx)
189039  , p_source_57 => l_array_source_57(Idx)
189040  , p_source_58 => l_array_source_58(Idx)
189041  , p_source_59 => l_array_source_59(Idx)
189042  , p_source_60 => l_array_source_60(Idx)
189043  , p_source_61 => l_array_source_61(Idx)
189044  , p_source_65 => l_array_source_65(Idx)
189045  , p_source_66 => l_array_source_66(Idx)
189046  , p_source_67 => l_array_source_67(Idx)
189047  , p_source_68 => l_array_source_68(Idx)
189048  , p_source_68_meaning => l_array_source_68_meaning(Idx)
189049  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
189050  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
189051  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
189052  , p_source_72 => l_array_source_72(Idx)
189053  , p_source_74 => l_array_source_74(Idx)
189054  , p_source_75 => l_array_source_75(Idx)
189055  , p_source_76 => l_array_source_76(Idx)
189056  , p_source_77 => l_array_source_77(Idx)
189057  , p_source_78 => l_array_source_78(Idx)
189058  , p_source_79 => l_array_source_79(Idx)
189059  , p_source_80 => l_array_source_80(Idx)
189060  , p_source_81 => l_array_source_81(Idx)
189061  , p_source_82 => l_array_source_82(Idx)
189062  , p_source_83 => l_array_source_83(Idx)
189063  , p_source_84 => l_array_source_84(Idx)
189064  , p_source_84_meaning => l_array_source_84_meaning(Idx)
189065  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
189066  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
189067  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
189068  );
189069 If(l_balance_type_code = 'A') THEN
189070   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189071 END IF;
189072 
189073 --
189074 
189075 
189076 --
189077 AcctLineType_161 (
189078  p_application_id  => p_application_id
189079  ,p_event_id     => l_event_id
189080  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189081  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189082  ,p_actual_flag => l_actual_flag
189083  ,p_balance_type_code => l_balance_type_code
189084  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189085  
189086  , p_source_21 => l_array_source_21(Idx)
189087  , p_source_21_meaning => l_array_source_21_meaning(Idx)
189088  , p_source_41 => l_array_source_41(Idx)
189089  , p_source_43 => l_array_source_43(Idx)
189090  , p_source_45 => l_array_source_45(Idx)
189091  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189092  , p_source_52 => l_array_source_52(Idx)
189093  , p_source_53 => l_array_source_53(Idx)
189094  , p_source_54 => l_array_source_54(Idx)
189095  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
189096  , p_source_56 => l_array_source_56(Idx)
189097  , p_source_57 => l_array_source_57(Idx)
189098  , p_source_58 => l_array_source_58(Idx)
189099  , p_source_59 => l_array_source_59(Idx)
189100  , p_source_60 => l_array_source_60(Idx)
189101  , p_source_65 => l_array_source_65(Idx)
189102  , p_source_66 => l_array_source_66(Idx)
189103  , p_source_67 => l_array_source_67(Idx)
189104  , p_source_68 => l_array_source_68(Idx)
189105  , p_source_68_meaning => l_array_source_68_meaning(Idx)
189106  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
189107  , p_source_72 => l_array_source_72(Idx)
189108  , p_source_74 => l_array_source_74(Idx)
189109  , p_source_75 => l_array_source_75(Idx)
189110  , p_source_76 => l_array_source_76(Idx)
189111  , p_source_77 => l_array_source_77(Idx)
189112  , p_source_78 => l_array_source_78(Idx)
189113  , p_source_79 => l_array_source_79(Idx)
189114  , p_source_80 => l_array_source_80(Idx)
189115  , p_source_81 => l_array_source_81(Idx)
189116  , p_source_82 => l_array_source_82(Idx)
189117  , p_source_83 => l_array_source_83(Idx)
189118  , p_source_84 => l_array_source_84(Idx)
189119  , p_source_84_meaning => l_array_source_84_meaning(Idx)
189120  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
189121  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
189122  , p_source_87 => l_array_source_87(Idx)
189123  , p_source_87_meaning => l_array_source_87_meaning(Idx)
189124  , p_source_143 => l_array_source_143(Idx)
189125  , p_source_144 => l_array_source_144(Idx)
189126  );
189130 
189127 If(l_balance_type_code = 'A') THEN
189128   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189129 END IF;
189131 --
189132 
189133 
189134 --
189135 AcctLineType_171 (
189136  p_application_id  => p_application_id
189137  ,p_event_id     => l_event_id
189138  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189139  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189140  ,p_actual_flag => l_actual_flag
189141  ,p_balance_type_code => l_balance_type_code
189142  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189143  
189144  , p_source_1 => l_array_source_1(Idx)
189145  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
189146  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
189147  , p_source_9 => l_array_source_9(Idx)
189148  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
189149  , p_source_41 => l_array_source_41(Idx)
189150  , p_source_43 => l_array_source_43(Idx)
189151  , p_source_45 => l_array_source_45(Idx)
189152  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189153  , p_source_52 => l_array_source_52(Idx)
189154  , p_source_53 => l_array_source_53(Idx)
189155  , p_source_54 => l_array_source_54(Idx)
189156  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
189157  , p_source_56 => l_array_source_56(Idx)
189158  , p_source_57 => l_array_source_57(Idx)
189159  , p_source_58 => l_array_source_58(Idx)
189160  , p_source_59 => l_array_source_59(Idx)
189161  , p_source_60 => l_array_source_60(Idx)
189162  , p_source_61 => l_array_source_61(Idx)
189163  , p_source_65 => l_array_source_65(Idx)
189164  , p_source_66 => l_array_source_66(Idx)
189165  , p_source_67 => l_array_source_67(Idx)
189166  , p_source_68 => l_array_source_68(Idx)
189167  , p_source_68_meaning => l_array_source_68_meaning(Idx)
189168  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
189169  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
189170  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
189171  , p_source_72 => l_array_source_72(Idx)
189172  , p_source_74 => l_array_source_74(Idx)
189173  , p_source_75 => l_array_source_75(Idx)
189174  , p_source_76 => l_array_source_76(Idx)
189175  , p_source_77 => l_array_source_77(Idx)
189176  , p_source_78 => l_array_source_78(Idx)
189177  , p_source_79 => l_array_source_79(Idx)
189178  , p_source_80 => l_array_source_80(Idx)
189179  , p_source_81 => l_array_source_81(Idx)
189180  , p_source_82 => l_array_source_82(Idx)
189181  , p_source_83 => l_array_source_83(Idx)
189182  , p_source_135 => l_array_source_135(Idx)
189183  , p_source_135_meaning => l_array_source_135_meaning(Idx)
189184  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
189185  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
189186  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
189187  );
189188 If(l_balance_type_code = 'A') THEN
189189   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189190 END IF;
189191 
189192 --
189193 
189194 
189195 --
189196 AcctLineType_172 (
189197  p_application_id  => p_application_id
189198  ,p_event_id     => l_event_id
189199  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189200  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189201  ,p_actual_flag => l_actual_flag
189202  ,p_balance_type_code => l_balance_type_code
189203  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189204  
189205  , p_source_1 => l_array_source_1(Idx)
189206  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
189207  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
189208  , p_source_9 => l_array_source_9(Idx)
189209  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
189210  , p_source_41 => l_array_source_41(Idx)
189211  , p_source_43 => l_array_source_43(Idx)
189212  , p_source_45 => l_array_source_45(Idx)
189213  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189214  , p_source_52 => l_array_source_52(Idx)
189215  , p_source_53 => l_array_source_53(Idx)
189216  , p_source_54 => l_array_source_54(Idx)
189217  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
189218  , p_source_56 => l_array_source_56(Idx)
189219  , p_source_57 => l_array_source_57(Idx)
189220  , p_source_58 => l_array_source_58(Idx)
189221  , p_source_59 => l_array_source_59(Idx)
189222  , p_source_60 => l_array_source_60(Idx)
189223  , p_source_61 => l_array_source_61(Idx)
189224  , p_source_65 => l_array_source_65(Idx)
189225  , p_source_66 => l_array_source_66(Idx)
189226  , p_source_67 => l_array_source_67(Idx)
189227  , p_source_68 => l_array_source_68(Idx)
189228  , p_source_68_meaning => l_array_source_68_meaning(Idx)
189229  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
189230  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
189231  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
189232  , p_source_72 => l_array_source_72(Idx)
189233  , p_source_74 => l_array_source_74(Idx)
189234  , p_source_75 => l_array_source_75(Idx)
189235  , p_source_76 => l_array_source_76(Idx)
189236  , p_source_77 => l_array_source_77(Idx)
189237  , p_source_78 => l_array_source_78(Idx)
189238  , p_source_79 => l_array_source_79(Idx)
189239  , p_source_80 => l_array_source_80(Idx)
189240  , p_source_81 => l_array_source_81(Idx)
189241  , p_source_82 => l_array_source_82(Idx)
189242  , p_source_83 => l_array_source_83(Idx)
189243  , p_source_135 => l_array_source_135(Idx)
189244  , p_source_135_meaning => l_array_source_135_meaning(Idx)
189245  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
189246  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
189247  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
189248  );
189252 
189249 If(l_balance_type_code = 'A') THEN
189250   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189251 END IF;
189253 --
189254 
189255 
189256 --
189257 AcctLineType_173 (
189258  p_application_id  => p_application_id
189259  ,p_event_id     => l_event_id
189260  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189261  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189262  ,p_actual_flag => l_actual_flag
189263  ,p_balance_type_code => l_balance_type_code
189264  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189265  
189266  , p_source_1 => l_array_source_1(Idx)
189267  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
189268  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
189269  , p_source_9 => l_array_source_9(Idx)
189270  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
189271  , p_source_41 => l_array_source_41(Idx)
189272  , p_source_43 => l_array_source_43(Idx)
189273  , p_source_45 => l_array_source_45(Idx)
189274  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189275  , p_source_52 => l_array_source_52(Idx)
189276  , p_source_53 => l_array_source_53(Idx)
189277  , p_source_54 => l_array_source_54(Idx)
189278  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
189279  , p_source_56 => l_array_source_56(Idx)
189280  , p_source_57 => l_array_source_57(Idx)
189281  , p_source_58 => l_array_source_58(Idx)
189282  , p_source_59 => l_array_source_59(Idx)
189283  , p_source_60 => l_array_source_60(Idx)
189284  , p_source_61 => l_array_source_61(Idx)
189285  , p_source_65 => l_array_source_65(Idx)
189286  , p_source_66 => l_array_source_66(Idx)
189287  , p_source_67 => l_array_source_67(Idx)
189288  , p_source_68 => l_array_source_68(Idx)
189289  , p_source_68_meaning => l_array_source_68_meaning(Idx)
189290  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
189291  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
189292  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
189293  , p_source_72 => l_array_source_72(Idx)
189294  , p_source_74 => l_array_source_74(Idx)
189295  , p_source_75 => l_array_source_75(Idx)
189296  , p_source_76 => l_array_source_76(Idx)
189297  , p_source_77 => l_array_source_77(Idx)
189298  , p_source_78 => l_array_source_78(Idx)
189299  , p_source_79 => l_array_source_79(Idx)
189300  , p_source_80 => l_array_source_80(Idx)
189301  , p_source_81 => l_array_source_81(Idx)
189302  , p_source_82 => l_array_source_82(Idx)
189303  , p_source_83 => l_array_source_83(Idx)
189304  , p_source_135 => l_array_source_135(Idx)
189305  , p_source_135_meaning => l_array_source_135_meaning(Idx)
189306  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
189307  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
189308  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
189309  );
189310 If(l_balance_type_code = 'A') THEN
189311   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189312 END IF;
189313 
189314 --
189315 
189316 
189317 --
189318 AcctLineType_193 (
189319  p_application_id  => p_application_id
189320  ,p_event_id     => l_event_id
189321  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189322  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189323  ,p_actual_flag => l_actual_flag
189324  ,p_balance_type_code => l_balance_type_code
189325  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189326  
189327  , p_source_1 => l_array_source_1(Idx)
189328  , p_source_9 => l_array_source_9(Idx)
189329  , p_source_18 => l_array_source_18(Idx)
189330  , p_source_21 => l_array_source_21(Idx)
189331  , p_source_21_meaning => l_array_source_21_meaning(Idx)
189332  , p_source_41 => l_array_source_41(Idx)
189333  , p_source_43 => l_array_source_43(Idx)
189334  , p_source_45 => l_array_source_45(Idx)
189335  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189336  , p_source_52 => l_array_source_52(Idx)
189337  , p_source_53 => l_array_source_53(Idx)
189338  , p_source_54 => l_array_source_54(Idx)
189339  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
189340  , p_source_56 => l_array_source_56(Idx)
189341  , p_source_57 => l_array_source_57(Idx)
189342  , p_source_58 => l_array_source_58(Idx)
189343  , p_source_59 => l_array_source_59(Idx)
189344  , p_source_60 => l_array_source_60(Idx)
189345  , p_source_61 => l_array_source_61(Idx)
189346  , p_source_65 => l_array_source_65(Idx)
189347  , p_source_66 => l_array_source_66(Idx)
189348  , p_source_67 => l_array_source_67(Idx)
189349  , p_source_68 => l_array_source_68(Idx)
189350  , p_source_68_meaning => l_array_source_68_meaning(Idx)
189351  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
189352  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
189353  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
189354  , p_source_72 => l_array_source_72(Idx)
189355  , p_source_74 => l_array_source_74(Idx)
189356  , p_source_75 => l_array_source_75(Idx)
189357  , p_source_76 => l_array_source_76(Idx)
189358  , p_source_77 => l_array_source_77(Idx)
189359  , p_source_78 => l_array_source_78(Idx)
189360  , p_source_79 => l_array_source_79(Idx)
189361  , p_source_80 => l_array_source_80(Idx)
189362  , p_source_81 => l_array_source_81(Idx)
189363  , p_source_82 => l_array_source_82(Idx)
189364  , p_source_83 => l_array_source_83(Idx)
189365  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
189366  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
189367  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
189368  );
189372 
189369 If(l_balance_type_code = 'A') THEN
189370   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189371 END IF;
189373 --
189374 
189375 
189376 --
189377 AcctLineType_194 (
189378  p_application_id  => p_application_id
189379  ,p_event_id     => l_event_id
189380  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189381  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189382  ,p_actual_flag => l_actual_flag
189383  ,p_balance_type_code => l_balance_type_code
189384  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189385  
189386  , p_source_21 => l_array_source_21(Idx)
189387  , p_source_21_meaning => l_array_source_21_meaning(Idx)
189388  , p_source_41 => l_array_source_41(Idx)
189389  , p_source_43 => l_array_source_43(Idx)
189390  , p_source_45 => l_array_source_45(Idx)
189391  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189392  , p_source_52 => l_array_source_52(Idx)
189393  , p_source_53 => l_array_source_53(Idx)
189394  , p_source_54 => l_array_source_54(Idx)
189395  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
189396  , p_source_56 => l_array_source_56(Idx)
189397  , p_source_57 => l_array_source_57(Idx)
189398  , p_source_58 => l_array_source_58(Idx)
189399  , p_source_59 => l_array_source_59(Idx)
189400  , p_source_60 => l_array_source_60(Idx)
189401  , p_source_65 => l_array_source_65(Idx)
189402  , p_source_66 => l_array_source_66(Idx)
189403  , p_source_67 => l_array_source_67(Idx)
189404  , p_source_68 => l_array_source_68(Idx)
189405  , p_source_68_meaning => l_array_source_68_meaning(Idx)
189406  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
189407  , p_source_72 => l_array_source_72(Idx)
189408  , p_source_74 => l_array_source_74(Idx)
189409  , p_source_75 => l_array_source_75(Idx)
189410  , p_source_76 => l_array_source_76(Idx)
189411  , p_source_77 => l_array_source_77(Idx)
189412  , p_source_78 => l_array_source_78(Idx)
189413  , p_source_79 => l_array_source_79(Idx)
189414  , p_source_80 => l_array_source_80(Idx)
189415  , p_source_81 => l_array_source_81(Idx)
189416  , p_source_82 => l_array_source_82(Idx)
189417  , p_source_83 => l_array_source_83(Idx)
189418  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
189419  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
189420  , p_source_87 => l_array_source_87(Idx)
189421  , p_source_87_meaning => l_array_source_87_meaning(Idx)
189422  , p_source_143 => l_array_source_143(Idx)
189423  , p_source_144 => l_array_source_144(Idx)
189424  );
189425 If(l_balance_type_code = 'A') THEN
189426   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189427 END IF;
189428 
189429 --
189430 
189431 
189432 --
189433 AcctLineType_200 (
189434  p_application_id  => p_application_id
189435  ,p_event_id     => l_event_id
189436  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189437  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189438  ,p_actual_flag => l_actual_flag
189439  ,p_balance_type_code => l_balance_type_code
189440  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189441  
189442  , p_source_1 => l_array_source_1(Idx)
189443  , p_source_9 => l_array_source_9(Idx)
189444  , p_source_18 => l_array_source_18(Idx)
189445  , p_source_21 => l_array_source_21(Idx)
189446  , p_source_21_meaning => l_array_source_21_meaning(Idx)
189447  , p_source_41 => l_array_source_41(Idx)
189448  , p_source_43 => l_array_source_43(Idx)
189449  , p_source_45 => l_array_source_45(Idx)
189450  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189451  , p_source_52 => l_array_source_52(Idx)
189452  , p_source_53 => l_array_source_53(Idx)
189453  , p_source_54 => l_array_source_54(Idx)
189454  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
189455  , p_source_56 => l_array_source_56(Idx)
189456  , p_source_57 => l_array_source_57(Idx)
189457  , p_source_58 => l_array_source_58(Idx)
189458  , p_source_59 => l_array_source_59(Idx)
189459  , p_source_60 => l_array_source_60(Idx)
189460  , p_source_61 => l_array_source_61(Idx)
189461  , p_source_62 => l_array_source_62(Idx)
189462  , p_source_63 => l_array_source_63(Idx)
189463  , p_source_64 => l_array_source_64(Idx)
189464  , p_source_65 => l_array_source_65(Idx)
189465  , p_source_66 => l_array_source_66(Idx)
189466  , p_source_67 => l_array_source_67(Idx)
189467  , p_source_68 => l_array_source_68(Idx)
189468  , p_source_68_meaning => l_array_source_68_meaning(Idx)
189469  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
189470  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
189471  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
189472  , p_source_72 => l_array_source_72(Idx)
189473  , p_source_74 => l_array_source_74(Idx)
189474  , p_source_75 => l_array_source_75(Idx)
189475  , p_source_76 => l_array_source_76(Idx)
189476  , p_source_77 => l_array_source_77(Idx)
189477  , p_source_78 => l_array_source_78(Idx)
189478  , p_source_79 => l_array_source_79(Idx)
189479  , p_source_80 => l_array_source_80(Idx)
189480  , p_source_81 => l_array_source_81(Idx)
189481  , p_source_82 => l_array_source_82(Idx)
189482  , p_source_83 => l_array_source_83(Idx)
189483  , p_source_84 => l_array_source_84(Idx)
189484  , p_source_84_meaning => l_array_source_84_meaning(Idx)
189485  , p_source_135 => l_array_source_135(Idx)
189486  , p_source_135_meaning => l_array_source_135_meaning(Idx)
189487  );
189488 If(l_balance_type_code = 'A') THEN
189489   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189490 END IF;
189491 
189492 --
189493 
189494 
189495 --
189496 AcctLineType_204 (
189497  p_application_id  => p_application_id
189498  ,p_event_id     => l_event_id
189502  ,p_balance_type_code => l_balance_type_code
189499  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189500  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189501  ,p_actual_flag => l_actual_flag
189503  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189504  
189505  , p_source_1 => l_array_source_1(Idx)
189506  , p_source_9 => l_array_source_9(Idx)
189507  , p_source_18 => l_array_source_18(Idx)
189508  , p_source_21 => l_array_source_21(Idx)
189509  , p_source_21_meaning => l_array_source_21_meaning(Idx)
189510  , p_source_41 => l_array_source_41(Idx)
189511  , p_source_43 => l_array_source_43(Idx)
189512  , p_source_45 => l_array_source_45(Idx)
189513  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189514  , p_source_52 => l_array_source_52(Idx)
189515  , p_source_53 => l_array_source_53(Idx)
189516  , p_source_54 => l_array_source_54(Idx)
189517  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
189518  , p_source_56 => l_array_source_56(Idx)
189519  , p_source_57 => l_array_source_57(Idx)
189520  , p_source_58 => l_array_source_58(Idx)
189521  , p_source_59 => l_array_source_59(Idx)
189522  , p_source_60 => l_array_source_60(Idx)
189523  , p_source_61 => l_array_source_61(Idx)
189524  , p_source_65 => l_array_source_65(Idx)
189525  , p_source_66 => l_array_source_66(Idx)
189526  , p_source_67 => l_array_source_67(Idx)
189527  , p_source_68 => l_array_source_68(Idx)
189528  , p_source_68_meaning => l_array_source_68_meaning(Idx)
189529  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
189530  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
189531  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
189532  , p_source_72 => l_array_source_72(Idx)
189533  , p_source_74 => l_array_source_74(Idx)
189534  , p_source_75 => l_array_source_75(Idx)
189535  , p_source_76 => l_array_source_76(Idx)
189536  , p_source_77 => l_array_source_77(Idx)
189537  , p_source_78 => l_array_source_78(Idx)
189538  , p_source_79 => l_array_source_79(Idx)
189539  , p_source_80 => l_array_source_80(Idx)
189540  , p_source_81 => l_array_source_81(Idx)
189541  , p_source_82 => l_array_source_82(Idx)
189542  , p_source_83 => l_array_source_83(Idx)
189543  , p_source_84 => l_array_source_84(Idx)
189544  , p_source_84_meaning => l_array_source_84_meaning(Idx)
189545  , p_source_135 => l_array_source_135(Idx)
189546  , p_source_135_meaning => l_array_source_135_meaning(Idx)
189547  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
189548  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
189549  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
189550  );
189551 If(l_balance_type_code = 'A') THEN
189552   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189553 END IF;
189554 
189555 --
189556 
189557 
189558 --
189559 AcctLineType_205 (
189560  p_application_id  => p_application_id
189561  ,p_event_id     => l_event_id
189562  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189563  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189564  ,p_actual_flag => l_actual_flag
189565  ,p_balance_type_code => l_balance_type_code
189566  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189567  
189568  , p_source_21 => l_array_source_21(Idx)
189569  , p_source_21_meaning => l_array_source_21_meaning(Idx)
189570  , p_source_41 => l_array_source_41(Idx)
189571  , p_source_43 => l_array_source_43(Idx)
189572  , p_source_45 => l_array_source_45(Idx)
189573  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189574  , p_source_52 => l_array_source_52(Idx)
189575  , p_source_53 => l_array_source_53(Idx)
189576  , p_source_54 => l_array_source_54(Idx)
189577  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
189578  , p_source_56 => l_array_source_56(Idx)
189579  , p_source_57 => l_array_source_57(Idx)
189580  , p_source_58 => l_array_source_58(Idx)
189581  , p_source_59 => l_array_source_59(Idx)
189582  , p_source_60 => l_array_source_60(Idx)
189583  , p_source_65 => l_array_source_65(Idx)
189584  , p_source_66 => l_array_source_66(Idx)
189585  , p_source_67 => l_array_source_67(Idx)
189586  , p_source_68 => l_array_source_68(Idx)
189587  , p_source_68_meaning => l_array_source_68_meaning(Idx)
189588  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
189589  , p_source_72 => l_array_source_72(Idx)
189590  , p_source_74 => l_array_source_74(Idx)
189591  , p_source_75 => l_array_source_75(Idx)
189592  , p_source_76 => l_array_source_76(Idx)
189593  , p_source_77 => l_array_source_77(Idx)
189594  , p_source_78 => l_array_source_78(Idx)
189595  , p_source_79 => l_array_source_79(Idx)
189596  , p_source_80 => l_array_source_80(Idx)
189597  , p_source_81 => l_array_source_81(Idx)
189598  , p_source_82 => l_array_source_82(Idx)
189599  , p_source_83 => l_array_source_83(Idx)
189600  , p_source_84 => l_array_source_84(Idx)
189601  , p_source_84_meaning => l_array_source_84_meaning(Idx)
189602  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
189603  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
189604  , p_source_87 => l_array_source_87(Idx)
189605  , p_source_87_meaning => l_array_source_87_meaning(Idx)
189606  , p_source_135 => l_array_source_135(Idx)
189607  , p_source_135_meaning => l_array_source_135_meaning(Idx)
189608  , p_source_143 => l_array_source_143(Idx)
189609  , p_source_144 => l_array_source_144(Idx)
189610  );
189611 If(l_balance_type_code = 'A') THEN
189612   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189613 END IF;
189614 
189615 --
189616 
189617 
189618 --
189619 AcctLineType_217 (
189620  p_application_id  => p_application_id
189621  ,p_event_id     => l_event_id
189622  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189623  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189624  ,p_actual_flag => l_actual_flag
189628  , p_source_21 => l_array_source_21(Idx)
189625  ,p_balance_type_code => l_balance_type_code
189626  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189627  
189629  , p_source_21_meaning => l_array_source_21_meaning(Idx)
189630  , p_source_41 => l_array_source_41(Idx)
189631  , p_source_43 => l_array_source_43(Idx)
189632  , p_source_45 => l_array_source_45(Idx)
189633  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189634  , p_source_52 => l_array_source_52(Idx)
189635  , p_source_53 => l_array_source_53(Idx)
189636  , p_source_54 => l_array_source_54(Idx)
189637  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
189638  , p_source_56 => l_array_source_56(Idx)
189639  , p_source_57 => l_array_source_57(Idx)
189640  , p_source_58 => l_array_source_58(Idx)
189641  , p_source_59 => l_array_source_59(Idx)
189642  , p_source_60 => l_array_source_60(Idx)
189643  , p_source_65 => l_array_source_65(Idx)
189644  , p_source_66 => l_array_source_66(Idx)
189645  , p_source_67 => l_array_source_67(Idx)
189646  , p_source_68 => l_array_source_68(Idx)
189647  , p_source_68_meaning => l_array_source_68_meaning(Idx)
189648  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
189649  , p_source_72 => l_array_source_72(Idx)
189650  , p_source_74 => l_array_source_74(Idx)
189651  , p_source_75 => l_array_source_75(Idx)
189652  , p_source_76 => l_array_source_76(Idx)
189653  , p_source_77 => l_array_source_77(Idx)
189654  , p_source_78 => l_array_source_78(Idx)
189655  , p_source_79 => l_array_source_79(Idx)
189656  , p_source_80 => l_array_source_80(Idx)
189657  , p_source_81 => l_array_source_81(Idx)
189658  , p_source_82 => l_array_source_82(Idx)
189659  , p_source_83 => l_array_source_83(Idx)
189660  , p_source_84 => l_array_source_84(Idx)
189661  , p_source_84_meaning => l_array_source_84_meaning(Idx)
189662  , p_source_85 => l_array_source_85(Idx)
189663  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
189664  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
189665  , p_source_87 => l_array_source_87(Idx)
189666  , p_source_87_meaning => l_array_source_87_meaning(Idx)
189667  , p_source_161 => l_array_source_161(Idx)
189668  , p_source_162 => l_array_source_162(Idx)
189669  );
189670 If(l_balance_type_code = 'A') THEN
189671   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189672 END IF;
189673 
189674 --
189675 
189676 
189677 --
189678 AcctLineType_222 (
189679  p_application_id  => p_application_id
189680  ,p_event_id     => l_event_id
189681  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189682  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189683  ,p_actual_flag => l_actual_flag
189684  ,p_balance_type_code => l_balance_type_code
189685  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189686  
189687  , p_source_1 => l_array_source_1(Idx)
189688  , p_source_9 => l_array_source_9(Idx)
189689  , p_source_18 => l_array_source_18(Idx)
189690  , p_source_21 => l_array_source_21(Idx)
189691  , p_source_21_meaning => l_array_source_21_meaning(Idx)
189692  , p_source_41 => l_array_source_41(Idx)
189693  , p_source_43 => l_array_source_43(Idx)
189694  , p_source_45 => l_array_source_45(Idx)
189695  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189696  , p_source_52 => l_array_source_52(Idx)
189697  , p_source_53 => l_array_source_53(Idx)
189698  , p_source_54 => l_array_source_54(Idx)
189699  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
189700  , p_source_56 => l_array_source_56(Idx)
189701  , p_source_57 => l_array_source_57(Idx)
189702  , p_source_58 => l_array_source_58(Idx)
189703  , p_source_59 => l_array_source_59(Idx)
189704  , p_source_60 => l_array_source_60(Idx)
189705  , p_source_61 => l_array_source_61(Idx)
189706  , p_source_65 => l_array_source_65(Idx)
189707  , p_source_66 => l_array_source_66(Idx)
189708  , p_source_67 => l_array_source_67(Idx)
189709  , p_source_68 => l_array_source_68(Idx)
189710  , p_source_68_meaning => l_array_source_68_meaning(Idx)
189711  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
189712  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
189713  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
189714  , p_source_72 => l_array_source_72(Idx)
189715  , p_source_74 => l_array_source_74(Idx)
189716  , p_source_75 => l_array_source_75(Idx)
189717  , p_source_76 => l_array_source_76(Idx)
189718  , p_source_77 => l_array_source_77(Idx)
189719  , p_source_78 => l_array_source_78(Idx)
189720  , p_source_79 => l_array_source_79(Idx)
189721  , p_source_80 => l_array_source_80(Idx)
189722  , p_source_81 => l_array_source_81(Idx)
189723  , p_source_82 => l_array_source_82(Idx)
189724  , p_source_83 => l_array_source_83(Idx)
189725  , p_source_135 => l_array_source_135(Idx)
189726  , p_source_135_meaning => l_array_source_135_meaning(Idx)
189727  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
189728  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
189729  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
189730  );
189731 If(l_balance_type_code = 'A') THEN
189732   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189733 END IF;
189734 
189735 --
189736 
189737 
189738 --
189739 AcctLineType_223 (
189740  p_application_id  => p_application_id
189741  ,p_event_id     => l_event_id
189742  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189743  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189744  ,p_actual_flag => l_actual_flag
189745  ,p_balance_type_code => l_balance_type_code
189746  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189747  
189748  , p_source_21 => l_array_source_21(Idx)
189749  , p_source_21_meaning => l_array_source_21_meaning(Idx)
189750  , p_source_41 => l_array_source_41(Idx)
189751  , p_source_43 => l_array_source_43(Idx)
189752  , p_source_45 => l_array_source_45(Idx)
189753  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189754  , p_source_52 => l_array_source_52(Idx)
189755  , p_source_53 => l_array_source_53(Idx)
189756  , p_source_54 => l_array_source_54(Idx)
189757  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
189758  , p_source_56 => l_array_source_56(Idx)
189759  , p_source_57 => l_array_source_57(Idx)
189760  , p_source_58 => l_array_source_58(Idx)
189761  , p_source_59 => l_array_source_59(Idx)
189762  , p_source_60 => l_array_source_60(Idx)
189763  , p_source_65 => l_array_source_65(Idx)
189764  , p_source_66 => l_array_source_66(Idx)
189765  , p_source_67 => l_array_source_67(Idx)
189766  , p_source_68 => l_array_source_68(Idx)
189767  , p_source_68_meaning => l_array_source_68_meaning(Idx)
189768  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
189769  , p_source_72 => l_array_source_72(Idx)
189770  , p_source_74 => l_array_source_74(Idx)
189771  , p_source_75 => l_array_source_75(Idx)
189772  , p_source_76 => l_array_source_76(Idx)
189773  , p_source_77 => l_array_source_77(Idx)
189774  , p_source_78 => l_array_source_78(Idx)
189775  , p_source_79 => l_array_source_79(Idx)
189776  , p_source_80 => l_array_source_80(Idx)
189777  , p_source_81 => l_array_source_81(Idx)
189778  , p_source_82 => l_array_source_82(Idx)
189779  , p_source_83 => l_array_source_83(Idx)
189780  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
189781  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
189782  , p_source_87 => l_array_source_87(Idx)
189783  , p_source_87_meaning => l_array_source_87_meaning(Idx)
189784  , p_source_135 => l_array_source_135(Idx)
189785  , p_source_135_meaning => l_array_source_135_meaning(Idx)
189786  , p_source_143 => l_array_source_143(Idx)
189787  , p_source_144 => l_array_source_144(Idx)
189788  );
189789 If(l_balance_type_code = 'A') THEN
189790   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189791 END IF;
189792 
189793 --
189794 
189795 
189796 --
189797 AcctLineType_230 (
189798  p_application_id  => p_application_id
189799  ,p_event_id     => l_event_id
189800  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189801  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189802  ,p_actual_flag => l_actual_flag
189803  ,p_balance_type_code => l_balance_type_code
189804  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189805  
189806  , p_source_1 => l_array_source_1(Idx)
189807  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
189808  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
189809  , p_source_9 => l_array_source_9(Idx)
189810  , p_source_18 => l_array_source_18(Idx)
189811  , p_source_21 => l_array_source_21(Idx)
189812  , p_source_21_meaning => l_array_source_21_meaning(Idx)
189813  , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
189814  , p_source_30 => l_array_source_30(Idx)
189815  , p_source_41 => l_array_source_41(Idx)
189816  , p_source_43 => l_array_source_43(Idx)
189817  , p_source_45 => l_array_source_45(Idx)
189818  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189819  , p_source_52 => l_array_source_52(Idx)
189820  , p_source_53 => l_array_source_53(Idx)
189821  , p_source_54 => l_array_source_54(Idx)
189822  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
189823  , p_source_56 => l_array_source_56(Idx)
189824  , p_source_57 => l_array_source_57(Idx)
189825  , p_source_58 => l_array_source_58(Idx)
189826  , p_source_59 => l_array_source_59(Idx)
189827  , p_source_60 => l_array_source_60(Idx)
189828  , p_source_61 => l_array_source_61(Idx)
189829  , p_source_65 => l_array_source_65(Idx)
189830  , p_source_66 => l_array_source_66(Idx)
189831  , p_source_67 => l_array_source_67(Idx)
189832  , p_source_68 => l_array_source_68(Idx)
189833  , p_source_68_meaning => l_array_source_68_meaning(Idx)
189834  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
189835  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
189836  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
189837  , p_source_72 => l_array_source_72(Idx)
189838  , p_source_74 => l_array_source_74(Idx)
189839  , p_source_75 => l_array_source_75(Idx)
189840  , p_source_76 => l_array_source_76(Idx)
189841  , p_source_77 => l_array_source_77(Idx)
189842  , p_source_78 => l_array_source_78(Idx)
189843  , p_source_79 => l_array_source_79(Idx)
189844  , p_source_80 => l_array_source_80(Idx)
189845  , p_source_81 => l_array_source_81(Idx)
189846  , p_source_82 => l_array_source_82(Idx)
189847  , p_source_83 => l_array_source_83(Idx)
189848  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
189852 If(l_balance_type_code = 'A') THEN
189849  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
189850  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
189851  );
189853   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189854 END IF;
189855 
189856 --
189857 
189858 
189859 --
189860 AcctLineType_233 (
189861  p_application_id  => p_application_id
189862  ,p_event_id     => l_event_id
189863  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189864  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189865  ,p_actual_flag => l_actual_flag
189866  ,p_balance_type_code => l_balance_type_code
189867  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189868  
189869  , p_source_21 => l_array_source_21(Idx)
189870  , p_source_21_meaning => l_array_source_21_meaning(Idx)
189871  , p_source_41 => l_array_source_41(Idx)
189872  , p_source_43 => l_array_source_43(Idx)
189873  , p_source_45 => l_array_source_45(Idx)
189874  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189875  , p_source_52 => l_array_source_52(Idx)
189876  , p_source_53 => l_array_source_53(Idx)
189877  , p_source_54 => l_array_source_54(Idx)
189878  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
189879  , p_source_56 => l_array_source_56(Idx)
189880  , p_source_57 => l_array_source_57(Idx)
189881  , p_source_58 => l_array_source_58(Idx)
189882  , p_source_59 => l_array_source_59(Idx)
189883  , p_source_60 => l_array_source_60(Idx)
189884  , p_source_61 => l_array_source_61(Idx)
189885  , p_source_65 => l_array_source_65(Idx)
189886  , p_source_66 => l_array_source_66(Idx)
189887  , p_source_67 => l_array_source_67(Idx)
189888  , p_source_68 => l_array_source_68(Idx)
189889  , p_source_68_meaning => l_array_source_68_meaning(Idx)
189890  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
189891  , p_source_72 => l_array_source_72(Idx)
189892  , p_source_74 => l_array_source_74(Idx)
189893  , p_source_75 => l_array_source_75(Idx)
189894  , p_source_76 => l_array_source_76(Idx)
189895  , p_source_77 => l_array_source_77(Idx)
189896  , p_source_78 => l_array_source_78(Idx)
189897  , p_source_79 => l_array_source_79(Idx)
189898  , p_source_80 => l_array_source_80(Idx)
189899  , p_source_81 => l_array_source_81(Idx)
189900  , p_source_82 => l_array_source_82(Idx)
189901  , p_source_83 => l_array_source_83(Idx)
189902  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
189903  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
189904  , p_source_87 => l_array_source_87(Idx)
189905  , p_source_87_meaning => l_array_source_87_meaning(Idx)
189906  , p_source_135 => l_array_source_135(Idx)
189907  , p_source_135_meaning => l_array_source_135_meaning(Idx)
189908  , p_source_144 => l_array_source_144(Idx)
189909  );
189910 If(l_balance_type_code = 'A') THEN
189911   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189912 END IF;
189913 
189914 --
189915 
189916 
189917 --
189918 AcctLineType_238 (
189919  p_application_id  => p_application_id
189920  ,p_event_id     => l_event_id
189921  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189922  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189923  ,p_actual_flag => l_actual_flag
189924  ,p_balance_type_code => l_balance_type_code
189925  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189926  
189927  , p_source_1 => l_array_source_1(Idx)
189928  , p_source_9 => l_array_source_9(Idx)
189929  , p_source_21 => l_array_source_21(Idx)
189930  , p_source_21_meaning => l_array_source_21_meaning(Idx)
189931  , p_source_38 => l_array_source_38(Idx)
189932  , p_source_41 => l_array_source_41(Idx)
189933  , p_source_43 => l_array_source_43(Idx)
189934  , p_source_45 => l_array_source_45(Idx)
189935  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189936  , p_source_52 => l_array_source_52(Idx)
189937  , p_source_53 => l_array_source_53(Idx)
189938  , p_source_54 => l_array_source_54(Idx)
189939  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
189940  , p_source_56 => l_array_source_56(Idx)
189941  , p_source_57 => l_array_source_57(Idx)
189942  , p_source_58 => l_array_source_58(Idx)
189943  , p_source_59 => l_array_source_59(Idx)
189944  , p_source_60 => l_array_source_60(Idx)
189945  , p_source_61 => l_array_source_61(Idx)
189946  , p_source_65 => l_array_source_65(Idx)
189947  , p_source_66 => l_array_source_66(Idx)
189948  , p_source_67 => l_array_source_67(Idx)
189949  , p_source_68 => l_array_source_68(Idx)
189950  , p_source_68_meaning => l_array_source_68_meaning(Idx)
189951  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
189952  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
189953  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
189954  , p_source_72 => l_array_source_72(Idx)
189955  , p_source_74 => l_array_source_74(Idx)
189956  , p_source_75 => l_array_source_75(Idx)
189957  , p_source_76 => l_array_source_76(Idx)
189958  , p_source_77 => l_array_source_77(Idx)
189959  , p_source_78 => l_array_source_78(Idx)
189960  , p_source_79 => l_array_source_79(Idx)
189961  , p_source_80 => l_array_source_80(Idx)
189962  , p_source_81 => l_array_source_81(Idx)
189963  , p_source_82 => l_array_source_82(Idx)
189964  , p_source_83 => l_array_source_83(Idx)
189965  , p_source_84 => l_array_source_84(Idx)
189966  , p_source_84_meaning => l_array_source_84_meaning(Idx)
189967  , p_source_135 => l_array_source_135(Idx)
189968  , p_source_135_meaning => l_array_source_135_meaning(Idx)
189969  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
189970  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
189974   l_actual_gain_loss_ref := l_gain_or_loss_ref;
189971  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
189972  );
189973 If(l_balance_type_code = 'A') THEN
189975 END IF;
189976 
189977 --
189978 
189979 
189980 --
189981 AcctLineType_242 (
189982  p_application_id  => p_application_id
189983  ,p_event_id     => l_event_id
189984  ,p_calculate_acctd_flag => l_calculate_acctd_flag
189985  ,p_calculate_g_l_flag => l_calculate_g_l_flag
189986  ,p_actual_flag => l_actual_flag
189987  ,p_balance_type_code => l_balance_type_code
189988  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
189989  
189990  , p_source_1 => l_array_source_1(Idx)
189991  , p_source_9 => l_array_source_9(Idx)
189992  , p_source_21 => l_array_source_21(Idx)
189993  , p_source_21_meaning => l_array_source_21_meaning(Idx)
189994  , p_source_38 => l_array_source_38(Idx)
189995  , p_source_41 => l_array_source_41(Idx)
189996  , p_source_43 => l_array_source_43(Idx)
189997  , p_source_45 => l_array_source_45(Idx)
189998  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
189999  , p_source_52 => l_array_source_52(Idx)
190000  , p_source_53 => l_array_source_53(Idx)
190001  , p_source_54 => l_array_source_54(Idx)
190002  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
190003  , p_source_56 => l_array_source_56(Idx)
190004  , p_source_57 => l_array_source_57(Idx)
190005  , p_source_58 => l_array_source_58(Idx)
190006  , p_source_59 => l_array_source_59(Idx)
190007  , p_source_60 => l_array_source_60(Idx)
190008  , p_source_61 => l_array_source_61(Idx)
190009  , p_source_65 => l_array_source_65(Idx)
190010  , p_source_66 => l_array_source_66(Idx)
190011  , p_source_67 => l_array_source_67(Idx)
190012  , p_source_68 => l_array_source_68(Idx)
190013  , p_source_68_meaning => l_array_source_68_meaning(Idx)
190014  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
190015  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
190016  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
190017  , p_source_72 => l_array_source_72(Idx)
190018  , p_source_74 => l_array_source_74(Idx)
190019  , p_source_75 => l_array_source_75(Idx)
190020  , p_source_76 => l_array_source_76(Idx)
190021  , p_source_77 => l_array_source_77(Idx)
190022  , p_source_78 => l_array_source_78(Idx)
190023  , p_source_79 => l_array_source_79(Idx)
190024  , p_source_80 => l_array_source_80(Idx)
190025  , p_source_81 => l_array_source_81(Idx)
190026  , p_source_82 => l_array_source_82(Idx)
190027  , p_source_83 => l_array_source_83(Idx)
190028  , p_source_135 => l_array_source_135(Idx)
190029  , p_source_135_meaning => l_array_source_135_meaning(Idx)
190030  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
190031  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
190032  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
190033  );
190034 If(l_balance_type_code = 'A') THEN
190035   l_actual_gain_loss_ref := l_gain_or_loss_ref;
190036 END IF;
190037 
190038 --
190039 
190040 
190041 --
190042 AcctLineType_245 (
190043  p_application_id  => p_application_id
190044  ,p_event_id     => l_event_id
190045  ,p_calculate_acctd_flag => l_calculate_acctd_flag
190046  ,p_calculate_g_l_flag => l_calculate_g_l_flag
190047  ,p_actual_flag => l_actual_flag
190048  ,p_balance_type_code => l_balance_type_code
190049  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
190050  
190051  , p_source_1 => l_array_source_1(Idx)
190052  , p_source_9 => l_array_source_9(Idx)
190053  , p_source_21 => l_array_source_21(Idx)
190054  , p_source_21_meaning => l_array_source_21_meaning(Idx)
190055  , p_source_39 => l_array_source_39(Idx)
190056  , p_source_41 => l_array_source_41(Idx)
190057  , p_source_43 => l_array_source_43(Idx)
190058  , p_source_45 => l_array_source_45(Idx)
190059  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
190060  , p_source_52 => l_array_source_52(Idx)
190061  , p_source_53 => l_array_source_53(Idx)
190062  , p_source_54 => l_array_source_54(Idx)
190063  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
190064  , p_source_56 => l_array_source_56(Idx)
190065  , p_source_57 => l_array_source_57(Idx)
190066  , p_source_58 => l_array_source_58(Idx)
190067  , p_source_59 => l_array_source_59(Idx)
190068  , p_source_60 => l_array_source_60(Idx)
190069  , p_source_61 => l_array_source_61(Idx)
190070  , p_source_65 => l_array_source_65(Idx)
190071  , p_source_66 => l_array_source_66(Idx)
190072  , p_source_67 => l_array_source_67(Idx)
190073  , p_source_68 => l_array_source_68(Idx)
190074  , p_source_68_meaning => l_array_source_68_meaning(Idx)
190075  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
190076  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
190077  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
190078  , p_source_72 => l_array_source_72(Idx)
190079  , p_source_74 => l_array_source_74(Idx)
190080  , p_source_75 => l_array_source_75(Idx)
190081  , p_source_76 => l_array_source_76(Idx)
190082  , p_source_77 => l_array_source_77(Idx)
190083  , p_source_78 => l_array_source_78(Idx)
190084  , p_source_79 => l_array_source_79(Idx)
190085  , p_source_80 => l_array_source_80(Idx)
190086  , p_source_81 => l_array_source_81(Idx)
190087  , p_source_82 => l_array_source_82(Idx)
190088  , p_source_83 => l_array_source_83(Idx)
190089  , p_source_135 => l_array_source_135(Idx)
190090  , p_source_135_meaning => l_array_source_135_meaning(Idx)
190091  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
190095 If(l_balance_type_code = 'A') THEN
190092  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
190093  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
190094  );
190096   l_actual_gain_loss_ref := l_gain_or_loss_ref;
190097 END IF;
190098 
190099 --
190100 
190101 
190102 --
190103 AcctLineType_250 (
190104  p_application_id  => p_application_id
190105  ,p_event_id     => l_event_id
190106  ,p_calculate_acctd_flag => l_calculate_acctd_flag
190107  ,p_calculate_g_l_flag => l_calculate_g_l_flag
190108  ,p_actual_flag => l_actual_flag
190109  ,p_balance_type_code => l_balance_type_code
190110  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
190111  
190112  , p_source_1 => l_array_source_1(Idx)
190113  , p_source_9 => l_array_source_9(Idx)
190114  , p_source_21 => l_array_source_21(Idx)
190115  , p_source_21_meaning => l_array_source_21_meaning(Idx)
190116  , p_source_38 => l_array_source_38(Idx)
190117  , p_source_41 => l_array_source_41(Idx)
190118  , p_source_43 => l_array_source_43(Idx)
190119  , p_source_45 => l_array_source_45(Idx)
190120  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
190121  , p_source_52 => l_array_source_52(Idx)
190122  , p_source_53 => l_array_source_53(Idx)
190123  , p_source_54 => l_array_source_54(Idx)
190124  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
190125  , p_source_56 => l_array_source_56(Idx)
190126  , p_source_57 => l_array_source_57(Idx)
190127  , p_source_58 => l_array_source_58(Idx)
190128  , p_source_59 => l_array_source_59(Idx)
190129  , p_source_60 => l_array_source_60(Idx)
190130  , p_source_61 => l_array_source_61(Idx)
190131  , p_source_62 => l_array_source_62(Idx)
190132  , p_source_63 => l_array_source_63(Idx)
190133  , p_source_64 => l_array_source_64(Idx)
190134  , p_source_65 => l_array_source_65(Idx)
190135  , p_source_66 => l_array_source_66(Idx)
190136  , p_source_67 => l_array_source_67(Idx)
190137  , p_source_68 => l_array_source_68(Idx)
190138  , p_source_68_meaning => l_array_source_68_meaning(Idx)
190139  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
190140  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
190141  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
190142  , p_source_72 => l_array_source_72(Idx)
190143  , p_source_74 => l_array_source_74(Idx)
190144  , p_source_75 => l_array_source_75(Idx)
190145  , p_source_76 => l_array_source_76(Idx)
190146  , p_source_77 => l_array_source_77(Idx)
190147  , p_source_78 => l_array_source_78(Idx)
190148  , p_source_79 => l_array_source_79(Idx)
190149  , p_source_80 => l_array_source_80(Idx)
190150  , p_source_81 => l_array_source_81(Idx)
190151  , p_source_82 => l_array_source_82(Idx)
190152  , p_source_83 => l_array_source_83(Idx)
190153  , p_source_84 => l_array_source_84(Idx)
190154  , p_source_84_meaning => l_array_source_84_meaning(Idx)
190155  , p_source_135 => l_array_source_135(Idx)
190156  , p_source_135_meaning => l_array_source_135_meaning(Idx)
190157  );
190158 If(l_balance_type_code = 'A') THEN
190159   l_actual_gain_loss_ref := l_gain_or_loss_ref;
190160 END IF;
190161 
190162 --
190163 
190164 
190165 --
190166 AcctLineType_253 (
190167  p_application_id  => p_application_id
190168  ,p_event_id     => l_event_id
190169  ,p_calculate_acctd_flag => l_calculate_acctd_flag
190170  ,p_calculate_g_l_flag => l_calculate_g_l_flag
190171  ,p_actual_flag => l_actual_flag
190172  ,p_balance_type_code => l_balance_type_code
190173  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
190174  
190175  , p_source_21 => l_array_source_21(Idx)
190176  , p_source_21_meaning => l_array_source_21_meaning(Idx)
190177  , p_source_41 => l_array_source_41(Idx)
190178  , p_source_43 => l_array_source_43(Idx)
190179  , p_source_45 => l_array_source_45(Idx)
190180  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
190181  , p_source_52 => l_array_source_52(Idx)
190182  , p_source_53 => l_array_source_53(Idx)
190183  , p_source_54 => l_array_source_54(Idx)
190184  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
190185  , p_source_56 => l_array_source_56(Idx)
190186  , p_source_57 => l_array_source_57(Idx)
190187  , p_source_58 => l_array_source_58(Idx)
190188  , p_source_59 => l_array_source_59(Idx)
190189  , p_source_60 => l_array_source_60(Idx)
190190  , p_source_65 => l_array_source_65(Idx)
190191  , p_source_66 => l_array_source_66(Idx)
190192  , p_source_67 => l_array_source_67(Idx)
190193  , p_source_68 => l_array_source_68(Idx)
190194  , p_source_68_meaning => l_array_source_68_meaning(Idx)
190195  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
190196  , p_source_72 => l_array_source_72(Idx)
190197  , p_source_74 => l_array_source_74(Idx)
190198  , p_source_75 => l_array_source_75(Idx)
190199  , p_source_76 => l_array_source_76(Idx)
190200  , p_source_77 => l_array_source_77(Idx)
190201  , p_source_78 => l_array_source_78(Idx)
190202  , p_source_79 => l_array_source_79(Idx)
190203  , p_source_80 => l_array_source_80(Idx)
190204  , p_source_81 => l_array_source_81(Idx)
190205  , p_source_82 => l_array_source_82(Idx)
190206  , p_source_83 => l_array_source_83(Idx)
190207  , p_source_84 => l_array_source_84(Idx)
190208  , p_source_84_meaning => l_array_source_84_meaning(Idx)
190209  , p_source_85 => l_array_source_85(Idx)
190210  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
190211  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
190212  , p_source_87 => l_array_source_87(Idx)
190213  , p_source_87_meaning => l_array_source_87_meaning(Idx)
190214  , p_source_88 => l_array_source_88(Idx)
190215  );
190216 If(l_balance_type_code = 'A') THEN
190217   l_actual_gain_loss_ref := l_gain_or_loss_ref;
190218 END IF;
190219 
190220 --
190221 
190222 
190223 --
190224 AcctLineType_258 (
190225  p_application_id  => p_application_id
190226  ,p_event_id     => l_event_id
190227  ,p_calculate_acctd_flag => l_calculate_acctd_flag
190228  ,p_calculate_g_l_flag => l_calculate_g_l_flag
190229  ,p_actual_flag => l_actual_flag
190230  ,p_balance_type_code => l_balance_type_code
190231  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
190232  
190233  , p_source_21 => l_array_source_21(Idx)
190234  , p_source_21_meaning => l_array_source_21_meaning(Idx)
190235  , p_source_41 => l_array_source_41(Idx)
190236  , p_source_43 => l_array_source_43(Idx)
190237  , p_source_45 => l_array_source_45(Idx)
190238  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
190239  , p_source_52 => l_array_source_52(Idx)
190240  , p_source_53 => l_array_source_53(Idx)
190241  , p_source_54 => l_array_source_54(Idx)
190242  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
190243  , p_source_56 => l_array_source_56(Idx)
190244  , p_source_57 => l_array_source_57(Idx)
190245  , p_source_58 => l_array_source_58(Idx)
190246  , p_source_59 => l_array_source_59(Idx)
190247  , p_source_60 => l_array_source_60(Idx)
190248  , p_source_65 => l_array_source_65(Idx)
190249  , p_source_66 => l_array_source_66(Idx)
190250  , p_source_67 => l_array_source_67(Idx)
190251  , p_source_68 => l_array_source_68(Idx)
190252  , p_source_68_meaning => l_array_source_68_meaning(Idx)
190253  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
190254  , p_source_72 => l_array_source_72(Idx)
190255  , p_source_74 => l_array_source_74(Idx)
190256  , p_source_75 => l_array_source_75(Idx)
190257  , p_source_76 => l_array_source_76(Idx)
190258  , p_source_77 => l_array_source_77(Idx)
190259  , p_source_78 => l_array_source_78(Idx)
190260  , p_source_79 => l_array_source_79(Idx)
190261  , p_source_80 => l_array_source_80(Idx)
190262  , p_source_81 => l_array_source_81(Idx)
190263  , p_source_82 => l_array_source_82(Idx)
190264  , p_source_83 => l_array_source_83(Idx)
190265  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
190266  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
190267  , p_source_87 => l_array_source_87(Idx)
190268  , p_source_87_meaning => l_array_source_87_meaning(Idx)
190269  , p_source_143 => l_array_source_143(Idx)
190270  , p_source_144 => l_array_source_144(Idx)
190271  );
190272 If(l_balance_type_code = 'A') THEN
190273   l_actual_gain_loss_ref := l_gain_or_loss_ref;
190274 END IF;
190275 
190276 --
190277 
190278 
190279 --
190280 AcctLineType_262 (
190281  p_application_id  => p_application_id
190282  ,p_event_id     => l_event_id
190283  ,p_calculate_acctd_flag => l_calculate_acctd_flag
190284  ,p_calculate_g_l_flag => l_calculate_g_l_flag
190285  ,p_actual_flag => l_actual_flag
190286  ,p_balance_type_code => l_balance_type_code
190287  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
190288  
190289  , p_source_1 => l_array_source_1(Idx)
190290  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
190291  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
190292  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
190293  , p_source_9 => l_array_source_9(Idx)
190294  , p_source_10 => l_array_source_10(Idx)
190295  , p_source_10_meaning => l_array_source_10_meaning(Idx)
190296  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
190297  , p_source_18 => l_array_source_18(Idx)
190298  , p_source_21 => l_array_source_21(Idx)
190299  , p_source_21_meaning => l_array_source_21_meaning(Idx)
190300  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
190301  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
190302  , p_source_41 => l_array_source_41(Idx)
190303  , p_source_43 => l_array_source_43(Idx)
190304  , p_source_45 => l_array_source_45(Idx)
190305  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
190306  , p_source_52 => l_array_source_52(Idx)
190307  , p_source_53 => l_array_source_53(Idx)
190308  , p_source_54 => l_array_source_54(Idx)
190309  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
190310  , p_source_56 => l_array_source_56(Idx)
190311  , p_source_57 => l_array_source_57(Idx)
190312  , p_source_58 => l_array_source_58(Idx)
190313  , p_source_59 => l_array_source_59(Idx)
190314  , p_source_60 => l_array_source_60(Idx)
190315  , p_source_61 => l_array_source_61(Idx)
190316  , p_source_65 => l_array_source_65(Idx)
190317  , p_source_66 => l_array_source_66(Idx)
190318  , p_source_67 => l_array_source_67(Idx)
190319  , p_source_68 => l_array_source_68(Idx)
190320  , p_source_68_meaning => l_array_source_68_meaning(Idx)
190321  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
190322  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
190323  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
190324  , p_source_72 => l_array_source_72(Idx)
190325  , p_source_74 => l_array_source_74(Idx)
190326  , p_source_75 => l_array_source_75(Idx)
190327  , p_source_76 => l_array_source_76(Idx)
190328  , p_source_77 => l_array_source_77(Idx)
190329  , p_source_78 => l_array_source_78(Idx)
190330  , p_source_79 => l_array_source_79(Idx)
190331  , p_source_80 => l_array_source_80(Idx)
190332  , p_source_81 => l_array_source_81(Idx)
190333  , p_source_82 => l_array_source_82(Idx)
190334  , p_source_83 => l_array_source_83(Idx)
190335  , p_source_84 => l_array_source_84(Idx)
190336  , p_source_84_meaning => l_array_source_84_meaning(Idx)
190337  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
190338  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
190342   l_actual_gain_loss_ref := l_gain_or_loss_ref;
190339  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
190340  );
190341 If(l_balance_type_code = 'A') THEN
190343 END IF;
190344 
190345 --
190346 
190347 
190348 --
190349 AcctLineType_267 (
190350  p_application_id  => p_application_id
190351  ,p_event_id     => l_event_id
190352  ,p_calculate_acctd_flag => l_calculate_acctd_flag
190353  ,p_calculate_g_l_flag => l_calculate_g_l_flag
190354  ,p_actual_flag => l_actual_flag
190355  ,p_balance_type_code => l_balance_type_code
190356  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
190357  
190358  , p_source_1 => l_array_source_1(Idx)
190359  , p_source_9 => l_array_source_9(Idx)
190360  , p_source_18 => l_array_source_18(Idx)
190361  , p_source_21 => l_array_source_21(Idx)
190362  , p_source_21_meaning => l_array_source_21_meaning(Idx)
190363  , p_source_41 => l_array_source_41(Idx)
190364  , p_source_43 => l_array_source_43(Idx)
190365  , p_source_45 => l_array_source_45(Idx)
190366  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
190367  , p_source_52 => l_array_source_52(Idx)
190368  , p_source_53 => l_array_source_53(Idx)
190369  , p_source_54 => l_array_source_54(Idx)
190370  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
190371  , p_source_56 => l_array_source_56(Idx)
190372  , p_source_57 => l_array_source_57(Idx)
190373  , p_source_58 => l_array_source_58(Idx)
190374  , p_source_59 => l_array_source_59(Idx)
190375  , p_source_60 => l_array_source_60(Idx)
190376  , p_source_61 => l_array_source_61(Idx)
190377  , p_source_65 => l_array_source_65(Idx)
190378  , p_source_66 => l_array_source_66(Idx)
190379  , p_source_67 => l_array_source_67(Idx)
190380  , p_source_68 => l_array_source_68(Idx)
190381  , p_source_68_meaning => l_array_source_68_meaning(Idx)
190382  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
190383  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
190384  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
190385  , p_source_72 => l_array_source_72(Idx)
190386  , p_source_74 => l_array_source_74(Idx)
190387  , p_source_75 => l_array_source_75(Idx)
190388  , p_source_76 => l_array_source_76(Idx)
190389  , p_source_77 => l_array_source_77(Idx)
190390  , p_source_78 => l_array_source_78(Idx)
190391  , p_source_79 => l_array_source_79(Idx)
190392  , p_source_80 => l_array_source_80(Idx)
190393  , p_source_81 => l_array_source_81(Idx)
190394  , p_source_82 => l_array_source_82(Idx)
190395  , p_source_83 => l_array_source_83(Idx)
190396  , p_source_84 => l_array_source_84(Idx)
190397  , p_source_84_meaning => l_array_source_84_meaning(Idx)
190398  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
190399  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
190400  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
190401  );
190402 If(l_balance_type_code = 'A') THEN
190403   l_actual_gain_loss_ref := l_gain_or_loss_ref;
190404 END IF;
190405 
190406 --
190407 
190408 
190409 --
190410 AcctLineType_268 (
190411  p_application_id  => p_application_id
190412  ,p_event_id     => l_event_id
190413  ,p_calculate_acctd_flag => l_calculate_acctd_flag
190414  ,p_calculate_g_l_flag => l_calculate_g_l_flag
190415  ,p_actual_flag => l_actual_flag
190416  ,p_balance_type_code => l_balance_type_code
190417  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
190418  
190419  , p_source_21 => l_array_source_21(Idx)
190420  , p_source_21_meaning => l_array_source_21_meaning(Idx)
190421  , p_source_41 => l_array_source_41(Idx)
190422  , p_source_43 => l_array_source_43(Idx)
190423  , p_source_45 => l_array_source_45(Idx)
190424  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
190425  , p_source_52 => l_array_source_52(Idx)
190426  , p_source_53 => l_array_source_53(Idx)
190427  , p_source_54 => l_array_source_54(Idx)
190428  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
190429  , p_source_56 => l_array_source_56(Idx)
190430  , p_source_57 => l_array_source_57(Idx)
190431  , p_source_58 => l_array_source_58(Idx)
190432  , p_source_59 => l_array_source_59(Idx)
190433  , p_source_60 => l_array_source_60(Idx)
190434  , p_source_65 => l_array_source_65(Idx)
190435  , p_source_66 => l_array_source_66(Idx)
190436  , p_source_67 => l_array_source_67(Idx)
190437  , p_source_68 => l_array_source_68(Idx)
190438  , p_source_68_meaning => l_array_source_68_meaning(Idx)
190439  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
190440  , p_source_72 => l_array_source_72(Idx)
190441  , p_source_74 => l_array_source_74(Idx)
190442  , p_source_75 => l_array_source_75(Idx)
190443  , p_source_76 => l_array_source_76(Idx)
190444  , p_source_77 => l_array_source_77(Idx)
190445  , p_source_78 => l_array_source_78(Idx)
190446  , p_source_79 => l_array_source_79(Idx)
190447  , p_source_80 => l_array_source_80(Idx)
190448  , p_source_81 => l_array_source_81(Idx)
190449  , p_source_82 => l_array_source_82(Idx)
190450  , p_source_83 => l_array_source_83(Idx)
190451  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
190452  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
190453  , p_source_87 => l_array_source_87(Idx)
190454  , p_source_87_meaning => l_array_source_87_meaning(Idx)
190455  , p_source_143 => l_array_source_143(Idx)
190456  , p_source_144 => l_array_source_144(Idx)
190457  );
190458 If(l_balance_type_code = 'A') THEN
190459   l_actual_gain_loss_ref := l_gain_or_loss_ref;
190460 END IF;
190461 
190462 --
190463 
190464 
190465 --
190466 AcctLineType_274 (
190467  p_application_id  => p_application_id
190468  ,p_event_id     => l_event_id
190469  ,p_calculate_acctd_flag => l_calculate_acctd_flag
190473  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
190470  ,p_calculate_g_l_flag => l_calculate_g_l_flag
190471  ,p_actual_flag => l_actual_flag
190472  ,p_balance_type_code => l_balance_type_code
190474  
190475  , p_source_21 => l_array_source_21(Idx)
190476  , p_source_21_meaning => l_array_source_21_meaning(Idx)
190477  , p_source_41 => l_array_source_41(Idx)
190478  , p_source_43 => l_array_source_43(Idx)
190479  , p_source_45 => l_array_source_45(Idx)
190480  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
190481  , p_source_52 => l_array_source_52(Idx)
190482  , p_source_53 => l_array_source_53(Idx)
190483  , p_source_54 => l_array_source_54(Idx)
190484  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
190485  , p_source_56 => l_array_source_56(Idx)
190486  , p_source_57 => l_array_source_57(Idx)
190487  , p_source_58 => l_array_source_58(Idx)
190488  , p_source_59 => l_array_source_59(Idx)
190489  , p_source_60 => l_array_source_60(Idx)
190490  , p_source_65 => l_array_source_65(Idx)
190491  , p_source_66 => l_array_source_66(Idx)
190492  , p_source_67 => l_array_source_67(Idx)
190493  , p_source_68 => l_array_source_68(Idx)
190494  , p_source_68_meaning => l_array_source_68_meaning(Idx)
190495  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
190496  , p_source_72 => l_array_source_72(Idx)
190497  , p_source_74 => l_array_source_74(Idx)
190498  , p_source_75 => l_array_source_75(Idx)
190499  , p_source_76 => l_array_source_76(Idx)
190500  , p_source_77 => l_array_source_77(Idx)
190501  , p_source_78 => l_array_source_78(Idx)
190502  , p_source_79 => l_array_source_79(Idx)
190503  , p_source_80 => l_array_source_80(Idx)
190504  , p_source_81 => l_array_source_81(Idx)
190505  , p_source_82 => l_array_source_82(Idx)
190506  , p_source_83 => l_array_source_83(Idx)
190507  , p_source_84 => l_array_source_84(Idx)
190508  , p_source_84_meaning => l_array_source_84_meaning(Idx)
190509  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
190510  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
190511  , p_source_87 => l_array_source_87(Idx)
190512  , p_source_87_meaning => l_array_source_87_meaning(Idx)
190513  , p_source_161 => l_array_source_161(Idx)
190514  , p_source_162 => l_array_source_162(Idx)
190515  );
190516 If(l_balance_type_code = 'A') THEN
190517   l_actual_gain_loss_ref := l_gain_or_loss_ref;
190518 END IF;
190519 
190520 --
190521 
190522 
190523 --
190524 AcctLineType_279 (
190525  p_application_id  => p_application_id
190526  ,p_event_id     => l_event_id
190527  ,p_calculate_acctd_flag => l_calculate_acctd_flag
190528  ,p_calculate_g_l_flag => l_calculate_g_l_flag
190529  ,p_actual_flag => l_actual_flag
190530  ,p_balance_type_code => l_balance_type_code
190531  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
190532  
190533  , p_source_1 => l_array_source_1(Idx)
190534  , p_source_9 => l_array_source_9(Idx)
190535  , p_source_18 => l_array_source_18(Idx)
190536  , p_source_21 => l_array_source_21(Idx)
190537  , p_source_21_meaning => l_array_source_21_meaning(Idx)
190538  , p_source_41 => l_array_source_41(Idx)
190539  , p_source_43 => l_array_source_43(Idx)
190540  , p_source_45 => l_array_source_45(Idx)
190541  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
190542  , p_source_52 => l_array_source_52(Idx)
190543  , p_source_53 => l_array_source_53(Idx)
190544  , p_source_54 => l_array_source_54(Idx)
190545  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
190546  , p_source_56 => l_array_source_56(Idx)
190547  , p_source_57 => l_array_source_57(Idx)
190548  , p_source_58 => l_array_source_58(Idx)
190549  , p_source_59 => l_array_source_59(Idx)
190550  , p_source_60 => l_array_source_60(Idx)
190551  , p_source_61 => l_array_source_61(Idx)
190552  , p_source_65 => l_array_source_65(Idx)
190553  , p_source_66 => l_array_source_66(Idx)
190554  , p_source_67 => l_array_source_67(Idx)
190555  , p_source_68 => l_array_source_68(Idx)
190556  , p_source_68_meaning => l_array_source_68_meaning(Idx)
190557  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
190558  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
190559  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
190560  , p_source_72 => l_array_source_72(Idx)
190561  , p_source_74 => l_array_source_74(Idx)
190562  , p_source_75 => l_array_source_75(Idx)
190563  , p_source_76 => l_array_source_76(Idx)
190564  , p_source_77 => l_array_source_77(Idx)
190565  , p_source_78 => l_array_source_78(Idx)
190566  , p_source_79 => l_array_source_79(Idx)
190567  , p_source_80 => l_array_source_80(Idx)
190568  , p_source_81 => l_array_source_81(Idx)
190569  , p_source_82 => l_array_source_82(Idx)
190570  , p_source_83 => l_array_source_83(Idx)
190571  , p_source_84 => l_array_source_84(Idx)
190572  , p_source_84_meaning => l_array_source_84_meaning(Idx)
190573  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
190574  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
190575  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
190576  );
190577 If(l_balance_type_code = 'A') THEN
190578   l_actual_gain_loss_ref := l_gain_or_loss_ref;
190579 END IF;
190580 
190581 --
190582 
190583 
190584 --
190585 AcctLineType_280 (
190586  p_application_id  => p_application_id
190587  ,p_event_id     => l_event_id
190588  ,p_calculate_acctd_flag => l_calculate_acctd_flag
190589  ,p_calculate_g_l_flag => l_calculate_g_l_flag
190590  ,p_actual_flag => l_actual_flag
190591  ,p_balance_type_code => l_balance_type_code
190592  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
190593  
190594  , p_source_21 => l_array_source_21(Idx)
190595  , p_source_21_meaning => l_array_source_21_meaning(Idx)
190596  , p_source_41 => l_array_source_41(Idx)
190600  , p_source_52 => l_array_source_52(Idx)
190597  , p_source_43 => l_array_source_43(Idx)
190598  , p_source_45 => l_array_source_45(Idx)
190599  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
190601  , p_source_53 => l_array_source_53(Idx)
190602  , p_source_54 => l_array_source_54(Idx)
190603  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
190604  , p_source_56 => l_array_source_56(Idx)
190605  , p_source_57 => l_array_source_57(Idx)
190606  , p_source_58 => l_array_source_58(Idx)
190607  , p_source_59 => l_array_source_59(Idx)
190608  , p_source_60 => l_array_source_60(Idx)
190609  , p_source_65 => l_array_source_65(Idx)
190610  , p_source_66 => l_array_source_66(Idx)
190611  , p_source_67 => l_array_source_67(Idx)
190612  , p_source_68 => l_array_source_68(Idx)
190613  , p_source_68_meaning => l_array_source_68_meaning(Idx)
190614  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
190615  , p_source_72 => l_array_source_72(Idx)
190616  , p_source_74 => l_array_source_74(Idx)
190617  , p_source_75 => l_array_source_75(Idx)
190618  , p_source_76 => l_array_source_76(Idx)
190619  , p_source_77 => l_array_source_77(Idx)
190620  , p_source_78 => l_array_source_78(Idx)
190621  , p_source_79 => l_array_source_79(Idx)
190622  , p_source_80 => l_array_source_80(Idx)
190623  , p_source_81 => l_array_source_81(Idx)
190624  , p_source_82 => l_array_source_82(Idx)
190625  , p_source_83 => l_array_source_83(Idx)
190626  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
190627  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
190628  , p_source_87 => l_array_source_87(Idx)
190629  , p_source_87_meaning => l_array_source_87_meaning(Idx)
190630  , p_source_143 => l_array_source_143(Idx)
190631  , p_source_144 => l_array_source_144(Idx)
190632  );
190633 If(l_balance_type_code = 'A') THEN
190634   l_actual_gain_loss_ref := l_gain_or_loss_ref;
190635 END IF;
190636 
190637 --
190638 
190639 
190640 --
190641 AcctLineType_288 (
190642  p_application_id  => p_application_id
190643  ,p_event_id     => l_event_id
190644  ,p_calculate_acctd_flag => l_calculate_acctd_flag
190645  ,p_calculate_g_l_flag => l_calculate_g_l_flag
190646  ,p_actual_flag => l_actual_flag
190647  ,p_balance_type_code => l_balance_type_code
190648  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
190649  
190650  , p_source_1 => l_array_source_1(Idx)
190651  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
190652  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
190653  , p_source_9 => l_array_source_9(Idx)
190654  , p_source_18 => l_array_source_18(Idx)
190655  , p_source_21 => l_array_source_21(Idx)
190656  , p_source_21_meaning => l_array_source_21_meaning(Idx)
190657  , p_source_31 => l_array_source_31(Idx)
190658  , p_source_41 => l_array_source_41(Idx)
190659  , p_source_43 => l_array_source_43(Idx)
190660  , p_source_45 => l_array_source_45(Idx)
190661  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
190662  , p_source_52 => l_array_source_52(Idx)
190663  , p_source_53 => l_array_source_53(Idx)
190664  , p_source_54 => l_array_source_54(Idx)
190665  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
190666  , p_source_56 => l_array_source_56(Idx)
190667  , p_source_57 => l_array_source_57(Idx)
190668  , p_source_58 => l_array_source_58(Idx)
190669  , p_source_59 => l_array_source_59(Idx)
190670  , p_source_60 => l_array_source_60(Idx)
190671  , p_source_61 => l_array_source_61(Idx)
190672  , p_source_65 => l_array_source_65(Idx)
190673  , p_source_66 => l_array_source_66(Idx)
190674  , p_source_67 => l_array_source_67(Idx)
190675  , p_source_68 => l_array_source_68(Idx)
190676  , p_source_68_meaning => l_array_source_68_meaning(Idx)
190677  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
190678  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
190679  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
190680  , p_source_72 => l_array_source_72(Idx)
190681  , p_source_74 => l_array_source_74(Idx)
190682  , p_source_75 => l_array_source_75(Idx)
190683  , p_source_76 => l_array_source_76(Idx)
190684  , p_source_77 => l_array_source_77(Idx)
190685  , p_source_78 => l_array_source_78(Idx)
190686  , p_source_79 => l_array_source_79(Idx)
190687  , p_source_80 => l_array_source_80(Idx)
190688  , p_source_81 => l_array_source_81(Idx)
190689  , p_source_82 => l_array_source_82(Idx)
190690  , p_source_83 => l_array_source_83(Idx)
190691  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
190692  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
190693  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
190694  );
190695 If(l_balance_type_code = 'A') THEN
190696   l_actual_gain_loss_ref := l_gain_or_loss_ref;
190697 END IF;
190698 
190699 --
190700 
190701       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
190702       -- or secondary ledger that has different currency with primary
190703       -- or alc that is calculated by sla
190704       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
190705             (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'))
190706 
190707 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
190708 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
190709           AND (l_actual_flag = 'A')) THEN
190710         XLA_AE_LINES_PKG.CreateGainOrLossLines(
190711           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
190712          ,p_application_id   => p_application_id
190713          ,p_amb_context_code => 'DEFAULT'
190717          
190714          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
190715          ,p_event_class_code => C_EVENT_CLASS_CODE
190716          ,p_event_type_code  => C_EVENT_TYPE_CODE
190718          ,p_gain_ccid        => -1
190719          ,p_loss_ccid        => -1
190720 
190721          ,p_actual_flag      => l_actual_flag
190722          ,p_enc_flag         => null
190723          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
190724          ,p_enc_g_l_ref      => null
190725          );
190726       END IF;
190727    END IF;
190728 END IF;
190729 
190730    ELSE
190731       --
190732       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
190733       --
190734       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
190735          trace
190736             (p_msg      => 'Trancaction revesal option is Y'
190737             ,p_level    => C_LEVEL_STATEMENT
190738             ,p_module   => l_log_module);
190739       END IF;
190740    END IF;
190741 
190742 END LOOP;
190743 l_result := XLA_AE_LINES_PKG.InsertLines ;
190744 end loop;
190745 close line_cur;
190746 
190747 
190748 --
190749 -- insert headers into xla_ae_headers_gt table
190750 --
190751 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
190752 
190753 -- insert into errors table here.
190754 
190755 END LOOP;
190756 
190757 --
190758 -- 4865292
190759 --
190760 -- Compare g_hdr_extract_count with event count in
190761 -- CreateHeadersAndLines.
190762 --
190763 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
190764 
190765 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
190766    trace (p_msg     => '# rows extracted from header extract objects '
190767                     || ' (running total): '
190768                     || g_hdr_extract_count
190769          ,p_level   => C_LEVEL_STATEMENT
190770          ,p_module  => l_log_module);
190771 END IF;
190772 
190773 CLOSE header_cur;
190774 --
190775 
190776 --
190777 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
190778    trace
190779       (p_msg      => 'END of EventClass_292'
190780       ,p_level    => C_LEVEL_PROCEDURE
190781       ,p_module   => l_log_module);
190782 END IF;
190783 --
190784 RETURN l_result;
190785 EXCEPTION
190786 WHEN xla_exceptions_pkg.application_exception THEN
190787    
190788 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
190789 
190790    
190791 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
190792 
190793    RAISE;
190794 
190795 WHEN NO_DATA_FOUND THEN
190796 
190797 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
190798 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
190799 
190800 FOR header_record IN header_cur
190801 LOOP
190802     l_array_header_events(header_record.event_id) := header_record.event_id;
190803 END LOOP;
190804 
190805 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
190806 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
190807 
190808 fnd_file.put_line(fnd_file.LOG, '                    ');
190809 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
190810 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
190811 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
190812 
190813 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
190814 LOOP
190815 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
190816 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
190817         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
190818 	END IF;
190819 END LOOP;
190820 
190821 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
190822 fnd_file.put_line(fnd_file.LOG, '                    ');
190823 
190824 
190825 xla_exceptions_pkg.raise_message
190826       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_292');
190827 
190828 
190829 WHEN OTHERS THEN
190830    xla_exceptions_pkg.raise_message
190831       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_292');
190832 END EventClass_292;
190833 --
190834 
190835 ---------------------------------------
190836 --
190837 -- PRIVATE PROCEDURE
190838 --         insert_sources_293
190839 --
190840 ----------------------------------------
190841 --
190842 PROCEDURE insert_sources_293(
190843                                 p_target_ledger_id       IN NUMBER
190844                               , p_language               IN VARCHAR2
190845                               , p_sla_ledger_id          IN NUMBER
190846                               , p_pad_start_date         IN DATE
190847                               , p_pad_end_date           IN DATE
190848                          )
190849 IS
190850 
190851 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'FUTURE DATED PAYMENTS_ALL';
190852 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'FUTURE DATED PAYMENTS';
190853 p_apps_owner                   VARCHAR2(30);
190854 l_log_module                   VARCHAR2(240);
190855 BEGIN
190856 IF g_log_enabled THEN
190857       l_log_module := C_DEFAULT_MODULE||'.insert_sources_293';
190858 END IF;
190859 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
190860 
190861       trace
190862          (p_msg      => 'BEGIN of insert_sources_293'
190863          ,p_level    => C_LEVEL_PROCEDURE
190864          ,p_module   => l_log_module);
190865 
190866 END IF;
190867 
190868 -- select APPS owner
190869 SELECT oracle_username
190870   INTO p_apps_owner
190874 
190871   FROM fnd_oracle_userid
190872  WHERE read_only_flag = 'U'
190873 ;
190875 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
190876       trace
190877          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
190878                         ' - p_language = '||p_language||
190879                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
190880                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
190881                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
190882                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
190883          ,p_level    => C_LEVEL_STATEMENT
190884          ,p_module   => l_log_module);
190885 END IF;
190886 
190887 
190888 --
190889 INSERT INTO xla_diag_sources --hdr2
190890 (
190891         event_id
190892       , ledger_id
190893       , sla_ledger_id
190894       , description_language
190895       , object_name
190896       , object_type_code
190897       , line_number
190898       , source_application_id
190899       , source_type_code
190900       , source_code
190901       , source_value
190902       , source_meaning
190903       , created_by
190904       , creation_date
190905       , last_update_date
190906       , last_updated_by
190907       , last_update_login
190908       , program_update_date
190909       , program_application_id
190910       , program_id
190911       , request_id
190912 )
190913 SELECT
190914         event_id
190915       , p_target_ledger_id
190916       , p_sla_ledger_id
190917       , p_language
190918       , object_name
190919       , object_type_code
190920       , line_number
190921       , source_application_id
190922       , source_type_code
190923       , source_code
190924       , SUBSTR(source_value ,1,1996)
190925       , SUBSTR(source_meaning ,1,200)
190926       , xla_environment_pkg.g_Usr_Id
190927       , TRUNC(SYSDATE)
190928       , TRUNC(SYSDATE)
190929       , xla_environment_pkg.g_Usr_Id
190930       , xla_environment_pkg.g_Login_Id
190931       , TRUNC(SYSDATE)
190932       , xla_environment_pkg.g_Prog_Appl_Id
190933       , xla_environment_pkg.g_Prog_Id
190934       , xla_environment_pkg.g_Req_Id
190935   FROM (
190936        SELECT xet.event_id                  event_id
190937             , 0                          line_number
190938             , CASE r
190939                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
190940                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
190941                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
190942                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
190943                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
190944                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
190945                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
190946                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
190947                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
190948                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
190949                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
190950                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
190951                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
190952                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
190953                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
190954                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
190955                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
190956                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
190957                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
190958                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
190959                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
190960                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
190961                 
190962                ELSE null
190963               END                           object_name
190964             , CASE r
190965                 WHEN 1 THEN 'HEADER' 
190966                 WHEN 2 THEN 'HEADER' 
190967                 WHEN 3 THEN 'HEADER' 
190968                 WHEN 4 THEN 'HEADER' 
190969                 WHEN 5 THEN 'HEADER' 
190970                 WHEN 6 THEN 'HEADER' 
190971                 WHEN 7 THEN 'HEADER' 
190972                 WHEN 8 THEN 'HEADER' 
190973                 WHEN 9 THEN 'HEADER' 
190974                 WHEN 10 THEN 'HEADER' 
190975                 WHEN 11 THEN 'HEADER' 
190976                 WHEN 12 THEN 'HEADER' 
190977                 WHEN 13 THEN 'HEADER' 
190978                 WHEN 14 THEN 'HEADER' 
190979                 WHEN 15 THEN 'HEADER' 
190980                 WHEN 16 THEN 'HEADER' 
190981                 WHEN 17 THEN 'HEADER' 
190982                 WHEN 18 THEN 'HEADER' 
190983                 WHEN 19 THEN 'HEADER' 
190984                 WHEN 20 THEN 'HEADER' 
190985                 WHEN 21 THEN 'HEADER' 
190986                 WHEN 22 THEN 'HEADER' 
190987                 
190988                 ELSE null
190989               END                           object_type_code
190990             , CASE r
190991                 WHEN 1 THEN '200' 
190992                 WHEN 2 THEN '200' 
190993                 WHEN 3 THEN '200' 
190994                 WHEN 4 THEN '200' 
190995                 WHEN 5 THEN '200' 
190996                 WHEN 6 THEN '200' 
190997                 WHEN 7 THEN '200' 
190998                 WHEN 8 THEN '200' 
190999                 WHEN 9 THEN '200' 
191000                 WHEN 10 THEN '200' 
191001                 WHEN 11 THEN '200' 
191002                 WHEN 12 THEN '200' 
191003                 WHEN 13 THEN '200' 
191007                 WHEN 17 THEN '200' 
191004                 WHEN 14 THEN '200' 
191005                 WHEN 15 THEN '200' 
191006                 WHEN 16 THEN '200' 
191008                 WHEN 18 THEN '200' 
191009                 WHEN 19 THEN '200' 
191010                 WHEN 20 THEN '200' 
191011                 WHEN 21 THEN '200' 
191012                 WHEN 22 THEN '200' 
191013                 
191014                 ELSE null
191015               END                           source_application_id
191016             , 'S'             source_type_code
191017             , CASE r
191018                 WHEN 1 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
191019                 WHEN 2 THEN 'CGAC_AP_ASSET_CCID' 
191020                 WHEN 3 THEN 'CGAC_CASH_CLEARING_CCID' 
191021                 WHEN 4 THEN 'CGAC_GAIN_CCID' 
191022                 WHEN 5 THEN 'ASP_GAIN_CCID' 
191023                 WHEN 6 THEN 'CGAC_LOSS_CCID' 
191024                 WHEN 7 THEN 'ASP_LOSS_CCID' 
191025                 WHEN 8 THEN 'ASP_AUTO_OFFSET_FLAG' 
191026                 WHEN 9 THEN 'ASP_ROUNDING_ERROR_CCID' 
191027                 WHEN 10 THEN 'THIRD_PARTY_TYPE' 
191028                 WHEN 11 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
191029                 WHEN 12 THEN 'AC_VENDOR_ID' 
191030                 WHEN 13 THEN 'AC_VENDOR_SITE_ID' 
191031                 WHEN 14 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
191032                 WHEN 15 THEN 'AC_CURRENCY_CODE' 
191033                 WHEN 16 THEN 'AC_FUTURE_PAY_DUE_DATE' 
191034                 WHEN 17 THEN 'AC_EXCHANGE_DATE' 
191035                 WHEN 18 THEN 'AC_EXCHANGE_RATE' 
191036                 WHEN 19 THEN 'AC_EXCHANGE_RATE_TYPE' 
191037                 WHEN 20 THEN 'AC_DOC_CATEGORY_CODE' 
191038                 WHEN 21 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
191039                 WHEN 22 THEN 'AC_DOC_SEQUENCE_VALUE' 
191040                 
191041                 ELSE null
191042               END                           source_code
191043             , CASE r
191044                 WHEN 1 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
191045                 WHEN 2 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
191046                 WHEN 3 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
191047                 WHEN 4 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
191048                 WHEN 5 THEN TO_CHAR(h3.ASP_GAIN_CCID)
191049                 WHEN 6 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
191050                 WHEN 7 THEN TO_CHAR(h3.ASP_LOSS_CCID)
191051                 WHEN 8 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
191052                 WHEN 9 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
191053                 WHEN 10 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
191054                 WHEN 11 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
191055                 WHEN 12 THEN TO_CHAR(h2.AC_VENDOR_ID)
191056                 WHEN 13 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
191057                 WHEN 14 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
191058                 WHEN 15 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
191059                 WHEN 16 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
191060                 WHEN 17 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
191061                 WHEN 18 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
191062                 WHEN 19 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
191063                 WHEN 20 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
191064                 WHEN 21 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
191065                 WHEN 22 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
191066                 
191067                 ELSE null
191068               END                           source_value
191069             , CASE r
191070                 WHEN 1 THEN fvl3.meaning
191071                 WHEN 8 THEN fvl35.meaning
191072                 WHEN 14 THEN fvl105.meaning
191073                 
191074                 ELSE null
191075               END               source_meaning
191076          FROM xla_events_gt     xet  
191077       , AP_PAYMENT_EXTRACT_HEADER_V  h2
191078       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
191079   , fnd_lookup_values    fvl3
191080   , fnd_lookup_values    fvl35
191081   , fnd_lookup_values    fvl105
191082              ,(select rownum r from all_objects where rownum <= 22 and owner = p_apps_owner)
191083          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
191084            AND xet.event_class_code = C_EVENT_CLASS_CODE
191085               AND h2.event_id = xet.event_id
191086  AND h3.asp_org_id = h2.ac_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
191087   AND fvl3.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
191088   AND fvl3.view_application_id(+) = 200
191089   AND fvl3.language(+)            = USERENV('LANG')
191090      AND fvl35.lookup_type(+)         = 'YES_NO'
191091   AND fvl35.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
191092   AND fvl35.view_application_id(+) = 0
191093   AND fvl35.language(+)            = USERENV('LANG')
191094      AND fvl105.lookup_type(+)         = 'YES_NO'
191095   AND fvl105.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
191096   AND fvl105.view_application_id(+) = 0
191097   AND fvl105.language(+)            = USERENV('LANG')
191098   
191099 )
191100 ;
191101 --
191102 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
191103 
191104       trace
191105          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
191106          ,p_level    => C_LEVEL_STATEMENT
191107          ,p_module   => l_log_module);
191108 
191109 END IF;
191110 --
191111 
191112 
191113 
191114 --
191115 INSERT INTO xla_diag_sources  --line2
191116 (
191117         event_id
191118       , ledger_id
191119       , sla_ledger_id
191120       , description_language
191121       , object_name
191122       , object_type_code
191123       , line_number
191124       , source_application_id
191125       , source_type_code
191126       , source_code
191127       , source_value
191128       , source_meaning
191132       , last_updated_by
191129       , created_by
191130       , creation_date
191131       , last_update_date
191133       , last_update_login
191134       , program_update_date
191135       , program_application_id
191136       , program_id
191137       , request_id
191138 )
191139 SELECT  event_id
191140       , p_target_ledger_id
191141       , p_sla_ledger_id
191142       , p_language
191143       , object_name
191144       , object_type_code
191145       , line_number
191146       , source_application_id
191147       , source_type_code
191148       , source_code
191149       , SUBSTR(source_value,1,1996)
191150       , SUBSTR(source_meaning ,1,200)
191151       , xla_environment_pkg.g_Usr_Id
191152       , TRUNC(SYSDATE)
191153       , TRUNC(SYSDATE)
191154       , xla_environment_pkg.g_Usr_Id
191155       , xla_environment_pkg.g_Login_Id
191156       , TRUNC(SYSDATE)
191157       , xla_environment_pkg.g_Prog_Appl_Id
191158       , xla_environment_pkg.g_Prog_Id
191159       , xla_environment_pkg.g_Req_Id
191160   FROM (
191161        SELECT xet.event_id                  event_id
191162             , l1.line_number                 line_number
191163             , CASE r
191164                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191165                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191166                 WHEN 3 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
191167                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191168                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191169                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191170                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191171                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191172                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191173                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191174                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191175                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191176                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191177                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191178                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191179                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191180                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191181                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191182                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191183                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191184                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191185                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191186                 WHEN 23 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
191187                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191188                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
191189                 
191190                ELSE null
191191               END                           object_name
191192             , CASE r
191193                 WHEN 1 THEN 'LINE' 
191194                 WHEN 2 THEN 'LINE' 
191195                 WHEN 3 THEN 'LINE' 
191196                 WHEN 4 THEN 'LINE' 
191197                 WHEN 5 THEN 'LINE' 
191198                 WHEN 6 THEN 'LINE' 
191199                 WHEN 7 THEN 'LINE' 
191200                 WHEN 8 THEN 'LINE' 
191201                 WHEN 9 THEN 'LINE' 
191202                 WHEN 10 THEN 'LINE' 
191203                 WHEN 11 THEN 'LINE' 
191204                 WHEN 12 THEN 'LINE' 
191205                 WHEN 13 THEN 'LINE' 
191206                 WHEN 14 THEN 'LINE' 
191207                 WHEN 15 THEN 'LINE' 
191208                 WHEN 16 THEN 'LINE' 
191209                 WHEN 17 THEN 'LINE' 
191210                 WHEN 18 THEN 'LINE' 
191211                 WHEN 19 THEN 'LINE' 
191212                 WHEN 20 THEN 'LINE' 
191213                 WHEN 21 THEN 'LINE' 
191214                 WHEN 22 THEN 'LINE' 
191215                 WHEN 23 THEN 'LINE' 
191216                 WHEN 24 THEN 'LINE' 
191217                 WHEN 25 THEN 'LINE' 
191218                 
191219                 ELSE null
191220               END                           object_type_code
191221             , CASE r
191222                 WHEN 1 THEN '200' 
191223                 WHEN 2 THEN '200' 
191224                 WHEN 3 THEN '200' 
191225                 WHEN 4 THEN '200' 
191226                 WHEN 5 THEN '200' 
191227                 WHEN 6 THEN '200' 
191228                 WHEN 7 THEN '200' 
191229                 WHEN 8 THEN '200' 
191230                 WHEN 9 THEN '200' 
191231                 WHEN 10 THEN '200' 
191232                 WHEN 11 THEN '200' 
191233                 WHEN 12 THEN '200' 
191234                 WHEN 13 THEN '200' 
191235                 WHEN 14 THEN '200' 
191236                 WHEN 15 THEN '200' 
191237                 WHEN 16 THEN '200' 
191238                 WHEN 17 THEN '200' 
191239                 WHEN 18 THEN '200' 
191240                 WHEN 19 THEN '200' 
191241                 WHEN 20 THEN '200' 
191242                 WHEN 21 THEN '200' 
191243                 WHEN 22 THEN '200' 
191244                 WHEN 23 THEN '200' 
191245                 WHEN 24 THEN '200' 
191246                 WHEN 25 THEN '200' 
191247                 
191248                 ELSE null
191249               END                           source_application_id
191250             , 'S'             source_type_code
191251             , CASE r
191252                 WHEN 1 THEN 'AID_DIST_CCID' 
191253                 WHEN 2 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
191254                 WHEN 3 THEN 'TAX_ACCOUNT_CCID' 
191255                 WHEN 4 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
191256                 WHEN 5 THEN 'DISTRIBUTION_LINK_TYPE' 
191257                 WHEN 6 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
191258                 WHEN 7 THEN 'BUS_FLOW_AP_APP_ID' 
191262                 WHEN 11 THEN 'BUS_FLOW_INV_ID' 
191259                 WHEN 8 THEN 'BUS_FLOW_INV_DIST_TYPE' 
191260                 WHEN 9 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
191261                 WHEN 10 THEN 'BUS_FLOW_INV_DIST_ID' 
191263                 WHEN 12 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
191264                 WHEN 13 THEN 'APHD_AMOUNT' 
191265                 WHEN 14 THEN 'BUS_FLOW_PAYMENT_DIST_TYPE' 
191266                 WHEN 15 THEN 'BUS_FLOW_PAYMENT_ENTITY_CODE' 
191267                 WHEN 16 THEN 'BUS_FLOW_PAYMENT_DIST_ID' 
191268                 WHEN 17 THEN 'BUS_FLOW_PAYMENT_ID' 
191269                 WHEN 18 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
191270                 WHEN 19 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
191271                 WHEN 20 THEN 'APHD_PAYMENT_BASE_AMT' 
191272                 WHEN 21 THEN 'APHD_INVOICE_BASE_AMT' 
191273                 WHEN 22 THEN 'APHD_MATURED_BASE_AMOUNT' 
191274                 WHEN 23 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
191275                 WHEN 24 THEN 'PMT_MAT_BASE_AMT_DIFF' 
191276                 WHEN 25 THEN 'PMT_MAT_GAIN_LOSS_INDICATOR' 
191277                 
191278                 ELSE null
191279               END                           source_code
191280             , CASE r
191281                 WHEN 1 THEN TO_CHAR(l1.AID_DIST_CCID)
191282                 WHEN 2 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
191283                 WHEN 3 THEN TO_CHAR(l4.TAX_ACCOUNT_CCID)
191284                 WHEN 4 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
191285                 WHEN 5 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
191286                 WHEN 6 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
191287                 WHEN 7 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
191288                 WHEN 8 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
191289                 WHEN 9 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
191290                 WHEN 10 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
191291                 WHEN 11 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
191292                 WHEN 12 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
191293                 WHEN 13 THEN TO_CHAR(l1.APHD_AMOUNT)
191294                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_TYPE)
191295                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ENTITY_CODE)
191296                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_ID)
191297                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ID)
191298                 WHEN 18 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
191299                 WHEN 19 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
191300                 WHEN 20 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
191301                 WHEN 21 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
191302                 WHEN 22 THEN TO_CHAR(l1.APHD_MATURED_BASE_AMOUNT)
191303                 WHEN 23 THEN TO_CHAR(l4.DEF_REC_SETTLEMENT_OPTION_CODE)
191304                 WHEN 24 THEN TO_CHAR(l1.PMT_MAT_BASE_AMT_DIFF)
191305                 WHEN 25 THEN TO_CHAR(l1.PMT_MAT_GAIN_LOSS_INDICATOR)
191306                 
191307                 ELSE null
191308               END                           source_value
191309             , CASE r
191310                 WHEN 2 THEN fvl21.meaning
191311                 WHEN 6 THEN fvl68.meaning
191312                 WHEN 12 THEN fvl90.meaning
191313                 WHEN 23 THEN fvl130.meaning
191314                 
191315                 ELSE null
191316               END               source_meaning
191317          FROM  xla_events_gt     xet  
191318         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
191319         , ZX_AP_DEF_TAX_EXTRACT_V  l4
191320   , fnd_lookup_values    fvl21
191321   , fnd_lookup_values    fvl68
191322   , fnd_lookup_values    fvl90
191323   , fnd_lookup_values    fvl130
191324             , (select rownum r from all_objects where rownum <= 25 and owner = p_apps_owner)
191325         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
191326           AND xet.event_class_code = C_EVENT_CLASS_CODE
191327             AND l1.event_id          = xet.event_id
191328  AND l1.aid_detail_tax_dist_id = l4.rec_nrec_tax_dist_id (+)    AND fvl21.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
191329   AND fvl21.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
191330   AND fvl21.view_application_id(+) = 200
191331   AND fvl21.language(+)            = USERENV('LANG')
191332      AND fvl68.lookup_type(+)         = 'YES_NO'
191333   AND fvl68.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
191334   AND fvl68.view_application_id(+) = 0
191335   AND fvl68.language(+)            = USERENV('LANG')
191336      AND fvl90.lookup_type(+)         = 'PAY_DIST_TYPES'
191337   AND fvl90.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
191338   AND fvl90.view_application_id(+) = 200
191339   AND fvl90.language(+)            = USERENV('LANG')
191340      AND fvl130.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
191341   AND fvl130.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
191342   AND fvl130.view_application_id(+) = 0
191343   AND fvl130.language(+)            = USERENV('LANG')
191344   
191345 )
191346 ;
191347 --
191348 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
191349 
191350       trace
191351          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
191352          ,p_level    => C_LEVEL_STATEMENT
191353          ,p_module   => l_log_module);
191354 
191355 END IF;
191356 
191357 
191358 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
191359       trace
191360          (p_msg      => 'END of insert_sources_293'
191361          ,p_level    => C_LEVEL_PROCEDURE
191362          ,p_module   => l_log_module);
191363 END IF;
191364 EXCEPTION
191365   WHEN xla_exceptions_pkg.application_exception THEN
191366       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
191367             trace
191368                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
191369                ,p_level    => C_LEVEL_EXCEPTION
191370                ,p_module   => l_log_module);
191371       END IF;
191372       RAISE;
191373   WHEN OTHERS THEN
191377                ,p_level    => C_LEVEL_EXCEPTION
191374       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
191375             trace
191376                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
191378                ,p_module   => l_log_module);
191379        END IF;
191380        xla_exceptions_pkg.raise_message
191381            (p_location => 'XLA_00200_AAD_S_000006_PKG.insert_sources_293');
191382 END insert_sources_293;
191383 --
191384 
191385 ---------------------------------------
191386 --
191387 -- PRIVATE FUNCTION
191388 --         EventClass_293
191389 --
191390 ----------------------------------------
191391 --
191392 FUNCTION EventClass_293
191393        (p_application_id         IN NUMBER
191394        ,p_base_ledger_id         IN NUMBER
191395        ,p_target_ledger_id       IN NUMBER
191396        ,p_language               IN VARCHAR2
191397        ,p_currency_code          IN VARCHAR2
191398        ,p_sla_ledger_id          IN NUMBER
191399        ,p_pad_start_date         IN DATE
191400        ,p_pad_end_date           IN DATE
191401        ,p_primary_ledger_id      IN NUMBER)
191402 RETURN BOOLEAN IS
191403 --
191404 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'FUTURE DATED PAYMENTS_ALL';
191405 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'FUTURE DATED PAYMENTS';
191406 
191407 l_calculate_acctd_flag   VARCHAR2(1) :='N';
191408 l_calculate_g_l_flag     VARCHAR2(1) :='N';
191409 --
191410 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
191411 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
191412 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
191413 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
191414 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
191415 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
191416 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
191417 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
191418 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
191419 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
191420 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
191421 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
191422 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
191423 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
191424 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
191425 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
191426 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
191427 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
191428 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
191429 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
191430 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
191431 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
191432 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
191433 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
191434 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
191435 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
191436 
191437 l_event_id                             NUMBER;
191438 l_previous_event_id                    NUMBER;
191439 l_first_event_id                       NUMBER;
191440 l_last_event_id                        NUMBER;
191441 
191442 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
191443 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
191444 --
191445 --
191446 l_result                    BOOLEAN := TRUE;
191447 l_rows                      NUMBER  := 1000;
191448 l_event_type_name           VARCHAR2(80) := 'All';
191449 l_event_class_name          VARCHAR2(80) := 'Future Dated Payments';
191450 l_description               VARCHAR2(4000);
191451 l_transaction_reversal      NUMBER;
191452 l_ae_header_id              NUMBER;
191453 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
191454 l_log_module                VARCHAR2(240);
191455 --
191456 l_acct_reversal_source      VARCHAR2(30);
191457 l_trx_reversal_source       VARCHAR2(30);
191458 
191459 l_continue_with_lines       BOOLEAN := TRUE;
191460 --
191461 l_acc_rev_gl_date_source    DATE;                      -- 4262811
191462 --
191463 type t_array_event_id is table of number index by binary_integer;
191464 
191465 l_rec_array_event                    t_rec_array_event;
191466 l_null_rec_array_event               t_rec_array_event;
191467 l_array_ae_header_id                 xla_number_array_type;
191468 l_actual_flag                        VARCHAR2(1) := NULL;
191469 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
191470 l_balance_type_code                  VARCHAR2(1) :=NULL;
191471 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
191472 
191473 --
191474 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
191475 --
191476 
191477 TYPE t_array_source_3 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
191478 TYPE t_array_source_5 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
191479 TYPE t_array_source_23 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
191480 TYPE t_array_source_24 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
191481 TYPE t_array_source_25 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
191485 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
191482 TYPE t_array_source_26 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
191483 TYPE t_array_source_27 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
191484 TYPE t_array_source_35 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
191486 TYPE t_array_source_71 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
191487 TYPE t_array_source_89 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
191488 TYPE t_array_source_102 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
191489 TYPE t_array_source_103 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
191490 TYPE t_array_source_105 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
191491 TYPE t_array_source_106 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
191492 TYPE t_array_source_107 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
191493 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
191494 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
191495 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
191496 TYPE t_array_source_169 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
191497 TYPE t_array_source_170 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
191498 TYPE t_array_source_171 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
191499 
191500 TYPE t_array_source_18 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
191501 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
191502 TYPE t_array_source_40 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
191503 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
191504 TYPE t_array_source_43 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
191505 TYPE t_array_source_68 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
191506 TYPE t_array_source_79 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
191507 TYPE t_array_source_80 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
191508 TYPE t_array_source_81 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
191509 TYPE t_array_source_82 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
191510 TYPE t_array_source_83 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
191511 TYPE t_array_source_90 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
191512 TYPE t_array_source_91 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
191513 TYPE t_array_source_92 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
191514 TYPE t_array_source_93 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
191515 TYPE t_array_source_94 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
191516 TYPE t_array_source_95 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ID%TYPE INDEX BY BINARY_INTEGER;
191517 TYPE t_array_source_96 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
191518 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
191519 TYPE t_array_source_108 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
191520 TYPE t_array_source_109 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
191521 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_MATURED_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
191522 TYPE t_array_source_130 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
191523 TYPE t_array_source_149 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_MAT_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
191524 TYPE t_array_source_156 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_MAT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
191525 
191526 l_array_source_3              t_array_source_3;
191527 l_array_source_3_meaning      t_array_lookup_meaning;
191528 l_array_source_5              t_array_source_5;
191529 l_array_source_23              t_array_source_23;
191530 l_array_source_24              t_array_source_24;
191531 l_array_source_25              t_array_source_25;
191532 l_array_source_26              t_array_source_26;
191533 l_array_source_27              t_array_source_27;
191534 l_array_source_35              t_array_source_35;
191535 l_array_source_35_meaning      t_array_lookup_meaning;
191536 l_array_source_37              t_array_source_37;
191537 l_array_source_71              t_array_source_71;
191538 l_array_source_89              t_array_source_89;
191539 l_array_source_102              t_array_source_102;
191540 l_array_source_103              t_array_source_103;
191541 l_array_source_105              t_array_source_105;
191542 l_array_source_105_meaning      t_array_lookup_meaning;
191543 l_array_source_106              t_array_source_106;
191544 l_array_source_107              t_array_source_107;
191545 l_array_source_110              t_array_source_110;
191546 l_array_source_111              t_array_source_111;
191547 l_array_source_112              t_array_source_112;
191548 l_array_source_169              t_array_source_169;
191549 l_array_source_170              t_array_source_170;
191553 l_array_source_21      t_array_source_21;
191550 l_array_source_171              t_array_source_171;
191551 
191552 l_array_source_18      t_array_source_18;
191554 l_array_source_21_meaning      t_array_lookup_meaning;
191555 l_array_source_40      t_array_source_40;
191556 l_array_source_41      t_array_source_41;
191557 l_array_source_43      t_array_source_43;
191558 l_array_source_68      t_array_source_68;
191559 l_array_source_68_meaning      t_array_lookup_meaning;
191560 l_array_source_79      t_array_source_79;
191561 l_array_source_80      t_array_source_80;
191562 l_array_source_81      t_array_source_81;
191563 l_array_source_82      t_array_source_82;
191564 l_array_source_83      t_array_source_83;
191565 l_array_source_90      t_array_source_90;
191566 l_array_source_90_meaning      t_array_lookup_meaning;
191567 l_array_source_91      t_array_source_91;
191568 l_array_source_92      t_array_source_92;
191569 l_array_source_93      t_array_source_93;
191570 l_array_source_94      t_array_source_94;
191571 l_array_source_95      t_array_source_95;
191572 l_array_source_96      t_array_source_96;
191573 l_array_source_104      t_array_source_104;
191574 l_array_source_108      t_array_source_108;
191575 l_array_source_109      t_array_source_109;
191576 l_array_source_114      t_array_source_114;
191577 l_array_source_130      t_array_source_130;
191578 l_array_source_130_meaning      t_array_lookup_meaning;
191579 l_array_source_149      t_array_source_149;
191580 l_array_source_156      t_array_source_156;
191581 
191582 --
191583 CURSOR header_cur
191584 IS
191585 SELECT /*+ leading(xet) cardinality(xet,1) */
191586 -- Event Class Code: FUTURE DATED PAYMENTS
191587     xet.entity_id
191588    ,xet.legal_entity_id
191589    ,xet.entity_code
191590    ,xet.transaction_number
191591    ,xet.event_id
191592    ,xet.event_class_code
191593    ,xet.event_type_code
191594    ,xet.event_number
191595    ,xet.event_date
191596    ,xet.transaction_date
191597    ,xet.reference_num_1
191598    ,xet.reference_num_2
191599    ,xet.reference_num_3
191600    ,xet.reference_num_4
191601    ,xet.reference_char_1
191602    ,xet.reference_char_2
191603    ,xet.reference_char_3
191604    ,xet.reference_char_4
191605    ,xet.reference_date_1
191606    ,xet.reference_date_2
191607    ,xet.reference_date_3
191608    ,xet.reference_date_4
191609    ,xet.event_created_by
191610    ,xet.budgetary_control_flag 
191611   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_3
191612   , fvl3.meaning   source_3_meaning
191613   , h2.CGAC_AP_ASSET_CCID    source_5
191614   , h2.CGAC_CASH_CLEARING_CCID    source_23
191615   , h2.CGAC_GAIN_CCID    source_24
191616   , h3.ASP_GAIN_CCID    source_25
191617   , h2.CGAC_LOSS_CCID    source_26
191618   , h3.ASP_LOSS_CCID    source_27
191619   , h3.ASP_AUTO_OFFSET_FLAG    source_35
191620   , fvl35.meaning   source_35_meaning
191621   , h3.ASP_ROUNDING_ERROR_CCID    source_37
191622   , h2.THIRD_PARTY_TYPE    source_71
191623   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_89
191624   , h2.AC_VENDOR_ID    source_102
191625   , h2.AC_VENDOR_SITE_ID    source_103
191626   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_105
191627   , fvl105.meaning   source_105_meaning
191628   , h2.AC_CURRENCY_CODE    source_106
191629   , h2.AC_FUTURE_PAY_DUE_DATE    source_107
191630   , h2.AC_EXCHANGE_DATE    source_110
191631   , h2.AC_EXCHANGE_RATE    source_111
191632   , h2.AC_EXCHANGE_RATE_TYPE    source_112
191633   , h2.AC_DOC_CATEGORY_CODE    source_169
191634   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_170
191635   , h2.AC_DOC_SEQUENCE_VALUE    source_171
191636   FROM xla_events_gt     xet 
191637   , AP_PAYMENT_EXTRACT_HEADER_V  h2
191638   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
191639   , fnd_lookup_values    fvl3
191640   , fnd_lookup_values    fvl35
191641   , fnd_lookup_values    fvl105
191642  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
191643    and xet.event_class_code = C_EVENT_CLASS_CODE
191644    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
191645  AND h3.asp_org_id = h2.ac_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
191646   AND fvl3.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
191647   AND fvl3.view_application_id(+) = 200
191648   AND fvl3.language(+)            = USERENV('LANG')
191649      AND fvl35.lookup_type(+)         = 'YES_NO'
191650   AND fvl35.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
191651   AND fvl35.view_application_id(+) = 0
191652   AND fvl35.language(+)            = USERENV('LANG')
191653      AND fvl105.lookup_type(+)         = 'YES_NO'
191654   AND fvl105.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
191655   AND fvl105.view_application_id(+) = 0
191656   AND fvl105.language(+)            = USERENV('LANG')
191657   
191658  ORDER BY event_id
191659 ;
191660 
191661 
191662 --
191663 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
191664 IS
191665 SELECT  /*+ leading(xet) cardinality(xet,1) */
191666 -- Event Class Code: FUTURE DATED PAYMENTS
191667     xet.entity_id
191668    ,xet.legal_entity_id
191669    ,xet.entity_code
191670    ,xet.transaction_number
191671    ,xet.event_id
191672    ,xet.event_class_code
191673    ,xet.event_type_code
191674    ,xet.event_number
191675    ,xet.event_date
191676    ,xet.transaction_date
191677    ,xet.reference_num_1
191678    ,xet.reference_num_2
191679    ,xet.reference_num_3
191680    ,xet.reference_num_4
191681    ,xet.reference_char_1
191682    ,xet.reference_char_2
191683    ,xet.reference_char_3
191684    ,xet.reference_char_4
191685    ,xet.reference_date_1
191686    ,xet.reference_date_2
191687    ,xet.reference_date_3
191688    ,xet.reference_date_4
191689    ,xet.event_created_by
191690    ,xet.budgetary_control_flag
191691  , l1.LINE_NUMBER  
191695   , l4.TAX_ACCOUNT_CCID    source_40
191692   , l1.AID_DIST_CCID    source_18
191693   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_21
191694   , fvl21.meaning   source_21_meaning
191696   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_41
191697   , l1.DISTRIBUTION_LINK_TYPE    source_43
191698   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_68
191699   , fvl68.meaning   source_68_meaning
191700   , l1.BUS_FLOW_AP_APP_ID    source_79
191701   , l1.BUS_FLOW_INV_DIST_TYPE    source_80
191702   , l1.BUS_FLOW_INV_ENTITY_CODE    source_81
191703   , l1.BUS_FLOW_INV_DIST_ID    source_82
191704   , l1.BUS_FLOW_INV_ID    source_83
191705   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_90
191706   , fvl90.meaning   source_90_meaning
191707   , l1.APHD_AMOUNT    source_91
191708   , l1.BUS_FLOW_PAYMENT_DIST_TYPE    source_92
191709   , l1.BUS_FLOW_PAYMENT_ENTITY_CODE    source_93
191710   , l1.BUS_FLOW_PAYMENT_DIST_ID    source_94
191711   , l1.BUS_FLOW_PAYMENT_ID    source_95
191712   , l1.APHD_PAYMENT_HIST_DIST_ID    source_96
191713   , l1.APHD_REV_PAY_HIST_DIST_ID    source_104
191714   , l1.APHD_PAYMENT_BASE_AMT    source_108
191715   , l1.APHD_INVOICE_BASE_AMT    source_109
191716   , l1.APHD_MATURED_BASE_AMOUNT    source_114
191717   , l4.DEF_REC_SETTLEMENT_OPTION_CODE    source_130
191718   , fvl130.meaning   source_130_meaning
191719   , l1.PMT_MAT_BASE_AMT_DIFF    source_149
191720   , l1.PMT_MAT_GAIN_LOSS_INDICATOR    source_156
191721   FROM xla_events_gt     xet 
191722   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
191723   , ZX_AP_DEF_TAX_EXTRACT_V  l4
191724   , fnd_lookup_values    fvl21
191725   , fnd_lookup_values    fvl68
191726   , fnd_lookup_values    fvl90
191727   , fnd_lookup_values    fvl130
191728  WHERE xet.event_id between x_first_event_id and x_last_event_id
191729    and xet.event_date between p_pad_start_date and p_pad_end_date
191730    and xet.event_class_code = C_EVENT_CLASS_CODE
191731    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
191732  AND l1.AID_DETAIL_TAX_DIST_ID = l4.REC_NREC_TAX_DIST_ID (+)    AND fvl21.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
191733   AND fvl21.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
191734   AND fvl21.view_application_id(+) = 200
191735   AND fvl21.language(+)            = USERENV('LANG')
191736      AND fvl68.lookup_type(+)         = 'YES_NO'
191737   AND fvl68.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
191738   AND fvl68.view_application_id(+) = 0
191739   AND fvl68.language(+)            = USERENV('LANG')
191740      AND fvl90.lookup_type(+)         = 'PAY_DIST_TYPES'
191741   AND fvl90.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
191742   AND fvl90.view_application_id(+) = 200
191743   AND fvl90.language(+)            = USERENV('LANG')
191744      AND fvl130.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
191745   AND fvl130.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
191746   AND fvl130.view_application_id(+) = 0
191747   AND fvl130.language(+)            = USERENV('LANG')
191748   ;
191749 
191750 --
191751 BEGIN
191752 IF g_log_enabled THEN
191753    l_log_module := C_DEFAULT_MODULE||'.EventClass_293';
191754 END IF;
191755 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
191756    trace
191757       (p_msg      => 'BEGIN of EventClass_293'
191758       ,p_level    => C_LEVEL_PROCEDURE
191759       ,p_module   => l_log_module);
191760 END IF;
191761 
191762 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
191763    trace
191764       (p_msg      => 'p_application_id = '||p_application_id||
191765                      ' - p_base_ledger_id = '||p_base_ledger_id||
191766                      ' - p_target_ledger_id  = '||p_target_ledger_id||
191767                      ' - p_language = '||p_language||
191768                      ' - p_currency_code = '||p_currency_code||
191769                      ' - p_sla_ledger_id = '||p_sla_ledger_id
191770       ,p_level    => C_LEVEL_STATEMENT
191771       ,p_module   => l_log_module);
191772 END IF;
191773 --
191774 -- initialze arrays
191775 --
191776 g_array_event.DELETE;
191777 l_rec_array_event := l_null_rec_array_event;
191778 --
191779 --------------------------------------
191780 -- 4262811 Initialze MPA Line Number
191781 --------------------------------------
191782 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
191783 
191784 --
191785 
191786 --
191787 OPEN header_cur;
191788 --
191789 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
191790    trace
191791    (p_msg      => 'SQL - FETCH header_cur'
191792    ,p_level    => C_LEVEL_STATEMENT
191793    ,p_module   => l_log_module);
191794 END IF;
191795 --
191796 LOOP
191797 FETCH header_cur BULK COLLECT INTO
191798         l_array_entity_id
191799       , l_array_legal_entity_id
191800       , l_array_entity_code
191801       , l_array_transaction_num
191802       , l_array_event_id
191803       , l_array_class_code
191804       , l_array_event_type
191805       , l_array_event_number
191806       , l_array_event_date
191807       , l_array_transaction_date
191808       , l_array_reference_num_1
191809       , l_array_reference_num_2
191810       , l_array_reference_num_3
191811       , l_array_reference_num_4
191812       , l_array_reference_char_1
191813       , l_array_reference_char_2
191814       , l_array_reference_char_3
191815       , l_array_reference_char_4
191816       , l_array_reference_date_1
191817       , l_array_reference_date_2
191818       , l_array_reference_date_3
191819       , l_array_reference_date_4
191820       , l_array_event_created_by
191821       , l_array_budgetary_control_flag 
191822       , l_array_source_3
191823       , l_array_source_3_meaning
191824       , l_array_source_5
191825       , l_array_source_23
191826       , l_array_source_24
191827       , l_array_source_25
191828       , l_array_source_26
191829       , l_array_source_27
191833       , l_array_source_71
191830       , l_array_source_35
191831       , l_array_source_35_meaning
191832       , l_array_source_37
191834       , l_array_source_89
191835       , l_array_source_102
191836       , l_array_source_103
191837       , l_array_source_105
191838       , l_array_source_105_meaning
191839       , l_array_source_106
191840       , l_array_source_107
191841       , l_array_source_110
191842       , l_array_source_111
191843       , l_array_source_112
191844       , l_array_source_169
191845       , l_array_source_170
191846       , l_array_source_171
191847       LIMIT l_rows;
191848 --
191849 IF (C_LEVEL_EVENT >= g_log_level) THEN
191850    trace
191851    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
191852    ,p_level    => C_LEVEL_EVENT
191853    ,p_module   => l_log_module);
191854 END IF;
191855 --
191856 EXIT WHEN l_array_entity_id.COUNT = 0;
191857 
191858 -- initialize arrays
191859 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
191860 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
191861 
191862 --
191863 -- Bug 4458708
191864 --
191865 XLA_AE_LINES_PKG.g_LineNumber := 0;
191866 
191867 
191868 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
191869 g_last_hdr_idx := l_array_event_id.LAST;
191870 --
191871 -- loop for the headers. Each iteration is for each header extract row
191872 -- fetched in header cursor
191873 --
191874 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
191875 
191876 --
191877 -- set event info as cache for other routines to refer event attributes
191878 --
191879 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
191880    (p_application_id           => p_application_id
191881    ,p_primary_ledger_id        => p_primary_ledger_id
191882    ,p_base_ledger_id           => p_base_ledger_id
191883    ,p_target_ledger_id         => p_target_ledger_id
191884    ,p_entity_id                => l_array_entity_id(hdr_idx)
191885    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
191886    ,p_entity_code              => l_array_entity_code(hdr_idx)
191887    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
191888    ,p_event_id                 => l_array_event_id(hdr_idx)
191889    ,p_event_class_code         => l_array_class_code(hdr_idx)
191890    ,p_event_type_code          => l_array_event_type(hdr_idx)
191891    ,p_event_number             => l_array_event_number(hdr_idx)
191892    ,p_event_date               => l_array_event_date(hdr_idx)
191893    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
191894    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
191895    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
191896    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
191897    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
191898    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
191899    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
191900    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
191901    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
191902    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
191903    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
191904    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
191905    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
191906    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
191907    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
191908 
191909 --
191910 -- set the status of entry to C_VALID (0)
191911 --
191912 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
191913 
191914 --
191915 -- initialize a row for ae header
191916 --
191917 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
191918 
191919 l_event_id := l_array_event_id(hdr_idx);
191920 
191921 --
191922 -- storing the hdr_idx for event. May be used by line cursor.
191923 --
191924 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
191925 
191926 --
191927 -- store sources from header extract. This can be improved to
191928 -- store only those sources from header extract that may be used in lines
191929 --
191930 
191931 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
191932 g_array_event(l_event_id).array_value_char('source_3_meaning') := l_array_source_3_meaning(hdr_idx);
191933 g_array_event(l_event_id).array_value_num('source_5') := l_array_source_5(hdr_idx);
191934 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
191935 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
191936 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
191937 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
191938 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
191939 g_array_event(l_event_id).array_value_char('source_35') := l_array_source_35(hdr_idx);
191940 g_array_event(l_event_id).array_value_char('source_35_meaning') := l_array_source_35_meaning(hdr_idx);
191941 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
191942 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
191943 g_array_event(l_event_id).array_value_char('source_89') := l_array_source_89(hdr_idx);
191944 g_array_event(l_event_id).array_value_num('source_102') := l_array_source_102(hdr_idx);
191945 g_array_event(l_event_id).array_value_num('source_103') := l_array_source_103(hdr_idx);
191949 g_array_event(l_event_id).array_value_date('source_107') := l_array_source_107(hdr_idx);
191946 g_array_event(l_event_id).array_value_char('source_105') := l_array_source_105(hdr_idx);
191947 g_array_event(l_event_id).array_value_char('source_105_meaning') := l_array_source_105_meaning(hdr_idx);
191948 g_array_event(l_event_id).array_value_char('source_106') := l_array_source_106(hdr_idx);
191950 g_array_event(l_event_id).array_value_date('source_110') := l_array_source_110(hdr_idx);
191951 g_array_event(l_event_id).array_value_num('source_111') := l_array_source_111(hdr_idx);
191952 g_array_event(l_event_id).array_value_char('source_112') := l_array_source_112(hdr_idx);
191953 g_array_event(l_event_id).array_value_char('source_169') := l_array_source_169(hdr_idx);
191954 g_array_event(l_event_id).array_value_num('source_170') := l_array_source_170(hdr_idx);
191955 g_array_event(l_event_id).array_value_num('source_171') := l_array_source_171(hdr_idx);
191956 
191957 --
191958 -- initilaize the status of ae headers for diffrent balance types
191959 -- the status is initialised to C_NOT_CREATED (2)
191960 --
191961 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
191962 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
191963 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
191964 
191965 --
191966 -- call api to validate and store accounting attributes for header
191967 --
191968 
191969 ------------------------------------------------------------
191970 -- Accrual Reversal : to get date for Standard Source (NONE)
191971 ------------------------------------------------------------
191972 l_acc_rev_gl_date_source := NULL;
191973 
191974      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
191975       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_169');
191976      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
191977       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_170');
191978      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
191979       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_171');
191980      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
191981       l_rec_acct_attrs.array_date_value(4) := 
191982 xla_ae_sources_pkg.GetSystemSourceDate(
191983    p_source_code           => 'XLA_EVENT_DATE'
191984  , p_source_type_code      => 'Y'
191985  , p_source_application_id =>  602
191986 );
191987 
191988 
191989 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
191990 
191991 XLA_AE_HEADER_PKG.SetJeCategoryName;
191992 
191993 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
191994 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
191995 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
191996 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
191997 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
191998 
191999 
192000 -- No header level analytical criteria
192001 
192002 --
192003 --accounting attribute enhancement, bug 3612931
192004 --
192005 l_trx_reversal_source := SUBSTR(NULL, 1,30);
192006 
192007 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
192008    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
192009 
192010    xla_accounting_err_pkg.build_message
192011       (p_appli_s_name            => 'XLA'
192012       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
192013       ,p_token_1                 => 'ACCT_ATTR_NAME'
192014       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
192015       ,p_token_2                 => 'PRODUCT_NAME'
192016       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
192017       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
192018       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
192019       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
192020 
192021 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
192022    --
192023    -- following sets the accounting attributes needed to reverse
192024    -- accounting for a distributeion
192025    --
192026    xla_ae_lines_pkg.SetTrxReversalAttrs
192027       (p_event_id              => l_event_id
192028       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
192029       ,p_trx_reversal_source   => l_trx_reversal_source);
192030 
192031 END IF;
192032 
192033 
192034 ----------------------------------------------------------------
192035 -- 4262811 -  update the header statuses to invalid in need be
192036 ----------------------------------------------------------------
192037 --
192038 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
192039 
192040 
192041   -----------------------------------------------
192042   -- No accrual reversal for the event class/type
192043   -----------------------------------------------
192044 ----------------------------------------------------------------
192045 
192046 --
192047 -- this ends the header loop iteration for one bulk fetch
192048 --
192049 END LOOP;
192050 
192051 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
192052 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
192053 
192054 --
192055 -- insert dummy rows into lines gt table that were created due to
192056 -- transaction reversals
192057 --
192058 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
192059    l_result := XLA_AE_LINES_PKG.InsertLines;
192060 END IF;
192064 -- cursor rather than doing it for each new event in line cursor
192061 
192062 --
192063 -- reset the temp_line_num for each set of events fetched from header
192065 -- Bug 3939231
192066 --
192067 xla_ae_lines_pkg.g_temp_line_num := 0;
192068 
192069 
192070 
192071 --
192072 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
192073 --
192074 --
192075 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
192076 
192077       trace
192078          (p_msg      => 'SQL - FETCH line_cur'
192079          ,p_level    => C_LEVEL_STATEMENT
192080          ,p_module   => l_log_module);
192081 
192082 END IF;
192083 --
192084 --
192085 LOOP
192086   --
192087   FETCH line_cur BULK COLLECT INTO
192088         l_array_entity_id
192089       , l_array_legal_entity_id
192090       , l_array_entity_code
192091       , l_array_transaction_num
192092       , l_array_event_id
192093       , l_array_class_code
192094       , l_array_event_type
192095       , l_array_event_number
192096       , l_array_event_date
192097       , l_array_transaction_date
192098       , l_array_reference_num_1
192099       , l_array_reference_num_2
192100       , l_array_reference_num_3
192101       , l_array_reference_num_4
192102       , l_array_reference_char_1
192103       , l_array_reference_char_2
192104       , l_array_reference_char_3
192105       , l_array_reference_char_4
192106       , l_array_reference_date_1
192107       , l_array_reference_date_2
192108       , l_array_reference_date_3
192109       , l_array_reference_date_4
192110       , l_array_event_created_by
192111       , l_array_budgetary_control_flag
192112       , l_array_extract_line_num 
192113       , l_array_source_18
192114       , l_array_source_21
192115       , l_array_source_21_meaning
192116       , l_array_source_40
192117       , l_array_source_41
192118       , l_array_source_43
192119       , l_array_source_68
192120       , l_array_source_68_meaning
192121       , l_array_source_79
192122       , l_array_source_80
192123       , l_array_source_81
192124       , l_array_source_82
192125       , l_array_source_83
192126       , l_array_source_90
192127       , l_array_source_90_meaning
192128       , l_array_source_91
192129       , l_array_source_92
192130       , l_array_source_93
192131       , l_array_source_94
192132       , l_array_source_95
192133       , l_array_source_96
192134       , l_array_source_104
192135       , l_array_source_108
192136       , l_array_source_109
192137       , l_array_source_114
192138       , l_array_source_130
192139       , l_array_source_130_meaning
192140       , l_array_source_149
192141       , l_array_source_156
192142       LIMIT l_rows;
192143 
192144   --
192145   IF (C_LEVEL_EVENT >= g_log_level) THEN
192146             trace
192147                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
192148                ,p_level    => C_LEVEL_EVENT
192149                ,p_module   => l_log_module);
192150   END IF;
192151   --
192152   EXIT WHEN l_array_entity_id.count = 0;
192153 
192154   XLA_AE_LINES_PKG.g_rec_lines := null;
192155 
192156 --
192157 -- Bug 4458708
192158 --
192159 XLA_AE_LINES_PKG.g_LineNumber := 0;
192160 --
192161 --
192162 
192163 FOR Idx IN 1..l_array_event_id.count LOOP
192164    --
192165    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
192166    --
192167    l_event_id := l_array_event_id(idx);  -- 5648433
192168 
192169    --
192170    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
192171    --
192172 
192173    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
192174              (g_array_event(l_event_id).array_value_num('header_index'))
192175          ,'N'
192176          ) <> 'Y'
192177    THEN
192178       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
192179          trace
192180             (p_msg      => 'Trancaction revesal option is not Y '
192181             ,p_level    => C_LEVEL_STATEMENT
192182             ,p_module   => l_log_module);
192183       END IF;
192184 
192185 --
192186 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
192187 --
192188 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
192189 --
192190 -- set event info as cache for other routines to refer event attributes
192191 --
192192 
192193 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
192194    l_previous_event_id := l_event_id;
192195 
192196    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
192197       (p_application_id           => p_application_id
192198       ,p_primary_ledger_id        => p_primary_ledger_id
192199       ,p_base_ledger_id           => p_base_ledger_id
192200       ,p_target_ledger_id         => p_target_ledger_id
192201       ,p_entity_id                => l_array_entity_id(Idx)
192202       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
192203       ,p_entity_code              => l_array_entity_code(Idx)
192204       ,p_transaction_num          => l_array_transaction_num(Idx)
192205       ,p_event_id                 => l_array_event_id(Idx)
192206       ,p_event_class_code         => l_array_class_code(Idx)
192207       ,p_event_type_code          => l_array_event_type(Idx)
192208       ,p_event_number             => l_array_event_number(Idx)
192209       ,p_event_date               => l_array_event_date(Idx)
192210       ,p_transaction_date         => l_array_transaction_date(Idx)
192211       ,p_reference_num_1          => l_array_reference_num_1(Idx)
192212       ,p_reference_num_2          => l_array_reference_num_2(Idx)
192213       ,p_reference_num_3          => l_array_reference_num_3(Idx)
192217       ,p_reference_char_3         => l_array_reference_char_3(Idx)
192214       ,p_reference_num_4          => l_array_reference_num_4(Idx)
192215       ,p_reference_char_1         => l_array_reference_char_1(Idx)
192216       ,p_reference_char_2         => l_array_reference_char_2(Idx)
192218       ,p_reference_char_4         => l_array_reference_char_4(Idx)
192219       ,p_reference_date_1         => l_array_reference_date_1(Idx)
192220       ,p_reference_date_2         => l_array_reference_date_2(Idx)
192221       ,p_reference_date_3         => l_array_reference_date_3(Idx)
192222       ,p_reference_date_4         => l_array_reference_date_4(Idx)
192223       ,p_event_created_by         => l_array_event_created_by(Idx)
192224       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
192225        --
192226 END IF;
192227 
192228 
192229 
192230 --
192231 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
192232 
192233 l_acct_reversal_source := SUBSTR(l_array_source_41(Idx), 1,30);
192234 
192235 IF l_continue_with_lines THEN
192236    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
192237       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
192238 
192239       xla_accounting_err_pkg.build_message
192240          (p_appli_s_name            => 'XLA'
192241          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
192242          ,p_token_1                 => 'LINE_NUMBER'
192243          ,p_value_1                 => l_array_extract_line_num(Idx)
192244          ,p_token_2                 => 'PRODUCT_NAME'
192245          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
192246          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
192247          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
192248          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
192249 
192250    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
192251       --
192252       -- following sets the accounting attributes needed to reverse
192253       -- accounting for a distributeion
192254       --
192255 
192256       --
192257       -- 5217187
192258       --
192259       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
192260       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
192261                                        g_array_event(l_event_id).array_value_num('header_index'));
192262       --
192263       --
192264 
192265       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
192266       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_41(Idx);
192267       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
192268       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_96(Idx);
192269       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
192270       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_43(Idx);
192271       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
192272       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_71');
192273       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
192274       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_104(Idx);
192275       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
192276       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_43(Idx);
192277 
192278 
192279       xla_ae_lines_pkg.SetAcctReversalAttrs
192280          (p_event_id             => l_event_id
192281          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
192282          ,p_calculate_acctd_flag => l_calculate_acctd_flag
192283          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
192284    END IF;
192285 
192286    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
192287        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
192288 
192289 --
192290 AcctLineType_70 (
192291  p_application_id  => p_application_id
192292  ,p_event_id     => l_event_id
192293  ,p_calculate_acctd_flag => l_calculate_acctd_flag
192294  ,p_calculate_g_l_flag => l_calculate_g_l_flag
192295  ,p_actual_flag => l_actual_flag
192296  ,p_balance_type_code => l_balance_type_code
192297  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
192298  
192299  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
192300  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
192301  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
192302  , p_source_41 => l_array_source_41(Idx)
192303  , p_source_43 => l_array_source_43(Idx)
192304  , p_source_68 => l_array_source_68(Idx)
192305  , p_source_68_meaning => l_array_source_68_meaning(Idx)
192306  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
192307  , p_source_79 => l_array_source_79(Idx)
192308  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
192309  , p_source_90 => l_array_source_90(Idx)
192310  , p_source_90_meaning => l_array_source_90_meaning(Idx)
192311  , p_source_91 => l_array_source_91(Idx)
192312  , p_source_92 => l_array_source_92(Idx)
192313  , p_source_93 => l_array_source_93(Idx)
192314  , p_source_94 => l_array_source_94(Idx)
192315  , p_source_95 => l_array_source_95(Idx)
192316  , p_source_96 => l_array_source_96(Idx)
192317  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
192318  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
192319  , p_source_104 => l_array_source_104(Idx)
192320  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
192321  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
192322  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
192326  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
192323  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
192324  , p_source_109 => l_array_source_109(Idx)
192325  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
192327  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
192328  );
192329 If(l_balance_type_code = 'A') THEN
192330   l_actual_gain_loss_ref := l_gain_or_loss_ref;
192331 END IF;
192332 
192333 --
192334 
192335 
192336 --
192337 AcctLineType_71 (
192338  p_application_id  => p_application_id
192339  ,p_event_id     => l_event_id
192340  ,p_calculate_acctd_flag => l_calculate_acctd_flag
192341  ,p_calculate_g_l_flag => l_calculate_g_l_flag
192342  ,p_actual_flag => l_actual_flag
192343  ,p_balance_type_code => l_balance_type_code
192344  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
192345  
192346  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
192347  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
192348  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
192349  , p_source_41 => l_array_source_41(Idx)
192350  , p_source_43 => l_array_source_43(Idx)
192351  , p_source_68 => l_array_source_68(Idx)
192352  , p_source_68_meaning => l_array_source_68_meaning(Idx)
192353  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
192354  , p_source_79 => l_array_source_79(Idx)
192355  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
192356  , p_source_90 => l_array_source_90(Idx)
192357  , p_source_90_meaning => l_array_source_90_meaning(Idx)
192358  , p_source_91 => l_array_source_91(Idx)
192359  , p_source_92 => l_array_source_92(Idx)
192360  , p_source_93 => l_array_source_93(Idx)
192361  , p_source_94 => l_array_source_94(Idx)
192362  , p_source_95 => l_array_source_95(Idx)
192363  , p_source_96 => l_array_source_96(Idx)
192364  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
192365  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
192366  , p_source_104 => l_array_source_104(Idx)
192367  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
192368  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
192369  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
192370  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
192371  , p_source_109 => l_array_source_109(Idx)
192372  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
192373  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
192374  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
192375  );
192376 If(l_balance_type_code = 'A') THEN
192377   l_actual_gain_loss_ref := l_gain_or_loss_ref;
192378 END IF;
192379 
192380 --
192381 
192382 
192383 --
192384 AcctLineType_79 (
192385  p_application_id  => p_application_id
192386  ,p_event_id     => l_event_id
192387  ,p_calculate_acctd_flag => l_calculate_acctd_flag
192388  ,p_calculate_g_l_flag => l_calculate_g_l_flag
192389  ,p_actual_flag => l_actual_flag
192390  ,p_balance_type_code => l_balance_type_code
192391  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
192392  
192393  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
192394  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
192395  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
192396  , p_source_41 => l_array_source_41(Idx)
192397  , p_source_43 => l_array_source_43(Idx)
192398  , p_source_68 => l_array_source_68(Idx)
192399  , p_source_68_meaning => l_array_source_68_meaning(Idx)
192400  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
192401  , p_source_79 => l_array_source_79(Idx)
192402  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
192403  , p_source_90 => l_array_source_90(Idx)
192404  , p_source_90_meaning => l_array_source_90_meaning(Idx)
192405  , p_source_91 => l_array_source_91(Idx)
192406  , p_source_92 => l_array_source_92(Idx)
192407  , p_source_93 => l_array_source_93(Idx)
192408  , p_source_94 => l_array_source_94(Idx)
192409  , p_source_95 => l_array_source_95(Idx)
192410  , p_source_96 => l_array_source_96(Idx)
192411  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
192412  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
192413  , p_source_104 => l_array_source_104(Idx)
192414  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
192415  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
192416  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
192417  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
192418  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
192419  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
192420  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
192421  , p_source_114 => l_array_source_114(Idx)
192422  );
192423 If(l_balance_type_code = 'A') THEN
192424   l_actual_gain_loss_ref := l_gain_or_loss_ref;
192425 END IF;
192426 
192427 --
192428 
192429 
192430 --
192431 AcctLineType_80 (
192432  p_application_id  => p_application_id
192433  ,p_event_id     => l_event_id
192434  ,p_calculate_acctd_flag => l_calculate_acctd_flag
192435  ,p_calculate_g_l_flag => l_calculate_g_l_flag
192436  ,p_actual_flag => l_actual_flag
192437  ,p_balance_type_code => l_balance_type_code
192438  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
192439  
192443  , p_source_41 => l_array_source_41(Idx)
192440  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
192441  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
192442  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
192444  , p_source_43 => l_array_source_43(Idx)
192445  , p_source_68 => l_array_source_68(Idx)
192446  , p_source_68_meaning => l_array_source_68_meaning(Idx)
192447  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
192448  , p_source_79 => l_array_source_79(Idx)
192449  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
192450  , p_source_90 => l_array_source_90(Idx)
192451  , p_source_90_meaning => l_array_source_90_meaning(Idx)
192452  , p_source_91 => l_array_source_91(Idx)
192453  , p_source_92 => l_array_source_92(Idx)
192454  , p_source_93 => l_array_source_93(Idx)
192455  , p_source_94 => l_array_source_94(Idx)
192456  , p_source_95 => l_array_source_95(Idx)
192457  , p_source_96 => l_array_source_96(Idx)
192458  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
192459  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
192460  , p_source_104 => l_array_source_104(Idx)
192461  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
192462  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
192463  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
192464  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
192465  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
192466  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
192467  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
192468  , p_source_114 => l_array_source_114(Idx)
192469  );
192470 If(l_balance_type_code = 'A') THEN
192471   l_actual_gain_loss_ref := l_gain_or_loss_ref;
192472 END IF;
192473 
192474 --
192475 
192476 
192477 --
192478 AcctLineType_81 (
192479  p_application_id  => p_application_id
192480  ,p_event_id     => l_event_id
192481  ,p_calculate_acctd_flag => l_calculate_acctd_flag
192482  ,p_calculate_g_l_flag => l_calculate_g_l_flag
192483  ,p_actual_flag => l_actual_flag
192484  ,p_balance_type_code => l_balance_type_code
192485  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
192486  
192487  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
192488  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
192489  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
192490  , p_source_41 => l_array_source_41(Idx)
192491  , p_source_43 => l_array_source_43(Idx)
192492  , p_source_68 => l_array_source_68(Idx)
192493  , p_source_68_meaning => l_array_source_68_meaning(Idx)
192494  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
192495  , p_source_79 => l_array_source_79(Idx)
192496  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
192497  , p_source_90 => l_array_source_90(Idx)
192498  , p_source_90_meaning => l_array_source_90_meaning(Idx)
192499  , p_source_91 => l_array_source_91(Idx)
192500  , p_source_92 => l_array_source_92(Idx)
192501  , p_source_93 => l_array_source_93(Idx)
192502  , p_source_94 => l_array_source_94(Idx)
192503  , p_source_95 => l_array_source_95(Idx)
192504  , p_source_96 => l_array_source_96(Idx)
192505  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
192506  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
192507  , p_source_104 => l_array_source_104(Idx)
192508  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
192509  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
192510  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
192511  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
192512  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
192513  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
192514  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
192515  , p_source_114 => l_array_source_114(Idx)
192516  );
192517 If(l_balance_type_code = 'A') THEN
192518   l_actual_gain_loss_ref := l_gain_or_loss_ref;
192519 END IF;
192520 
192521 --
192522 
192523 
192524 --
192525 AcctLineType_82 (
192526  p_application_id  => p_application_id
192527  ,p_event_id     => l_event_id
192528  ,p_calculate_acctd_flag => l_calculate_acctd_flag
192529  ,p_calculate_g_l_flag => l_calculate_g_l_flag
192530  ,p_actual_flag => l_actual_flag
192531  ,p_balance_type_code => l_balance_type_code
192532  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
192533  
192534  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
192535  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
192536  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
192537  , p_source_41 => l_array_source_41(Idx)
192538  , p_source_43 => l_array_source_43(Idx)
192539  , p_source_68 => l_array_source_68(Idx)
192540  , p_source_68_meaning => l_array_source_68_meaning(Idx)
192541  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
192542  , p_source_79 => l_array_source_79(Idx)
192543  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
192544  , p_source_90 => l_array_source_90(Idx)
192545  , p_source_90_meaning => l_array_source_90_meaning(Idx)
192546  , p_source_91 => l_array_source_91(Idx)
192547  , p_source_92 => l_array_source_92(Idx)
192548  , p_source_93 => l_array_source_93(Idx)
192549  , p_source_94 => l_array_source_94(Idx)
192553  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
192550  , p_source_95 => l_array_source_95(Idx)
192551  , p_source_96 => l_array_source_96(Idx)
192552  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
192554  , p_source_104 => l_array_source_104(Idx)
192555  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
192556  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
192557  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
192558  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
192559  , p_source_109 => l_array_source_109(Idx)
192560  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
192561  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
192562  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
192563  );
192564 If(l_balance_type_code = 'A') THEN
192565   l_actual_gain_loss_ref := l_gain_or_loss_ref;
192566 END IF;
192567 
192568 --
192569 
192570 
192571 --
192572 AcctLineType_92 (
192573  p_application_id  => p_application_id
192574  ,p_event_id     => l_event_id
192575  ,p_calculate_acctd_flag => l_calculate_acctd_flag
192576  ,p_calculate_g_l_flag => l_calculate_g_l_flag
192577  ,p_actual_flag => l_actual_flag
192578  ,p_balance_type_code => l_balance_type_code
192579  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
192580  
192581  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
192582  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
192583  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
192584  , p_source_41 => l_array_source_41(Idx)
192585  , p_source_43 => l_array_source_43(Idx)
192586  , p_source_68 => l_array_source_68(Idx)
192587  , p_source_68_meaning => l_array_source_68_meaning(Idx)
192588  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
192589  , p_source_79 => l_array_source_79(Idx)
192590  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
192591  , p_source_90 => l_array_source_90(Idx)
192592  , p_source_90_meaning => l_array_source_90_meaning(Idx)
192593  , p_source_91 => l_array_source_91(Idx)
192594  , p_source_92 => l_array_source_92(Idx)
192595  , p_source_93 => l_array_source_93(Idx)
192596  , p_source_94 => l_array_source_94(Idx)
192597  , p_source_95 => l_array_source_95(Idx)
192598  , p_source_96 => l_array_source_96(Idx)
192599  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
192600  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
192601  , p_source_104 => l_array_source_104(Idx)
192602  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
192603  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
192604  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
192605  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
192606  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
192607  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
192608  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
192609  , p_source_114 => l_array_source_114(Idx)
192610  );
192611 If(l_balance_type_code = 'A') THEN
192612   l_actual_gain_loss_ref := l_gain_or_loss_ref;
192613 END IF;
192614 
192615 --
192616 
192617 
192618 --
192619 AcctLineType_93 (
192620  p_application_id  => p_application_id
192621  ,p_event_id     => l_event_id
192622  ,p_calculate_acctd_flag => l_calculate_acctd_flag
192623  ,p_calculate_g_l_flag => l_calculate_g_l_flag
192624  ,p_actual_flag => l_actual_flag
192625  ,p_balance_type_code => l_balance_type_code
192626  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
192627  
192628  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
192629  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
192630  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
192631  , p_source_41 => l_array_source_41(Idx)
192632  , p_source_43 => l_array_source_43(Idx)
192633  , p_source_68 => l_array_source_68(Idx)
192634  , p_source_68_meaning => l_array_source_68_meaning(Idx)
192635  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
192636  , p_source_79 => l_array_source_79(Idx)
192637  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
192638  , p_source_90 => l_array_source_90(Idx)
192639  , p_source_90_meaning => l_array_source_90_meaning(Idx)
192640  , p_source_91 => l_array_source_91(Idx)
192641  , p_source_92 => l_array_source_92(Idx)
192642  , p_source_93 => l_array_source_93(Idx)
192643  , p_source_94 => l_array_source_94(Idx)
192644  , p_source_95 => l_array_source_95(Idx)
192645  , p_source_96 => l_array_source_96(Idx)
192646  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
192647  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
192648  , p_source_104 => l_array_source_104(Idx)
192649  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
192650  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
192651  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
192652  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
192653  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
192654  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
192655  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
192656  , p_source_114 => l_array_source_114(Idx)
192657  );
192658 If(l_balance_type_code = 'A') THEN
192662 --
192659   l_actual_gain_loss_ref := l_gain_or_loss_ref;
192660 END IF;
192661 
192663 
192664 
192665 --
192666 AcctLineType_94 (
192667  p_application_id  => p_application_id
192668  ,p_event_id     => l_event_id
192669  ,p_calculate_acctd_flag => l_calculate_acctd_flag
192670  ,p_calculate_g_l_flag => l_calculate_g_l_flag
192671  ,p_actual_flag => l_actual_flag
192672  ,p_balance_type_code => l_balance_type_code
192673  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
192674  
192675  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
192676  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
192677  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
192678  , p_source_41 => l_array_source_41(Idx)
192679  , p_source_43 => l_array_source_43(Idx)
192680  , p_source_68 => l_array_source_68(Idx)
192681  , p_source_68_meaning => l_array_source_68_meaning(Idx)
192682  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
192683  , p_source_79 => l_array_source_79(Idx)
192684  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
192685  , p_source_90 => l_array_source_90(Idx)
192686  , p_source_90_meaning => l_array_source_90_meaning(Idx)
192687  , p_source_91 => l_array_source_91(Idx)
192688  , p_source_92 => l_array_source_92(Idx)
192689  , p_source_93 => l_array_source_93(Idx)
192690  , p_source_94 => l_array_source_94(Idx)
192691  , p_source_95 => l_array_source_95(Idx)
192692  , p_source_96 => l_array_source_96(Idx)
192693  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
192694  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
192695  , p_source_104 => l_array_source_104(Idx)
192696  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
192697  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
192698  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
192699  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
192700  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
192701  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
192702  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
192703  , p_source_114 => l_array_source_114(Idx)
192704  );
192705 If(l_balance_type_code = 'A') THEN
192706   l_actual_gain_loss_ref := l_gain_or_loss_ref;
192707 END IF;
192708 
192709 --
192710 
192711 
192712 --
192713 AcctLineType_101 (
192714  p_application_id  => p_application_id
192715  ,p_event_id     => l_event_id
192716  ,p_calculate_acctd_flag => l_calculate_acctd_flag
192717  ,p_calculate_g_l_flag => l_calculate_g_l_flag
192718  ,p_actual_flag => l_actual_flag
192719  ,p_balance_type_code => l_balance_type_code
192720  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
192721  
192722  , p_source_21 => l_array_source_21(Idx)
192723  , p_source_21_meaning => l_array_source_21_meaning(Idx)
192724  , p_source_41 => l_array_source_41(Idx)
192725  , p_source_43 => l_array_source_43(Idx)
192726  , p_source_68 => l_array_source_68(Idx)
192727  , p_source_68_meaning => l_array_source_68_meaning(Idx)
192728  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
192729  , p_source_79 => l_array_source_79(Idx)
192730  , p_source_80 => l_array_source_80(Idx)
192731  , p_source_81 => l_array_source_81(Idx)
192732  , p_source_82 => l_array_source_82(Idx)
192733  , p_source_83 => l_array_source_83(Idx)
192734  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
192735  , p_source_90 => l_array_source_90(Idx)
192736  , p_source_90_meaning => l_array_source_90_meaning(Idx)
192737  , p_source_91 => l_array_source_91(Idx)
192738  , p_source_96 => l_array_source_96(Idx)
192739  , p_source_104 => l_array_source_104(Idx)
192740  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
192741  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
192742  , p_source_114 => l_array_source_114(Idx)
192743  , p_source_130 => l_array_source_130(Idx)
192744  , p_source_130_meaning => l_array_source_130_meaning(Idx)
192745  );
192746 If(l_balance_type_code = 'A') THEN
192747   l_actual_gain_loss_ref := l_gain_or_loss_ref;
192748 END IF;
192749 
192750 --
192751 
192752 
192753 --
192754 AcctLineType_105 (
192755  p_application_id  => p_application_id
192756  ,p_event_id     => l_event_id
192757  ,p_calculate_acctd_flag => l_calculate_acctd_flag
192758  ,p_calculate_g_l_flag => l_calculate_g_l_flag
192759  ,p_actual_flag => l_actual_flag
192760  ,p_balance_type_code => l_balance_type_code
192761  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
192762  
192763  , p_source_21 => l_array_source_21(Idx)
192764  , p_source_21_meaning => l_array_source_21_meaning(Idx)
192765  , p_source_40 => l_array_source_40(Idx)
192766  , p_source_41 => l_array_source_41(Idx)
192767  , p_source_43 => l_array_source_43(Idx)
192768  , p_source_68 => l_array_source_68(Idx)
192769  , p_source_68_meaning => l_array_source_68_meaning(Idx)
192770  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
192771  , p_source_79 => l_array_source_79(Idx)
192772  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
192773  , p_source_90 => l_array_source_90(Idx)
192774  , p_source_90_meaning => l_array_source_90_meaning(Idx)
192775  , p_source_91 => l_array_source_91(Idx)
192776  , p_source_92 => l_array_source_92(Idx)
192777  , p_source_93 => l_array_source_93(Idx)
192778  , p_source_94 => l_array_source_94(Idx)
192779  , p_source_95 => l_array_source_95(Idx)
192780  , p_source_96 => l_array_source_96(Idx)
192781  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
192782  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
192783  , p_source_104 => l_array_source_104(Idx)
192787  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
192784  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
192785  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
192786  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
192788  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
192789  , p_source_114 => l_array_source_114(Idx)
192790  , p_source_130 => l_array_source_130(Idx)
192791  , p_source_130_meaning => l_array_source_130_meaning(Idx)
192792  );
192793 If(l_balance_type_code = 'A') THEN
192794   l_actual_gain_loss_ref := l_gain_or_loss_ref;
192795 END IF;
192796 
192797 --
192798 
192799 
192800 --
192801 AcctLineType_134 (
192802  p_application_id  => p_application_id
192803  ,p_event_id     => l_event_id
192804  ,p_calculate_acctd_flag => l_calculate_acctd_flag
192805  ,p_calculate_g_l_flag => l_calculate_g_l_flag
192806  ,p_actual_flag => l_actual_flag
192807  ,p_balance_type_code => l_balance_type_code
192808  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
192809  
192810  , p_source_41 => l_array_source_41(Idx)
192811  , p_source_43 => l_array_source_43(Idx)
192812  , p_source_68 => l_array_source_68(Idx)
192813  , p_source_68_meaning => l_array_source_68_meaning(Idx)
192814  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
192815  , p_source_79 => l_array_source_79(Idx)
192816  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
192817  , p_source_90 => l_array_source_90(Idx)
192818  , p_source_90_meaning => l_array_source_90_meaning(Idx)
192819  , p_source_91 => l_array_source_91(Idx)
192820  , p_source_92 => l_array_source_92(Idx)
192821  , p_source_93 => l_array_source_93(Idx)
192822  , p_source_94 => l_array_source_94(Idx)
192823  , p_source_95 => l_array_source_95(Idx)
192824  , p_source_96 => l_array_source_96(Idx)
192825  , p_source_104 => l_array_source_104(Idx)
192826  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
192827  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
192828  , p_source_108 => l_array_source_108(Idx)
192829  );
192830 If(l_balance_type_code = 'A') THEN
192831   l_actual_gain_loss_ref := l_gain_or_loss_ref;
192832 END IF;
192833 
192834 --
192835 
192836 
192837 --
192838 AcctLineType_135 (
192839  p_application_id  => p_application_id
192840  ,p_event_id     => l_event_id
192841  ,p_calculate_acctd_flag => l_calculate_acctd_flag
192842  ,p_calculate_g_l_flag => l_calculate_g_l_flag
192843  ,p_actual_flag => l_actual_flag
192844  ,p_balance_type_code => l_balance_type_code
192845  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
192846  
192847  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
192848  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
192849  , p_source_18 => l_array_source_18(Idx)
192850  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
192851  , p_source_41 => l_array_source_41(Idx)
192852  , p_source_43 => l_array_source_43(Idx)
192853  , p_source_68 => l_array_source_68(Idx)
192854  , p_source_68_meaning => l_array_source_68_meaning(Idx)
192855  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
192856  , p_source_79 => l_array_source_79(Idx)
192857  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
192858  , p_source_90 => l_array_source_90(Idx)
192859  , p_source_90_meaning => l_array_source_90_meaning(Idx)
192860  , p_source_91 => l_array_source_91(Idx)
192861  , p_source_92 => l_array_source_92(Idx)
192862  , p_source_93 => l_array_source_93(Idx)
192863  , p_source_94 => l_array_source_94(Idx)
192864  , p_source_95 => l_array_source_95(Idx)
192865  , p_source_96 => l_array_source_96(Idx)
192866  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
192867  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
192868  , p_source_104 => l_array_source_104(Idx)
192869  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
192870  , p_source_108 => l_array_source_108(Idx)
192871  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
192872  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
192873  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
192874  );
192875 If(l_balance_type_code = 'A') THEN
192876   l_actual_gain_loss_ref := l_gain_or_loss_ref;
192877 END IF;
192878 
192879 --
192880 
192881 
192882 --
192883 AcctLineType_139 (
192884  p_application_id  => p_application_id
192885  ,p_event_id     => l_event_id
192886  ,p_calculate_acctd_flag => l_calculate_acctd_flag
192887  ,p_calculate_g_l_flag => l_calculate_g_l_flag
192888  ,p_actual_flag => l_actual_flag
192889  ,p_balance_type_code => l_balance_type_code
192890  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
192891  
192892  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
192893  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
192894  , p_source_18 => l_array_source_18(Idx)
192895  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
192896  , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
192897  , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
192898  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
192899  , p_source_41 => l_array_source_41(Idx)
192900  , p_source_43 => l_array_source_43(Idx)
192901  , p_source_68 => l_array_source_68(Idx)
192902  , p_source_68_meaning => l_array_source_68_meaning(Idx)
192903  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
192904  , p_source_79 => l_array_source_79(Idx)
192905  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
192906  , p_source_90 => l_array_source_90(Idx)
192910  , p_source_94 => l_array_source_94(Idx)
192907  , p_source_90_meaning => l_array_source_90_meaning(Idx)
192908  , p_source_92 => l_array_source_92(Idx)
192909  , p_source_93 => l_array_source_93(Idx)
192911  , p_source_95 => l_array_source_95(Idx)
192912  , p_source_96 => l_array_source_96(Idx)
192913  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
192914  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
192915  , p_source_104 => l_array_source_104(Idx)
192916  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
192917  , p_source_149 => l_array_source_149(Idx)
192918  );
192919 If(l_balance_type_code = 'A') THEN
192920   l_actual_gain_loss_ref := l_gain_or_loss_ref;
192921 END IF;
192922 
192923 --
192924 
192925 
192926 --
192927 AcctLineType_145 (
192928  p_application_id  => p_application_id
192929  ,p_event_id     => l_event_id
192930  ,p_calculate_acctd_flag => l_calculate_acctd_flag
192931  ,p_calculate_g_l_flag => l_calculate_g_l_flag
192932  ,p_actual_flag => l_actual_flag
192933  ,p_balance_type_code => l_balance_type_code
192934  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
192935  
192936  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
192937  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
192938  , p_source_18 => l_array_source_18(Idx)
192939  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
192940  , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
192941  , p_source_41 => l_array_source_41(Idx)
192942  , p_source_43 => l_array_source_43(Idx)
192943  , p_source_68 => l_array_source_68(Idx)
192944  , p_source_68_meaning => l_array_source_68_meaning(Idx)
192945  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
192946  , p_source_79 => l_array_source_79(Idx)
192947  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
192948  , p_source_90 => l_array_source_90(Idx)
192949  , p_source_90_meaning => l_array_source_90_meaning(Idx)
192950  , p_source_91 => l_array_source_91(Idx)
192951  , p_source_92 => l_array_source_92(Idx)
192952  , p_source_93 => l_array_source_93(Idx)
192953  , p_source_94 => l_array_source_94(Idx)
192954  , p_source_95 => l_array_source_95(Idx)
192955  , p_source_96 => l_array_source_96(Idx)
192956  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
192957  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
192958  , p_source_104 => l_array_source_104(Idx)
192959  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
192960  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
192961  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
192962  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
192963  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
192964  , p_source_149 => l_array_source_149(Idx)
192965  , p_source_156 => l_array_source_156(Idx)
192966  );
192967 If(l_balance_type_code = 'A') THEN
192968   l_actual_gain_loss_ref := l_gain_or_loss_ref;
192969 END IF;
192970 
192971 --
192972 
192973 
192974 --
192975 AcctLineType_187 (
192976  p_application_id  => p_application_id
192977  ,p_event_id     => l_event_id
192978  ,p_calculate_acctd_flag => l_calculate_acctd_flag
192979  ,p_calculate_g_l_flag => l_calculate_g_l_flag
192980  ,p_actual_flag => l_actual_flag
192981  ,p_balance_type_code => l_balance_type_code
192982  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
192983  
192984  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
192985  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
192986  , p_source_18 => l_array_source_18(Idx)
192987  , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
192988  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
192989  , p_source_41 => l_array_source_41(Idx)
192990  , p_source_43 => l_array_source_43(Idx)
192991  , p_source_68 => l_array_source_68(Idx)
192992  , p_source_68_meaning => l_array_source_68_meaning(Idx)
192993  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
192994  , p_source_79 => l_array_source_79(Idx)
192995  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
192996  , p_source_90 => l_array_source_90(Idx)
192997  , p_source_90_meaning => l_array_source_90_meaning(Idx)
192998  , p_source_91 => l_array_source_91(Idx)
192999  , p_source_92 => l_array_source_92(Idx)
193000  , p_source_93 => l_array_source_93(Idx)
193001  , p_source_94 => l_array_source_94(Idx)
193002  , p_source_95 => l_array_source_95(Idx)
193003  , p_source_96 => l_array_source_96(Idx)
193004  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
193005  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
193006  , p_source_104 => l_array_source_104(Idx)
193007  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
193008  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
193009  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
193010  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
193011  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
193012  , p_source_149 => l_array_source_149(Idx)
193013  , p_source_156 => l_array_source_156(Idx)
193014  );
193015 If(l_balance_type_code = 'A') THEN
193016   l_actual_gain_loss_ref := l_gain_or_loss_ref;
193017 END IF;
193018 
193019 --
193020 
193021       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
193022       -- or secondary ledger that has different currency with primary
193023       -- or alc that is calculated by sla
193027 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
193024       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
193025             (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'))
193026 
193028 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
193029           AND (l_actual_flag = 'A')) THEN
193030         XLA_AE_LINES_PKG.CreateGainOrLossLines(
193031           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
193032          ,p_application_id   => p_application_id
193033          ,p_amb_context_code => 'DEFAULT'
193034          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
193035          ,p_event_class_code => C_EVENT_CLASS_CODE
193036          ,p_event_type_code  => C_EVENT_TYPE_CODE
193037          
193038          ,p_gain_ccid        => -1
193039          ,p_loss_ccid        => -1
193040 
193041          ,p_actual_flag      => l_actual_flag
193042          ,p_enc_flag         => null
193043          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
193044          ,p_enc_g_l_ref      => null
193045          );
193046       END IF;
193047    END IF;
193048 END IF;
193049 
193050    ELSE
193051       --
193052       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
193053       --
193054       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
193055          trace
193056             (p_msg      => 'Trancaction revesal option is Y'
193057             ,p_level    => C_LEVEL_STATEMENT
193058             ,p_module   => l_log_module);
193059       END IF;
193060    END IF;
193061 
193062 END LOOP;
193063 l_result := XLA_AE_LINES_PKG.InsertLines ;
193064 end loop;
193065 close line_cur;
193066 
193067 
193068 --
193069 -- insert headers into xla_ae_headers_gt table
193070 --
193071 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
193072 
193073 -- insert into errors table here.
193074 
193075 END LOOP;
193076 
193077 --
193078 -- 4865292
193079 --
193080 -- Compare g_hdr_extract_count with event count in
193081 -- CreateHeadersAndLines.
193082 --
193083 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
193084 
193085 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
193086    trace (p_msg     => '# rows extracted from header extract objects '
193087                     || ' (running total): '
193088                     || g_hdr_extract_count
193089          ,p_level   => C_LEVEL_STATEMENT
193090          ,p_module  => l_log_module);
193091 END IF;
193092 
193093 CLOSE header_cur;
193094 --
193095 
193096 --
193097 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
193098    trace
193099       (p_msg      => 'END of EventClass_293'
193100       ,p_level    => C_LEVEL_PROCEDURE
193101       ,p_module   => l_log_module);
193102 END IF;
193103 --
193104 RETURN l_result;
193105 EXCEPTION
193106 WHEN xla_exceptions_pkg.application_exception THEN
193107    
193108 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
193109 
193110    
193111 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
193112 
193113    RAISE;
193114 
193115 WHEN NO_DATA_FOUND THEN
193116 
193117 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
193118 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
193119 
193120 FOR header_record IN header_cur
193121 LOOP
193122     l_array_header_events(header_record.event_id) := header_record.event_id;
193123 END LOOP;
193124 
193125 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
193126 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
193127 
193128 fnd_file.put_line(fnd_file.LOG, '                    ');
193129 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
193130 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
193131 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
193132 
193133 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
193134 LOOP
193135 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
193136 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
193137         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
193138 	END IF;
193139 END LOOP;
193140 
193141 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
193142 fnd_file.put_line(fnd_file.LOG, '                    ');
193143 
193144 
193145 xla_exceptions_pkg.raise_message
193146       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_293');
193147 
193148 
193149 WHEN OTHERS THEN
193150    xla_exceptions_pkg.raise_message
193151       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_293');
193152 END EventClass_293;
193153 --
193154 
193155 ---------------------------------------
193156 --
193157 -- PRIVATE PROCEDURE
193158 --         insert_sources_294
193159 --
193160 ----------------------------------------
193161 --
193162 PROCEDURE insert_sources_294(
193163                                 p_target_ledger_id       IN NUMBER
193164                               , p_language               IN VARCHAR2
193165                               , p_sla_ledger_id          IN NUMBER
193166                               , p_pad_start_date         IN DATE
193167                               , p_pad_end_date           IN DATE
193168                          )
193169 IS
193170 
193174 l_log_module                   VARCHAR2(240);
193171 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICES_ALL';
193172 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'INVOICES';
193173 p_apps_owner                   VARCHAR2(30);
193175 BEGIN
193176 IF g_log_enabled THEN
193177       l_log_module := C_DEFAULT_MODULE||'.insert_sources_294';
193178 END IF;
193179 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
193180 
193181       trace
193182          (p_msg      => 'BEGIN of insert_sources_294'
193183          ,p_level    => C_LEVEL_PROCEDURE
193184          ,p_module   => l_log_module);
193185 
193186 END IF;
193187 
193188 -- select APPS owner
193189 SELECT oracle_username
193190   INTO p_apps_owner
193191   FROM fnd_oracle_userid
193192  WHERE read_only_flag = 'U'
193193 ;
193194 
193195 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
193196       trace
193197          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
193198                         ' - p_language = '||p_language||
193199                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
193200                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
193201                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
193202                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
193203          ,p_level    => C_LEVEL_STATEMENT
193204          ,p_module   => l_log_module);
193205 END IF;
193206 
193207 
193208 --
193209 INSERT INTO xla_diag_sources --hdr2
193210 (
193211         event_id
193212       , ledger_id
193213       , sla_ledger_id
193214       , description_language
193215       , object_name
193216       , object_type_code
193217       , line_number
193218       , source_application_id
193219       , source_type_code
193220       , source_code
193221       , source_value
193222       , source_meaning
193223       , created_by
193224       , creation_date
193225       , last_update_date
193226       , last_updated_by
193227       , last_update_login
193228       , program_update_date
193229       , program_application_id
193230       , program_id
193231       , request_id
193232 )
193233 SELECT
193234         event_id
193235       , p_target_ledger_id
193236       , p_sla_ledger_id
193237       , p_language
193238       , object_name
193239       , object_type_code
193240       , line_number
193241       , source_application_id
193242       , source_type_code
193243       , source_code
193244       , SUBSTR(source_value ,1,1996)
193245       , SUBSTR(source_meaning ,1,200)
193246       , xla_environment_pkg.g_Usr_Id
193247       , TRUNC(SYSDATE)
193248       , TRUNC(SYSDATE)
193249       , xla_environment_pkg.g_Usr_Id
193250       , xla_environment_pkg.g_Login_Id
193251       , TRUNC(SYSDATE)
193252       , xla_environment_pkg.g_Prog_Appl_Id
193253       , xla_environment_pkg.g_Prog_Id
193254       , xla_environment_pkg.g_Req_Id
193255   FROM (
193256        SELECT xet.event_id                  event_id
193257             , 0                          line_number
193258             , CASE r
193259                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
193260                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
193261                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
193262                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
193263                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
193264                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
193265                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
193266                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
193267                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
193268                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
193269                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
193270                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
193271                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
193272                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
193273                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
193274                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
193275                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
193276                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
193277                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
193278                 
193279                ELSE null
193280               END                           object_name
193281             , CASE r
193282                 WHEN 1 THEN 'HEADER' 
193283                 WHEN 2 THEN 'HEADER' 
193284                 WHEN 3 THEN 'HEADER' 
193285                 WHEN 4 THEN 'HEADER' 
193286                 WHEN 5 THEN 'HEADER' 
193287                 WHEN 6 THEN 'HEADER' 
193288                 WHEN 7 THEN 'HEADER' 
193289                 WHEN 8 THEN 'HEADER' 
193290                 WHEN 9 THEN 'HEADER' 
193291                 WHEN 10 THEN 'HEADER' 
193292                 WHEN 11 THEN 'HEADER' 
193293                 WHEN 12 THEN 'HEADER' 
193294                 WHEN 13 THEN 'HEADER' 
193295                 WHEN 14 THEN 'HEADER' 
193296                 WHEN 15 THEN 'HEADER' 
193297                 WHEN 16 THEN 'HEADER' 
193298                 WHEN 17 THEN 'HEADER' 
193299                 WHEN 18 THEN 'HEADER' 
193300                 WHEN 19 THEN 'HEADER' 
193301                 
193302                 ELSE null
193303               END                           object_type_code
193304             , CASE r
193305                 WHEN 1 THEN '200' 
193306                 WHEN 2 THEN '200' 
193307                 WHEN 3 THEN '200' 
193308                 WHEN 4 THEN '200' 
193309                 WHEN 5 THEN '200' 
193310                 WHEN 6 THEN '200' 
193311                 WHEN 7 THEN '200' 
193315                 WHEN 11 THEN '200' 
193312                 WHEN 8 THEN '200' 
193313                 WHEN 9 THEN '200' 
193314                 WHEN 10 THEN '200' 
193316                 WHEN 12 THEN '200' 
193317                 WHEN 13 THEN '200' 
193318                 WHEN 14 THEN '200' 
193319                 WHEN 15 THEN '200' 
193320                 WHEN 16 THEN '200' 
193321                 WHEN 17 THEN '200' 
193322                 WHEN 18 THEN '200' 
193323                 WHEN 19 THEN '200' 
193324                 
193325                 ELSE null
193326               END                           source_application_id
193327             , 'S'             source_type_code
193328             , CASE r
193329                 WHEN 1 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
193330                 WHEN 2 THEN 'ASP_RATE_VAR_GAIN_CCID' 
193331                 WHEN 3 THEN 'ASP_RATE_VAR_LOSS_CCID' 
193332                 WHEN 4 THEN 'AI_ACCTS_PAY_CCID' 
193333                 WHEN 5 THEN 'FSP_RETAINAGE_ACCOUNT' 
193334                 WHEN 6 THEN 'ASP_AUTO_OFFSET_FLAG' 
193335                 WHEN 7 THEN 'AI_INVOICE_ID' 
193336                 WHEN 8 THEN 'AI_INVOICE_CURRENCY_CODE' 
193337                 WHEN 9 THEN 'AI_VENDOR_ID' 
193338                 WHEN 10 THEN 'AI_VENDOR_SITE_ID' 
193339                 WHEN 11 THEN 'THIRD_PARTY_TYPE' 
193340                 WHEN 12 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG' 
193341                 WHEN 13 THEN 'INV_EXCHANGE_DATE' 
193342                 WHEN 14 THEN 'INV_EXCHANGE_RATE' 
193343                 WHEN 15 THEN 'INV_EXCHANGE_RATE_TYPE' 
193344                 WHEN 16 THEN 'AI_INVOICE_TYPE_LOOKUP_CODE' 
193345                 WHEN 17 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
193346                 WHEN 18 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
193347                 WHEN 19 THEN 'INV_DOC_SEQUENCE_VALUE' 
193348                 
193349                 ELSE null
193350               END                           source_code
193351             , CASE r
193352                 WHEN 1 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
193353                 WHEN 2 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
193354                 WHEN 3 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
193355                 WHEN 4 THEN TO_CHAR(h2.AI_ACCTS_PAY_CCID)
193356                 WHEN 5 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
193357                 WHEN 6 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
193358                 WHEN 7 THEN TO_CHAR(h2.AI_INVOICE_ID)
193359                 WHEN 8 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
193360                 WHEN 9 THEN TO_CHAR(h2.AI_VENDOR_ID)
193361                 WHEN 10 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
193362                 WHEN 11 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
193363                 WHEN 12 THEN TO_CHAR(h4.FSP_PURCH_ENCUMBRANCE_FLAG)
193364                 WHEN 13 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
193365                 WHEN 14 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
193366                 WHEN 15 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
193367                 WHEN 16 THEN TO_CHAR(h2.AI_INVOICE_TYPE_LOOKUP_CODE)
193368                 WHEN 17 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
193369                 WHEN 18 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
193370                 WHEN 19 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
193371                 
193372                 ELSE null
193373               END                           source_value
193374             , CASE r
193375                 WHEN 1 THEN fvl3.meaning
193376                 WHEN 6 THEN fvl35.meaning
193377                 WHEN 12 THEN fvl86.meaning
193378                 WHEN 16 THEN fvl159.meaning
193379                 
193380                 ELSE null
193381               END               source_meaning
193382          FROM xla_events_gt     xet  
193383       , AP_INVOICE_EXTRACT_HEADER_V  h2
193384       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
193385   , fnd_lookup_values    fvl3
193386   , fnd_lookup_values    fvl35
193387   , fnd_lookup_values    fvl86
193388   , fnd_lookup_values    fvl159
193389              ,(select rownum r from all_objects where rownum <= 19 and owner = p_apps_owner)
193390          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
193391            AND xet.event_class_code = C_EVENT_CLASS_CODE
193392               AND h2.event_id = xet.event_id
193393  AND h4.asp_org_id = h2.ai_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
193394   AND fvl3.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
193395   AND fvl3.view_application_id(+) = 200
193396   AND fvl3.language(+)            = USERENV('LANG')
193397      AND fvl35.lookup_type(+)         = 'YES_NO'
193398   AND fvl35.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
193399   AND fvl35.view_application_id(+) = 0
193400   AND fvl35.language(+)            = USERENV('LANG')
193401      AND fvl86.lookup_type(+)         = 'YES_NO'
193402   AND fvl86.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
193403   AND fvl86.view_application_id(+) = 0
193404   AND fvl86.language(+)            = USERENV('LANG')
193405      AND fvl159.lookup_type(+)         = 'INVOICE TYPE'
193406   AND fvl159.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
193407   AND fvl159.view_application_id(+) = 200
193408   AND fvl159.language(+)            = USERENV('LANG')
193409   
193410 )
193411 ;
193412 --
193413 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
193414 
193415       trace
193416          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
193417          ,p_level    => C_LEVEL_STATEMENT
193418          ,p_module   => l_log_module);
193419 
193420 END IF;
193421 --
193422 
193423 
193424 
193425 --
193426 INSERT INTO xla_diag_sources  --line2
193427 (
193428         event_id
193429       , ledger_id
193430       , sla_ledger_id
193434       , line_number
193431       , description_language
193432       , object_name
193433       , object_type_code
193435       , source_application_id
193436       , source_type_code
193437       , source_code
193438       , source_value
193439       , source_meaning
193440       , created_by
193441       , creation_date
193442       , last_update_date
193443       , last_updated_by
193444       , last_update_login
193445       , program_update_date
193446       , program_application_id
193447       , program_id
193448       , request_id
193449 )
193450 SELECT  event_id
193451       , p_target_ledger_id
193452       , p_sla_ledger_id
193453       , p_language
193454       , object_name
193455       , object_type_code
193456       , line_number
193457       , source_application_id
193458       , source_type_code
193459       , source_code
193460       , SUBSTR(source_value,1,1996)
193461       , SUBSTR(source_meaning ,1,200)
193462       , xla_environment_pkg.g_Usr_Id
193463       , TRUNC(SYSDATE)
193464       , TRUNC(SYSDATE)
193465       , xla_environment_pkg.g_Usr_Id
193466       , xla_environment_pkg.g_Login_Id
193467       , TRUNC(SYSDATE)
193468       , xla_environment_pkg.g_Prog_Appl_Id
193469       , xla_environment_pkg.g_Prog_Id
193470       , xla_environment_pkg.g_Req_Id
193471   FROM (
193472        SELECT xet.event_id                  event_id
193473             , l1.line_number                 line_number
193474             , CASE r
193475                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193476                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193477                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193478                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193479                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193480                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193481                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193482                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193483                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193484                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193485                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193486                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193487                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193488                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193489                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193490                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193491                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193492                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193493                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193494                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193495                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193496                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193497                 WHEN 23 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193498                 WHEN 24 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193499                 WHEN 25 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193500                 WHEN 26 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193501                 WHEN 27 THEN 'AP_PO_HEADERS_EXTRACT_V' 
193502                 WHEN 28 THEN 'AP_PO_HEADERS_EXTRACT_V' 
193503                 WHEN 29 THEN 'AP_PO_HEADERS_EXTRACT_V' 
193504                 WHEN 30 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193505                 WHEN 31 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193506                 WHEN 32 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193507                 WHEN 33 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193508                 WHEN 34 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193509                 WHEN 35 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193510                 WHEN 36 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
193511                 WHEN 37 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
193512                 WHEN 38 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193513                 WHEN 39 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193514                 WHEN 40 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193515                 WHEN 41 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193516                 WHEN 42 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193517                 WHEN 43 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193518                 WHEN 44 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193519                 WHEN 45 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193520                 WHEN 46 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193521                 WHEN 47 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193522                 WHEN 48 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193523                 WHEN 49 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193524                 WHEN 50 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193525                 WHEN 51 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193526                 WHEN 52 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193527                 WHEN 53 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193528                 WHEN 54 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193529                 WHEN 55 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193530                 WHEN 56 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
193531                 
193532                ELSE null
193533               END                           object_name
193534             , CASE r
193535                 WHEN 1 THEN 'LINE' 
193536                 WHEN 2 THEN 'LINE' 
193537                 WHEN 3 THEN 'LINE' 
193538                 WHEN 4 THEN 'LINE' 
193539                 WHEN 5 THEN 'LINE' 
193540                 WHEN 6 THEN 'LINE' 
193541                 WHEN 7 THEN 'LINE' 
193542                 WHEN 8 THEN 'LINE' 
193543                 WHEN 9 THEN 'LINE' 
193547                 WHEN 13 THEN 'LINE' 
193544                 WHEN 10 THEN 'LINE' 
193545                 WHEN 11 THEN 'LINE' 
193546                 WHEN 12 THEN 'LINE' 
193548                 WHEN 14 THEN 'LINE' 
193549                 WHEN 15 THEN 'LINE' 
193550                 WHEN 16 THEN 'LINE' 
193551                 WHEN 17 THEN 'LINE' 
193552                 WHEN 18 THEN 'LINE' 
193553                 WHEN 19 THEN 'LINE' 
193554                 WHEN 20 THEN 'LINE' 
193555                 WHEN 21 THEN 'LINE' 
193556                 WHEN 22 THEN 'LINE' 
193557                 WHEN 23 THEN 'LINE' 
193558                 WHEN 24 THEN 'LINE' 
193559                 WHEN 25 THEN 'LINE' 
193560                 WHEN 26 THEN 'LINE' 
193561                 WHEN 27 THEN 'LINE' 
193562                 WHEN 28 THEN 'LINE' 
193563                 WHEN 29 THEN 'LINE' 
193564                 WHEN 30 THEN 'LINE' 
193565                 WHEN 31 THEN 'LINE' 
193566                 WHEN 32 THEN 'LINE' 
193567                 WHEN 33 THEN 'LINE' 
193568                 WHEN 34 THEN 'LINE' 
193569                 WHEN 35 THEN 'LINE' 
193570                 WHEN 36 THEN 'LINE' 
193571                 WHEN 37 THEN 'LINE' 
193572                 WHEN 38 THEN 'LINE' 
193573                 WHEN 39 THEN 'LINE' 
193574                 WHEN 40 THEN 'LINE' 
193575                 WHEN 41 THEN 'LINE' 
193576                 WHEN 42 THEN 'LINE' 
193577                 WHEN 43 THEN 'LINE' 
193578                 WHEN 44 THEN 'LINE' 
193579                 WHEN 45 THEN 'LINE' 
193580                 WHEN 46 THEN 'LINE' 
193581                 WHEN 47 THEN 'LINE' 
193582                 WHEN 48 THEN 'LINE' 
193583                 WHEN 49 THEN 'LINE' 
193584                 WHEN 50 THEN 'LINE' 
193585                 WHEN 51 THEN 'LINE' 
193586                 WHEN 52 THEN 'LINE' 
193587                 WHEN 53 THEN 'LINE' 
193588                 WHEN 54 THEN 'LINE' 
193589                 WHEN 55 THEN 'LINE' 
193590                 WHEN 56 THEN 'LINE' 
193591                 
193592                 ELSE null
193593               END                           object_type_code
193594             , CASE r
193595                 WHEN 1 THEN '200' 
193596                 WHEN 2 THEN '200' 
193597                 WHEN 3 THEN '200' 
193598                 WHEN 4 THEN '200' 
193599                 WHEN 5 THEN '200' 
193600                 WHEN 6 THEN '200' 
193601                 WHEN 7 THEN '200' 
193602                 WHEN 8 THEN '200' 
193603                 WHEN 9 THEN '200' 
193604                 WHEN 10 THEN '200' 
193605                 WHEN 11 THEN '200' 
193606                 WHEN 12 THEN '200' 
193607                 WHEN 13 THEN '200' 
193608                 WHEN 14 THEN '200' 
193609                 WHEN 15 THEN '200' 
193610                 WHEN 16 THEN '200' 
193611                 WHEN 17 THEN '200' 
193612                 WHEN 18 THEN '200' 
193613                 WHEN 19 THEN '200' 
193614                 WHEN 20 THEN '200' 
193615                 WHEN 21 THEN '200' 
193616                 WHEN 22 THEN '200' 
193617                 WHEN 23 THEN '200' 
193618                 WHEN 24 THEN '200' 
193619                 WHEN 25 THEN '200' 
193620                 WHEN 26 THEN '200' 
193621                 WHEN 27 THEN '200' 
193622                 WHEN 28 THEN '200' 
193623                 WHEN 29 THEN '200' 
193624                 WHEN 30 THEN '200' 
193625                 WHEN 31 THEN '200' 
193626                 WHEN 32 THEN '200' 
193627                 WHEN 33 THEN '200' 
193628                 WHEN 34 THEN '200' 
193629                 WHEN 35 THEN '200' 
193630                 WHEN 36 THEN '200' 
193631                 WHEN 37 THEN '200' 
193632                 WHEN 38 THEN '200' 
193633                 WHEN 39 THEN '200' 
193634                 WHEN 40 THEN '200' 
193635                 WHEN 41 THEN '200' 
193636                 WHEN 42 THEN '200' 
193637                 WHEN 43 THEN '200' 
193638                 WHEN 44 THEN '200' 
193639                 WHEN 45 THEN '200' 
193640                 WHEN 46 THEN '200' 
193641                 WHEN 47 THEN '200' 
193642                 WHEN 48 THEN '200' 
193643                 WHEN 49 THEN '200' 
193644                 WHEN 50 THEN '200' 
193645                 WHEN 51 THEN '200' 
193646                 WHEN 52 THEN '200' 
193647                 WHEN 53 THEN '200' 
193648                 WHEN 54 THEN '200' 
193649                 WHEN 55 THEN '200' 
193650                 WHEN 56 THEN '200' 
193651                 
193652                 ELSE null
193653               END                           source_application_id
193654             , 'S'             source_type_code
193655             , CASE r
193656                 WHEN 1 THEN 'AID_DESCRIPTION' 
193657                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
193658                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
193659                 WHEN 4 THEN 'AID_DIST_CCID' 
193660                 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
193661                 WHEN 6 THEN 'AID_RET_RELATED_DIST_CCID' 
193662                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
193663                 WHEN 8 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
193664                 WHEN 9 THEN 'ASAT_LIAB_CCID' 
193665                 WHEN 10 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
193666                 WHEN 11 THEN 'DISTRIBUTION_LINK_TYPE' 
193667                 WHEN 12 THEN 'ALLOC_TO_MAIN_DIST_ID' 
193668                 WHEN 13 THEN 'BUS_FLOW_PO_APP_ID' 
193672                 WHEN 17 THEN 'BUS_FLOW_PO_DOC_ID' 
193669                 WHEN 14 THEN 'BUS_FLOW_PO_DIST_TYPE' 
193670                 WHEN 15 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
193671                 WHEN 16 THEN 'BUS_FLOW_PO_DIST_ID' 
193673                 WHEN 18 THEN 'AID_INVOICE_DIST_ID' 
193674                 WHEN 19 THEN 'UPG_ENC_CR_CCID' 
193675                 WHEN 20 THEN 'UPG_ENC_CR_AMT' 
193676                 WHEN 21 THEN 'UPG_ENC_CR_BASE_AMT' 
193677                 WHEN 22 THEN 'UPG_ENC_DR_CCID' 
193678                 WHEN 23 THEN 'UPG_ENC_DR_AMT' 
193679                 WHEN 24 THEN 'UPG_ENC_DR_BASE_AMT' 
193680                 WHEN 25 THEN 'UPG_AP_ENCUM_OPTION' 
193681                 WHEN 26 THEN 'AID_AMOUNT' 
193682                 WHEN 27 THEN 'POH_RATE_DATE' 
193683                 WHEN 28 THEN 'POH_RATE' 
193684                 WHEN 29 THEN 'POH_RATE_TYPE' 
193685                 WHEN 30 THEN 'DEFERRED_END_DATE' 
193686                 WHEN 31 THEN 'DEFERRED_OPTION' 
193687                 WHEN 32 THEN 'DEFERRED_START_DATE' 
193688                 WHEN 33 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
193689                 WHEN 34 THEN 'AID_PARENT_REVERSAL_ID' 
193690                 WHEN 35 THEN 'AID_STAT_AMOUNT' 
193691                 WHEN 36 THEN 'TAX_LINE_ID' 
193692                 WHEN 37 THEN 'REC_NREC_TAX_DIST_ID' 
193693                 WHEN 38 THEN 'SUMMARY_TAX_LINE_ID' 
193694                 WHEN 39 THEN 'UPG_CR_ENC_TYPE_ID' 
193695                 WHEN 40 THEN 'UPG_DR_ENC_TYPE_ID' 
193696                 WHEN 41 THEN 'BUS_FLOW_AP_APP_ID' 
193697                 WHEN 42 THEN 'BUS_FLOW_INV_DIST_TYPE' 
193698                 WHEN 43 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
193699                 WHEN 44 THEN 'BUS_FLOW_INV_DIST_ID' 
193700                 WHEN 45 THEN 'BUS_FLOW_INV_ID' 
193701                 WHEN 46 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
193702                 WHEN 47 THEN 'AID_AMOUNT_VARIANCE' 
193703                 WHEN 48 THEN 'AID_ENCUMBERED_FLAG' 
193704                 WHEN 49 THEN 'AID_BASE_AMOUNT_VARIANCE' 
193705                 WHEN 50 THEN 'SELF_ASSESSED_TAX_FLAG' 
193706                 WHEN 51 THEN 'ENCUMBRANCE_AMOUNT' 
193707                 WHEN 52 THEN 'ENCUMBRANCE_BASE_AMOUNT' 
193708                 WHEN 53 THEN 'AID_QUANTITY_VARIANCE' 
193709                 WHEN 54 THEN 'AID_BASE_QUANTITY_VARIANCE' 
193710                 WHEN 55 THEN 'BUS_FLOW_RET_INV_DIST_ID' 
193711                 WHEN 56 THEN 'BUS_FLOW_RET_INV_ID' 
193712                 
193713                 ELSE null
193714               END                           source_code
193715             , CASE r
193716                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
193717                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
193718                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
193719                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
193720                 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
193721                 WHEN 6 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
193722                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
193723                 WHEN 8 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
193724                 WHEN 9 THEN TO_CHAR(l1.ASAT_LIAB_CCID)
193725                 WHEN 10 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
193726                 WHEN 11 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
193727                 WHEN 12 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
193728                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
193729                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
193730                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
193731                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
193732                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
193733                 WHEN 18 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
193734                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
193735                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
193736                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
193737                 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
193738                 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
193739                 WHEN 24 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
193740                 WHEN 25 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
193741                 WHEN 26 THEN TO_CHAR(l1.AID_AMOUNT)
193742                 WHEN 27 THEN TO_CHAR(l3.POH_RATE_DATE)
193743                 WHEN 28 THEN TO_CHAR(l3.POH_RATE)
193744                 WHEN 29 THEN TO_CHAR(l3.POH_RATE_TYPE)
193745                 WHEN 30 THEN TO_CHAR(l1.DEFERRED_END_DATE)
193746                 WHEN 31 THEN TO_CHAR(l1.DEFERRED_OPTION)
193747                 WHEN 32 THEN TO_CHAR(l1.DEFERRED_START_DATE)
193748                 WHEN 33 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
193749                 WHEN 34 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
193750                 WHEN 35 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
193751                 WHEN 36 THEN TO_CHAR(l5.TAX_LINE_ID)
193752                 WHEN 37 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
193753                 WHEN 38 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
193754                 WHEN 39 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
193755                 WHEN 40 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
193756                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
193757                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
193758                 WHEN 43 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
193759                 WHEN 44 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
193760                 WHEN 45 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
193761                 WHEN 46 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
193762                 WHEN 47 THEN TO_CHAR(l1.AID_AMOUNT_VARIANCE)
193763                 WHEN 48 THEN TO_CHAR(l1.AID_ENCUMBERED_FLAG)
193764                 WHEN 49 THEN TO_CHAR(l1.AID_BASE_AMOUNT_VARIANCE)
193765                 WHEN 50 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
193769                 WHEN 54 THEN TO_CHAR(l1.AID_BASE_QUANTITY_VARIANCE)
193766                 WHEN 51 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
193767                 WHEN 52 THEN TO_CHAR(l1.ENCUMBRANCE_BASE_AMOUNT)
193768                 WHEN 53 THEN TO_CHAR(l1.AID_QUANTITY_VARIANCE)
193770                 WHEN 55 THEN TO_CHAR(l1.BUS_FLOW_RET_INV_DIST_ID)
193771                 WHEN 56 THEN TO_CHAR(l1.BUS_FLOW_RET_INV_ID)
193772                 
193773                 ELSE null
193774               END                           source_value
193775             , CASE r
193776                 WHEN 3 THEN fvl10.meaning
193777                 WHEN 5 THEN fvl21.meaning
193778                 WHEN 33 THEN fvl68.meaning
193779                 WHEN 46 THEN fvl84.meaning
193780                 WHEN 48 THEN fvl87.meaning
193781                 WHEN 50 THEN fvl135.meaning
193782                 
193783                 ELSE null
193784               END               source_meaning
193785          FROM  xla_events_gt     xet  
193786         , AP_INVOICE_EXTRACT_DETAILS_V  l1
193787         , AP_PO_HEADERS_EXTRACT_V  l3
193788         , ZX_AP_DEF_TAX_EXTRACT_V  l5
193789         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
193790   , fnd_lookup_values    fvl10
193791   , fnd_lookup_values    fvl21
193792   , fnd_lookup_values    fvl68
193793   , fnd_lookup_values    fvl84
193794   , fnd_lookup_values    fvl87
193795   , fnd_lookup_values    fvl135
193796             , (select rownum r from all_objects where rownum <= 56 and owner = p_apps_owner)
193797         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
193798           AND xet.event_class_code = C_EVENT_CLASS_CODE
193799             AND l1.event_id          = xet.event_id
193800  AND l1.pod_po_header_id  = l3.po_header_id (+)  AND l1.zrnd_tax_dist_id = l5.rec_nrec_tax_dist_id (+)  AND l1.zrnd_tax_dist_id = l6.rec_nrec_tax_dist_id (+)    AND fvl10.lookup_type(+)         = 'DESTINATION TYPE'
193801   AND fvl10.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
193802   AND fvl10.view_application_id(+) = 201
193803   AND fvl10.language(+)            = USERENV('LANG')
193804      AND fvl21.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
193805   AND fvl21.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
193806   AND fvl21.view_application_id(+) = 200
193807   AND fvl21.language(+)            = USERENV('LANG')
193808      AND fvl68.lookup_type(+)         = 'YES_NO'
193809   AND fvl68.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
193810   AND fvl68.view_application_id(+) = 0
193811   AND fvl68.language(+)            = USERENV('LANG')
193812      AND fvl84.lookup_type(+)         = 'YES_NO'
193813   AND fvl84.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
193814   AND fvl84.view_application_id(+) = 0
193815   AND fvl84.language(+)            = USERENV('LANG')
193816      AND fvl87.lookup_type(+)         = 'YES_NO'
193817   AND fvl87.lookup_code(+)         = l1.AID_ENCUMBERED_FLAG
193818   AND fvl87.view_application_id(+) = 0
193819   AND fvl87.language(+)            = USERENV('LANG')
193820      AND fvl135.lookup_type(+)         = 'YES_NO'
193821   AND fvl135.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
193822   AND fvl135.view_application_id(+) = 0
193823   AND fvl135.language(+)            = USERENV('LANG')
193824   
193825 )
193826 ;
193827 --
193828 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
193829 
193830       trace
193831          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
193832          ,p_level    => C_LEVEL_STATEMENT
193833          ,p_module   => l_log_module);
193834 
193835 END IF;
193836 
193837 
193838 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
193839       trace
193840          (p_msg      => 'END of insert_sources_294'
193841          ,p_level    => C_LEVEL_PROCEDURE
193842          ,p_module   => l_log_module);
193843 END IF;
193844 EXCEPTION
193845   WHEN xla_exceptions_pkg.application_exception THEN
193846       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
193847             trace
193848                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
193849                ,p_level    => C_LEVEL_EXCEPTION
193850                ,p_module   => l_log_module);
193851       END IF;
193852       RAISE;
193853   WHEN OTHERS THEN
193854       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
193855             trace
193856                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
193857                ,p_level    => C_LEVEL_EXCEPTION
193858                ,p_module   => l_log_module);
193859        END IF;
193860        xla_exceptions_pkg.raise_message
193861            (p_location => 'XLA_00200_AAD_S_000006_PKG.insert_sources_294');
193862 END insert_sources_294;
193863 --
193864 
193865 ---------------------------------------
193866 --
193867 -- PRIVATE FUNCTION
193868 --         EventClass_294
193869 --
193870 ----------------------------------------
193871 --
193872 FUNCTION EventClass_294
193873        (p_application_id         IN NUMBER
193874        ,p_base_ledger_id         IN NUMBER
193875        ,p_target_ledger_id       IN NUMBER
193876        ,p_language               IN VARCHAR2
193877        ,p_currency_code          IN VARCHAR2
193878        ,p_sla_ledger_id          IN NUMBER
193879        ,p_pad_start_date         IN DATE
193880        ,p_pad_end_date           IN DATE
193881        ,p_primary_ledger_id      IN NUMBER)
193882 RETURN BOOLEAN IS
193883 --
193884 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICES_ALL';
193885 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'INVOICES';
193886 
193887 l_calculate_acctd_flag   VARCHAR2(1) :='N';
193888 l_calculate_g_l_flag     VARCHAR2(1) :='N';
193889 --
193890 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
193894 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
193891 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
193892 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
193893 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
193895 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
193896 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
193897 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
193898 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
193899 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
193900 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
193901 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
193902 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
193903 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
193904 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
193905 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
193906 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
193907 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
193908 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
193909 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
193910 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
193911 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
193912 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
193913 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
193914 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
193915 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
193916 
193917 l_event_id                             NUMBER;
193918 l_previous_event_id                    NUMBER;
193919 l_first_event_id                       NUMBER;
193920 l_last_event_id                        NUMBER;
193921 
193922 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
193923 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
193924 --
193925 --
193926 l_result                    BOOLEAN := TRUE;
193927 l_rows                      NUMBER  := 1000;
193928 l_event_type_name           VARCHAR2(80) := 'All';
193929 l_event_class_name          VARCHAR2(80) := 'Invoices';
193930 l_description               VARCHAR2(4000);
193931 l_transaction_reversal      NUMBER;
193932 l_ae_header_id              NUMBER;
193933 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
193934 l_log_module                VARCHAR2(240);
193935 --
193936 l_acct_reversal_source      VARCHAR2(30);
193937 l_trx_reversal_source       VARCHAR2(30);
193938 
193939 l_continue_with_lines       BOOLEAN := TRUE;
193940 --
193941 l_acc_rev_gl_date_source    DATE;                      -- 4262811
193942 --
193943 type t_array_event_id is table of number index by binary_integer;
193944 
193945 l_rec_array_event                    t_rec_array_event;
193946 l_null_rec_array_event               t_rec_array_event;
193947 l_array_ae_header_id                 xla_number_array_type;
193948 l_actual_flag                        VARCHAR2(1) := NULL;
193949 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
193950 l_balance_type_code                  VARCHAR2(1) :=NULL;
193951 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
193952 
193953 --
193954 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
193955 --
193956 
193957 TYPE t_array_source_3 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
193958 TYPE t_array_source_8 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
193959 TYPE t_array_source_11 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
193960 TYPE t_array_source_22 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
193961 TYPE t_array_source_28 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
193962 TYPE t_array_source_35 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
193963 TYPE t_array_source_46 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
193964 TYPE t_array_source_55 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
193965 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
193966 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
193967 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
193968 TYPE t_array_source_86 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
193969 TYPE t_array_source_136 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
193970 TYPE t_array_source_137 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
193971 TYPE t_array_source_138 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
193972 TYPE t_array_source_159 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
193973 TYPE t_array_source_165 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
193977 TYPE t_array_source_1 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
193974 TYPE t_array_source_166 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
193975 TYPE t_array_source_167 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
193976 
193978 TYPE t_array_source_9 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
193979 TYPE t_array_source_10 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
193980 TYPE t_array_source_18 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
193981 TYPE t_array_source_21 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
193982 TYPE t_array_source_30 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
193983 TYPE t_array_source_31 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
193984 TYPE t_array_source_38 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
193985 TYPE t_array_source_39 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ASAT_LIAB_CCID%TYPE INDEX BY BINARY_INTEGER;
193986 TYPE t_array_source_41 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
193987 TYPE t_array_source_43 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
193988 TYPE t_array_source_45 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
193989 TYPE t_array_source_47 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
193990 TYPE t_array_source_48 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
193991 TYPE t_array_source_49 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
193992 TYPE t_array_source_50 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
193993 TYPE t_array_source_51 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
193994 TYPE t_array_source_52 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
193995 TYPE t_array_source_53 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
193996 TYPE t_array_source_54 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
193997 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
193998 TYPE t_array_source_57 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
193999 TYPE t_array_source_58 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
194000 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
194001 TYPE t_array_source_60 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
194002 TYPE t_array_source_61 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
194003 TYPE t_array_source_62 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
194004 TYPE t_array_source_63 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
194005 TYPE t_array_source_64 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
194006 TYPE t_array_source_65 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
194007 TYPE t_array_source_66 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
194008 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
194009 TYPE t_array_source_68 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
194010 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
194011 TYPE t_array_source_73 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
194012 TYPE t_array_source_74 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
194013 TYPE t_array_source_75 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
194014 TYPE t_array_source_76 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
194015 TYPE t_array_source_77 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
194016 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
194017 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
194018 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
194019 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
194020 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
194021 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
194022 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
194023 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
194024 TYPE t_array_source_87 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_ENCUMBERED_FLAG%TYPE INDEX BY BINARY_INTEGER;
194025 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_BASE_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
194026 TYPE t_array_source_135 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
194027 TYPE t_array_source_143 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
194031 TYPE t_array_source_163 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_RET_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
194028 TYPE t_array_source_144 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ENCUMBRANCE_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
194029 TYPE t_array_source_161 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
194030 TYPE t_array_source_162 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_BASE_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
194032 TYPE t_array_source_164 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_RET_INV_ID%TYPE INDEX BY BINARY_INTEGER;
194033 
194034 l_array_source_3              t_array_source_3;
194035 l_array_source_3_meaning      t_array_lookup_meaning;
194036 l_array_source_8              t_array_source_8;
194037 l_array_source_11              t_array_source_11;
194038 l_array_source_22              t_array_source_22;
194039 l_array_source_28              t_array_source_28;
194040 l_array_source_35              t_array_source_35;
194041 l_array_source_35_meaning      t_array_lookup_meaning;
194042 l_array_source_46              t_array_source_46;
194043 l_array_source_55              t_array_source_55;
194044 l_array_source_69              t_array_source_69;
194045 l_array_source_70              t_array_source_70;
194046 l_array_source_71              t_array_source_71;
194047 l_array_source_86              t_array_source_86;
194048 l_array_source_86_meaning      t_array_lookup_meaning;
194049 l_array_source_136              t_array_source_136;
194050 l_array_source_137              t_array_source_137;
194051 l_array_source_138              t_array_source_138;
194052 l_array_source_159              t_array_source_159;
194053 l_array_source_159_meaning      t_array_lookup_meaning;
194054 l_array_source_165              t_array_source_165;
194055 l_array_source_166              t_array_source_166;
194056 l_array_source_167              t_array_source_167;
194057 
194058 l_array_source_1      t_array_source_1;
194059 l_array_source_9      t_array_source_9;
194060 l_array_source_10      t_array_source_10;
194061 l_array_source_10_meaning      t_array_lookup_meaning;
194062 l_array_source_18      t_array_source_18;
194063 l_array_source_21      t_array_source_21;
194064 l_array_source_21_meaning      t_array_lookup_meaning;
194065 l_array_source_30      t_array_source_30;
194066 l_array_source_31      t_array_source_31;
194067 l_array_source_38      t_array_source_38;
194068 l_array_source_39      t_array_source_39;
194069 l_array_source_41      t_array_source_41;
194070 l_array_source_43      t_array_source_43;
194071 l_array_source_45      t_array_source_45;
194072 l_array_source_47      t_array_source_47;
194073 l_array_source_48      t_array_source_48;
194074 l_array_source_49      t_array_source_49;
194075 l_array_source_50      t_array_source_50;
194076 l_array_source_51      t_array_source_51;
194077 l_array_source_52      t_array_source_52;
194078 l_array_source_53      t_array_source_53;
194079 l_array_source_54      t_array_source_54;
194080 l_array_source_56      t_array_source_56;
194081 l_array_source_57      t_array_source_57;
194082 l_array_source_58      t_array_source_58;
194083 l_array_source_59      t_array_source_59;
194084 l_array_source_60      t_array_source_60;
194085 l_array_source_61      t_array_source_61;
194086 l_array_source_62      t_array_source_62;
194087 l_array_source_63      t_array_source_63;
194088 l_array_source_64      t_array_source_64;
194089 l_array_source_65      t_array_source_65;
194090 l_array_source_66      t_array_source_66;
194091 l_array_source_67      t_array_source_67;
194092 l_array_source_68      t_array_source_68;
194093 l_array_source_68_meaning      t_array_lookup_meaning;
194094 l_array_source_72      t_array_source_72;
194095 l_array_source_73      t_array_source_73;
194096 l_array_source_74      t_array_source_74;
194097 l_array_source_75      t_array_source_75;
194098 l_array_source_76      t_array_source_76;
194099 l_array_source_77      t_array_source_77;
194100 l_array_source_78      t_array_source_78;
194101 l_array_source_79      t_array_source_79;
194102 l_array_source_80      t_array_source_80;
194103 l_array_source_81      t_array_source_81;
194104 l_array_source_82      t_array_source_82;
194105 l_array_source_83      t_array_source_83;
194106 l_array_source_84      t_array_source_84;
194107 l_array_source_84_meaning      t_array_lookup_meaning;
194108 l_array_source_85      t_array_source_85;
194109 l_array_source_87      t_array_source_87;
194110 l_array_source_87_meaning      t_array_lookup_meaning;
194111 l_array_source_88      t_array_source_88;
194112 l_array_source_135      t_array_source_135;
194113 l_array_source_135_meaning      t_array_lookup_meaning;
194114 l_array_source_143      t_array_source_143;
194115 l_array_source_144      t_array_source_144;
194116 l_array_source_161      t_array_source_161;
194117 l_array_source_162      t_array_source_162;
194118 l_array_source_163      t_array_source_163;
194119 l_array_source_164      t_array_source_164;
194120 
194121 --
194122 CURSOR header_cur
194123 IS
194124 SELECT /*+ leading(xet) cardinality(xet,1) */
194125 -- Event Class Code: INVOICES
194126     xet.entity_id
194127    ,xet.legal_entity_id
194128    ,xet.entity_code
194129    ,xet.transaction_number
194130    ,xet.event_id
194131    ,xet.event_class_code
194132    ,xet.event_type_code
194133    ,xet.event_number
194134    ,xet.event_date
194135    ,xet.transaction_date
194136    ,xet.reference_num_1
194137    ,xet.reference_num_2
194138    ,xet.reference_num_3
194139    ,xet.reference_num_4
194140    ,xet.reference_char_1
194141    ,xet.reference_char_2
194142    ,xet.reference_char_3
194143    ,xet.reference_char_4
194144    ,xet.reference_date_1
194148    ,xet.event_created_by
194145    ,xet.reference_date_2
194146    ,xet.reference_date_3
194147    ,xet.reference_date_4
194149    ,xet.budgetary_control_flag 
194150   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_3
194151   , fvl3.meaning   source_3_meaning
194152   , h4.ASP_RATE_VAR_GAIN_CCID    source_8
194153   , h4.ASP_RATE_VAR_LOSS_CCID    source_11
194154   , h2.AI_ACCTS_PAY_CCID    source_22
194155   , h4.FSP_RETAINAGE_ACCOUNT    source_28
194156   , h4.ASP_AUTO_OFFSET_FLAG    source_35
194157   , fvl35.meaning   source_35_meaning
194158   , h2.AI_INVOICE_ID    source_46
194159   , h2.AI_INVOICE_CURRENCY_CODE    source_55
194160   , h2.AI_VENDOR_ID    source_69
194161   , h2.AI_VENDOR_SITE_ID    source_70
194162   , h2.THIRD_PARTY_TYPE    source_71
194163   , h4.FSP_PURCH_ENCUMBRANCE_FLAG    source_86
194164   , fvl86.meaning   source_86_meaning
194165   , h2.INV_EXCHANGE_DATE    source_136
194166   , h2.INV_EXCHANGE_RATE    source_137
194167   , h2.INV_EXCHANGE_RATE_TYPE    source_138
194168   , h2.AI_INVOICE_TYPE_LOOKUP_CODE    source_159
194169   , fvl159.meaning   source_159_meaning
194170   , h2.INV_DOC_SEQUENCE_CATEGORY    source_165
194171   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_166
194172   , h2.INV_DOC_SEQUENCE_VALUE    source_167
194173   FROM xla_events_gt     xet 
194174   , AP_INVOICE_EXTRACT_HEADER_V  h2
194175   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
194176   , fnd_lookup_values    fvl3
194177   , fnd_lookup_values    fvl35
194178   , fnd_lookup_values    fvl86
194179   , fnd_lookup_values    fvl159
194180  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
194181    and xet.event_class_code = C_EVENT_CLASS_CODE
194182    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
194183  AND h4.asp_org_id = h2.ai_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
194184   AND fvl3.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
194185   AND fvl3.view_application_id(+) = 200
194186   AND fvl3.language(+)            = USERENV('LANG')
194187      AND fvl35.lookup_type(+)         = 'YES_NO'
194188   AND fvl35.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
194189   AND fvl35.view_application_id(+) = 0
194190   AND fvl35.language(+)            = USERENV('LANG')
194191      AND fvl86.lookup_type(+)         = 'YES_NO'
194192   AND fvl86.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
194193   AND fvl86.view_application_id(+) = 0
194194   AND fvl86.language(+)            = USERENV('LANG')
194195      AND fvl159.lookup_type(+)         = 'INVOICE TYPE'
194196   AND fvl159.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
194197   AND fvl159.view_application_id(+) = 200
194198   AND fvl159.language(+)            = USERENV('LANG')
194199   
194200  ORDER BY event_id
194201 ;
194202 
194203 
194204 --
194205 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
194206 IS
194207 SELECT  /*+ leading(xet) cardinality(xet,1) */
194208 -- Event Class Code: INVOICES
194209     xet.entity_id
194210    ,xet.legal_entity_id
194211    ,xet.entity_code
194212    ,xet.transaction_number
194213    ,xet.event_id
194214    ,xet.event_class_code
194215    ,xet.event_type_code
194216    ,xet.event_number
194217    ,xet.event_date
194218    ,xet.transaction_date
194219    ,xet.reference_num_1
194220    ,xet.reference_num_2
194221    ,xet.reference_num_3
194222    ,xet.reference_num_4
194223    ,xet.reference_char_1
194224    ,xet.reference_char_2
194225    ,xet.reference_char_3
194226    ,xet.reference_char_4
194227    ,xet.reference_date_1
194228    ,xet.reference_date_2
194229    ,xet.reference_date_3
194230    ,xet.reference_date_4
194231    ,xet.event_created_by
194232    ,xet.budgetary_control_flag
194233  , l1.LINE_NUMBER  
194234   , l1.AID_DESCRIPTION    source_1
194235   , l1.INV_DIST_BASE_AMOUNT    source_9
194236   , l1.RELATED_INV_DIST_DEST_TYPE    source_10
194237   , fvl10.meaning   source_10_meaning
194238   , l1.AID_DIST_CCID    source_18
194239   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_21
194240   , fvl21.meaning   source_21_meaning
194241   , l1.AID_RET_RELATED_DIST_CCID    source_30
194242   , l1.AWT_RELATED_DIST_ACCOUNT    source_31
194243   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_38
194244   , l1.ASAT_LIAB_CCID    source_39
194245   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_41
194246   , l1.DISTRIBUTION_LINK_TYPE    source_43
194247   , l1.ALLOC_TO_MAIN_DIST_ID    source_45
194248   , l1.BUS_FLOW_PO_APP_ID    source_47
194249   , l1.BUS_FLOW_PO_DIST_TYPE    source_48
194250   , l1.BUS_FLOW_PO_ENTITY_CODE    source_49
194251   , l1.BUS_FLOW_PO_DIST_ID    source_50
194252   , l1.BUS_FLOW_PO_DOC_ID    source_51
194253   , l1.AID_INVOICE_DIST_ID    source_52
194254   , l1.UPG_ENC_CR_CCID    source_53
194255   , l1.UPG_ENC_CR_AMT    source_54
194256   , l1.UPG_ENC_CR_BASE_AMT    source_56
194257   , l1.UPG_ENC_DR_CCID    source_57
194258   , l1.UPG_ENC_DR_AMT    source_58
194259   , l1.UPG_ENC_DR_BASE_AMT    source_59
194260   , l1.UPG_AP_ENCUM_OPTION    source_60
194261   , l1.AID_AMOUNT    source_61
194262   , l3.POH_RATE_DATE    source_62
194263   , l3.POH_RATE    source_63
194264   , l3.POH_RATE_TYPE    source_64
194265   , l1.DEFERRED_END_DATE    source_65
194266   , l1.DEFERRED_OPTION    source_66
194267   , l1.DEFERRED_START_DATE    source_67
194268   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_68
194269   , fvl68.meaning   source_68_meaning
194270   , l1.AID_PARENT_REVERSAL_ID    source_72
194271   , l1.AID_STAT_AMOUNT    source_73
194272   , l5.TAX_LINE_ID    source_74
194273   , l6.REC_NREC_TAX_DIST_ID    source_75
194274   , l1.SUMMARY_TAX_LINE_ID    source_76
194275   , l1.UPG_CR_ENC_TYPE_ID    source_77
194276   , l1.UPG_DR_ENC_TYPE_ID    source_78
194277   , l1.BUS_FLOW_AP_APP_ID    source_79
194278   , l1.BUS_FLOW_INV_DIST_TYPE    source_80
194279   , l1.BUS_FLOW_INV_ENTITY_CODE    source_81
194283   , fvl84.meaning   source_84_meaning
194280   , l1.BUS_FLOW_INV_DIST_ID    source_82
194281   , l1.BUS_FLOW_INV_ID    source_83
194282   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_84
194284   , l1.AID_AMOUNT_VARIANCE    source_85
194285   , l1.AID_ENCUMBERED_FLAG    source_87
194286   , fvl87.meaning   source_87_meaning
194287   , l1.AID_BASE_AMOUNT_VARIANCE    source_88
194288   , l1.SELF_ASSESSED_TAX_FLAG    source_135
194289   , fvl135.meaning   source_135_meaning
194290   , l1.ENCUMBRANCE_AMOUNT    source_143
194291   , l1.ENCUMBRANCE_BASE_AMOUNT    source_144
194292   , l1.AID_QUANTITY_VARIANCE    source_161
194293   , l1.AID_BASE_QUANTITY_VARIANCE    source_162
194294   , l1.BUS_FLOW_RET_INV_DIST_ID    source_163
194295   , l1.BUS_FLOW_RET_INV_ID    source_164
194296   FROM xla_events_gt     xet 
194297   , AP_INVOICE_EXTRACT_DETAILS_V  l1
194298   , AP_PO_HEADERS_EXTRACT_V  l3
194299   , ZX_AP_DEF_TAX_EXTRACT_V  l5
194300   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
194301   , fnd_lookup_values    fvl10
194302   , fnd_lookup_values    fvl21
194303   , fnd_lookup_values    fvl68
194304   , fnd_lookup_values    fvl84
194305   , fnd_lookup_values    fvl87
194306   , fnd_lookup_values    fvl135
194307  WHERE xet.event_id between x_first_event_id and x_last_event_id
194308    and xet.event_date between p_pad_start_date and p_pad_end_date
194309    and xet.event_class_code = C_EVENT_CLASS_CODE
194310    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
194311  AND l1.POD_PO_Header_Id  = l3.PO_Header_Id (+)  AND l1.ZRND_tax_dist_id = l5.REC_NREC_TAX_DIST_ID (+)  AND l1.ZRND_tax_dist_id = l6.REC_NREC_TAX_DIST_ID (+)    AND fvl10.lookup_type(+)         = 'DESTINATION TYPE'
194312   AND fvl10.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
194313   AND fvl10.view_application_id(+) = 201
194314   AND fvl10.language(+)            = USERENV('LANG')
194315      AND fvl21.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
194316   AND fvl21.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
194317   AND fvl21.view_application_id(+) = 200
194318   AND fvl21.language(+)            = USERENV('LANG')
194319      AND fvl68.lookup_type(+)         = 'YES_NO'
194320   AND fvl68.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
194321   AND fvl68.view_application_id(+) = 0
194322   AND fvl68.language(+)            = USERENV('LANG')
194323      AND fvl84.lookup_type(+)         = 'YES_NO'
194324   AND fvl84.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
194325   AND fvl84.view_application_id(+) = 0
194326   AND fvl84.language(+)            = USERENV('LANG')
194327      AND fvl87.lookup_type(+)         = 'YES_NO'
194328   AND fvl87.lookup_code(+)         = l1.AID_ENCUMBERED_FLAG
194329   AND fvl87.view_application_id(+) = 0
194330   AND fvl87.language(+)            = USERENV('LANG')
194331      AND fvl135.lookup_type(+)         = 'YES_NO'
194332   AND fvl135.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
194333   AND fvl135.view_application_id(+) = 0
194334   AND fvl135.language(+)            = USERENV('LANG')
194335   ;
194336 
194337 --
194338 BEGIN
194339 IF g_log_enabled THEN
194340    l_log_module := C_DEFAULT_MODULE||'.EventClass_294';
194341 END IF;
194342 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
194343    trace
194344       (p_msg      => 'BEGIN of EventClass_294'
194345       ,p_level    => C_LEVEL_PROCEDURE
194346       ,p_module   => l_log_module);
194347 END IF;
194348 
194349 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
194350    trace
194351       (p_msg      => 'p_application_id = '||p_application_id||
194352                      ' - p_base_ledger_id = '||p_base_ledger_id||
194353                      ' - p_target_ledger_id  = '||p_target_ledger_id||
194354                      ' - p_language = '||p_language||
194355                      ' - p_currency_code = '||p_currency_code||
194356                      ' - p_sla_ledger_id = '||p_sla_ledger_id
194357       ,p_level    => C_LEVEL_STATEMENT
194358       ,p_module   => l_log_module);
194359 END IF;
194360 --
194361 -- initialze arrays
194362 --
194363 g_array_event.DELETE;
194364 l_rec_array_event := l_null_rec_array_event;
194365 --
194366 --------------------------------------
194367 -- 4262811 Initialze MPA Line Number
194368 --------------------------------------
194369 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
194370 
194371 --
194372 
194373 --
194374 OPEN header_cur;
194375 --
194376 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
194377    trace
194378    (p_msg      => 'SQL - FETCH header_cur'
194379    ,p_level    => C_LEVEL_STATEMENT
194380    ,p_module   => l_log_module);
194381 END IF;
194382 --
194383 LOOP
194384 FETCH header_cur BULK COLLECT INTO
194385         l_array_entity_id
194386       , l_array_legal_entity_id
194387       , l_array_entity_code
194388       , l_array_transaction_num
194389       , l_array_event_id
194390       , l_array_class_code
194391       , l_array_event_type
194392       , l_array_event_number
194393       , l_array_event_date
194394       , l_array_transaction_date
194395       , l_array_reference_num_1
194396       , l_array_reference_num_2
194397       , l_array_reference_num_3
194398       , l_array_reference_num_4
194399       , l_array_reference_char_1
194400       , l_array_reference_char_2
194401       , l_array_reference_char_3
194402       , l_array_reference_char_4
194403       , l_array_reference_date_1
194404       , l_array_reference_date_2
194405       , l_array_reference_date_3
194406       , l_array_reference_date_4
194407       , l_array_event_created_by
194408       , l_array_budgetary_control_flag 
194409       , l_array_source_3
194410       , l_array_source_3_meaning
194411       , l_array_source_8
194412       , l_array_source_11
194413       , l_array_source_22
194414       , l_array_source_28
194415       , l_array_source_35
194419       , l_array_source_69
194416       , l_array_source_35_meaning
194417       , l_array_source_46
194418       , l_array_source_55
194420       , l_array_source_70
194421       , l_array_source_71
194422       , l_array_source_86
194423       , l_array_source_86_meaning
194424       , l_array_source_136
194425       , l_array_source_137
194426       , l_array_source_138
194427       , l_array_source_159
194428       , l_array_source_159_meaning
194429       , l_array_source_165
194430       , l_array_source_166
194431       , l_array_source_167
194432       LIMIT l_rows;
194433 --
194434 IF (C_LEVEL_EVENT >= g_log_level) THEN
194435    trace
194436    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
194437    ,p_level    => C_LEVEL_EVENT
194438    ,p_module   => l_log_module);
194439 END IF;
194440 --
194441 EXIT WHEN l_array_entity_id.COUNT = 0;
194442 
194443 -- initialize arrays
194444 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
194445 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
194446 
194447 --
194448 -- Bug 4458708
194449 --
194450 XLA_AE_LINES_PKG.g_LineNumber := 0;
194451 
194452 
194453 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
194454 g_last_hdr_idx := l_array_event_id.LAST;
194455 --
194456 -- loop for the headers. Each iteration is for each header extract row
194457 -- fetched in header cursor
194458 --
194459 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
194460 
194461 --
194462 -- set event info as cache for other routines to refer event attributes
194463 --
194464 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
194465    (p_application_id           => p_application_id
194466    ,p_primary_ledger_id        => p_primary_ledger_id
194467    ,p_base_ledger_id           => p_base_ledger_id
194468    ,p_target_ledger_id         => p_target_ledger_id
194469    ,p_entity_id                => l_array_entity_id(hdr_idx)
194470    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
194471    ,p_entity_code              => l_array_entity_code(hdr_idx)
194472    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
194473    ,p_event_id                 => l_array_event_id(hdr_idx)
194474    ,p_event_class_code         => l_array_class_code(hdr_idx)
194475    ,p_event_type_code          => l_array_event_type(hdr_idx)
194476    ,p_event_number             => l_array_event_number(hdr_idx)
194477    ,p_event_date               => l_array_event_date(hdr_idx)
194478    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
194479    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
194480    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
194481    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
194482    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
194483    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
194484    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
194485    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
194486    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
194487    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
194488    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
194489    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
194490    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
194491    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
194492    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
194493 
194494 --
194495 -- set the status of entry to C_VALID (0)
194496 --
194497 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
194498 
194499 --
194500 -- initialize a row for ae header
194501 --
194502 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
194503 
194504 l_event_id := l_array_event_id(hdr_idx);
194505 
194506 --
194507 -- storing the hdr_idx for event. May be used by line cursor.
194508 --
194509 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
194510 
194511 --
194512 -- store sources from header extract. This can be improved to
194513 -- store only those sources from header extract that may be used in lines
194514 --
194515 
194516 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
194517 g_array_event(l_event_id).array_value_char('source_3_meaning') := l_array_source_3_meaning(hdr_idx);
194518 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
194519 g_array_event(l_event_id).array_value_num('source_11') := l_array_source_11(hdr_idx);
194520 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
194521 g_array_event(l_event_id).array_value_num('source_28') := l_array_source_28(hdr_idx);
194522 g_array_event(l_event_id).array_value_char('source_35') := l_array_source_35(hdr_idx);
194523 g_array_event(l_event_id).array_value_char('source_35_meaning') := l_array_source_35_meaning(hdr_idx);
194524 g_array_event(l_event_id).array_value_num('source_46') := l_array_source_46(hdr_idx);
194525 g_array_event(l_event_id).array_value_char('source_55') := l_array_source_55(hdr_idx);
194526 g_array_event(l_event_id).array_value_num('source_69') := l_array_source_69(hdr_idx);
194527 g_array_event(l_event_id).array_value_num('source_70') := l_array_source_70(hdr_idx);
194528 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
194529 g_array_event(l_event_id).array_value_char('source_86') := l_array_source_86(hdr_idx);
194530 g_array_event(l_event_id).array_value_char('source_86_meaning') := l_array_source_86_meaning(hdr_idx);
194531 g_array_event(l_event_id).array_value_date('source_136') := l_array_source_136(hdr_idx);
194535 g_array_event(l_event_id).array_value_char('source_159_meaning') := l_array_source_159_meaning(hdr_idx);
194532 g_array_event(l_event_id).array_value_num('source_137') := l_array_source_137(hdr_idx);
194533 g_array_event(l_event_id).array_value_char('source_138') := l_array_source_138(hdr_idx);
194534 g_array_event(l_event_id).array_value_char('source_159') := l_array_source_159(hdr_idx);
194536 g_array_event(l_event_id).array_value_char('source_165') := l_array_source_165(hdr_idx);
194537 g_array_event(l_event_id).array_value_num('source_166') := l_array_source_166(hdr_idx);
194538 g_array_event(l_event_id).array_value_num('source_167') := l_array_source_167(hdr_idx);
194539 
194540 --
194541 -- initilaize the status of ae headers for diffrent balance types
194542 -- the status is initialised to C_NOT_CREATED (2)
194543 --
194544 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
194545 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
194546 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
194547 
194548 --
194549 -- call api to validate and store accounting attributes for header
194550 --
194551 
194552 ------------------------------------------------------------
194553 -- Accrual Reversal : to get date for Standard Source (NONE)
194554 ------------------------------------------------------------
194555 l_acc_rev_gl_date_source := NULL;
194556 
194557      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
194558       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_165');
194559      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
194560       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_166');
194561      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
194562       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_167');
194563      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
194564       l_rec_acct_attrs.array_date_value(4) := 
194565 xla_ae_sources_pkg.GetSystemSourceDate(
194566    p_source_code           => 'XLA_EVENT_DATE'
194567  , p_source_type_code      => 'Y'
194568  , p_source_application_id =>  602
194569 );
194570 
194571 
194572 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
194573 
194574 XLA_AE_HEADER_PKG.SetJeCategoryName;
194575 
194576 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
194577 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
194578 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
194579 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
194580 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
194581 
194582 
194583 --
194584 xla_ae_header_pkg.SetHdrDescription(
194585    p_description => Description_1 (
194586    p_application_id => p_application_id 
194587    )
194588 );
194589 --
194590 
194591 -- No header level analytical criteria
194592 
194593 --
194594 --accounting attribute enhancement, bug 3612931
194595 --
194596 l_trx_reversal_source := SUBSTR(NULL, 1,30);
194597 
194598 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
194599    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
194600 
194601    xla_accounting_err_pkg.build_message
194602       (p_appli_s_name            => 'XLA'
194603       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
194604       ,p_token_1                 => 'ACCT_ATTR_NAME'
194605       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
194606       ,p_token_2                 => 'PRODUCT_NAME'
194607       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
194608       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
194609       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
194610       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
194611 
194612 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
194613    --
194614    -- following sets the accounting attributes needed to reverse
194615    -- accounting for a distributeion
194616    --
194617    xla_ae_lines_pkg.SetTrxReversalAttrs
194618       (p_event_id              => l_event_id
194619       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
194620       ,p_trx_reversal_source   => l_trx_reversal_source);
194621 
194622 END IF;
194623 
194624 
194625 ----------------------------------------------------------------
194626 -- 4262811 -  update the header statuses to invalid in need be
194627 ----------------------------------------------------------------
194628 --
194629 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
194630 
194631 
194632   -----------------------------------------------
194633   -- No accrual reversal for the event class/type
194634   -----------------------------------------------
194635 ----------------------------------------------------------------
194636 
194637 --
194638 -- this ends the header loop iteration for one bulk fetch
194639 --
194640 END LOOP;
194641 
194642 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
194643 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
194644 
194645 --
194646 -- insert dummy rows into lines gt table that were created due to
194647 -- transaction reversals
194648 --
194649 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
194653 --
194650    l_result := XLA_AE_LINES_PKG.InsertLines;
194651 END IF;
194652 
194654 -- reset the temp_line_num for each set of events fetched from header
194655 -- cursor rather than doing it for each new event in line cursor
194656 -- Bug 3939231
194657 --
194658 xla_ae_lines_pkg.g_temp_line_num := 0;
194659 
194660 
194661 
194662 --
194663 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
194664 --
194665 --
194666 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
194667 
194668       trace
194669          (p_msg      => 'SQL - FETCH line_cur'
194670          ,p_level    => C_LEVEL_STATEMENT
194671          ,p_module   => l_log_module);
194672 
194673 END IF;
194674 --
194675 --
194676 LOOP
194677   --
194678   FETCH line_cur BULK COLLECT INTO
194679         l_array_entity_id
194680       , l_array_legal_entity_id
194681       , l_array_entity_code
194682       , l_array_transaction_num
194683       , l_array_event_id
194684       , l_array_class_code
194685       , l_array_event_type
194686       , l_array_event_number
194687       , l_array_event_date
194688       , l_array_transaction_date
194689       , l_array_reference_num_1
194690       , l_array_reference_num_2
194691       , l_array_reference_num_3
194692       , l_array_reference_num_4
194693       , l_array_reference_char_1
194694       , l_array_reference_char_2
194695       , l_array_reference_char_3
194696       , l_array_reference_char_4
194697       , l_array_reference_date_1
194698       , l_array_reference_date_2
194699       , l_array_reference_date_3
194700       , l_array_reference_date_4
194701       , l_array_event_created_by
194702       , l_array_budgetary_control_flag
194703       , l_array_extract_line_num 
194704       , l_array_source_1
194705       , l_array_source_9
194706       , l_array_source_10
194707       , l_array_source_10_meaning
194708       , l_array_source_18
194709       , l_array_source_21
194710       , l_array_source_21_meaning
194711       , l_array_source_30
194712       , l_array_source_31
194713       , l_array_source_38
194714       , l_array_source_39
194715       , l_array_source_41
194716       , l_array_source_43
194717       , l_array_source_45
194718       , l_array_source_47
194719       , l_array_source_48
194720       , l_array_source_49
194721       , l_array_source_50
194722       , l_array_source_51
194723       , l_array_source_52
194724       , l_array_source_53
194725       , l_array_source_54
194726       , l_array_source_56
194727       , l_array_source_57
194728       , l_array_source_58
194729       , l_array_source_59
194730       , l_array_source_60
194731       , l_array_source_61
194732       , l_array_source_62
194733       , l_array_source_63
194734       , l_array_source_64
194735       , l_array_source_65
194736       , l_array_source_66
194737       , l_array_source_67
194738       , l_array_source_68
194739       , l_array_source_68_meaning
194740       , l_array_source_72
194741       , l_array_source_73
194742       , l_array_source_74
194743       , l_array_source_75
194744       , l_array_source_76
194745       , l_array_source_77
194746       , l_array_source_78
194747       , l_array_source_79
194748       , l_array_source_80
194749       , l_array_source_81
194750       , l_array_source_82
194751       , l_array_source_83
194752       , l_array_source_84
194753       , l_array_source_84_meaning
194754       , l_array_source_85
194755       , l_array_source_87
194756       , l_array_source_87_meaning
194757       , l_array_source_88
194758       , l_array_source_135
194759       , l_array_source_135_meaning
194760       , l_array_source_143
194761       , l_array_source_144
194762       , l_array_source_161
194763       , l_array_source_162
194764       , l_array_source_163
194765       , l_array_source_164
194766       LIMIT l_rows;
194767 
194768   --
194769   IF (C_LEVEL_EVENT >= g_log_level) THEN
194770             trace
194771                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
194772                ,p_level    => C_LEVEL_EVENT
194773                ,p_module   => l_log_module);
194774   END IF;
194775   --
194776   EXIT WHEN l_array_entity_id.count = 0;
194777 
194778   XLA_AE_LINES_PKG.g_rec_lines := null;
194779 
194780 --
194781 -- Bug 4458708
194782 --
194783 XLA_AE_LINES_PKG.g_LineNumber := 0;
194784 --
194785 --
194786 
194787 FOR Idx IN 1..l_array_event_id.count LOOP
194788    --
194789    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
194790    --
194791    l_event_id := l_array_event_id(idx);  -- 5648433
194792 
194793    --
194794    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
194795    --
194796 
194797    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
194798              (g_array_event(l_event_id).array_value_num('header_index'))
194799          ,'N'
194800          ) <> 'Y'
194801    THEN
194802       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
194803          trace
194804             (p_msg      => 'Trancaction revesal option is not Y '
194805             ,p_level    => C_LEVEL_STATEMENT
194806             ,p_module   => l_log_module);
194807       END IF;
194808 
194809 --
194810 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
194811 --
194815 --
194812 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
194813 --
194814 -- set event info as cache for other routines to refer event attributes
194816 
194817 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
194818    l_previous_event_id := l_event_id;
194819 
194820    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
194821       (p_application_id           => p_application_id
194822       ,p_primary_ledger_id        => p_primary_ledger_id
194823       ,p_base_ledger_id           => p_base_ledger_id
194824       ,p_target_ledger_id         => p_target_ledger_id
194825       ,p_entity_id                => l_array_entity_id(Idx)
194826       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
194827       ,p_entity_code              => l_array_entity_code(Idx)
194828       ,p_transaction_num          => l_array_transaction_num(Idx)
194829       ,p_event_id                 => l_array_event_id(Idx)
194830       ,p_event_class_code         => l_array_class_code(Idx)
194831       ,p_event_type_code          => l_array_event_type(Idx)
194832       ,p_event_number             => l_array_event_number(Idx)
194833       ,p_event_date               => l_array_event_date(Idx)
194834       ,p_transaction_date         => l_array_transaction_date(Idx)
194835       ,p_reference_num_1          => l_array_reference_num_1(Idx)
194836       ,p_reference_num_2          => l_array_reference_num_2(Idx)
194837       ,p_reference_num_3          => l_array_reference_num_3(Idx)
194838       ,p_reference_num_4          => l_array_reference_num_4(Idx)
194839       ,p_reference_char_1         => l_array_reference_char_1(Idx)
194840       ,p_reference_char_2         => l_array_reference_char_2(Idx)
194841       ,p_reference_char_3         => l_array_reference_char_3(Idx)
194842       ,p_reference_char_4         => l_array_reference_char_4(Idx)
194843       ,p_reference_date_1         => l_array_reference_date_1(Idx)
194844       ,p_reference_date_2         => l_array_reference_date_2(Idx)
194845       ,p_reference_date_3         => l_array_reference_date_3(Idx)
194846       ,p_reference_date_4         => l_array_reference_date_4(Idx)
194847       ,p_event_created_by         => l_array_event_created_by(Idx)
194848       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
194849        --
194850 END IF;
194851 
194852 
194853 
194854 --
194855 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
194856 
194857 l_acct_reversal_source := SUBSTR(l_array_source_41(Idx), 1,30);
194858 
194859 IF l_continue_with_lines THEN
194860    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
194861       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
194862 
194863       xla_accounting_err_pkg.build_message
194864          (p_appli_s_name            => 'XLA'
194865          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
194866          ,p_token_1                 => 'LINE_NUMBER'
194867          ,p_value_1                 => l_array_extract_line_num(Idx)
194868          ,p_token_2                 => 'PRODUCT_NAME'
194869          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
194870          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
194871          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
194872          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
194873 
194874    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
194875       --
194876       -- following sets the accounting attributes needed to reverse
194877       -- accounting for a distributeion
194878       --
194879 
194880       --
194881       -- 5217187
194882       --
194883       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
194884       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
194885                                        g_array_event(l_event_id).array_value_num('header_index'));
194886       --
194887       --
194888 
194889       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
194890       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_41(Idx);
194891       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
194892       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_52(Idx);
194893       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
194894       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_43(Idx);
194895       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
194896       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_53(Idx);
194897       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
194898       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_54(Idx);
194899       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
194900       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_55');
194901       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
194902       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_56(Idx);
194903       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
194904       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_57(Idx);
194905       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
194906       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_58(Idx);
194907       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
194908       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_55');
194909       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
194910       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_59(Idx);
194914       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_71');
194911       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
194912       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_60(Idx);
194913       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
194915       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
194916       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_72(Idx);
194917       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
194918       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_43(Idx);
194919       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
194920       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_74(Idx);
194921       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
194922       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_75(Idx);
194923       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
194924       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_76(Idx);
194925       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
194926       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_77(Idx);
194927       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
194928       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_78(Idx);
194929 
194930 
194931       xla_ae_lines_pkg.SetAcctReversalAttrs
194932          (p_event_id             => l_event_id
194933          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
194934          ,p_calculate_acctd_flag => l_calculate_acctd_flag
194935          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
194936    END IF;
194937 
194938    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
194939        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
194940 
194941 --
194942 AcctLineType_49 (
194943  p_application_id  => p_application_id
194944  ,p_event_id     => l_event_id
194945  ,p_calculate_acctd_flag => l_calculate_acctd_flag
194946  ,p_calculate_g_l_flag => l_calculate_g_l_flag
194947  ,p_actual_flag => l_actual_flag
194948  ,p_balance_type_code => l_balance_type_code
194949  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
194950  
194951  , p_source_1 => l_array_source_1(Idx)
194952  , p_source_9 => l_array_source_9(Idx)
194953  , p_source_18 => l_array_source_18(Idx)
194954  , p_source_21 => l_array_source_21(Idx)
194955  , p_source_21_meaning => l_array_source_21_meaning(Idx)
194956  , p_source_41 => l_array_source_41(Idx)
194957  , p_source_43 => l_array_source_43(Idx)
194958  , p_source_45 => l_array_source_45(Idx)
194959  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
194960  , p_source_47 => l_array_source_47(Idx)
194961  , p_source_48 => l_array_source_48(Idx)
194962  , p_source_49 => l_array_source_49(Idx)
194963  , p_source_50 => l_array_source_50(Idx)
194964  , p_source_51 => l_array_source_51(Idx)
194965  , p_source_52 => l_array_source_52(Idx)
194966  , p_source_53 => l_array_source_53(Idx)
194967  , p_source_54 => l_array_source_54(Idx)
194968  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
194969  , p_source_56 => l_array_source_56(Idx)
194970  , p_source_57 => l_array_source_57(Idx)
194971  , p_source_58 => l_array_source_58(Idx)
194972  , p_source_59 => l_array_source_59(Idx)
194973  , p_source_60 => l_array_source_60(Idx)
194974  , p_source_61 => l_array_source_61(Idx)
194975  , p_source_62 => l_array_source_62(Idx)
194976  , p_source_63 => l_array_source_63(Idx)
194977  , p_source_64 => l_array_source_64(Idx)
194978  , p_source_65 => l_array_source_65(Idx)
194979  , p_source_66 => l_array_source_66(Idx)
194980  , p_source_67 => l_array_source_67(Idx)
194981  , p_source_68 => l_array_source_68(Idx)
194982  , p_source_68_meaning => l_array_source_68_meaning(Idx)
194983  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
194984  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
194985  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
194986  , p_source_72 => l_array_source_72(Idx)
194987  , p_source_73 => l_array_source_73(Idx)
194988  , p_source_74 => l_array_source_74(Idx)
194989  , p_source_75 => l_array_source_75(Idx)
194990  , p_source_76 => l_array_source_76(Idx)
194991  , p_source_77 => l_array_source_77(Idx)
194992  , p_source_78 => l_array_source_78(Idx)
194993  );
194994 If(l_balance_type_code = 'A') THEN
194995   l_actual_gain_loss_ref := l_gain_or_loss_ref;
194996 END IF;
194997 
194998 --
194999 
195000 
195001 --
195002 AcctLineType_53 (
195003  p_application_id  => p_application_id
195004  ,p_event_id     => l_event_id
195005  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195006  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195007  ,p_actual_flag => l_actual_flag
195008  ,p_balance_type_code => l_balance_type_code
195009  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
195010  
195011  , p_source_1 => l_array_source_1(Idx)
195012  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
195013  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
195014  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
195015  , p_source_9 => l_array_source_9(Idx)
195016  , p_source_10 => l_array_source_10(Idx)
195017  , p_source_10_meaning => l_array_source_10_meaning(Idx)
195018  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
195019  , p_source_18 => l_array_source_18(Idx)
195020  , p_source_21 => l_array_source_21(Idx)
195021  , p_source_21_meaning => l_array_source_21_meaning(Idx)
195022  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
195023  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
195024  , p_source_41 => l_array_source_41(Idx)
195025  , p_source_43 => l_array_source_43(Idx)
195029  , p_source_53 => l_array_source_53(Idx)
195026  , p_source_45 => l_array_source_45(Idx)
195027  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
195028  , p_source_52 => l_array_source_52(Idx)
195030  , p_source_54 => l_array_source_54(Idx)
195031  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
195032  , p_source_56 => l_array_source_56(Idx)
195033  , p_source_57 => l_array_source_57(Idx)
195034  , p_source_58 => l_array_source_58(Idx)
195035  , p_source_59 => l_array_source_59(Idx)
195036  , p_source_60 => l_array_source_60(Idx)
195037  , p_source_61 => l_array_source_61(Idx)
195038  , p_source_65 => l_array_source_65(Idx)
195039  , p_source_66 => l_array_source_66(Idx)
195040  , p_source_67 => l_array_source_67(Idx)
195041  , p_source_68 => l_array_source_68(Idx)
195042  , p_source_68_meaning => l_array_source_68_meaning(Idx)
195043  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
195044  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
195045  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
195046  , p_source_72 => l_array_source_72(Idx)
195047  , p_source_73 => l_array_source_73(Idx)
195048  , p_source_74 => l_array_source_74(Idx)
195049  , p_source_75 => l_array_source_75(Idx)
195050  , p_source_76 => l_array_source_76(Idx)
195051  , p_source_77 => l_array_source_77(Idx)
195052  , p_source_78 => l_array_source_78(Idx)
195053  , p_source_79 => l_array_source_79(Idx)
195054  , p_source_80 => l_array_source_80(Idx)
195055  , p_source_81 => l_array_source_81(Idx)
195056  , p_source_82 => l_array_source_82(Idx)
195057  , p_source_83 => l_array_source_83(Idx)
195058  );
195059 If(l_balance_type_code = 'A') THEN
195060   l_actual_gain_loss_ref := l_gain_or_loss_ref;
195061 END IF;
195062 
195063 --
195064 
195065 
195066 --
195067 AcctLineType_57 (
195068  p_application_id  => p_application_id
195069  ,p_event_id     => l_event_id
195070  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195071  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195072  ,p_actual_flag => l_actual_flag
195073  ,p_balance_type_code => l_balance_type_code
195074  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
195075  
195076  , p_source_1 => l_array_source_1(Idx)
195077  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
195078  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
195079  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
195080  , p_source_9 => l_array_source_9(Idx)
195081  , p_source_10 => l_array_source_10(Idx)
195082  , p_source_10_meaning => l_array_source_10_meaning(Idx)
195083  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
195084  , p_source_18 => l_array_source_18(Idx)
195085  , p_source_21 => l_array_source_21(Idx)
195086  , p_source_21_meaning => l_array_source_21_meaning(Idx)
195087  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
195088  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
195089  , p_source_41 => l_array_source_41(Idx)
195090  , p_source_43 => l_array_source_43(Idx)
195091  , p_source_45 => l_array_source_45(Idx)
195092  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
195093  , p_source_52 => l_array_source_52(Idx)
195094  , p_source_53 => l_array_source_53(Idx)
195095  , p_source_54 => l_array_source_54(Idx)
195096  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
195097  , p_source_56 => l_array_source_56(Idx)
195098  , p_source_57 => l_array_source_57(Idx)
195099  , p_source_58 => l_array_source_58(Idx)
195100  , p_source_59 => l_array_source_59(Idx)
195101  , p_source_60 => l_array_source_60(Idx)
195102  , p_source_61 => l_array_source_61(Idx)
195103  , p_source_65 => l_array_source_65(Idx)
195104  , p_source_66 => l_array_source_66(Idx)
195105  , p_source_67 => l_array_source_67(Idx)
195106  , p_source_68 => l_array_source_68(Idx)
195107  , p_source_68_meaning => l_array_source_68_meaning(Idx)
195108  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
195109  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
195110  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
195111  , p_source_72 => l_array_source_72(Idx)
195112  , p_source_73 => l_array_source_73(Idx)
195113  , p_source_74 => l_array_source_74(Idx)
195114  , p_source_75 => l_array_source_75(Idx)
195115  , p_source_76 => l_array_source_76(Idx)
195116  , p_source_77 => l_array_source_77(Idx)
195117  , p_source_78 => l_array_source_78(Idx)
195118  , p_source_79 => l_array_source_79(Idx)
195119  , p_source_80 => l_array_source_80(Idx)
195120  , p_source_81 => l_array_source_81(Idx)
195121  , p_source_82 => l_array_source_82(Idx)
195122  , p_source_83 => l_array_source_83(Idx)
195123  , p_source_84 => l_array_source_84(Idx)
195124  , p_source_84_meaning => l_array_source_84_meaning(Idx)
195125  );
195126 If(l_balance_type_code = 'A') THEN
195127   l_actual_gain_loss_ref := l_gain_or_loss_ref;
195128 END IF;
195129 
195130 --
195131 
195132 
195133 --
195134 AcctLineType_61 (
195135  p_application_id  => p_application_id
195136  ,p_event_id     => l_event_id
195137  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195138  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195139  ,p_actual_flag => l_actual_flag
195140  ,p_balance_type_code => l_balance_type_code
195141  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
195142  
195143  , p_source_21 => l_array_source_21(Idx)
195144  , p_source_21_meaning => l_array_source_21_meaning(Idx)
195145  , p_source_41 => l_array_source_41(Idx)
195146  , p_source_43 => l_array_source_43(Idx)
195147  , p_source_45 => l_array_source_45(Idx)
195148  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
195149  , p_source_52 => l_array_source_52(Idx)
195150  , p_source_53 => l_array_source_53(Idx)
195154  , p_source_57 => l_array_source_57(Idx)
195151  , p_source_54 => l_array_source_54(Idx)
195152  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
195153  , p_source_56 => l_array_source_56(Idx)
195155  , p_source_58 => l_array_source_58(Idx)
195156  , p_source_59 => l_array_source_59(Idx)
195157  , p_source_60 => l_array_source_60(Idx)
195158  , p_source_61 => l_array_source_61(Idx)
195159  , p_source_65 => l_array_source_65(Idx)
195160  , p_source_66 => l_array_source_66(Idx)
195161  , p_source_67 => l_array_source_67(Idx)
195162  , p_source_68 => l_array_source_68(Idx)
195163  , p_source_68_meaning => l_array_source_68_meaning(Idx)
195164  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
195165  , p_source_72 => l_array_source_72(Idx)
195166  , p_source_73 => l_array_source_73(Idx)
195167  , p_source_74 => l_array_source_74(Idx)
195168  , p_source_75 => l_array_source_75(Idx)
195169  , p_source_76 => l_array_source_76(Idx)
195170  , p_source_77 => l_array_source_77(Idx)
195171  , p_source_78 => l_array_source_78(Idx)
195172  , p_source_79 => l_array_source_79(Idx)
195173  , p_source_80 => l_array_source_80(Idx)
195174  , p_source_81 => l_array_source_81(Idx)
195175  , p_source_82 => l_array_source_82(Idx)
195176  , p_source_83 => l_array_source_83(Idx)
195177  , p_source_84 => l_array_source_84(Idx)
195178  , p_source_84_meaning => l_array_source_84_meaning(Idx)
195179  , p_source_85 => l_array_source_85(Idx)
195180  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
195181  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
195182  , p_source_87 => l_array_source_87(Idx)
195183  , p_source_87_meaning => l_array_source_87_meaning(Idx)
195184  , p_source_88 => l_array_source_88(Idx)
195185  );
195186 If(l_balance_type_code = 'A') THEN
195187   l_actual_gain_loss_ref := l_gain_or_loss_ref;
195188 END IF;
195189 
195190 --
195191 
195192 
195193 --
195194 AcctLineType_115 (
195195  p_application_id  => p_application_id
195196  ,p_event_id     => l_event_id
195197  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195198  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195199  ,p_actual_flag => l_actual_flag
195200  ,p_balance_type_code => l_balance_type_code
195201  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
195202  
195203  , p_source_1 => l_array_source_1(Idx)
195204  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
195205  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
195206  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
195207  , p_source_9 => l_array_source_9(Idx)
195208  , p_source_10 => l_array_source_10(Idx)
195209  , p_source_10_meaning => l_array_source_10_meaning(Idx)
195210  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
195211  , p_source_18 => l_array_source_18(Idx)
195212  , p_source_21 => l_array_source_21(Idx)
195213  , p_source_21_meaning => l_array_source_21_meaning(Idx)
195214  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
195215  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
195216  , p_source_41 => l_array_source_41(Idx)
195217  , p_source_43 => l_array_source_43(Idx)
195218  , p_source_45 => l_array_source_45(Idx)
195219  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
195220  , p_source_52 => l_array_source_52(Idx)
195221  , p_source_53 => l_array_source_53(Idx)
195222  , p_source_54 => l_array_source_54(Idx)
195223  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
195224  , p_source_56 => l_array_source_56(Idx)
195225  , p_source_57 => l_array_source_57(Idx)
195226  , p_source_58 => l_array_source_58(Idx)
195227  , p_source_59 => l_array_source_59(Idx)
195228  , p_source_60 => l_array_source_60(Idx)
195229  , p_source_61 => l_array_source_61(Idx)
195230  , p_source_65 => l_array_source_65(Idx)
195231  , p_source_66 => l_array_source_66(Idx)
195232  , p_source_67 => l_array_source_67(Idx)
195233  , p_source_68 => l_array_source_68(Idx)
195234  , p_source_68_meaning => l_array_source_68_meaning(Idx)
195235  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
195236  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
195237  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
195238  , p_source_72 => l_array_source_72(Idx)
195239  , p_source_73 => l_array_source_73(Idx)
195240  , p_source_74 => l_array_source_74(Idx)
195241  , p_source_75 => l_array_source_75(Idx)
195242  , p_source_76 => l_array_source_76(Idx)
195243  , p_source_77 => l_array_source_77(Idx)
195244  , p_source_78 => l_array_source_78(Idx)
195245  , p_source_79 => l_array_source_79(Idx)
195246  , p_source_80 => l_array_source_80(Idx)
195247  , p_source_81 => l_array_source_81(Idx)
195248  , p_source_82 => l_array_source_82(Idx)
195249  , p_source_83 => l_array_source_83(Idx)
195250  , p_source_84 => l_array_source_84(Idx)
195251  , p_source_84_meaning => l_array_source_84_meaning(Idx)
195252  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
195253  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
195254  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
195255  );
195256 If(l_balance_type_code = 'A') THEN
195257   l_actual_gain_loss_ref := l_gain_or_loss_ref;
195258 END IF;
195259 
195260 --
195261 
195262 
195263 --
195264 AcctLineType_116 (
195265  p_application_id  => p_application_id
195266  ,p_event_id     => l_event_id
195267  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195268  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195269  ,p_actual_flag => l_actual_flag
195270  ,p_balance_type_code => l_balance_type_code
195271  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
195272  
195273  , p_source_21 => l_array_source_21(Idx)
195277  , p_source_45 => l_array_source_45(Idx)
195274  , p_source_21_meaning => l_array_source_21_meaning(Idx)
195275  , p_source_41 => l_array_source_41(Idx)
195276  , p_source_43 => l_array_source_43(Idx)
195278  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
195279  , p_source_52 => l_array_source_52(Idx)
195280  , p_source_53 => l_array_source_53(Idx)
195281  , p_source_54 => l_array_source_54(Idx)
195282  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
195283  , p_source_56 => l_array_source_56(Idx)
195284  , p_source_57 => l_array_source_57(Idx)
195285  , p_source_58 => l_array_source_58(Idx)
195286  , p_source_59 => l_array_source_59(Idx)
195287  , p_source_60 => l_array_source_60(Idx)
195288  , p_source_61 => l_array_source_61(Idx)
195289  , p_source_65 => l_array_source_65(Idx)
195290  , p_source_66 => l_array_source_66(Idx)
195291  , p_source_67 => l_array_source_67(Idx)
195292  , p_source_68 => l_array_source_68(Idx)
195293  , p_source_68_meaning => l_array_source_68_meaning(Idx)
195294  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
195295  , p_source_72 => l_array_source_72(Idx)
195296  , p_source_73 => l_array_source_73(Idx)
195297  , p_source_74 => l_array_source_74(Idx)
195298  , p_source_75 => l_array_source_75(Idx)
195299  , p_source_76 => l_array_source_76(Idx)
195300  , p_source_77 => l_array_source_77(Idx)
195301  , p_source_78 => l_array_source_78(Idx)
195302  , p_source_79 => l_array_source_79(Idx)
195303  , p_source_80 => l_array_source_80(Idx)
195304  , p_source_81 => l_array_source_81(Idx)
195305  , p_source_82 => l_array_source_82(Idx)
195306  , p_source_83 => l_array_source_83(Idx)
195307  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
195308  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
195309  , p_source_87 => l_array_source_87(Idx)
195310  , p_source_87_meaning => l_array_source_87_meaning(Idx)
195311  , p_source_143 => l_array_source_143(Idx)
195312  , p_source_144 => l_array_source_144(Idx)
195313  );
195314 If(l_balance_type_code = 'A') THEN
195315   l_actual_gain_loss_ref := l_gain_or_loss_ref;
195316 END IF;
195317 
195318 --
195319 
195320 
195321 --
195322 AcctLineType_128 (
195323  p_application_id  => p_application_id
195324  ,p_event_id     => l_event_id
195325  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195326  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195327  ,p_actual_flag => l_actual_flag
195328  ,p_balance_type_code => l_balance_type_code
195329  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
195330  
195331  , p_source_1 => l_array_source_1(Idx)
195332  , p_source_9 => l_array_source_9(Idx)
195333  , p_source_18 => l_array_source_18(Idx)
195334  , p_source_21 => l_array_source_21(Idx)
195335  , p_source_21_meaning => l_array_source_21_meaning(Idx)
195336  , p_source_41 => l_array_source_41(Idx)
195337  , p_source_43 => l_array_source_43(Idx)
195338  , p_source_45 => l_array_source_45(Idx)
195339  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
195340  , p_source_52 => l_array_source_52(Idx)
195341  , p_source_53 => l_array_source_53(Idx)
195342  , p_source_54 => l_array_source_54(Idx)
195343  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
195344  , p_source_56 => l_array_source_56(Idx)
195345  , p_source_57 => l_array_source_57(Idx)
195346  , p_source_58 => l_array_source_58(Idx)
195347  , p_source_59 => l_array_source_59(Idx)
195348  , p_source_60 => l_array_source_60(Idx)
195349  , p_source_61 => l_array_source_61(Idx)
195350  , p_source_65 => l_array_source_65(Idx)
195351  , p_source_66 => l_array_source_66(Idx)
195352  , p_source_67 => l_array_source_67(Idx)
195353  , p_source_68 => l_array_source_68(Idx)
195354  , p_source_68_meaning => l_array_source_68_meaning(Idx)
195355  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
195356  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
195357  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
195358  , p_source_72 => l_array_source_72(Idx)
195359  , p_source_73 => l_array_source_73(Idx)
195360  , p_source_74 => l_array_source_74(Idx)
195361  , p_source_75 => l_array_source_75(Idx)
195362  , p_source_76 => l_array_source_76(Idx)
195363  , p_source_77 => l_array_source_77(Idx)
195364  , p_source_78 => l_array_source_78(Idx)
195365  , p_source_79 => l_array_source_79(Idx)
195366  , p_source_80 => l_array_source_80(Idx)
195367  , p_source_81 => l_array_source_81(Idx)
195368  , p_source_82 => l_array_source_82(Idx)
195369  , p_source_83 => l_array_source_83(Idx)
195370  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
195371  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
195372  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
195373  );
195374 If(l_balance_type_code = 'A') THEN
195375   l_actual_gain_loss_ref := l_gain_or_loss_ref;
195376 END IF;
195377 
195378 --
195379 
195380 
195381 --
195382 AcctLineType_129 (
195383  p_application_id  => p_application_id
195384  ,p_event_id     => l_event_id
195385  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195386  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195387  ,p_actual_flag => l_actual_flag
195388  ,p_balance_type_code => l_balance_type_code
195389  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
195390  
195391  , p_source_21 => l_array_source_21(Idx)
195392  , p_source_21_meaning => l_array_source_21_meaning(Idx)
195393  , p_source_41 => l_array_source_41(Idx)
195394  , p_source_43 => l_array_source_43(Idx)
195395  , p_source_45 => l_array_source_45(Idx)
195396  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
195397  , p_source_52 => l_array_source_52(Idx)
195398  , p_source_53 => l_array_source_53(Idx)
195402  , p_source_57 => l_array_source_57(Idx)
195399  , p_source_54 => l_array_source_54(Idx)
195400  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
195401  , p_source_56 => l_array_source_56(Idx)
195403  , p_source_58 => l_array_source_58(Idx)
195404  , p_source_59 => l_array_source_59(Idx)
195405  , p_source_60 => l_array_source_60(Idx)
195406  , p_source_61 => l_array_source_61(Idx)
195407  , p_source_65 => l_array_source_65(Idx)
195408  , p_source_66 => l_array_source_66(Idx)
195409  , p_source_67 => l_array_source_67(Idx)
195410  , p_source_68 => l_array_source_68(Idx)
195411  , p_source_68_meaning => l_array_source_68_meaning(Idx)
195412  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
195413  , p_source_72 => l_array_source_72(Idx)
195414  , p_source_73 => l_array_source_73(Idx)
195415  , p_source_74 => l_array_source_74(Idx)
195416  , p_source_75 => l_array_source_75(Idx)
195417  , p_source_76 => l_array_source_76(Idx)
195418  , p_source_77 => l_array_source_77(Idx)
195419  , p_source_78 => l_array_source_78(Idx)
195420  , p_source_79 => l_array_source_79(Idx)
195421  , p_source_80 => l_array_source_80(Idx)
195422  , p_source_81 => l_array_source_81(Idx)
195423  , p_source_82 => l_array_source_82(Idx)
195424  , p_source_83 => l_array_source_83(Idx)
195425  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
195426  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
195427  , p_source_87 => l_array_source_87(Idx)
195428  , p_source_87_meaning => l_array_source_87_meaning(Idx)
195429  , p_source_143 => l_array_source_143(Idx)
195430  , p_source_144 => l_array_source_144(Idx)
195431  );
195432 If(l_balance_type_code = 'A') THEN
195433   l_actual_gain_loss_ref := l_gain_or_loss_ref;
195434 END IF;
195435 
195436 --
195437 
195438 
195439 --
195440 AcctLineType_154 (
195441  p_application_id  => p_application_id
195442  ,p_event_id     => l_event_id
195443  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195444  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195445  ,p_actual_flag => l_actual_flag
195446  ,p_balance_type_code => l_balance_type_code
195447  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
195448  
195449  , p_source_1 => l_array_source_1(Idx)
195450  , p_source_9 => l_array_source_9(Idx)
195451  , p_source_18 => l_array_source_18(Idx)
195452  , p_source_21 => l_array_source_21(Idx)
195453  , p_source_21_meaning => l_array_source_21_meaning(Idx)
195454  , p_source_41 => l_array_source_41(Idx)
195455  , p_source_43 => l_array_source_43(Idx)
195456  , p_source_45 => l_array_source_45(Idx)
195457  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
195458  , p_source_52 => l_array_source_52(Idx)
195459  , p_source_53 => l_array_source_53(Idx)
195460  , p_source_54 => l_array_source_54(Idx)
195461  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
195462  , p_source_56 => l_array_source_56(Idx)
195463  , p_source_57 => l_array_source_57(Idx)
195464  , p_source_58 => l_array_source_58(Idx)
195465  , p_source_59 => l_array_source_59(Idx)
195466  , p_source_60 => l_array_source_60(Idx)
195467  , p_source_61 => l_array_source_61(Idx)
195468  , p_source_65 => l_array_source_65(Idx)
195469  , p_source_66 => l_array_source_66(Idx)
195470  , p_source_67 => l_array_source_67(Idx)
195471  , p_source_68 => l_array_source_68(Idx)
195472  , p_source_68_meaning => l_array_source_68_meaning(Idx)
195473  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
195474  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
195475  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
195476  , p_source_72 => l_array_source_72(Idx)
195477  , p_source_73 => l_array_source_73(Idx)
195478  , p_source_74 => l_array_source_74(Idx)
195479  , p_source_75 => l_array_source_75(Idx)
195480  , p_source_76 => l_array_source_76(Idx)
195481  , p_source_77 => l_array_source_77(Idx)
195482  , p_source_78 => l_array_source_78(Idx)
195483  , p_source_79 => l_array_source_79(Idx)
195484  , p_source_80 => l_array_source_80(Idx)
195485  , p_source_81 => l_array_source_81(Idx)
195486  , p_source_82 => l_array_source_82(Idx)
195487  , p_source_83 => l_array_source_83(Idx)
195488  , p_source_84 => l_array_source_84(Idx)
195489  , p_source_84_meaning => l_array_source_84_meaning(Idx)
195490  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
195491  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
195492  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
195493  );
195494 If(l_balance_type_code = 'A') THEN
195495   l_actual_gain_loss_ref := l_gain_or_loss_ref;
195496 END IF;
195497 
195498 --
195499 
195500 
195501 --
195502 AcctLineType_155 (
195503  p_application_id  => p_application_id
195504  ,p_event_id     => l_event_id
195505  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195506  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195507  ,p_actual_flag => l_actual_flag
195508  ,p_balance_type_code => l_balance_type_code
195509  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
195510  
195511  , p_source_21 => l_array_source_21(Idx)
195512  , p_source_21_meaning => l_array_source_21_meaning(Idx)
195513  , p_source_41 => l_array_source_41(Idx)
195514  , p_source_43 => l_array_source_43(Idx)
195515  , p_source_45 => l_array_source_45(Idx)
195516  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
195517  , p_source_52 => l_array_source_52(Idx)
195518  , p_source_53 => l_array_source_53(Idx)
195519  , p_source_54 => l_array_source_54(Idx)
195520  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
195521  , p_source_56 => l_array_source_56(Idx)
195522  , p_source_57 => l_array_source_57(Idx)
195523  , p_source_58 => l_array_source_58(Idx)
195527  , p_source_65 => l_array_source_65(Idx)
195524  , p_source_59 => l_array_source_59(Idx)
195525  , p_source_60 => l_array_source_60(Idx)
195526  , p_source_61 => l_array_source_61(Idx)
195528  , p_source_66 => l_array_source_66(Idx)
195529  , p_source_67 => l_array_source_67(Idx)
195530  , p_source_68 => l_array_source_68(Idx)
195531  , p_source_68_meaning => l_array_source_68_meaning(Idx)
195532  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
195533  , p_source_72 => l_array_source_72(Idx)
195534  , p_source_73 => l_array_source_73(Idx)
195535  , p_source_74 => l_array_source_74(Idx)
195536  , p_source_75 => l_array_source_75(Idx)
195537  , p_source_76 => l_array_source_76(Idx)
195538  , p_source_77 => l_array_source_77(Idx)
195539  , p_source_78 => l_array_source_78(Idx)
195540  , p_source_79 => l_array_source_79(Idx)
195541  , p_source_80 => l_array_source_80(Idx)
195542  , p_source_81 => l_array_source_81(Idx)
195543  , p_source_82 => l_array_source_82(Idx)
195544  , p_source_83 => l_array_source_83(Idx)
195545  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
195546  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
195547  , p_source_87 => l_array_source_87(Idx)
195548  , p_source_87_meaning => l_array_source_87_meaning(Idx)
195549  , p_source_143 => l_array_source_143(Idx)
195550  , p_source_144 => l_array_source_144(Idx)
195551  );
195552 If(l_balance_type_code = 'A') THEN
195553   l_actual_gain_loss_ref := l_gain_or_loss_ref;
195554 END IF;
195555 
195556 --
195557 
195558 
195559 --
195560 AcctLineType_162 (
195561  p_application_id  => p_application_id
195562  ,p_event_id     => l_event_id
195563  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195564  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195565  ,p_actual_flag => l_actual_flag
195566  ,p_balance_type_code => l_balance_type_code
195567  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
195568  
195569  , p_source_1 => l_array_source_1(Idx)
195570  , p_source_9 => l_array_source_9(Idx)
195571  , p_source_18 => l_array_source_18(Idx)
195572  , p_source_21 => l_array_source_21(Idx)
195573  , p_source_21_meaning => l_array_source_21_meaning(Idx)
195574  , p_source_41 => l_array_source_41(Idx)
195575  , p_source_43 => l_array_source_43(Idx)
195576  , p_source_45 => l_array_source_45(Idx)
195577  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
195578  , p_source_52 => l_array_source_52(Idx)
195579  , p_source_53 => l_array_source_53(Idx)
195580  , p_source_54 => l_array_source_54(Idx)
195581  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
195582  , p_source_56 => l_array_source_56(Idx)
195583  , p_source_57 => l_array_source_57(Idx)
195584  , p_source_58 => l_array_source_58(Idx)
195585  , p_source_59 => l_array_source_59(Idx)
195586  , p_source_60 => l_array_source_60(Idx)
195587  , p_source_61 => l_array_source_61(Idx)
195588  , p_source_65 => l_array_source_65(Idx)
195589  , p_source_66 => l_array_source_66(Idx)
195590  , p_source_67 => l_array_source_67(Idx)
195591  , p_source_68 => l_array_source_68(Idx)
195592  , p_source_68_meaning => l_array_source_68_meaning(Idx)
195593  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
195594  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
195595  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
195596  , p_source_72 => l_array_source_72(Idx)
195597  , p_source_73 => l_array_source_73(Idx)
195598  , p_source_74 => l_array_source_74(Idx)
195599  , p_source_75 => l_array_source_75(Idx)
195600  , p_source_76 => l_array_source_76(Idx)
195601  , p_source_77 => l_array_source_77(Idx)
195602  , p_source_78 => l_array_source_78(Idx)
195603  , p_source_79 => l_array_source_79(Idx)
195604  , p_source_80 => l_array_source_80(Idx)
195605  , p_source_81 => l_array_source_81(Idx)
195606  , p_source_82 => l_array_source_82(Idx)
195607  , p_source_83 => l_array_source_83(Idx)
195608  , p_source_84 => l_array_source_84(Idx)
195609  , p_source_84_meaning => l_array_source_84_meaning(Idx)
195610  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
195611  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
195612  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
195613  );
195614 If(l_balance_type_code = 'A') THEN
195615   l_actual_gain_loss_ref := l_gain_or_loss_ref;
195616 END IF;
195617 
195618 --
195619 
195620 
195621 --
195622 AcctLineType_163 (
195623  p_application_id  => p_application_id
195624  ,p_event_id     => l_event_id
195625  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195626  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195627  ,p_actual_flag => l_actual_flag
195628  ,p_balance_type_code => l_balance_type_code
195629  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
195630  
195631  , p_source_21 => l_array_source_21(Idx)
195632  , p_source_21_meaning => l_array_source_21_meaning(Idx)
195633  , p_source_41 => l_array_source_41(Idx)
195634  , p_source_43 => l_array_source_43(Idx)
195635  , p_source_45 => l_array_source_45(Idx)
195636  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
195637  , p_source_52 => l_array_source_52(Idx)
195638  , p_source_53 => l_array_source_53(Idx)
195639  , p_source_54 => l_array_source_54(Idx)
195640  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
195641  , p_source_56 => l_array_source_56(Idx)
195642  , p_source_57 => l_array_source_57(Idx)
195643  , p_source_58 => l_array_source_58(Idx)
195644  , p_source_59 => l_array_source_59(Idx)
195645  , p_source_60 => l_array_source_60(Idx)
195646  , p_source_61 => l_array_source_61(Idx)
195647  , p_source_65 => l_array_source_65(Idx)
195651  , p_source_68_meaning => l_array_source_68_meaning(Idx)
195648  , p_source_66 => l_array_source_66(Idx)
195649  , p_source_67 => l_array_source_67(Idx)
195650  , p_source_68 => l_array_source_68(Idx)
195652  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
195653  , p_source_72 => l_array_source_72(Idx)
195654  , p_source_73 => l_array_source_73(Idx)
195655  , p_source_74 => l_array_source_74(Idx)
195656  , p_source_75 => l_array_source_75(Idx)
195657  , p_source_76 => l_array_source_76(Idx)
195658  , p_source_77 => l_array_source_77(Idx)
195659  , p_source_78 => l_array_source_78(Idx)
195660  , p_source_79 => l_array_source_79(Idx)
195661  , p_source_80 => l_array_source_80(Idx)
195662  , p_source_81 => l_array_source_81(Idx)
195663  , p_source_82 => l_array_source_82(Idx)
195664  , p_source_83 => l_array_source_83(Idx)
195665  , p_source_84 => l_array_source_84(Idx)
195666  , p_source_84_meaning => l_array_source_84_meaning(Idx)
195667  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
195668  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
195669  , p_source_87 => l_array_source_87(Idx)
195670  , p_source_87_meaning => l_array_source_87_meaning(Idx)
195671  , p_source_143 => l_array_source_143(Idx)
195672  , p_source_144 => l_array_source_144(Idx)
195673  , p_source_159 => g_array_event(l_event_id).array_value_char('source_159')
195674  , p_source_159_meaning => g_array_event(l_event_id).array_value_char('source_159_meaning')
195675  );
195676 If(l_balance_type_code = 'A') THEN
195677   l_actual_gain_loss_ref := l_gain_or_loss_ref;
195678 END IF;
195679 
195680 --
195681 
195682 
195683 --
195684 AcctLineType_174 (
195685  p_application_id  => p_application_id
195686  ,p_event_id     => l_event_id
195687  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195688  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195689  ,p_actual_flag => l_actual_flag
195690  ,p_balance_type_code => l_balance_type_code
195691  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
195692  
195693  , p_source_1 => l_array_source_1(Idx)
195694  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
195695  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
195696  , p_source_9 => l_array_source_9(Idx)
195697  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
195698  , p_source_41 => l_array_source_41(Idx)
195699  , p_source_43 => l_array_source_43(Idx)
195700  , p_source_45 => l_array_source_45(Idx)
195701  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
195702  , p_source_52 => l_array_source_52(Idx)
195703  , p_source_53 => l_array_source_53(Idx)
195704  , p_source_54 => l_array_source_54(Idx)
195705  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
195706  , p_source_56 => l_array_source_56(Idx)
195707  , p_source_57 => l_array_source_57(Idx)
195708  , p_source_58 => l_array_source_58(Idx)
195709  , p_source_59 => l_array_source_59(Idx)
195710  , p_source_60 => l_array_source_60(Idx)
195711  , p_source_61 => l_array_source_61(Idx)
195712  , p_source_65 => l_array_source_65(Idx)
195713  , p_source_66 => l_array_source_66(Idx)
195714  , p_source_67 => l_array_source_67(Idx)
195715  , p_source_68 => l_array_source_68(Idx)
195716  , p_source_68_meaning => l_array_source_68_meaning(Idx)
195717  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
195718  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
195719  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
195720  , p_source_72 => l_array_source_72(Idx)
195721  , p_source_73 => l_array_source_73(Idx)
195722  , p_source_74 => l_array_source_74(Idx)
195723  , p_source_75 => l_array_source_75(Idx)
195724  , p_source_76 => l_array_source_76(Idx)
195725  , p_source_77 => l_array_source_77(Idx)
195726  , p_source_78 => l_array_source_78(Idx)
195727  , p_source_79 => l_array_source_79(Idx)
195728  , p_source_80 => l_array_source_80(Idx)
195729  , p_source_81 => l_array_source_81(Idx)
195730  , p_source_82 => l_array_source_82(Idx)
195731  , p_source_83 => l_array_source_83(Idx)
195732  , p_source_135 => l_array_source_135(Idx)
195733  , p_source_135_meaning => l_array_source_135_meaning(Idx)
195734  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
195735  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
195736  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
195737  , p_source_159 => g_array_event(l_event_id).array_value_char('source_159')
195738  , p_source_159_meaning => g_array_event(l_event_id).array_value_char('source_159_meaning')
195739  );
195740 If(l_balance_type_code = 'A') THEN
195741   l_actual_gain_loss_ref := l_gain_or_loss_ref;
195742 END IF;
195743 
195744 --
195745 
195746 
195747 --
195748 AcctLineType_175 (
195749  p_application_id  => p_application_id
195750  ,p_event_id     => l_event_id
195751  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195752  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195753  ,p_actual_flag => l_actual_flag
195754  ,p_balance_type_code => l_balance_type_code
195755  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
195756  
195757  , p_source_1 => l_array_source_1(Idx)
195758  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
195759  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
195760  , p_source_9 => l_array_source_9(Idx)
195761  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
195762  , p_source_41 => l_array_source_41(Idx)
195763  , p_source_43 => l_array_source_43(Idx)
195764  , p_source_45 => l_array_source_45(Idx)
195765  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
195769  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
195766  , p_source_52 => l_array_source_52(Idx)
195767  , p_source_53 => l_array_source_53(Idx)
195768  , p_source_54 => l_array_source_54(Idx)
195770  , p_source_56 => l_array_source_56(Idx)
195771  , p_source_57 => l_array_source_57(Idx)
195772  , p_source_58 => l_array_source_58(Idx)
195773  , p_source_59 => l_array_source_59(Idx)
195774  , p_source_60 => l_array_source_60(Idx)
195775  , p_source_61 => l_array_source_61(Idx)
195776  , p_source_65 => l_array_source_65(Idx)
195777  , p_source_66 => l_array_source_66(Idx)
195778  , p_source_67 => l_array_source_67(Idx)
195779  , p_source_68 => l_array_source_68(Idx)
195780  , p_source_68_meaning => l_array_source_68_meaning(Idx)
195781  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
195782  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
195783  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
195784  , p_source_72 => l_array_source_72(Idx)
195785  , p_source_73 => l_array_source_73(Idx)
195786  , p_source_74 => l_array_source_74(Idx)
195787  , p_source_75 => l_array_source_75(Idx)
195788  , p_source_76 => l_array_source_76(Idx)
195789  , p_source_77 => l_array_source_77(Idx)
195790  , p_source_78 => l_array_source_78(Idx)
195791  , p_source_79 => l_array_source_79(Idx)
195792  , p_source_80 => l_array_source_80(Idx)
195793  , p_source_81 => l_array_source_81(Idx)
195794  , p_source_82 => l_array_source_82(Idx)
195795  , p_source_83 => l_array_source_83(Idx)
195796  , p_source_135 => l_array_source_135(Idx)
195797  , p_source_135_meaning => l_array_source_135_meaning(Idx)
195798  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
195799  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
195800  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
195801  , p_source_159 => g_array_event(l_event_id).array_value_char('source_159')
195802  , p_source_159_meaning => g_array_event(l_event_id).array_value_char('source_159_meaning')
195803  );
195804 If(l_balance_type_code = 'A') THEN
195805   l_actual_gain_loss_ref := l_gain_or_loss_ref;
195806 END IF;
195807 
195808 --
195809 
195810 
195811 --
195812 AcctLineType_176 (
195813  p_application_id  => p_application_id
195814  ,p_event_id     => l_event_id
195815  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195816  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195817  ,p_actual_flag => l_actual_flag
195818  ,p_balance_type_code => l_balance_type_code
195819  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
195820  
195821  , p_source_1 => l_array_source_1(Idx)
195822  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
195823  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
195824  , p_source_9 => l_array_source_9(Idx)
195825  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
195826  , p_source_41 => l_array_source_41(Idx)
195827  , p_source_43 => l_array_source_43(Idx)
195828  , p_source_45 => l_array_source_45(Idx)
195829  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
195830  , p_source_52 => l_array_source_52(Idx)
195831  , p_source_53 => l_array_source_53(Idx)
195832  , p_source_54 => l_array_source_54(Idx)
195833  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
195834  , p_source_56 => l_array_source_56(Idx)
195835  , p_source_57 => l_array_source_57(Idx)
195836  , p_source_58 => l_array_source_58(Idx)
195837  , p_source_59 => l_array_source_59(Idx)
195838  , p_source_60 => l_array_source_60(Idx)
195839  , p_source_61 => l_array_source_61(Idx)
195840  , p_source_65 => l_array_source_65(Idx)
195841  , p_source_66 => l_array_source_66(Idx)
195842  , p_source_67 => l_array_source_67(Idx)
195843  , p_source_68 => l_array_source_68(Idx)
195844  , p_source_68_meaning => l_array_source_68_meaning(Idx)
195845  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
195846  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
195847  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
195848  , p_source_72 => l_array_source_72(Idx)
195849  , p_source_73 => l_array_source_73(Idx)
195850  , p_source_74 => l_array_source_74(Idx)
195851  , p_source_75 => l_array_source_75(Idx)
195852  , p_source_76 => l_array_source_76(Idx)
195853  , p_source_77 => l_array_source_77(Idx)
195854  , p_source_78 => l_array_source_78(Idx)
195855  , p_source_79 => l_array_source_79(Idx)
195856  , p_source_80 => l_array_source_80(Idx)
195857  , p_source_81 => l_array_source_81(Idx)
195858  , p_source_82 => l_array_source_82(Idx)
195859  , p_source_83 => l_array_source_83(Idx)
195860  , p_source_135 => l_array_source_135(Idx)
195861  , p_source_135_meaning => l_array_source_135_meaning(Idx)
195862  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
195863  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
195864  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
195865  , p_source_159 => g_array_event(l_event_id).array_value_char('source_159')
195866  , p_source_159_meaning => g_array_event(l_event_id).array_value_char('source_159_meaning')
195867  );
195868 If(l_balance_type_code = 'A') THEN
195869   l_actual_gain_loss_ref := l_gain_or_loss_ref;
195870 END IF;
195871 
195872 --
195873 
195874 
195875 --
195876 AcctLineType_195 (
195877  p_application_id  => p_application_id
195878  ,p_event_id     => l_event_id
195879  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195880  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195881  ,p_actual_flag => l_actual_flag
195882  ,p_balance_type_code => l_balance_type_code
195883  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
195884  
195885  , p_source_1 => l_array_source_1(Idx)
195886  , p_source_9 => l_array_source_9(Idx)
195887  , p_source_18 => l_array_source_18(Idx)
195891  , p_source_43 => l_array_source_43(Idx)
195888  , p_source_21 => l_array_source_21(Idx)
195889  , p_source_21_meaning => l_array_source_21_meaning(Idx)
195890  , p_source_41 => l_array_source_41(Idx)
195892  , p_source_45 => l_array_source_45(Idx)
195893  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
195894  , p_source_52 => l_array_source_52(Idx)
195895  , p_source_53 => l_array_source_53(Idx)
195896  , p_source_54 => l_array_source_54(Idx)
195897  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
195898  , p_source_56 => l_array_source_56(Idx)
195899  , p_source_57 => l_array_source_57(Idx)
195900  , p_source_58 => l_array_source_58(Idx)
195901  , p_source_59 => l_array_source_59(Idx)
195902  , p_source_60 => l_array_source_60(Idx)
195903  , p_source_61 => l_array_source_61(Idx)
195904  , p_source_65 => l_array_source_65(Idx)
195905  , p_source_66 => l_array_source_66(Idx)
195906  , p_source_67 => l_array_source_67(Idx)
195907  , p_source_68 => l_array_source_68(Idx)
195908  , p_source_68_meaning => l_array_source_68_meaning(Idx)
195909  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
195910  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
195911  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
195912  , p_source_72 => l_array_source_72(Idx)
195913  , p_source_73 => l_array_source_73(Idx)
195914  , p_source_74 => l_array_source_74(Idx)
195915  , p_source_75 => l_array_source_75(Idx)
195916  , p_source_76 => l_array_source_76(Idx)
195917  , p_source_77 => l_array_source_77(Idx)
195918  , p_source_78 => l_array_source_78(Idx)
195919  , p_source_79 => l_array_source_79(Idx)
195920  , p_source_80 => l_array_source_80(Idx)
195921  , p_source_81 => l_array_source_81(Idx)
195922  , p_source_82 => l_array_source_82(Idx)
195923  , p_source_83 => l_array_source_83(Idx)
195924  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
195925  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
195926  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
195927  );
195928 If(l_balance_type_code = 'A') THEN
195929   l_actual_gain_loss_ref := l_gain_or_loss_ref;
195930 END IF;
195931 
195932 --
195933 
195934 
195935 --
195936 AcctLineType_196 (
195937  p_application_id  => p_application_id
195938  ,p_event_id     => l_event_id
195939  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195940  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195941  ,p_actual_flag => l_actual_flag
195942  ,p_balance_type_code => l_balance_type_code
195943  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
195944  
195945  , p_source_21 => l_array_source_21(Idx)
195946  , p_source_21_meaning => l_array_source_21_meaning(Idx)
195947  , p_source_41 => l_array_source_41(Idx)
195948  , p_source_43 => l_array_source_43(Idx)
195949  , p_source_45 => l_array_source_45(Idx)
195950  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
195951  , p_source_52 => l_array_source_52(Idx)
195952  , p_source_53 => l_array_source_53(Idx)
195953  , p_source_54 => l_array_source_54(Idx)
195954  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
195955  , p_source_56 => l_array_source_56(Idx)
195956  , p_source_57 => l_array_source_57(Idx)
195957  , p_source_58 => l_array_source_58(Idx)
195958  , p_source_59 => l_array_source_59(Idx)
195959  , p_source_60 => l_array_source_60(Idx)
195960  , p_source_61 => l_array_source_61(Idx)
195961  , p_source_65 => l_array_source_65(Idx)
195962  , p_source_66 => l_array_source_66(Idx)
195963  , p_source_67 => l_array_source_67(Idx)
195964  , p_source_68 => l_array_source_68(Idx)
195965  , p_source_68_meaning => l_array_source_68_meaning(Idx)
195966  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
195967  , p_source_72 => l_array_source_72(Idx)
195968  , p_source_73 => l_array_source_73(Idx)
195969  , p_source_74 => l_array_source_74(Idx)
195970  , p_source_75 => l_array_source_75(Idx)
195971  , p_source_76 => l_array_source_76(Idx)
195972  , p_source_77 => l_array_source_77(Idx)
195973  , p_source_78 => l_array_source_78(Idx)
195974  , p_source_79 => l_array_source_79(Idx)
195975  , p_source_80 => l_array_source_80(Idx)
195976  , p_source_81 => l_array_source_81(Idx)
195977  , p_source_82 => l_array_source_82(Idx)
195978  , p_source_83 => l_array_source_83(Idx)
195979  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
195980  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
195981  , p_source_87 => l_array_source_87(Idx)
195982  , p_source_87_meaning => l_array_source_87_meaning(Idx)
195983  , p_source_143 => l_array_source_143(Idx)
195984  , p_source_144 => l_array_source_144(Idx)
195985  );
195986 If(l_balance_type_code = 'A') THEN
195987   l_actual_gain_loss_ref := l_gain_or_loss_ref;
195988 END IF;
195989 
195990 --
195991 
195992 
195993 --
195994 AcctLineType_201 (
195995  p_application_id  => p_application_id
195996  ,p_event_id     => l_event_id
195997  ,p_calculate_acctd_flag => l_calculate_acctd_flag
195998  ,p_calculate_g_l_flag => l_calculate_g_l_flag
195999  ,p_actual_flag => l_actual_flag
196000  ,p_balance_type_code => l_balance_type_code
196001  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196002  
196003  , p_source_1 => l_array_source_1(Idx)
196004  , p_source_9 => l_array_source_9(Idx)
196005  , p_source_18 => l_array_source_18(Idx)
196006  , p_source_21 => l_array_source_21(Idx)
196007  , p_source_21_meaning => l_array_source_21_meaning(Idx)
196008  , p_source_41 => l_array_source_41(Idx)
196009  , p_source_43 => l_array_source_43(Idx)
196010  , p_source_45 => l_array_source_45(Idx)
196011  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
196012  , p_source_52 => l_array_source_52(Idx)
196013  , p_source_53 => l_array_source_53(Idx)
196014  , p_source_54 => l_array_source_54(Idx)
196015  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
196016  , p_source_56 => l_array_source_56(Idx)
196017  , p_source_57 => l_array_source_57(Idx)
196018  , p_source_58 => l_array_source_58(Idx)
196019  , p_source_59 => l_array_source_59(Idx)
196020  , p_source_60 => l_array_source_60(Idx)
196021  , p_source_61 => l_array_source_61(Idx)
196022  , p_source_62 => l_array_source_62(Idx)
196023  , p_source_63 => l_array_source_63(Idx)
196024  , p_source_64 => l_array_source_64(Idx)
196025  , p_source_65 => l_array_source_65(Idx)
196026  , p_source_66 => l_array_source_66(Idx)
196027  , p_source_67 => l_array_source_67(Idx)
196028  , p_source_68 => l_array_source_68(Idx)
196029  , p_source_68_meaning => l_array_source_68_meaning(Idx)
196030  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
196031  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
196032  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
196033  , p_source_72 => l_array_source_72(Idx)
196034  , p_source_73 => l_array_source_73(Idx)
196035  , p_source_74 => l_array_source_74(Idx)
196036  , p_source_75 => l_array_source_75(Idx)
196037  , p_source_76 => l_array_source_76(Idx)
196038  , p_source_77 => l_array_source_77(Idx)
196039  , p_source_78 => l_array_source_78(Idx)
196040  , p_source_79 => l_array_source_79(Idx)
196041  , p_source_80 => l_array_source_80(Idx)
196042  , p_source_81 => l_array_source_81(Idx)
196043  , p_source_82 => l_array_source_82(Idx)
196044  , p_source_83 => l_array_source_83(Idx)
196045  , p_source_84 => l_array_source_84(Idx)
196046  , p_source_84_meaning => l_array_source_84_meaning(Idx)
196047  , p_source_135 => l_array_source_135(Idx)
196048  , p_source_135_meaning => l_array_source_135_meaning(Idx)
196049  );
196050 If(l_balance_type_code = 'A') THEN
196051   l_actual_gain_loss_ref := l_gain_or_loss_ref;
196052 END IF;
196053 
196054 --
196055 
196056 
196057 --
196058 AcctLineType_206 (
196059  p_application_id  => p_application_id
196060  ,p_event_id     => l_event_id
196061  ,p_calculate_acctd_flag => l_calculate_acctd_flag
196062  ,p_calculate_g_l_flag => l_calculate_g_l_flag
196063  ,p_actual_flag => l_actual_flag
196064  ,p_balance_type_code => l_balance_type_code
196065  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196066  
196067  , p_source_1 => l_array_source_1(Idx)
196068  , p_source_9 => l_array_source_9(Idx)
196069  , p_source_18 => l_array_source_18(Idx)
196070  , p_source_21 => l_array_source_21(Idx)
196071  , p_source_21_meaning => l_array_source_21_meaning(Idx)
196072  , p_source_41 => l_array_source_41(Idx)
196073  , p_source_43 => l_array_source_43(Idx)
196074  , p_source_45 => l_array_source_45(Idx)
196075  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
196076  , p_source_52 => l_array_source_52(Idx)
196077  , p_source_53 => l_array_source_53(Idx)
196078  , p_source_54 => l_array_source_54(Idx)
196079  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
196080  , p_source_56 => l_array_source_56(Idx)
196081  , p_source_57 => l_array_source_57(Idx)
196082  , p_source_58 => l_array_source_58(Idx)
196083  , p_source_59 => l_array_source_59(Idx)
196084  , p_source_60 => l_array_source_60(Idx)
196085  , p_source_61 => l_array_source_61(Idx)
196086  , p_source_65 => l_array_source_65(Idx)
196087  , p_source_66 => l_array_source_66(Idx)
196088  , p_source_67 => l_array_source_67(Idx)
196089  , p_source_68 => l_array_source_68(Idx)
196090  , p_source_68_meaning => l_array_source_68_meaning(Idx)
196091  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
196092  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
196093  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
196094  , p_source_72 => l_array_source_72(Idx)
196095  , p_source_73 => l_array_source_73(Idx)
196096  , p_source_74 => l_array_source_74(Idx)
196097  , p_source_75 => l_array_source_75(Idx)
196098  , p_source_76 => l_array_source_76(Idx)
196099  , p_source_77 => l_array_source_77(Idx)
196100  , p_source_78 => l_array_source_78(Idx)
196101  , p_source_79 => l_array_source_79(Idx)
196102  , p_source_80 => l_array_source_80(Idx)
196103  , p_source_81 => l_array_source_81(Idx)
196104  , p_source_82 => l_array_source_82(Idx)
196105  , p_source_83 => l_array_source_83(Idx)
196106  , p_source_84 => l_array_source_84(Idx)
196107  , p_source_84_meaning => l_array_source_84_meaning(Idx)
196108  , p_source_135 => l_array_source_135(Idx)
196109  , p_source_135_meaning => l_array_source_135_meaning(Idx)
196110  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
196111  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
196112  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
196113  );
196114 If(l_balance_type_code = 'A') THEN
196115   l_actual_gain_loss_ref := l_gain_or_loss_ref;
196116 END IF;
196117 
196118 --
196119 
196120 
196121 --
196122 AcctLineType_207 (
196123  p_application_id  => p_application_id
196124  ,p_event_id     => l_event_id
196125  ,p_calculate_acctd_flag => l_calculate_acctd_flag
196126  ,p_calculate_g_l_flag => l_calculate_g_l_flag
196127  ,p_actual_flag => l_actual_flag
196128  ,p_balance_type_code => l_balance_type_code
196129  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196130  
196131  , p_source_21 => l_array_source_21(Idx)
196132  , p_source_21_meaning => l_array_source_21_meaning(Idx)
196133  , p_source_41 => l_array_source_41(Idx)
196134  , p_source_43 => l_array_source_43(Idx)
196135  , p_source_45 => l_array_source_45(Idx)
196136  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
196137  , p_source_52 => l_array_source_52(Idx)
196138  , p_source_53 => l_array_source_53(Idx)
196139  , p_source_54 => l_array_source_54(Idx)
196140  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
196141  , p_source_56 => l_array_source_56(Idx)
196142  , p_source_57 => l_array_source_57(Idx)
196143  , p_source_58 => l_array_source_58(Idx)
196144  , p_source_59 => l_array_source_59(Idx)
196145  , p_source_60 => l_array_source_60(Idx)
196146  , p_source_61 => l_array_source_61(Idx)
196147  , p_source_65 => l_array_source_65(Idx)
196148  , p_source_66 => l_array_source_66(Idx)
196149  , p_source_67 => l_array_source_67(Idx)
196150  , p_source_68 => l_array_source_68(Idx)
196151  , p_source_68_meaning => l_array_source_68_meaning(Idx)
196152  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
196153  , p_source_72 => l_array_source_72(Idx)
196154  , p_source_73 => l_array_source_73(Idx)
196155  , p_source_74 => l_array_source_74(Idx)
196156  , p_source_75 => l_array_source_75(Idx)
196157  , p_source_76 => l_array_source_76(Idx)
196158  , p_source_77 => l_array_source_77(Idx)
196159  , p_source_78 => l_array_source_78(Idx)
196160  , p_source_79 => l_array_source_79(Idx)
196161  , p_source_80 => l_array_source_80(Idx)
196162  , p_source_81 => l_array_source_81(Idx)
196163  , p_source_82 => l_array_source_82(Idx)
196164  , p_source_83 => l_array_source_83(Idx)
196165  , p_source_84 => l_array_source_84(Idx)
196166  , p_source_84_meaning => l_array_source_84_meaning(Idx)
196167  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
196168  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
196169  , p_source_87 => l_array_source_87(Idx)
196170  , p_source_87_meaning => l_array_source_87_meaning(Idx)
196171  , p_source_135 => l_array_source_135(Idx)
196172  , p_source_135_meaning => l_array_source_135_meaning(Idx)
196173  , p_source_143 => l_array_source_143(Idx)
196174  , p_source_144 => l_array_source_144(Idx)
196175  );
196176 If(l_balance_type_code = 'A') THEN
196177   l_actual_gain_loss_ref := l_gain_or_loss_ref;
196178 END IF;
196179 
196180 --
196181 
196182 
196183 --
196184 AcctLineType_218 (
196185  p_application_id  => p_application_id
196186  ,p_event_id     => l_event_id
196187  ,p_calculate_acctd_flag => l_calculate_acctd_flag
196188  ,p_calculate_g_l_flag => l_calculate_g_l_flag
196189  ,p_actual_flag => l_actual_flag
196190  ,p_balance_type_code => l_balance_type_code
196191  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196192  
196193  , p_source_21 => l_array_source_21(Idx)
196194  , p_source_21_meaning => l_array_source_21_meaning(Idx)
196195  , p_source_41 => l_array_source_41(Idx)
196196  , p_source_43 => l_array_source_43(Idx)
196197  , p_source_45 => l_array_source_45(Idx)
196198  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
196199  , p_source_52 => l_array_source_52(Idx)
196200  , p_source_53 => l_array_source_53(Idx)
196201  , p_source_54 => l_array_source_54(Idx)
196202  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
196203  , p_source_56 => l_array_source_56(Idx)
196204  , p_source_57 => l_array_source_57(Idx)
196205  , p_source_58 => l_array_source_58(Idx)
196206  , p_source_59 => l_array_source_59(Idx)
196207  , p_source_60 => l_array_source_60(Idx)
196208  , p_source_61 => l_array_source_61(Idx)
196209  , p_source_65 => l_array_source_65(Idx)
196210  , p_source_66 => l_array_source_66(Idx)
196211  , p_source_67 => l_array_source_67(Idx)
196212  , p_source_68 => l_array_source_68(Idx)
196213  , p_source_68_meaning => l_array_source_68_meaning(Idx)
196217  , p_source_74 => l_array_source_74(Idx)
196214  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
196215  , p_source_72 => l_array_source_72(Idx)
196216  , p_source_73 => l_array_source_73(Idx)
196218  , p_source_75 => l_array_source_75(Idx)
196219  , p_source_76 => l_array_source_76(Idx)
196220  , p_source_77 => l_array_source_77(Idx)
196221  , p_source_78 => l_array_source_78(Idx)
196222  , p_source_79 => l_array_source_79(Idx)
196223  , p_source_80 => l_array_source_80(Idx)
196224  , p_source_81 => l_array_source_81(Idx)
196225  , p_source_82 => l_array_source_82(Idx)
196226  , p_source_83 => l_array_source_83(Idx)
196227  , p_source_84 => l_array_source_84(Idx)
196228  , p_source_84_meaning => l_array_source_84_meaning(Idx)
196229  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
196230  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
196231  , p_source_87 => l_array_source_87(Idx)
196232  , p_source_87_meaning => l_array_source_87_meaning(Idx)
196233  , p_source_161 => l_array_source_161(Idx)
196234  , p_source_162 => l_array_source_162(Idx)
196235  );
196236 If(l_balance_type_code = 'A') THEN
196237   l_actual_gain_loss_ref := l_gain_or_loss_ref;
196238 END IF;
196239 
196240 --
196241 
196242 
196243 --
196244 AcctLineType_224 (
196245  p_application_id  => p_application_id
196246  ,p_event_id     => l_event_id
196247  ,p_calculate_acctd_flag => l_calculate_acctd_flag
196248  ,p_calculate_g_l_flag => l_calculate_g_l_flag
196249  ,p_actual_flag => l_actual_flag
196250  ,p_balance_type_code => l_balance_type_code
196251  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196252  
196253  , p_source_1 => l_array_source_1(Idx)
196254  , p_source_9 => l_array_source_9(Idx)
196255  , p_source_18 => l_array_source_18(Idx)
196256  , p_source_21 => l_array_source_21(Idx)
196257  , p_source_21_meaning => l_array_source_21_meaning(Idx)
196258  , p_source_41 => l_array_source_41(Idx)
196259  , p_source_43 => l_array_source_43(Idx)
196260  , p_source_45 => l_array_source_45(Idx)
196261  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
196262  , p_source_52 => l_array_source_52(Idx)
196263  , p_source_53 => l_array_source_53(Idx)
196264  , p_source_54 => l_array_source_54(Idx)
196265  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
196266  , p_source_56 => l_array_source_56(Idx)
196267  , p_source_57 => l_array_source_57(Idx)
196268  , p_source_58 => l_array_source_58(Idx)
196269  , p_source_59 => l_array_source_59(Idx)
196270  , p_source_60 => l_array_source_60(Idx)
196271  , p_source_61 => l_array_source_61(Idx)
196272  , p_source_65 => l_array_source_65(Idx)
196273  , p_source_66 => l_array_source_66(Idx)
196274  , p_source_67 => l_array_source_67(Idx)
196275  , p_source_68 => l_array_source_68(Idx)
196276  , p_source_68_meaning => l_array_source_68_meaning(Idx)
196277  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
196278  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
196279  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
196280  , p_source_72 => l_array_source_72(Idx)
196281  , p_source_73 => l_array_source_73(Idx)
196282  , p_source_74 => l_array_source_74(Idx)
196283  , p_source_75 => l_array_source_75(Idx)
196284  , p_source_76 => l_array_source_76(Idx)
196288  , p_source_80 => l_array_source_80(Idx)
196285  , p_source_77 => l_array_source_77(Idx)
196286  , p_source_78 => l_array_source_78(Idx)
196287  , p_source_79 => l_array_source_79(Idx)
196289  , p_source_81 => l_array_source_81(Idx)
196290  , p_source_82 => l_array_source_82(Idx)
196291  , p_source_83 => l_array_source_83(Idx)
196292  , p_source_135 => l_array_source_135(Idx)
196293  , p_source_135_meaning => l_array_source_135_meaning(Idx)
196294  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
196295  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
196296  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
196297  );
196298 If(l_balance_type_code = 'A') THEN
196299   l_actual_gain_loss_ref := l_gain_or_loss_ref;
196300 END IF;
196301 
196302 --
196303 
196304 
196305 --
196306 AcctLineType_225 (
196307  p_application_id  => p_application_id
196308  ,p_event_id     => l_event_id
196309  ,p_calculate_acctd_flag => l_calculate_acctd_flag
196310  ,p_calculate_g_l_flag => l_calculate_g_l_flag
196311  ,p_actual_flag => l_actual_flag
196312  ,p_balance_type_code => l_balance_type_code
196313  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196314  
196315  , p_source_21 => l_array_source_21(Idx)
196316  , p_source_21_meaning => l_array_source_21_meaning(Idx)
196317  , p_source_41 => l_array_source_41(Idx)
196318  , p_source_43 => l_array_source_43(Idx)
196319  , p_source_45 => l_array_source_45(Idx)
196320  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
196321  , p_source_52 => l_array_source_52(Idx)
196322  , p_source_53 => l_array_source_53(Idx)
196323  , p_source_54 => l_array_source_54(Idx)
196324  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
196325  , p_source_56 => l_array_source_56(Idx)
196326  , p_source_57 => l_array_source_57(Idx)
196327  , p_source_58 => l_array_source_58(Idx)
196328  , p_source_59 => l_array_source_59(Idx)
196329  , p_source_60 => l_array_source_60(Idx)
196330  , p_source_61 => l_array_source_61(Idx)
196331  , p_source_65 => l_array_source_65(Idx)
196332  , p_source_66 => l_array_source_66(Idx)
196333  , p_source_67 => l_array_source_67(Idx)
196334  , p_source_68 => l_array_source_68(Idx)
196335  , p_source_68_meaning => l_array_source_68_meaning(Idx)
196336  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
196337  , p_source_72 => l_array_source_72(Idx)
196338  , p_source_73 => l_array_source_73(Idx)
196339  , p_source_74 => l_array_source_74(Idx)
196340  , p_source_75 => l_array_source_75(Idx)
196341  , p_source_76 => l_array_source_76(Idx)
196342  , p_source_77 => l_array_source_77(Idx)
196343  , p_source_78 => l_array_source_78(Idx)
196344  , p_source_79 => l_array_source_79(Idx)
196345  , p_source_80 => l_array_source_80(Idx)
196346  , p_source_81 => l_array_source_81(Idx)
196347  , p_source_82 => l_array_source_82(Idx)
196348  , p_source_83 => l_array_source_83(Idx)
196349  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
196350  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
196351  , p_source_87 => l_array_source_87(Idx)
196352  , p_source_87_meaning => l_array_source_87_meaning(Idx)
196353  , p_source_135 => l_array_source_135(Idx)
196354  , p_source_135_meaning => l_array_source_135_meaning(Idx)
196355  , p_source_143 => l_array_source_143(Idx)
196356  , p_source_144 => l_array_source_144(Idx)
196357  );
196358 If(l_balance_type_code = 'A') THEN
196359   l_actual_gain_loss_ref := l_gain_or_loss_ref;
196360 END IF;
196361 
196362 --
196363 
196364 
196365 --
196366 AcctLineType_228 (
196367  p_application_id  => p_application_id
196368  ,p_event_id     => l_event_id
196369  ,p_calculate_acctd_flag => l_calculate_acctd_flag
196370  ,p_calculate_g_l_flag => l_calculate_g_l_flag
196371  ,p_actual_flag => l_actual_flag
196372  ,p_balance_type_code => l_balance_type_code
196373  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196374  
196375  , p_source_1 => l_array_source_1(Idx)
196376  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
196377  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
196378  , p_source_9 => l_array_source_9(Idx)
196379  , p_source_18 => l_array_source_18(Idx)
196380  , p_source_21 => l_array_source_21(Idx)
196381  , p_source_21_meaning => l_array_source_21_meaning(Idx)
196382  , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
196383  , p_source_30 => l_array_source_30(Idx)
196384  , p_source_41 => l_array_source_41(Idx)
196385  , p_source_43 => l_array_source_43(Idx)
196386  , p_source_45 => l_array_source_45(Idx)
196387  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
196388  , p_source_52 => l_array_source_52(Idx)
196389  , p_source_53 => l_array_source_53(Idx)
196390  , p_source_54 => l_array_source_54(Idx)
196391  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
196392  , p_source_56 => l_array_source_56(Idx)
196393  , p_source_57 => l_array_source_57(Idx)
196394  , p_source_58 => l_array_source_58(Idx)
196395  , p_source_59 => l_array_source_59(Idx)
196396  , p_source_60 => l_array_source_60(Idx)
196397  , p_source_61 => l_array_source_61(Idx)
196398  , p_source_65 => l_array_source_65(Idx)
196399  , p_source_66 => l_array_source_66(Idx)
196400  , p_source_67 => l_array_source_67(Idx)
196401  , p_source_68 => l_array_source_68(Idx)
196402  , p_source_68_meaning => l_array_source_68_meaning(Idx)
196403  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
196404  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
196405  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
196406  , p_source_72 => l_array_source_72(Idx)
196407  , p_source_73 => l_array_source_73(Idx)
196408  , p_source_74 => l_array_source_74(Idx)
196409  , p_source_75 => l_array_source_75(Idx)
196413  , p_source_79 => l_array_source_79(Idx)
196410  , p_source_76 => l_array_source_76(Idx)
196411  , p_source_77 => l_array_source_77(Idx)
196412  , p_source_78 => l_array_source_78(Idx)
196414  , p_source_80 => l_array_source_80(Idx)
196415  , p_source_81 => l_array_source_81(Idx)
196416  , p_source_82 => l_array_source_82(Idx)
196417  , p_source_83 => l_array_source_83(Idx)
196418  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
196419  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
196420  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
196421  , p_source_159 => g_array_event(l_event_id).array_value_char('source_159')
196422  , p_source_159_meaning => g_array_event(l_event_id).array_value_char('source_159_meaning')
196423  );
196424 If(l_balance_type_code = 'A') THEN
196425   l_actual_gain_loss_ref := l_gain_or_loss_ref;
196426 END IF;
196427 
196428 --
196429 
196430 
196431 --
196432 AcctLineType_231 (
196433  p_application_id  => p_application_id
196434  ,p_event_id     => l_event_id
196435  ,p_calculate_acctd_flag => l_calculate_acctd_flag
196436  ,p_calculate_g_l_flag => l_calculate_g_l_flag
196437  ,p_actual_flag => l_actual_flag
196438  ,p_balance_type_code => l_balance_type_code
196439  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196440  
196441  , p_source_1 => l_array_source_1(Idx)
196442  , p_source_9 => l_array_source_9(Idx)
196443  , p_source_21 => l_array_source_21(Idx)
196444  , p_source_21_meaning => l_array_source_21_meaning(Idx)
196445  , p_source_41 => l_array_source_41(Idx)
196446  , p_source_43 => l_array_source_43(Idx)
196447  , p_source_45 => l_array_source_45(Idx)
196448  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
196449  , p_source_52 => l_array_source_52(Idx)
196450  , p_source_53 => l_array_source_53(Idx)
196451  , p_source_54 => l_array_source_54(Idx)
196452  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
196453  , p_source_56 => l_array_source_56(Idx)
196454  , p_source_57 => l_array_source_57(Idx)
196455  , p_source_58 => l_array_source_58(Idx)
196456  , p_source_59 => l_array_source_59(Idx)
196457  , p_source_60 => l_array_source_60(Idx)
196458  , p_source_61 => l_array_source_61(Idx)
196459  , p_source_65 => l_array_source_65(Idx)
196460  , p_source_66 => l_array_source_66(Idx)
196461  , p_source_67 => l_array_source_67(Idx)
196462  , p_source_68 => l_array_source_68(Idx)
196463  , p_source_68_meaning => l_array_source_68_meaning(Idx)
196464  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
196465  , p_source_72 => l_array_source_72(Idx)
196466  , p_source_73 => l_array_source_73(Idx)
196467  , p_source_74 => l_array_source_74(Idx)
196468  , p_source_75 => l_array_source_75(Idx)
196469  , p_source_76 => l_array_source_76(Idx)
196470  , p_source_77 => l_array_source_77(Idx)
196471  , p_source_78 => l_array_source_78(Idx)
196472  , p_source_79 => l_array_source_79(Idx)
196473  , p_source_80 => l_array_source_80(Idx)
196474  , p_source_81 => l_array_source_81(Idx)
196475  , p_source_159 => g_array_event(l_event_id).array_value_char('source_159')
196476  , p_source_159_meaning => g_array_event(l_event_id).array_value_char('source_159_meaning')
196477  , p_source_163 => l_array_source_163(Idx)
196478  , p_source_164 => l_array_source_164(Idx)
196479  );
196480 If(l_balance_type_code = 'A') THEN
196481   l_actual_gain_loss_ref := l_gain_or_loss_ref;
196482 END IF;
196483 
196484 --
196485 
196486 
196487 --
196488 AcctLineType_234 (
196489  p_application_id  => p_application_id
196490  ,p_event_id     => l_event_id
196491  ,p_calculate_acctd_flag => l_calculate_acctd_flag
196492  ,p_calculate_g_l_flag => l_calculate_g_l_flag
196493  ,p_actual_flag => l_actual_flag
196494  ,p_balance_type_code => l_balance_type_code
196495  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196496  
196497  , p_source_21 => l_array_source_21(Idx)
196498  , p_source_21_meaning => l_array_source_21_meaning(Idx)
196499  , p_source_41 => l_array_source_41(Idx)
196500  , p_source_43 => l_array_source_43(Idx)
196501  , p_source_45 => l_array_source_45(Idx)
196502  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
196503  , p_source_52 => l_array_source_52(Idx)
196504  , p_source_53 => l_array_source_53(Idx)
196505  , p_source_54 => l_array_source_54(Idx)
196506  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
196507  , p_source_56 => l_array_source_56(Idx)
196508  , p_source_57 => l_array_source_57(Idx)
196509  , p_source_58 => l_array_source_58(Idx)
196510  , p_source_59 => l_array_source_59(Idx)
196511  , p_source_60 => l_array_source_60(Idx)
196512  , p_source_61 => l_array_source_61(Idx)
196513  , p_source_65 => l_array_source_65(Idx)
196514  , p_source_66 => l_array_source_66(Idx)
196515  , p_source_67 => l_array_source_67(Idx)
196516  , p_source_68 => l_array_source_68(Idx)
196517  , p_source_68_meaning => l_array_source_68_meaning(Idx)
196518  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
196519  , p_source_72 => l_array_source_72(Idx)
196520  , p_source_73 => l_array_source_73(Idx)
196521  , p_source_74 => l_array_source_74(Idx)
196522  , p_source_75 => l_array_source_75(Idx)
196523  , p_source_76 => l_array_source_76(Idx)
196524  , p_source_77 => l_array_source_77(Idx)
196525  , p_source_78 => l_array_source_78(Idx)
196526  , p_source_79 => l_array_source_79(Idx)
196527  , p_source_80 => l_array_source_80(Idx)
196528  , p_source_81 => l_array_source_81(Idx)
196529  , p_source_82 => l_array_source_82(Idx)
196530  , p_source_83 => l_array_source_83(Idx)
196531  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
196532  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
196533  , p_source_87 => l_array_source_87(Idx)
196534  , p_source_87_meaning => l_array_source_87_meaning(Idx)
196538  , p_source_144 => l_array_source_144(Idx)
196535  , p_source_135 => l_array_source_135(Idx)
196536  , p_source_135_meaning => l_array_source_135_meaning(Idx)
196537  , p_source_143 => l_array_source_143(Idx)
196539  );
196540 If(l_balance_type_code = 'A') THEN
196541   l_actual_gain_loss_ref := l_gain_or_loss_ref;
196542 END IF;
196543 
196544 --
196545 
196546 
196547 --
196548 AcctLineType_239 (
196549  p_application_id  => p_application_id
196550  ,p_event_id     => l_event_id
196551  ,p_calculate_acctd_flag => l_calculate_acctd_flag
196552  ,p_calculate_g_l_flag => l_calculate_g_l_flag
196553  ,p_actual_flag => l_actual_flag
196554  ,p_balance_type_code => l_balance_type_code
196555  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196556  
196557  , p_source_1 => l_array_source_1(Idx)
196558  , p_source_9 => l_array_source_9(Idx)
196559  , p_source_21 => l_array_source_21(Idx)
196560  , p_source_21_meaning => l_array_source_21_meaning(Idx)
196561  , p_source_38 => l_array_source_38(Idx)
196562  , p_source_41 => l_array_source_41(Idx)
196563  , p_source_43 => l_array_source_43(Idx)
196564  , p_source_45 => l_array_source_45(Idx)
196565  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
196566  , p_source_52 => l_array_source_52(Idx)
196567  , p_source_53 => l_array_source_53(Idx)
196568  , p_source_54 => l_array_source_54(Idx)
196569  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
196570  , p_source_56 => l_array_source_56(Idx)
196571  , p_source_57 => l_array_source_57(Idx)
196572  , p_source_58 => l_array_source_58(Idx)
196573  , p_source_59 => l_array_source_59(Idx)
196574  , p_source_60 => l_array_source_60(Idx)
196575  , p_source_61 => l_array_source_61(Idx)
196576  , p_source_65 => l_array_source_65(Idx)
196577  , p_source_66 => l_array_source_66(Idx)
196578  , p_source_67 => l_array_source_67(Idx)
196579  , p_source_68 => l_array_source_68(Idx)
196580  , p_source_68_meaning => l_array_source_68_meaning(Idx)
196581  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
196582  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
196583  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
196584  , p_source_72 => l_array_source_72(Idx)
196585  , p_source_73 => l_array_source_73(Idx)
196586  , p_source_74 => l_array_source_74(Idx)
196587  , p_source_75 => l_array_source_75(Idx)
196588  , p_source_76 => l_array_source_76(Idx)
196589  , p_source_77 => l_array_source_77(Idx)
196590  , p_source_78 => l_array_source_78(Idx)
196591  , p_source_79 => l_array_source_79(Idx)
196592  , p_source_80 => l_array_source_80(Idx)
196593  , p_source_81 => l_array_source_81(Idx)
196594  , p_source_82 => l_array_source_82(Idx)
196595  , p_source_83 => l_array_source_83(Idx)
196596  , p_source_84 => l_array_source_84(Idx)
196597  , p_source_84_meaning => l_array_source_84_meaning(Idx)
196598  , p_source_135 => l_array_source_135(Idx)
196599  , p_source_135_meaning => l_array_source_135_meaning(Idx)
196600  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
196601  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
196602  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
196603  );
196604 If(l_balance_type_code = 'A') THEN
196605   l_actual_gain_loss_ref := l_gain_or_loss_ref;
196606 END IF;
196607 
196608 --
196609 
196610 
196611 --
196612 AcctLineType_243 (
196613  p_application_id  => p_application_id
196614  ,p_event_id     => l_event_id
196615  ,p_calculate_acctd_flag => l_calculate_acctd_flag
196616  ,p_calculate_g_l_flag => l_calculate_g_l_flag
196617  ,p_actual_flag => l_actual_flag
196618  ,p_balance_type_code => l_balance_type_code
196619  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196620  
196621  , p_source_1 => l_array_source_1(Idx)
196622  , p_source_9 => l_array_source_9(Idx)
196623  , p_source_21 => l_array_source_21(Idx)
196624  , p_source_21_meaning => l_array_source_21_meaning(Idx)
196625  , p_source_38 => l_array_source_38(Idx)
196626  , p_source_41 => l_array_source_41(Idx)
196627  , p_source_43 => l_array_source_43(Idx)
196628  , p_source_45 => l_array_source_45(Idx)
196629  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
196630  , p_source_52 => l_array_source_52(Idx)
196631  , p_source_53 => l_array_source_53(Idx)
196632  , p_source_54 => l_array_source_54(Idx)
196633  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
196634  , p_source_56 => l_array_source_56(Idx)
196635  , p_source_57 => l_array_source_57(Idx)
196636  , p_source_58 => l_array_source_58(Idx)
196637  , p_source_59 => l_array_source_59(Idx)
196638  , p_source_60 => l_array_source_60(Idx)
196639  , p_source_61 => l_array_source_61(Idx)
196640  , p_source_65 => l_array_source_65(Idx)
196641  , p_source_66 => l_array_source_66(Idx)
196642  , p_source_67 => l_array_source_67(Idx)
196643  , p_source_68 => l_array_source_68(Idx)
196644  , p_source_68_meaning => l_array_source_68_meaning(Idx)
196645  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
196646  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
196647  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
196648  , p_source_72 => l_array_source_72(Idx)
196649  , p_source_73 => l_array_source_73(Idx)
196650  , p_source_74 => l_array_source_74(Idx)
196651  , p_source_75 => l_array_source_75(Idx)
196652  , p_source_76 => l_array_source_76(Idx)
196653  , p_source_77 => l_array_source_77(Idx)
196654  , p_source_78 => l_array_source_78(Idx)
196655  , p_source_79 => l_array_source_79(Idx)
196656  , p_source_80 => l_array_source_80(Idx)
196657  , p_source_81 => l_array_source_81(Idx)
196658  , p_source_82 => l_array_source_82(Idx)
196659  , p_source_83 => l_array_source_83(Idx)
196660  , p_source_135 => l_array_source_135(Idx)
196661  , p_source_135_meaning => l_array_source_135_meaning(Idx)
196665  );
196662  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
196663  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
196664  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
196666 If(l_balance_type_code = 'A') THEN
196667   l_actual_gain_loss_ref := l_gain_or_loss_ref;
196668 END IF;
196669 
196670 --
196671 
196672 
196673 --
196674 AcctLineType_246 (
196675  p_application_id  => p_application_id
196676  ,p_event_id     => l_event_id
196677  ,p_calculate_acctd_flag => l_calculate_acctd_flag
196678  ,p_calculate_g_l_flag => l_calculate_g_l_flag
196679  ,p_actual_flag => l_actual_flag
196680  ,p_balance_type_code => l_balance_type_code
196681  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196682  
196683  , p_source_1 => l_array_source_1(Idx)
196684  , p_source_9 => l_array_source_9(Idx)
196685  , p_source_21 => l_array_source_21(Idx)
196686  , p_source_21_meaning => l_array_source_21_meaning(Idx)
196687  , p_source_39 => l_array_source_39(Idx)
196688  , p_source_41 => l_array_source_41(Idx)
196689  , p_source_43 => l_array_source_43(Idx)
196690  , p_source_45 => l_array_source_45(Idx)
196691  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
196692  , p_source_52 => l_array_source_52(Idx)
196693  , p_source_53 => l_array_source_53(Idx)
196694  , p_source_54 => l_array_source_54(Idx)
196695  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
196696  , p_source_56 => l_array_source_56(Idx)
196697  , p_source_57 => l_array_source_57(Idx)
196698  , p_source_58 => l_array_source_58(Idx)
196699  , p_source_59 => l_array_source_59(Idx)
196700  , p_source_60 => l_array_source_60(Idx)
196701  , p_source_61 => l_array_source_61(Idx)
196702  , p_source_65 => l_array_source_65(Idx)
196703  , p_source_66 => l_array_source_66(Idx)
196704  , p_source_67 => l_array_source_67(Idx)
196705  , p_source_68 => l_array_source_68(Idx)
196706  , p_source_68_meaning => l_array_source_68_meaning(Idx)
196707  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
196708  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
196709  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
196710  , p_source_72 => l_array_source_72(Idx)
196711  , p_source_73 => l_array_source_73(Idx)
196712  , p_source_74 => l_array_source_74(Idx)
196713  , p_source_75 => l_array_source_75(Idx)
196714  , p_source_76 => l_array_source_76(Idx)
196715  , p_source_77 => l_array_source_77(Idx)
196716  , p_source_78 => l_array_source_78(Idx)
196717  , p_source_79 => l_array_source_79(Idx)
196718  , p_source_80 => l_array_source_80(Idx)
196719  , p_source_81 => l_array_source_81(Idx)
196720  , p_source_82 => l_array_source_82(Idx)
196721  , p_source_83 => l_array_source_83(Idx)
196722  , p_source_135 => l_array_source_135(Idx)
196723  , p_source_135_meaning => l_array_source_135_meaning(Idx)
196724  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
196725  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
196726  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
196727  );
196728 If(l_balance_type_code = 'A') THEN
196729   l_actual_gain_loss_ref := l_gain_or_loss_ref;
196730 END IF;
196731 
196732 --
196733 
196734 
196735 --
196736 AcctLineType_251 (
196737  p_application_id  => p_application_id
196738  ,p_event_id     => l_event_id
196739  ,p_calculate_acctd_flag => l_calculate_acctd_flag
196740  ,p_calculate_g_l_flag => l_calculate_g_l_flag
196741  ,p_actual_flag => l_actual_flag
196742  ,p_balance_type_code => l_balance_type_code
196743  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196744  
196745  , p_source_1 => l_array_source_1(Idx)
196746  , p_source_9 => l_array_source_9(Idx)
196747  , p_source_21 => l_array_source_21(Idx)
196748  , p_source_21_meaning => l_array_source_21_meaning(Idx)
196749  , p_source_38 => l_array_source_38(Idx)
196750  , p_source_41 => l_array_source_41(Idx)
196751  , p_source_43 => l_array_source_43(Idx)
196752  , p_source_45 => l_array_source_45(Idx)
196753  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
196754  , p_source_52 => l_array_source_52(Idx)
196755  , p_source_53 => l_array_source_53(Idx)
196756  , p_source_54 => l_array_source_54(Idx)
196757  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
196758  , p_source_56 => l_array_source_56(Idx)
196759  , p_source_57 => l_array_source_57(Idx)
196760  , p_source_58 => l_array_source_58(Idx)
196761  , p_source_59 => l_array_source_59(Idx)
196762  , p_source_60 => l_array_source_60(Idx)
196763  , p_source_61 => l_array_source_61(Idx)
196764  , p_source_62 => l_array_source_62(Idx)
196765  , p_source_63 => l_array_source_63(Idx)
196766  , p_source_64 => l_array_source_64(Idx)
196767  , p_source_65 => l_array_source_65(Idx)
196768  , p_source_66 => l_array_source_66(Idx)
196769  , p_source_67 => l_array_source_67(Idx)
196770  , p_source_68 => l_array_source_68(Idx)
196771  , p_source_68_meaning => l_array_source_68_meaning(Idx)
196772  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
196773  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
196774  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
196775  , p_source_72 => l_array_source_72(Idx)
196776  , p_source_73 => l_array_source_73(Idx)
196777  , p_source_74 => l_array_source_74(Idx)
196778  , p_source_75 => l_array_source_75(Idx)
196779  , p_source_76 => l_array_source_76(Idx)
196780  , p_source_77 => l_array_source_77(Idx)
196781  , p_source_78 => l_array_source_78(Idx)
196782  , p_source_79 => l_array_source_79(Idx)
196783  , p_source_80 => l_array_source_80(Idx)
196787  , p_source_84 => l_array_source_84(Idx)
196784  , p_source_81 => l_array_source_81(Idx)
196785  , p_source_82 => l_array_source_82(Idx)
196786  , p_source_83 => l_array_source_83(Idx)
196788  , p_source_84_meaning => l_array_source_84_meaning(Idx)
196789  , p_source_135 => l_array_source_135(Idx)
196790  , p_source_135_meaning => l_array_source_135_meaning(Idx)
196791  );
196792 If(l_balance_type_code = 'A') THEN
196793   l_actual_gain_loss_ref := l_gain_or_loss_ref;
196794 END IF;
196795 
196796 --
196797 
196798 
196799 --
196800 AcctLineType_254 (
196801  p_application_id  => p_application_id
196802  ,p_event_id     => l_event_id
196803  ,p_calculate_acctd_flag => l_calculate_acctd_flag
196804  ,p_calculate_g_l_flag => l_calculate_g_l_flag
196805  ,p_actual_flag => l_actual_flag
196806  ,p_balance_type_code => l_balance_type_code
196807  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196808  
196809  , p_source_21 => l_array_source_21(Idx)
196810  , p_source_21_meaning => l_array_source_21_meaning(Idx)
196811  , p_source_41 => l_array_source_41(Idx)
196812  , p_source_43 => l_array_source_43(Idx)
196813  , p_source_45 => l_array_source_45(Idx)
196814  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
196815  , p_source_52 => l_array_source_52(Idx)
196816  , p_source_53 => l_array_source_53(Idx)
196817  , p_source_54 => l_array_source_54(Idx)
196818  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
196819  , p_source_56 => l_array_source_56(Idx)
196820  , p_source_57 => l_array_source_57(Idx)
196821  , p_source_58 => l_array_source_58(Idx)
196822  , p_source_59 => l_array_source_59(Idx)
196823  , p_source_60 => l_array_source_60(Idx)
196824  , p_source_61 => l_array_source_61(Idx)
196825  , p_source_65 => l_array_source_65(Idx)
196826  , p_source_66 => l_array_source_66(Idx)
196827  , p_source_67 => l_array_source_67(Idx)
196828  , p_source_68 => l_array_source_68(Idx)
196829  , p_source_68_meaning => l_array_source_68_meaning(Idx)
196830  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
196831  , p_source_72 => l_array_source_72(Idx)
196832  , p_source_73 => l_array_source_73(Idx)
196833  , p_source_74 => l_array_source_74(Idx)
196834  , p_source_75 => l_array_source_75(Idx)
196835  , p_source_76 => l_array_source_76(Idx)
196836  , p_source_77 => l_array_source_77(Idx)
196837  , p_source_78 => l_array_source_78(Idx)
196838  , p_source_79 => l_array_source_79(Idx)
196839  , p_source_80 => l_array_source_80(Idx)
196840  , p_source_81 => l_array_source_81(Idx)
196841  , p_source_82 => l_array_source_82(Idx)
196842  , p_source_83 => l_array_source_83(Idx)
196843  , p_source_84 => l_array_source_84(Idx)
196844  , p_source_84_meaning => l_array_source_84_meaning(Idx)
196845  , p_source_85 => l_array_source_85(Idx)
196846  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
196847  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
196848  , p_source_87 => l_array_source_87(Idx)
196849  , p_source_87_meaning => l_array_source_87_meaning(Idx)
196850  , p_source_88 => l_array_source_88(Idx)
196851  , p_source_143 => l_array_source_143(Idx)
196852  );
196853 If(l_balance_type_code = 'A') THEN
196854   l_actual_gain_loss_ref := l_gain_or_loss_ref;
196855 END IF;
196856 
196857 --
196858 
196859 
196860 --
196861 AcctLineType_259 (
196862  p_application_id  => p_application_id
196863  ,p_event_id     => l_event_id
196864  ,p_calculate_acctd_flag => l_calculate_acctd_flag
196865  ,p_calculate_g_l_flag => l_calculate_g_l_flag
196866  ,p_actual_flag => l_actual_flag
196867  ,p_balance_type_code => l_balance_type_code
196868  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196869  
196870  , p_source_21 => l_array_source_21(Idx)
196871  , p_source_21_meaning => l_array_source_21_meaning(Idx)
196872  , p_source_41 => l_array_source_41(Idx)
196873  , p_source_43 => l_array_source_43(Idx)
196874  , p_source_45 => l_array_source_45(Idx)
196875  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
196876  , p_source_52 => l_array_source_52(Idx)
196877  , p_source_53 => l_array_source_53(Idx)
196878  , p_source_54 => l_array_source_54(Idx)
196879  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
196880  , p_source_56 => l_array_source_56(Idx)
196881  , p_source_57 => l_array_source_57(Idx)
196882  , p_source_58 => l_array_source_58(Idx)
196883  , p_source_59 => l_array_source_59(Idx)
196884  , p_source_60 => l_array_source_60(Idx)
196885  , p_source_61 => l_array_source_61(Idx)
196886  , p_source_65 => l_array_source_65(Idx)
196887  , p_source_66 => l_array_source_66(Idx)
196888  , p_source_67 => l_array_source_67(Idx)
196889  , p_source_68 => l_array_source_68(Idx)
196890  , p_source_68_meaning => l_array_source_68_meaning(Idx)
196891  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
196892  , p_source_72 => l_array_source_72(Idx)
196893  , p_source_73 => l_array_source_73(Idx)
196894  , p_source_74 => l_array_source_74(Idx)
196895  , p_source_75 => l_array_source_75(Idx)
196896  , p_source_76 => l_array_source_76(Idx)
196897  , p_source_77 => l_array_source_77(Idx)
196898  , p_source_78 => l_array_source_78(Idx)
196899  , p_source_79 => l_array_source_79(Idx)
196900  , p_source_80 => l_array_source_80(Idx)
196901  , p_source_81 => l_array_source_81(Idx)
196902  , p_source_82 => l_array_source_82(Idx)
196903  , p_source_83 => l_array_source_83(Idx)
196904  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
196905  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
196906  , p_source_87 => l_array_source_87(Idx)
196907  , p_source_87_meaning => l_array_source_87_meaning(Idx)
196908  , p_source_143 => l_array_source_143(Idx)
196909  , p_source_144 => l_array_source_144(Idx)
196910  );
196911 If(l_balance_type_code = 'A') THEN
196915 --
196912   l_actual_gain_loss_ref := l_gain_or_loss_ref;
196913 END IF;
196914 
196916 
196917 
196918 --
196919 AcctLineType_263 (
196920  p_application_id  => p_application_id
196921  ,p_event_id     => l_event_id
196922  ,p_calculate_acctd_flag => l_calculate_acctd_flag
196923  ,p_calculate_g_l_flag => l_calculate_g_l_flag
196924  ,p_actual_flag => l_actual_flag
196925  ,p_balance_type_code => l_balance_type_code
196926  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196927  
196928  , p_source_1 => l_array_source_1(Idx)
196929  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
196930  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
196931  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
196932  , p_source_9 => l_array_source_9(Idx)
196933  , p_source_10 => l_array_source_10(Idx)
196934  , p_source_10_meaning => l_array_source_10_meaning(Idx)
196935  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
196936  , p_source_18 => l_array_source_18(Idx)
196937  , p_source_21 => l_array_source_21(Idx)
196938  , p_source_21_meaning => l_array_source_21_meaning(Idx)
196939  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
196940  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
196941  , p_source_41 => l_array_source_41(Idx)
196942  , p_source_43 => l_array_source_43(Idx)
196943  , p_source_45 => l_array_source_45(Idx)
196944  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
196945  , p_source_52 => l_array_source_52(Idx)
196946  , p_source_53 => l_array_source_53(Idx)
196947  , p_source_54 => l_array_source_54(Idx)
196948  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
196949  , p_source_56 => l_array_source_56(Idx)
196950  , p_source_57 => l_array_source_57(Idx)
196951  , p_source_58 => l_array_source_58(Idx)
196952  , p_source_59 => l_array_source_59(Idx)
196953  , p_source_60 => l_array_source_60(Idx)
196954  , p_source_61 => l_array_source_61(Idx)
196955  , p_source_65 => l_array_source_65(Idx)
196956  , p_source_66 => l_array_source_66(Idx)
196957  , p_source_67 => l_array_source_67(Idx)
196958  , p_source_68 => l_array_source_68(Idx)
196959  , p_source_68_meaning => l_array_source_68_meaning(Idx)
196960  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
196961  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
196962  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
196963  , p_source_72 => l_array_source_72(Idx)
196964  , p_source_73 => l_array_source_73(Idx)
196965  , p_source_74 => l_array_source_74(Idx)
196966  , p_source_75 => l_array_source_75(Idx)
196967  , p_source_76 => l_array_source_76(Idx)
196968  , p_source_77 => l_array_source_77(Idx)
196969  , p_source_78 => l_array_source_78(Idx)
196970  , p_source_79 => l_array_source_79(Idx)
196971  , p_source_80 => l_array_source_80(Idx)
196972  , p_source_81 => l_array_source_81(Idx)
196973  , p_source_82 => l_array_source_82(Idx)
196974  , p_source_83 => l_array_source_83(Idx)
196975  , p_source_84 => l_array_source_84(Idx)
196976  , p_source_84_meaning => l_array_source_84_meaning(Idx)
196977  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
196978  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
196979  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
196980  );
196981 If(l_balance_type_code = 'A') THEN
196982   l_actual_gain_loss_ref := l_gain_or_loss_ref;
196983 END IF;
196984 
196985 --
196986 
196987 
196988 --
196989 AcctLineType_269 (
196990  p_application_id  => p_application_id
196991  ,p_event_id     => l_event_id
196992  ,p_calculate_acctd_flag => l_calculate_acctd_flag
196993  ,p_calculate_g_l_flag => l_calculate_g_l_flag
196994  ,p_actual_flag => l_actual_flag
196995  ,p_balance_type_code => l_balance_type_code
196996  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
196997  
196998  , p_source_1 => l_array_source_1(Idx)
196999  , p_source_9 => l_array_source_9(Idx)
197000  , p_source_18 => l_array_source_18(Idx)
197001  , p_source_21 => l_array_source_21(Idx)
197002  , p_source_21_meaning => l_array_source_21_meaning(Idx)
197003  , p_source_41 => l_array_source_41(Idx)
197004  , p_source_43 => l_array_source_43(Idx)
197005  , p_source_45 => l_array_source_45(Idx)
197006  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
197007  , p_source_52 => l_array_source_52(Idx)
197008  , p_source_53 => l_array_source_53(Idx)
197009  , p_source_54 => l_array_source_54(Idx)
197010  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
197011  , p_source_56 => l_array_source_56(Idx)
197012  , p_source_57 => l_array_source_57(Idx)
197013  , p_source_58 => l_array_source_58(Idx)
197014  , p_source_59 => l_array_source_59(Idx)
197015  , p_source_60 => l_array_source_60(Idx)
197016  , p_source_61 => l_array_source_61(Idx)
197017  , p_source_65 => l_array_source_65(Idx)
197018  , p_source_66 => l_array_source_66(Idx)
197019  , p_source_67 => l_array_source_67(Idx)
197020  , p_source_68 => l_array_source_68(Idx)
197021  , p_source_68_meaning => l_array_source_68_meaning(Idx)
197022  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
197023  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
197024  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
197025  , p_source_72 => l_array_source_72(Idx)
197026  , p_source_73 => l_array_source_73(Idx)
197027  , p_source_74 => l_array_source_74(Idx)
197028  , p_source_75 => l_array_source_75(Idx)
197029  , p_source_76 => l_array_source_76(Idx)
197030  , p_source_77 => l_array_source_77(Idx)
197031  , p_source_78 => l_array_source_78(Idx)
197032  , p_source_79 => l_array_source_79(Idx)
197036  , p_source_83 => l_array_source_83(Idx)
197033  , p_source_80 => l_array_source_80(Idx)
197034  , p_source_81 => l_array_source_81(Idx)
197035  , p_source_82 => l_array_source_82(Idx)
197037  , p_source_84 => l_array_source_84(Idx)
197038  , p_source_84_meaning => l_array_source_84_meaning(Idx)
197039  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
197040  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
197041  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
197042  );
197043 If(l_balance_type_code = 'A') THEN
197044   l_actual_gain_loss_ref := l_gain_or_loss_ref;
197045 END IF;
197046 
197047 --
197048 
197049 
197050 --
197051 AcctLineType_270 (
197052  p_application_id  => p_application_id
197053  ,p_event_id     => l_event_id
197054  ,p_calculate_acctd_flag => l_calculate_acctd_flag
197055  ,p_calculate_g_l_flag => l_calculate_g_l_flag
197056  ,p_actual_flag => l_actual_flag
197057  ,p_balance_type_code => l_balance_type_code
197058  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
197059  
197060  , p_source_21 => l_array_source_21(Idx)
197061  , p_source_21_meaning => l_array_source_21_meaning(Idx)
197062  , p_source_41 => l_array_source_41(Idx)
197063  , p_source_43 => l_array_source_43(Idx)
197064  , p_source_45 => l_array_source_45(Idx)
197065  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
197066  , p_source_52 => l_array_source_52(Idx)
197067  , p_source_53 => l_array_source_53(Idx)
197068  , p_source_54 => l_array_source_54(Idx)
197069  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
197070  , p_source_56 => l_array_source_56(Idx)
197071  , p_source_57 => l_array_source_57(Idx)
197072  , p_source_58 => l_array_source_58(Idx)
197073  , p_source_59 => l_array_source_59(Idx)
197074  , p_source_60 => l_array_source_60(Idx)
197075  , p_source_61 => l_array_source_61(Idx)
197076  , p_source_65 => l_array_source_65(Idx)
197077  , p_source_66 => l_array_source_66(Idx)
197078  , p_source_67 => l_array_source_67(Idx)
197079  , p_source_68 => l_array_source_68(Idx)
197080  , p_source_68_meaning => l_array_source_68_meaning(Idx)
197081  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
197082  , p_source_72 => l_array_source_72(Idx)
197083  , p_source_73 => l_array_source_73(Idx)
197084  , p_source_74 => l_array_source_74(Idx)
197085  , p_source_75 => l_array_source_75(Idx)
197086  , p_source_76 => l_array_source_76(Idx)
197087  , p_source_77 => l_array_source_77(Idx)
197088  , p_source_78 => l_array_source_78(Idx)
197089  , p_source_79 => l_array_source_79(Idx)
197090  , p_source_80 => l_array_source_80(Idx)
197091  , p_source_81 => l_array_source_81(Idx)
197092  , p_source_82 => l_array_source_82(Idx)
197093  , p_source_83 => l_array_source_83(Idx)
197094  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
197095  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
197096  , p_source_87 => l_array_source_87(Idx)
197097  , p_source_87_meaning => l_array_source_87_meaning(Idx)
197098  , p_source_143 => l_array_source_143(Idx)
197099  , p_source_144 => l_array_source_144(Idx)
197100  );
197101 If(l_balance_type_code = 'A') THEN
197102   l_actual_gain_loss_ref := l_gain_or_loss_ref;
197103 END IF;
197104 
197105 --
197106 
197107 
197108 --
197109 AcctLineType_275 (
197110  p_application_id  => p_application_id
197111  ,p_event_id     => l_event_id
197112  ,p_calculate_acctd_flag => l_calculate_acctd_flag
197113  ,p_calculate_g_l_flag => l_calculate_g_l_flag
197114  ,p_actual_flag => l_actual_flag
197115  ,p_balance_type_code => l_balance_type_code
197116  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
197117  
197118  , p_source_21 => l_array_source_21(Idx)
197119  , p_source_21_meaning => l_array_source_21_meaning(Idx)
197120  , p_source_41 => l_array_source_41(Idx)
197121  , p_source_43 => l_array_source_43(Idx)
197122  , p_source_45 => l_array_source_45(Idx)
197123  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
197124  , p_source_52 => l_array_source_52(Idx)
197125  , p_source_53 => l_array_source_53(Idx)
197126  , p_source_54 => l_array_source_54(Idx)
197127  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
197128  , p_source_56 => l_array_source_56(Idx)
197129  , p_source_57 => l_array_source_57(Idx)
197130  , p_source_58 => l_array_source_58(Idx)
197131  , p_source_59 => l_array_source_59(Idx)
197132  , p_source_60 => l_array_source_60(Idx)
197133  , p_source_61 => l_array_source_61(Idx)
197134  , p_source_65 => l_array_source_65(Idx)
197135  , p_source_66 => l_array_source_66(Idx)
197136  , p_source_67 => l_array_source_67(Idx)
197137  , p_source_68 => l_array_source_68(Idx)
197138  , p_source_68_meaning => l_array_source_68_meaning(Idx)
197139  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
197140  , p_source_72 => l_array_source_72(Idx)
197141  , p_source_73 => l_array_source_73(Idx)
197142  , p_source_74 => l_array_source_74(Idx)
197143  , p_source_75 => l_array_source_75(Idx)
197144  , p_source_76 => l_array_source_76(Idx)
197145  , p_source_77 => l_array_source_77(Idx)
197146  , p_source_78 => l_array_source_78(Idx)
197147  , p_source_79 => l_array_source_79(Idx)
197148  , p_source_80 => l_array_source_80(Idx)
197149  , p_source_81 => l_array_source_81(Idx)
197150  , p_source_82 => l_array_source_82(Idx)
197151  , p_source_83 => l_array_source_83(Idx)
197152  , p_source_84 => l_array_source_84(Idx)
197153  , p_source_84_meaning => l_array_source_84_meaning(Idx)
197154  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
197155  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
197159  , p_source_162 => l_array_source_162(Idx)
197156  , p_source_87 => l_array_source_87(Idx)
197157  , p_source_87_meaning => l_array_source_87_meaning(Idx)
197158  , p_source_161 => l_array_source_161(Idx)
197160  );
197161 If(l_balance_type_code = 'A') THEN
197162   l_actual_gain_loss_ref := l_gain_or_loss_ref;
197163 END IF;
197164 
197165 --
197166 
197167 
197168 --
197169 AcctLineType_281 (
197170  p_application_id  => p_application_id
197171  ,p_event_id     => l_event_id
197172  ,p_calculate_acctd_flag => l_calculate_acctd_flag
197173  ,p_calculate_g_l_flag => l_calculate_g_l_flag
197174  ,p_actual_flag => l_actual_flag
197175  ,p_balance_type_code => l_balance_type_code
197176  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
197177  
197178  , p_source_1 => l_array_source_1(Idx)
197179  , p_source_9 => l_array_source_9(Idx)
197180  , p_source_18 => l_array_source_18(Idx)
197181  , p_source_21 => l_array_source_21(Idx)
197182  , p_source_21_meaning => l_array_source_21_meaning(Idx)
197183  , p_source_41 => l_array_source_41(Idx)
197184  , p_source_43 => l_array_source_43(Idx)
197185  , p_source_45 => l_array_source_45(Idx)
197186  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
197187  , p_source_52 => l_array_source_52(Idx)
197188  , p_source_53 => l_array_source_53(Idx)
197189  , p_source_54 => l_array_source_54(Idx)
197190  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
197191  , p_source_56 => l_array_source_56(Idx)
197192  , p_source_57 => l_array_source_57(Idx)
197193  , p_source_58 => l_array_source_58(Idx)
197194  , p_source_59 => l_array_source_59(Idx)
197195  , p_source_60 => l_array_source_60(Idx)
197196  , p_source_61 => l_array_source_61(Idx)
197197  , p_source_65 => l_array_source_65(Idx)
197198  , p_source_66 => l_array_source_66(Idx)
197199  , p_source_67 => l_array_source_67(Idx)
197200  , p_source_68 => l_array_source_68(Idx)
197201  , p_source_68_meaning => l_array_source_68_meaning(Idx)
197202  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
197203  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
197204  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
197205  , p_source_72 => l_array_source_72(Idx)
197206  , p_source_73 => l_array_source_73(Idx)
197207  , p_source_74 => l_array_source_74(Idx)
197208  , p_source_75 => l_array_source_75(Idx)
197209  , p_source_76 => l_array_source_76(Idx)
197210  , p_source_77 => l_array_source_77(Idx)
197211  , p_source_78 => l_array_source_78(Idx)
197212  , p_source_79 => l_array_source_79(Idx)
197213  , p_source_80 => l_array_source_80(Idx)
197214  , p_source_81 => l_array_source_81(Idx)
197215  , p_source_82 => l_array_source_82(Idx)
197216  , p_source_83 => l_array_source_83(Idx)
197217  , p_source_84 => l_array_source_84(Idx)
197218  , p_source_84_meaning => l_array_source_84_meaning(Idx)
197219  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
197220  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
197221  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
197222  );
197223 If(l_balance_type_code = 'A') THEN
197224   l_actual_gain_loss_ref := l_gain_or_loss_ref;
197225 END IF;
197226 
197227 --
197228 
197229 
197230 --
197231 AcctLineType_282 (
197232  p_application_id  => p_application_id
197233  ,p_event_id     => l_event_id
197234  ,p_calculate_acctd_flag => l_calculate_acctd_flag
197235  ,p_calculate_g_l_flag => l_calculate_g_l_flag
197236  ,p_actual_flag => l_actual_flag
197237  ,p_balance_type_code => l_balance_type_code
197238  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
197239  
197240  , p_source_21 => l_array_source_21(Idx)
197241  , p_source_21_meaning => l_array_source_21_meaning(Idx)
197242  , p_source_41 => l_array_source_41(Idx)
197243  , p_source_43 => l_array_source_43(Idx)
197244  , p_source_45 => l_array_source_45(Idx)
197245  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
197246  , p_source_52 => l_array_source_52(Idx)
197247  , p_source_53 => l_array_source_53(Idx)
197248  , p_source_54 => l_array_source_54(Idx)
197249  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
197250  , p_source_56 => l_array_source_56(Idx)
197251  , p_source_57 => l_array_source_57(Idx)
197252  , p_source_58 => l_array_source_58(Idx)
197253  , p_source_59 => l_array_source_59(Idx)
197254  , p_source_60 => l_array_source_60(Idx)
197255  , p_source_61 => l_array_source_61(Idx)
197256  , p_source_65 => l_array_source_65(Idx)
197257  , p_source_66 => l_array_source_66(Idx)
197258  , p_source_67 => l_array_source_67(Idx)
197259  , p_source_68 => l_array_source_68(Idx)
197260  , p_source_68_meaning => l_array_source_68_meaning(Idx)
197261  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
197262  , p_source_72 => l_array_source_72(Idx)
197263  , p_source_73 => l_array_source_73(Idx)
197264  , p_source_74 => l_array_source_74(Idx)
197265  , p_source_75 => l_array_source_75(Idx)
197266  , p_source_76 => l_array_source_76(Idx)
197267  , p_source_77 => l_array_source_77(Idx)
197268  , p_source_78 => l_array_source_78(Idx)
197269  , p_source_79 => l_array_source_79(Idx)
197270  , p_source_80 => l_array_source_80(Idx)
197271  , p_source_81 => l_array_source_81(Idx)
197272  , p_source_82 => l_array_source_82(Idx)
197273  , p_source_83 => l_array_source_83(Idx)
197274  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
197275  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
197276  , p_source_87 => l_array_source_87(Idx)
197277  , p_source_87_meaning => l_array_source_87_meaning(Idx)
197278  , p_source_143 => l_array_source_143(Idx)
197279  , p_source_144 => l_array_source_144(Idx)
197280  );
197281 If(l_balance_type_code = 'A') THEN
197285 --
197282   l_actual_gain_loss_ref := l_gain_or_loss_ref;
197283 END IF;
197284 
197286 
197287 
197288 --
197289 AcctLineType_289 (
197290  p_application_id  => p_application_id
197291  ,p_event_id     => l_event_id
197292  ,p_calculate_acctd_flag => l_calculate_acctd_flag
197293  ,p_calculate_g_l_flag => l_calculate_g_l_flag
197294  ,p_actual_flag => l_actual_flag
197295  ,p_balance_type_code => l_balance_type_code
197296  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
197297  
197298  , p_source_1 => l_array_source_1(Idx)
197299  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
197300  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
197301  , p_source_9 => l_array_source_9(Idx)
197302  , p_source_18 => l_array_source_18(Idx)
197303  , p_source_21 => l_array_source_21(Idx)
197304  , p_source_21_meaning => l_array_source_21_meaning(Idx)
197305  , p_source_31 => l_array_source_31(Idx)
197306  , p_source_41 => l_array_source_41(Idx)
197307  , p_source_43 => l_array_source_43(Idx)
197308  , p_source_45 => l_array_source_45(Idx)
197309  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
197310  , p_source_52 => l_array_source_52(Idx)
197311  , p_source_53 => l_array_source_53(Idx)
197312  , p_source_54 => l_array_source_54(Idx)
197313  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
197314  , p_source_56 => l_array_source_56(Idx)
197315  , p_source_57 => l_array_source_57(Idx)
197316  , p_source_58 => l_array_source_58(Idx)
197317  , p_source_59 => l_array_source_59(Idx)
197318  , p_source_60 => l_array_source_60(Idx)
197319  , p_source_61 => l_array_source_61(Idx)
197320  , p_source_65 => l_array_source_65(Idx)
197321  , p_source_66 => l_array_source_66(Idx)
197322  , p_source_67 => l_array_source_67(Idx)
197323  , p_source_68 => l_array_source_68(Idx)
197324  , p_source_68_meaning => l_array_source_68_meaning(Idx)
197325  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
197326  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
197327  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
197328  , p_source_72 => l_array_source_72(Idx)
197329  , p_source_73 => l_array_source_73(Idx)
197330  , p_source_74 => l_array_source_74(Idx)
197331  , p_source_75 => l_array_source_75(Idx)
197332  , p_source_76 => l_array_source_76(Idx)
197333  , p_source_77 => l_array_source_77(Idx)
197334  , p_source_78 => l_array_source_78(Idx)
197335  , p_source_79 => l_array_source_79(Idx)
197336  , p_source_80 => l_array_source_80(Idx)
197337  , p_source_81 => l_array_source_81(Idx)
197338  , p_source_82 => l_array_source_82(Idx)
197339  , p_source_83 => l_array_source_83(Idx)
197340  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
197341  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
197342  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
197343  );
197344 If(l_balance_type_code = 'A') THEN
197345   l_actual_gain_loss_ref := l_gain_or_loss_ref;
197346 END IF;
197347 
197348 --
197349 
197350       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
197351       -- or secondary ledger that has different currency with primary
197352       -- or alc that is calculated by sla
197353       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
197354             (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'))
197355 
197356 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
197357 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
197358           AND (l_actual_flag = 'A')) THEN
197359         XLA_AE_LINES_PKG.CreateGainOrLossLines(
197360           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
197361          ,p_application_id   => p_application_id
197362          ,p_amb_context_code => 'DEFAULT'
197363          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
197364          ,p_event_class_code => C_EVENT_CLASS_CODE
197365          ,p_event_type_code  => C_EVENT_TYPE_CODE
197366          
197367          ,p_gain_ccid        => -1
197368          ,p_loss_ccid        => -1
197369 
197370          ,p_actual_flag      => l_actual_flag
197371          ,p_enc_flag         => null
197372          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
197373          ,p_enc_g_l_ref      => null
197374          );
197375       END IF;
197376    END IF;
197377 END IF;
197378 
197379    ELSE
197380       --
197381       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
197382       --
197383       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
197384          trace
197385             (p_msg      => 'Trancaction revesal option is Y'
197386             ,p_level    => C_LEVEL_STATEMENT
197387             ,p_module   => l_log_module);
197388       END IF;
197389    END IF;
197390 
197391 END LOOP;
197392 l_result := XLA_AE_LINES_PKG.InsertLines ;
197393 end loop;
197394 close line_cur;
197395 
197396 
197397 --
197398 -- insert headers into xla_ae_headers_gt table
197399 --
197400 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
197401 
197402 -- insert into errors table here.
197403 
197404 END LOOP;
197405 
197406 --
197407 -- 4865292
197408 --
197409 -- Compare g_hdr_extract_count with event count in
197410 -- CreateHeadersAndLines.
197411 --
197412 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
197413 
197414 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
197415    trace (p_msg     => '# rows extracted from header extract objects '
197419          ,p_module  => l_log_module);
197416                     || ' (running total): '
197417                     || g_hdr_extract_count
197418          ,p_level   => C_LEVEL_STATEMENT
197420 END IF;
197421 
197422 CLOSE header_cur;
197423 --
197424 
197425 --
197426 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
197427    trace
197428       (p_msg      => 'END of EventClass_294'
197429       ,p_level    => C_LEVEL_PROCEDURE
197430       ,p_module   => l_log_module);
197431 END IF;
197432 --
197433 RETURN l_result;
197434 EXCEPTION
197435 WHEN xla_exceptions_pkg.application_exception THEN
197436    
197437 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
197438 
197439    
197440 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
197441 
197442    RAISE;
197443 
197444 WHEN NO_DATA_FOUND THEN
197445 
197446 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
197447 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
197448 
197449 FOR header_record IN header_cur
197450 LOOP
197451     l_array_header_events(header_record.event_id) := header_record.event_id;
197452 END LOOP;
197453 
197454 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
197455 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
197456 
197457 fnd_file.put_line(fnd_file.LOG, '                    ');
197458 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
197459 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
197460 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
197461 
197462 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
197463 LOOP
197464 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
197465 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
197466         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
197467 	END IF;
197468 END LOOP;
197469 
197470 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
197471 fnd_file.put_line(fnd_file.LOG, '                    ');
197472 
197473 
197474 xla_exceptions_pkg.raise_message
197475       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_294');
197476 
197477 
197478 WHEN OTHERS THEN
197479    xla_exceptions_pkg.raise_message
197480       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_294');
197481 END EventClass_294;
197482 --
197483 
197484 ---------------------------------------
197485 --
197486 -- PRIVATE PROCEDURE
197487 --         insert_sources_295
197488 --
197489 ----------------------------------------
197490 --
197491 PROCEDURE insert_sources_295(
197492                                 p_target_ledger_id       IN NUMBER
197493                               , p_language               IN VARCHAR2
197494                               , p_sla_ledger_id          IN NUMBER
197495                               , p_pad_start_date         IN DATE
197496                               , p_pad_end_date           IN DATE
197497                          )
197498 IS
197499 
197500 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICE_BURDEN_ALL';
197501 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'INVOICE_BURDEN';
197502 p_apps_owner                   VARCHAR2(30);
197503 l_log_module                   VARCHAR2(240);
197504 BEGIN
197505 IF g_log_enabled THEN
197506       l_log_module := C_DEFAULT_MODULE||'.insert_sources_295';
197507 END IF;
197508 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
197509 
197510       trace
197511          (p_msg      => 'BEGIN of insert_sources_295'
197512          ,p_level    => C_LEVEL_PROCEDURE
197513          ,p_module   => l_log_module);
197514 
197515 END IF;
197516 
197517 -- select APPS owner
197518 SELECT oracle_username
197519   INTO p_apps_owner
197520   FROM fnd_oracle_userid
197521  WHERE read_only_flag = 'U'
197522 ;
197523 
197524 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
197525       trace
197526          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
197527                         ' - p_language = '||p_language||
197528                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
197529                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
197530                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
197531                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
197532          ,p_level    => C_LEVEL_STATEMENT
197533          ,p_module   => l_log_module);
197534 END IF;
197535 
197536  
197537 
197538 
197539 --
197540 INSERT INTO xla_diag_sources  --line2
197541 (
197542         event_id
197543       , ledger_id
197544       , sla_ledger_id
197545       , description_language
197546       , object_name
197547       , object_type_code
197548       , line_number
197549       , source_application_id
197550       , source_type_code
197551       , source_code
197552       , source_value
197553       , source_meaning
197554       , created_by
197555       , creation_date
197556       , last_update_date
197557       , last_updated_by
197558       , last_update_login
197559       , program_update_date
197560       , program_application_id
197561       , program_id
197562       , request_id
197563 )
197564 SELECT  event_id
197565       , p_target_ledger_id
197566       , p_sla_ledger_id
197567       , p_language
197568       , object_name
197569       , object_type_code
197570       , line_number
197571       , source_application_id
197572       , source_type_code
197573       , source_code
197574       , SUBSTR(source_value,1,1996)
197575       , SUBSTR(source_meaning ,1,200)
197576       , xla_environment_pkg.g_Usr_Id
197577       , TRUNC(SYSDATE)
197578       , TRUNC(SYSDATE)
197579       , xla_environment_pkg.g_Usr_Id
197580       , xla_environment_pkg.g_Login_Id
197581       , TRUNC(SYSDATE)
197582       , xla_environment_pkg.g_Prog_Appl_Id
197583       , xla_environment_pkg.g_Prog_Id
197584       , xla_environment_pkg.g_Req_Id
197585   FROM (
197586        SELECT xet.event_id                  event_id
197587             , l1.line_number                 line_number
197588             , CASE r
197589                WHEN 1 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197590                 WHEN 2 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197591                 WHEN 3 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197592                 WHEN 4 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197593                 WHEN 5 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197594                 WHEN 6 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197595                 WHEN 7 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197596                 WHEN 8 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197597                 WHEN 9 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197598                 WHEN 10 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197599                 WHEN 11 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197600                 WHEN 12 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197601                 WHEN 13 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197602                 WHEN 14 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197603                 WHEN 15 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197604                 WHEN 16 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197605                 WHEN 17 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
197606                 
197607                ELSE null
197608               END                           object_name
197609             , CASE r
197610                 WHEN 1 THEN 'LINE' 
197611                 WHEN 2 THEN 'LINE' 
197612                 WHEN 3 THEN 'LINE' 
197613                 WHEN 4 THEN 'LINE' 
197614                 WHEN 5 THEN 'LINE' 
197615                 WHEN 6 THEN 'LINE' 
197616                 WHEN 7 THEN 'LINE' 
197617                 WHEN 8 THEN 'LINE' 
197618                 WHEN 9 THEN 'LINE' 
197619                 WHEN 10 THEN 'LINE' 
197620                 WHEN 11 THEN 'LINE' 
197621                 WHEN 12 THEN 'LINE' 
197622                 WHEN 13 THEN 'LINE' 
197623                 WHEN 14 THEN 'LINE' 
197624                 WHEN 15 THEN 'LINE' 
197625                 WHEN 16 THEN 'LINE' 
197626                 WHEN 17 THEN 'LINE' 
197627                 
197628                 ELSE null
197629               END                           object_type_code
197630             , CASE r
197631                 WHEN 1 THEN '200' 
197632                 WHEN 2 THEN '200' 
197633                 WHEN 3 THEN '200' 
197634                 WHEN 4 THEN '200' 
197635                 WHEN 5 THEN '200' 
197636                 WHEN 6 THEN '200' 
197637                 WHEN 7 THEN '200' 
197638                 WHEN 8 THEN '200' 
197639                 WHEN 9 THEN '200' 
197640                 WHEN 10 THEN '200' 
197641                 WHEN 11 THEN '200' 
197642                 WHEN 12 THEN '200' 
197643                 WHEN 13 THEN '200' 
197644                 WHEN 14 THEN '200' 
197645                 WHEN 15 THEN '200' 
197646                 WHEN 16 THEN '200' 
197647                 WHEN 17 THEN '200' 
197648                 
197649                 ELSE null
197650               END                           source_application_id
197651             , 'S'             source_type_code
197652             , CASE r
197653                 WHEN 1 THEN 'DISTRIBUTION_LINK_TYPE' 
197654                 WHEN 2 THEN 'AID_INVOICE_DIST_ID' 
197655                 WHEN 3 THEN 'AI_INVOICE_CURRENCY_CODE' 
197656                 WHEN 4 THEN 'AID_AMOUNT' 
197657                 WHEN 5 THEN 'ACCT_REVERSAL_INDICATOR' 
197658                 WHEN 6 THEN 'AID_EXPENDITURE_TYPE' 
197659                 WHEN 7 THEN 'ENC_UPG_CR_ACCT_CLASS' 
197660                 WHEN 8 THEN 'ENC_UPG_CR_ACCOUNT' 
197661                 WHEN 9 THEN 'AID_BASE_AMT_NO_ROUND' 
197662                 WHEN 10 THEN 'ENC_UPG_DR_ACCT_CLASS' 
197663                 WHEN 11 THEN 'ENC_UPG_DR_ACCOUNT' 
197664                 WHEN 12 THEN 'USE_ENC_UPG_ATTRIB_FLAG' 
197665                 WHEN 13 THEN 'ACCT_REVERSAL_FIRST_DIST_ID' 
197666                 WHEN 14 THEN 'AP_SECOND_DIST_ID' 
197667                 WHEN 15 THEN 'ACCT_REV_DISTRIBUTION_TYPE' 
197668                 WHEN 16 THEN 'ENC_UPG_CR_ENC_TYPE_ID' 
197672               END                           source_code
197669                 WHEN 17 THEN 'ENC_UPG_DR_ENC_TYPE_ID' 
197670                 
197671                 ELSE null
197673             , CASE r
197674                 WHEN 1 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
197675                 WHEN 2 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
197676                 WHEN 3 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
197677                 WHEN 4 THEN TO_CHAR(l1.AID_AMOUNT)
197678                 WHEN 5 THEN TO_CHAR(l1.ACCT_REVERSAL_INDICATOR)
197679                 WHEN 6 THEN TO_CHAR(l1.AID_EXPENDITURE_TYPE)
197680                 WHEN 7 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
197681                 WHEN 8 THEN TO_CHAR(l1.ENC_UPG_CR_ACCOUNT)
197682                 WHEN 9 THEN TO_CHAR(l1.AID_BASE_AMT_NO_ROUND)
197683                 WHEN 10 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
197684                 WHEN 11 THEN TO_CHAR(l1.ENC_UPG_DR_ACCOUNT)
197685                 WHEN 12 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
197686                 WHEN 13 THEN TO_CHAR(l1.ACCT_REVERSAL_FIRST_DIST_ID)
197687                 WHEN 14 THEN TO_CHAR(l1.AP_SECOND_DIST_ID)
197688                 WHEN 15 THEN TO_CHAR(l1.ACCT_REV_DISTRIBUTION_TYPE)
197689                 WHEN 16 THEN TO_CHAR(l1.ENC_UPG_CR_ENC_TYPE_ID)
197690                 WHEN 17 THEN TO_CHAR(l1.ENC_UPG_DR_ENC_TYPE_ID)
197691                 
197692                 ELSE null
197693               END                           source_value
197694             , null              source_meaning
197695          FROM  xla_events_gt     xet  
197696         , PA_XLA_BC_PKT_AP_DETAIL_V  l1
197697             , (select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
197698         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
197699           AND xet.event_class_code = C_EVENT_CLASS_CODE
197700             AND l1.event_id          = xet.event_id
197701 
197702 )
197703 ;
197704 --
197705 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
197706 
197707       trace
197708          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
197709          ,p_level    => C_LEVEL_STATEMENT
197710          ,p_module   => l_log_module);
197711 
197712 END IF;
197713 
197714 
197715 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
197716       trace
197717          (p_msg      => 'END of insert_sources_295'
197718          ,p_level    => C_LEVEL_PROCEDURE
197719          ,p_module   => l_log_module);
197720 END IF;
197721 EXCEPTION
197722   WHEN xla_exceptions_pkg.application_exception THEN
197723       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
197724             trace
197725                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
197726                ,p_level    => C_LEVEL_EXCEPTION
197727                ,p_module   => l_log_module);
197728       END IF;
197729       RAISE;
197730   WHEN OTHERS THEN
197731       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
197732             trace
197733                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
197734                ,p_level    => C_LEVEL_EXCEPTION
197735                ,p_module   => l_log_module);
197736        END IF;
197737        xla_exceptions_pkg.raise_message
197738            (p_location => 'XLA_00200_AAD_S_000006_PKG.insert_sources_295');
197739 END insert_sources_295;
197740 --
197741 
197742 ---------------------------------------
197743 --
197744 -- PRIVATE FUNCTION
197745 --         EventClass_295
197746 --
197747 ----------------------------------------
197748 --
197749 FUNCTION EventClass_295
197750        (p_application_id         IN NUMBER
197751        ,p_base_ledger_id         IN NUMBER
197752        ,p_target_ledger_id       IN NUMBER
197753        ,p_language               IN VARCHAR2
197754        ,p_currency_code          IN VARCHAR2
197755        ,p_sla_ledger_id          IN NUMBER
197756        ,p_pad_start_date         IN DATE
197757        ,p_pad_end_date           IN DATE
197758        ,p_primary_ledger_id      IN NUMBER)
197759 RETURN BOOLEAN IS
197760 --
197761 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICE_BURDEN_ALL';
197762 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'INVOICE_BURDEN';
197763 
197764 l_calculate_acctd_flag   VARCHAR2(1) :='N';
197765 l_calculate_g_l_flag     VARCHAR2(1) :='N';
197766 --
197767 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
197768 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
197769 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
197770 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
197771 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
197772 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
197773 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
197774 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
197775 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
197776 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
197777 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
197778 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
197779 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
197780 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
197781 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
197782 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
197783 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
197784 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
197785 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
197789 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
197786 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
197787 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
197788 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
197790 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
197791 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
197792 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
197793 
197794 l_event_id                             NUMBER;
197795 l_previous_event_id                    NUMBER;
197796 l_first_event_id                       NUMBER;
197797 l_last_event_id                        NUMBER;
197798 
197799 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
197800 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
197801 --
197802 --
197803 l_result                    BOOLEAN := TRUE;
197804 l_rows                      NUMBER  := 1000;
197805 l_event_type_name           VARCHAR2(80) := 'All';
197806 l_event_class_name          VARCHAR2(80) := 'Burden for Invoices';
197807 l_description               VARCHAR2(4000);
197808 l_transaction_reversal      NUMBER;
197809 l_ae_header_id              NUMBER;
197810 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
197811 l_log_module                VARCHAR2(240);
197812 --
197813 l_acct_reversal_source      VARCHAR2(30);
197814 l_trx_reversal_source       VARCHAR2(30);
197815 
197816 l_continue_with_lines       BOOLEAN := TRUE;
197817 --
197818 l_acc_rev_gl_date_source    DATE;                      -- 4262811
197819 --
197820 type t_array_event_id is table of number index by binary_integer;
197821 
197822 l_rec_array_event                    t_rec_array_event;
197823 l_null_rec_array_event               t_rec_array_event;
197824 l_array_ae_header_id                 xla_number_array_type;
197825 l_actual_flag                        VARCHAR2(1) := NULL;
197826 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
197827 l_balance_type_code                  VARCHAR2(1) :=NULL;
197828 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
197829 
197830 --
197831 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
197832 --
197833 
197834 
197835 TYPE t_array_source_43 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
197836 TYPE t_array_source_52 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
197837 TYPE t_array_source_55 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
197838 TYPE t_array_source_61 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
197839 TYPE t_array_source_172 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
197840 TYPE t_array_source_173 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_EXPENDITURE_TYPE%TYPE INDEX BY BINARY_INTEGER;
197841 TYPE t_array_source_174 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
197842 TYPE t_array_source_175 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
197843 TYPE t_array_source_176 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_BASE_AMT_NO_ROUND%TYPE INDEX BY BINARY_INTEGER;
197844 TYPE t_array_source_177 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
197845 TYPE t_array_source_178 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
197846 TYPE t_array_source_179 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
197847 TYPE t_array_source_180 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
197848 TYPE t_array_source_181 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
197849 TYPE t_array_source_182 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REV_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
197850 TYPE t_array_source_183 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
197851 TYPE t_array_source_184 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
197852 
197853 
197854 l_array_source_43      t_array_source_43;
197855 l_array_source_52      t_array_source_52;
197856 l_array_source_55      t_array_source_55;
197857 l_array_source_61      t_array_source_61;
197858 l_array_source_172      t_array_source_172;
197859 l_array_source_173      t_array_source_173;
197860 l_array_source_174      t_array_source_174;
197861 l_array_source_175      t_array_source_175;
197862 l_array_source_176      t_array_source_176;
197863 l_array_source_177      t_array_source_177;
197864 l_array_source_178      t_array_source_178;
197865 l_array_source_179      t_array_source_179;
197866 l_array_source_180      t_array_source_180;
197867 l_array_source_181      t_array_source_181;
197868 l_array_source_182      t_array_source_182;
197869 l_array_source_183      t_array_source_183;
197870 l_array_source_184      t_array_source_184;
197871 
197872 --
197873 CURSOR header_cur
197874 IS
197875 SELECT /*+ leading(xet) cardinality(xet,1) */
197876 -- Event Class Code: INVOICE_BURDEN
197877     xet.entity_id
197878    ,xet.legal_entity_id
197879    ,xet.entity_code
197880    ,xet.transaction_number
197881    ,xet.event_id
197882    ,xet.event_class_code
197883    ,xet.event_type_code
197884    ,xet.event_number
197885    ,xet.event_date
197886    ,xet.transaction_date
197887    ,xet.reference_num_1
197888    ,xet.reference_num_2
197889    ,xet.reference_num_3
197890    ,xet.reference_num_4
197891    ,xet.reference_char_1
197892    ,xet.reference_char_2
197893    ,xet.reference_char_3
197894    ,xet.reference_char_4
197895    ,xet.reference_date_1
197896    ,xet.reference_date_2
197897    ,xet.reference_date_3
197898    ,xet.reference_date_4
197899    ,xet.event_created_by
197900    ,xet.budgetary_control_flag  
197901   FROM xla_events_gt     xet  
197902  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
197903    and xet.event_class_code = C_EVENT_CLASS_CODE
197904    and xet.event_status_code <> 'N'  
197905  ORDER BY event_id
197906 ;
197907 
197908 
197909 --
197910 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
197911 IS
197912 SELECT  /*+ leading(xet) cardinality(xet,1) */
197913 -- Event Class Code: INVOICE_BURDEN
197914     xet.entity_id
197915    ,xet.legal_entity_id
197916    ,xet.entity_code
197917    ,xet.transaction_number
197918    ,xet.event_id
197919    ,xet.event_class_code
197920    ,xet.event_type_code
197921    ,xet.event_number
197922    ,xet.event_date
197923    ,xet.transaction_date
197924    ,xet.reference_num_1
197925    ,xet.reference_num_2
197926    ,xet.reference_num_3
197927    ,xet.reference_num_4
197928    ,xet.reference_char_1
197929    ,xet.reference_char_2
197930    ,xet.reference_char_3
197931    ,xet.reference_char_4
197932    ,xet.reference_date_1
197933    ,xet.reference_date_2
197934    ,xet.reference_date_3
197935    ,xet.reference_date_4
197936    ,xet.event_created_by
197937    ,xet.budgetary_control_flag
197938  , l1.LINE_NUMBER  
197939   , l1.DISTRIBUTION_LINK_TYPE    source_43
197940   , l1.AID_INVOICE_DIST_ID    source_52
197941   , l1.AI_INVOICE_CURRENCY_CODE    source_55
197942   , l1.AID_AMOUNT    source_61
197943   , l1.ACCT_REVERSAL_INDICATOR    source_172
197944   , l1.AID_EXPENDITURE_TYPE    source_173
197945   , l1.ENC_UPG_CR_ACCT_CLASS    source_174
197946   , l1.ENC_UPG_CR_ACCOUNT    source_175
197947   , l1.AID_BASE_AMT_NO_ROUND    source_176
197948   , l1.ENC_UPG_DR_ACCT_CLASS    source_177
197949   , l1.ENC_UPG_DR_ACCOUNT    source_178
197950   , l1.USE_ENC_UPG_ATTRIB_FLAG    source_179
197951   , l1.ACCT_REVERSAL_FIRST_DIST_ID    source_180
197952   , l1.AP_SECOND_DIST_ID    source_181
197953   , l1.ACCT_REV_DISTRIBUTION_TYPE    source_182
197954   , l1.ENC_UPG_CR_ENC_TYPE_ID    source_183
197955   , l1.ENC_UPG_DR_ENC_TYPE_ID    source_184
197956   FROM xla_events_gt     xet 
197957   , PA_XLA_BC_PKT_AP_DETAIL_V  l1
197958  WHERE xet.event_id between x_first_event_id and x_last_event_id
197959    and xet.event_date between p_pad_start_date and p_pad_end_date
197960    and xet.event_class_code = C_EVENT_CLASS_CODE
197961    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
197962 ;
197963 
197964 --
197965 BEGIN
197966 IF g_log_enabled THEN
197967    l_log_module := C_DEFAULT_MODULE||'.EventClass_295';
197968 END IF;
197969 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
197970    trace
197971       (p_msg      => 'BEGIN of EventClass_295'
197972       ,p_level    => C_LEVEL_PROCEDURE
197973       ,p_module   => l_log_module);
197974 END IF;
197975 
197976 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
197977    trace
197978       (p_msg      => 'p_application_id = '||p_application_id||
197979                      ' - p_base_ledger_id = '||p_base_ledger_id||
197980                      ' - p_target_ledger_id  = '||p_target_ledger_id||
197981                      ' - p_language = '||p_language||
197982                      ' - p_currency_code = '||p_currency_code||
197983                      ' - p_sla_ledger_id = '||p_sla_ledger_id
197984       ,p_level    => C_LEVEL_STATEMENT
197985       ,p_module   => l_log_module);
197986 END IF;
197987 --
197988 -- initialze arrays
197989 --
197990 g_array_event.DELETE;
197991 l_rec_array_event := l_null_rec_array_event;
197992 --
197993 --------------------------------------
197994 -- 4262811 Initialze MPA Line Number
197995 --------------------------------------
197996 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
197997 
197998 --
197999 
198000 --
198001 OPEN header_cur;
198002 --
198003 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
198004    trace
198005    (p_msg      => 'SQL - FETCH header_cur'
198006    ,p_level    => C_LEVEL_STATEMENT
198007    ,p_module   => l_log_module);
198008 END IF;
198009 --
198010 LOOP
198011 FETCH header_cur BULK COLLECT INTO
198012         l_array_entity_id
198013       , l_array_legal_entity_id
198014       , l_array_entity_code
198015       , l_array_transaction_num
198016       , l_array_event_id
198017       , l_array_class_code
198018       , l_array_event_type
198019       , l_array_event_number
198020       , l_array_event_date
198021       , l_array_transaction_date
198022       , l_array_reference_num_1
198023       , l_array_reference_num_2
198024       , l_array_reference_num_3
198025       , l_array_reference_num_4
198026       , l_array_reference_char_1
198027       , l_array_reference_char_2
198028       , l_array_reference_char_3
198029       , l_array_reference_char_4
198030       , l_array_reference_date_1
198031       , l_array_reference_date_2
198032       , l_array_reference_date_3
198033       , l_array_reference_date_4
198034       , l_array_event_created_by
198035       , l_array_budgetary_control_flag 
198036       LIMIT l_rows;
198037 --
198038 IF (C_LEVEL_EVENT >= g_log_level) THEN
198039    trace
198040    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
198041    ,p_level    => C_LEVEL_EVENT
198042    ,p_module   => l_log_module);
198043 END IF;
198044 --
198045 EXIT WHEN l_array_entity_id.COUNT = 0;
198046 
198047 -- initialize arrays
198048 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
198049 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
198050 
198051 --
198052 -- Bug 4458708
198053 --
198054 XLA_AE_LINES_PKG.g_LineNumber := 0;
198055 
198056 
198057 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
198058 g_last_hdr_idx := l_array_event_id.LAST;
198059 --
198060 -- loop for the headers. Each iteration is for each header extract row
198061 -- fetched in header cursor
198062 --
198063 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
198064 
198065 --
198066 -- set event info as cache for other routines to refer event attributes
198067 --
198068 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
198069    (p_application_id           => p_application_id
198070    ,p_primary_ledger_id        => p_primary_ledger_id
198071    ,p_base_ledger_id           => p_base_ledger_id
198072    ,p_target_ledger_id         => p_target_ledger_id
198073    ,p_entity_id                => l_array_entity_id(hdr_idx)
198074    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
198075    ,p_entity_code              => l_array_entity_code(hdr_idx)
198079    ,p_event_type_code          => l_array_event_type(hdr_idx)
198076    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
198077    ,p_event_id                 => l_array_event_id(hdr_idx)
198078    ,p_event_class_code         => l_array_class_code(hdr_idx)
198080    ,p_event_number             => l_array_event_number(hdr_idx)
198081    ,p_event_date               => l_array_event_date(hdr_idx)
198082    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
198083    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
198084    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
198085    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
198086    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
198087    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
198088    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
198089    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
198090    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
198091    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
198092    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
198093    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
198094    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
198095    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
198096    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
198097 
198098 --
198099 -- set the status of entry to C_VALID (0)
198100 --
198101 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
198102 
198103 --
198104 -- initialize a row for ae header
198105 --
198106 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
198107 
198108 l_event_id := l_array_event_id(hdr_idx);
198109 
198110 --
198111 -- storing the hdr_idx for event. May be used by line cursor.
198112 --
198113 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
198114 
198115 --
198116 -- store sources from header extract. This can be improved to
198117 -- store only those sources from header extract that may be used in lines
198118 --
198119 
198120 
198121 --
198122 -- initilaize the status of ae headers for diffrent balance types
198123 -- the status is initialised to C_NOT_CREATED (2)
198124 --
198125 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
198126 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
198127 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
198128 
198129 --
198130 -- call api to validate and store accounting attributes for header
198131 --
198132 
198133 ------------------------------------------------------------
198134 -- Accrual Reversal : to get date for Standard Source (NONE)
198135 ------------------------------------------------------------
198136 l_acc_rev_gl_date_source := NULL;
198137 
198138      l_rec_acct_attrs.array_acct_attr_code(1)   := 'GL_DATE';
198139       l_rec_acct_attrs.array_date_value(1) := 
198140 xla_ae_sources_pkg.GetSystemSourceDate(
198141    p_source_code           => 'XLA_EVENT_DATE'
198142  , p_source_type_code      => 'Y'
198143  , p_source_application_id =>  602
198144 );
198145 
198146 
198147 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
198148 
198149 XLA_AE_HEADER_PKG.SetJeCategoryName;
198150 
198151 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
198152 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
198153 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
198154 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
198155 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
198156 
198157 
198158 -- No header level analytical criteria
198159 
198160 --
198161 --accounting attribute enhancement, bug 3612931
198162 --
198163 l_trx_reversal_source := SUBSTR(NULL, 1,30);
198164 
198165 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
198166    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
198167 
198168    xla_accounting_err_pkg.build_message
198169       (p_appli_s_name            => 'XLA'
198170       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
198171       ,p_token_1                 => 'ACCT_ATTR_NAME'
198172       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
198173       ,p_token_2                 => 'PRODUCT_NAME'
198174       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
198175       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
198176       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
198177       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
198178 
198179 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
198180    --
198181    -- following sets the accounting attributes needed to reverse
198182    -- accounting for a distributeion
198183    --
198184    xla_ae_lines_pkg.SetTrxReversalAttrs
198185       (p_event_id              => l_event_id
198186       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
198187       ,p_trx_reversal_source   => l_trx_reversal_source);
198188 
198189 END IF;
198190 
198191 
198192 ----------------------------------------------------------------
198193 -- 4262811 -  update the header statuses to invalid in need be
198194 ----------------------------------------------------------------
198195 --
198196 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
198200   -- No accrual reversal for the event class/type
198197 
198198 
198199   -----------------------------------------------
198201   -----------------------------------------------
198202 ----------------------------------------------------------------
198203 
198204 --
198205 -- this ends the header loop iteration for one bulk fetch
198206 --
198207 END LOOP;
198208 
198209 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
198210 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
198211 
198212 --
198213 -- insert dummy rows into lines gt table that were created due to
198214 -- transaction reversals
198215 --
198216 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
198217    l_result := XLA_AE_LINES_PKG.InsertLines;
198218 END IF;
198219 
198220 --
198221 -- reset the temp_line_num for each set of events fetched from header
198222 -- cursor rather than doing it for each new event in line cursor
198223 -- Bug 3939231
198224 --
198225 xla_ae_lines_pkg.g_temp_line_num := 0;
198226 
198227 
198228 
198229 --
198230 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
198231 --
198232 --
198233 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
198234 
198235       trace
198236          (p_msg      => 'SQL - FETCH line_cur'
198237          ,p_level    => C_LEVEL_STATEMENT
198238          ,p_module   => l_log_module);
198239 
198240 END IF;
198241 --
198242 --
198243 LOOP
198244   --
198245   FETCH line_cur BULK COLLECT INTO
198246         l_array_entity_id
198247       , l_array_legal_entity_id
198248       , l_array_entity_code
198249       , l_array_transaction_num
198250       , l_array_event_id
198251       , l_array_class_code
198252       , l_array_event_type
198253       , l_array_event_number
198254       , l_array_event_date
198255       , l_array_transaction_date
198256       , l_array_reference_num_1
198257       , l_array_reference_num_2
198258       , l_array_reference_num_3
198259       , l_array_reference_num_4
198260       , l_array_reference_char_1
198261       , l_array_reference_char_2
198262       , l_array_reference_char_3
198263       , l_array_reference_char_4
198264       , l_array_reference_date_1
198265       , l_array_reference_date_2
198266       , l_array_reference_date_3
198267       , l_array_reference_date_4
198268       , l_array_event_created_by
198269       , l_array_budgetary_control_flag
198270       , l_array_extract_line_num 
198271       , l_array_source_43
198272       , l_array_source_52
198273       , l_array_source_55
198274       , l_array_source_61
198275       , l_array_source_172
198276       , l_array_source_173
198277       , l_array_source_174
198278       , l_array_source_175
198279       , l_array_source_176
198280       , l_array_source_177
198281       , l_array_source_178
198282       , l_array_source_179
198283       , l_array_source_180
198284       , l_array_source_181
198285       , l_array_source_182
198286       , l_array_source_183
198287       , l_array_source_184
198288       LIMIT l_rows;
198289 
198290   --
198291   IF (C_LEVEL_EVENT >= g_log_level) THEN
198292             trace
198293                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
198294                ,p_level    => C_LEVEL_EVENT
198295                ,p_module   => l_log_module);
198296   END IF;
198297   --
198298   EXIT WHEN l_array_entity_id.count = 0;
198299 
198300   XLA_AE_LINES_PKG.g_rec_lines := null;
198301 
198302 --
198303 -- Bug 4458708
198304 --
198305 XLA_AE_LINES_PKG.g_LineNumber := 0;
198306 --
198307 --
198308 
198309 FOR Idx IN 1..l_array_event_id.count LOOP
198310    --
198311    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
198312    --
198313    l_event_id := l_array_event_id(idx);  -- 5648433
198314 
198315    --
198316    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
198317    --
198318 
198319    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
198320              (g_array_event(l_event_id).array_value_num('header_index'))
198321          ,'N'
198322          ) <> 'Y'
198323    THEN
198324       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
198325          trace
198326             (p_msg      => 'Trancaction revesal option is not Y '
198327             ,p_level    => C_LEVEL_STATEMENT
198328             ,p_module   => l_log_module);
198329       END IF;
198330 
198331 --
198332 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
198333 --
198334 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
198335 --
198336 -- set event info as cache for other routines to refer event attributes
198337 --
198338 
198339 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
198340    l_previous_event_id := l_event_id;
198341 
198342    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
198343       (p_application_id           => p_application_id
198344       ,p_primary_ledger_id        => p_primary_ledger_id
198345       ,p_base_ledger_id           => p_base_ledger_id
198346       ,p_target_ledger_id         => p_target_ledger_id
198347       ,p_entity_id                => l_array_entity_id(Idx)
198348       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
198349       ,p_entity_code              => l_array_entity_code(Idx)
198350       ,p_transaction_num          => l_array_transaction_num(Idx)
198351       ,p_event_id                 => l_array_event_id(Idx)
198352       ,p_event_class_code         => l_array_class_code(Idx)
198353       ,p_event_type_code          => l_array_event_type(Idx)
198354       ,p_event_number             => l_array_event_number(Idx)
198355       ,p_event_date               => l_array_event_date(Idx)
198356       ,p_transaction_date         => l_array_transaction_date(Idx)
198357       ,p_reference_num_1          => l_array_reference_num_1(Idx)
198358       ,p_reference_num_2          => l_array_reference_num_2(Idx)
198359       ,p_reference_num_3          => l_array_reference_num_3(Idx)
198360       ,p_reference_num_4          => l_array_reference_num_4(Idx)
198361       ,p_reference_char_1         => l_array_reference_char_1(Idx)
198362       ,p_reference_char_2         => l_array_reference_char_2(Idx)
198363       ,p_reference_char_3         => l_array_reference_char_3(Idx)
198364       ,p_reference_char_4         => l_array_reference_char_4(Idx)
198365       ,p_reference_date_1         => l_array_reference_date_1(Idx)
198366       ,p_reference_date_2         => l_array_reference_date_2(Idx)
198367       ,p_reference_date_3         => l_array_reference_date_3(Idx)
198368       ,p_reference_date_4         => l_array_reference_date_4(Idx)
198369       ,p_event_created_by         => l_array_event_created_by(Idx)
198370       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
198371        --
198372 END IF;
198373 
198374 
198375 
198376 --
198377 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
198378 
198379 l_acct_reversal_source := SUBSTR(l_array_source_172(Idx), 1,30);
198380 
198381 IF l_continue_with_lines THEN
198382    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
198383       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
198384 
198385       xla_accounting_err_pkg.build_message
198386          (p_appli_s_name            => 'XLA'
198387          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
198388          ,p_token_1                 => 'LINE_NUMBER'
198389          ,p_value_1                 => l_array_extract_line_num(Idx)
198390          ,p_token_2                 => 'PRODUCT_NAME'
198391          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
198392          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
198393          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
198394          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
198395 
198396    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
198397       --
198398       -- following sets the accounting attributes needed to reverse
198399       -- accounting for a distributeion
198400       --
198401 
198402       --
198403       -- 5217187
198404       --
198405       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
198406       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
198407                                        g_array_event(l_event_id).array_value_num('header_index'));
198408       --
198409       --
198410 
198411       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
198412       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_172(Idx);
198413       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
198414       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_52(Idx);
198415       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_IDENTIFIER_2';
198416       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_173(Idx);
198417       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'DISTRIBUTION_TYPE';
198418       l_rec_rev_acct_attrs.array_char_value(5)  := l_array_source_43(Idx);
198419       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ACCT_CLASS';
198420       l_rec_rev_acct_attrs.array_char_value(6)  := l_array_source_174(Idx);
198421       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_CCID';
198422       l_rec_rev_acct_attrs.array_num_value(7)  := l_array_source_175(Idx);
198423       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_AMT';
198424       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_61(Idx);
198425       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_CURR';
198426       l_rec_rev_acct_attrs.array_char_value(9)  := l_array_source_55(Idx);
198427       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_LEDGER_AMT';
198428       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_176(Idx);
198429       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ACCT_CLASS';
198430       l_rec_rev_acct_attrs.array_char_value(11)  := l_array_source_177(Idx);
198431       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
198432       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_178(Idx);
198433       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
198434       l_rec_rev_acct_attrs.array_num_value(13)  := l_array_source_61(Idx);
198435       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
198436       l_rec_rev_acct_attrs.array_char_value(14)  := l_array_source_55(Idx);
198437       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
198438       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_176(Idx);
198439       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
198440       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_179(Idx);
198441       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
198442       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_180(Idx);
198443       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_ID2';
198444       l_rec_rev_acct_attrs.array_char_value(18)  := l_array_source_181(Idx);
198445       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_TYPE';
198446       l_rec_rev_acct_attrs.array_char_value(19)  := l_array_source_182(Idx);
198447       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
198448       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_183(Idx);
198449       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
198450       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_184(Idx);
198451 
198452 
198453       xla_ae_lines_pkg.SetAcctReversalAttrs
198454          (p_event_id             => l_event_id
198455          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
198456          ,p_calculate_acctd_flag => l_calculate_acctd_flag
198457          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
198458    END IF;
198459 
198460    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
198461        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
198462       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
198463       -- or secondary ledger that has different currency with primary
198464       -- or alc that is calculated by sla
198465       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
198466             (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'))
198467 
198468 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
198469 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
198470           AND (l_actual_flag = 'A')) THEN
198471         XLA_AE_LINES_PKG.CreateGainOrLossLines(
198472           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
198473          ,p_application_id   => p_application_id
198474          ,p_amb_context_code => 'DEFAULT'
198475          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
198476          ,p_event_class_code => C_EVENT_CLASS_CODE
198477          ,p_event_type_code  => C_EVENT_TYPE_CODE
198478          
198479          ,p_gain_ccid        => -1
198480          ,p_loss_ccid        => -1
198481 
198482          ,p_actual_flag      => l_actual_flag
198483          ,p_enc_flag         => null
198484          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
198485          ,p_enc_g_l_ref      => null
198486          );
198487       END IF;
198488    END IF;
198489 END IF;
198490 
198491    ELSE
198492       --
198493       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
198494       --
198495       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
198496          trace
198497             (p_msg      => 'Trancaction revesal option is Y'
198498             ,p_level    => C_LEVEL_STATEMENT
198499             ,p_module   => l_log_module);
198500       END IF;
198501    END IF;
198502 
198503 END LOOP;
198504 l_result := XLA_AE_LINES_PKG.InsertLines ;
198505 end loop;
198506 close line_cur;
198507 
198508 
198509 --
198510 -- insert headers into xla_ae_headers_gt table
198511 --
198512 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
198513 
198514 -- insert into errors table here.
198515 
198516 END LOOP;
198517 
198518 --
198519 -- 4865292
198520 --
198521 -- Compare g_hdr_extract_count with event count in
198522 -- CreateHeadersAndLines.
198523 --
198524 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
198525 
198526 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
198527    trace (p_msg     => '# rows extracted from header extract objects '
198528                     || ' (running total): '
198529                     || g_hdr_extract_count
198530          ,p_level   => C_LEVEL_STATEMENT
198531          ,p_module  => l_log_module);
198532 END IF;
198533 
198534 CLOSE header_cur;
198535 --
198536 
198537 --
198538 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
198539    trace
198540       (p_msg      => 'END of EventClass_295'
198541       ,p_level    => C_LEVEL_PROCEDURE
198542       ,p_module   => l_log_module);
198543 END IF;
198544 --
198545 RETURN l_result;
198546 EXCEPTION
198547 WHEN xla_exceptions_pkg.application_exception THEN
198548    
198549 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
198550 
198551    
198552 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
198553 
198554    RAISE;
198555 
198556 WHEN NO_DATA_FOUND THEN
198557 
198558 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
198559 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
198560 
198561 FOR header_record IN header_cur
198562 LOOP
198563     l_array_header_events(header_record.event_id) := header_record.event_id;
198564 END LOOP;
198565 
198566 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
198567 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
198568 
198569 fnd_file.put_line(fnd_file.LOG, '                    ');
198570 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
198571 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
198575 LOOP
198572 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
198573 
198574 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
198576 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
198577 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
198578         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
198579 	END IF;
198580 END LOOP;
198581 
198582 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
198583 fnd_file.put_line(fnd_file.LOG, '                    ');
198584 
198585 
198586 xla_exceptions_pkg.raise_message
198587       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_295');
198588 
198589 
198590 WHEN OTHERS THEN
198591    xla_exceptions_pkg.raise_message
198592       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_295');
198593 END EventClass_295;
198594 --
198595 
198596 ---------------------------------------
198597 --
198598 -- PRIVATE PROCEDURE
198599 --         insert_sources_296
198600 --
198601 ----------------------------------------
198602 --
198603 PROCEDURE insert_sources_296(
198604                                 p_target_ledger_id       IN NUMBER
198605                               , p_language               IN VARCHAR2
198606                               , p_sla_ledger_id          IN NUMBER
198607                               , p_pad_start_date         IN DATE
198608                               , p_pad_end_date           IN DATE
198609                          )
198610 IS
198611 
198612 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PAYMENTS_ALL';
198613 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PAYMENTS';
198614 p_apps_owner                   VARCHAR2(30);
198615 l_log_module                   VARCHAR2(240);
198616 BEGIN
198617 IF g_log_enabled THEN
198618       l_log_module := C_DEFAULT_MODULE||'.insert_sources_296';
198619 END IF;
198620 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
198621 
198622       trace
198623          (p_msg      => 'BEGIN of insert_sources_296'
198624          ,p_level    => C_LEVEL_PROCEDURE
198625          ,p_module   => l_log_module);
198626 
198627 END IF;
198628 
198629 -- select APPS owner
198630 SELECT oracle_username
198631   INTO p_apps_owner
198632   FROM fnd_oracle_userid
198633  WHERE read_only_flag = 'U'
198634 ;
198635 
198636 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
198637       trace
198638          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
198639                         ' - p_language = '||p_language||
198640                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
198641                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
198642                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
198643                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
198644          ,p_level    => C_LEVEL_STATEMENT
198645          ,p_module   => l_log_module);
198646 END IF;
198647 
198648 
198649 --
198650 INSERT INTO xla_diag_sources --hdr2
198651 (
198652         event_id
198653       , ledger_id
198654       , sla_ledger_id
198655       , description_language
198656       , object_name
198657       , object_type_code
198658       , line_number
198659       , source_application_id
198660       , source_type_code
198661       , source_code
198662       , source_value
198663       , source_meaning
198664       , created_by
198665       , creation_date
198666       , last_update_date
198667       , last_updated_by
198668       , last_update_login
198669       , program_update_date
198670       , program_application_id
198671       , program_id
198672       , request_id
198673 )
198674 SELECT
198675         event_id
198676       , p_target_ledger_id
198677       , p_sla_ledger_id
198678       , p_language
198679       , object_name
198680       , object_type_code
198681       , line_number
198682       , source_application_id
198683       , source_type_code
198684       , source_code
198685       , SUBSTR(source_value ,1,1996)
198686       , SUBSTR(source_meaning ,1,200)
198687       , xla_environment_pkg.g_Usr_Id
198688       , TRUNC(SYSDATE)
198689       , TRUNC(SYSDATE)
198690       , xla_environment_pkg.g_Usr_Id
198691       , xla_environment_pkg.g_Login_Id
198692       , TRUNC(SYSDATE)
198693       , xla_environment_pkg.g_Prog_Appl_Id
198694       , xla_environment_pkg.g_Prog_Id
198695       , xla_environment_pkg.g_Req_Id
198696   FROM (
198697        SELECT xet.event_id                  event_id
198698             , 0                          line_number
198699             , CASE r
198700                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
198701                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198702                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
198703                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
198704                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198705                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
198706                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
198707                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198708                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
198709                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
198710                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198711                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198712                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
198713                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198714                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
198715                 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
198716                 WHEN 17 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
198717                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198718                 WHEN 19 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
198719                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198720                 WHEN 21 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
198721                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198722                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198723                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198724                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198725                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198726                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198727                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198728                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198729                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198730                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198731                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198732                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198733                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198734                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
198735                 
198736                ELSE null
198737               END                           object_name
198738             , CASE r
198739                 WHEN 1 THEN 'HEADER' 
198740                 WHEN 2 THEN 'HEADER' 
198741                 WHEN 3 THEN 'HEADER' 
198742                 WHEN 4 THEN 'HEADER' 
198743                 WHEN 5 THEN 'HEADER' 
198744                 WHEN 6 THEN 'HEADER' 
198745                 WHEN 7 THEN 'HEADER' 
198746                 WHEN 8 THEN 'HEADER' 
198747                 WHEN 9 THEN 'HEADER' 
198748                 WHEN 10 THEN 'HEADER' 
198749                 WHEN 11 THEN 'HEADER' 
198750                 WHEN 12 THEN 'HEADER' 
198751                 WHEN 13 THEN 'HEADER' 
198752                 WHEN 14 THEN 'HEADER' 
198753                 WHEN 15 THEN 'HEADER' 
198754                 WHEN 16 THEN 'HEADER' 
198755                 WHEN 17 THEN 'HEADER' 
198756                 WHEN 18 THEN 'HEADER' 
198757                 WHEN 19 THEN 'HEADER' 
198758                 WHEN 20 THEN 'HEADER' 
198759                 WHEN 21 THEN 'HEADER' 
198760                 WHEN 22 THEN 'HEADER' 
198761                 WHEN 23 THEN 'HEADER' 
198762                 WHEN 24 THEN 'HEADER' 
198763                 WHEN 25 THEN 'HEADER' 
198764                 WHEN 26 THEN 'HEADER' 
198765                 WHEN 27 THEN 'HEADER' 
198766                 WHEN 28 THEN 'HEADER' 
198767                 WHEN 29 THEN 'HEADER' 
198768                 WHEN 30 THEN 'HEADER' 
198769                 WHEN 31 THEN 'HEADER' 
198770                 WHEN 32 THEN 'HEADER' 
198771                 WHEN 33 THEN 'HEADER' 
198772                 WHEN 34 THEN 'HEADER' 
198773                 WHEN 35 THEN 'HEADER' 
198774                 
198775                 ELSE null
198776               END                           object_type_code
198777             , CASE r
198778                 WHEN 1 THEN '200' 
198779                 WHEN 2 THEN '200' 
198780                 WHEN 3 THEN '200' 
198781                 WHEN 4 THEN '200' 
198785                 WHEN 8 THEN '200' 
198782                 WHEN 5 THEN '200' 
198783                 WHEN 6 THEN '200' 
198784                 WHEN 7 THEN '200' 
198786                 WHEN 9 THEN '200' 
198787                 WHEN 10 THEN '200' 
198788                 WHEN 11 THEN '200' 
198789                 WHEN 12 THEN '200' 
198790                 WHEN 13 THEN '200' 
198791                 WHEN 14 THEN '200' 
198792                 WHEN 15 THEN '200' 
198793                 WHEN 16 THEN '200' 
198794                 WHEN 17 THEN '200' 
198795                 WHEN 18 THEN '200' 
198796                 WHEN 19 THEN '200' 
198797                 WHEN 20 THEN '200' 
198798                 WHEN 21 THEN '200' 
198799                 WHEN 22 THEN '200' 
198800                 WHEN 23 THEN '200' 
198801                 WHEN 24 THEN '200' 
198802                 WHEN 25 THEN '200' 
198803                 WHEN 26 THEN '200' 
198804                 WHEN 27 THEN '200' 
198805                 WHEN 28 THEN '200' 
198806                 WHEN 29 THEN '200' 
198807                 WHEN 30 THEN '200' 
198808                 WHEN 31 THEN '200' 
198809                 WHEN 32 THEN '200' 
198810                 WHEN 33 THEN '200' 
198811                 WHEN 34 THEN '200' 
198812                 WHEN 35 THEN '200' 
198813                 
198814                 ELSE null
198815               END                           source_application_id
198816             , 'S'             source_type_code
198817             , CASE r
198818                 WHEN 1 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
198819                 WHEN 2 THEN 'CGAC_AP_ASSET_CCID' 
198820                 WHEN 3 THEN 'FSP_DISC_TAKEN_CCID' 
198821                 WHEN 4 THEN 'ASP_DISCOUNT_DIST_METHOD' 
198822                 WHEN 5 THEN 'CGAC_FUTURE_DATED_PMT_CCID' 
198823                 WHEN 6 THEN 'ASP_FD_PMT_ACCT_SOURCE' 
198824                 WHEN 7 THEN 'FSP_FUTURE_DATED_PAYMENT_CCID' 
198825                 WHEN 8 THEN 'POS_FDP_CCID' 
198826                 WHEN 9 THEN 'ASP_INTEREST_CCID' 
198827                 WHEN 10 THEN 'ASP_PRORATE_INT_ACROSS_DISTS' 
198828                 WHEN 11 THEN 'CGAC_CASH_CLEARING_CCID' 
198829                 WHEN 12 THEN 'CGAC_GAIN_CCID' 
198830                 WHEN 13 THEN 'ASP_GAIN_CCID' 
198831                 WHEN 14 THEN 'CGAC_LOSS_CCID' 
198832                 WHEN 15 THEN 'ASP_LOSS_CCID' 
198833                 WHEN 16 THEN 'ASP_DISC_TAKEN_CCID' 
198834                 WHEN 17 THEN 'ASP_AUTO_OFFSET_FLAG' 
198835                 WHEN 18 THEN 'PAYCARD_ACCRUED_ACCOUNT_CCID' 
198836                 WHEN 19 THEN 'ASP_ROUNDING_ERROR_CCID' 
198837                 WHEN 20 THEN 'THIRD_PARTY_TYPE' 
198838                 WHEN 21 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
198839                 WHEN 22 THEN 'AC_VENDOR_ID' 
198840                 WHEN 23 THEN 'AC_VENDOR_SITE_ID' 
198841                 WHEN 24 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
198842                 WHEN 25 THEN 'AC_CURRENCY_CODE' 
198843                 WHEN 26 THEN 'AC_FUTURE_PAY_DUE_DATE' 
198844                 WHEN 27 THEN 'AC_EXCHANGE_DATE' 
198845                 WHEN 28 THEN 'AC_EXCHANGE_RATE' 
198846                 WHEN 29 THEN 'AC_EXCHANGE_RATE_TYPE' 
198847                 WHEN 30 THEN 'PAYMENT_TYPE' 
198848                 WHEN 31 THEN 'PAYMENT_PROCESSING_TYPE' 
198849                 WHEN 32 THEN 'AC_DOC_CATEGORY_CODE' 
198850                 WHEN 33 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
198851                 WHEN 34 THEN 'AC_DOC_SEQUENCE_VALUE' 
198852                 WHEN 35 THEN 'TRANSAC_REVERSAL_FLAG' 
198853                 
198854                 ELSE null
198855               END                           source_code
198856             , CASE r
198857                 WHEN 1 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
198858                 WHEN 2 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
198859                 WHEN 3 THEN TO_CHAR(h3.FSP_DISC_TAKEN_CCID)
198860                 WHEN 4 THEN TO_CHAR(h3.ASP_DISCOUNT_DIST_METHOD)
198861                 WHEN 5 THEN TO_CHAR(h2.CGAC_FUTURE_DATED_PMT_CCID)
198862                 WHEN 6 THEN TO_CHAR(h3.ASP_FD_PMT_ACCT_SOURCE)
198863                 WHEN 7 THEN TO_CHAR(h3.FSP_FUTURE_DATED_PAYMENT_CCID)
198864                 WHEN 8 THEN TO_CHAR(h2.POS_FDP_CCID)
198865                 WHEN 9 THEN TO_CHAR(h3.ASP_INTEREST_CCID)
198866                 WHEN 10 THEN TO_CHAR(h3.ASP_PRORATE_INT_ACROSS_DISTS)
198867                 WHEN 11 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
198868                 WHEN 12 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
198869                 WHEN 13 THEN TO_CHAR(h3.ASP_GAIN_CCID)
198870                 WHEN 14 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
198871                 WHEN 15 THEN TO_CHAR(h3.ASP_LOSS_CCID)
198872                 WHEN 16 THEN TO_CHAR(h3.ASP_DISC_TAKEN_CCID)
198873                 WHEN 17 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
198874                 WHEN 18 THEN TO_CHAR(h2.PAYCARD_ACCRUED_ACCOUNT_CCID)
198875                 WHEN 19 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
198876                 WHEN 20 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
198877                 WHEN 21 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
198878                 WHEN 22 THEN TO_CHAR(h2.AC_VENDOR_ID)
198879                 WHEN 23 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
198880                 WHEN 24 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
198881                 WHEN 25 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
198882                 WHEN 26 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
198883                 WHEN 27 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
198884                 WHEN 28 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
198885                 WHEN 29 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
198886                 WHEN 30 THEN TO_CHAR(h2.PAYMENT_TYPE)
198887                 WHEN 31 THEN TO_CHAR(h2.PAYMENT_PROCESSING_TYPE)
198888                 WHEN 32 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
198892                 
198889                 WHEN 33 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
198890                 WHEN 34 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
198891                 WHEN 35 THEN TO_CHAR(h2.TRANSAC_REVERSAL_FLAG)
198893                 ELSE null
198894               END                           source_value
198895             , CASE r
198896                 WHEN 1 THEN fvl3.meaning
198897                 WHEN 4 THEN fvl7.meaning
198898                 WHEN 6 THEN fvl13.meaning
198899                 WHEN 17 THEN fvl35.meaning
198900                 WHEN 24 THEN fvl105.meaning
198901                 WHEN 30 THEN fvl115.meaning
198902                 WHEN 35 THEN fvl185.meaning
198903                 
198904                 ELSE null
198905               END               source_meaning
198906          FROM xla_events_gt     xet  
198907       , AP_PAYMENT_EXTRACT_HEADER_V  h2
198908       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
198909   , fnd_lookup_values    fvl3
198910   , fnd_lookup_values    fvl7
198911   , fnd_lookup_values    fvl13
198912   , fnd_lookup_values    fvl35
198913   , fnd_lookup_values    fvl105
198914   , fnd_lookup_values    fvl115
198915   , fnd_lookup_values    fvl185
198916              ,(select rownum r from all_objects where rownum <= 35 and owner = p_apps_owner)
198917          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
198918            AND xet.event_class_code = C_EVENT_CLASS_CODE
198919               AND h2.event_id = xet.event_id
198920  AND h3.asp_org_id = h2.ac_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
198921   AND fvl3.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
198922   AND fvl3.view_application_id(+) = 200
198923   AND fvl3.language(+)            = USERENV('LANG')
198924      AND fvl7.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
198925   AND fvl7.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
198926   AND fvl7.view_application_id(+) = 200
198927   AND fvl7.language(+)            = USERENV('LANG')
198928      AND fvl13.lookup_type(+)         = 'FUTURE PAY ACCT SOURCE'
198929   AND fvl13.lookup_code(+)         = h3.ASP_FD_PMT_ACCT_SOURCE
198930   AND fvl13.view_application_id(+) = 200
198931   AND fvl13.language(+)            = USERENV('LANG')
198932      AND fvl35.lookup_type(+)         = 'YES_NO'
198933   AND fvl35.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
198934   AND fvl35.view_application_id(+) = 0
198935   AND fvl35.language(+)            = USERENV('LANG')
198936      AND fvl105.lookup_type(+)         = 'YES_NO'
198937   AND fvl105.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
198938   AND fvl105.view_application_id(+) = 0
198939   AND fvl105.language(+)            = USERENV('LANG')
198940      AND fvl115.lookup_type(+)         = 'PAYMENT TYPE'
198941   AND fvl115.lookup_code(+)         = h2.PAYMENT_TYPE
198942   AND fvl115.view_application_id(+) = 200
198943   AND fvl115.language(+)            = USERENV('LANG')
198944      AND fvl185.lookup_type(+)         = 'YES_NO'
198945   AND fvl185.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
198946   AND fvl185.view_application_id(+) = 0
198947   AND fvl185.language(+)            = USERENV('LANG')
198948   
198949 )
198950 ;
198951 --
198952 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
198953 
198954       trace
198955          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
198956          ,p_level    => C_LEVEL_STATEMENT
198957          ,p_module   => l_log_module);
198958 
198959 END IF;
198960 --
198961 
198962 
198963 
198964 --
198965 INSERT INTO xla_diag_sources  --line2
198966 (
198967         event_id
198968       , ledger_id
198969       , sla_ledger_id
198970       , description_language
198971       , object_name
198972       , object_type_code
198973       , line_number
198974       , source_application_id
198975       , source_type_code
198976       , source_code
198977       , source_value
198978       , source_meaning
198979       , created_by
198980       , creation_date
198981       , last_update_date
198982       , last_updated_by
198983       , last_update_login
198984       , program_update_date
198985       , program_application_id
198986       , program_id
198987       , request_id
198988 )
198989 SELECT  event_id
198990       , p_target_ledger_id
198991       , p_sla_ledger_id
198992       , p_language
198993       , object_name
198994       , object_type_code
198995       , line_number
198996       , source_application_id
198997       , source_type_code
198998       , source_code
198999       , SUBSTR(source_value,1,1996)
199000       , SUBSTR(source_meaning ,1,200)
199001       , xla_environment_pkg.g_Usr_Id
199002       , TRUNC(SYSDATE)
199003       , TRUNC(SYSDATE)
199004       , xla_environment_pkg.g_Usr_Id
199005       , xla_environment_pkg.g_Login_Id
199006       , TRUNC(SYSDATE)
199007       , xla_environment_pkg.g_Prog_Appl_Id
199008       , xla_environment_pkg.g_Prog_Id
199009       , xla_environment_pkg.g_Req_Id
199010   FROM (
199011        SELECT xet.event_id                  event_id
199012             , l1.line_number                 line_number
199013             , CASE r
199014                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199015                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199016                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199017                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199018                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199019                 WHEN 6 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
199020                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199021                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199022                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199023                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199027                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199024                 WHEN 11 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
199025                 WHEN 12 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
199026                 WHEN 13 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
199028                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199029                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199030                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199031                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199032                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199033                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199034                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199035                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199036                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199037                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199038                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199039                 WHEN 26 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
199040                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199041                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199042                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199043                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199044                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199045                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199046                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199047                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
199048                 
199049                ELSE null
199050               END                           object_name
199051             , CASE r
199052                 WHEN 1 THEN 'LINE' 
199053                 WHEN 2 THEN 'LINE' 
199054                 WHEN 3 THEN 'LINE' 
199055                 WHEN 4 THEN 'LINE' 
199056                 WHEN 5 THEN 'LINE' 
199057                 WHEN 6 THEN 'LINE' 
199058                 WHEN 7 THEN 'LINE' 
199059                 WHEN 8 THEN 'LINE' 
199060                 WHEN 9 THEN 'LINE' 
199061                 WHEN 10 THEN 'LINE' 
199062                 WHEN 11 THEN 'LINE' 
199063                 WHEN 12 THEN 'LINE' 
199064                 WHEN 13 THEN 'LINE' 
199065                 WHEN 14 THEN 'LINE' 
199066                 WHEN 15 THEN 'LINE' 
199067                 WHEN 16 THEN 'LINE' 
199068                 WHEN 17 THEN 'LINE' 
199069                 WHEN 18 THEN 'LINE' 
199070                 WHEN 19 THEN 'LINE' 
199071                 WHEN 20 THEN 'LINE' 
199072                 WHEN 21 THEN 'LINE' 
199073                 WHEN 22 THEN 'LINE' 
199074                 WHEN 23 THEN 'LINE' 
199075                 WHEN 24 THEN 'LINE' 
199076                 WHEN 25 THEN 'LINE' 
199077                 WHEN 26 THEN 'LINE' 
199078                 WHEN 27 THEN 'LINE' 
199079                 WHEN 28 THEN 'LINE' 
199080                 WHEN 29 THEN 'LINE' 
199081                 WHEN 30 THEN 'LINE' 
199082                 WHEN 31 THEN 'LINE' 
199083                 WHEN 32 THEN 'LINE' 
199084                 WHEN 33 THEN 'LINE' 
199085                 WHEN 34 THEN 'LINE' 
199086                 
199087                 ELSE null
199088               END                           object_type_code
199089             , CASE r
199090                 WHEN 1 THEN '200' 
199091                 WHEN 2 THEN '200' 
199092                 WHEN 3 THEN '200' 
199093                 WHEN 4 THEN '200' 
199094                 WHEN 5 THEN '200' 
199095                 WHEN 6 THEN '200' 
199096                 WHEN 7 THEN '200' 
199097                 WHEN 8 THEN '200' 
199098                 WHEN 9 THEN '200' 
199099                 WHEN 10 THEN '200' 
199100                 WHEN 11 THEN '200' 
199101                 WHEN 12 THEN '200' 
199102                 WHEN 13 THEN '200' 
199103                 WHEN 14 THEN '200' 
199104                 WHEN 15 THEN '200' 
199105                 WHEN 16 THEN '200' 
199106                 WHEN 17 THEN '200' 
199107                 WHEN 18 THEN '200' 
199108                 WHEN 19 THEN '200' 
199109                 WHEN 20 THEN '200' 
199110                 WHEN 21 THEN '200' 
199111                 WHEN 22 THEN '200' 
199112                 WHEN 23 THEN '200' 
199113                 WHEN 24 THEN '200' 
199114                 WHEN 25 THEN '200' 
199115                 WHEN 26 THEN '200' 
199116                 WHEN 27 THEN '200' 
199117                 WHEN 28 THEN '200' 
199118                 WHEN 29 THEN '200' 
199119                 WHEN 30 THEN '200' 
199120                 WHEN 31 THEN '200' 
199121                 WHEN 32 THEN '200' 
199122                 WHEN 33 THEN '200' 
199123                 WHEN 34 THEN '200' 
199124                 
199125                 ELSE null
199126               END                           source_application_id
199127             , 'S'             source_type_code
199128             , CASE r
199129                 WHEN 1 THEN 'AID_DIST_CCID' 
199130                 WHEN 2 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
199131                 WHEN 3 THEN 'AWT_RELATED_DIST_ACCOUNT' 
199132                 WHEN 4 THEN 'POD_CCID' 
199133                 WHEN 5 THEN 'PO_VARIANCE_ACCOUNT' 
199134                 WHEN 6 THEN 'TAX_ACCOUNT_CCID' 
199135                 WHEN 7 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
199136                 WHEN 8 THEN 'DISTRIBUTION_LINK_TYPE' 
199137                 WHEN 9 THEN 'AI_INVOICE_CURRENCY_CODE' 
199138                 WHEN 10 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
199139                 WHEN 11 THEN 'TAX_LINE_ID' 
199140                 WHEN 12 THEN 'REC_NREC_TAX_DIST_ID' 
199141                 WHEN 13 THEN 'SUMMARY_TAX_LINE_ID' 
199142                 WHEN 14 THEN 'BUS_FLOW_AP_APP_ID' 
199143                 WHEN 15 THEN 'BUS_FLOW_INV_DIST_TYPE' 
199144                 WHEN 16 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
199148                 WHEN 20 THEN 'APHD_AMOUNT' 
199145                 WHEN 17 THEN 'BUS_FLOW_INV_DIST_ID' 
199146                 WHEN 18 THEN 'BUS_FLOW_INV_ID' 
199147                 WHEN 19 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
199149                 WHEN 21 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
199150                 WHEN 22 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
199151                 WHEN 23 THEN 'APHD_PAYMENT_BASE_AMT' 
199152                 WHEN 24 THEN 'APHD_INVOICE_BASE_AMT' 
199153                 WHEN 25 THEN 'APHD_INVOICE_DIST_AMOUNT' 
199154                 WHEN 26 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
199155                 WHEN 27 THEN 'AWT_RELATED_DIST_TYPE' 
199156                 WHEN 28 THEN 'INV_EXCHANGE_DATE' 
199157                 WHEN 29 THEN 'INV_EXCHANGE_RATE' 
199158                 WHEN 30 THEN 'INV_EXCHANGE_RATE_TYPE' 
199159                 WHEN 31 THEN 'INV_PMT_BASE_AMT_DIFF' 
199160                 WHEN 32 THEN 'INV_PMT_GAIN_LOSS_INDICATOR' 
199161                 WHEN 33 THEN 'AI_INVOICE_TYPE_PAID' 
199162                 WHEN 34 THEN 'AWT_AT_PMT_TIME' 
199163                 
199164                 ELSE null
199165               END                           source_code
199166             , CASE r
199167                 WHEN 1 THEN TO_CHAR(l1.AID_DIST_CCID)
199168                 WHEN 2 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
199169                 WHEN 3 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
199170                 WHEN 4 THEN TO_CHAR(l1.POD_CCID)
199171                 WHEN 5 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
199172                 WHEN 6 THEN TO_CHAR(l4.TAX_ACCOUNT_CCID)
199173                 WHEN 7 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
199174                 WHEN 8 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
199175                 WHEN 9 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
199176                 WHEN 10 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
199177                 WHEN 11 THEN TO_CHAR(l4.TAX_LINE_ID)
199178                 WHEN 12 THEN TO_CHAR(l5.REC_NREC_TAX_DIST_ID)
199179                 WHEN 13 THEN TO_CHAR(l4.SUMMARY_TAX_LINE_ID)
199180                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
199181                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
199182                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
199183                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
199184                 WHEN 18 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
199185                 WHEN 19 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
199186                 WHEN 20 THEN TO_CHAR(l1.APHD_AMOUNT)
199187                 WHEN 21 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
199188                 WHEN 22 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
199189                 WHEN 23 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
199190                 WHEN 24 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
199191                 WHEN 25 THEN TO_CHAR(l1.APHD_INVOICE_DIST_AMOUNT)
199192                 WHEN 26 THEN TO_CHAR(l4.DEF_REC_SETTLEMENT_OPTION_CODE)
199193                 WHEN 27 THEN TO_CHAR(l1.AWT_RELATED_DIST_TYPE)
199194                 WHEN 28 THEN TO_CHAR(l1.INV_EXCHANGE_DATE)
199195                 WHEN 29 THEN TO_CHAR(l1.INV_EXCHANGE_RATE)
199196                 WHEN 30 THEN TO_CHAR(l1.INV_EXCHANGE_RATE_TYPE)
199197                 WHEN 31 THEN TO_CHAR(l1.INV_PMT_BASE_AMT_DIFF)
199198                 WHEN 32 THEN TO_CHAR(l1.INV_PMT_GAIN_LOSS_INDICATOR)
199199                 WHEN 33 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
199200                 WHEN 34 THEN TO_CHAR(l1.AWT_AT_PMT_TIME)
199201                 
199202                 ELSE null
199203               END                           source_value
199204             , CASE r
199205                 WHEN 2 THEN fvl21.meaning
199206                 WHEN 10 THEN fvl68.meaning
199207                 WHEN 19 THEN fvl90.meaning
199208                 WHEN 26 THEN fvl130.meaning
199209                 WHEN 33 THEN fvl158.meaning
199210                 WHEN 34 THEN fvl160.meaning
199211                 
199212                 ELSE null
199213               END               source_meaning
199214          FROM  xla_events_gt     xet  
199215         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
199216         , ZX_AP_DEF_TAX_EXTRACT_V  l4
199217         , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
199218   , fnd_lookup_values    fvl21
199219   , fnd_lookup_values    fvl68
199220   , fnd_lookup_values    fvl90
199221   , fnd_lookup_values    fvl130
199222   , fnd_lookup_values    fvl158
199223   , fnd_lookup_values    fvl160
199224             , (select rownum r from all_objects where rownum <= 34 and owner = p_apps_owner)
199225         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
199226           AND xet.event_class_code = C_EVENT_CLASS_CODE
199227             AND l1.event_id          = xet.event_id
199228  AND l1.aid_detail_tax_dist_id = l4.rec_nrec_tax_dist_id (+)  AND l1.aid_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+)    AND fvl21.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
199229   AND fvl21.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
199230   AND fvl21.view_application_id(+) = 200
199231   AND fvl21.language(+)            = USERENV('LANG')
199232      AND fvl68.lookup_type(+)         = 'YES_NO'
199233   AND fvl68.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
199234   AND fvl68.view_application_id(+) = 0
199235   AND fvl68.language(+)            = USERENV('LANG')
199236      AND fvl90.lookup_type(+)         = 'PAY_DIST_TYPES'
199237   AND fvl90.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
199238   AND fvl90.view_application_id(+) = 200
199239   AND fvl90.language(+)            = USERENV('LANG')
199240      AND fvl130.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
199241   AND fvl130.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
199242   AND fvl130.view_application_id(+) = 0
199243   AND fvl130.language(+)            = USERENV('LANG')
199244      AND fvl158.lookup_type(+)         = 'INVOICE TYPE'
199245   AND fvl158.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
199246   AND fvl158.view_application_id(+) = 200
199247   AND fvl158.language(+)            = USERENV('LANG')
199251   AND fvl160.language(+)            = USERENV('LANG')
199248      AND fvl160.lookup_type(+)         = 'YES_NO'
199249   AND fvl160.lookup_code(+)         = l1.AWT_AT_PMT_TIME
199250   AND fvl160.view_application_id(+) = 0
199252   
199253 )
199254 ;
199255 --
199256 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
199257 
199258       trace
199259          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
199260          ,p_level    => C_LEVEL_STATEMENT
199261          ,p_module   => l_log_module);
199262 
199263 END IF;
199264 
199265 
199266 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
199267       trace
199268          (p_msg      => 'END of insert_sources_296'
199269          ,p_level    => C_LEVEL_PROCEDURE
199270          ,p_module   => l_log_module);
199271 END IF;
199272 EXCEPTION
199273   WHEN xla_exceptions_pkg.application_exception THEN
199274       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
199275             trace
199276                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
199277                ,p_level    => C_LEVEL_EXCEPTION
199278                ,p_module   => l_log_module);
199279       END IF;
199280       RAISE;
199281   WHEN OTHERS THEN
199282       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
199283             trace
199284                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
199285                ,p_level    => C_LEVEL_EXCEPTION
199286                ,p_module   => l_log_module);
199287        END IF;
199288        xla_exceptions_pkg.raise_message
199289            (p_location => 'XLA_00200_AAD_S_000006_PKG.insert_sources_296');
199290 END insert_sources_296;
199291 --
199292 
199293 ---------------------------------------
199294 --
199295 -- PRIVATE FUNCTION
199296 --         EventClass_296
199297 --
199298 ----------------------------------------
199299 --
199300 FUNCTION EventClass_296
199301        (p_application_id         IN NUMBER
199302        ,p_base_ledger_id         IN NUMBER
199303        ,p_target_ledger_id       IN NUMBER
199304        ,p_language               IN VARCHAR2
199305        ,p_currency_code          IN VARCHAR2
199306        ,p_sla_ledger_id          IN NUMBER
199307        ,p_pad_start_date         IN DATE
199308        ,p_pad_end_date           IN DATE
199309        ,p_primary_ledger_id      IN NUMBER)
199310 RETURN BOOLEAN IS
199311 --
199312 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PAYMENTS_ALL';
199313 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PAYMENTS';
199314 
199315 l_calculate_acctd_flag   VARCHAR2(1) :='N';
199316 l_calculate_g_l_flag     VARCHAR2(1) :='N';
199317 --
199318 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
199319 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
199320 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
199321 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
199322 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
199323 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
199324 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
199325 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
199326 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
199327 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
199328 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
199329 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
199330 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
199331 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
199332 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
199333 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
199334 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
199335 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
199336 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
199337 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
199338 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
199339 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
199340 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
199341 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
199342 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
199343 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
199344 
199345 l_event_id                             NUMBER;
199346 l_previous_event_id                    NUMBER;
199347 l_first_event_id                       NUMBER;
199348 l_last_event_id                        NUMBER;
199349 
199350 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
199351 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
199352 --
199353 --
199354 l_result                    BOOLEAN := TRUE;
199355 l_rows                      NUMBER  := 1000;
199356 l_event_type_name           VARCHAR2(80) := 'All';
199357 l_event_class_name          VARCHAR2(80) := 'Payments';
199358 l_description               VARCHAR2(4000);
199359 l_transaction_reversal      NUMBER;
199360 l_ae_header_id              NUMBER;
199361 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
199362 l_log_module                VARCHAR2(240);
199363 --
199364 l_acct_reversal_source      VARCHAR2(30);
199365 l_trx_reversal_source       VARCHAR2(30);
199366 
199367 l_continue_with_lines       BOOLEAN := TRUE;
199368 --
199369 l_acc_rev_gl_date_source    DATE;                      -- 4262811
199370 --
199374 l_null_rec_array_event               t_rec_array_event;
199371 type t_array_event_id is table of number index by binary_integer;
199372 
199373 l_rec_array_event                    t_rec_array_event;
199375 l_array_ae_header_id                 xla_number_array_type;
199376 l_actual_flag                        VARCHAR2(1) := NULL;
199377 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
199378 l_balance_type_code                  VARCHAR2(1) :=NULL;
199379 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
199380 
199381 --
199382 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
199383 --
199384 
199385 TYPE t_array_source_3 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
199386 TYPE t_array_source_5 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
199387 TYPE t_array_source_6 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
199388 TYPE t_array_source_7 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
199389 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_FUTURE_DATED_PMT_CCID%TYPE INDEX BY BINARY_INTEGER;
199390 TYPE t_array_source_13 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_FD_PMT_ACCT_SOURCE%TYPE INDEX BY BINARY_INTEGER;
199391 TYPE t_array_source_14 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_FUTURE_DATED_PAYMENT_CCID%TYPE INDEX BY BINARY_INTEGER;
199392 TYPE t_array_source_15 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.POS_FDP_CCID%TYPE INDEX BY BINARY_INTEGER;
199393 TYPE t_array_source_16 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_INTEREST_CCID%TYPE INDEX BY BINARY_INTEGER;
199394 TYPE t_array_source_17 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PRORATE_INT_ACROSS_DISTS%TYPE INDEX BY BINARY_INTEGER;
199395 TYPE t_array_source_23 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
199396 TYPE t_array_source_24 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
199397 TYPE t_array_source_25 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
199398 TYPE t_array_source_26 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
199399 TYPE t_array_source_27 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
199400 TYPE t_array_source_32 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
199401 TYPE t_array_source_35 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
199402 TYPE t_array_source_36 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYCARD_ACCRUED_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
199403 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
199404 TYPE t_array_source_71 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
199405 TYPE t_array_source_89 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
199406 TYPE t_array_source_102 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
199407 TYPE t_array_source_103 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
199408 TYPE t_array_source_105 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
199409 TYPE t_array_source_106 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
199410 TYPE t_array_source_107 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
199411 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
199412 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
199413 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
199414 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
199415 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_PROCESSING_TYPE%TYPE INDEX BY BINARY_INTEGER;
199416 TYPE t_array_source_169 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
199417 TYPE t_array_source_170 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
199418 TYPE t_array_source_171 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
199419 TYPE t_array_source_185 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.TRANSAC_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
199420 
199421 TYPE t_array_source_18 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
199422 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
199423 TYPE t_array_source_31 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
199424 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
199425 TYPE t_array_source_34 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
199426 TYPE t_array_source_40 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
199427 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
199428 TYPE t_array_source_43 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
199429 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
199430 TYPE t_array_source_68 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
199431 TYPE t_array_source_74 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
199432 TYPE t_array_source_75 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
199433 TYPE t_array_source_76 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
199434 TYPE t_array_source_79 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
199438 TYPE t_array_source_83 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
199435 TYPE t_array_source_80 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
199436 TYPE t_array_source_81 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
199437 TYPE t_array_source_82 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
199439 TYPE t_array_source_90 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
199440 TYPE t_array_source_91 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
199441 TYPE t_array_source_96 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
199442 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
199443 TYPE t_array_source_108 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
199444 TYPE t_array_source_109 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
199445 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_DIST_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
199446 TYPE t_array_source_130 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
199447 TYPE t_array_source_131 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
199448 TYPE t_array_source_136 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
199449 TYPE t_array_source_137 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
199450 TYPE t_array_source_138 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
199451 TYPE t_array_source_148 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_PMT_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
199452 TYPE t_array_source_153 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_PMT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
199453 TYPE t_array_source_158 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
199454 TYPE t_array_source_160 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_AT_PMT_TIME%TYPE INDEX BY BINARY_INTEGER;
199455 
199456 l_array_source_3              t_array_source_3;
199457 l_array_source_3_meaning      t_array_lookup_meaning;
199458 l_array_source_5              t_array_source_5;
199459 l_array_source_6              t_array_source_6;
199460 l_array_source_7              t_array_source_7;
199461 l_array_source_7_meaning      t_array_lookup_meaning;
199462 l_array_source_12              t_array_source_12;
199463 l_array_source_13              t_array_source_13;
199464 l_array_source_13_meaning      t_array_lookup_meaning;
199465 l_array_source_14              t_array_source_14;
199466 l_array_source_15              t_array_source_15;
199467 l_array_source_16              t_array_source_16;
199468 l_array_source_17              t_array_source_17;
199469 l_array_source_23              t_array_source_23;
199470 l_array_source_24              t_array_source_24;
199471 l_array_source_25              t_array_source_25;
199472 l_array_source_26              t_array_source_26;
199473 l_array_source_27              t_array_source_27;
199474 l_array_source_32              t_array_source_32;
199475 l_array_source_35              t_array_source_35;
199476 l_array_source_35_meaning      t_array_lookup_meaning;
199477 l_array_source_36              t_array_source_36;
199478 l_array_source_37              t_array_source_37;
199479 l_array_source_71              t_array_source_71;
199480 l_array_source_89              t_array_source_89;
199481 l_array_source_102              t_array_source_102;
199482 l_array_source_103              t_array_source_103;
199483 l_array_source_105              t_array_source_105;
199484 l_array_source_105_meaning      t_array_lookup_meaning;
199485 l_array_source_106              t_array_source_106;
199486 l_array_source_107              t_array_source_107;
199487 l_array_source_110              t_array_source_110;
199488 l_array_source_111              t_array_source_111;
199489 l_array_source_112              t_array_source_112;
199490 l_array_source_115              t_array_source_115;
199491 l_array_source_115_meaning      t_array_lookup_meaning;
199492 l_array_source_116              t_array_source_116;
199493 l_array_source_169              t_array_source_169;
199494 l_array_source_170              t_array_source_170;
199495 l_array_source_171              t_array_source_171;
199496 l_array_source_185              t_array_source_185;
199497 l_array_source_185_meaning      t_array_lookup_meaning;
199498 
199499 l_array_source_18      t_array_source_18;
199500 l_array_source_21      t_array_source_21;
199501 l_array_source_21_meaning      t_array_lookup_meaning;
199502 l_array_source_31      t_array_source_31;
199503 l_array_source_33      t_array_source_33;
199504 l_array_source_34      t_array_source_34;
199505 l_array_source_40      t_array_source_40;
199506 l_array_source_41      t_array_source_41;
199507 l_array_source_43      t_array_source_43;
199508 l_array_source_55      t_array_source_55;
199509 l_array_source_68      t_array_source_68;
199510 l_array_source_68_meaning      t_array_lookup_meaning;
199511 l_array_source_74      t_array_source_74;
199512 l_array_source_75      t_array_source_75;
199513 l_array_source_76      t_array_source_76;
199514 l_array_source_79      t_array_source_79;
199515 l_array_source_80      t_array_source_80;
199516 l_array_source_81      t_array_source_81;
199517 l_array_source_82      t_array_source_82;
199518 l_array_source_83      t_array_source_83;
199519 l_array_source_90      t_array_source_90;
199520 l_array_source_90_meaning      t_array_lookup_meaning;
199521 l_array_source_91      t_array_source_91;
199522 l_array_source_96      t_array_source_96;
199523 l_array_source_104      t_array_source_104;
199524 l_array_source_108      t_array_source_108;
199525 l_array_source_109      t_array_source_109;
199526 l_array_source_117      t_array_source_117;
199530 l_array_source_136      t_array_source_136;
199527 l_array_source_130      t_array_source_130;
199528 l_array_source_130_meaning      t_array_lookup_meaning;
199529 l_array_source_131      t_array_source_131;
199531 l_array_source_137      t_array_source_137;
199532 l_array_source_138      t_array_source_138;
199533 l_array_source_148      t_array_source_148;
199534 l_array_source_153      t_array_source_153;
199535 l_array_source_158      t_array_source_158;
199536 l_array_source_158_meaning      t_array_lookup_meaning;
199537 l_array_source_160      t_array_source_160;
199538 l_array_source_160_meaning      t_array_lookup_meaning;
199539 
199540 --
199541 CURSOR header_cur
199542 IS
199543 SELECT /*+ leading(xet) cardinality(xet,1) */
199544 -- Event Class Code: PAYMENTS
199545     xet.entity_id
199546    ,xet.legal_entity_id
199547    ,xet.entity_code
199548    ,xet.transaction_number
199549    ,xet.event_id
199550    ,xet.event_class_code
199551    ,xet.event_type_code
199552    ,xet.event_number
199553    ,xet.event_date
199554    ,xet.transaction_date
199555    ,xet.reference_num_1
199556    ,xet.reference_num_2
199557    ,xet.reference_num_3
199558    ,xet.reference_num_4
199559    ,xet.reference_char_1
199560    ,xet.reference_char_2
199561    ,xet.reference_char_3
199562    ,xet.reference_char_4
199563    ,xet.reference_date_1
199564    ,xet.reference_date_2
199565    ,xet.reference_date_3
199566    ,xet.reference_date_4
199567    ,xet.event_created_by
199568    ,xet.budgetary_control_flag 
199569   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_3
199570   , fvl3.meaning   source_3_meaning
199571   , h2.CGAC_AP_ASSET_CCID    source_5
199572   , h3.FSP_DISC_TAKEN_CCID    source_6
199573   , h3.ASP_DISCOUNT_DIST_METHOD    source_7
199574   , fvl7.meaning   source_7_meaning
199575   , h2.CGAC_FUTURE_DATED_PMT_CCID    source_12
199576   , h3.ASP_FD_PMT_ACCT_SOURCE    source_13
199577   , fvl13.meaning   source_13_meaning
199578   , h3.FSP_FUTURE_DATED_PAYMENT_CCID    source_14
199579   , h2.POS_FDP_CCID    source_15
199580   , h3.ASP_INTEREST_CCID    source_16
199581   , h3.ASP_PRORATE_INT_ACROSS_DISTS    source_17
199582   , h2.CGAC_CASH_CLEARING_CCID    source_23
199583   , h2.CGAC_GAIN_CCID    source_24
199584   , h3.ASP_GAIN_CCID    source_25
199585   , h2.CGAC_LOSS_CCID    source_26
199586   , h3.ASP_LOSS_CCID    source_27
199587   , h3.ASP_DISC_TAKEN_CCID    source_32
199588   , h3.ASP_AUTO_OFFSET_FLAG    source_35
199589   , fvl35.meaning   source_35_meaning
199590   , h2.PAYCARD_ACCRUED_ACCOUNT_CCID    source_36
199591   , h3.ASP_ROUNDING_ERROR_CCID    source_37
199592   , h2.THIRD_PARTY_TYPE    source_71
199593   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_89
199594   , h2.AC_VENDOR_ID    source_102
199595   , h2.AC_VENDOR_SITE_ID    source_103
199596   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_105
199597   , fvl105.meaning   source_105_meaning
199598   , h2.AC_CURRENCY_CODE    source_106
199599   , h2.AC_FUTURE_PAY_DUE_DATE    source_107
199600   , h2.AC_EXCHANGE_DATE    source_110
199601   , h2.AC_EXCHANGE_RATE    source_111
199602   , h2.AC_EXCHANGE_RATE_TYPE    source_112
199603   , h2.PAYMENT_TYPE    source_115
199604   , fvl115.meaning   source_115_meaning
199605   , h2.PAYMENT_PROCESSING_TYPE    source_116
199606   , h2.AC_DOC_CATEGORY_CODE    source_169
199607   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_170
199608   , h2.AC_DOC_SEQUENCE_VALUE    source_171
199609   , h2.TRANSAC_REVERSAL_FLAG    source_185
199610   , fvl185.meaning   source_185_meaning
199611   FROM xla_events_gt     xet 
199612   , AP_PAYMENT_EXTRACT_HEADER_V  h2
199613   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
199614   , fnd_lookup_values    fvl3
199615   , fnd_lookup_values    fvl7
199616   , fnd_lookup_values    fvl13
199617   , fnd_lookup_values    fvl35
199618   , fnd_lookup_values    fvl105
199619   , fnd_lookup_values    fvl115
199620   , fnd_lookup_values    fvl185
199621  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
199622    and xet.event_class_code = C_EVENT_CLASS_CODE
199623    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
199624  AND h3.asp_org_id = h2.ac_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
199625   AND fvl3.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
199626   AND fvl3.view_application_id(+) = 200
199627   AND fvl3.language(+)            = USERENV('LANG')
199628      AND fvl7.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
199629   AND fvl7.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
199630   AND fvl7.view_application_id(+) = 200
199631   AND fvl7.language(+)            = USERENV('LANG')
199632      AND fvl13.lookup_type(+)         = 'FUTURE PAY ACCT SOURCE'
199633   AND fvl13.lookup_code(+)         = h3.ASP_FD_PMT_ACCT_SOURCE
199634   AND fvl13.view_application_id(+) = 200
199635   AND fvl13.language(+)            = USERENV('LANG')
199636      AND fvl35.lookup_type(+)         = 'YES_NO'
199637   AND fvl35.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
199638   AND fvl35.view_application_id(+) = 0
199639   AND fvl35.language(+)            = USERENV('LANG')
199640      AND fvl105.lookup_type(+)         = 'YES_NO'
199641   AND fvl105.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
199642   AND fvl105.view_application_id(+) = 0
199643   AND fvl105.language(+)            = USERENV('LANG')
199644      AND fvl115.lookup_type(+)         = 'PAYMENT TYPE'
199645   AND fvl115.lookup_code(+)         = h2.PAYMENT_TYPE
199646   AND fvl115.view_application_id(+) = 200
199647   AND fvl115.language(+)            = USERENV('LANG')
199648      AND fvl185.lookup_type(+)         = 'YES_NO'
199649   AND fvl185.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
199653  ORDER BY event_id
199650   AND fvl185.view_application_id(+) = 0
199651   AND fvl185.language(+)            = USERENV('LANG')
199652   
199654 ;
199655 
199656 
199657 --
199658 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
199659 IS
199660 SELECT  /*+ leading(xet) cardinality(xet,1) */
199661 -- Event Class Code: PAYMENTS
199662     xet.entity_id
199663    ,xet.legal_entity_id
199664    ,xet.entity_code
199665    ,xet.transaction_number
199666    ,xet.event_id
199667    ,xet.event_class_code
199668    ,xet.event_type_code
199669    ,xet.event_number
199670    ,xet.event_date
199671    ,xet.transaction_date
199672    ,xet.reference_num_1
199673    ,xet.reference_num_2
199674    ,xet.reference_num_3
199675    ,xet.reference_num_4
199676    ,xet.reference_char_1
199677    ,xet.reference_char_2
199678    ,xet.reference_char_3
199679    ,xet.reference_char_4
199680    ,xet.reference_date_1
199681    ,xet.reference_date_2
199682    ,xet.reference_date_3
199683    ,xet.reference_date_4
199684    ,xet.event_created_by
199685    ,xet.budgetary_control_flag
199686  , l1.LINE_NUMBER  
199687   , l1.AID_DIST_CCID    source_18
199688   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_21
199689   , fvl21.meaning   source_21_meaning
199690   , l1.AWT_RELATED_DIST_ACCOUNT    source_31
199691   , l1.POD_CCID    source_33
199692   , l1.PO_VARIANCE_ACCOUNT    source_34
199693   , l4.TAX_ACCOUNT_CCID    source_40
199694   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_41
199695   , l1.DISTRIBUTION_LINK_TYPE    source_43
199696   , l1.AI_INVOICE_CURRENCY_CODE    source_55
199697   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_68
199698   , fvl68.meaning   source_68_meaning
199699   , l4.TAX_LINE_ID    source_74
199700   , l5.REC_NREC_TAX_DIST_ID    source_75
199701   , l4.SUMMARY_TAX_LINE_ID    source_76
199702   , l1.BUS_FLOW_AP_APP_ID    source_79
199703   , l1.BUS_FLOW_INV_DIST_TYPE    source_80
199704   , l1.BUS_FLOW_INV_ENTITY_CODE    source_81
199705   , l1.BUS_FLOW_INV_DIST_ID    source_82
199706   , l1.BUS_FLOW_INV_ID    source_83
199707   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_90
199708   , fvl90.meaning   source_90_meaning
199709   , l1.APHD_AMOUNT    source_91
199710   , l1.APHD_PAYMENT_HIST_DIST_ID    source_96
199711   , l1.APHD_REV_PAY_HIST_DIST_ID    source_104
199712   , l1.APHD_PAYMENT_BASE_AMT    source_108
199713   , l1.APHD_INVOICE_BASE_AMT    source_109
199714   , l1.APHD_INVOICE_DIST_AMOUNT    source_117
199715   , l4.DEF_REC_SETTLEMENT_OPTION_CODE    source_130
199716   , fvl130.meaning   source_130_meaning
199717   , l1.AWT_RELATED_DIST_TYPE    source_131
199718   , l1.INV_EXCHANGE_DATE    source_136
199719   , l1.INV_EXCHANGE_RATE    source_137
199720   , l1.INV_EXCHANGE_RATE_TYPE    source_138
199721   , l1.INV_PMT_BASE_AMT_DIFF    source_148
199722   , l1.INV_PMT_GAIN_LOSS_INDICATOR    source_153
199723   , l1.AI_INVOICE_TYPE_PAID    source_158
199724   , fvl158.meaning   source_158_meaning
199725   , l1.AWT_AT_PMT_TIME    source_160
199726   , fvl160.meaning   source_160_meaning
199727   FROM xla_events_gt     xet 
199728   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
199729   , ZX_AP_DEF_TAX_EXTRACT_V  l4
199730   , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
199731   , fnd_lookup_values    fvl21
199732   , fnd_lookup_values    fvl68
199733   , fnd_lookup_values    fvl90
199734   , fnd_lookup_values    fvl130
199735   , fnd_lookup_values    fvl158
199736   , fnd_lookup_values    fvl160
199737  WHERE xet.event_id between x_first_event_id and x_last_event_id
199738    and xet.event_date between p_pad_start_date and p_pad_end_date
199739    and xet.event_class_code = C_EVENT_CLASS_CODE
199740    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
199741  AND l1.AID_DETAIL_TAX_DIST_ID = l4.REC_NREC_TAX_DIST_ID (+)  AND l1.AID_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+)    AND fvl21.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
199742   AND fvl21.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
199743   AND fvl21.view_application_id(+) = 200
199744   AND fvl21.language(+)            = USERENV('LANG')
199745      AND fvl68.lookup_type(+)         = 'YES_NO'
199746   AND fvl68.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
199747   AND fvl68.view_application_id(+) = 0
199748   AND fvl68.language(+)            = USERENV('LANG')
199749      AND fvl90.lookup_type(+)         = 'PAY_DIST_TYPES'
199750   AND fvl90.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
199751   AND fvl90.view_application_id(+) = 200
199752   AND fvl90.language(+)            = USERENV('LANG')
199753      AND fvl130.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
199754   AND fvl130.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
199755   AND fvl130.view_application_id(+) = 0
199756   AND fvl130.language(+)            = USERENV('LANG')
199757      AND fvl158.lookup_type(+)         = 'INVOICE TYPE'
199758   AND fvl158.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
199759   AND fvl158.view_application_id(+) = 200
199760   AND fvl158.language(+)            = USERENV('LANG')
199761      AND fvl160.lookup_type(+)         = 'YES_NO'
199762   AND fvl160.lookup_code(+)         = l1.AWT_AT_PMT_TIME
199763   AND fvl160.view_application_id(+) = 0
199764   AND fvl160.language(+)            = USERENV('LANG')
199765   ;
199766 
199767 --
199768 BEGIN
199769 IF g_log_enabled THEN
199770    l_log_module := C_DEFAULT_MODULE||'.EventClass_296';
199771 END IF;
199772 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
199773    trace
199774       (p_msg      => 'BEGIN of EventClass_296'
199775       ,p_level    => C_LEVEL_PROCEDURE
199776       ,p_module   => l_log_module);
199777 END IF;
199778 
199779 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
199780    trace
199781       (p_msg      => 'p_application_id = '||p_application_id||
199782                      ' - p_base_ledger_id = '||p_base_ledger_id||
199786                      ' - p_sla_ledger_id = '||p_sla_ledger_id
199783                      ' - p_target_ledger_id  = '||p_target_ledger_id||
199784                      ' - p_language = '||p_language||
199785                      ' - p_currency_code = '||p_currency_code||
199787       ,p_level    => C_LEVEL_STATEMENT
199788       ,p_module   => l_log_module);
199789 END IF;
199790 --
199791 -- initialze arrays
199792 --
199793 g_array_event.DELETE;
199794 l_rec_array_event := l_null_rec_array_event;
199795 --
199796 --------------------------------------
199797 -- 4262811 Initialze MPA Line Number
199798 --------------------------------------
199799 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
199800 
199801 --
199802 
199803 --
199804 OPEN header_cur;
199805 --
199806 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
199807    trace
199808    (p_msg      => 'SQL - FETCH header_cur'
199809    ,p_level    => C_LEVEL_STATEMENT
199810    ,p_module   => l_log_module);
199811 END IF;
199812 --
199813 LOOP
199814 FETCH header_cur BULK COLLECT INTO
199815         l_array_entity_id
199816       , l_array_legal_entity_id
199817       , l_array_entity_code
199818       , l_array_transaction_num
199819       , l_array_event_id
199820       , l_array_class_code
199821       , l_array_event_type
199822       , l_array_event_number
199823       , l_array_event_date
199824       , l_array_transaction_date
199825       , l_array_reference_num_1
199826       , l_array_reference_num_2
199827       , l_array_reference_num_3
199828       , l_array_reference_num_4
199829       , l_array_reference_char_1
199830       , l_array_reference_char_2
199831       , l_array_reference_char_3
199832       , l_array_reference_char_4
199833       , l_array_reference_date_1
199834       , l_array_reference_date_2
199835       , l_array_reference_date_3
199836       , l_array_reference_date_4
199837       , l_array_event_created_by
199838       , l_array_budgetary_control_flag 
199839       , l_array_source_3
199840       , l_array_source_3_meaning
199841       , l_array_source_5
199842       , l_array_source_6
199843       , l_array_source_7
199844       , l_array_source_7_meaning
199845       , l_array_source_12
199846       , l_array_source_13
199847       , l_array_source_13_meaning
199848       , l_array_source_14
199849       , l_array_source_15
199850       , l_array_source_16
199851       , l_array_source_17
199852       , l_array_source_23
199853       , l_array_source_24
199854       , l_array_source_25
199855       , l_array_source_26
199856       , l_array_source_27
199857       , l_array_source_32
199858       , l_array_source_35
199859       , l_array_source_35_meaning
199860       , l_array_source_36
199861       , l_array_source_37
199862       , l_array_source_71
199863       , l_array_source_89
199864       , l_array_source_102
199865       , l_array_source_103
199866       , l_array_source_105
199867       , l_array_source_105_meaning
199868       , l_array_source_106
199869       , l_array_source_107
199870       , l_array_source_110
199871       , l_array_source_111
199872       , l_array_source_112
199873       , l_array_source_115
199874       , l_array_source_115_meaning
199875       , l_array_source_116
199876       , l_array_source_169
199877       , l_array_source_170
199878       , l_array_source_171
199879       , l_array_source_185
199880       , l_array_source_185_meaning
199881       LIMIT l_rows;
199882 --
199883 IF (C_LEVEL_EVENT >= g_log_level) THEN
199884    trace
199885    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
199886    ,p_level    => C_LEVEL_EVENT
199887    ,p_module   => l_log_module);
199888 END IF;
199889 --
199890 EXIT WHEN l_array_entity_id.COUNT = 0;
199891 
199892 -- initialize arrays
199893 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
199894 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
199895 
199896 --
199897 -- Bug 4458708
199898 --
199899 XLA_AE_LINES_PKG.g_LineNumber := 0;
199900 
199901 
199902 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
199903 g_last_hdr_idx := l_array_event_id.LAST;
199904 --
199905 -- loop for the headers. Each iteration is for each header extract row
199906 -- fetched in header cursor
199907 --
199908 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
199909 
199910 --
199911 -- set event info as cache for other routines to refer event attributes
199912 --
199913 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
199914    (p_application_id           => p_application_id
199915    ,p_primary_ledger_id        => p_primary_ledger_id
199916    ,p_base_ledger_id           => p_base_ledger_id
199917    ,p_target_ledger_id         => p_target_ledger_id
199918    ,p_entity_id                => l_array_entity_id(hdr_idx)
199919    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
199920    ,p_entity_code              => l_array_entity_code(hdr_idx)
199921    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
199922    ,p_event_id                 => l_array_event_id(hdr_idx)
199923    ,p_event_class_code         => l_array_class_code(hdr_idx)
199924    ,p_event_type_code          => l_array_event_type(hdr_idx)
199925    ,p_event_number             => l_array_event_number(hdr_idx)
199926    ,p_event_date               => l_array_event_date(hdr_idx)
199927    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
199928    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
199929    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
199930    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
199931    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
199935    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
199932    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
199933    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
199934    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
199936    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
199937    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
199938    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
199939    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
199940    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
199941    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
199942 
199943 --
199944 -- set the status of entry to C_VALID (0)
199945 --
199946 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
199947 
199948 --
199949 -- initialize a row for ae header
199950 --
199951 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
199952 
199953 l_event_id := l_array_event_id(hdr_idx);
199954 
199955 --
199956 -- storing the hdr_idx for event. May be used by line cursor.
199957 --
199958 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
199959 
199960 --
199961 -- store sources from header extract. This can be improved to
199962 -- store only those sources from header extract that may be used in lines
199963 --
199964 
199965 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
199966 g_array_event(l_event_id).array_value_char('source_3_meaning') := l_array_source_3_meaning(hdr_idx);
199967 g_array_event(l_event_id).array_value_num('source_5') := l_array_source_5(hdr_idx);
199968 g_array_event(l_event_id).array_value_num('source_6') := l_array_source_6(hdr_idx);
199969 g_array_event(l_event_id).array_value_char('source_7') := l_array_source_7(hdr_idx);
199970 g_array_event(l_event_id).array_value_char('source_7_meaning') := l_array_source_7_meaning(hdr_idx);
199971 g_array_event(l_event_id).array_value_num('source_12') := l_array_source_12(hdr_idx);
199972 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
199973 g_array_event(l_event_id).array_value_char('source_13_meaning') := l_array_source_13_meaning(hdr_idx);
199974 g_array_event(l_event_id).array_value_num('source_14') := l_array_source_14(hdr_idx);
199975 g_array_event(l_event_id).array_value_num('source_15') := l_array_source_15(hdr_idx);
199976 g_array_event(l_event_id).array_value_num('source_16') := l_array_source_16(hdr_idx);
199977 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
199978 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
199979 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
199980 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
199981 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
199982 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
199983 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
199984 g_array_event(l_event_id).array_value_char('source_35') := l_array_source_35(hdr_idx);
199985 g_array_event(l_event_id).array_value_char('source_35_meaning') := l_array_source_35_meaning(hdr_idx);
199986 g_array_event(l_event_id).array_value_num('source_36') := l_array_source_36(hdr_idx);
199987 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
199988 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
199989 g_array_event(l_event_id).array_value_char('source_89') := l_array_source_89(hdr_idx);
199990 g_array_event(l_event_id).array_value_num('source_102') := l_array_source_102(hdr_idx);
199991 g_array_event(l_event_id).array_value_num('source_103') := l_array_source_103(hdr_idx);
199992 g_array_event(l_event_id).array_value_char('source_105') := l_array_source_105(hdr_idx);
199993 g_array_event(l_event_id).array_value_char('source_105_meaning') := l_array_source_105_meaning(hdr_idx);
199994 g_array_event(l_event_id).array_value_char('source_106') := l_array_source_106(hdr_idx);
199995 g_array_event(l_event_id).array_value_date('source_107') := l_array_source_107(hdr_idx);
199996 g_array_event(l_event_id).array_value_date('source_110') := l_array_source_110(hdr_idx);
199997 g_array_event(l_event_id).array_value_num('source_111') := l_array_source_111(hdr_idx);
199998 g_array_event(l_event_id).array_value_char('source_112') := l_array_source_112(hdr_idx);
199999 g_array_event(l_event_id).array_value_char('source_115') := l_array_source_115(hdr_idx);
200000 g_array_event(l_event_id).array_value_char('source_115_meaning') := l_array_source_115_meaning(hdr_idx);
200001 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
200002 g_array_event(l_event_id).array_value_char('source_169') := l_array_source_169(hdr_idx);
200003 g_array_event(l_event_id).array_value_num('source_170') := l_array_source_170(hdr_idx);
200004 g_array_event(l_event_id).array_value_num('source_171') := l_array_source_171(hdr_idx);
200005 g_array_event(l_event_id).array_value_char('source_185') := l_array_source_185(hdr_idx);
200006 g_array_event(l_event_id).array_value_char('source_185_meaning') := l_array_source_185_meaning(hdr_idx);
200007 
200008 --
200009 -- initilaize the status of ae headers for diffrent balance types
200010 -- the status is initialised to C_NOT_CREATED (2)
200011 --
200012 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
200013 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
200014 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
200015 
200016 --
200017 -- call api to validate and store accounting attributes for header
200018 --
200019 
200020 ------------------------------------------------------------
200021 -- Accrual Reversal : to get date for Standard Source (NONE)
200022 ------------------------------------------------------------
200026       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_169');
200023 l_acc_rev_gl_date_source := NULL;
200024 
200025      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
200027      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
200028       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_170');
200029      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
200030       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_171');
200031      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
200032       l_rec_acct_attrs.array_date_value(4) := 
200033 xla_ae_sources_pkg.GetSystemSourceDate(
200034    p_source_code           => 'XLA_EVENT_DATE'
200035  , p_source_type_code      => 'Y'
200036  , p_source_application_id =>  602
200037 );
200038      l_rec_acct_attrs.array_acct_attr_code(5)   := 'TRX_ACCT_REVERSAL_OPTION';
200039       l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_185');
200040 
200041 
200042 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
200043 
200044 XLA_AE_HEADER_PKG.SetJeCategoryName;
200045 
200046 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
200047 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
200048 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
200049 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
200050 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
200051 
200052 
200053 -- No header level analytical criteria
200054 
200055 --
200056 --accounting attribute enhancement, bug 3612931
200057 --
200058 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_185'), 1,30);
200059 
200060 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
200061    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
200062 
200063    xla_accounting_err_pkg.build_message
200064       (p_appli_s_name            => 'XLA'
200065       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
200066       ,p_token_1                 => 'ACCT_ATTR_NAME'
200067       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
200068       ,p_token_2                 => 'PRODUCT_NAME'
200069       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
200070       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
200071       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
200072       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
200073 
200074 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
200075    --
200076    -- following sets the accounting attributes needed to reverse
200077    -- accounting for a distributeion
200078    --
200079    xla_ae_lines_pkg.SetTrxReversalAttrs
200080       (p_event_id              => l_event_id
200081       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
200082       ,p_trx_reversal_source   => l_trx_reversal_source);
200083 
200084 END IF;
200085 
200086 
200087 ----------------------------------------------------------------
200088 -- 4262811 -  update the header statuses to invalid in need be
200089 ----------------------------------------------------------------
200090 --
200091 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
200092 
200093 
200094   -----------------------------------------------
200095   -- No accrual reversal for the event class/type
200096   -----------------------------------------------
200097 ----------------------------------------------------------------
200098 
200099 --
200100 -- this ends the header loop iteration for one bulk fetch
200101 --
200102 END LOOP;
200103 
200104 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
200105 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
200106 
200107 --
200108 -- insert dummy rows into lines gt table that were created due to
200109 -- transaction reversals
200110 --
200111 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
200112    l_result := XLA_AE_LINES_PKG.InsertLines;
200113 END IF;
200114 
200115 --
200116 -- reset the temp_line_num for each set of events fetched from header
200117 -- cursor rather than doing it for each new event in line cursor
200118 -- Bug 3939231
200119 --
200120 xla_ae_lines_pkg.g_temp_line_num := 0;
200121 
200122 
200123 
200124 --
200125 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
200126 --
200127 --
200128 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
200129 
200130       trace
200131          (p_msg      => 'SQL - FETCH line_cur'
200132          ,p_level    => C_LEVEL_STATEMENT
200133          ,p_module   => l_log_module);
200134 
200135 END IF;
200136 --
200137 --
200138 LOOP
200139   --
200140   FETCH line_cur BULK COLLECT INTO
200141         l_array_entity_id
200142       , l_array_legal_entity_id
200143       , l_array_entity_code
200144       , l_array_transaction_num
200145       , l_array_event_id
200146       , l_array_class_code
200147       , l_array_event_type
200148       , l_array_event_number
200149       , l_array_event_date
200150       , l_array_transaction_date
200151       , l_array_reference_num_1
200152       , l_array_reference_num_2
200153       , l_array_reference_num_3
200154       , l_array_reference_num_4
200155       , l_array_reference_char_1
200156       , l_array_reference_char_2
200160       , l_array_reference_date_2
200157       , l_array_reference_char_3
200158       , l_array_reference_char_4
200159       , l_array_reference_date_1
200161       , l_array_reference_date_3
200162       , l_array_reference_date_4
200163       , l_array_event_created_by
200164       , l_array_budgetary_control_flag
200165       , l_array_extract_line_num 
200166       , l_array_source_18
200167       , l_array_source_21
200168       , l_array_source_21_meaning
200169       , l_array_source_31
200170       , l_array_source_33
200171       , l_array_source_34
200172       , l_array_source_40
200173       , l_array_source_41
200174       , l_array_source_43
200175       , l_array_source_55
200176       , l_array_source_68
200177       , l_array_source_68_meaning
200178       , l_array_source_74
200179       , l_array_source_75
200180       , l_array_source_76
200181       , l_array_source_79
200182       , l_array_source_80
200183       , l_array_source_81
200184       , l_array_source_82
200185       , l_array_source_83
200186       , l_array_source_90
200187       , l_array_source_90_meaning
200188       , l_array_source_91
200189       , l_array_source_96
200190       , l_array_source_104
200191       , l_array_source_108
200192       , l_array_source_109
200193       , l_array_source_117
200194       , l_array_source_130
200195       , l_array_source_130_meaning
200196       , l_array_source_131
200197       , l_array_source_136
200198       , l_array_source_137
200199       , l_array_source_138
200200       , l_array_source_148
200201       , l_array_source_153
200202       , l_array_source_158
200203       , l_array_source_158_meaning
200204       , l_array_source_160
200205       , l_array_source_160_meaning
200206       LIMIT l_rows;
200207 
200208   --
200209   IF (C_LEVEL_EVENT >= g_log_level) THEN
200210             trace
200211                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
200212                ,p_level    => C_LEVEL_EVENT
200213                ,p_module   => l_log_module);
200214   END IF;
200215   --
200216   EXIT WHEN l_array_entity_id.count = 0;
200217 
200218   XLA_AE_LINES_PKG.g_rec_lines := null;
200219 
200220 --
200221 -- Bug 4458708
200222 --
200223 XLA_AE_LINES_PKG.g_LineNumber := 0;
200224 --
200225 --
200226 
200227 FOR Idx IN 1..l_array_event_id.count LOOP
200228    --
200229    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
200230    --
200231    l_event_id := l_array_event_id(idx);  -- 5648433
200232 
200233    --
200234    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
200235    --
200236 
200237    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
200238              (g_array_event(l_event_id).array_value_num('header_index'))
200239          ,'N'
200240          ) <> 'Y'
200241    THEN
200242       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
200243          trace
200244             (p_msg      => 'Trancaction revesal option is not Y '
200245             ,p_level    => C_LEVEL_STATEMENT
200246             ,p_module   => l_log_module);
200247       END IF;
200248 
200249 --
200250 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
200251 --
200252 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
200253 --
200254 -- set event info as cache for other routines to refer event attributes
200255 --
200256 
200257 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
200258    l_previous_event_id := l_event_id;
200259 
200260    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
200261       (p_application_id           => p_application_id
200262       ,p_primary_ledger_id        => p_primary_ledger_id
200263       ,p_base_ledger_id           => p_base_ledger_id
200264       ,p_target_ledger_id         => p_target_ledger_id
200265       ,p_entity_id                => l_array_entity_id(Idx)
200266       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
200267       ,p_entity_code              => l_array_entity_code(Idx)
200268       ,p_transaction_num          => l_array_transaction_num(Idx)
200269       ,p_event_id                 => l_array_event_id(Idx)
200270       ,p_event_class_code         => l_array_class_code(Idx)
200271       ,p_event_type_code          => l_array_event_type(Idx)
200272       ,p_event_number             => l_array_event_number(Idx)
200273       ,p_event_date               => l_array_event_date(Idx)
200274       ,p_transaction_date         => l_array_transaction_date(Idx)
200275       ,p_reference_num_1          => l_array_reference_num_1(Idx)
200276       ,p_reference_num_2          => l_array_reference_num_2(Idx)
200277       ,p_reference_num_3          => l_array_reference_num_3(Idx)
200278       ,p_reference_num_4          => l_array_reference_num_4(Idx)
200279       ,p_reference_char_1         => l_array_reference_char_1(Idx)
200280       ,p_reference_char_2         => l_array_reference_char_2(Idx)
200281       ,p_reference_char_3         => l_array_reference_char_3(Idx)
200282       ,p_reference_char_4         => l_array_reference_char_4(Idx)
200283       ,p_reference_date_1         => l_array_reference_date_1(Idx)
200284       ,p_reference_date_2         => l_array_reference_date_2(Idx)
200285       ,p_reference_date_3         => l_array_reference_date_3(Idx)
200286       ,p_reference_date_4         => l_array_reference_date_4(Idx)
200287       ,p_event_created_by         => l_array_event_created_by(Idx)
200288       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
200289        --
200290 END IF;
200291 
200292 
200293 
200294 --
200298 
200295 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
200296 
200297 l_acct_reversal_source := SUBSTR(l_array_source_41(Idx), 1,30);
200299 IF l_continue_with_lines THEN
200300    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
200301       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
200302 
200303       xla_accounting_err_pkg.build_message
200304          (p_appli_s_name            => 'XLA'
200305          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
200306          ,p_token_1                 => 'LINE_NUMBER'
200307          ,p_value_1                 => l_array_extract_line_num(Idx)
200308          ,p_token_2                 => 'PRODUCT_NAME'
200309          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
200310          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
200311          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
200312          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
200313 
200314    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
200315       --
200316       -- following sets the accounting attributes needed to reverse
200317       -- accounting for a distributeion
200318       --
200319 
200320       --
200321       -- 5217187
200322       --
200323       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
200324       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
200325                                        g_array_event(l_event_id).array_value_num('header_index'));
200326       --
200327       --
200328 
200329       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
200330       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_41(Idx);
200331       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
200332       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_96(Idx);
200333       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
200334       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_43(Idx);
200335       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
200336       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_71');
200337       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
200338       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_104(Idx);
200339       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
200340       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_43(Idx);
200341       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
200342       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_74(Idx);
200343       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
200344       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_75(Idx);
200345       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
200346       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_76(Idx);
200347 
200348 
200349       xla_ae_lines_pkg.SetAcctReversalAttrs
200350          (p_event_id             => l_event_id
200351          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
200352          ,p_calculate_acctd_flag => l_calculate_acctd_flag
200353          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
200354    END IF;
200355 
200356    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
200357        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
200358 
200359 --
200360 AcctLineType_73 (
200361  p_application_id  => p_application_id
200362  ,p_event_id     => l_event_id
200363  ,p_calculate_acctd_flag => l_calculate_acctd_flag
200364  ,p_calculate_g_l_flag => l_calculate_g_l_flag
200365  ,p_actual_flag => l_actual_flag
200366  ,p_balance_type_code => l_balance_type_code
200367  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
200368  
200369  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
200370  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
200371  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
200372  , p_source_41 => l_array_source_41(Idx)
200373  , p_source_43 => l_array_source_43(Idx)
200374  , p_source_68 => l_array_source_68(Idx)
200375  , p_source_68_meaning => l_array_source_68_meaning(Idx)
200376  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
200377  , p_source_74 => l_array_source_74(Idx)
200378  , p_source_75 => l_array_source_75(Idx)
200379  , p_source_76 => l_array_source_76(Idx)
200380  , p_source_79 => l_array_source_79(Idx)
200381  , p_source_80 => l_array_source_80(Idx)
200382  , p_source_81 => l_array_source_81(Idx)
200383  , p_source_82 => l_array_source_82(Idx)
200384  , p_source_83 => l_array_source_83(Idx)
200385  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
200386  , p_source_90 => l_array_source_90(Idx)
200387  , p_source_90_meaning => l_array_source_90_meaning(Idx)
200388  , p_source_91 => l_array_source_91(Idx)
200389  , p_source_96 => l_array_source_96(Idx)
200390  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
200391  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
200392  , p_source_104 => l_array_source_104(Idx)
200393  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
200394  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
200395  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
200396  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
200397  , p_source_108 => l_array_source_108(Idx)
200398  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
200399  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
200403  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
200400  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
200401  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
200402  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
200404  , p_source_117 => l_array_source_117(Idx)
200405  );
200406 If(l_balance_type_code = 'A') THEN
200407   l_actual_gain_loss_ref := l_gain_or_loss_ref;
200408 END IF;
200409 
200410 --
200411 
200412 
200413 --
200414 AcctLineType_74 (
200415  p_application_id  => p_application_id
200416  ,p_event_id     => l_event_id
200417  ,p_calculate_acctd_flag => l_calculate_acctd_flag
200418  ,p_calculate_g_l_flag => l_calculate_g_l_flag
200419  ,p_actual_flag => l_actual_flag
200420  ,p_balance_type_code => l_balance_type_code
200421  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
200422  
200423  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
200424  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
200425  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
200426  , p_source_41 => l_array_source_41(Idx)
200427  , p_source_43 => l_array_source_43(Idx)
200428  , p_source_68 => l_array_source_68(Idx)
200429  , p_source_68_meaning => l_array_source_68_meaning(Idx)
200430  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
200431  , p_source_74 => l_array_source_74(Idx)
200432  , p_source_75 => l_array_source_75(Idx)
200433  , p_source_76 => l_array_source_76(Idx)
200434  , p_source_79 => l_array_source_79(Idx)
200435  , p_source_80 => l_array_source_80(Idx)
200436  , p_source_81 => l_array_source_81(Idx)
200437  , p_source_82 => l_array_source_82(Idx)
200438  , p_source_83 => l_array_source_83(Idx)
200439  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
200440  , p_source_90 => l_array_source_90(Idx)
200441  , p_source_90_meaning => l_array_source_90_meaning(Idx)
200442  , p_source_91 => l_array_source_91(Idx)
200443  , p_source_96 => l_array_source_96(Idx)
200444  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
200445  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
200446  , p_source_104 => l_array_source_104(Idx)
200447  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
200448  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
200449  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
200450  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
200451  , p_source_108 => l_array_source_108(Idx)
200452  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
200453  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
200454  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
200455  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
200456  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
200457  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
200458  , p_source_117 => l_array_source_117(Idx)
200459  );
200460 If(l_balance_type_code = 'A') THEN
200461   l_actual_gain_loss_ref := l_gain_or_loss_ref;
200462 END IF;
200463 
200464 --
200465 
200466 
200467 --
200468 AcctLineType_75 (
200469  p_application_id  => p_application_id
200470  ,p_event_id     => l_event_id
200471  ,p_calculate_acctd_flag => l_calculate_acctd_flag
200472  ,p_calculate_g_l_flag => l_calculate_g_l_flag
200473  ,p_actual_flag => l_actual_flag
200474  ,p_balance_type_code => l_balance_type_code
200475  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
200476  
200477  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
200478  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
200479  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
200480  , p_source_41 => l_array_source_41(Idx)
200481  , p_source_43 => l_array_source_43(Idx)
200482  , p_source_68 => l_array_source_68(Idx)
200483  , p_source_68_meaning => l_array_source_68_meaning(Idx)
200484  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
200485  , p_source_74 => l_array_source_74(Idx)
200486  , p_source_75 => l_array_source_75(Idx)
200487  , p_source_76 => l_array_source_76(Idx)
200488  , p_source_79 => l_array_source_79(Idx)
200489  , p_source_80 => l_array_source_80(Idx)
200490  , p_source_81 => l_array_source_81(Idx)
200491  , p_source_82 => l_array_source_82(Idx)
200492  , p_source_83 => l_array_source_83(Idx)
200493  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
200494  , p_source_90 => l_array_source_90(Idx)
200495  , p_source_90_meaning => l_array_source_90_meaning(Idx)
200496  , p_source_91 => l_array_source_91(Idx)
200497  , p_source_96 => l_array_source_96(Idx)
200498  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
200499  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
200500  , p_source_104 => l_array_source_104(Idx)
200501  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
200502  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
200503  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
200504  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
200505  , p_source_108 => l_array_source_108(Idx)
200506  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
200507  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
200508  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
200509  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
200510  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
200514 If(l_balance_type_code = 'A') THEN
200511  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
200512  , p_source_117 => l_array_source_117(Idx)
200513  );
200515   l_actual_gain_loss_ref := l_gain_or_loss_ref;
200516 END IF;
200517 
200518 --
200519 
200520 
200521 --
200522 AcctLineType_76 (
200523  p_application_id  => p_application_id
200524  ,p_event_id     => l_event_id
200525  ,p_calculate_acctd_flag => l_calculate_acctd_flag
200526  ,p_calculate_g_l_flag => l_calculate_g_l_flag
200527  ,p_actual_flag => l_actual_flag
200528  ,p_balance_type_code => l_balance_type_code
200529  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
200530  
200531  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
200532  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
200533  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
200534  , p_source_41 => l_array_source_41(Idx)
200535  , p_source_43 => l_array_source_43(Idx)
200536  , p_source_68 => l_array_source_68(Idx)
200537  , p_source_68_meaning => l_array_source_68_meaning(Idx)
200538  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
200539  , p_source_74 => l_array_source_74(Idx)
200540  , p_source_75 => l_array_source_75(Idx)
200541  , p_source_76 => l_array_source_76(Idx)
200542  , p_source_79 => l_array_source_79(Idx)
200543  , p_source_80 => l_array_source_80(Idx)
200544  , p_source_81 => l_array_source_81(Idx)
200545  , p_source_82 => l_array_source_82(Idx)
200546  , p_source_83 => l_array_source_83(Idx)
200547  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
200548  , p_source_90 => l_array_source_90(Idx)
200549  , p_source_90_meaning => l_array_source_90_meaning(Idx)
200550  , p_source_91 => l_array_source_91(Idx)
200551  , p_source_96 => l_array_source_96(Idx)
200552  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
200553  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
200554  , p_source_104 => l_array_source_104(Idx)
200555  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
200556  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
200557  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
200558  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
200559  , p_source_109 => l_array_source_109(Idx)
200560  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
200561  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
200562  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
200563  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
200564  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
200565  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
200566  , p_source_117 => l_array_source_117(Idx)
200567  );
200568 If(l_balance_type_code = 'A') THEN
200569   l_actual_gain_loss_ref := l_gain_or_loss_ref;
200570 END IF;
200571 
200572 --
200573 
200574 
200575 --
200576 AcctLineType_77 (
200577  p_application_id  => p_application_id
200578  ,p_event_id     => l_event_id
200579  ,p_calculate_acctd_flag => l_calculate_acctd_flag
200580  ,p_calculate_g_l_flag => l_calculate_g_l_flag
200581  ,p_actual_flag => l_actual_flag
200582  ,p_balance_type_code => l_balance_type_code
200583  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
200584  
200585  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
200586  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
200587  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
200588  , p_source_41 => l_array_source_41(Idx)
200589  , p_source_43 => l_array_source_43(Idx)
200590  , p_source_68 => l_array_source_68(Idx)
200591  , p_source_68_meaning => l_array_source_68_meaning(Idx)
200592  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
200593  , p_source_74 => l_array_source_74(Idx)
200594  , p_source_75 => l_array_source_75(Idx)
200595  , p_source_76 => l_array_source_76(Idx)
200596  , p_source_79 => l_array_source_79(Idx)
200597  , p_source_80 => l_array_source_80(Idx)
200598  , p_source_81 => l_array_source_81(Idx)
200599  , p_source_82 => l_array_source_82(Idx)
200600  , p_source_83 => l_array_source_83(Idx)
200601  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
200602  , p_source_90 => l_array_source_90(Idx)
200603  , p_source_90_meaning => l_array_source_90_meaning(Idx)
200604  , p_source_91 => l_array_source_91(Idx)
200605  , p_source_96 => l_array_source_96(Idx)
200606  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
200607  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
200608  , p_source_104 => l_array_source_104(Idx)
200609  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
200610  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
200611  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
200612  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
200613  , p_source_109 => l_array_source_109(Idx)
200614  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
200615  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
200616  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
200617  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
200618  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
200619  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
200620  , p_source_117 => l_array_source_117(Idx)
200621  );
200622 If(l_balance_type_code = 'A') THEN
200623   l_actual_gain_loss_ref := l_gain_or_loss_ref;
200624 END IF;
200625 
200626 --
200630 AcctLineType_78 (
200627 
200628 
200629 --
200631  p_application_id  => p_application_id
200632  ,p_event_id     => l_event_id
200633  ,p_calculate_acctd_flag => l_calculate_acctd_flag
200634  ,p_calculate_g_l_flag => l_calculate_g_l_flag
200635  ,p_actual_flag => l_actual_flag
200636  ,p_balance_type_code => l_balance_type_code
200637  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
200638  
200639  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
200640  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
200641  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
200642  , p_source_41 => l_array_source_41(Idx)
200643  , p_source_43 => l_array_source_43(Idx)
200644  , p_source_68 => l_array_source_68(Idx)
200645  , p_source_68_meaning => l_array_source_68_meaning(Idx)
200646  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
200647  , p_source_74 => l_array_source_74(Idx)
200648  , p_source_75 => l_array_source_75(Idx)
200649  , p_source_76 => l_array_source_76(Idx)
200650  , p_source_79 => l_array_source_79(Idx)
200651  , p_source_80 => l_array_source_80(Idx)
200652  , p_source_81 => l_array_source_81(Idx)
200653  , p_source_82 => l_array_source_82(Idx)
200654  , p_source_83 => l_array_source_83(Idx)
200655  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
200656  , p_source_90 => l_array_source_90(Idx)
200657  , p_source_90_meaning => l_array_source_90_meaning(Idx)
200658  , p_source_91 => l_array_source_91(Idx)
200659  , p_source_96 => l_array_source_96(Idx)
200660  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
200661  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
200662  , p_source_104 => l_array_source_104(Idx)
200663  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
200664  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
200665  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
200666  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
200667  , p_source_109 => l_array_source_109(Idx)
200668  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
200669  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
200670  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
200671  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
200672  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
200673  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
200674  , p_source_117 => l_array_source_117(Idx)
200675  );
200676 If(l_balance_type_code = 'A') THEN
200677   l_actual_gain_loss_ref := l_gain_or_loss_ref;
200678 END IF;
200679 
200680 --
200681 
200682 
200683 --
200684 AcctLineType_89 (
200685  p_application_id  => p_application_id
200686  ,p_event_id     => l_event_id
200687  ,p_calculate_acctd_flag => l_calculate_acctd_flag
200688  ,p_calculate_g_l_flag => l_calculate_g_l_flag
200689  ,p_actual_flag => l_actual_flag
200690  ,p_balance_type_code => l_balance_type_code
200691  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
200692  
200693  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
200694  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
200695  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
200696  , p_source_41 => l_array_source_41(Idx)
200697  , p_source_43 => l_array_source_43(Idx)
200698  , p_source_68 => l_array_source_68(Idx)
200699  , p_source_68_meaning => l_array_source_68_meaning(Idx)
200700  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
200701  , p_source_74 => l_array_source_74(Idx)
200702  , p_source_75 => l_array_source_75(Idx)
200703  , p_source_76 => l_array_source_76(Idx)
200704  , p_source_79 => l_array_source_79(Idx)
200705  , p_source_80 => l_array_source_80(Idx)
200706  , p_source_81 => l_array_source_81(Idx)
200707  , p_source_82 => l_array_source_82(Idx)
200708  , p_source_83 => l_array_source_83(Idx)
200709  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
200710  , p_source_90 => l_array_source_90(Idx)
200711  , p_source_90_meaning => l_array_source_90_meaning(Idx)
200712  , p_source_91 => l_array_source_91(Idx)
200713  , p_source_96 => l_array_source_96(Idx)
200714  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
200715  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
200716  , p_source_104 => l_array_source_104(Idx)
200717  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
200718  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
200719  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
200720  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
200721  , p_source_108 => l_array_source_108(Idx)
200722  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
200723  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
200724  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
200725  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
200726  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
200727  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
200728  , p_source_117 => l_array_source_117(Idx)
200729  );
200730 If(l_balance_type_code = 'A') THEN
200731   l_actual_gain_loss_ref := l_gain_or_loss_ref;
200732 END IF;
200733 
200734 --
200735 
200736 
200737 --
200738 AcctLineType_90 (
200739  p_application_id  => p_application_id
200740  ,p_event_id     => l_event_id
200741  ,p_calculate_acctd_flag => l_calculate_acctd_flag
200742  ,p_calculate_g_l_flag => l_calculate_g_l_flag
200746  
200743  ,p_actual_flag => l_actual_flag
200744  ,p_balance_type_code => l_balance_type_code
200745  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
200747  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
200748  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
200749  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
200750  , p_source_41 => l_array_source_41(Idx)
200751  , p_source_43 => l_array_source_43(Idx)
200752  , p_source_68 => l_array_source_68(Idx)
200753  , p_source_68_meaning => l_array_source_68_meaning(Idx)
200754  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
200755  , p_source_74 => l_array_source_74(Idx)
200756  , p_source_75 => l_array_source_75(Idx)
200757  , p_source_76 => l_array_source_76(Idx)
200758  , p_source_79 => l_array_source_79(Idx)
200759  , p_source_80 => l_array_source_80(Idx)
200760  , p_source_81 => l_array_source_81(Idx)
200761  , p_source_82 => l_array_source_82(Idx)
200762  , p_source_83 => l_array_source_83(Idx)
200763  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
200764  , p_source_90 => l_array_source_90(Idx)
200765  , p_source_90_meaning => l_array_source_90_meaning(Idx)
200766  , p_source_91 => l_array_source_91(Idx)
200767  , p_source_96 => l_array_source_96(Idx)
200768  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
200769  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
200770  , p_source_104 => l_array_source_104(Idx)
200771  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
200772  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
200773  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
200774  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
200775  , p_source_108 => l_array_source_108(Idx)
200776  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
200777  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
200778  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
200779  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
200780  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
200781  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
200782  , p_source_117 => l_array_source_117(Idx)
200783  );
200784 If(l_balance_type_code = 'A') THEN
200785   l_actual_gain_loss_ref := l_gain_or_loss_ref;
200786 END IF;
200787 
200788 --
200789 
200790 
200791 --
200792 AcctLineType_91 (
200793  p_application_id  => p_application_id
200794  ,p_event_id     => l_event_id
200795  ,p_calculate_acctd_flag => l_calculate_acctd_flag
200796  ,p_calculate_g_l_flag => l_calculate_g_l_flag
200797  ,p_actual_flag => l_actual_flag
200798  ,p_balance_type_code => l_balance_type_code
200799  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
200800  
200801  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
200802  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
200803  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
200804  , p_source_41 => l_array_source_41(Idx)
200805  , p_source_43 => l_array_source_43(Idx)
200806  , p_source_68 => l_array_source_68(Idx)
200807  , p_source_68_meaning => l_array_source_68_meaning(Idx)
200808  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
200809  , p_source_74 => l_array_source_74(Idx)
200810  , p_source_75 => l_array_source_75(Idx)
200811  , p_source_76 => l_array_source_76(Idx)
200812  , p_source_79 => l_array_source_79(Idx)
200813  , p_source_80 => l_array_source_80(Idx)
200814  , p_source_81 => l_array_source_81(Idx)
200815  , p_source_82 => l_array_source_82(Idx)
200816  , p_source_83 => l_array_source_83(Idx)
200817  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
200818  , p_source_90 => l_array_source_90(Idx)
200819  , p_source_90_meaning => l_array_source_90_meaning(Idx)
200820  , p_source_91 => l_array_source_91(Idx)
200821  , p_source_96 => l_array_source_96(Idx)
200822  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
200823  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
200824  , p_source_104 => l_array_source_104(Idx)
200825  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
200826  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
200827  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
200828  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
200829  , p_source_108 => l_array_source_108(Idx)
200830  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
200831  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
200832  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
200833  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
200834  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
200835  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
200836  , p_source_117 => l_array_source_117(Idx)
200837  );
200838 If(l_balance_type_code = 'A') THEN
200839   l_actual_gain_loss_ref := l_gain_or_loss_ref;
200840 END IF;
200841 
200842 --
200843 
200844 
200845 --
200846 AcctLineType_102 (
200847  p_application_id  => p_application_id
200848  ,p_event_id     => l_event_id
200849  ,p_calculate_acctd_flag => l_calculate_acctd_flag
200850  ,p_calculate_g_l_flag => l_calculate_g_l_flag
200851  ,p_actual_flag => l_actual_flag
200852  ,p_balance_type_code => l_balance_type_code
200853  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
200854  
200855  , p_source_21 => l_array_source_21(Idx)
200856  , p_source_21_meaning => l_array_source_21_meaning(Idx)
200860  , p_source_68_meaning => l_array_source_68_meaning(Idx)
200857  , p_source_41 => l_array_source_41(Idx)
200858  , p_source_43 => l_array_source_43(Idx)
200859  , p_source_68 => l_array_source_68(Idx)
200861  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
200862  , p_source_74 => l_array_source_74(Idx)
200863  , p_source_75 => l_array_source_75(Idx)
200864  , p_source_76 => l_array_source_76(Idx)
200865  , p_source_79 => l_array_source_79(Idx)
200866  , p_source_80 => l_array_source_80(Idx)
200867  , p_source_81 => l_array_source_81(Idx)
200868  , p_source_82 => l_array_source_82(Idx)
200869  , p_source_83 => l_array_source_83(Idx)
200870  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
200871  , p_source_90 => l_array_source_90(Idx)
200872  , p_source_90_meaning => l_array_source_90_meaning(Idx)
200873  , p_source_91 => l_array_source_91(Idx)
200874  , p_source_96 => l_array_source_96(Idx)
200875  , p_source_104 => l_array_source_104(Idx)
200876  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
200877  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
200878  , p_source_109 => l_array_source_109(Idx)
200879  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
200880  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
200881  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
200882  , p_source_117 => l_array_source_117(Idx)
200883  , p_source_130 => l_array_source_130(Idx)
200884  , p_source_130_meaning => l_array_source_130_meaning(Idx)
200885  , p_source_131 => l_array_source_131(Idx)
200886  );
200887 If(l_balance_type_code = 'A') THEN
200888   l_actual_gain_loss_ref := l_gain_or_loss_ref;
200889 END IF;
200890 
200891 --
200892 
200893 
200894 --
200895 AcctLineType_106 (
200896  p_application_id  => p_application_id
200897  ,p_event_id     => l_event_id
200898  ,p_calculate_acctd_flag => l_calculate_acctd_flag
200899  ,p_calculate_g_l_flag => l_calculate_g_l_flag
200900  ,p_actual_flag => l_actual_flag
200901  ,p_balance_type_code => l_balance_type_code
200902  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
200903  
200904  , p_source_21 => l_array_source_21(Idx)
200905  , p_source_21_meaning => l_array_source_21_meaning(Idx)
200906  , p_source_40 => l_array_source_40(Idx)
200907  , p_source_41 => l_array_source_41(Idx)
200908  , p_source_43 => l_array_source_43(Idx)
200909  , p_source_68 => l_array_source_68(Idx)
200910  , p_source_68_meaning => l_array_source_68_meaning(Idx)
200911  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
200912  , p_source_74 => l_array_source_74(Idx)
200913  , p_source_75 => l_array_source_75(Idx)
200914  , p_source_76 => l_array_source_76(Idx)
200915  , p_source_79 => l_array_source_79(Idx)
200916  , p_source_80 => l_array_source_80(Idx)
200917  , p_source_81 => l_array_source_81(Idx)
200918  , p_source_82 => l_array_source_82(Idx)
200919  , p_source_83 => l_array_source_83(Idx)
200920  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
200921  , p_source_90 => l_array_source_90(Idx)
200922  , p_source_90_meaning => l_array_source_90_meaning(Idx)
200923  , p_source_91 => l_array_source_91(Idx)
200924  , p_source_96 => l_array_source_96(Idx)
200925  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
200926  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
200927  , p_source_104 => l_array_source_104(Idx)
200928  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
200929  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
200930  , p_source_109 => l_array_source_109(Idx)
200931  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
200932  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
200933  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
200934  , p_source_117 => l_array_source_117(Idx)
200935  , p_source_130 => l_array_source_130(Idx)
200936  , p_source_130_meaning => l_array_source_130_meaning(Idx)
200937  , p_source_131 => l_array_source_131(Idx)
200938  , p_source_136 => l_array_source_136(Idx)
200939  , p_source_137 => l_array_source_137(Idx)
200940  , p_source_138 => l_array_source_138(Idx)
200941  );
200942 If(l_balance_type_code = 'A') THEN
200943   l_actual_gain_loss_ref := l_gain_or_loss_ref;
200944 END IF;
200945 
200946 --
200947 
200948 
200949 --
200950 AcctLineType_109 (
200951  p_application_id  => p_application_id
200952  ,p_event_id     => l_event_id
200953  ,p_calculate_acctd_flag => l_calculate_acctd_flag
200954  ,p_calculate_g_l_flag => l_calculate_g_l_flag
200955  ,p_actual_flag => l_actual_flag
200956  ,p_balance_type_code => l_balance_type_code
200957  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
200958  
200959  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
200960  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
200961  , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
200962  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
200963  , p_source_7_meaning => g_array_event(l_event_id).array_value_char('source_7_meaning')
200964  , p_source_18 => l_array_source_18(Idx)
200965  , p_source_21 => l_array_source_21(Idx)
200966  , p_source_21_meaning => l_array_source_21_meaning(Idx)
200967  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
200968  , p_source_33 => l_array_source_33(Idx)
200969  , p_source_34 => l_array_source_34(Idx)
200970  , p_source_41 => l_array_source_41(Idx)
200971  , p_source_43 => l_array_source_43(Idx)
200972  , p_source_68 => l_array_source_68(Idx)
200973  , p_source_68_meaning => l_array_source_68_meaning(Idx)
200974  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
200975  , p_source_74 => l_array_source_74(Idx)
200979  , p_source_80 => l_array_source_80(Idx)
200976  , p_source_75 => l_array_source_75(Idx)
200977  , p_source_76 => l_array_source_76(Idx)
200978  , p_source_79 => l_array_source_79(Idx)
200980  , p_source_81 => l_array_source_81(Idx)
200981  , p_source_82 => l_array_source_82(Idx)
200982  , p_source_83 => l_array_source_83(Idx)
200983  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
200984  , p_source_90 => l_array_source_90(Idx)
200985  , p_source_90_meaning => l_array_source_90_meaning(Idx)
200986  , p_source_91 => l_array_source_91(Idx)
200987  , p_source_96 => l_array_source_96(Idx)
200988  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
200989  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
200990  , p_source_104 => l_array_source_104(Idx)
200991  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
200992  , p_source_108 => l_array_source_108(Idx)
200993  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
200994  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
200995  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
200996  , p_source_117 => l_array_source_117(Idx)
200997  , p_source_136 => l_array_source_136(Idx)
200998  , p_source_137 => l_array_source_137(Idx)
200999  , p_source_138 => l_array_source_138(Idx)
201000  );
201001 If(l_balance_type_code = 'A') THEN
201002   l_actual_gain_loss_ref := l_gain_or_loss_ref;
201003 END IF;
201004 
201005 --
201006 
201007 
201008 --
201009 AcctLineType_121 (
201010  p_application_id  => p_application_id
201011  ,p_event_id     => l_event_id
201012  ,p_calculate_acctd_flag => l_calculate_acctd_flag
201013  ,p_calculate_g_l_flag => l_calculate_g_l_flag
201014  ,p_actual_flag => l_actual_flag
201015  ,p_balance_type_code => l_balance_type_code
201016  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
201017  
201018  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
201019  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
201020  , p_source_18 => l_array_source_18(Idx)
201021  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
201022  , p_source_41 => l_array_source_41(Idx)
201023  , p_source_43 => l_array_source_43(Idx)
201024  , p_source_55 => l_array_source_55(Idx)
201025  , p_source_68 => l_array_source_68(Idx)
201026  , p_source_68_meaning => l_array_source_68_meaning(Idx)
201027  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
201028  , p_source_74 => l_array_source_74(Idx)
201029  , p_source_75 => l_array_source_75(Idx)
201030  , p_source_76 => l_array_source_76(Idx)
201031  , p_source_79 => l_array_source_79(Idx)
201032  , p_source_80 => l_array_source_80(Idx)
201033  , p_source_81 => l_array_source_81(Idx)
201034  , p_source_82 => l_array_source_82(Idx)
201035  , p_source_83 => l_array_source_83(Idx)
201036  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
201037  , p_source_90 => l_array_source_90(Idx)
201038  , p_source_90_meaning => l_array_source_90_meaning(Idx)
201039  , p_source_91 => l_array_source_91(Idx)
201040  , p_source_96 => l_array_source_96(Idx)
201041  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
201042  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
201043  , p_source_104 => l_array_source_104(Idx)
201044  , p_source_109 => l_array_source_109(Idx)
201045  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
201046  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
201047  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
201048  , p_source_117 => l_array_source_117(Idx)
201049  , p_source_136 => l_array_source_136(Idx)
201050  , p_source_137 => l_array_source_137(Idx)
201051  , p_source_138 => l_array_source_138(Idx)
201052  );
201053 If(l_balance_type_code = 'A') THEN
201054   l_actual_gain_loss_ref := l_gain_or_loss_ref;
201055 END IF;
201056 
201057 --
201058 
201059 
201060 --
201061 AcctLineType_132 (
201062  p_application_id  => p_application_id
201063  ,p_event_id     => l_event_id
201064  ,p_calculate_acctd_flag => l_calculate_acctd_flag
201065  ,p_calculate_g_l_flag => l_calculate_g_l_flag
201066  ,p_actual_flag => l_actual_flag
201067  ,p_balance_type_code => l_balance_type_code
201068  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
201069  
201070  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
201071  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
201072  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
201073  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
201074  , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
201075  , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
201076  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
201077  , p_source_18 => l_array_source_18(Idx)
201078  , p_source_41 => l_array_source_41(Idx)
201079  , p_source_43 => l_array_source_43(Idx)
201080  , p_source_68 => l_array_source_68(Idx)
201081  , p_source_68_meaning => l_array_source_68_meaning(Idx)
201082  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
201083  , p_source_74 => l_array_source_74(Idx)
201084  , p_source_75 => l_array_source_75(Idx)
201085  , p_source_76 => l_array_source_76(Idx)
201086  , p_source_79 => l_array_source_79(Idx)
201087  , p_source_80 => l_array_source_80(Idx)
201088  , p_source_81 => l_array_source_81(Idx)
201089  , p_source_82 => l_array_source_82(Idx)
201090  , p_source_83 => l_array_source_83(Idx)
201091  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
201092  , p_source_90 => l_array_source_90(Idx)
201093  , p_source_90_meaning => l_array_source_90_meaning(Idx)
201097  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
201094  , p_source_91 => l_array_source_91(Idx)
201095  , p_source_96 => l_array_source_96(Idx)
201096  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
201098  , p_source_104 => l_array_source_104(Idx)
201099  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
201100  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
201101  , p_source_108 => l_array_source_108(Idx)
201102  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
201103  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
201104  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
201105  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
201106  , p_source_117 => l_array_source_117(Idx)
201107  );
201108 If(l_balance_type_code = 'A') THEN
201109   l_actual_gain_loss_ref := l_gain_or_loss_ref;
201110 END IF;
201111 
201112 --
201113 
201114 
201115 --
201116 AcctLineType_133 (
201117  p_application_id  => p_application_id
201118  ,p_event_id     => l_event_id
201119  ,p_calculate_acctd_flag => l_calculate_acctd_flag
201120  ,p_calculate_g_l_flag => l_calculate_g_l_flag
201121  ,p_actual_flag => l_actual_flag
201122  ,p_balance_type_code => l_balance_type_code
201123  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
201124  
201125  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
201126  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
201127  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
201128  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
201129  , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
201130  , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
201131  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
201132  , p_source_18 => l_array_source_18(Idx)
201133  , p_source_41 => l_array_source_41(Idx)
201134  , p_source_43 => l_array_source_43(Idx)
201135  , p_source_68 => l_array_source_68(Idx)
201136  , p_source_68_meaning => l_array_source_68_meaning(Idx)
201137  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
201138  , p_source_74 => l_array_source_74(Idx)
201139  , p_source_75 => l_array_source_75(Idx)
201140  , p_source_76 => l_array_source_76(Idx)
201141  , p_source_79 => l_array_source_79(Idx)
201142  , p_source_80 => l_array_source_80(Idx)
201143  , p_source_81 => l_array_source_81(Idx)
201144  , p_source_82 => l_array_source_82(Idx)
201145  , p_source_83 => l_array_source_83(Idx)
201146  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
201147  , p_source_90 => l_array_source_90(Idx)
201148  , p_source_90_meaning => l_array_source_90_meaning(Idx)
201149  , p_source_91 => l_array_source_91(Idx)
201150  , p_source_96 => l_array_source_96(Idx)
201151  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
201152  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
201153  , p_source_104 => l_array_source_104(Idx)
201154  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
201155  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
201156  , p_source_109 => l_array_source_109(Idx)
201157  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
201158  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
201159  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
201160  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
201161  , p_source_117 => l_array_source_117(Idx)
201162  );
201163 If(l_balance_type_code = 'A') THEN
201164   l_actual_gain_loss_ref := l_gain_or_loss_ref;
201165 END IF;
201166 
201167 --
201168 
201169 
201170 --
201171 AcctLineType_138 (
201172  p_application_id  => p_application_id
201173  ,p_event_id     => l_event_id
201174  ,p_calculate_acctd_flag => l_calculate_acctd_flag
201175  ,p_calculate_g_l_flag => l_calculate_g_l_flag
201176  ,p_actual_flag => l_actual_flag
201177  ,p_balance_type_code => l_balance_type_code
201178  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
201179  
201180  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
201181  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
201182  , p_source_18 => l_array_source_18(Idx)
201183  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
201184  , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
201185  , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
201186  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
201187  , p_source_41 => l_array_source_41(Idx)
201188  , p_source_43 => l_array_source_43(Idx)
201189  , p_source_68 => l_array_source_68(Idx)
201190  , p_source_68_meaning => l_array_source_68_meaning(Idx)
201191  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
201192  , p_source_74 => l_array_source_74(Idx)
201193  , p_source_75 => l_array_source_75(Idx)
201194  , p_source_76 => l_array_source_76(Idx)
201195  , p_source_79 => l_array_source_79(Idx)
201196  , p_source_80 => l_array_source_80(Idx)
201197  , p_source_81 => l_array_source_81(Idx)
201198  , p_source_82 => l_array_source_82(Idx)
201199  , p_source_83 => l_array_source_83(Idx)
201200  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
201201  , p_source_90 => l_array_source_90(Idx)
201202  , p_source_90_meaning => l_array_source_90_meaning(Idx)
201203  , p_source_96 => l_array_source_96(Idx)
201207  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
201204  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
201205  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
201206  , p_source_104 => l_array_source_104(Idx)
201208  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
201209  , p_source_117 => l_array_source_117(Idx)
201210  , p_source_148 => l_array_source_148(Idx)
201211  );
201212 If(l_balance_type_code = 'A') THEN
201213   l_actual_gain_loss_ref := l_gain_or_loss_ref;
201214 END IF;
201215 
201216 --
201217 
201218 
201219 --
201220 AcctLineType_143 (
201221  p_application_id  => p_application_id
201222  ,p_event_id     => l_event_id
201223  ,p_calculate_acctd_flag => l_calculate_acctd_flag
201224  ,p_calculate_g_l_flag => l_calculate_g_l_flag
201225  ,p_actual_flag => l_actual_flag
201226  ,p_balance_type_code => l_balance_type_code
201227  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
201228  
201229  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
201230  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
201231  , p_source_18 => l_array_source_18(Idx)
201232  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
201233  , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
201234  , p_source_41 => l_array_source_41(Idx)
201235  , p_source_43 => l_array_source_43(Idx)
201236  , p_source_68 => l_array_source_68(Idx)
201237  , p_source_68_meaning => l_array_source_68_meaning(Idx)
201238  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
201239  , p_source_74 => l_array_source_74(Idx)
201240  , p_source_75 => l_array_source_75(Idx)
201241  , p_source_76 => l_array_source_76(Idx)
201242  , p_source_79 => l_array_source_79(Idx)
201243  , p_source_80 => l_array_source_80(Idx)
201244  , p_source_81 => l_array_source_81(Idx)
201245  , p_source_82 => l_array_source_82(Idx)
201246  , p_source_83 => l_array_source_83(Idx)
201247  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
201248  , p_source_90 => l_array_source_90(Idx)
201249  , p_source_90_meaning => l_array_source_90_meaning(Idx)
201250  , p_source_91 => l_array_source_91(Idx)
201251  , p_source_96 => l_array_source_96(Idx)
201252  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
201253  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
201254  , p_source_104 => l_array_source_104(Idx)
201255  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
201256  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
201257  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
201258  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
201259  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
201260  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
201261  , p_source_117 => l_array_source_117(Idx)
201262  , p_source_148 => l_array_source_148(Idx)
201263  , p_source_153 => l_array_source_153(Idx)
201264  );
201265 If(l_balance_type_code = 'A') THEN
201266   l_actual_gain_loss_ref := l_gain_or_loss_ref;
201267 END IF;
201268 
201269 --
201270 
201271 
201272 --
201273 AcctLineType_149 (
201274  p_application_id  => p_application_id
201275  ,p_event_id     => l_event_id
201276  ,p_calculate_acctd_flag => l_calculate_acctd_flag
201277  ,p_calculate_g_l_flag => l_calculate_g_l_flag
201278  ,p_actual_flag => l_actual_flag
201279  ,p_balance_type_code => l_balance_type_code
201280  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
201281  
201282  , p_source_16 => g_array_event(l_event_id).array_value_num('source_16')
201283  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
201284  , p_source_18 => l_array_source_18(Idx)
201285  , p_source_21 => l_array_source_21(Idx)
201286  , p_source_21_meaning => l_array_source_21_meaning(Idx)
201287  , p_source_41 => l_array_source_41(Idx)
201288  , p_source_43 => l_array_source_43(Idx)
201289  , p_source_68 => l_array_source_68(Idx)
201290  , p_source_68_meaning => l_array_source_68_meaning(Idx)
201291  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
201292  , p_source_74 => l_array_source_74(Idx)
201293  , p_source_75 => l_array_source_75(Idx)
201294  , p_source_76 => l_array_source_76(Idx)
201295  , p_source_79 => l_array_source_79(Idx)
201296  , p_source_80 => l_array_source_80(Idx)
201297  , p_source_81 => l_array_source_81(Idx)
201298  , p_source_82 => l_array_source_82(Idx)
201299  , p_source_83 => l_array_source_83(Idx)
201300  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
201301  , p_source_90 => l_array_source_90(Idx)
201302  , p_source_90_meaning => l_array_source_90_meaning(Idx)
201303  , p_source_91 => l_array_source_91(Idx)
201304  , p_source_96 => l_array_source_96(Idx)
201305  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
201306  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
201307  , p_source_104 => l_array_source_104(Idx)
201308  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
201309  , p_source_108 => l_array_source_108(Idx)
201310  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
201311  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
201312  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
201313  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
201314  , p_source_117 => l_array_source_117(Idx)
201315  , p_source_158 => l_array_source_158(Idx)
201316  , p_source_158_meaning => l_array_source_158_meaning(Idx)
201317  );
201318 If(l_balance_type_code = 'A') THEN
201319   l_actual_gain_loss_ref := l_gain_or_loss_ref;
201320 END IF;
201321 
201322 --
201323 
201324 
201328  ,p_event_id     => l_event_id
201325 --
201326 AcctLineType_166 (
201327  p_application_id  => p_application_id
201329  ,p_calculate_acctd_flag => l_calculate_acctd_flag
201330  ,p_calculate_g_l_flag => l_calculate_g_l_flag
201331  ,p_actual_flag => l_actual_flag
201332  ,p_balance_type_code => l_balance_type_code
201333  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
201334  
201335  , p_source_41 => l_array_source_41(Idx)
201336  , p_source_43 => l_array_source_43(Idx)
201337  , p_source_68 => l_array_source_68(Idx)
201338  , p_source_68_meaning => l_array_source_68_meaning(Idx)
201339  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
201340  , p_source_74 => l_array_source_74(Idx)
201341  , p_source_75 => l_array_source_75(Idx)
201342  , p_source_76 => l_array_source_76(Idx)
201343  , p_source_79 => l_array_source_79(Idx)
201344  , p_source_80 => l_array_source_80(Idx)
201345  , p_source_81 => l_array_source_81(Idx)
201346  , p_source_82 => l_array_source_82(Idx)
201347  , p_source_83 => l_array_source_83(Idx)
201348  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
201349  , p_source_90 => l_array_source_90(Idx)
201350  , p_source_90_meaning => l_array_source_90_meaning(Idx)
201351  , p_source_91 => l_array_source_91(Idx)
201352  , p_source_96 => l_array_source_96(Idx)
201353  , p_source_104 => l_array_source_104(Idx)
201354  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
201355  , p_source_109 => l_array_source_109(Idx)
201356  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
201357  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
201358  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
201359  , p_source_117 => l_array_source_117(Idx)
201360  , p_source_158 => l_array_source_158(Idx)
201361  , p_source_158_meaning => l_array_source_158_meaning(Idx)
201362  , p_source_160 => l_array_source_160(Idx)
201363  , p_source_160_meaning => l_array_source_160_meaning(Idx)
201364  );
201365 If(l_balance_type_code = 'A') THEN
201366   l_actual_gain_loss_ref := l_gain_or_loss_ref;
201367 END IF;
201368 
201369 --
201370 
201371 
201372 --
201373 AcctLineType_177 (
201374  p_application_id  => p_application_id
201375  ,p_event_id     => l_event_id
201376  ,p_calculate_acctd_flag => l_calculate_acctd_flag
201377  ,p_calculate_g_l_flag => l_calculate_g_l_flag
201378  ,p_actual_flag => l_actual_flag
201379  ,p_balance_type_code => l_balance_type_code
201380  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
201381  
201382  , p_source_41 => l_array_source_41(Idx)
201383  , p_source_43 => l_array_source_43(Idx)
201384  , p_source_68 => l_array_source_68(Idx)
201385  , p_source_68_meaning => l_array_source_68_meaning(Idx)
201386  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
201387  , p_source_74 => l_array_source_74(Idx)
201388  , p_source_75 => l_array_source_75(Idx)
201389  , p_source_76 => l_array_source_76(Idx)
201390  , p_source_79 => l_array_source_79(Idx)
201391  , p_source_80 => l_array_source_80(Idx)
201392  , p_source_81 => l_array_source_81(Idx)
201393  , p_source_82 => l_array_source_82(Idx)
201394  , p_source_83 => l_array_source_83(Idx)
201395  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
201396  , p_source_90 => l_array_source_90(Idx)
201397  , p_source_90_meaning => l_array_source_90_meaning(Idx)
201398  , p_source_91 => l_array_source_91(Idx)
201399  , p_source_96 => l_array_source_96(Idx)
201400  , p_source_104 => l_array_source_104(Idx)
201401  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
201402  , p_source_109 => l_array_source_109(Idx)
201403  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
201404  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
201405  , p_source_117 => l_array_source_117(Idx)
201406  , p_source_158 => l_array_source_158(Idx)
201407  , p_source_158_meaning => l_array_source_158_meaning(Idx)
201408  );
201409 If(l_balance_type_code = 'A') THEN
201410   l_actual_gain_loss_ref := l_gain_or_loss_ref;
201411 END IF;
201412 
201413 --
201414 
201415 
201416 --
201417 AcctLineType_185 (
201418  p_application_id  => p_application_id
201419  ,p_event_id     => l_event_id
201420  ,p_calculate_acctd_flag => l_calculate_acctd_flag
201421  ,p_calculate_g_l_flag => l_calculate_g_l_flag
201422  ,p_actual_flag => l_actual_flag
201423  ,p_balance_type_code => l_balance_type_code
201424  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
201425  
201426  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
201427  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
201428  , p_source_18 => l_array_source_18(Idx)
201429  , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
201430  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
201431  , p_source_41 => l_array_source_41(Idx)
201432  , p_source_43 => l_array_source_43(Idx)
201433  , p_source_68 => l_array_source_68(Idx)
201434  , p_source_68_meaning => l_array_source_68_meaning(Idx)
201435  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
201436  , p_source_74 => l_array_source_74(Idx)
201437  , p_source_75 => l_array_source_75(Idx)
201438  , p_source_76 => l_array_source_76(Idx)
201439  , p_source_79 => l_array_source_79(Idx)
201440  , p_source_80 => l_array_source_80(Idx)
201441  , p_source_81 => l_array_source_81(Idx)
201442  , p_source_82 => l_array_source_82(Idx)
201443  , p_source_83 => l_array_source_83(Idx)
201444  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
201445  , p_source_90 => l_array_source_90(Idx)
201446  , p_source_90_meaning => l_array_source_90_meaning(Idx)
201450  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
201447  , p_source_91 => l_array_source_91(Idx)
201448  , p_source_96 => l_array_source_96(Idx)
201449  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
201451  , p_source_104 => l_array_source_104(Idx)
201452  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
201453  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
201454  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
201455  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
201456  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
201457  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
201458  , p_source_117 => l_array_source_117(Idx)
201459  , p_source_148 => l_array_source_148(Idx)
201460  , p_source_153 => l_array_source_153(Idx)
201461  );
201462 If(l_balance_type_code = 'A') THEN
201463   l_actual_gain_loss_ref := l_gain_or_loss_ref;
201464 END IF;
201465 
201466 --
201467 
201468 
201469 --
201470 AcctLineType_211 (
201471  p_application_id  => p_application_id
201472  ,p_event_id     => l_event_id
201473  ,p_calculate_acctd_flag => l_calculate_acctd_flag
201474  ,p_calculate_g_l_flag => l_calculate_g_l_flag
201475  ,p_actual_flag => l_actual_flag
201476  ,p_balance_type_code => l_balance_type_code
201477  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
201478  
201479  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
201480  , p_source_41 => l_array_source_41(Idx)
201481  , p_source_43 => l_array_source_43(Idx)
201482  , p_source_68 => l_array_source_68(Idx)
201483  , p_source_68_meaning => l_array_source_68_meaning(Idx)
201484  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
201485  , p_source_74 => l_array_source_74(Idx)
201486  , p_source_75 => l_array_source_75(Idx)
201487  , p_source_76 => l_array_source_76(Idx)
201488  , p_source_79 => l_array_source_79(Idx)
201489  , p_source_80 => l_array_source_80(Idx)
201490  , p_source_81 => l_array_source_81(Idx)
201491  , p_source_82 => l_array_source_82(Idx)
201492  , p_source_83 => l_array_source_83(Idx)
201493  , p_source_91 => l_array_source_91(Idx)
201494  , p_source_96 => l_array_source_96(Idx)
201495  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
201496  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
201497  , p_source_104 => l_array_source_104(Idx)
201498  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
201499  , p_source_108 => l_array_source_108(Idx)
201500  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
201501  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
201502  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
201503  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
201504  , p_source_117 => l_array_source_117(Idx)
201505  );
201506 If(l_balance_type_code = 'A') THEN
201507   l_actual_gain_loss_ref := l_gain_or_loss_ref;
201508 END IF;
201509 
201510 --
201511 
201512 
201513 --
201514 AcctLineType_286 (
201515  p_application_id  => p_application_id
201516  ,p_event_id     => l_event_id
201517  ,p_calculate_acctd_flag => l_calculate_acctd_flag
201518  ,p_calculate_g_l_flag => l_calculate_g_l_flag
201519  ,p_actual_flag => l_actual_flag
201520  ,p_balance_type_code => l_balance_type_code
201521  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
201522  
201523  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
201524  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
201525  , p_source_18 => l_array_source_18(Idx)
201526  , p_source_31 => l_array_source_31(Idx)
201527  , p_source_41 => l_array_source_41(Idx)
201528  , p_source_43 => l_array_source_43(Idx)
201529  , p_source_68 => l_array_source_68(Idx)
201530  , p_source_68_meaning => l_array_source_68_meaning(Idx)
201531  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
201532  , p_source_74 => l_array_source_74(Idx)
201533  , p_source_75 => l_array_source_75(Idx)
201534  , p_source_76 => l_array_source_76(Idx)
201535  , p_source_79 => l_array_source_79(Idx)
201536  , p_source_80 => l_array_source_80(Idx)
201537  , p_source_81 => l_array_source_81(Idx)
201538  , p_source_82 => l_array_source_82(Idx)
201539  , p_source_83 => l_array_source_83(Idx)
201540  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
201541  , p_source_90 => l_array_source_90(Idx)
201542  , p_source_90_meaning => l_array_source_90_meaning(Idx)
201543  , p_source_91 => l_array_source_91(Idx)
201544  , p_source_96 => l_array_source_96(Idx)
201545  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
201546  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
201547  , p_source_104 => l_array_source_104(Idx)
201548  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
201549  , p_source_109 => l_array_source_109(Idx)
201550  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
201551  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
201552  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
201553  , p_source_117 => l_array_source_117(Idx)
201554  , p_source_136 => l_array_source_136(Idx)
201555  , p_source_137 => l_array_source_137(Idx)
201556  , p_source_138 => l_array_source_138(Idx)
201557  , p_source_160 => l_array_source_160(Idx)
201558  , p_source_160_meaning => l_array_source_160_meaning(Idx)
201559  );
201560 If(l_balance_type_code = 'A') THEN
201561   l_actual_gain_loss_ref := l_gain_or_loss_ref;
201562 END IF;
201563 
201564 --
201565 
201569       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
201566       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
201567       -- or secondary ledger that has different currency with primary
201568       -- or alc that is calculated by sla
201570             (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'))
201571 
201572 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
201573 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
201574           AND (l_actual_flag = 'A')) THEN
201575         XLA_AE_LINES_PKG.CreateGainOrLossLines(
201576           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
201577          ,p_application_id   => p_application_id
201578          ,p_amb_context_code => 'DEFAULT'
201579          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
201580          ,p_event_class_code => C_EVENT_CLASS_CODE
201581          ,p_event_type_code  => C_EVENT_TYPE_CODE
201582          
201583          ,p_gain_ccid        => -1
201584          ,p_loss_ccid        => -1
201585 
201586          ,p_actual_flag      => l_actual_flag
201587          ,p_enc_flag         => null
201588          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
201589          ,p_enc_g_l_ref      => null
201590          );
201591       END IF;
201592    END IF;
201593 END IF;
201594 
201595    ELSE
201596       --
201597       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
201598       --
201599       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
201600          trace
201601             (p_msg      => 'Trancaction revesal option is Y'
201602             ,p_level    => C_LEVEL_STATEMENT
201603             ,p_module   => l_log_module);
201604       END IF;
201605    END IF;
201606 
201607 END LOOP;
201608 l_result := XLA_AE_LINES_PKG.InsertLines ;
201609 end loop;
201610 close line_cur;
201611 
201612 
201613 --
201614 -- insert headers into xla_ae_headers_gt table
201615 --
201616 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
201617 
201618 -- insert into errors table here.
201619 
201620 END LOOP;
201621 
201622 --
201623 -- 4865292
201624 --
201625 -- Compare g_hdr_extract_count with event count in
201626 -- CreateHeadersAndLines.
201627 --
201628 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
201629 
201630 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
201631    trace (p_msg     => '# rows extracted from header extract objects '
201632                     || ' (running total): '
201633                     || g_hdr_extract_count
201634          ,p_level   => C_LEVEL_STATEMENT
201635          ,p_module  => l_log_module);
201636 END IF;
201637 
201638 CLOSE header_cur;
201639 --
201640 
201641 --
201642 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
201643    trace
201644       (p_msg      => 'END of EventClass_296'
201645       ,p_level    => C_LEVEL_PROCEDURE
201646       ,p_module   => l_log_module);
201647 END IF;
201648 --
201649 RETURN l_result;
201650 EXCEPTION
201651 WHEN xla_exceptions_pkg.application_exception THEN
201652    
201653 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
201654 
201655    
201656 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
201657 
201658    RAISE;
201659 
201660 WHEN NO_DATA_FOUND THEN
201661 
201662 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
201663 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
201664 
201665 FOR header_record IN header_cur
201666 LOOP
201667     l_array_header_events(header_record.event_id) := header_record.event_id;
201668 END LOOP;
201669 
201670 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
201671 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
201672 
201673 fnd_file.put_line(fnd_file.LOG, '                    ');
201674 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
201675 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
201676 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
201677 
201678 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
201679 LOOP
201680 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
201681 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
201682         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
201683 	END IF;
201684 END LOOP;
201685 
201686 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
201687 fnd_file.put_line(fnd_file.LOG, '                    ');
201688 
201689 
201690 xla_exceptions_pkg.raise_message
201691       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_296');
201692 
201693 
201694 WHEN OTHERS THEN
201695    xla_exceptions_pkg.raise_message
201696       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_296');
201697 END EventClass_296;
201698 --
201699 
201700 ---------------------------------------
201701 --
201702 -- PRIVATE PROCEDURE
201703 --         insert_sources_297
201704 --
201705 ----------------------------------------
201706 --
201707 PROCEDURE insert_sources_297(
201708                                 p_target_ledger_id       IN NUMBER
201709                               , p_language               IN VARCHAR2
201710                               , p_sla_ledger_id          IN NUMBER
201714 IS
201711                               , p_pad_start_date         IN DATE
201712                               , p_pad_end_date           IN DATE
201713                          )
201715 
201716 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT APPLICATIONS_ALL';
201717 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
201718 p_apps_owner                   VARCHAR2(30);
201719 l_log_module                   VARCHAR2(240);
201720 BEGIN
201721 IF g_log_enabled THEN
201722       l_log_module := C_DEFAULT_MODULE||'.insert_sources_297';
201723 END IF;
201724 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
201725 
201726       trace
201727          (p_msg      => 'BEGIN of insert_sources_297'
201728          ,p_level    => C_LEVEL_PROCEDURE
201729          ,p_module   => l_log_module);
201730 
201731 END IF;
201732 
201733 -- select APPS owner
201734 SELECT oracle_username
201735   INTO p_apps_owner
201736   FROM fnd_oracle_userid
201737  WHERE read_only_flag = 'U'
201738 ;
201739 
201740 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
201741       trace
201742          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
201743                         ' - p_language = '||p_language||
201744                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
201745                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
201746                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
201747                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
201748          ,p_level    => C_LEVEL_STATEMENT
201749          ,p_module   => l_log_module);
201750 END IF;
201751 
201752 
201753 --
201754 INSERT INTO xla_diag_sources --hdr2
201755 (
201756         event_id
201757       , ledger_id
201758       , sla_ledger_id
201759       , description_language
201760       , object_name
201761       , object_type_code
201762       , line_number
201763       , source_application_id
201764       , source_type_code
201765       , source_code
201766       , source_value
201767       , source_meaning
201768       , created_by
201769       , creation_date
201770       , last_update_date
201771       , last_updated_by
201772       , last_update_login
201773       , program_update_date
201774       , program_application_id
201775       , program_id
201776       , request_id
201777 )
201778 SELECT
201779         event_id
201780       , p_target_ledger_id
201781       , p_sla_ledger_id
201782       , p_language
201783       , object_name
201784       , object_type_code
201785       , line_number
201786       , source_application_id
201787       , source_type_code
201788       , source_code
201789       , SUBSTR(source_value ,1,1996)
201790       , SUBSTR(source_meaning ,1,200)
201791       , xla_environment_pkg.g_Usr_Id
201792       , TRUNC(SYSDATE)
201793       , TRUNC(SYSDATE)
201794       , xla_environment_pkg.g_Usr_Id
201795       , xla_environment_pkg.g_Login_Id
201796       , TRUNC(SYSDATE)
201797       , xla_environment_pkg.g_Prog_Appl_Id
201798       , xla_environment_pkg.g_Prog_Id
201799       , xla_environment_pkg.g_Req_Id
201800   FROM (
201801        SELECT xet.event_id                  event_id
201802             , 0                          line_number
201803             , CASE r
201804                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
201805                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
201806                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
201807                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
201808                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
201809                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
201810                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
201811                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
201812                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
201813                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
201814                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
201815                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
201816                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
201817                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
201818                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
201819                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
201820                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
201821                 
201822                ELSE null
201823               END                           object_name
201824             , CASE r
201825                 WHEN 1 THEN 'HEADER' 
201826                 WHEN 2 THEN 'HEADER' 
201827                 WHEN 3 THEN 'HEADER' 
201828                 WHEN 4 THEN 'HEADER' 
201829                 WHEN 5 THEN 'HEADER' 
201830                 WHEN 6 THEN 'HEADER' 
201831                 WHEN 7 THEN 'HEADER' 
201832                 WHEN 8 THEN 'HEADER' 
201833                 WHEN 9 THEN 'HEADER' 
201834                 WHEN 10 THEN 'HEADER' 
201835                 WHEN 11 THEN 'HEADER' 
201836                 WHEN 12 THEN 'HEADER' 
201837                 WHEN 13 THEN 'HEADER' 
201838                 WHEN 14 THEN 'HEADER' 
201839                 WHEN 15 THEN 'HEADER' 
201840                 WHEN 16 THEN 'HEADER' 
201841                 WHEN 17 THEN 'HEADER' 
201842                 
201843                 ELSE null
201844               END                           object_type_code
201845             , CASE r
201846                 WHEN 1 THEN '200' 
201850                 WHEN 5 THEN '200' 
201847                 WHEN 2 THEN '200' 
201848                 WHEN 3 THEN '200' 
201849                 WHEN 4 THEN '200' 
201851                 WHEN 6 THEN '200' 
201852                 WHEN 7 THEN '200' 
201853                 WHEN 8 THEN '200' 
201854                 WHEN 9 THEN '200' 
201855                 WHEN 10 THEN '200' 
201856                 WHEN 11 THEN '200' 
201857                 WHEN 12 THEN '200' 
201858                 WHEN 13 THEN '200' 
201859                 WHEN 14 THEN '200' 
201860                 WHEN 15 THEN '200' 
201861                 WHEN 16 THEN '200' 
201862                 WHEN 17 THEN '200' 
201863                 
201864                 ELSE null
201865               END                           source_application_id
201866             , 'S'             source_type_code
201867             , CASE r
201868                 WHEN 1 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
201869                 WHEN 2 THEN 'ASP_GAIN_CCID' 
201870                 WHEN 3 THEN 'ASP_LOSS_CCID' 
201871                 WHEN 4 THEN 'ASP_PREPAY_TAX_DIFF_CCID' 
201872                 WHEN 5 THEN 'ASP_ROUNDING_ERROR_CCID' 
201873                 WHEN 6 THEN 'AI_INVOICE_ID' 
201874                 WHEN 7 THEN 'AI_INVOICE_CURRENCY_CODE' 
201875                 WHEN 8 THEN 'AI_VENDOR_ID' 
201876                 WHEN 9 THEN 'AI_VENDOR_SITE_ID' 
201877                 WHEN 10 THEN 'THIRD_PARTY_TYPE' 
201878                 WHEN 11 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG' 
201879                 WHEN 12 THEN 'INV_EXCHANGE_DATE' 
201880                 WHEN 13 THEN 'INV_EXCHANGE_RATE' 
201881                 WHEN 14 THEN 'INV_EXCHANGE_RATE_TYPE' 
201882                 WHEN 15 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
201883                 WHEN 16 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
201884                 WHEN 17 THEN 'INV_DOC_SEQUENCE_VALUE' 
201885                 
201886                 ELSE null
201887               END                           source_code
201888             , CASE r
201889                 WHEN 1 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
201890                 WHEN 2 THEN TO_CHAR(h4.ASP_GAIN_CCID)
201891                 WHEN 3 THEN TO_CHAR(h4.ASP_LOSS_CCID)
201892                 WHEN 4 THEN TO_CHAR(h4.ASP_PREPAY_TAX_DIFF_CCID)
201893                 WHEN 5 THEN TO_CHAR(h4.ASP_ROUNDING_ERROR_CCID)
201894                 WHEN 6 THEN TO_CHAR(h1.AI_INVOICE_ID)
201895                 WHEN 7 THEN TO_CHAR(h1.AI_INVOICE_CURRENCY_CODE)
201896                 WHEN 8 THEN TO_CHAR(h1.AI_VENDOR_ID)
201897                 WHEN 9 THEN TO_CHAR(h1.AI_VENDOR_SITE_ID)
201898                 WHEN 10 THEN TO_CHAR(h1.THIRD_PARTY_TYPE)
201899                 WHEN 11 THEN TO_CHAR(h4.FSP_PURCH_ENCUMBRANCE_FLAG)
201900                 WHEN 12 THEN TO_CHAR(h1.INV_EXCHANGE_DATE)
201901                 WHEN 13 THEN TO_CHAR(h1.INV_EXCHANGE_RATE)
201902                 WHEN 14 THEN TO_CHAR(h1.INV_EXCHANGE_RATE_TYPE)
201903                 WHEN 15 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_CATEGORY)
201904                 WHEN 16 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_IDENTIFIER)
201905                 WHEN 17 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_VALUE)
201906                 
201907                 ELSE null
201908               END                           source_value
201909             , CASE r
201910                 WHEN 1 THEN fvl3.meaning
201911                 WHEN 11 THEN fvl86.meaning
201912                 
201913                 ELSE null
201914               END               source_meaning
201915          FROM xla_events_gt     xet  
201916       , AP_INVOICE_EXTRACT_HEADER_V  h1
201917       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
201918   , fnd_lookup_values    fvl3
201919   , fnd_lookup_values    fvl86
201920              ,(select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
201921          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
201922            AND xet.event_class_code = C_EVENT_CLASS_CODE
201923               AND h1.event_id = xet.event_id
201924  AND h4.asp_org_id = h1.ai_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
201925   AND fvl3.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
201926   AND fvl3.view_application_id(+) = 200
201927   AND fvl3.language(+)            = USERENV('LANG')
201928      AND fvl86.lookup_type(+)         = 'YES_NO'
201929   AND fvl86.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
201930   AND fvl86.view_application_id(+) = 0
201931   AND fvl86.language(+)            = USERENV('LANG')
201932   
201933 )
201934 ;
201935 --
201936 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
201937 
201938       trace
201939          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
201940          ,p_level    => C_LEVEL_STATEMENT
201941          ,p_module   => l_log_module);
201942 
201943 END IF;
201944 --
201945 
201946 
201947 
201948 --
201949 INSERT INTO xla_diag_sources  --line2
201950 (
201951         event_id
201952       , ledger_id
201953       , sla_ledger_id
201954       , description_language
201955       , object_name
201956       , object_type_code
201957       , line_number
201958       , source_application_id
201959       , source_type_code
201960       , source_code
201961       , source_value
201962       , source_meaning
201963       , created_by
201964       , creation_date
201965       , last_update_date
201966       , last_updated_by
201967       , last_update_login
201968       , program_update_date
201969       , program_application_id
201970       , program_id
201971       , request_id
201972 )
201973 SELECT  event_id
201974       , p_target_ledger_id
201975       , p_sla_ledger_id
201976       , p_language
201977       , object_name
201978       , object_type_code
201979       , line_number
201983       , SUBSTR(source_value,1,1996)
201980       , source_application_id
201981       , source_type_code
201982       , source_code
201984       , SUBSTR(source_meaning ,1,200)
201985       , xla_environment_pkg.g_Usr_Id
201986       , TRUNC(SYSDATE)
201987       , TRUNC(SYSDATE)
201988       , xla_environment_pkg.g_Usr_Id
201989       , xla_environment_pkg.g_Login_Id
201990       , TRUNC(SYSDATE)
201991       , xla_environment_pkg.g_Prog_Appl_Id
201992       , xla_environment_pkg.g_Prog_Id
201993       , xla_environment_pkg.g_Req_Id
201994   FROM (
201995        SELECT xet.event_id                  event_id
201996             , l2.line_number                 line_number
201997             , CASE r
201998                WHEN 1 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
201999                 WHEN 2 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202000                 WHEN 3 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202001                 WHEN 4 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
202002                 WHEN 5 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202003                 WHEN 6 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202004                 WHEN 7 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202005                 WHEN 8 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202006                 WHEN 9 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202007                 WHEN 10 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202008                 WHEN 11 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202009                 WHEN 12 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202010                 WHEN 13 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202011                 WHEN 14 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202012                 WHEN 15 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202013                 WHEN 16 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202014                 WHEN 17 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202015                 WHEN 18 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
202016                 WHEN 19 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
202017                 WHEN 20 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202018                 WHEN 21 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202019                 WHEN 22 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202020                 WHEN 23 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202021                 WHEN 24 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202022                 WHEN 25 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202023                 WHEN 26 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202024                 WHEN 27 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202025                 WHEN 28 THEN 'AP_PREPAY_DEF_TAX_EXTRACT_V' 
202026                 WHEN 29 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202027                 WHEN 30 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202028                 WHEN 31 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202029                 WHEN 32 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202030                 WHEN 33 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202031                 WHEN 34 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202032                 WHEN 35 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202033                 WHEN 36 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202034                 WHEN 37 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202035                 WHEN 38 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202036                 WHEN 39 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
202037                 WHEN 40 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202038                 WHEN 41 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202039                 WHEN 42 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202040                 WHEN 43 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202041                 WHEN 44 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202042                 WHEN 45 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202043                 WHEN 46 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202044                 WHEN 47 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202045                 WHEN 48 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202046                 WHEN 49 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
202047                 
202048                ELSE null
202049               END                           object_name
202050             , CASE r
202051                 WHEN 1 THEN 'LINE' 
202052                 WHEN 2 THEN 'LINE' 
202053                 WHEN 3 THEN 'LINE' 
202054                 WHEN 4 THEN 'LINE' 
202055                 WHEN 5 THEN 'LINE' 
202056                 WHEN 6 THEN 'LINE' 
202057                 WHEN 7 THEN 'LINE' 
202058                 WHEN 8 THEN 'LINE' 
202059                 WHEN 9 THEN 'LINE' 
202060                 WHEN 10 THEN 'LINE' 
202061                 WHEN 11 THEN 'LINE' 
202062                 WHEN 12 THEN 'LINE' 
202063                 WHEN 13 THEN 'LINE' 
202064                 WHEN 14 THEN 'LINE' 
202065                 WHEN 15 THEN 'LINE' 
202066                 WHEN 16 THEN 'LINE' 
202067                 WHEN 17 THEN 'LINE' 
202068                 WHEN 18 THEN 'LINE' 
202069                 WHEN 19 THEN 'LINE' 
202070                 WHEN 20 THEN 'LINE' 
202071                 WHEN 21 THEN 'LINE' 
202072                 WHEN 22 THEN 'LINE' 
202073                 WHEN 23 THEN 'LINE' 
202074                 WHEN 24 THEN 'LINE' 
202075                 WHEN 25 THEN 'LINE' 
202076                 WHEN 26 THEN 'LINE' 
202077                 WHEN 27 THEN 'LINE' 
202078                 WHEN 28 THEN 'LINE' 
202079                 WHEN 29 THEN 'LINE' 
202080                 WHEN 30 THEN 'LINE' 
202081                 WHEN 31 THEN 'LINE' 
202082                 WHEN 32 THEN 'LINE' 
202083                 WHEN 33 THEN 'LINE' 
202084                 WHEN 34 THEN 'LINE' 
202085                 WHEN 35 THEN 'LINE' 
202089                 WHEN 39 THEN 'LINE' 
202086                 WHEN 36 THEN 'LINE' 
202087                 WHEN 37 THEN 'LINE' 
202088                 WHEN 38 THEN 'LINE' 
202090                 WHEN 40 THEN 'LINE' 
202091                 WHEN 41 THEN 'LINE' 
202092                 WHEN 42 THEN 'LINE' 
202093                 WHEN 43 THEN 'LINE' 
202094                 WHEN 44 THEN 'LINE' 
202095                 WHEN 45 THEN 'LINE' 
202096                 WHEN 46 THEN 'LINE' 
202097                 WHEN 47 THEN 'LINE' 
202098                 WHEN 48 THEN 'LINE' 
202099                 WHEN 49 THEN 'LINE' 
202100                 
202101                 ELSE null
202102               END                           object_type_code
202103             , CASE r
202104                 WHEN 1 THEN '200' 
202105                 WHEN 2 THEN '200' 
202106                 WHEN 3 THEN '200' 
202107                 WHEN 4 THEN '200' 
202108                 WHEN 5 THEN '200' 
202109                 WHEN 6 THEN '200' 
202110                 WHEN 7 THEN '200' 
202111                 WHEN 8 THEN '200' 
202112                 WHEN 9 THEN '200' 
202113                 WHEN 10 THEN '200' 
202114                 WHEN 11 THEN '200' 
202115                 WHEN 12 THEN '200' 
202116                 WHEN 13 THEN '200' 
202117                 WHEN 14 THEN '200' 
202118                 WHEN 15 THEN '200' 
202119                 WHEN 16 THEN '200' 
202120                 WHEN 17 THEN '200' 
202121                 WHEN 18 THEN '200' 
202122                 WHEN 19 THEN '200' 
202123                 WHEN 20 THEN '200' 
202124                 WHEN 21 THEN '200' 
202125                 WHEN 22 THEN '200' 
202126                 WHEN 23 THEN '200' 
202127                 WHEN 24 THEN '200' 
202128                 WHEN 25 THEN '200' 
202129                 WHEN 26 THEN '200' 
202130                 WHEN 27 THEN '200' 
202131                 WHEN 28 THEN '200' 
202132                 WHEN 29 THEN '200' 
202133                 WHEN 30 THEN '200' 
202134                 WHEN 31 THEN '200' 
202135                 WHEN 32 THEN '200' 
202136                 WHEN 33 THEN '200' 
202137                 WHEN 34 THEN '200' 
202138                 WHEN 35 THEN '200' 
202139                 WHEN 36 THEN '200' 
202140                 WHEN 37 THEN '200' 
202141                 WHEN 38 THEN '200' 
202142                 WHEN 39 THEN '200' 
202143                 WHEN 40 THEN '200' 
202144                 WHEN 41 THEN '200' 
202145                 WHEN 42 THEN '200' 
202146                 WHEN 43 THEN '200' 
202147                 WHEN 44 THEN '200' 
202148                 WHEN 45 THEN '200' 
202149                 WHEN 46 THEN '200' 
202150                 WHEN 47 THEN '200' 
202151                 WHEN 48 THEN '200' 
202152                 WHEN 49 THEN '200' 
202153                 
202154                 ELSE null
202155               END                           source_application_id
202156             , 'S'             source_type_code
202157             , CASE r
202158                 WHEN 1 THEN 'AID_DIST_CCID' 
202159                 WHEN 2 THEN 'CGAC_GAIN_CCID' 
202160                 WHEN 3 THEN 'CGAC_LOSS_CCID' 
202161                 WHEN 4 THEN 'TAX_ACCOUNT_CCID' 
202162                 WHEN 5 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
202163                 WHEN 6 THEN 'DISTRIBUTION_LINK_TYPE' 
202164                 WHEN 7 THEN 'UPG_ENC_CR_CCID' 
202165                 WHEN 8 THEN 'UPG_ENC_CR_AMT' 
202166                 WHEN 9 THEN 'UPG_ENC_CR_BASE_AMT' 
202167                 WHEN 10 THEN 'UPG_ENC_DR_CCID' 
202168                 WHEN 11 THEN 'UPG_ENC_DR_AMT' 
202169                 WHEN 12 THEN 'UPG_ENC_DR_BASE_AMT' 
202170                 WHEN 13 THEN 'UPG_AP_ENCUM_OPTION' 
202171                 WHEN 14 THEN 'DEFERRED_END_DATE' 
202172                 WHEN 15 THEN 'DEFERRED_OPTION' 
202173                 WHEN 16 THEN 'DEFERRED_START_DATE' 
202174                 WHEN 17 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
202175                 WHEN 18 THEN 'TAX_LINE_ID' 
202176                 WHEN 19 THEN 'REC_NREC_TAX_DIST_ID' 
202177                 WHEN 20 THEN 'SUMMARY_TAX_LINE_ID' 
202178                 WHEN 21 THEN 'UPG_CR_ENC_TYPE_ID' 
202179                 WHEN 22 THEN 'UPG_DR_ENC_TYPE_ID' 
202180                 WHEN 23 THEN 'BUS_FLOW_AP_APP_ID' 
202181                 WHEN 24 THEN 'BUS_FLOW_INV_DIST_TYPE' 
202182                 WHEN 25 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
202183                 WHEN 26 THEN 'AID_ENCUMBERED_FLAG' 
202184                 WHEN 27 THEN 'APAD_DIST_LOOKUP_CODE' 
202185                 WHEN 28 THEN 'DEF_REC_PP_SET_OPTION_CODE' 
202186                 WHEN 29 THEN 'APAD_DISTRIBUTION_IDENTIFIER' 
202187                 WHEN 30 THEN 'BF_CASH_ALWAYS_PP_DIST_TYPE' 
202188                 WHEN 31 THEN 'BF_CASH_ALWAYS_PREPAY_ENTITY' 
202189                 WHEN 32 THEN 'BF_CASHALWAYS_PP_PMT_DIST_ID' 
202190                 WHEN 33 THEN 'BF_CASHALWAYS_PP_PMT_ID' 
202191                 WHEN 34 THEN 'UPG_ENC_CR_ACCT_CLASS' 
202192                 WHEN 35 THEN 'UPG_ENC_DR_ACCT_CLASS' 
202193                 WHEN 36 THEN 'APAD_AMOUNT' 
202194                 WHEN 37 THEN 'BASE_AMT_AT_PP_XRATE' 
202195                 WHEN 38 THEN 'REVERSED_PREPAY_APP_DIST_ID' 
202196                 WHEN 39 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
202197                 WHEN 40 THEN 'BF_PREPAY_REC_DIST_ID' 
202198                 WHEN 41 THEN 'BF_PREPAY_REC_INV' 
202199                 WHEN 42 THEN 'APAD_BASE_AMOUNT' 
202200                 WHEN 43 THEN 'BF_ACCRUAL_PREPAY_DIST_TYPE' 
202201                 WHEN 44 THEN 'BF_ACCRUAL_PREPAY_ENTITY_CODE' 
202202                 WHEN 45 THEN 'BF_ACCRUAL_PP_DIST_ID' 
202203                 WHEN 46 THEN 'BF_ACCRUAL_PP_INV' 
202204                 WHEN 47 THEN 'BASE_AMT_AT_PP_PAY_XRATE' 
202205                 WHEN 48 THEN 'APAD_BASE_AMOUNT_DIFF' 
202206                 WHEN 49 THEN 'INV_PREPMT_GAIN_LOSS_INDICATOR' 
202210             , CASE r
202207                 
202208                 ELSE null
202209               END                           source_code
202211                 WHEN 1 THEN TO_CHAR(l2.AID_DIST_CCID)
202212                 WHEN 2 THEN TO_CHAR(l2.CGAC_GAIN_CCID)
202213                 WHEN 3 THEN TO_CHAR(l2.CGAC_LOSS_CCID)
202214                 WHEN 4 THEN TO_CHAR(l5.TAX_ACCOUNT_CCID)
202215                 WHEN 5 THEN TO_CHAR(l2.DIST_ACCOUNT_REVERSAL_OPTION)
202216                 WHEN 6 THEN TO_CHAR(l2.DISTRIBUTION_LINK_TYPE)
202217                 WHEN 7 THEN TO_CHAR(l2.UPG_ENC_CR_CCID)
202218                 WHEN 8 THEN TO_CHAR(l2.UPG_ENC_CR_AMT)
202219                 WHEN 9 THEN TO_CHAR(l2.UPG_ENC_CR_BASE_AMT)
202220                 WHEN 10 THEN TO_CHAR(l2.UPG_ENC_DR_CCID)
202221                 WHEN 11 THEN TO_CHAR(l2.UPG_ENC_DR_AMT)
202222                 WHEN 12 THEN TO_CHAR(l2.UPG_ENC_DR_BASE_AMT)
202223                 WHEN 13 THEN TO_CHAR(l2.UPG_AP_ENCUM_OPTION)
202224                 WHEN 14 THEN TO_CHAR(l2.DEFERRED_END_DATE)
202225                 WHEN 15 THEN TO_CHAR(l2.DEFERRED_OPTION)
202226                 WHEN 16 THEN TO_CHAR(l2.DEFERRED_START_DATE)
202227                 WHEN 17 THEN TO_CHAR(l2.OVERRIDE_ACCTD_AMT_FLAG)
202228                 WHEN 18 THEN TO_CHAR(l5.TAX_LINE_ID)
202229                 WHEN 19 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
202230                 WHEN 20 THEN TO_CHAR(l2.SUMMARY_TAX_LINE_ID)
202231                 WHEN 21 THEN TO_CHAR(l2.UPG_CR_ENC_TYPE_ID)
202232                 WHEN 22 THEN TO_CHAR(l2.UPG_DR_ENC_TYPE_ID)
202233                 WHEN 23 THEN TO_CHAR(l2.BUS_FLOW_AP_APP_ID)
202234                 WHEN 24 THEN TO_CHAR(l2.BUS_FLOW_INV_DIST_TYPE)
202235                 WHEN 25 THEN TO_CHAR(l2.BUS_FLOW_INV_ENTITY_CODE)
202236                 WHEN 26 THEN TO_CHAR(l2.AID_ENCUMBERED_FLAG)
202237                 WHEN 27 THEN TO_CHAR(l2.APAD_DIST_LOOKUP_CODE)
202238                 WHEN 28 THEN TO_CHAR(l3.DEF_REC_PP_SET_OPTION_CODE)
202239                 WHEN 29 THEN TO_CHAR(l2.APAD_DISTRIBUTION_IDENTIFIER)
202240                 WHEN 30 THEN TO_CHAR(l2.BF_CASH_ALWAYS_PP_DIST_TYPE)
202241                 WHEN 31 THEN TO_CHAR(l2.BF_CASH_ALWAYS_PREPAY_ENTITY)
202242                 WHEN 32 THEN TO_CHAR(l2.BF_CASHALWAYS_PP_PMT_DIST_ID)
202243                 WHEN 33 THEN TO_CHAR(l2.BF_CASHALWAYS_PP_PMT_ID)
202244                 WHEN 34 THEN TO_CHAR(l2.UPG_ENC_CR_ACCT_CLASS)
202245                 WHEN 35 THEN TO_CHAR(l2.UPG_ENC_DR_ACCT_CLASS)
202246                 WHEN 36 THEN TO_CHAR(l2.APAD_AMOUNT)
202247                 WHEN 37 THEN TO_CHAR(l2.BASE_AMT_AT_PP_XRATE)
202248                 WHEN 38 THEN TO_CHAR(l2.REVERSED_PREPAY_APP_DIST_ID)
202249                 WHEN 39 THEN TO_CHAR(l5.DEF_REC_SETTLEMENT_OPTION_CODE)
202250                 WHEN 40 THEN TO_CHAR(l2.BF_PREPAY_REC_DIST_ID)
202251                 WHEN 41 THEN TO_CHAR(l2.BF_PREPAY_REC_INV)
202252                 WHEN 42 THEN TO_CHAR(l2.APAD_BASE_AMOUNT)
202253                 WHEN 43 THEN TO_CHAR(l2.BF_ACCRUAL_PREPAY_DIST_TYPE)
202254                 WHEN 44 THEN TO_CHAR(l2.BF_ACCRUAL_PREPAY_ENTITY_CODE)
202255                 WHEN 45 THEN TO_CHAR(l2.BF_ACCRUAL_PP_DIST_ID)
202256                 WHEN 46 THEN TO_CHAR(l2.BF_ACCRUAL_PP_INV)
202257                 WHEN 47 THEN TO_CHAR(l2.BASE_AMT_AT_PP_PAY_XRATE)
202258                 WHEN 48 THEN TO_CHAR(l2.APAD_BASE_AMOUNT_DIFF)
202259                 WHEN 49 THEN TO_CHAR(l2.INV_PREPMT_GAIN_LOSS_INDICATOR)
202260                 
202261                 ELSE null
202262               END                           source_value
202263             , CASE r
202264                 WHEN 17 THEN fvl68.meaning
202265                 WHEN 26 THEN fvl87.meaning
202266                 WHEN 28 THEN fvl119.meaning
202267                 WHEN 39 THEN fvl130.meaning
202268                 
202269                 ELSE null
202270               END               source_meaning
202271          FROM  xla_events_gt     xet  
202272         , AP_PREPAYAPP_EXTRACT_DETAILS_V  l2
202273         , AP_PREPAY_DEF_TAX_EXTRACT_V  l3
202274         , ZX_AP_DEF_TAX_EXTRACT_V  l5
202275         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
202276   , fnd_lookup_values    fvl68
202277   , fnd_lookup_values    fvl87
202278   , fnd_lookup_values    fvl119
202279   , fnd_lookup_values    fvl130
202280             , (select rownum r from all_objects where rownum <= 49 and owner = p_apps_owner)
202281         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
202282           AND xet.event_class_code = C_EVENT_CLASS_CODE
202283             AND l2.event_id          = xet.event_id
202284  AND l2.pp_detail_tax_dist_id = l3.rec_nrec_pp_tax_dist_id (+)  AND l2.recp_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+)  AND l2.recp_detail_tax_dist_id = l6.rec_nrec_tax_dist_id (+)    AND fvl68.lookup_type(+)         = 'YES_NO'
202285   AND fvl68.lookup_code(+)         = l2.OVERRIDE_ACCTD_AMT_FLAG
202286   AND fvl68.view_application_id(+) = 0
202287   AND fvl68.language(+)            = USERENV('LANG')
202288      AND fvl87.lookup_type(+)         = 'YES_NO'
202289   AND fvl87.lookup_code(+)         = l2.AID_ENCUMBERED_FLAG
202290   AND fvl87.view_application_id(+) = 0
202291   AND fvl87.language(+)            = USERENV('LANG')
202292      AND fvl119.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
202293   AND fvl119.lookup_code(+)         = l3.DEF_REC_PP_SET_OPTION_CODE
202294   AND fvl119.view_application_id(+) = 0
202295   AND fvl119.language(+)            = USERENV('LANG')
202296      AND fvl130.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
202297   AND fvl130.lookup_code(+)         = l5.DEF_REC_SETTLEMENT_OPTION_CODE
202298   AND fvl130.view_application_id(+) = 0
202299   AND fvl130.language(+)            = USERENV('LANG')
202300   
202301 )
202302 ;
202303 --
202304 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
202305 
202306       trace
202307          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
202308          ,p_level    => C_LEVEL_STATEMENT
202309          ,p_module   => l_log_module);
202310 
202314 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
202311 END IF;
202312 
202313 
202315       trace
202316          (p_msg      => 'END of insert_sources_297'
202317          ,p_level    => C_LEVEL_PROCEDURE
202318          ,p_module   => l_log_module);
202319 END IF;
202320 EXCEPTION
202321   WHEN xla_exceptions_pkg.application_exception THEN
202322       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
202323             trace
202324                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
202325                ,p_level    => C_LEVEL_EXCEPTION
202326                ,p_module   => l_log_module);
202327       END IF;
202328       RAISE;
202329   WHEN OTHERS THEN
202330       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
202331             trace
202332                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
202333                ,p_level    => C_LEVEL_EXCEPTION
202334                ,p_module   => l_log_module);
202335        END IF;
202336        xla_exceptions_pkg.raise_message
202337            (p_location => 'XLA_00200_AAD_S_000006_PKG.insert_sources_297');
202338 END insert_sources_297;
202339 --
202340 
202341 ---------------------------------------
202342 --
202343 -- PRIVATE FUNCTION
202344 --         EventClass_297
202345 --
202346 ----------------------------------------
202347 --
202348 FUNCTION EventClass_297
202349        (p_application_id         IN NUMBER
202350        ,p_base_ledger_id         IN NUMBER
202351        ,p_target_ledger_id       IN NUMBER
202352        ,p_language               IN VARCHAR2
202353        ,p_currency_code          IN VARCHAR2
202354        ,p_sla_ledger_id          IN NUMBER
202355        ,p_pad_start_date         IN DATE
202356        ,p_pad_end_date           IN DATE
202357        ,p_primary_ledger_id      IN NUMBER)
202358 RETURN BOOLEAN IS
202359 --
202360 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT APPLICATIONS_ALL';
202361 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
202362 
202363 l_calculate_acctd_flag   VARCHAR2(1) :='N';
202364 l_calculate_g_l_flag     VARCHAR2(1) :='N';
202365 --
202366 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
202367 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
202368 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
202369 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
202370 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
202371 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
202372 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
202373 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
202374 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
202375 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
202376 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
202377 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
202378 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
202379 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
202380 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
202381 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
202382 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
202383 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
202384 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
202385 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
202386 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
202387 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
202388 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
202389 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
202390 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
202391 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
202392 
202393 l_event_id                             NUMBER;
202394 l_previous_event_id                    NUMBER;
202395 l_first_event_id                       NUMBER;
202396 l_last_event_id                        NUMBER;
202397 
202398 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
202399 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
202400 --
202401 --
202402 l_result                    BOOLEAN := TRUE;
202403 l_rows                      NUMBER  := 1000;
202404 l_event_type_name           VARCHAR2(80) := 'All';
202405 l_event_class_name          VARCHAR2(80) := 'Prepayment Applications';
202406 l_description               VARCHAR2(4000);
202407 l_transaction_reversal      NUMBER;
202408 l_ae_header_id              NUMBER;
202409 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
202410 l_log_module                VARCHAR2(240);
202411 --
202412 l_acct_reversal_source      VARCHAR2(30);
202413 l_trx_reversal_source       VARCHAR2(30);
202414 
202415 l_continue_with_lines       BOOLEAN := TRUE;
202416 --
202417 l_acc_rev_gl_date_source    DATE;                      -- 4262811
202418 --
202419 type t_array_event_id is table of number index by binary_integer;
202420 
202421 l_rec_array_event                    t_rec_array_event;
202422 l_null_rec_array_event               t_rec_array_event;
202423 l_array_ae_header_id                 xla_number_array_type;
202424 l_actual_flag                        VARCHAR2(1) := NULL;
202425 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
202426 l_balance_type_code                  VARCHAR2(1) :=NULL;
202430 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
202427 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
202428 
202429 --
202431 --
202432 
202433 TYPE t_array_source_3 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
202434 TYPE t_array_source_25 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
202435 TYPE t_array_source_27 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
202436 TYPE t_array_source_29 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PREPAY_TAX_DIFF_CCID%TYPE INDEX BY BINARY_INTEGER;
202437 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
202438 TYPE t_array_source_46 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
202439 TYPE t_array_source_55 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
202440 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
202441 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
202442 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
202443 TYPE t_array_source_86 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
202444 TYPE t_array_source_136 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
202445 TYPE t_array_source_137 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
202446 TYPE t_array_source_138 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
202447 TYPE t_array_source_165 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
202448 TYPE t_array_source_166 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
202449 TYPE t_array_source_167 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
202450 
202451 TYPE t_array_source_18 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
202452 TYPE t_array_source_24 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
202453 TYPE t_array_source_26 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
202454 TYPE t_array_source_40 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
202455 TYPE t_array_source_41 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
202456 TYPE t_array_source_43 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
202457 TYPE t_array_source_53 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
202458 TYPE t_array_source_54 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
202459 TYPE t_array_source_56 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
202460 TYPE t_array_source_57 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
202461 TYPE t_array_source_58 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
202462 TYPE t_array_source_59 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
202463 TYPE t_array_source_60 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
202464 TYPE t_array_source_65 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
202465 TYPE t_array_source_66 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
202466 TYPE t_array_source_67 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
202467 TYPE t_array_source_68 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
202468 TYPE t_array_source_74 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
202469 TYPE t_array_source_75 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
202470 TYPE t_array_source_76 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
202471 TYPE t_array_source_77 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
202472 TYPE t_array_source_78 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
202473 TYPE t_array_source_79 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
202474 TYPE t_array_source_80 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
202475 TYPE t_array_source_81 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
202476 TYPE t_array_source_87 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AID_ENCUMBERED_FLAG%TYPE INDEX BY BINARY_INTEGER;
202477 TYPE t_array_source_118 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
202478 TYPE t_array_source_119 IS TABLE OF AP_PREPAY_DEF_TAX_EXTRACT_V.DEF_REC_PP_SET_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
202479 TYPE t_array_source_120 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
202480 TYPE t_array_source_121 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASH_ALWAYS_PP_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
202481 TYPE t_array_source_122 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASH_ALWAYS_PREPAY_ENTITY%TYPE INDEX BY BINARY_INTEGER;
202482 TYPE t_array_source_123 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHALWAYS_PP_PMT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
202483 TYPE t_array_source_124 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHALWAYS_PP_PMT_ID%TYPE INDEX BY BINARY_INTEGER;
202484 TYPE t_array_source_125 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
202488 TYPE t_array_source_129 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.REVERSED_PREPAY_APP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
202485 TYPE t_array_source_126 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
202486 TYPE t_array_source_127 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
202487 TYPE t_array_source_128 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BASE_AMT_AT_PP_XRATE%TYPE INDEX BY BINARY_INTEGER;
202489 TYPE t_array_source_130 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
202490 TYPE t_array_source_132 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_PREPAY_REC_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
202491 TYPE t_array_source_133 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_PREPAY_REC_INV%TYPE INDEX BY BINARY_INTEGER;
202492 TYPE t_array_source_134 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
202493 TYPE t_array_source_139 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PREPAY_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
202494 TYPE t_array_source_140 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PREPAY_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
202495 TYPE t_array_source_141 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
202496 TYPE t_array_source_142 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PP_INV%TYPE INDEX BY BINARY_INTEGER;
202497 TYPE t_array_source_145 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BASE_AMT_AT_PP_PAY_XRATE%TYPE INDEX BY BINARY_INTEGER;
202498 TYPE t_array_source_150 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_BASE_AMOUNT_DIFF%TYPE INDEX BY BINARY_INTEGER;
202499 TYPE t_array_source_157 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.INV_PREPMT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
202500 
202501 l_array_source_3              t_array_source_3;
202502 l_array_source_3_meaning      t_array_lookup_meaning;
202503 l_array_source_25              t_array_source_25;
202504 l_array_source_27              t_array_source_27;
202505 l_array_source_29              t_array_source_29;
202506 l_array_source_37              t_array_source_37;
202507 l_array_source_46              t_array_source_46;
202508 l_array_source_55              t_array_source_55;
202509 l_array_source_69              t_array_source_69;
202510 l_array_source_70              t_array_source_70;
202511 l_array_source_71              t_array_source_71;
202512 l_array_source_86              t_array_source_86;
202513 l_array_source_86_meaning      t_array_lookup_meaning;
202514 l_array_source_136              t_array_source_136;
202515 l_array_source_137              t_array_source_137;
202516 l_array_source_138              t_array_source_138;
202517 l_array_source_165              t_array_source_165;
202518 l_array_source_166              t_array_source_166;
202519 l_array_source_167              t_array_source_167;
202520 
202521 l_array_source_18      t_array_source_18;
202522 l_array_source_24      t_array_source_24;
202523 l_array_source_26      t_array_source_26;
202524 l_array_source_40      t_array_source_40;
202525 l_array_source_41      t_array_source_41;
202526 l_array_source_43      t_array_source_43;
202527 l_array_source_53      t_array_source_53;
202528 l_array_source_54      t_array_source_54;
202529 l_array_source_56      t_array_source_56;
202530 l_array_source_57      t_array_source_57;
202531 l_array_source_58      t_array_source_58;
202532 l_array_source_59      t_array_source_59;
202533 l_array_source_60      t_array_source_60;
202534 l_array_source_65      t_array_source_65;
202535 l_array_source_66      t_array_source_66;
202536 l_array_source_67      t_array_source_67;
202537 l_array_source_68      t_array_source_68;
202538 l_array_source_68_meaning      t_array_lookup_meaning;
202539 l_array_source_74      t_array_source_74;
202540 l_array_source_75      t_array_source_75;
202541 l_array_source_76      t_array_source_76;
202542 l_array_source_77      t_array_source_77;
202543 l_array_source_78      t_array_source_78;
202544 l_array_source_79      t_array_source_79;
202545 l_array_source_80      t_array_source_80;
202546 l_array_source_81      t_array_source_81;
202547 l_array_source_87      t_array_source_87;
202548 l_array_source_87_meaning      t_array_lookup_meaning;
202549 l_array_source_118      t_array_source_118;
202550 l_array_source_119      t_array_source_119;
202551 l_array_source_119_meaning      t_array_lookup_meaning;
202552 l_array_source_120      t_array_source_120;
202553 l_array_source_121      t_array_source_121;
202554 l_array_source_122      t_array_source_122;
202555 l_array_source_123      t_array_source_123;
202556 l_array_source_124      t_array_source_124;
202557 l_array_source_125      t_array_source_125;
202558 l_array_source_126      t_array_source_126;
202559 l_array_source_127      t_array_source_127;
202560 l_array_source_128      t_array_source_128;
202561 l_array_source_129      t_array_source_129;
202562 l_array_source_130      t_array_source_130;
202563 l_array_source_130_meaning      t_array_lookup_meaning;
202564 l_array_source_132      t_array_source_132;
202565 l_array_source_133      t_array_source_133;
202566 l_array_source_134      t_array_source_134;
202567 l_array_source_139      t_array_source_139;
202568 l_array_source_140      t_array_source_140;
202569 l_array_source_141      t_array_source_141;
202570 l_array_source_142      t_array_source_142;
202571 l_array_source_145      t_array_source_145;
202572 l_array_source_150      t_array_source_150;
202573 l_array_source_157      t_array_source_157;
202574 
202575 --
202576 CURSOR header_cur
202577 IS
202578 SELECT /*+ leading(xet) cardinality(xet,1) */
202579 -- Event Class Code: PREPAYMENT APPLICATIONS
202580     xet.entity_id
202581    ,xet.legal_entity_id
202582    ,xet.entity_code
202583    ,xet.transaction_number
202584    ,xet.event_id
202585    ,xet.event_class_code
202586    ,xet.event_type_code
202587    ,xet.event_number
202591    ,xet.reference_num_2
202588    ,xet.event_date
202589    ,xet.transaction_date
202590    ,xet.reference_num_1
202592    ,xet.reference_num_3
202593    ,xet.reference_num_4
202594    ,xet.reference_char_1
202595    ,xet.reference_char_2
202596    ,xet.reference_char_3
202597    ,xet.reference_char_4
202598    ,xet.reference_date_1
202599    ,xet.reference_date_2
202600    ,xet.reference_date_3
202601    ,xet.reference_date_4
202602    ,xet.event_created_by
202603    ,xet.budgetary_control_flag 
202604   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_3
202605   , fvl3.meaning   source_3_meaning
202606   , h4.ASP_GAIN_CCID    source_25
202607   , h4.ASP_LOSS_CCID    source_27
202608   , h4.ASP_PREPAY_TAX_DIFF_CCID    source_29
202609   , h4.ASP_ROUNDING_ERROR_CCID    source_37
202610   , h1.AI_INVOICE_ID    source_46
202611   , h1.AI_INVOICE_CURRENCY_CODE    source_55
202612   , h1.AI_VENDOR_ID    source_69
202613   , h1.AI_VENDOR_SITE_ID    source_70
202614   , h1.THIRD_PARTY_TYPE    source_71
202615   , h4.FSP_PURCH_ENCUMBRANCE_FLAG    source_86
202616   , fvl86.meaning   source_86_meaning
202617   , h1.INV_EXCHANGE_DATE    source_136
202618   , h1.INV_EXCHANGE_RATE    source_137
202619   , h1.INV_EXCHANGE_RATE_TYPE    source_138
202620   , h1.INV_DOC_SEQUENCE_CATEGORY    source_165
202621   , h1.INV_DOC_SEQUENCE_IDENTIFIER    source_166
202622   , h1.INV_DOC_SEQUENCE_VALUE    source_167
202623   FROM xla_events_gt     xet 
202624   , AP_INVOICE_EXTRACT_HEADER_V  h1
202625   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
202626   , fnd_lookup_values    fvl3
202627   , fnd_lookup_values    fvl86
202628  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
202629    and xet.event_class_code = C_EVENT_CLASS_CODE
202630    and xet.event_status_code <> 'N'  AND h1.event_id = xet.event_id
202631  AND h4.asp_org_id = h1.ai_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
202632   AND fvl3.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
202633   AND fvl3.view_application_id(+) = 200
202634   AND fvl3.language(+)            = USERENV('LANG')
202635      AND fvl86.lookup_type(+)         = 'YES_NO'
202636   AND fvl86.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
202637   AND fvl86.view_application_id(+) = 0
202638   AND fvl86.language(+)            = USERENV('LANG')
202639   
202640  ORDER BY event_id
202641 ;
202642 
202643 
202644 --
202645 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
202646 IS
202647 SELECT  /*+ leading(xet) cardinality(xet,1) */
202648 -- Event Class Code: PREPAYMENT APPLICATIONS
202649     xet.entity_id
202650    ,xet.legal_entity_id
202651    ,xet.entity_code
202652    ,xet.transaction_number
202653    ,xet.event_id
202654    ,xet.event_class_code
202655    ,xet.event_type_code
202656    ,xet.event_number
202657    ,xet.event_date
202658    ,xet.transaction_date
202659    ,xet.reference_num_1
202660    ,xet.reference_num_2
202661    ,xet.reference_num_3
202662    ,xet.reference_num_4
202663    ,xet.reference_char_1
202664    ,xet.reference_char_2
202665    ,xet.reference_char_3
202666    ,xet.reference_char_4
202667    ,xet.reference_date_1
202668    ,xet.reference_date_2
202669    ,xet.reference_date_3
202670    ,xet.reference_date_4
202671    ,xet.event_created_by
202672    ,xet.budgetary_control_flag
202673  , l2.LINE_NUMBER  
202674   , l2.AID_DIST_CCID    source_18
202675   , l2.CGAC_GAIN_CCID    source_24
202676   , l2.CGAC_LOSS_CCID    source_26
202677   , l5.TAX_ACCOUNT_CCID    source_40
202678   , l2.DIST_ACCOUNT_REVERSAL_OPTION    source_41
202679   , l2.DISTRIBUTION_LINK_TYPE    source_43
202680   , l2.UPG_ENC_CR_CCID    source_53
202681   , l2.UPG_ENC_CR_AMT    source_54
202682   , l2.UPG_ENC_CR_BASE_AMT    source_56
202683   , l2.UPG_ENC_DR_CCID    source_57
202684   , l2.UPG_ENC_DR_AMT    source_58
202685   , l2.UPG_ENC_DR_BASE_AMT    source_59
202686   , l2.UPG_AP_ENCUM_OPTION    source_60
202687   , l2.DEFERRED_END_DATE    source_65
202688   , l2.DEFERRED_OPTION    source_66
202689   , l2.DEFERRED_START_DATE    source_67
202690   , l2.OVERRIDE_ACCTD_AMT_FLAG    source_68
202691   , fvl68.meaning   source_68_meaning
202692   , l5.TAX_LINE_ID    source_74
202693   , l6.REC_NREC_TAX_DIST_ID    source_75
202694   , l2.SUMMARY_TAX_LINE_ID    source_76
202695   , l2.UPG_CR_ENC_TYPE_ID    source_77
202696   , l2.UPG_DR_ENC_TYPE_ID    source_78
202697   , l2.BUS_FLOW_AP_APP_ID    source_79
202698   , l2.BUS_FLOW_INV_DIST_TYPE    source_80
202699   , l2.BUS_FLOW_INV_ENTITY_CODE    source_81
202700   , l2.AID_ENCUMBERED_FLAG    source_87
202701   , fvl87.meaning   source_87_meaning
202702   , l2.APAD_DIST_LOOKUP_CODE    source_118
202703   , l3.DEF_REC_PP_SET_OPTION_CODE    source_119
202704   , fvl119.meaning   source_119_meaning
202705   , l2.APAD_DISTRIBUTION_IDENTIFIER    source_120
202706   , l2.BF_CASH_ALWAYS_PP_DIST_TYPE    source_121
202707   , l2.BF_CASH_ALWAYS_PREPAY_ENTITY    source_122
202708   , l2.BF_CASHALWAYS_PP_PMT_DIST_ID    source_123
202709   , l2.BF_CASHALWAYS_PP_PMT_ID    source_124
202710   , l2.UPG_ENC_CR_ACCT_CLASS    source_125
202711   , l2.UPG_ENC_DR_ACCT_CLASS    source_126
202712   , l2.APAD_AMOUNT    source_127
202713   , l2.BASE_AMT_AT_PP_XRATE    source_128
202714   , l2.REVERSED_PREPAY_APP_DIST_ID    source_129
202715   , l5.DEF_REC_SETTLEMENT_OPTION_CODE    source_130
202716   , fvl130.meaning   source_130_meaning
202717   , l2.BF_PREPAY_REC_DIST_ID    source_132
202718   , l2.BF_PREPAY_REC_INV    source_133
202719   , l2.APAD_BASE_AMOUNT    source_134
202720   , l2.BF_ACCRUAL_PREPAY_DIST_TYPE    source_139
202721   , l2.BF_ACCRUAL_PREPAY_ENTITY_CODE    source_140
202722   , l2.BF_ACCRUAL_PP_DIST_ID    source_141
202726   , l2.INV_PREPMT_GAIN_LOSS_INDICATOR    source_157
202723   , l2.BF_ACCRUAL_PP_INV    source_142
202724   , l2.BASE_AMT_AT_PP_PAY_XRATE    source_145
202725   , l2.APAD_BASE_AMOUNT_DIFF    source_150
202727   FROM xla_events_gt     xet 
202728   , AP_PREPAYAPP_EXTRACT_DETAILS_V  l2
202729   , AP_PREPAY_DEF_TAX_EXTRACT_V  l3
202730   , ZX_AP_DEF_TAX_EXTRACT_V  l5
202731   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
202732   , fnd_lookup_values    fvl68
202733   , fnd_lookup_values    fvl87
202734   , fnd_lookup_values    fvl119
202735   , fnd_lookup_values    fvl130
202736  WHERE xet.event_id between x_first_event_id and x_last_event_id
202737    and xet.event_date between p_pad_start_date and p_pad_end_date
202738    and xet.event_class_code = C_EVENT_CLASS_CODE
202739    and xet.event_status_code <> 'N'   AND l2.event_id      = xet.event_id
202740  AND l2.PP_DETAIL_TAX_DIST_ID = l3.REC_NREC_PP_TAX_DIST_ID (+)  AND l2.RECP_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+)  AND l2.RECP_DETAIL_TAX_DIST_ID = l6.REC_NREC_TAX_DIST_ID (+)    AND fvl68.lookup_type(+)         = 'YES_NO'
202741   AND fvl68.lookup_code(+)         = l2.OVERRIDE_ACCTD_AMT_FLAG
202742   AND fvl68.view_application_id(+) = 0
202743   AND fvl68.language(+)            = USERENV('LANG')
202744      AND fvl87.lookup_type(+)         = 'YES_NO'
202745   AND fvl87.lookup_code(+)         = l2.AID_ENCUMBERED_FLAG
202746   AND fvl87.view_application_id(+) = 0
202747   AND fvl87.language(+)            = USERENV('LANG')
202748      AND fvl119.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
202749   AND fvl119.lookup_code(+)         = l3.DEF_REC_PP_SET_OPTION_CODE
202750   AND fvl119.view_application_id(+) = 0
202751   AND fvl119.language(+)            = USERENV('LANG')
202752      AND fvl130.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
202753   AND fvl130.lookup_code(+)         = l5.DEF_REC_SETTLEMENT_OPTION_CODE
202754   AND fvl130.view_application_id(+) = 0
202755   AND fvl130.language(+)            = USERENV('LANG')
202756   ;
202757 
202758 --
202759 BEGIN
202760 IF g_log_enabled THEN
202761    l_log_module := C_DEFAULT_MODULE||'.EventClass_297';
202762 END IF;
202763 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
202764    trace
202765       (p_msg      => 'BEGIN of EventClass_297'
202766       ,p_level    => C_LEVEL_PROCEDURE
202767       ,p_module   => l_log_module);
202768 END IF;
202769 
202770 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
202771    trace
202772       (p_msg      => 'p_application_id = '||p_application_id||
202773                      ' - p_base_ledger_id = '||p_base_ledger_id||
202774                      ' - p_target_ledger_id  = '||p_target_ledger_id||
202775                      ' - p_language = '||p_language||
202776                      ' - p_currency_code = '||p_currency_code||
202777                      ' - p_sla_ledger_id = '||p_sla_ledger_id
202778       ,p_level    => C_LEVEL_STATEMENT
202779       ,p_module   => l_log_module);
202780 END IF;
202781 --
202782 -- initialze arrays
202783 --
202784 g_array_event.DELETE;
202785 l_rec_array_event := l_null_rec_array_event;
202786 --
202787 --------------------------------------
202788 -- 4262811 Initialze MPA Line Number
202789 --------------------------------------
202790 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
202791 
202792 --
202793 
202794 --
202795 OPEN header_cur;
202796 --
202797 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
202798    trace
202799    (p_msg      => 'SQL - FETCH header_cur'
202800    ,p_level    => C_LEVEL_STATEMENT
202801    ,p_module   => l_log_module);
202802 END IF;
202803 --
202804 LOOP
202805 FETCH header_cur BULK COLLECT INTO
202806         l_array_entity_id
202807       , l_array_legal_entity_id
202808       , l_array_entity_code
202809       , l_array_transaction_num
202810       , l_array_event_id
202811       , l_array_class_code
202812       , l_array_event_type
202813       , l_array_event_number
202814       , l_array_event_date
202815       , l_array_transaction_date
202816       , l_array_reference_num_1
202817       , l_array_reference_num_2
202818       , l_array_reference_num_3
202819       , l_array_reference_num_4
202820       , l_array_reference_char_1
202821       , l_array_reference_char_2
202822       , l_array_reference_char_3
202823       , l_array_reference_char_4
202824       , l_array_reference_date_1
202825       , l_array_reference_date_2
202826       , l_array_reference_date_3
202827       , l_array_reference_date_4
202828       , l_array_event_created_by
202829       , l_array_budgetary_control_flag 
202830       , l_array_source_3
202831       , l_array_source_3_meaning
202832       , l_array_source_25
202833       , l_array_source_27
202834       , l_array_source_29
202835       , l_array_source_37
202836       , l_array_source_46
202837       , l_array_source_55
202838       , l_array_source_69
202839       , l_array_source_70
202840       , l_array_source_71
202841       , l_array_source_86
202842       , l_array_source_86_meaning
202843       , l_array_source_136
202844       , l_array_source_137
202845       , l_array_source_138
202846       , l_array_source_165
202847       , l_array_source_166
202848       , l_array_source_167
202849       LIMIT l_rows;
202850 --
202851 IF (C_LEVEL_EVENT >= g_log_level) THEN
202852    trace
202853    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
202854    ,p_level    => C_LEVEL_EVENT
202855    ,p_module   => l_log_module);
202856 END IF;
202857 --
202858 EXIT WHEN l_array_entity_id.COUNT = 0;
202859 
202860 -- initialize arrays
202861 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
202865 -- Bug 4458708
202862 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
202863 
202864 --
202866 --
202867 XLA_AE_LINES_PKG.g_LineNumber := 0;
202868 
202869 
202870 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
202871 g_last_hdr_idx := l_array_event_id.LAST;
202872 --
202873 -- loop for the headers. Each iteration is for each header extract row
202874 -- fetched in header cursor
202875 --
202876 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
202877 
202878 --
202879 -- set event info as cache for other routines to refer event attributes
202880 --
202881 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
202882    (p_application_id           => p_application_id
202883    ,p_primary_ledger_id        => p_primary_ledger_id
202884    ,p_base_ledger_id           => p_base_ledger_id
202885    ,p_target_ledger_id         => p_target_ledger_id
202886    ,p_entity_id                => l_array_entity_id(hdr_idx)
202887    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
202888    ,p_entity_code              => l_array_entity_code(hdr_idx)
202889    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
202890    ,p_event_id                 => l_array_event_id(hdr_idx)
202891    ,p_event_class_code         => l_array_class_code(hdr_idx)
202892    ,p_event_type_code          => l_array_event_type(hdr_idx)
202893    ,p_event_number             => l_array_event_number(hdr_idx)
202894    ,p_event_date               => l_array_event_date(hdr_idx)
202895    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
202896    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
202897    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
202898    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
202899    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
202900    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
202901    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
202902    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
202903    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
202904    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
202905    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
202906    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
202907    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
202908    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
202909    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
202910 
202911 --
202912 -- set the status of entry to C_VALID (0)
202913 --
202914 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
202915 
202916 --
202917 -- initialize a row for ae header
202918 --
202919 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
202920 
202921 l_event_id := l_array_event_id(hdr_idx);
202922 
202923 --
202924 -- storing the hdr_idx for event. May be used by line cursor.
202925 --
202926 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
202927 
202928 --
202929 -- store sources from header extract. This can be improved to
202930 -- store only those sources from header extract that may be used in lines
202931 --
202932 
202933 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
202934 g_array_event(l_event_id).array_value_char('source_3_meaning') := l_array_source_3_meaning(hdr_idx);
202935 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
202936 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
202937 g_array_event(l_event_id).array_value_num('source_29') := l_array_source_29(hdr_idx);
202938 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
202939 g_array_event(l_event_id).array_value_num('source_46') := l_array_source_46(hdr_idx);
202940 g_array_event(l_event_id).array_value_char('source_55') := l_array_source_55(hdr_idx);
202941 g_array_event(l_event_id).array_value_num('source_69') := l_array_source_69(hdr_idx);
202942 g_array_event(l_event_id).array_value_num('source_70') := l_array_source_70(hdr_idx);
202943 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
202944 g_array_event(l_event_id).array_value_char('source_86') := l_array_source_86(hdr_idx);
202945 g_array_event(l_event_id).array_value_char('source_86_meaning') := l_array_source_86_meaning(hdr_idx);
202946 g_array_event(l_event_id).array_value_date('source_136') := l_array_source_136(hdr_idx);
202947 g_array_event(l_event_id).array_value_num('source_137') := l_array_source_137(hdr_idx);
202948 g_array_event(l_event_id).array_value_char('source_138') := l_array_source_138(hdr_idx);
202949 g_array_event(l_event_id).array_value_char('source_165') := l_array_source_165(hdr_idx);
202950 g_array_event(l_event_id).array_value_num('source_166') := l_array_source_166(hdr_idx);
202951 g_array_event(l_event_id).array_value_num('source_167') := l_array_source_167(hdr_idx);
202952 
202953 --
202954 -- initilaize the status of ae headers for diffrent balance types
202955 -- the status is initialised to C_NOT_CREATED (2)
202956 --
202957 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
202958 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
202959 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
202960 
202961 --
202962 -- call api to validate and store accounting attributes for header
202963 --
202964 
202965 ------------------------------------------------------------
202966 -- Accrual Reversal : to get date for Standard Source (NONE)
202967 ------------------------------------------------------------
202968 l_acc_rev_gl_date_source := NULL;
202969 
202970      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
202974      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
202971       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_165');
202972      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
202973       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_166');
202975       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_167');
202976      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
202977       l_rec_acct_attrs.array_date_value(4) := 
202978 xla_ae_sources_pkg.GetSystemSourceDate(
202979    p_source_code           => 'XLA_EVENT_DATE'
202980  , p_source_type_code      => 'Y'
202981  , p_source_application_id =>  602
202982 );
202983 
202984 
202985 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
202986 
202987 XLA_AE_HEADER_PKG.SetJeCategoryName;
202988 
202989 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
202990 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
202991 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
202992 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
202993 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
202994 
202995 
202996 -- No header level analytical criteria
202997 
202998 --
202999 --accounting attribute enhancement, bug 3612931
203000 --
203001 l_trx_reversal_source := SUBSTR(NULL, 1,30);
203002 
203003 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
203004    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
203005 
203006    xla_accounting_err_pkg.build_message
203007       (p_appli_s_name            => 'XLA'
203008       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
203009       ,p_token_1                 => 'ACCT_ATTR_NAME'
203010       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
203011       ,p_token_2                 => 'PRODUCT_NAME'
203012       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
203013       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
203014       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
203015       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
203016 
203017 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
203018    --
203019    -- following sets the accounting attributes needed to reverse
203020    -- accounting for a distributeion
203021    --
203022    xla_ae_lines_pkg.SetTrxReversalAttrs
203023       (p_event_id              => l_event_id
203024       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
203025       ,p_trx_reversal_source   => l_trx_reversal_source);
203026 
203027 END IF;
203028 
203029 
203030 ----------------------------------------------------------------
203031 -- 4262811 -  update the header statuses to invalid in need be
203032 ----------------------------------------------------------------
203033 --
203034 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
203035 
203036 
203037   -----------------------------------------------
203038   -- No accrual reversal for the event class/type
203039   -----------------------------------------------
203040 ----------------------------------------------------------------
203041 
203042 --
203043 -- this ends the header loop iteration for one bulk fetch
203044 --
203045 END LOOP;
203046 
203047 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
203048 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
203049 
203050 --
203051 -- insert dummy rows into lines gt table that were created due to
203052 -- transaction reversals
203053 --
203054 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
203055    l_result := XLA_AE_LINES_PKG.InsertLines;
203056 END IF;
203057 
203058 --
203059 -- reset the temp_line_num for each set of events fetched from header
203060 -- cursor rather than doing it for each new event in line cursor
203061 -- Bug 3939231
203062 --
203063 xla_ae_lines_pkg.g_temp_line_num := 0;
203064 
203065 
203066 
203067 --
203068 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
203069 --
203070 --
203071 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
203072 
203073       trace
203074          (p_msg      => 'SQL - FETCH line_cur'
203075          ,p_level    => C_LEVEL_STATEMENT
203076          ,p_module   => l_log_module);
203077 
203078 END IF;
203079 --
203080 --
203081 LOOP
203082   --
203083   FETCH line_cur BULK COLLECT INTO
203084         l_array_entity_id
203085       , l_array_legal_entity_id
203086       , l_array_entity_code
203087       , l_array_transaction_num
203088       , l_array_event_id
203089       , l_array_class_code
203090       , l_array_event_type
203091       , l_array_event_number
203092       , l_array_event_date
203093       , l_array_transaction_date
203094       , l_array_reference_num_1
203095       , l_array_reference_num_2
203096       , l_array_reference_num_3
203097       , l_array_reference_num_4
203098       , l_array_reference_char_1
203099       , l_array_reference_char_2
203100       , l_array_reference_char_3
203101       , l_array_reference_char_4
203102       , l_array_reference_date_1
203103       , l_array_reference_date_2
203104       , l_array_reference_date_3
203105       , l_array_reference_date_4
203106       , l_array_event_created_by
203107       , l_array_budgetary_control_flag
203108       , l_array_extract_line_num 
203112       , l_array_source_40
203109       , l_array_source_18
203110       , l_array_source_24
203111       , l_array_source_26
203113       , l_array_source_41
203114       , l_array_source_43
203115       , l_array_source_53
203116       , l_array_source_54
203117       , l_array_source_56
203118       , l_array_source_57
203119       , l_array_source_58
203120       , l_array_source_59
203121       , l_array_source_60
203122       , l_array_source_65
203123       , l_array_source_66
203124       , l_array_source_67
203125       , l_array_source_68
203126       , l_array_source_68_meaning
203127       , l_array_source_74
203128       , l_array_source_75
203129       , l_array_source_76
203130       , l_array_source_77
203131       , l_array_source_78
203132       , l_array_source_79
203133       , l_array_source_80
203134       , l_array_source_81
203135       , l_array_source_87
203136       , l_array_source_87_meaning
203137       , l_array_source_118
203138       , l_array_source_119
203139       , l_array_source_119_meaning
203140       , l_array_source_120
203141       , l_array_source_121
203142       , l_array_source_122
203143       , l_array_source_123
203144       , l_array_source_124
203145       , l_array_source_125
203146       , l_array_source_126
203147       , l_array_source_127
203148       , l_array_source_128
203149       , l_array_source_129
203150       , l_array_source_130
203151       , l_array_source_130_meaning
203152       , l_array_source_132
203153       , l_array_source_133
203154       , l_array_source_134
203155       , l_array_source_139
203156       , l_array_source_140
203157       , l_array_source_141
203158       , l_array_source_142
203159       , l_array_source_145
203160       , l_array_source_150
203161       , l_array_source_157
203162       LIMIT l_rows;
203163 
203164   --
203165   IF (C_LEVEL_EVENT >= g_log_level) THEN
203166             trace
203167                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
203168                ,p_level    => C_LEVEL_EVENT
203169                ,p_module   => l_log_module);
203170   END IF;
203171   --
203172   EXIT WHEN l_array_entity_id.count = 0;
203173 
203174   XLA_AE_LINES_PKG.g_rec_lines := null;
203175 
203176 --
203177 -- Bug 4458708
203178 --
203179 XLA_AE_LINES_PKG.g_LineNumber := 0;
203180 --
203181 --
203182 
203183 FOR Idx IN 1..l_array_event_id.count LOOP
203184    --
203185    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
203186    --
203187    l_event_id := l_array_event_id(idx);  -- 5648433
203188 
203189    --
203190    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
203191    --
203192 
203193    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
203194              (g_array_event(l_event_id).array_value_num('header_index'))
203195          ,'N'
203196          ) <> 'Y'
203197    THEN
203198       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
203199          trace
203200             (p_msg      => 'Trancaction revesal option is not Y '
203201             ,p_level    => C_LEVEL_STATEMENT
203202             ,p_module   => l_log_module);
203203       END IF;
203204 
203205 --
203206 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
203207 --
203208 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
203209 --
203210 -- set event info as cache for other routines to refer event attributes
203211 --
203212 
203213 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
203214    l_previous_event_id := l_event_id;
203215 
203216    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
203217       (p_application_id           => p_application_id
203218       ,p_primary_ledger_id        => p_primary_ledger_id
203219       ,p_base_ledger_id           => p_base_ledger_id
203220       ,p_target_ledger_id         => p_target_ledger_id
203221       ,p_entity_id                => l_array_entity_id(Idx)
203222       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
203223       ,p_entity_code              => l_array_entity_code(Idx)
203224       ,p_transaction_num          => l_array_transaction_num(Idx)
203225       ,p_event_id                 => l_array_event_id(Idx)
203226       ,p_event_class_code         => l_array_class_code(Idx)
203227       ,p_event_type_code          => l_array_event_type(Idx)
203228       ,p_event_number             => l_array_event_number(Idx)
203229       ,p_event_date               => l_array_event_date(Idx)
203230       ,p_transaction_date         => l_array_transaction_date(Idx)
203231       ,p_reference_num_1          => l_array_reference_num_1(Idx)
203232       ,p_reference_num_2          => l_array_reference_num_2(Idx)
203233       ,p_reference_num_3          => l_array_reference_num_3(Idx)
203234       ,p_reference_num_4          => l_array_reference_num_4(Idx)
203235       ,p_reference_char_1         => l_array_reference_char_1(Idx)
203236       ,p_reference_char_2         => l_array_reference_char_2(Idx)
203237       ,p_reference_char_3         => l_array_reference_char_3(Idx)
203238       ,p_reference_char_4         => l_array_reference_char_4(Idx)
203239       ,p_reference_date_1         => l_array_reference_date_1(Idx)
203240       ,p_reference_date_2         => l_array_reference_date_2(Idx)
203241       ,p_reference_date_3         => l_array_reference_date_3(Idx)
203242       ,p_reference_date_4         => l_array_reference_date_4(Idx)
203243       ,p_event_created_by         => l_array_event_created_by(Idx)
203244       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
203245        --
203246 END IF;
203247 
203248 
203249 
203250 --
203254 
203251 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
203252 
203253 l_acct_reversal_source := SUBSTR(l_array_source_41(Idx), 1,30);
203255 IF l_continue_with_lines THEN
203256    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
203257       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
203258 
203259       xla_accounting_err_pkg.build_message
203260          (p_appli_s_name            => 'XLA'
203261          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
203262          ,p_token_1                 => 'LINE_NUMBER'
203263          ,p_value_1                 => l_array_extract_line_num(Idx)
203264          ,p_token_2                 => 'PRODUCT_NAME'
203265          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
203266          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
203267          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
203268          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
203269 
203270    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
203271       --
203272       -- following sets the accounting attributes needed to reverse
203273       -- accounting for a distributeion
203274       --
203275 
203276       --
203277       -- 5217187
203278       --
203279       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
203280       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
203281                                        g_array_event(l_event_id).array_value_num('header_index'));
203282       --
203283       --
203284 
203285       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
203286       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_41(Idx);
203287       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
203288       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_120(Idx);
203289       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
203290       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_43(Idx);
203291       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_ACCT_CLASS';
203292       l_rec_rev_acct_attrs.array_char_value(5)  := l_array_source_125(Idx);
203293       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_CCID';
203294       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_53(Idx);
203295       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_AMT';
203296       l_rec_rev_acct_attrs.array_num_value(7)  := l_array_source_54(Idx);
203297       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_CURR';
203298       l_rec_rev_acct_attrs.array_char_value(8)  := g_array_event(l_event_id).array_value_char('source_55');
203299       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_LEDGER_AMT';
203300       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_56(Idx);
203301       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ACCT_CLASS';
203302       l_rec_rev_acct_attrs.array_char_value(10)  := l_array_source_126(Idx);
203303       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_CCID';
203304       l_rec_rev_acct_attrs.array_num_value(11)  := l_array_source_57(Idx);
203305       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_ENTERED_AMT';
203306       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_58(Idx);
203307       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_CURR';
203308       l_rec_rev_acct_attrs.array_char_value(13)  := g_array_event(l_event_id).array_value_char('source_55');
203309       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_LEDGER_AMT';
203310       l_rec_rev_acct_attrs.array_num_value(14)  := l_array_source_59(Idx);
203311       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_OPTION';
203312       l_rec_rev_acct_attrs.array_char_value(15)  := l_array_source_60(Idx);
203313       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
203314       l_rec_rev_acct_attrs.array_char_value(16)  := g_array_event(l_event_id).array_value_char('source_71');
203315       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
203316       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_129(Idx);
203317       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_TYPE';
203318       l_rec_rev_acct_attrs.array_char_value(18)  := l_array_source_43(Idx);
203319       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_LINE_REF_ID';
203320       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_74(Idx);
203321       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'TAX_REC_NREC_DIST_REF_ID';
203322       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_75(Idx);
203323       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'TAX_SUMMARY_LINE_REF_ID';
203324       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_76(Idx);
203325       l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'UPG_CR_ENC_TYPE_ID';
203326       l_rec_rev_acct_attrs.array_num_value(22)  := l_array_source_77(Idx);
203327       l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'UPG_DR_ENC_TYPE_ID';
203328       l_rec_rev_acct_attrs.array_num_value(23)  := l_array_source_78(Idx);
203329 
203330 
203331       xla_ae_lines_pkg.SetAcctReversalAttrs
203332          (p_event_id             => l_event_id
203333          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
203334          ,p_calculate_acctd_flag => l_calculate_acctd_flag
203335          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
203336    END IF;
203337 
203338    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
203339        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
203340 
203341 --
203342 AcctLineType_98 (
203343  p_application_id  => p_application_id
203344  ,p_event_id     => l_event_id
203348  ,p_balance_type_code => l_balance_type_code
203345  ,p_calculate_acctd_flag => l_calculate_acctd_flag
203346  ,p_calculate_g_l_flag => l_calculate_g_l_flag
203347  ,p_actual_flag => l_actual_flag
203349  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
203350  
203351  , p_source_41 => l_array_source_41(Idx)
203352  , p_source_43 => l_array_source_43(Idx)
203353  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
203354  , p_source_53 => l_array_source_53(Idx)
203355  , p_source_54 => l_array_source_54(Idx)
203356  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
203357  , p_source_56 => l_array_source_56(Idx)
203358  , p_source_57 => l_array_source_57(Idx)
203359  , p_source_58 => l_array_source_58(Idx)
203360  , p_source_59 => l_array_source_59(Idx)
203361  , p_source_60 => l_array_source_60(Idx)
203362  , p_source_65 => l_array_source_65(Idx)
203363  , p_source_66 => l_array_source_66(Idx)
203364  , p_source_67 => l_array_source_67(Idx)
203365  , p_source_68 => l_array_source_68(Idx)
203366  , p_source_68_meaning => l_array_source_68_meaning(Idx)
203367  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
203368  , p_source_74 => l_array_source_74(Idx)
203369  , p_source_75 => l_array_source_75(Idx)
203370  , p_source_76 => l_array_source_76(Idx)
203371  , p_source_77 => l_array_source_77(Idx)
203372  , p_source_78 => l_array_source_78(Idx)
203373  , p_source_79 => l_array_source_79(Idx)
203374  , p_source_118 => l_array_source_118(Idx)
203375  , p_source_119 => l_array_source_119(Idx)
203376  , p_source_119_meaning => l_array_source_119_meaning(Idx)
203377  , p_source_120 => l_array_source_120(Idx)
203378  , p_source_121 => l_array_source_121(Idx)
203379  , p_source_122 => l_array_source_122(Idx)
203380  , p_source_123 => l_array_source_123(Idx)
203381  , p_source_124 => l_array_source_124(Idx)
203382  , p_source_125 => l_array_source_125(Idx)
203383  , p_source_126 => l_array_source_126(Idx)
203384  , p_source_127 => l_array_source_127(Idx)
203385  , p_source_128 => l_array_source_128(Idx)
203386  , p_source_129 => l_array_source_129(Idx)
203387  );
203388 If(l_balance_type_code = 'A') THEN
203389   l_actual_gain_loss_ref := l_gain_or_loss_ref;
203390 END IF;
203391 
203392 --
203393 
203394 
203395 --
203396 AcctLineType_103 (
203397  p_application_id  => p_application_id
203398  ,p_event_id     => l_event_id
203399  ,p_calculate_acctd_flag => l_calculate_acctd_flag
203400  ,p_calculate_g_l_flag => l_calculate_g_l_flag
203401  ,p_actual_flag => l_actual_flag
203402  ,p_balance_type_code => l_balance_type_code
203403  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
203404  
203405  , p_source_41 => l_array_source_41(Idx)
203406  , p_source_43 => l_array_source_43(Idx)
203407  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
203408  , p_source_53 => l_array_source_53(Idx)
203409  , p_source_54 => l_array_source_54(Idx)
203410  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
203411  , p_source_56 => l_array_source_56(Idx)
203412  , p_source_57 => l_array_source_57(Idx)
203413  , p_source_58 => l_array_source_58(Idx)
203414  , p_source_59 => l_array_source_59(Idx)
203415  , p_source_60 => l_array_source_60(Idx)
203416  , p_source_65 => l_array_source_65(Idx)
203417  , p_source_66 => l_array_source_66(Idx)
203418  , p_source_67 => l_array_source_67(Idx)
203419  , p_source_68 => l_array_source_68(Idx)
203420  , p_source_68_meaning => l_array_source_68_meaning(Idx)
203421  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
203422  , p_source_74 => l_array_source_74(Idx)
203423  , p_source_75 => l_array_source_75(Idx)
203424  , p_source_76 => l_array_source_76(Idx)
203425  , p_source_77 => l_array_source_77(Idx)
203426  , p_source_78 => l_array_source_78(Idx)
203427  , p_source_79 => l_array_source_79(Idx)
203428  , p_source_80 => l_array_source_80(Idx)
203429  , p_source_81 => l_array_source_81(Idx)
203430  , p_source_120 => l_array_source_120(Idx)
203431  , p_source_125 => l_array_source_125(Idx)
203432  , p_source_126 => l_array_source_126(Idx)
203433  , p_source_127 => l_array_source_127(Idx)
203434  , p_source_129 => l_array_source_129(Idx)
203435  , p_source_130 => l_array_source_130(Idx)
203436  , p_source_130_meaning => l_array_source_130_meaning(Idx)
203437  , p_source_132 => l_array_source_132(Idx)
203438  , p_source_133 => l_array_source_133(Idx)
203439  , p_source_134 => l_array_source_134(Idx)
203440  );
203441 If(l_balance_type_code = 'A') THEN
203442   l_actual_gain_loss_ref := l_gain_or_loss_ref;
203443 END IF;
203444 
203445 --
203446 
203447 
203448 --
203449 AcctLineType_107 (
203450  p_application_id  => p_application_id
203451  ,p_event_id     => l_event_id
203452  ,p_calculate_acctd_flag => l_calculate_acctd_flag
203453  ,p_calculate_g_l_flag => l_calculate_g_l_flag
203454  ,p_actual_flag => l_actual_flag
203455  ,p_balance_type_code => l_balance_type_code
203456  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
203457  
203458  , p_source_40 => l_array_source_40(Idx)
203459  , p_source_41 => l_array_source_41(Idx)
203460  , p_source_43 => l_array_source_43(Idx)
203461  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
203462  , p_source_53 => l_array_source_53(Idx)
203463  , p_source_54 => l_array_source_54(Idx)
203464  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
203465  , p_source_56 => l_array_source_56(Idx)
203466  , p_source_57 => l_array_source_57(Idx)
203467  , p_source_58 => l_array_source_58(Idx)
203468  , p_source_59 => l_array_source_59(Idx)
203469  , p_source_60 => l_array_source_60(Idx)
203470  , p_source_65 => l_array_source_65(Idx)
203471  , p_source_66 => l_array_source_66(Idx)
203472  , p_source_67 => l_array_source_67(Idx)
203476  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
203473  , p_source_68 => l_array_source_68(Idx)
203474  , p_source_68_meaning => l_array_source_68_meaning(Idx)
203475  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
203477  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
203478  , p_source_74 => l_array_source_74(Idx)
203479  , p_source_75 => l_array_source_75(Idx)
203480  , p_source_76 => l_array_source_76(Idx)
203481  , p_source_77 => l_array_source_77(Idx)
203482  , p_source_78 => l_array_source_78(Idx)
203483  , p_source_79 => l_array_source_79(Idx)
203484  , p_source_120 => l_array_source_120(Idx)
203485  , p_source_125 => l_array_source_125(Idx)
203486  , p_source_126 => l_array_source_126(Idx)
203487  , p_source_127 => l_array_source_127(Idx)
203488  , p_source_129 => l_array_source_129(Idx)
203489  , p_source_130 => l_array_source_130(Idx)
203490  , p_source_130_meaning => l_array_source_130_meaning(Idx)
203491  , p_source_134 => l_array_source_134(Idx)
203492  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
203493  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
203494  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
203495  , p_source_139 => l_array_source_139(Idx)
203496  , p_source_140 => l_array_source_140(Idx)
203497  , p_source_141 => l_array_source_141(Idx)
203498  , p_source_142 => l_array_source_142(Idx)
203499  );
203500 If(l_balance_type_code = 'A') THEN
203501   l_actual_gain_loss_ref := l_gain_or_loss_ref;
203502 END IF;
203503 
203504 --
203505 
203506 
203507 --
203508 AcctLineType_119 (
203509  p_application_id  => p_application_id
203510  ,p_event_id     => l_event_id
203511  ,p_calculate_acctd_flag => l_calculate_acctd_flag
203512  ,p_calculate_g_l_flag => l_calculate_g_l_flag
203513  ,p_actual_flag => l_actual_flag
203514  ,p_balance_type_code => l_balance_type_code
203515  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
203516  
203517  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
203518  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
203519  , p_source_18 => l_array_source_18(Idx)
203520  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
203521  , p_source_41 => l_array_source_41(Idx)
203522  , p_source_43 => l_array_source_43(Idx)
203523  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
203524  , p_source_53 => l_array_source_53(Idx)
203525  , p_source_54 => l_array_source_54(Idx)
203526  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
203527  , p_source_56 => l_array_source_56(Idx)
203528  , p_source_57 => l_array_source_57(Idx)
203529  , p_source_58 => l_array_source_58(Idx)
203530  , p_source_59 => l_array_source_59(Idx)
203531  , p_source_60 => l_array_source_60(Idx)
203532  , p_source_65 => l_array_source_65(Idx)
203533  , p_source_66 => l_array_source_66(Idx)
203534  , p_source_67 => l_array_source_67(Idx)
203535  , p_source_68 => l_array_source_68(Idx)
203536  , p_source_68_meaning => l_array_source_68_meaning(Idx)
203537  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
203538  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
203539  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
203540  , p_source_74 => l_array_source_74(Idx)
203541  , p_source_75 => l_array_source_75(Idx)
203542  , p_source_76 => l_array_source_76(Idx)
203543  , p_source_77 => l_array_source_77(Idx)
203544  , p_source_78 => l_array_source_78(Idx)
203545  , p_source_79 => l_array_source_79(Idx)
203546  , p_source_118 => l_array_source_118(Idx)
203547  , p_source_120 => l_array_source_120(Idx)
203548  , p_source_125 => l_array_source_125(Idx)
203549  , p_source_126 => l_array_source_126(Idx)
203550  , p_source_127 => l_array_source_127(Idx)
203551  , p_source_128 => l_array_source_128(Idx)
203552  , p_source_129 => l_array_source_129(Idx)
203553  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
203554  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
203555  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
203556  , p_source_139 => l_array_source_139(Idx)
203557  , p_source_140 => l_array_source_140(Idx)
203558  , p_source_141 => l_array_source_141(Idx)
203559  , p_source_142 => l_array_source_142(Idx)
203560  );
203561 If(l_balance_type_code = 'A') THEN
203562   l_actual_gain_loss_ref := l_gain_or_loss_ref;
203563 END IF;
203564 
203565 --
203566 
203567 
203568 --
203569 AcctLineType_123 (
203570  p_application_id  => p_application_id
203571  ,p_event_id     => l_event_id
203572  ,p_calculate_acctd_flag => l_calculate_acctd_flag
203573  ,p_calculate_g_l_flag => l_calculate_g_l_flag
203574  ,p_actual_flag => l_actual_flag
203575  ,p_balance_type_code => l_balance_type_code
203576  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
203577  
203578  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
203579  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
203580  , p_source_18 => l_array_source_18(Idx)
203581  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
203582  , p_source_41 => l_array_source_41(Idx)
203583  , p_source_43 => l_array_source_43(Idx)
203584  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
203585  , p_source_53 => l_array_source_53(Idx)
203586  , p_source_54 => l_array_source_54(Idx)
203587  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
203588  , p_source_56 => l_array_source_56(Idx)
203589  , p_source_57 => l_array_source_57(Idx)
203590  , p_source_58 => l_array_source_58(Idx)
203591  , p_source_59 => l_array_source_59(Idx)
203595  , p_source_67 => l_array_source_67(Idx)
203592  , p_source_60 => l_array_source_60(Idx)
203593  , p_source_65 => l_array_source_65(Idx)
203594  , p_source_66 => l_array_source_66(Idx)
203596  , p_source_68 => l_array_source_68(Idx)
203597  , p_source_68_meaning => l_array_source_68_meaning(Idx)
203598  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
203599  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
203600  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
203601  , p_source_74 => l_array_source_74(Idx)
203602  , p_source_75 => l_array_source_75(Idx)
203603  , p_source_76 => l_array_source_76(Idx)
203604  , p_source_77 => l_array_source_77(Idx)
203605  , p_source_78 => l_array_source_78(Idx)
203606  , p_source_79 => l_array_source_79(Idx)
203607  , p_source_118 => l_array_source_118(Idx)
203608  , p_source_120 => l_array_source_120(Idx)
203609  , p_source_125 => l_array_source_125(Idx)
203610  , p_source_126 => l_array_source_126(Idx)
203611  , p_source_127 => l_array_source_127(Idx)
203612  , p_source_129 => l_array_source_129(Idx)
203613  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
203614  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
203615  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
203616  , p_source_139 => l_array_source_139(Idx)
203617  , p_source_140 => l_array_source_140(Idx)
203618  , p_source_141 => l_array_source_141(Idx)
203619  , p_source_142 => l_array_source_142(Idx)
203620  , p_source_145 => l_array_source_145(Idx)
203621  );
203622 If(l_balance_type_code = 'A') THEN
203623   l_actual_gain_loss_ref := l_gain_or_loss_ref;
203624 END IF;
203625 
203626 --
203627 
203628 
203629 --
203630 AcctLineType_140 (
203631  p_application_id  => p_application_id
203632  ,p_event_id     => l_event_id
203633  ,p_calculate_acctd_flag => l_calculate_acctd_flag
203634  ,p_calculate_g_l_flag => l_calculate_g_l_flag
203635  ,p_actual_flag => l_actual_flag
203636  ,p_balance_type_code => l_balance_type_code
203637  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
203638  
203639  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
203640  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
203641  , p_source_18 => l_array_source_18(Idx)
203642  , p_source_24 => l_array_source_24(Idx)
203643  , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
203644  , p_source_26 => l_array_source_26(Idx)
203645  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
203646  , p_source_41 => l_array_source_41(Idx)
203647  , p_source_43 => l_array_source_43(Idx)
203648  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
203649  , p_source_53 => l_array_source_53(Idx)
203650  , p_source_54 => l_array_source_54(Idx)
203651  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
203652  , p_source_56 => l_array_source_56(Idx)
203653  , p_source_57 => l_array_source_57(Idx)
203654  , p_source_58 => l_array_source_58(Idx)
203655  , p_source_59 => l_array_source_59(Idx)
203656  , p_source_60 => l_array_source_60(Idx)
203657  , p_source_65 => l_array_source_65(Idx)
203658  , p_source_66 => l_array_source_66(Idx)
203659  , p_source_67 => l_array_source_67(Idx)
203660  , p_source_68 => l_array_source_68(Idx)
203661  , p_source_68_meaning => l_array_source_68_meaning(Idx)
203662  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
203663  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
203664  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
203665  , p_source_74 => l_array_source_74(Idx)
203666  , p_source_75 => l_array_source_75(Idx)
203667  , p_source_76 => l_array_source_76(Idx)
203668  , p_source_77 => l_array_source_77(Idx)
203669  , p_source_78 => l_array_source_78(Idx)
203670  , p_source_79 => l_array_source_79(Idx)
203671  , p_source_118 => l_array_source_118(Idx)
203672  , p_source_120 => l_array_source_120(Idx)
203673  , p_source_125 => l_array_source_125(Idx)
203674  , p_source_126 => l_array_source_126(Idx)
203675  , p_source_129 => l_array_source_129(Idx)
203676  , p_source_139 => l_array_source_139(Idx)
203677  , p_source_140 => l_array_source_140(Idx)
203678  , p_source_141 => l_array_source_141(Idx)
203679  , p_source_142 => l_array_source_142(Idx)
203680  , p_source_150 => l_array_source_150(Idx)
203681  );
203682 If(l_balance_type_code = 'A') THEN
203683   l_actual_gain_loss_ref := l_gain_or_loss_ref;
203684 END IF;
203685 
203686 --
203687 
203688 
203689 --
203690 AcctLineType_146 (
203691  p_application_id  => p_application_id
203692  ,p_event_id     => l_event_id
203693  ,p_calculate_acctd_flag => l_calculate_acctd_flag
203694  ,p_calculate_g_l_flag => l_calculate_g_l_flag
203695  ,p_actual_flag => l_actual_flag
203696  ,p_balance_type_code => l_balance_type_code
203697  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
203698  
203699  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
203700  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
203701  , p_source_18 => l_array_source_18(Idx)
203702  , p_source_24 => l_array_source_24(Idx)
203703  , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
203704  , p_source_41 => l_array_source_41(Idx)
203705  , p_source_43 => l_array_source_43(Idx)
203706  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
203707  , p_source_53 => l_array_source_53(Idx)
203708  , p_source_54 => l_array_source_54(Idx)
203709  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
203710  , p_source_56 => l_array_source_56(Idx)
203711  , p_source_57 => l_array_source_57(Idx)
203715  , p_source_65 => l_array_source_65(Idx)
203712  , p_source_58 => l_array_source_58(Idx)
203713  , p_source_59 => l_array_source_59(Idx)
203714  , p_source_60 => l_array_source_60(Idx)
203716  , p_source_66 => l_array_source_66(Idx)
203717  , p_source_67 => l_array_source_67(Idx)
203718  , p_source_68 => l_array_source_68(Idx)
203719  , p_source_68_meaning => l_array_source_68_meaning(Idx)
203720  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
203721  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
203722  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
203723  , p_source_74 => l_array_source_74(Idx)
203724  , p_source_75 => l_array_source_75(Idx)
203725  , p_source_76 => l_array_source_76(Idx)
203726  , p_source_77 => l_array_source_77(Idx)
203727  , p_source_78 => l_array_source_78(Idx)
203728  , p_source_79 => l_array_source_79(Idx)
203729  , p_source_118 => l_array_source_118(Idx)
203730  , p_source_120 => l_array_source_120(Idx)
203731  , p_source_125 => l_array_source_125(Idx)
203732  , p_source_126 => l_array_source_126(Idx)
203733  , p_source_127 => l_array_source_127(Idx)
203734  , p_source_129 => l_array_source_129(Idx)
203735  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
203736  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
203737  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
203738  , p_source_139 => l_array_source_139(Idx)
203739  , p_source_140 => l_array_source_140(Idx)
203740  , p_source_141 => l_array_source_141(Idx)
203741  , p_source_142 => l_array_source_142(Idx)
203742  , p_source_150 => l_array_source_150(Idx)
203743  , p_source_157 => l_array_source_157(Idx)
203744  );
203745 If(l_balance_type_code = 'A') THEN
203746   l_actual_gain_loss_ref := l_gain_or_loss_ref;
203747 END IF;
203748 
203749 --
203750 
203751 
203752 --
203753 AcctLineType_181 (
203754  p_application_id  => p_application_id
203755  ,p_event_id     => l_event_id
203756  ,p_calculate_acctd_flag => l_calculate_acctd_flag
203757  ,p_calculate_g_l_flag => l_calculate_g_l_flag
203758  ,p_actual_flag => l_actual_flag
203759  ,p_balance_type_code => l_balance_type_code
203760  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
203761  
203762  , p_source_41 => l_array_source_41(Idx)
203763  , p_source_43 => l_array_source_43(Idx)
203764  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
203765  , p_source_53 => l_array_source_53(Idx)
203766  , p_source_54 => l_array_source_54(Idx)
203767  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
203768  , p_source_56 => l_array_source_56(Idx)
203769  , p_source_57 => l_array_source_57(Idx)
203770  , p_source_58 => l_array_source_58(Idx)
203771  , p_source_59 => l_array_source_59(Idx)
203772  , p_source_60 => l_array_source_60(Idx)
203773  , p_source_65 => l_array_source_65(Idx)
203774  , p_source_66 => l_array_source_66(Idx)
203775  , p_source_67 => l_array_source_67(Idx)
203776  , p_source_68 => l_array_source_68(Idx)
203777  , p_source_68_meaning => l_array_source_68_meaning(Idx)
203778  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
203779  , p_source_74 => l_array_source_74(Idx)
203780  , p_source_75 => l_array_source_75(Idx)
203781  , p_source_76 => l_array_source_76(Idx)
203782  , p_source_77 => l_array_source_77(Idx)
203783  , p_source_78 => l_array_source_78(Idx)
203784  , p_source_79 => l_array_source_79(Idx)
203785  , p_source_118 => l_array_source_118(Idx)
203786  , p_source_120 => l_array_source_120(Idx)
203787  , p_source_125 => l_array_source_125(Idx)
203788  , p_source_126 => l_array_source_126(Idx)
203789  , p_source_127 => l_array_source_127(Idx)
203790  , p_source_129 => l_array_source_129(Idx)
203791  , p_source_132 => l_array_source_132(Idx)
203792  , p_source_133 => l_array_source_133(Idx)
203793  , p_source_134 => l_array_source_134(Idx)
203794  , p_source_139 => l_array_source_139(Idx)
203795  , p_source_140 => l_array_source_140(Idx)
203796  );
203797 If(l_balance_type_code = 'A') THEN
203798   l_actual_gain_loss_ref := l_gain_or_loss_ref;
203799 END IF;
203800 
203801 --
203802 
203803 
203804 --
203805 AcctLineType_188 (
203806  p_application_id  => p_application_id
203807  ,p_event_id     => l_event_id
203808  ,p_calculate_acctd_flag => l_calculate_acctd_flag
203809  ,p_calculate_g_l_flag => l_calculate_g_l_flag
203810  ,p_actual_flag => l_actual_flag
203811  ,p_balance_type_code => l_balance_type_code
203812  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
203813  
203814  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
203815  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
203816  , p_source_18 => l_array_source_18(Idx)
203817  , p_source_26 => l_array_source_26(Idx)
203818  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
203819  , p_source_41 => l_array_source_41(Idx)
203820  , p_source_43 => l_array_source_43(Idx)
203821  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
203822  , p_source_53 => l_array_source_53(Idx)
203823  , p_source_54 => l_array_source_54(Idx)
203824  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
203825  , p_source_56 => l_array_source_56(Idx)
203826  , p_source_57 => l_array_source_57(Idx)
203827  , p_source_58 => l_array_source_58(Idx)
203828  , p_source_59 => l_array_source_59(Idx)
203829  , p_source_60 => l_array_source_60(Idx)
203830  , p_source_65 => l_array_source_65(Idx)
203831  , p_source_66 => l_array_source_66(Idx)
203832  , p_source_67 => l_array_source_67(Idx)
203833  , p_source_68 => l_array_source_68(Idx)
203834  , p_source_68_meaning => l_array_source_68_meaning(Idx)
203835  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
203836  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
203840  , p_source_76 => l_array_source_76(Idx)
203837  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
203838  , p_source_74 => l_array_source_74(Idx)
203839  , p_source_75 => l_array_source_75(Idx)
203841  , p_source_77 => l_array_source_77(Idx)
203842  , p_source_78 => l_array_source_78(Idx)
203843  , p_source_79 => l_array_source_79(Idx)
203844  , p_source_118 => l_array_source_118(Idx)
203845  , p_source_120 => l_array_source_120(Idx)
203846  , p_source_125 => l_array_source_125(Idx)
203847  , p_source_126 => l_array_source_126(Idx)
203848  , p_source_127 => l_array_source_127(Idx)
203849  , p_source_129 => l_array_source_129(Idx)
203850  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
203851  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
203852  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
203853  , p_source_139 => l_array_source_139(Idx)
203854  , p_source_140 => l_array_source_140(Idx)
203855  , p_source_141 => l_array_source_141(Idx)
203856  , p_source_142 => l_array_source_142(Idx)
203857  , p_source_150 => l_array_source_150(Idx)
203858  , p_source_157 => l_array_source_157(Idx)
203859  );
203860 If(l_balance_type_code = 'A') THEN
203861   l_actual_gain_loss_ref := l_gain_or_loss_ref;
203862 END IF;
203863 
203864 --
203865 
203866 
203867 --
203868 AcctLineType_214 (
203869  p_application_id  => p_application_id
203870  ,p_event_id     => l_event_id
203871  ,p_calculate_acctd_flag => l_calculate_acctd_flag
203872  ,p_calculate_g_l_flag => l_calculate_g_l_flag
203873  ,p_actual_flag => l_actual_flag
203874  ,p_balance_type_code => l_balance_type_code
203875  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
203876  
203877  , p_source_41 => l_array_source_41(Idx)
203878  , p_source_43 => l_array_source_43(Idx)
203879  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
203880  , p_source_53 => l_array_source_53(Idx)
203881  , p_source_54 => l_array_source_54(Idx)
203882  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
203883  , p_source_56 => l_array_source_56(Idx)
203884  , p_source_57 => l_array_source_57(Idx)
203885  , p_source_58 => l_array_source_58(Idx)
203886  , p_source_59 => l_array_source_59(Idx)
203887  , p_source_60 => l_array_source_60(Idx)
203888  , p_source_65 => l_array_source_65(Idx)
203889  , p_source_66 => l_array_source_66(Idx)
203890  , p_source_67 => l_array_source_67(Idx)
203891  , p_source_68 => l_array_source_68(Idx)
203892  , p_source_68_meaning => l_array_source_68_meaning(Idx)
203893  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
203894  , p_source_74 => l_array_source_74(Idx)
203895  , p_source_75 => l_array_source_75(Idx)
203896  , p_source_76 => l_array_source_76(Idx)
203897  , p_source_77 => l_array_source_77(Idx)
203898  , p_source_78 => l_array_source_78(Idx)
203899  , p_source_79 => l_array_source_79(Idx)
203900  , p_source_118 => l_array_source_118(Idx)
203901  , p_source_119 => l_array_source_119(Idx)
203902  , p_source_119_meaning => l_array_source_119_meaning(Idx)
203903  , p_source_120 => l_array_source_120(Idx)
203904  , p_source_125 => l_array_source_125(Idx)
203905  , p_source_126 => l_array_source_126(Idx)
203906  , p_source_127 => l_array_source_127(Idx)
203907  , p_source_128 => l_array_source_128(Idx)
203908  , p_source_129 => l_array_source_129(Idx)
203909  , p_source_139 => l_array_source_139(Idx)
203910  , p_source_140 => l_array_source_140(Idx)
203911  , p_source_141 => l_array_source_141(Idx)
203912  , p_source_142 => l_array_source_142(Idx)
203913  );
203914 If(l_balance_type_code = 'A') THEN
203915   l_actual_gain_loss_ref := l_gain_or_loss_ref;
203916 END IF;
203917 
203918 --
203919 
203920 
203921 --
203922 AcctLineType_215 (
203923  p_application_id  => p_application_id
203924  ,p_event_id     => l_event_id
203925  ,p_calculate_acctd_flag => l_calculate_acctd_flag
203926  ,p_calculate_g_l_flag => l_calculate_g_l_flag
203927  ,p_actual_flag => l_actual_flag
203928  ,p_balance_type_code => l_balance_type_code
203929  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
203930  
203931  , p_source_18 => l_array_source_18(Idx)
203932  , p_source_41 => l_array_source_41(Idx)
203933  , p_source_43 => l_array_source_43(Idx)
203934  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
203935  , p_source_53 => l_array_source_53(Idx)
203936  , p_source_54 => l_array_source_54(Idx)
203937  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
203938  , p_source_56 => l_array_source_56(Idx)
203939  , p_source_57 => l_array_source_57(Idx)
203940  , p_source_58 => l_array_source_58(Idx)
203941  , p_source_59 => l_array_source_59(Idx)
203942  , p_source_60 => l_array_source_60(Idx)
203943  , p_source_65 => l_array_source_65(Idx)
203944  , p_source_66 => l_array_source_66(Idx)
203945  , p_source_67 => l_array_source_67(Idx)
203946  , p_source_68 => l_array_source_68(Idx)
203947  , p_source_68_meaning => l_array_source_68_meaning(Idx)
203948  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
203949  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
203950  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
203951  , p_source_74 => l_array_source_74(Idx)
203952  , p_source_75 => l_array_source_75(Idx)
203953  , p_source_76 => l_array_source_76(Idx)
203954  , p_source_77 => l_array_source_77(Idx)
203955  , p_source_78 => l_array_source_78(Idx)
203956  , p_source_79 => l_array_source_79(Idx)
203957  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
203958  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
203959  , p_source_87 => l_array_source_87(Idx)
203960  , p_source_87_meaning => l_array_source_87_meaning(Idx)
203961  , p_source_118 => l_array_source_118(Idx)
203962  , p_source_120 => l_array_source_120(Idx)
203966  , p_source_129 => l_array_source_129(Idx)
203963  , p_source_125 => l_array_source_125(Idx)
203964  , p_source_126 => l_array_source_126(Idx)
203965  , p_source_127 => l_array_source_127(Idx)
203967  , p_source_134 => l_array_source_134(Idx)
203968  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
203969  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
203970  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
203971  , p_source_139 => l_array_source_139(Idx)
203972  , p_source_140 => l_array_source_140(Idx)
203973  , p_source_141 => l_array_source_141(Idx)
203974  , p_source_142 => l_array_source_142(Idx)
203975  );
203976 If(l_balance_type_code = 'A') THEN
203977   l_actual_gain_loss_ref := l_gain_or_loss_ref;
203978 END IF;
203979 
203980 --
203981 
203982 
203983 --
203984 AcctLineType_256 (
203985  p_application_id  => p_application_id
203986  ,p_event_id     => l_event_id
203987  ,p_calculate_acctd_flag => l_calculate_acctd_flag
203988  ,p_calculate_g_l_flag => l_calculate_g_l_flag
203989  ,p_actual_flag => l_actual_flag
203990  ,p_balance_type_code => l_balance_type_code
203991  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
203992  
203993  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
203994  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
203995  , p_source_18 => l_array_source_18(Idx)
203996  , p_source_29 => g_array_event(l_event_id).array_value_num('source_29')
203997  , p_source_41 => l_array_source_41(Idx)
203998  , p_source_43 => l_array_source_43(Idx)
203999  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
204000  , p_source_53 => l_array_source_53(Idx)
204001  , p_source_54 => l_array_source_54(Idx)
204002  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
204003  , p_source_56 => l_array_source_56(Idx)
204004  , p_source_57 => l_array_source_57(Idx)
204005  , p_source_58 => l_array_source_58(Idx)
204006  , p_source_59 => l_array_source_59(Idx)
204007  , p_source_60 => l_array_source_60(Idx)
204008  , p_source_65 => l_array_source_65(Idx)
204009  , p_source_66 => l_array_source_66(Idx)
204010  , p_source_67 => l_array_source_67(Idx)
204011  , p_source_68 => l_array_source_68(Idx)
204012  , p_source_68_meaning => l_array_source_68_meaning(Idx)
204013  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
204014  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
204015  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
204016  , p_source_74 => l_array_source_74(Idx)
204017  , p_source_75 => l_array_source_75(Idx)
204018  , p_source_76 => l_array_source_76(Idx)
204019  , p_source_77 => l_array_source_77(Idx)
204020  , p_source_78 => l_array_source_78(Idx)
204021  , p_source_79 => l_array_source_79(Idx)
204022  , p_source_118 => l_array_source_118(Idx)
204023  , p_source_120 => l_array_source_120(Idx)
204024  , p_source_125 => l_array_source_125(Idx)
204025  , p_source_126 => l_array_source_126(Idx)
204026  , p_source_127 => l_array_source_127(Idx)
204027  , p_source_129 => l_array_source_129(Idx)
204028  , p_source_134 => l_array_source_134(Idx)
204029  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
204030  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
204031  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
204032  , p_source_139 => l_array_source_139(Idx)
204033  , p_source_140 => l_array_source_140(Idx)
204034  , p_source_141 => l_array_source_141(Idx)
204035  , p_source_142 => l_array_source_142(Idx)
204036  );
204037 If(l_balance_type_code = 'A') THEN
204038   l_actual_gain_loss_ref := l_gain_or_loss_ref;
204039 END IF;
204040 
204041 --
204042 
204043       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
204044       -- or secondary ledger that has different currency with primary
204045       -- or alc that is calculated by sla
204046       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
204047             (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'))
204048 
204049 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
204050 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
204051           AND (l_actual_flag = 'A')) THEN
204052         XLA_AE_LINES_PKG.CreateGainOrLossLines(
204053           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
204054          ,p_application_id   => p_application_id
204055          ,p_amb_context_code => 'DEFAULT'
204056          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
204057          ,p_event_class_code => C_EVENT_CLASS_CODE
204058          ,p_event_type_code  => C_EVENT_TYPE_CODE
204059          
204060          ,p_gain_ccid        => -1
204061          ,p_loss_ccid        => -1
204062 
204063          ,p_actual_flag      => l_actual_flag
204064          ,p_enc_flag         => null
204065          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
204066          ,p_enc_g_l_ref      => null
204067          );
204068       END IF;
204069    END IF;
204070 END IF;
204071 
204072    ELSE
204073       --
204074       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
204075       --
204076       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
204077          trace
204078             (p_msg      => 'Trancaction revesal option is Y'
204079             ,p_level    => C_LEVEL_STATEMENT
204080             ,p_module   => l_log_module);
204081       END IF;
204082    END IF;
204083 
204084 END LOOP;
204085 l_result := XLA_AE_LINES_PKG.InsertLines ;
204089 
204086 end loop;
204087 close line_cur;
204088 
204090 --
204091 -- insert headers into xla_ae_headers_gt table
204092 --
204093 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
204094 
204095 -- insert into errors table here.
204096 
204097 END LOOP;
204098 
204099 --
204100 -- 4865292
204101 --
204102 -- Compare g_hdr_extract_count with event count in
204103 -- CreateHeadersAndLines.
204104 --
204105 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
204106 
204107 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
204108    trace (p_msg     => '# rows extracted from header extract objects '
204109                     || ' (running total): '
204110                     || g_hdr_extract_count
204111          ,p_level   => C_LEVEL_STATEMENT
204112          ,p_module  => l_log_module);
204113 END IF;
204114 
204115 CLOSE header_cur;
204116 --
204117 
204118 --
204119 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
204120    trace
204121       (p_msg      => 'END of EventClass_297'
204122       ,p_level    => C_LEVEL_PROCEDURE
204123       ,p_module   => l_log_module);
204124 END IF;
204125 --
204126 RETURN l_result;
204127 EXCEPTION
204128 WHEN xla_exceptions_pkg.application_exception THEN
204129    
204130 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
204131 
204132    
204133 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
204134 
204135    RAISE;
204136 
204137 WHEN NO_DATA_FOUND THEN
204138 
204139 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
204140 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
204141 
204142 FOR header_record IN header_cur
204143 LOOP
204144     l_array_header_events(header_record.event_id) := header_record.event_id;
204145 END LOOP;
204146 
204147 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
204148 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
204149 
204150 fnd_file.put_line(fnd_file.LOG, '                    ');
204151 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
204152 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
204153 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
204154 
204155 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
204156 LOOP
204157 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
204158 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
204159         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
204160 	END IF;
204161 END LOOP;
204162 
204163 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
204164 fnd_file.put_line(fnd_file.LOG, '                    ');
204165 
204166 
204167 xla_exceptions_pkg.raise_message
204168       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_297');
204169 
204170 
204171 WHEN OTHERS THEN
204172    xla_exceptions_pkg.raise_message
204173       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_297');
204174 END EventClass_297;
204175 --
204176 
204177 ---------------------------------------
204178 --
204179 -- PRIVATE PROCEDURE
204180 --         insert_sources_298
204181 --
204182 ----------------------------------------
204183 --
204184 PROCEDURE insert_sources_298(
204185                                 p_target_ledger_id       IN NUMBER
204186                               , p_language               IN VARCHAR2
204187                               , p_sla_ledger_id          IN NUMBER
204188                               , p_pad_start_date         IN DATE
204189                               , p_pad_end_date           IN DATE
204190                          )
204191 IS
204192 
204193 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENTS_ALL';
204194 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAYMENTS';
204195 p_apps_owner                   VARCHAR2(30);
204196 l_log_module                   VARCHAR2(240);
204197 BEGIN
204198 IF g_log_enabled THEN
204199       l_log_module := C_DEFAULT_MODULE||'.insert_sources_298';
204200 END IF;
204201 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
204202 
204203       trace
204204          (p_msg      => 'BEGIN of insert_sources_298'
204205          ,p_level    => C_LEVEL_PROCEDURE
204206          ,p_module   => l_log_module);
204207 
204208 END IF;
204209 
204210 -- select APPS owner
204211 SELECT oracle_username
204212   INTO p_apps_owner
204213   FROM fnd_oracle_userid
204214  WHERE read_only_flag = 'U'
204215 ;
204216 
204217 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
204218       trace
204219          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
204220                         ' - p_language = '||p_language||
204221                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
204222                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
204223                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
204224                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
204225          ,p_level    => C_LEVEL_STATEMENT
204226          ,p_module   => l_log_module);
204227 END IF;
204228 
204229 
204230 --
204231 INSERT INTO xla_diag_sources --hdr2
204232 (
204233         event_id
204234       , ledger_id
204235       , sla_ledger_id
204236       , description_language
204237       , object_name
204238       , object_type_code
204239       , line_number
204243       , source_value
204240       , source_application_id
204241       , source_type_code
204242       , source_code
204244       , source_meaning
204245       , created_by
204246       , creation_date
204247       , last_update_date
204248       , last_updated_by
204249       , last_update_login
204250       , program_update_date
204251       , program_application_id
204252       , program_id
204253       , request_id
204254 )
204255 SELECT
204256         event_id
204257       , p_target_ledger_id
204258       , p_sla_ledger_id
204259       , p_language
204260       , object_name
204261       , object_type_code
204262       , line_number
204263       , source_application_id
204264       , source_type_code
204265       , source_code
204266       , SUBSTR(source_value ,1,1996)
204267       , SUBSTR(source_meaning ,1,200)
204268       , xla_environment_pkg.g_Usr_Id
204269       , TRUNC(SYSDATE)
204270       , TRUNC(SYSDATE)
204271       , xla_environment_pkg.g_Usr_Id
204272       , xla_environment_pkg.g_Login_Id
204273       , TRUNC(SYSDATE)
204274       , xla_environment_pkg.g_Prog_Appl_Id
204275       , xla_environment_pkg.g_Prog_Id
204276       , xla_environment_pkg.g_Req_Id
204277   FROM (
204278        SELECT xet.event_id                  event_id
204279             , 0                          line_number
204280             , CASE r
204281                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
204282                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
204283                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
204284                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
204285                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
204286                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
204287                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
204288                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
204289                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
204290                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
204291                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
204292                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
204293                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
204294                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
204295                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
204296                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
204297                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
204298                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
204299                 
204300                ELSE null
204301               END                           object_name
204302             , CASE r
204303                 WHEN 1 THEN 'HEADER' 
204304                 WHEN 2 THEN 'HEADER' 
204305                 WHEN 3 THEN 'HEADER' 
204306                 WHEN 4 THEN 'HEADER' 
204307                 WHEN 5 THEN 'HEADER' 
204308                 WHEN 6 THEN 'HEADER' 
204309                 WHEN 7 THEN 'HEADER' 
204310                 WHEN 8 THEN 'HEADER' 
204311                 WHEN 9 THEN 'HEADER' 
204312                 WHEN 10 THEN 'HEADER' 
204313                 WHEN 11 THEN 'HEADER' 
204314                 WHEN 12 THEN 'HEADER' 
204315                 WHEN 13 THEN 'HEADER' 
204316                 WHEN 14 THEN 'HEADER' 
204317                 WHEN 15 THEN 'HEADER' 
204318                 WHEN 16 THEN 'HEADER' 
204319                 WHEN 17 THEN 'HEADER' 
204320                 WHEN 18 THEN 'HEADER' 
204321                 
204322                 ELSE null
204323               END                           object_type_code
204324             , CASE r
204325                 WHEN 1 THEN '200' 
204326                 WHEN 2 THEN '200' 
204327                 WHEN 3 THEN '200' 
204328                 WHEN 4 THEN '200' 
204329                 WHEN 5 THEN '200' 
204330                 WHEN 6 THEN '200' 
204331                 WHEN 7 THEN '200' 
204332                 WHEN 8 THEN '200' 
204333                 WHEN 9 THEN '200' 
204334                 WHEN 10 THEN '200' 
204335                 WHEN 11 THEN '200' 
204336                 WHEN 12 THEN '200' 
204337                 WHEN 13 THEN '200' 
204338                 WHEN 14 THEN '200' 
204339                 WHEN 15 THEN '200' 
204340                 WHEN 16 THEN '200' 
204341                 WHEN 17 THEN '200' 
204342                 WHEN 18 THEN '200' 
204343                 
204344                 ELSE null
204345               END                           source_application_id
204346             , 'S'             source_type_code
204347             , CASE r
204348                 WHEN 1 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
204349                 WHEN 2 THEN 'ASP_RATE_VAR_GAIN_CCID' 
204350                 WHEN 3 THEN 'ASP_RATE_VAR_LOSS_CCID' 
204351                 WHEN 4 THEN 'ASP_BUILD_PREPAY_ACCOUNTS_FLAG' 
204352                 WHEN 5 THEN 'AI_ACCTS_PAY_CCID' 
204353                 WHEN 6 THEN 'ASP_AUTO_OFFSET_FLAG' 
204354                 WHEN 7 THEN 'AI_INVOICE_ID' 
204355                 WHEN 8 THEN 'AI_INVOICE_CURRENCY_CODE' 
204356                 WHEN 9 THEN 'AI_VENDOR_ID' 
204357                 WHEN 10 THEN 'AI_VENDOR_SITE_ID' 
204358                 WHEN 11 THEN 'THIRD_PARTY_TYPE' 
204359                 WHEN 12 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG' 
204360                 WHEN 13 THEN 'INV_EXCHANGE_DATE' 
204361                 WHEN 14 THEN 'INV_EXCHANGE_RATE' 
204362                 WHEN 15 THEN 'INV_EXCHANGE_RATE_TYPE' 
204363                 WHEN 16 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
204364                 WHEN 17 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
204365                 WHEN 18 THEN 'INV_DOC_SEQUENCE_VALUE' 
204366                 
204367                 ELSE null
204371                 WHEN 2 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
204368               END                           source_code
204369             , CASE r
204370                 WHEN 1 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
204372                 WHEN 3 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
204373                 WHEN 4 THEN TO_CHAR(h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG)
204374                 WHEN 5 THEN TO_CHAR(h2.AI_ACCTS_PAY_CCID)
204375                 WHEN 6 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
204376                 WHEN 7 THEN TO_CHAR(h2.AI_INVOICE_ID)
204377                 WHEN 8 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
204378                 WHEN 9 THEN TO_CHAR(h2.AI_VENDOR_ID)
204379                 WHEN 10 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
204380                 WHEN 11 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
204381                 WHEN 12 THEN TO_CHAR(h4.FSP_PURCH_ENCUMBRANCE_FLAG)
204382                 WHEN 13 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
204383                 WHEN 14 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
204384                 WHEN 15 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
204385                 WHEN 16 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
204386                 WHEN 17 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
204387                 WHEN 18 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
204388                 
204389                 ELSE null
204390               END                           source_value
204391             , CASE r
204392                 WHEN 1 THEN fvl3.meaning
204393                 WHEN 4 THEN fvl19.meaning
204394                 WHEN 6 THEN fvl35.meaning
204395                 WHEN 12 THEN fvl86.meaning
204396                 
204397                 ELSE null
204398               END               source_meaning
204399          FROM xla_events_gt     xet  
204400       , AP_INVOICE_EXTRACT_HEADER_V  h2
204401       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
204402   , fnd_lookup_values    fvl3
204403   , fnd_lookup_values    fvl19
204404   , fnd_lookup_values    fvl35
204405   , fnd_lookup_values    fvl86
204406              ,(select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
204407          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
204408            AND xet.event_class_code = C_EVENT_CLASS_CODE
204409               AND h2.event_id = xet.event_id
204410  AND h4.asp_org_id = h2.ai_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
204411   AND fvl3.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
204412   AND fvl3.view_application_id(+) = 200
204413   AND fvl3.language(+)            = USERENV('LANG')
204414      AND fvl19.lookup_type(+)         = 'YES_NO'
204415   AND fvl19.lookup_code(+)         = h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG
204416   AND fvl19.view_application_id(+) = 0
204417   AND fvl19.language(+)            = USERENV('LANG')
204418      AND fvl35.lookup_type(+)         = 'YES_NO'
204419   AND fvl35.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
204420   AND fvl35.view_application_id(+) = 0
204421   AND fvl35.language(+)            = USERENV('LANG')
204422      AND fvl86.lookup_type(+)         = 'YES_NO'
204423   AND fvl86.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
204424   AND fvl86.view_application_id(+) = 0
204425   AND fvl86.language(+)            = USERENV('LANG')
204426   
204427 )
204428 ;
204429 --
204430 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
204431 
204432       trace
204433          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
204434          ,p_level    => C_LEVEL_STATEMENT
204435          ,p_module   => l_log_module);
204436 
204437 END IF;
204438 --
204439 
204440 
204441 
204442 --
204443 INSERT INTO xla_diag_sources  --line2
204444 (
204445         event_id
204446       , ledger_id
204447       , sla_ledger_id
204448       , description_language
204449       , object_name
204450       , object_type_code
204451       , line_number
204452       , source_application_id
204453       , source_type_code
204454       , source_code
204455       , source_value
204456       , source_meaning
204457       , created_by
204458       , creation_date
204459       , last_update_date
204460       , last_updated_by
204461       , last_update_login
204462       , program_update_date
204463       , program_application_id
204464       , program_id
204465       , request_id
204466 )
204467 SELECT  event_id
204468       , p_target_ledger_id
204469       , p_sla_ledger_id
204470       , p_language
204471       , object_name
204472       , object_type_code
204473       , line_number
204474       , source_application_id
204475       , source_type_code
204476       , source_code
204477       , SUBSTR(source_value,1,1996)
204478       , SUBSTR(source_meaning ,1,200)
204479       , xla_environment_pkg.g_Usr_Id
204480       , TRUNC(SYSDATE)
204481       , TRUNC(SYSDATE)
204482       , xla_environment_pkg.g_Usr_Id
204483       , xla_environment_pkg.g_Login_Id
204484       , TRUNC(SYSDATE)
204485       , xla_environment_pkg.g_Prog_Appl_Id
204486       , xla_environment_pkg.g_Prog_Id
204487       , xla_environment_pkg.g_Req_Id
204488   FROM (
204489        SELECT xet.event_id                  event_id
204490             , l1.line_number                 line_number
204491             , CASE r
204492                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204493                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204494                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204495                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204496                 WHEN 5 THEN 'AP_PO_HEADERS_EXTRACT_V' 
204500                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204497                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204498                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204499                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204501                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204502                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204503                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204504                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204505                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204506                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204507                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204508                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204509                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204510                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204511                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204512                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204513                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204514                 WHEN 23 THEN 'AP_PO_HEADERS_EXTRACT_V' 
204515                 WHEN 24 THEN 'AP_PO_HEADERS_EXTRACT_V' 
204516                 WHEN 25 THEN 'AP_PO_HEADERS_EXTRACT_V' 
204517                 WHEN 26 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204518                 WHEN 27 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204519                 WHEN 28 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204520                 WHEN 29 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204521                 WHEN 30 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204522                 WHEN 31 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204523                 WHEN 32 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
204524                 WHEN 33 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
204525                 WHEN 34 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204526                 WHEN 35 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204527                 WHEN 36 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204528                 WHEN 37 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204529                 WHEN 38 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204530                 WHEN 39 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204531                 WHEN 40 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204532                 WHEN 41 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204533                 WHEN 42 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204534                 WHEN 43 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204535                 WHEN 44 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204536                 WHEN 45 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204537                 WHEN 46 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
204538                 WHEN 47 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204539                 WHEN 48 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204540                 WHEN 49 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204541                 WHEN 50 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204542                 WHEN 51 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
204543                 
204544                ELSE null
204545               END                           object_name
204546             , CASE r
204547                 WHEN 1 THEN 'LINE' 
204548                 WHEN 2 THEN 'LINE' 
204549                 WHEN 3 THEN 'LINE' 
204550                 WHEN 4 THEN 'LINE' 
204551                 WHEN 5 THEN 'LINE' 
204552                 WHEN 6 THEN 'LINE' 
204553                 WHEN 7 THEN 'LINE' 
204554                 WHEN 8 THEN 'LINE' 
204555                 WHEN 9 THEN 'LINE' 
204556                 WHEN 10 THEN 'LINE' 
204557                 WHEN 11 THEN 'LINE' 
204558                 WHEN 12 THEN 'LINE' 
204559                 WHEN 13 THEN 'LINE' 
204560                 WHEN 14 THEN 'LINE' 
204561                 WHEN 15 THEN 'LINE' 
204562                 WHEN 16 THEN 'LINE' 
204563                 WHEN 17 THEN 'LINE' 
204564                 WHEN 18 THEN 'LINE' 
204565                 WHEN 19 THEN 'LINE' 
204566                 WHEN 20 THEN 'LINE' 
204567                 WHEN 21 THEN 'LINE' 
204568                 WHEN 22 THEN 'LINE' 
204569                 WHEN 23 THEN 'LINE' 
204570                 WHEN 24 THEN 'LINE' 
204571                 WHEN 25 THEN 'LINE' 
204572                 WHEN 26 THEN 'LINE' 
204573                 WHEN 27 THEN 'LINE' 
204574                 WHEN 28 THEN 'LINE' 
204575                 WHEN 29 THEN 'LINE' 
204576                 WHEN 30 THEN 'LINE' 
204577                 WHEN 31 THEN 'LINE' 
204578                 WHEN 32 THEN 'LINE' 
204579                 WHEN 33 THEN 'LINE' 
204580                 WHEN 34 THEN 'LINE' 
204581                 WHEN 35 THEN 'LINE' 
204582                 WHEN 36 THEN 'LINE' 
204583                 WHEN 37 THEN 'LINE' 
204584                 WHEN 38 THEN 'LINE' 
204585                 WHEN 39 THEN 'LINE' 
204586                 WHEN 40 THEN 'LINE' 
204587                 WHEN 41 THEN 'LINE' 
204588                 WHEN 42 THEN 'LINE' 
204589                 WHEN 43 THEN 'LINE' 
204590                 WHEN 44 THEN 'LINE' 
204591                 WHEN 45 THEN 'LINE' 
204592                 WHEN 46 THEN 'LINE' 
204593                 WHEN 47 THEN 'LINE' 
204594                 WHEN 48 THEN 'LINE' 
204595                 WHEN 49 THEN 'LINE' 
204596                 WHEN 50 THEN 'LINE' 
204597                 WHEN 51 THEN 'LINE' 
204598                 
204599                 ELSE null
204600               END                           object_type_code
204601             , CASE r
204602                 WHEN 1 THEN '200' 
204603                 WHEN 2 THEN '200' 
204604                 WHEN 3 THEN '200' 
204605                 WHEN 4 THEN '200' 
204606                 WHEN 5 THEN '200' 
204607                 WHEN 6 THEN '200' 
204608                 WHEN 7 THEN '200' 
204609                 WHEN 8 THEN '200' 
204610                 WHEN 9 THEN '200' 
204611                 WHEN 10 THEN '200' 
204612                 WHEN 11 THEN '200' 
204616                 WHEN 15 THEN '200' 
204613                 WHEN 12 THEN '200' 
204614                 WHEN 13 THEN '200' 
204615                 WHEN 14 THEN '200' 
204617                 WHEN 16 THEN '200' 
204618                 WHEN 17 THEN '200' 
204619                 WHEN 18 THEN '200' 
204620                 WHEN 19 THEN '200' 
204621                 WHEN 20 THEN '200' 
204622                 WHEN 21 THEN '200' 
204623                 WHEN 22 THEN '200' 
204624                 WHEN 23 THEN '200' 
204625                 WHEN 24 THEN '200' 
204626                 WHEN 25 THEN '200' 
204627                 WHEN 26 THEN '200' 
204628                 WHEN 27 THEN '200' 
204629                 WHEN 28 THEN '200' 
204630                 WHEN 29 THEN '200' 
204631                 WHEN 30 THEN '200' 
204632                 WHEN 31 THEN '200' 
204633                 WHEN 32 THEN '200' 
204634                 WHEN 33 THEN '200' 
204635                 WHEN 34 THEN '200' 
204636                 WHEN 35 THEN '200' 
204637                 WHEN 36 THEN '200' 
204638                 WHEN 37 THEN '200' 
204639                 WHEN 38 THEN '200' 
204640                 WHEN 39 THEN '200' 
204641                 WHEN 40 THEN '200' 
204642                 WHEN 41 THEN '200' 
204643                 WHEN 42 THEN '200' 
204644                 WHEN 43 THEN '200' 
204645                 WHEN 44 THEN '200' 
204646                 WHEN 45 THEN '200' 
204647                 WHEN 46 THEN '200' 
204648                 WHEN 47 THEN '200' 
204649                 WHEN 48 THEN '200' 
204650                 WHEN 49 THEN '200' 
204651                 WHEN 50 THEN '200' 
204652                 WHEN 51 THEN '200' 
204653                 
204654                 ELSE null
204655               END                           source_application_id
204656             , 'S'             source_type_code
204657             , CASE r
204658                 WHEN 1 THEN 'AID_DESCRIPTION' 
204659                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
204660                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
204661                 WHEN 4 THEN 'AID_DIST_CCID' 
204662                 WHEN 5 THEN 'PO_NUMBER' 
204663                 WHEN 6 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
204664                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
204665                 WHEN 8 THEN 'POD_CCID' 
204666                 WHEN 9 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
204667                 WHEN 10 THEN 'ASAT_LIAB_CCID' 
204668                 WHEN 11 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
204669                 WHEN 12 THEN 'DISTRIBUTION_LINK_TYPE' 
204670                 WHEN 13 THEN 'ALLOC_TO_MAIN_DIST_ID' 
204671                 WHEN 14 THEN 'AID_INVOICE_DIST_ID' 
204672                 WHEN 15 THEN 'UPG_ENC_CR_CCID' 
204673                 WHEN 16 THEN 'UPG_ENC_CR_AMT' 
204674                 WHEN 17 THEN 'UPG_ENC_CR_BASE_AMT' 
204675                 WHEN 18 THEN 'UPG_ENC_DR_CCID' 
204676                 WHEN 19 THEN 'UPG_ENC_DR_AMT' 
204677                 WHEN 20 THEN 'UPG_ENC_DR_BASE_AMT' 
204678                 WHEN 21 THEN 'UPG_AP_ENCUM_OPTION' 
204679                 WHEN 22 THEN 'AID_AMOUNT' 
204680                 WHEN 23 THEN 'POH_RATE_DATE' 
204681                 WHEN 24 THEN 'POH_RATE' 
204682                 WHEN 25 THEN 'POH_RATE_TYPE' 
204683                 WHEN 26 THEN 'DEFERRED_END_DATE' 
204684                 WHEN 27 THEN 'DEFERRED_OPTION' 
204685                 WHEN 28 THEN 'DEFERRED_START_DATE' 
204686                 WHEN 29 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
204687                 WHEN 30 THEN 'AID_PARENT_REVERSAL_ID' 
204688                 WHEN 31 THEN 'AID_STAT_AMOUNT' 
204689                 WHEN 32 THEN 'TAX_LINE_ID' 
204690                 WHEN 33 THEN 'REC_NREC_TAX_DIST_ID' 
204691                 WHEN 34 THEN 'SUMMARY_TAX_LINE_ID' 
204692                 WHEN 35 THEN 'UPG_CR_ENC_TYPE_ID' 
204693                 WHEN 36 THEN 'UPG_DR_ENC_TYPE_ID' 
204694                 WHEN 37 THEN 'BUS_FLOW_AP_APP_ID' 
204695                 WHEN 38 THEN 'BUS_FLOW_INV_DIST_TYPE' 
204696                 WHEN 39 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
204697                 WHEN 40 THEN 'BUS_FLOW_INV_DIST_ID' 
204698                 WHEN 41 THEN 'BUS_FLOW_INV_ID' 
204699                 WHEN 42 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
204700                 WHEN 43 THEN 'AID_AMOUNT_VARIANCE' 
204701                 WHEN 44 THEN 'AID_ENCUMBERED_FLAG' 
204702                 WHEN 45 THEN 'AID_BASE_AMOUNT_VARIANCE' 
204703                 WHEN 46 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
204704                 WHEN 47 THEN 'SELF_ASSESSED_TAX_FLAG' 
204705                 WHEN 48 THEN 'ENCUMBRANCE_AMOUNT' 
204706                 WHEN 49 THEN 'ENCUMBRANCE_BASE_AMOUNT' 
204707                 WHEN 50 THEN 'AID_QUANTITY_VARIANCE' 
204708                 WHEN 51 THEN 'AID_BASE_QUANTITY_VARIANCE' 
204709                 
204710                 ELSE null
204711               END                           source_code
204712             , CASE r
204713                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
204714                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
204715                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
204716                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
204717                 WHEN 5 THEN TO_CHAR(l3.PO_NUMBER)
204718                 WHEN 6 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
204719                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
204720                 WHEN 8 THEN TO_CHAR(l1.POD_CCID)
204721                 WHEN 9 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
204722                 WHEN 10 THEN TO_CHAR(l1.ASAT_LIAB_CCID)
204723                 WHEN 11 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
204724                 WHEN 12 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
204725                 WHEN 13 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
204726                 WHEN 14 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
204727                 WHEN 15 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
204731                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
204728                 WHEN 16 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
204729                 WHEN 17 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
204730                 WHEN 18 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
204732                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
204733                 WHEN 21 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
204734                 WHEN 22 THEN TO_CHAR(l1.AID_AMOUNT)
204735                 WHEN 23 THEN TO_CHAR(l3.POH_RATE_DATE)
204736                 WHEN 24 THEN TO_CHAR(l3.POH_RATE)
204737                 WHEN 25 THEN TO_CHAR(l3.POH_RATE_TYPE)
204738                 WHEN 26 THEN TO_CHAR(l1.DEFERRED_END_DATE)
204739                 WHEN 27 THEN TO_CHAR(l1.DEFERRED_OPTION)
204740                 WHEN 28 THEN TO_CHAR(l1.DEFERRED_START_DATE)
204741                 WHEN 29 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
204742                 WHEN 30 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
204743                 WHEN 31 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
204744                 WHEN 32 THEN TO_CHAR(l5.TAX_LINE_ID)
204745                 WHEN 33 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
204746                 WHEN 34 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
204747                 WHEN 35 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
204748                 WHEN 36 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
204749                 WHEN 37 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
204750                 WHEN 38 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
204751                 WHEN 39 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
204752                 WHEN 40 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
204753                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
204754                 WHEN 42 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
204755                 WHEN 43 THEN TO_CHAR(l1.AID_AMOUNT_VARIANCE)
204756                 WHEN 44 THEN TO_CHAR(l1.AID_ENCUMBERED_FLAG)
204757                 WHEN 45 THEN TO_CHAR(l1.AID_BASE_AMOUNT_VARIANCE)
204758                 WHEN 46 THEN TO_CHAR(l5.DEF_REC_SETTLEMENT_OPTION_CODE)
204759                 WHEN 47 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
204760                 WHEN 48 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
204761                 WHEN 49 THEN TO_CHAR(l1.ENCUMBRANCE_BASE_AMOUNT)
204762                 WHEN 50 THEN TO_CHAR(l1.AID_QUANTITY_VARIANCE)
204763                 WHEN 51 THEN TO_CHAR(l1.AID_BASE_QUANTITY_VARIANCE)
204764                 
204765                 ELSE null
204766               END                           source_value
204767             , CASE r
204768                 WHEN 3 THEN fvl10.meaning
204769                 WHEN 6 THEN fvl21.meaning
204770                 WHEN 29 THEN fvl68.meaning
204771                 WHEN 42 THEN fvl84.meaning
204772                 WHEN 44 THEN fvl87.meaning
204773                 WHEN 46 THEN fvl130.meaning
204774                 WHEN 47 THEN fvl135.meaning
204775                 
204776                 ELSE null
204777               END               source_meaning
204778          FROM  xla_events_gt     xet  
204779         , AP_INVOICE_EXTRACT_DETAILS_V  l1
204780         , AP_PO_HEADERS_EXTRACT_V  l3
204781         , ZX_AP_DEF_TAX_EXTRACT_V  l5
204782         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
204783   , fnd_lookup_values    fvl10
204784   , fnd_lookup_values    fvl21
204785   , fnd_lookup_values    fvl68
204786   , fnd_lookup_values    fvl84
204787   , fnd_lookup_values    fvl87
204788   , fnd_lookup_values    fvl130
204789   , fnd_lookup_values    fvl135
204790             , (select rownum r from all_objects where rownum <= 51 and owner = p_apps_owner)
204791         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
204792           AND xet.event_class_code = C_EVENT_CLASS_CODE
204793             AND l1.event_id          = xet.event_id
204794  AND l1.pod_po_header_id  = l3.po_header_id (+)  AND l1.zrnd_tax_dist_id = l5.rec_nrec_tax_dist_id (+)  AND l1.zrnd_tax_dist_id = l6.rec_nrec_tax_dist_id (+)    AND fvl10.lookup_type(+)         = 'DESTINATION TYPE'
204795   AND fvl10.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
204796   AND fvl10.view_application_id(+) = 201
204797   AND fvl10.language(+)            = USERENV('LANG')
204798      AND fvl21.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
204799   AND fvl21.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
204800   AND fvl21.view_application_id(+) = 200
204801   AND fvl21.language(+)            = USERENV('LANG')
204802      AND fvl68.lookup_type(+)         = 'YES_NO'
204803   AND fvl68.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
204804   AND fvl68.view_application_id(+) = 0
204805   AND fvl68.language(+)            = USERENV('LANG')
204806      AND fvl84.lookup_type(+)         = 'YES_NO'
204807   AND fvl84.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
204808   AND fvl84.view_application_id(+) = 0
204809   AND fvl84.language(+)            = USERENV('LANG')
204810      AND fvl87.lookup_type(+)         = 'YES_NO'
204811   AND fvl87.lookup_code(+)         = l1.AID_ENCUMBERED_FLAG
204812   AND fvl87.view_application_id(+) = 0
204813   AND fvl87.language(+)            = USERENV('LANG')
204814      AND fvl130.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
204815   AND fvl130.lookup_code(+)         = l5.DEF_REC_SETTLEMENT_OPTION_CODE
204816   AND fvl130.view_application_id(+) = 0
204817   AND fvl130.language(+)            = USERENV('LANG')
204818      AND fvl135.lookup_type(+)         = 'YES_NO'
204819   AND fvl135.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
204820   AND fvl135.view_application_id(+) = 0
204821   AND fvl135.language(+)            = USERENV('LANG')
204822   
204823 )
204824 ;
204825 --
204826 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
204827 
204828       trace
204829          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
204830          ,p_level    => C_LEVEL_STATEMENT
204831          ,p_module   => l_log_module);
204832 
204833 END IF;
204834 
204835 
204836 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
204837       trace
204838          (p_msg      => 'END of insert_sources_298'
204842 EXCEPTION
204839          ,p_level    => C_LEVEL_PROCEDURE
204840          ,p_module   => l_log_module);
204841 END IF;
204843   WHEN xla_exceptions_pkg.application_exception THEN
204844       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
204845             trace
204846                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
204847                ,p_level    => C_LEVEL_EXCEPTION
204848                ,p_module   => l_log_module);
204849       END IF;
204850       RAISE;
204851   WHEN OTHERS THEN
204852       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
204853             trace
204854                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
204855                ,p_level    => C_LEVEL_EXCEPTION
204856                ,p_module   => l_log_module);
204857        END IF;
204858        xla_exceptions_pkg.raise_message
204859            (p_location => 'XLA_00200_AAD_S_000006_PKG.insert_sources_298');
204860 END insert_sources_298;
204861 --
204862 
204863 ---------------------------------------
204864 --
204865 -- PRIVATE FUNCTION
204866 --         EventClass_298
204867 --
204868 ----------------------------------------
204869 --
204870 FUNCTION EventClass_298
204871        (p_application_id         IN NUMBER
204872        ,p_base_ledger_id         IN NUMBER
204873        ,p_target_ledger_id       IN NUMBER
204874        ,p_language               IN VARCHAR2
204875        ,p_currency_code          IN VARCHAR2
204876        ,p_sla_ledger_id          IN NUMBER
204877        ,p_pad_start_date         IN DATE
204878        ,p_pad_end_date           IN DATE
204879        ,p_primary_ledger_id      IN NUMBER)
204880 RETURN BOOLEAN IS
204881 --
204882 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENTS_ALL';
204883 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAYMENTS';
204884 
204885 l_calculate_acctd_flag   VARCHAR2(1) :='N';
204886 l_calculate_g_l_flag     VARCHAR2(1) :='N';
204887 --
204888 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
204889 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
204890 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
204891 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
204892 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
204893 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
204894 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
204895 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
204896 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
204897 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
204898 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
204899 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
204900 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
204901 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
204902 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
204903 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
204904 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
204905 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
204906 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
204907 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
204908 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
204909 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
204910 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
204911 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
204912 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
204913 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
204914 
204915 l_event_id                             NUMBER;
204916 l_previous_event_id                    NUMBER;
204917 l_first_event_id                       NUMBER;
204918 l_last_event_id                        NUMBER;
204919 
204920 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
204921 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
204922 --
204923 --
204924 l_result                    BOOLEAN := TRUE;
204925 l_rows                      NUMBER  := 1000;
204926 l_event_type_name           VARCHAR2(80) := 'All';
204927 l_event_class_name          VARCHAR2(80) := 'Prepayments';
204928 l_description               VARCHAR2(4000);
204929 l_transaction_reversal      NUMBER;
204930 l_ae_header_id              NUMBER;
204931 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
204932 l_log_module                VARCHAR2(240);
204933 --
204934 l_acct_reversal_source      VARCHAR2(30);
204935 l_trx_reversal_source       VARCHAR2(30);
204936 
204937 l_continue_with_lines       BOOLEAN := TRUE;
204938 --
204939 l_acc_rev_gl_date_source    DATE;                      -- 4262811
204940 --
204941 type t_array_event_id is table of number index by binary_integer;
204942 
204943 l_rec_array_event                    t_rec_array_event;
204944 l_null_rec_array_event               t_rec_array_event;
204945 l_array_ae_header_id                 xla_number_array_type;
204946 l_actual_flag                        VARCHAR2(1) := NULL;
204947 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
204948 l_balance_type_code                  VARCHAR2(1) :=NULL;
204949 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
204950 
204951 --
204952 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
204953 --
204954 
204958 TYPE t_array_source_19 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_BUILD_PREPAY_ACCOUNTS_FLAG%TYPE INDEX BY BINARY_INTEGER;
204955 TYPE t_array_source_3 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
204956 TYPE t_array_source_8 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
204957 TYPE t_array_source_11 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
204959 TYPE t_array_source_22 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
204960 TYPE t_array_source_35 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
204961 TYPE t_array_source_46 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
204962 TYPE t_array_source_55 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
204963 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
204964 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
204965 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
204966 TYPE t_array_source_86 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
204967 TYPE t_array_source_136 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
204968 TYPE t_array_source_137 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
204969 TYPE t_array_source_138 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
204970 TYPE t_array_source_165 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
204971 TYPE t_array_source_166 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
204972 TYPE t_array_source_167 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
204973 
204974 TYPE t_array_source_1 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
204975 TYPE t_array_source_9 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
204976 TYPE t_array_source_10 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
204977 TYPE t_array_source_18 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
204978 TYPE t_array_source_20 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.PO_NUMBER%TYPE INDEX BY BINARY_INTEGER;
204979 TYPE t_array_source_21 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
204980 TYPE t_array_source_31 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
204981 TYPE t_array_source_33 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
204982 TYPE t_array_source_38 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
204983 TYPE t_array_source_39 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ASAT_LIAB_CCID%TYPE INDEX BY BINARY_INTEGER;
204984 TYPE t_array_source_41 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
204985 TYPE t_array_source_43 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
204986 TYPE t_array_source_45 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
204987 TYPE t_array_source_52 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
204988 TYPE t_array_source_53 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
204989 TYPE t_array_source_54 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
204990 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
204991 TYPE t_array_source_57 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
204992 TYPE t_array_source_58 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
204993 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
204994 TYPE t_array_source_60 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
204995 TYPE t_array_source_61 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
204996 TYPE t_array_source_62 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
204997 TYPE t_array_source_63 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
204998 TYPE t_array_source_64 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
204999 TYPE t_array_source_65 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
205000 TYPE t_array_source_66 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
205001 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
205002 TYPE t_array_source_68 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
205003 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
205004 TYPE t_array_source_73 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
205005 TYPE t_array_source_74 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
205006 TYPE t_array_source_75 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
205007 TYPE t_array_source_76 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
205008 TYPE t_array_source_77 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
205009 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
205010 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
205014 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
205011 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
205012 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
205013 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
205015 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
205016 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
205017 TYPE t_array_source_87 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_ENCUMBERED_FLAG%TYPE INDEX BY BINARY_INTEGER;
205018 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_BASE_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
205019 TYPE t_array_source_130 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
205020 TYPE t_array_source_135 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
205021 TYPE t_array_source_143 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
205022 TYPE t_array_source_144 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ENCUMBRANCE_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
205023 TYPE t_array_source_161 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
205024 TYPE t_array_source_162 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_BASE_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
205025 
205026 l_array_source_3              t_array_source_3;
205027 l_array_source_3_meaning      t_array_lookup_meaning;
205028 l_array_source_8              t_array_source_8;
205029 l_array_source_11              t_array_source_11;
205030 l_array_source_19              t_array_source_19;
205031 l_array_source_19_meaning      t_array_lookup_meaning;
205032 l_array_source_22              t_array_source_22;
205033 l_array_source_35              t_array_source_35;
205034 l_array_source_35_meaning      t_array_lookup_meaning;
205035 l_array_source_46              t_array_source_46;
205036 l_array_source_55              t_array_source_55;
205037 l_array_source_69              t_array_source_69;
205038 l_array_source_70              t_array_source_70;
205039 l_array_source_71              t_array_source_71;
205040 l_array_source_86              t_array_source_86;
205041 l_array_source_86_meaning      t_array_lookup_meaning;
205042 l_array_source_136              t_array_source_136;
205043 l_array_source_137              t_array_source_137;
205044 l_array_source_138              t_array_source_138;
205045 l_array_source_165              t_array_source_165;
205046 l_array_source_166              t_array_source_166;
205047 l_array_source_167              t_array_source_167;
205048 
205049 l_array_source_1      t_array_source_1;
205050 l_array_source_9      t_array_source_9;
205051 l_array_source_10      t_array_source_10;
205052 l_array_source_10_meaning      t_array_lookup_meaning;
205053 l_array_source_18      t_array_source_18;
205054 l_array_source_20      t_array_source_20;
205055 l_array_source_21      t_array_source_21;
205056 l_array_source_21_meaning      t_array_lookup_meaning;
205057 l_array_source_31      t_array_source_31;
205058 l_array_source_33      t_array_source_33;
205059 l_array_source_38      t_array_source_38;
205060 l_array_source_39      t_array_source_39;
205061 l_array_source_41      t_array_source_41;
205062 l_array_source_43      t_array_source_43;
205063 l_array_source_45      t_array_source_45;
205064 l_array_source_52      t_array_source_52;
205065 l_array_source_53      t_array_source_53;
205066 l_array_source_54      t_array_source_54;
205067 l_array_source_56      t_array_source_56;
205068 l_array_source_57      t_array_source_57;
205069 l_array_source_58      t_array_source_58;
205070 l_array_source_59      t_array_source_59;
205071 l_array_source_60      t_array_source_60;
205072 l_array_source_61      t_array_source_61;
205073 l_array_source_62      t_array_source_62;
205074 l_array_source_63      t_array_source_63;
205075 l_array_source_64      t_array_source_64;
205076 l_array_source_65      t_array_source_65;
205077 l_array_source_66      t_array_source_66;
205078 l_array_source_67      t_array_source_67;
205079 l_array_source_68      t_array_source_68;
205080 l_array_source_68_meaning      t_array_lookup_meaning;
205081 l_array_source_72      t_array_source_72;
205082 l_array_source_73      t_array_source_73;
205083 l_array_source_74      t_array_source_74;
205084 l_array_source_75      t_array_source_75;
205085 l_array_source_76      t_array_source_76;
205086 l_array_source_77      t_array_source_77;
205087 l_array_source_78      t_array_source_78;
205088 l_array_source_79      t_array_source_79;
205089 l_array_source_80      t_array_source_80;
205090 l_array_source_81      t_array_source_81;
205091 l_array_source_82      t_array_source_82;
205092 l_array_source_83      t_array_source_83;
205093 l_array_source_84      t_array_source_84;
205094 l_array_source_84_meaning      t_array_lookup_meaning;
205095 l_array_source_85      t_array_source_85;
205096 l_array_source_87      t_array_source_87;
205097 l_array_source_87_meaning      t_array_lookup_meaning;
205098 l_array_source_88      t_array_source_88;
205099 l_array_source_130      t_array_source_130;
205100 l_array_source_130_meaning      t_array_lookup_meaning;
205101 l_array_source_135      t_array_source_135;
205102 l_array_source_135_meaning      t_array_lookup_meaning;
205103 l_array_source_143      t_array_source_143;
205104 l_array_source_144      t_array_source_144;
205105 l_array_source_161      t_array_source_161;
205106 l_array_source_162      t_array_source_162;
205107 
205108 --
205109 CURSOR header_cur
205110 IS
205111 SELECT /*+ leading(xet) cardinality(xet,1) */
205112 -- Event Class Code: PREPAYMENTS
205113     xet.entity_id
205114    ,xet.legal_entity_id
205115    ,xet.entity_code
205119    ,xet.event_type_code
205116    ,xet.transaction_number
205117    ,xet.event_id
205118    ,xet.event_class_code
205120    ,xet.event_number
205121    ,xet.event_date
205122    ,xet.transaction_date
205123    ,xet.reference_num_1
205124    ,xet.reference_num_2
205125    ,xet.reference_num_3
205126    ,xet.reference_num_4
205127    ,xet.reference_char_1
205128    ,xet.reference_char_2
205129    ,xet.reference_char_3
205130    ,xet.reference_char_4
205131    ,xet.reference_date_1
205132    ,xet.reference_date_2
205133    ,xet.reference_date_3
205134    ,xet.reference_date_4
205135    ,xet.event_created_by
205136    ,xet.budgetary_control_flag 
205137   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_3
205138   , fvl3.meaning   source_3_meaning
205139   , h4.ASP_RATE_VAR_GAIN_CCID    source_8
205140   , h4.ASP_RATE_VAR_LOSS_CCID    source_11
205141   , h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG    source_19
205142   , fvl19.meaning   source_19_meaning
205143   , h2.AI_ACCTS_PAY_CCID    source_22
205144   , h4.ASP_AUTO_OFFSET_FLAG    source_35
205145   , fvl35.meaning   source_35_meaning
205146   , h2.AI_INVOICE_ID    source_46
205147   , h2.AI_INVOICE_CURRENCY_CODE    source_55
205148   , h2.AI_VENDOR_ID    source_69
205149   , h2.AI_VENDOR_SITE_ID    source_70
205150   , h2.THIRD_PARTY_TYPE    source_71
205151   , h4.FSP_PURCH_ENCUMBRANCE_FLAG    source_86
205152   , fvl86.meaning   source_86_meaning
205153   , h2.INV_EXCHANGE_DATE    source_136
205154   , h2.INV_EXCHANGE_RATE    source_137
205155   , h2.INV_EXCHANGE_RATE_TYPE    source_138
205156   , h2.INV_DOC_SEQUENCE_CATEGORY    source_165
205157   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_166
205158   , h2.INV_DOC_SEQUENCE_VALUE    source_167
205159   FROM xla_events_gt     xet 
205160   , AP_INVOICE_EXTRACT_HEADER_V  h2
205161   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
205162   , fnd_lookup_values    fvl3
205163   , fnd_lookup_values    fvl19
205164   , fnd_lookup_values    fvl35
205165   , fnd_lookup_values    fvl86
205166  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
205167    and xet.event_class_code = C_EVENT_CLASS_CODE
205168    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
205169  AND h4.asp_org_id = h2.ai_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
205170   AND fvl3.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
205171   AND fvl3.view_application_id(+) = 200
205172   AND fvl3.language(+)            = USERENV('LANG')
205173      AND fvl19.lookup_type(+)         = 'YES_NO'
205174   AND fvl19.lookup_code(+)         = h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG
205175   AND fvl19.view_application_id(+) = 0
205176   AND fvl19.language(+)            = USERENV('LANG')
205177      AND fvl35.lookup_type(+)         = 'YES_NO'
205178   AND fvl35.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
205179   AND fvl35.view_application_id(+) = 0
205180   AND fvl35.language(+)            = USERENV('LANG')
205181      AND fvl86.lookup_type(+)         = 'YES_NO'
205182   AND fvl86.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
205183   AND fvl86.view_application_id(+) = 0
205184   AND fvl86.language(+)            = USERENV('LANG')
205185   
205186  ORDER BY event_id
205187 ;
205188 
205189 
205190 --
205191 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
205192 IS
205193 SELECT  /*+ leading(xet) cardinality(xet,1) */
205194 -- Event Class Code: PREPAYMENTS
205195     xet.entity_id
205196    ,xet.legal_entity_id
205197    ,xet.entity_code
205198    ,xet.transaction_number
205199    ,xet.event_id
205200    ,xet.event_class_code
205201    ,xet.event_type_code
205202    ,xet.event_number
205203    ,xet.event_date
205204    ,xet.transaction_date
205205    ,xet.reference_num_1
205206    ,xet.reference_num_2
205207    ,xet.reference_num_3
205208    ,xet.reference_num_4
205209    ,xet.reference_char_1
205210    ,xet.reference_char_2
205211    ,xet.reference_char_3
205212    ,xet.reference_char_4
205213    ,xet.reference_date_1
205214    ,xet.reference_date_2
205215    ,xet.reference_date_3
205216    ,xet.reference_date_4
205217    ,xet.event_created_by
205218    ,xet.budgetary_control_flag
205219  , l1.LINE_NUMBER  
205220   , l1.AID_DESCRIPTION    source_1
205221   , l1.INV_DIST_BASE_AMOUNT    source_9
205222   , l1.RELATED_INV_DIST_DEST_TYPE    source_10
205223   , fvl10.meaning   source_10_meaning
205224   , l1.AID_DIST_CCID    source_18
205225   , l3.PO_NUMBER    source_20
205226   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_21
205227   , fvl21.meaning   source_21_meaning
205228   , l1.AWT_RELATED_DIST_ACCOUNT    source_31
205229   , l1.POD_CCID    source_33
205230   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_38
205231   , l1.ASAT_LIAB_CCID    source_39
205232   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_41
205233   , l1.DISTRIBUTION_LINK_TYPE    source_43
205234   , l1.ALLOC_TO_MAIN_DIST_ID    source_45
205235   , l1.AID_INVOICE_DIST_ID    source_52
205236   , l1.UPG_ENC_CR_CCID    source_53
205237   , l1.UPG_ENC_CR_AMT    source_54
205238   , l1.UPG_ENC_CR_BASE_AMT    source_56
205239   , l1.UPG_ENC_DR_CCID    source_57
205240   , l1.UPG_ENC_DR_AMT    source_58
205241   , l1.UPG_ENC_DR_BASE_AMT    source_59
205242   , l1.UPG_AP_ENCUM_OPTION    source_60
205243   , l1.AID_AMOUNT    source_61
205244   , l3.POH_RATE_DATE    source_62
205245   , l3.POH_RATE    source_63
205246   , l3.POH_RATE_TYPE    source_64
205247   , l1.DEFERRED_END_DATE    source_65
205248   , l1.DEFERRED_OPTION    source_66
205249   , l1.DEFERRED_START_DATE    source_67
205250   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_68
205251   , fvl68.meaning   source_68_meaning
205255   , l6.REC_NREC_TAX_DIST_ID    source_75
205252   , l1.AID_PARENT_REVERSAL_ID    source_72
205253   , l1.AID_STAT_AMOUNT    source_73
205254   , l5.TAX_LINE_ID    source_74
205256   , l1.SUMMARY_TAX_LINE_ID    source_76
205257   , l1.UPG_CR_ENC_TYPE_ID    source_77
205258   , l1.UPG_DR_ENC_TYPE_ID    source_78
205259   , l1.BUS_FLOW_AP_APP_ID    source_79
205260   , l1.BUS_FLOW_INV_DIST_TYPE    source_80
205261   , l1.BUS_FLOW_INV_ENTITY_CODE    source_81
205262   , l1.BUS_FLOW_INV_DIST_ID    source_82
205263   , l1.BUS_FLOW_INV_ID    source_83
205264   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_84
205265   , fvl84.meaning   source_84_meaning
205266   , l1.AID_AMOUNT_VARIANCE    source_85
205267   , l1.AID_ENCUMBERED_FLAG    source_87
205268   , fvl87.meaning   source_87_meaning
205269   , l1.AID_BASE_AMOUNT_VARIANCE    source_88
205270   , l5.DEF_REC_SETTLEMENT_OPTION_CODE    source_130
205271   , fvl130.meaning   source_130_meaning
205272   , l1.SELF_ASSESSED_TAX_FLAG    source_135
205273   , fvl135.meaning   source_135_meaning
205274   , l1.ENCUMBRANCE_AMOUNT    source_143
205275   , l1.ENCUMBRANCE_BASE_AMOUNT    source_144
205276   , l1.AID_QUANTITY_VARIANCE    source_161
205277   , l1.AID_BASE_QUANTITY_VARIANCE    source_162
205278   FROM xla_events_gt     xet 
205279   , AP_INVOICE_EXTRACT_DETAILS_V  l1
205280   , AP_PO_HEADERS_EXTRACT_V  l3
205281   , ZX_AP_DEF_TAX_EXTRACT_V  l5
205282   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
205283   , fnd_lookup_values    fvl10
205284   , fnd_lookup_values    fvl21
205285   , fnd_lookup_values    fvl68
205286   , fnd_lookup_values    fvl84
205287   , fnd_lookup_values    fvl87
205288   , fnd_lookup_values    fvl130
205289   , fnd_lookup_values    fvl135
205290  WHERE xet.event_id between x_first_event_id and x_last_event_id
205291    and xet.event_date between p_pad_start_date and p_pad_end_date
205292    and xet.event_class_code = C_EVENT_CLASS_CODE
205293    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
205294  AND l1.POD_PO_Header_Id  = l3.PO_Header_Id (+)  AND l1.ZRND_tax_dist_id = l5.REC_NREC_TAX_DIST_ID (+)  AND l1.ZRND_tax_dist_id = l6.REC_NREC_TAX_DIST_ID (+)    AND fvl10.lookup_type(+)         = 'DESTINATION TYPE'
205295   AND fvl10.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
205296   AND fvl10.view_application_id(+) = 201
205297   AND fvl10.language(+)            = USERENV('LANG')
205298      AND fvl21.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
205299   AND fvl21.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
205300   AND fvl21.view_application_id(+) = 200
205301   AND fvl21.language(+)            = USERENV('LANG')
205302      AND fvl68.lookup_type(+)         = 'YES_NO'
205303   AND fvl68.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
205304   AND fvl68.view_application_id(+) = 0
205305   AND fvl68.language(+)            = USERENV('LANG')
205306      AND fvl84.lookup_type(+)         = 'YES_NO'
205307   AND fvl84.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
205308   AND fvl84.view_application_id(+) = 0
205309   AND fvl84.language(+)            = USERENV('LANG')
205310      AND fvl87.lookup_type(+)         = 'YES_NO'
205311   AND fvl87.lookup_code(+)         = l1.AID_ENCUMBERED_FLAG
205312   AND fvl87.view_application_id(+) = 0
205313   AND fvl87.language(+)            = USERENV('LANG')
205314      AND fvl130.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
205315   AND fvl130.lookup_code(+)         = l5.DEF_REC_SETTLEMENT_OPTION_CODE
205316   AND fvl130.view_application_id(+) = 0
205317   AND fvl130.language(+)            = USERENV('LANG')
205318      AND fvl135.lookup_type(+)         = 'YES_NO'
205319   AND fvl135.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
205320   AND fvl135.view_application_id(+) = 0
205321   AND fvl135.language(+)            = USERENV('LANG')
205322   ;
205323 
205324 --
205325 BEGIN
205326 IF g_log_enabled THEN
205327    l_log_module := C_DEFAULT_MODULE||'.EventClass_298';
205328 END IF;
205329 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
205330    trace
205331       (p_msg      => 'BEGIN of EventClass_298'
205332       ,p_level    => C_LEVEL_PROCEDURE
205333       ,p_module   => l_log_module);
205334 END IF;
205335 
205336 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
205337    trace
205338       (p_msg      => 'p_application_id = '||p_application_id||
205339                      ' - p_base_ledger_id = '||p_base_ledger_id||
205340                      ' - p_target_ledger_id  = '||p_target_ledger_id||
205341                      ' - p_language = '||p_language||
205342                      ' - p_currency_code = '||p_currency_code||
205343                      ' - p_sla_ledger_id = '||p_sla_ledger_id
205344       ,p_level    => C_LEVEL_STATEMENT
205345       ,p_module   => l_log_module);
205346 END IF;
205347 --
205348 -- initialze arrays
205349 --
205350 g_array_event.DELETE;
205351 l_rec_array_event := l_null_rec_array_event;
205352 --
205353 --------------------------------------
205354 -- 4262811 Initialze MPA Line Number
205355 --------------------------------------
205356 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
205357 
205358 --
205359 
205360 --
205361 OPEN header_cur;
205362 --
205363 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
205364    trace
205365    (p_msg      => 'SQL - FETCH header_cur'
205366    ,p_level    => C_LEVEL_STATEMENT
205367    ,p_module   => l_log_module);
205368 END IF;
205369 --
205370 LOOP
205371 FETCH header_cur BULK COLLECT INTO
205372         l_array_entity_id
205373       , l_array_legal_entity_id
205374       , l_array_entity_code
205375       , l_array_transaction_num
205376       , l_array_event_id
205377       , l_array_class_code
205378       , l_array_event_type
205379       , l_array_event_number
205380       , l_array_event_date
205381       , l_array_transaction_date
205382       , l_array_reference_num_1
205383       , l_array_reference_num_2
205387       , l_array_reference_char_2
205384       , l_array_reference_num_3
205385       , l_array_reference_num_4
205386       , l_array_reference_char_1
205388       , l_array_reference_char_3
205389       , l_array_reference_char_4
205390       , l_array_reference_date_1
205391       , l_array_reference_date_2
205392       , l_array_reference_date_3
205393       , l_array_reference_date_4
205394       , l_array_event_created_by
205395       , l_array_budgetary_control_flag 
205396       , l_array_source_3
205397       , l_array_source_3_meaning
205398       , l_array_source_8
205399       , l_array_source_11
205400       , l_array_source_19
205401       , l_array_source_19_meaning
205402       , l_array_source_22
205403       , l_array_source_35
205404       , l_array_source_35_meaning
205405       , l_array_source_46
205406       , l_array_source_55
205407       , l_array_source_69
205408       , l_array_source_70
205409       , l_array_source_71
205410       , l_array_source_86
205411       , l_array_source_86_meaning
205412       , l_array_source_136
205413       , l_array_source_137
205414       , l_array_source_138
205415       , l_array_source_165
205416       , l_array_source_166
205417       , l_array_source_167
205418       LIMIT l_rows;
205419 --
205420 IF (C_LEVEL_EVENT >= g_log_level) THEN
205421    trace
205422    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
205423    ,p_level    => C_LEVEL_EVENT
205424    ,p_module   => l_log_module);
205425 END IF;
205426 --
205427 EXIT WHEN l_array_entity_id.COUNT = 0;
205428 
205429 -- initialize arrays
205430 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
205431 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
205432 
205433 --
205434 -- Bug 4458708
205435 --
205436 XLA_AE_LINES_PKG.g_LineNumber := 0;
205437 
205438 
205439 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
205440 g_last_hdr_idx := l_array_event_id.LAST;
205441 --
205442 -- loop for the headers. Each iteration is for each header extract row
205443 -- fetched in header cursor
205444 --
205445 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
205446 
205447 --
205448 -- set event info as cache for other routines to refer event attributes
205449 --
205450 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
205451    (p_application_id           => p_application_id
205452    ,p_primary_ledger_id        => p_primary_ledger_id
205453    ,p_base_ledger_id           => p_base_ledger_id
205454    ,p_target_ledger_id         => p_target_ledger_id
205455    ,p_entity_id                => l_array_entity_id(hdr_idx)
205456    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
205457    ,p_entity_code              => l_array_entity_code(hdr_idx)
205458    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
205459    ,p_event_id                 => l_array_event_id(hdr_idx)
205460    ,p_event_class_code         => l_array_class_code(hdr_idx)
205461    ,p_event_type_code          => l_array_event_type(hdr_idx)
205462    ,p_event_number             => l_array_event_number(hdr_idx)
205463    ,p_event_date               => l_array_event_date(hdr_idx)
205464    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
205465    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
205466    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
205467    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
205468    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
205469    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
205470    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
205471    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
205472    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
205473    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
205474    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
205475    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
205476    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
205477    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
205478    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
205479 
205480 --
205481 -- set the status of entry to C_VALID (0)
205482 --
205483 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
205484 
205485 --
205486 -- initialize a row for ae header
205487 --
205488 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
205489 
205490 l_event_id := l_array_event_id(hdr_idx);
205491 
205492 --
205493 -- storing the hdr_idx for event. May be used by line cursor.
205494 --
205495 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
205496 
205497 --
205498 -- store sources from header extract. This can be improved to
205499 -- store only those sources from header extract that may be used in lines
205500 --
205501 
205502 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
205503 g_array_event(l_event_id).array_value_char('source_3_meaning') := l_array_source_3_meaning(hdr_idx);
205504 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
205505 g_array_event(l_event_id).array_value_num('source_11') := l_array_source_11(hdr_idx);
205506 g_array_event(l_event_id).array_value_char('source_19') := l_array_source_19(hdr_idx);
205507 g_array_event(l_event_id).array_value_char('source_19_meaning') := l_array_source_19_meaning(hdr_idx);
205508 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
205509 g_array_event(l_event_id).array_value_char('source_35') := l_array_source_35(hdr_idx);
205510 g_array_event(l_event_id).array_value_char('source_35_meaning') := l_array_source_35_meaning(hdr_idx);
205514 g_array_event(l_event_id).array_value_num('source_70') := l_array_source_70(hdr_idx);
205511 g_array_event(l_event_id).array_value_num('source_46') := l_array_source_46(hdr_idx);
205512 g_array_event(l_event_id).array_value_char('source_55') := l_array_source_55(hdr_idx);
205513 g_array_event(l_event_id).array_value_num('source_69') := l_array_source_69(hdr_idx);
205515 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
205516 g_array_event(l_event_id).array_value_char('source_86') := l_array_source_86(hdr_idx);
205517 g_array_event(l_event_id).array_value_char('source_86_meaning') := l_array_source_86_meaning(hdr_idx);
205518 g_array_event(l_event_id).array_value_date('source_136') := l_array_source_136(hdr_idx);
205519 g_array_event(l_event_id).array_value_num('source_137') := l_array_source_137(hdr_idx);
205520 g_array_event(l_event_id).array_value_char('source_138') := l_array_source_138(hdr_idx);
205521 g_array_event(l_event_id).array_value_char('source_165') := l_array_source_165(hdr_idx);
205522 g_array_event(l_event_id).array_value_num('source_166') := l_array_source_166(hdr_idx);
205523 g_array_event(l_event_id).array_value_num('source_167') := l_array_source_167(hdr_idx);
205524 
205525 --
205526 -- initilaize the status of ae headers for diffrent balance types
205527 -- the status is initialised to C_NOT_CREATED (2)
205528 --
205529 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
205530 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
205531 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
205532 
205533 --
205534 -- call api to validate and store accounting attributes for header
205535 --
205536 
205537 ------------------------------------------------------------
205538 -- Accrual Reversal : to get date for Standard Source (NONE)
205539 ------------------------------------------------------------
205540 l_acc_rev_gl_date_source := NULL;
205541 
205542      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
205543       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_165');
205544      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
205545       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_166');
205546      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
205547       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_167');
205548      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
205549       l_rec_acct_attrs.array_date_value(4) := 
205550 xla_ae_sources_pkg.GetSystemSourceDate(
205551    p_source_code           => 'XLA_EVENT_DATE'
205552  , p_source_type_code      => 'Y'
205553  , p_source_application_id =>  602
205554 );
205555 
205556 
205557 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
205558 
205559 XLA_AE_HEADER_PKG.SetJeCategoryName;
205560 
205561 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
205562 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
205563 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
205564 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
205565 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
205566 
205567 
205568 --
205569 xla_ae_header_pkg.SetHdrDescription(
205570    p_description => Description_1 (
205571    p_application_id => p_application_id 
205572    )
205573 );
205574 --
205575 
205576 -- No header level analytical criteria
205577 
205578 --
205579 --accounting attribute enhancement, bug 3612931
205580 --
205581 l_trx_reversal_source := SUBSTR(NULL, 1,30);
205582 
205583 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
205584    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
205585 
205586    xla_accounting_err_pkg.build_message
205587       (p_appli_s_name            => 'XLA'
205588       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
205589       ,p_token_1                 => 'ACCT_ATTR_NAME'
205590       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
205591       ,p_token_2                 => 'PRODUCT_NAME'
205592       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
205593       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
205594       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
205595       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
205596 
205597 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
205598    --
205599    -- following sets the accounting attributes needed to reverse
205600    -- accounting for a distributeion
205601    --
205602    xla_ae_lines_pkg.SetTrxReversalAttrs
205603       (p_event_id              => l_event_id
205604       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
205605       ,p_trx_reversal_source   => l_trx_reversal_source);
205606 
205607 END IF;
205608 
205609 
205610 ----------------------------------------------------------------
205611 -- 4262811 -  update the header statuses to invalid in need be
205612 ----------------------------------------------------------------
205613 --
205614 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
205615 
205616 
205617   -----------------------------------------------
205618   -- No accrual reversal for the event class/type
205619   -----------------------------------------------
205620 ----------------------------------------------------------------
205621 
205622 --
205623 -- this ends the header loop iteration for one bulk fetch
205624 --
205625 END LOOP;
205626 
205627 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
205628 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
205629 
205630 --
205631 -- insert dummy rows into lines gt table that were created due to
205632 -- transaction reversals
205633 --
205634 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
205635    l_result := XLA_AE_LINES_PKG.InsertLines;
205636 END IF;
205637 
205638 --
205639 -- reset the temp_line_num for each set of events fetched from header
205640 -- cursor rather than doing it for each new event in line cursor
205641 -- Bug 3939231
205642 --
205643 xla_ae_lines_pkg.g_temp_line_num := 0;
205644 
205645 
205646 
205647 --
205648 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
205649 --
205650 --
205651 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
205652 
205653       trace
205654          (p_msg      => 'SQL - FETCH line_cur'
205655          ,p_level    => C_LEVEL_STATEMENT
205656          ,p_module   => l_log_module);
205657 
205658 END IF;
205659 --
205660 --
205661 LOOP
205662   --
205663   FETCH line_cur BULK COLLECT INTO
205664         l_array_entity_id
205665       , l_array_legal_entity_id
205666       , l_array_entity_code
205667       , l_array_transaction_num
205668       , l_array_event_id
205669       , l_array_class_code
205670       , l_array_event_type
205671       , l_array_event_number
205672       , l_array_event_date
205673       , l_array_transaction_date
205674       , l_array_reference_num_1
205675       , l_array_reference_num_2
205676       , l_array_reference_num_3
205677       , l_array_reference_num_4
205678       , l_array_reference_char_1
205679       , l_array_reference_char_2
205680       , l_array_reference_char_3
205681       , l_array_reference_char_4
205682       , l_array_reference_date_1
205683       , l_array_reference_date_2
205684       , l_array_reference_date_3
205685       , l_array_reference_date_4
205686       , l_array_event_created_by
205687       , l_array_budgetary_control_flag
205688       , l_array_extract_line_num 
205689       , l_array_source_1
205690       , l_array_source_9
205691       , l_array_source_10
205692       , l_array_source_10_meaning
205693       , l_array_source_18
205694       , l_array_source_20
205695       , l_array_source_21
205696       , l_array_source_21_meaning
205697       , l_array_source_31
205698       , l_array_source_33
205699       , l_array_source_38
205700       , l_array_source_39
205701       , l_array_source_41
205702       , l_array_source_43
205703       , l_array_source_45
205704       , l_array_source_52
205705       , l_array_source_53
205706       , l_array_source_54
205707       , l_array_source_56
205708       , l_array_source_57
205709       , l_array_source_58
205710       , l_array_source_59
205711       , l_array_source_60
205712       , l_array_source_61
205713       , l_array_source_62
205714       , l_array_source_63
205715       , l_array_source_64
205716       , l_array_source_65
205717       , l_array_source_66
205718       , l_array_source_67
205719       , l_array_source_68
205720       , l_array_source_68_meaning
205721       , l_array_source_72
205722       , l_array_source_73
205723       , l_array_source_74
205724       , l_array_source_75
205725       , l_array_source_76
205726       , l_array_source_77
205727       , l_array_source_78
205728       , l_array_source_79
205729       , l_array_source_80
205730       , l_array_source_81
205731       , l_array_source_82
205732       , l_array_source_83
205733       , l_array_source_84
205734       , l_array_source_84_meaning
205735       , l_array_source_85
205736       , l_array_source_87
205737       , l_array_source_87_meaning
205738       , l_array_source_88
205739       , l_array_source_130
205740       , l_array_source_130_meaning
205741       , l_array_source_135
205742       , l_array_source_135_meaning
205743       , l_array_source_143
205744       , l_array_source_144
205745       , l_array_source_161
205746       , l_array_source_162
205747       LIMIT l_rows;
205748 
205749   --
205750   IF (C_LEVEL_EVENT >= g_log_level) THEN
205751             trace
205752                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
205753                ,p_level    => C_LEVEL_EVENT
205754                ,p_module   => l_log_module);
205755   END IF;
205756   --
205757   EXIT WHEN l_array_entity_id.count = 0;
205758 
205759   XLA_AE_LINES_PKG.g_rec_lines := null;
205760 
205761 --
205762 -- Bug 4458708
205763 --
205764 XLA_AE_LINES_PKG.g_LineNumber := 0;
205765 --
205766 --
205767 
205768 FOR Idx IN 1..l_array_event_id.count LOOP
205769    --
205770    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
205771    --
205772    l_event_id := l_array_event_id(idx);  -- 5648433
205773 
205774    --
205775    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
205776    --
205777 
205778    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
205779              (g_array_event(l_event_id).array_value_num('header_index'))
205780          ,'N'
205781          ) <> 'Y'
205782    THEN
205783       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
205784          trace
205785             (p_msg      => 'Trancaction revesal option is not Y '
205786             ,p_level    => C_LEVEL_STATEMENT
205787             ,p_module   => l_log_module);
205788       END IF;
205789 
205790 --
205791 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
205792 --
205793 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
205794 --
205795 -- set event info as cache for other routines to refer event attributes
205796 --
205797 
205798 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
205799    l_previous_event_id := l_event_id;
205800 
205801    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
205802       (p_application_id           => p_application_id
205803       ,p_primary_ledger_id        => p_primary_ledger_id
205804       ,p_base_ledger_id           => p_base_ledger_id
205805       ,p_target_ledger_id         => p_target_ledger_id
205806       ,p_entity_id                => l_array_entity_id(Idx)
205807       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
205808       ,p_entity_code              => l_array_entity_code(Idx)
205809       ,p_transaction_num          => l_array_transaction_num(Idx)
205810       ,p_event_id                 => l_array_event_id(Idx)
205811       ,p_event_class_code         => l_array_class_code(Idx)
205812       ,p_event_type_code          => l_array_event_type(Idx)
205813       ,p_event_number             => l_array_event_number(Idx)
205814       ,p_event_date               => l_array_event_date(Idx)
205815       ,p_transaction_date         => l_array_transaction_date(Idx)
205816       ,p_reference_num_1          => l_array_reference_num_1(Idx)
205817       ,p_reference_num_2          => l_array_reference_num_2(Idx)
205818       ,p_reference_num_3          => l_array_reference_num_3(Idx)
205819       ,p_reference_num_4          => l_array_reference_num_4(Idx)
205820       ,p_reference_char_1         => l_array_reference_char_1(Idx)
205821       ,p_reference_char_2         => l_array_reference_char_2(Idx)
205822       ,p_reference_char_3         => l_array_reference_char_3(Idx)
205823       ,p_reference_char_4         => l_array_reference_char_4(Idx)
205824       ,p_reference_date_1         => l_array_reference_date_1(Idx)
205825       ,p_reference_date_2         => l_array_reference_date_2(Idx)
205826       ,p_reference_date_3         => l_array_reference_date_3(Idx)
205827       ,p_reference_date_4         => l_array_reference_date_4(Idx)
205828       ,p_event_created_by         => l_array_event_created_by(Idx)
205829       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
205830        --
205831 END IF;
205832 
205833 
205834 
205835 --
205836 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
205837 
205838 l_acct_reversal_source := SUBSTR(l_array_source_41(Idx), 1,30);
205839 
205840 IF l_continue_with_lines THEN
205841    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
205842       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
205843 
205844       xla_accounting_err_pkg.build_message
205845          (p_appli_s_name            => 'XLA'
205846          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
205847          ,p_token_1                 => 'LINE_NUMBER'
205848          ,p_value_1                 => l_array_extract_line_num(Idx)
205849          ,p_token_2                 => 'PRODUCT_NAME'
205850          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
205851          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
205852          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
205853          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
205854 
205855    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
205856       --
205857       -- following sets the accounting attributes needed to reverse
205858       -- accounting for a distributeion
205859       --
205860 
205861       --
205862       -- 5217187
205863       --
205864       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
205865       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
205866                                        g_array_event(l_event_id).array_value_num('header_index'));
205867       --
205868       --
205869 
205870       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
205871       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_41(Idx);
205872       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
205873       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_52(Idx);
205874       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
205875       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_43(Idx);
205876       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
205877       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_53(Idx);
205878       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
205879       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_54(Idx);
205880       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
205884       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
205881       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_55');
205882       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
205883       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_56(Idx);
205885       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_57(Idx);
205886       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
205887       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_58(Idx);
205888       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
205889       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_55');
205890       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
205891       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_59(Idx);
205892       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
205893       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_60(Idx);
205894       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
205895       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_71');
205896       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
205897       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_72(Idx);
205898       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
205899       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_43(Idx);
205900       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
205901       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_74(Idx);
205902       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
205903       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_75(Idx);
205904       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
205905       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_76(Idx);
205906       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
205907       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_77(Idx);
205908       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
205909       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_78(Idx);
205910 
205911 
205912       xla_ae_lines_pkg.SetAcctReversalAttrs
205913          (p_event_id             => l_event_id
205914          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
205915          ,p_calculate_acctd_flag => l_calculate_acctd_flag
205916          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
205917    END IF;
205918 
205919    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
205920        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
205921 
205922 --
205923 AcctLineType_50 (
205924  p_application_id  => p_application_id
205925  ,p_event_id     => l_event_id
205926  ,p_calculate_acctd_flag => l_calculate_acctd_flag
205927  ,p_calculate_g_l_flag => l_calculate_g_l_flag
205928  ,p_actual_flag => l_actual_flag
205929  ,p_balance_type_code => l_balance_type_code
205930  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
205931  
205932  , p_source_1 => l_array_source_1(Idx)
205933  , p_source_9 => l_array_source_9(Idx)
205934  , p_source_18 => l_array_source_18(Idx)
205935  , p_source_21 => l_array_source_21(Idx)
205936  , p_source_21_meaning => l_array_source_21_meaning(Idx)
205937  , p_source_41 => l_array_source_41(Idx)
205938  , p_source_43 => l_array_source_43(Idx)
205939  , p_source_45 => l_array_source_45(Idx)
205940  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
205941  , p_source_52 => l_array_source_52(Idx)
205942  , p_source_53 => l_array_source_53(Idx)
205943  , p_source_54 => l_array_source_54(Idx)
205944  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
205945  , p_source_56 => l_array_source_56(Idx)
205946  , p_source_57 => l_array_source_57(Idx)
205947  , p_source_58 => l_array_source_58(Idx)
205948  , p_source_59 => l_array_source_59(Idx)
205949  , p_source_60 => l_array_source_60(Idx)
205950  , p_source_61 => l_array_source_61(Idx)
205951  , p_source_62 => l_array_source_62(Idx)
205952  , p_source_63 => l_array_source_63(Idx)
205953  , p_source_64 => l_array_source_64(Idx)
205954  , p_source_65 => l_array_source_65(Idx)
205955  , p_source_66 => l_array_source_66(Idx)
205956  , p_source_67 => l_array_source_67(Idx)
205957  , p_source_68 => l_array_source_68(Idx)
205958  , p_source_68_meaning => l_array_source_68_meaning(Idx)
205959  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
205960  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
205961  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
205962  , p_source_72 => l_array_source_72(Idx)
205963  , p_source_73 => l_array_source_73(Idx)
205964  , p_source_74 => l_array_source_74(Idx)
205965  , p_source_75 => l_array_source_75(Idx)
205966  , p_source_76 => l_array_source_76(Idx)
205967  , p_source_77 => l_array_source_77(Idx)
205968  , p_source_78 => l_array_source_78(Idx)
205969  , p_source_79 => l_array_source_79(Idx)
205970  , p_source_80 => l_array_source_80(Idx)
205971  , p_source_81 => l_array_source_81(Idx)
205972  , p_source_82 => l_array_source_82(Idx)
205973  , p_source_83 => l_array_source_83(Idx)
205974  );
205975 If(l_balance_type_code = 'A') THEN
205976   l_actual_gain_loss_ref := l_gain_or_loss_ref;
205977 END IF;
205978 
205979 --
205980 
205981 
205982 --
205983 AcctLineType_54 (
205984  p_application_id  => p_application_id
205985  ,p_event_id     => l_event_id
205986  ,p_calculate_acctd_flag => l_calculate_acctd_flag
205987  ,p_calculate_g_l_flag => l_calculate_g_l_flag
205988  ,p_actual_flag => l_actual_flag
205989  ,p_balance_type_code => l_balance_type_code
205990  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
205991  
205992  , p_source_1 => l_array_source_1(Idx)
205993  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
205994  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
205995  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
205996  , p_source_9 => l_array_source_9(Idx)
205997  , p_source_10 => l_array_source_10(Idx)
205998  , p_source_10_meaning => l_array_source_10_meaning(Idx)
205999  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
206000  , p_source_18 => l_array_source_18(Idx)
206001  , p_source_21 => l_array_source_21(Idx)
206002  , p_source_21_meaning => l_array_source_21_meaning(Idx)
206003  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
206004  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
206005  , p_source_41 => l_array_source_41(Idx)
206006  , p_source_43 => l_array_source_43(Idx)
206007  , p_source_45 => l_array_source_45(Idx)
206008  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206009  , p_source_52 => l_array_source_52(Idx)
206010  , p_source_53 => l_array_source_53(Idx)
206011  , p_source_54 => l_array_source_54(Idx)
206012  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206013  , p_source_56 => l_array_source_56(Idx)
206014  , p_source_57 => l_array_source_57(Idx)
206015  , p_source_58 => l_array_source_58(Idx)
206016  , p_source_59 => l_array_source_59(Idx)
206017  , p_source_60 => l_array_source_60(Idx)
206018  , p_source_65 => l_array_source_65(Idx)
206019  , p_source_66 => l_array_source_66(Idx)
206020  , p_source_67 => l_array_source_67(Idx)
206021  , p_source_68 => l_array_source_68(Idx)
206022  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206023  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
206024  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
206025  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206029  , p_source_75 => l_array_source_75(Idx)
206026  , p_source_72 => l_array_source_72(Idx)
206027  , p_source_73 => l_array_source_73(Idx)
206028  , p_source_74 => l_array_source_74(Idx)
206030  , p_source_76 => l_array_source_76(Idx)
206031  , p_source_77 => l_array_source_77(Idx)
206032  , p_source_78 => l_array_source_78(Idx)
206033  , p_source_79 => l_array_source_79(Idx)
206034  , p_source_80 => l_array_source_80(Idx)
206035  , p_source_81 => l_array_source_81(Idx)
206036  , p_source_82 => l_array_source_82(Idx)
206037  , p_source_83 => l_array_source_83(Idx)
206038  );
206039 If(l_balance_type_code = 'A') THEN
206040   l_actual_gain_loss_ref := l_gain_or_loss_ref;
206041 END IF;
206042 
206043 --
206044 
206045 
206046 --
206047 AcctLineType_58 (
206048  p_application_id  => p_application_id
206049  ,p_event_id     => l_event_id
206050  ,p_calculate_acctd_flag => l_calculate_acctd_flag
206051  ,p_calculate_g_l_flag => l_calculate_g_l_flag
206052  ,p_actual_flag => l_actual_flag
206053  ,p_balance_type_code => l_balance_type_code
206054  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
206055  
206056  , p_source_1 => l_array_source_1(Idx)
206057  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
206058  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
206059  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
206060  , p_source_9 => l_array_source_9(Idx)
206061  , p_source_10 => l_array_source_10(Idx)
206062  , p_source_10_meaning => l_array_source_10_meaning(Idx)
206063  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
206064  , p_source_18 => l_array_source_18(Idx)
206065  , p_source_21 => l_array_source_21(Idx)
206066  , p_source_21_meaning => l_array_source_21_meaning(Idx)
206067  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
206068  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
206069  , p_source_41 => l_array_source_41(Idx)
206070  , p_source_43 => l_array_source_43(Idx)
206071  , p_source_45 => l_array_source_45(Idx)
206072  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206073  , p_source_52 => l_array_source_52(Idx)
206074  , p_source_53 => l_array_source_53(Idx)
206075  , p_source_54 => l_array_source_54(Idx)
206076  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206077  , p_source_56 => l_array_source_56(Idx)
206078  , p_source_57 => l_array_source_57(Idx)
206079  , p_source_58 => l_array_source_58(Idx)
206080  , p_source_59 => l_array_source_59(Idx)
206081  , p_source_60 => l_array_source_60(Idx)
206082  , p_source_65 => l_array_source_65(Idx)
206083  , p_source_66 => l_array_source_66(Idx)
206084  , p_source_67 => l_array_source_67(Idx)
206085  , p_source_68 => l_array_source_68(Idx)
206086  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206087  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
206088  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
206089  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206090  , p_source_72 => l_array_source_72(Idx)
206091  , p_source_73 => l_array_source_73(Idx)
206092  , p_source_74 => l_array_source_74(Idx)
206093  , p_source_75 => l_array_source_75(Idx)
206094  , p_source_76 => l_array_source_76(Idx)
206095  , p_source_77 => l_array_source_77(Idx)
206096  , p_source_78 => l_array_source_78(Idx)
206097  , p_source_79 => l_array_source_79(Idx)
206098  , p_source_80 => l_array_source_80(Idx)
206099  , p_source_81 => l_array_source_81(Idx)
206100  , p_source_82 => l_array_source_82(Idx)
206101  , p_source_83 => l_array_source_83(Idx)
206102  , p_source_84 => l_array_source_84(Idx)
206103  , p_source_84_meaning => l_array_source_84_meaning(Idx)
206104  );
206105 If(l_balance_type_code = 'A') THEN
206106   l_actual_gain_loss_ref := l_gain_or_loss_ref;
206107 END IF;
206108 
206109 --
206110 
206111 
206112 --
206113 AcctLineType_62 (
206114  p_application_id  => p_application_id
206115  ,p_event_id     => l_event_id
206116  ,p_calculate_acctd_flag => l_calculate_acctd_flag
206117  ,p_calculate_g_l_flag => l_calculate_g_l_flag
206118  ,p_actual_flag => l_actual_flag
206119  ,p_balance_type_code => l_balance_type_code
206120  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
206121  
206122  , p_source_21 => l_array_source_21(Idx)
206123  , p_source_21_meaning => l_array_source_21_meaning(Idx)
206124  , p_source_41 => l_array_source_41(Idx)
206125  , p_source_43 => l_array_source_43(Idx)
206126  , p_source_45 => l_array_source_45(Idx)
206127  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206128  , p_source_52 => l_array_source_52(Idx)
206129  , p_source_53 => l_array_source_53(Idx)
206130  , p_source_54 => l_array_source_54(Idx)
206131  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206132  , p_source_56 => l_array_source_56(Idx)
206133  , p_source_57 => l_array_source_57(Idx)
206134  , p_source_58 => l_array_source_58(Idx)
206135  , p_source_59 => l_array_source_59(Idx)
206136  , p_source_60 => l_array_source_60(Idx)
206137  , p_source_65 => l_array_source_65(Idx)
206138  , p_source_66 => l_array_source_66(Idx)
206139  , p_source_67 => l_array_source_67(Idx)
206140  , p_source_68 => l_array_source_68(Idx)
206141  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206142  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206143  , p_source_72 => l_array_source_72(Idx)
206144  , p_source_73 => l_array_source_73(Idx)
206145  , p_source_74 => l_array_source_74(Idx)
206146  , p_source_75 => l_array_source_75(Idx)
206147  , p_source_76 => l_array_source_76(Idx)
206148  , p_source_77 => l_array_source_77(Idx)
206149  , p_source_78 => l_array_source_78(Idx)
206150  , p_source_79 => l_array_source_79(Idx)
206151  , p_source_80 => l_array_source_80(Idx)
206152  , p_source_81 => l_array_source_81(Idx)
206153  , p_source_82 => l_array_source_82(Idx)
206154  , p_source_83 => l_array_source_83(Idx)
206155  , p_source_84 => l_array_source_84(Idx)
206156  , p_source_84_meaning => l_array_source_84_meaning(Idx)
206157  , p_source_85 => l_array_source_85(Idx)
206158  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
206159  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
206160  , p_source_87 => l_array_source_87(Idx)
206161  , p_source_87_meaning => l_array_source_87_meaning(Idx)
206162  , p_source_88 => l_array_source_88(Idx)
206163  );
206164 If(l_balance_type_code = 'A') THEN
206165   l_actual_gain_loss_ref := l_gain_or_loss_ref;
206166 END IF;
206167 
206168 --
206169 
206170 
206171 --
206172 AcctLineType_104 (
206173  p_application_id  => p_application_id
206174  ,p_event_id     => l_event_id
206175  ,p_calculate_acctd_flag => l_calculate_acctd_flag
206176  ,p_calculate_g_l_flag => l_calculate_g_l_flag
206177  ,p_actual_flag => l_actual_flag
206178  ,p_balance_type_code => l_balance_type_code
206179  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
206180  
206181  , p_source_1 => l_array_source_1(Idx)
206182  , p_source_9 => l_array_source_9(Idx)
206183  , p_source_18 => l_array_source_18(Idx)
206184  , p_source_21 => l_array_source_21(Idx)
206185  , p_source_21_meaning => l_array_source_21_meaning(Idx)
206186  , p_source_41 => l_array_source_41(Idx)
206187  , p_source_43 => l_array_source_43(Idx)
206188  , p_source_45 => l_array_source_45(Idx)
206189  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206190  , p_source_52 => l_array_source_52(Idx)
206191  , p_source_53 => l_array_source_53(Idx)
206192  , p_source_54 => l_array_source_54(Idx)
206193  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206194  , p_source_56 => l_array_source_56(Idx)
206195  , p_source_57 => l_array_source_57(Idx)
206196  , p_source_58 => l_array_source_58(Idx)
206197  , p_source_59 => l_array_source_59(Idx)
206198  , p_source_60 => l_array_source_60(Idx)
206199  , p_source_61 => l_array_source_61(Idx)
206200  , p_source_65 => l_array_source_65(Idx)
206201  , p_source_66 => l_array_source_66(Idx)
206202  , p_source_67 => l_array_source_67(Idx)
206203  , p_source_68 => l_array_source_68(Idx)
206204  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206205  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
206206  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
206207  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206208  , p_source_72 => l_array_source_72(Idx)
206209  , p_source_73 => l_array_source_73(Idx)
206210  , p_source_74 => l_array_source_74(Idx)
206211  , p_source_75 => l_array_source_75(Idx)
206212  , p_source_76 => l_array_source_76(Idx)
206213  , p_source_77 => l_array_source_77(Idx)
206214  , p_source_78 => l_array_source_78(Idx)
206215  , p_source_79 => l_array_source_79(Idx)
206216  , p_source_80 => l_array_source_80(Idx)
206217  , p_source_81 => l_array_source_81(Idx)
206218  , p_source_82 => l_array_source_82(Idx)
206219  , p_source_83 => l_array_source_83(Idx)
206220  , p_source_130 => l_array_source_130(Idx)
206221  , p_source_130_meaning => l_array_source_130_meaning(Idx)
206222  , p_source_135 => l_array_source_135(Idx)
206223  , p_source_135_meaning => l_array_source_135_meaning(Idx)
206224  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
206225  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
206226  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
206227  );
206228 If(l_balance_type_code = 'A') THEN
206229   l_actual_gain_loss_ref := l_gain_or_loss_ref;
206230 END IF;
206231 
206232 --
206233 
206234 
206235 --
206236 AcctLineType_117 (
206237  p_application_id  => p_application_id
206238  ,p_event_id     => l_event_id
206239  ,p_calculate_acctd_flag => l_calculate_acctd_flag
206240  ,p_calculate_g_l_flag => l_calculate_g_l_flag
206241  ,p_actual_flag => l_actual_flag
206242  ,p_balance_type_code => l_balance_type_code
206243  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
206244  
206245  , p_source_21 => l_array_source_21(Idx)
206246  , p_source_21_meaning => l_array_source_21_meaning(Idx)
206247  , p_source_41 => l_array_source_41(Idx)
206248  , p_source_43 => l_array_source_43(Idx)
206249  , p_source_45 => l_array_source_45(Idx)
206250  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206251  , p_source_52 => l_array_source_52(Idx)
206252  , p_source_53 => l_array_source_53(Idx)
206253  , p_source_54 => l_array_source_54(Idx)
206254  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206255  , p_source_56 => l_array_source_56(Idx)
206256  , p_source_57 => l_array_source_57(Idx)
206257  , p_source_58 => l_array_source_58(Idx)
206258  , p_source_59 => l_array_source_59(Idx)
206259  , p_source_60 => l_array_source_60(Idx)
206260  , p_source_65 => l_array_source_65(Idx)
206261  , p_source_66 => l_array_source_66(Idx)
206262  , p_source_67 => l_array_source_67(Idx)
206263  , p_source_68 => l_array_source_68(Idx)
206264  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206265  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206266  , p_source_72 => l_array_source_72(Idx)
206267  , p_source_73 => l_array_source_73(Idx)
206268  , p_source_74 => l_array_source_74(Idx)
206269  , p_source_75 => l_array_source_75(Idx)
206270  , p_source_76 => l_array_source_76(Idx)
206271  , p_source_77 => l_array_source_77(Idx)
206272  , p_source_78 => l_array_source_78(Idx)
206273  , p_source_79 => l_array_source_79(Idx)
206274  , p_source_80 => l_array_source_80(Idx)
206275  , p_source_81 => l_array_source_81(Idx)
206276  , p_source_82 => l_array_source_82(Idx)
206277  , p_source_83 => l_array_source_83(Idx)
206278  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
206279  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
206280  , p_source_87 => l_array_source_87(Idx)
206281  , p_source_87_meaning => l_array_source_87_meaning(Idx)
206282  , p_source_143 => l_array_source_143(Idx)
206283  , p_source_144 => l_array_source_144(Idx)
206284  );
206285 If(l_balance_type_code = 'A') THEN
206286   l_actual_gain_loss_ref := l_gain_or_loss_ref;
206287 END IF;
206288 
206289 --
206290 
206291 
206292 --
206293 AcctLineType_118 (
206294  p_application_id  => p_application_id
206295  ,p_event_id     => l_event_id
206296  ,p_calculate_acctd_flag => l_calculate_acctd_flag
206297  ,p_calculate_g_l_flag => l_calculate_g_l_flag
206298  ,p_actual_flag => l_actual_flag
206299  ,p_balance_type_code => l_balance_type_code
206300  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
206301  
206302  , p_source_1 => l_array_source_1(Idx)
206303  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
206304  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
206305  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
206306  , p_source_9 => l_array_source_9(Idx)
206307  , p_source_10 => l_array_source_10(Idx)
206308  , p_source_10_meaning => l_array_source_10_meaning(Idx)
206309  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
206310  , p_source_18 => l_array_source_18(Idx)
206311  , p_source_21 => l_array_source_21(Idx)
206312  , p_source_21_meaning => l_array_source_21_meaning(Idx)
206313  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
206314  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
206315  , p_source_41 => l_array_source_41(Idx)
206316  , p_source_43 => l_array_source_43(Idx)
206317  , p_source_45 => l_array_source_45(Idx)
206318  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206319  , p_source_52 => l_array_source_52(Idx)
206320  , p_source_53 => l_array_source_53(Idx)
206321  , p_source_54 => l_array_source_54(Idx)
206322  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206323  , p_source_56 => l_array_source_56(Idx)
206324  , p_source_57 => l_array_source_57(Idx)
206325  , p_source_58 => l_array_source_58(Idx)
206326  , p_source_59 => l_array_source_59(Idx)
206327  , p_source_60 => l_array_source_60(Idx)
206328  , p_source_61 => l_array_source_61(Idx)
206329  , p_source_65 => l_array_source_65(Idx)
206330  , p_source_66 => l_array_source_66(Idx)
206331  , p_source_67 => l_array_source_67(Idx)
206332  , p_source_68 => l_array_source_68(Idx)
206333  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206334  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
206335  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
206336  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206337  , p_source_72 => l_array_source_72(Idx)
206338  , p_source_73 => l_array_source_73(Idx)
206339  , p_source_74 => l_array_source_74(Idx)
206340  , p_source_75 => l_array_source_75(Idx)
206341  , p_source_76 => l_array_source_76(Idx)
206342  , p_source_77 => l_array_source_77(Idx)
206343  , p_source_78 => l_array_source_78(Idx)
206344  , p_source_79 => l_array_source_79(Idx)
206345  , p_source_80 => l_array_source_80(Idx)
206346  , p_source_81 => l_array_source_81(Idx)
206347  , p_source_82 => l_array_source_82(Idx)
206348  , p_source_83 => l_array_source_83(Idx)
206349  , p_source_84 => l_array_source_84(Idx)
206350  , p_source_84_meaning => l_array_source_84_meaning(Idx)
206351  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
206352  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
206353  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
206354  );
206355 If(l_balance_type_code = 'A') THEN
206356   l_actual_gain_loss_ref := l_gain_or_loss_ref;
206357 END IF;
206358 
206359 --
206360 
206361 
206362 --
206363 AcctLineType_130 (
206364  p_application_id  => p_application_id
206365  ,p_event_id     => l_event_id
206366  ,p_calculate_acctd_flag => l_calculate_acctd_flag
206367  ,p_calculate_g_l_flag => l_calculate_g_l_flag
206368  ,p_actual_flag => l_actual_flag
206369  ,p_balance_type_code => l_balance_type_code
206370  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
206371  
206372  , p_source_21 => l_array_source_21(Idx)
206373  , p_source_21_meaning => l_array_source_21_meaning(Idx)
206374  , p_source_41 => l_array_source_41(Idx)
206375  , p_source_43 => l_array_source_43(Idx)
206376  , p_source_45 => l_array_source_45(Idx)
206377  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206378  , p_source_52 => l_array_source_52(Idx)
206379  , p_source_53 => l_array_source_53(Idx)
206380  , p_source_54 => l_array_source_54(Idx)
206381  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206382  , p_source_56 => l_array_source_56(Idx)
206383  , p_source_57 => l_array_source_57(Idx)
206384  , p_source_58 => l_array_source_58(Idx)
206385  , p_source_59 => l_array_source_59(Idx)
206386  , p_source_60 => l_array_source_60(Idx)
206387  , p_source_65 => l_array_source_65(Idx)
206388  , p_source_66 => l_array_source_66(Idx)
206389  , p_source_67 => l_array_source_67(Idx)
206390  , p_source_68 => l_array_source_68(Idx)
206391  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206392  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206393  , p_source_72 => l_array_source_72(Idx)
206394  , p_source_73 => l_array_source_73(Idx)
206395  , p_source_74 => l_array_source_74(Idx)
206396  , p_source_75 => l_array_source_75(Idx)
206397  , p_source_76 => l_array_source_76(Idx)
206398  , p_source_77 => l_array_source_77(Idx)
206399  , p_source_78 => l_array_source_78(Idx)
206400  , p_source_79 => l_array_source_79(Idx)
206401  , p_source_80 => l_array_source_80(Idx)
206402  , p_source_81 => l_array_source_81(Idx)
206403  , p_source_82 => l_array_source_82(Idx)
206404  , p_source_83 => l_array_source_83(Idx)
206405  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
206406  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
206407  , p_source_87 => l_array_source_87(Idx)
206408  , p_source_87_meaning => l_array_source_87_meaning(Idx)
206409  , p_source_143 => l_array_source_143(Idx)
206410  , p_source_144 => l_array_source_144(Idx)
206411  );
206412 If(l_balance_type_code = 'A') THEN
206413   l_actual_gain_loss_ref := l_gain_or_loss_ref;
206414 END IF;
206415 
206416 --
206417 
206418 
206419 --
206420 AcctLineType_131 (
206421  p_application_id  => p_application_id
206422  ,p_event_id     => l_event_id
206423  ,p_calculate_acctd_flag => l_calculate_acctd_flag
206424  ,p_calculate_g_l_flag => l_calculate_g_l_flag
206425  ,p_actual_flag => l_actual_flag
206426  ,p_balance_type_code => l_balance_type_code
206427  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
206428  
206429  , p_source_1 => l_array_source_1(Idx)
206430  , p_source_9 => l_array_source_9(Idx)
206431  , p_source_18 => l_array_source_18(Idx)
206432  , p_source_21 => l_array_source_21(Idx)
206433  , p_source_21_meaning => l_array_source_21_meaning(Idx)
206434  , p_source_41 => l_array_source_41(Idx)
206435  , p_source_43 => l_array_source_43(Idx)
206436  , p_source_45 => l_array_source_45(Idx)
206437  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206438  , p_source_52 => l_array_source_52(Idx)
206439  , p_source_53 => l_array_source_53(Idx)
206440  , p_source_54 => l_array_source_54(Idx)
206441  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206442  , p_source_56 => l_array_source_56(Idx)
206443  , p_source_57 => l_array_source_57(Idx)
206444  , p_source_58 => l_array_source_58(Idx)
206445  , p_source_59 => l_array_source_59(Idx)
206446  , p_source_60 => l_array_source_60(Idx)
206447  , p_source_61 => l_array_source_61(Idx)
206448  , p_source_65 => l_array_source_65(Idx)
206449  , p_source_66 => l_array_source_66(Idx)
206450  , p_source_67 => l_array_source_67(Idx)
206451  , p_source_68 => l_array_source_68(Idx)
206452  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206453  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
206454  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
206455  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206456  , p_source_72 => l_array_source_72(Idx)
206457  , p_source_73 => l_array_source_73(Idx)
206458  , p_source_74 => l_array_source_74(Idx)
206459  , p_source_75 => l_array_source_75(Idx)
206460  , p_source_76 => l_array_source_76(Idx)
206461  , p_source_77 => l_array_source_77(Idx)
206462  , p_source_78 => l_array_source_78(Idx)
206463  , p_source_79 => l_array_source_79(Idx)
206464  , p_source_80 => l_array_source_80(Idx)
206465  , p_source_81 => l_array_source_81(Idx)
206466  , p_source_82 => l_array_source_82(Idx)
206467  , p_source_83 => l_array_source_83(Idx)
206468  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
206469  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
206470  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
206471  );
206472 If(l_balance_type_code = 'A') THEN
206473   l_actual_gain_loss_ref := l_gain_or_loss_ref;
206474 END IF;
206475 
206476 --
206477 
206478 
206479 --
206480 AcctLineType_156 (
206481  p_application_id  => p_application_id
206482  ,p_event_id     => l_event_id
206483  ,p_calculate_acctd_flag => l_calculate_acctd_flag
206484  ,p_calculate_g_l_flag => l_calculate_g_l_flag
206485  ,p_actual_flag => l_actual_flag
206486  ,p_balance_type_code => l_balance_type_code
206487  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
206488  
206489  , p_source_21 => l_array_source_21(Idx)
206490  , p_source_21_meaning => l_array_source_21_meaning(Idx)
206491  , p_source_41 => l_array_source_41(Idx)
206492  , p_source_43 => l_array_source_43(Idx)
206493  , p_source_45 => l_array_source_45(Idx)
206494  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206495  , p_source_52 => l_array_source_52(Idx)
206496  , p_source_53 => l_array_source_53(Idx)
206497  , p_source_54 => l_array_source_54(Idx)
206498  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206499  , p_source_56 => l_array_source_56(Idx)
206500  , p_source_57 => l_array_source_57(Idx)
206501  , p_source_58 => l_array_source_58(Idx)
206502  , p_source_59 => l_array_source_59(Idx)
206503  , p_source_60 => l_array_source_60(Idx)
206504  , p_source_65 => l_array_source_65(Idx)
206505  , p_source_66 => l_array_source_66(Idx)
206506  , p_source_67 => l_array_source_67(Idx)
206507  , p_source_68 => l_array_source_68(Idx)
206508  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206509  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206510  , p_source_72 => l_array_source_72(Idx)
206511  , p_source_73 => l_array_source_73(Idx)
206512  , p_source_74 => l_array_source_74(Idx)
206513  , p_source_75 => l_array_source_75(Idx)
206514  , p_source_76 => l_array_source_76(Idx)
206515  , p_source_77 => l_array_source_77(Idx)
206516  , p_source_78 => l_array_source_78(Idx)
206517  , p_source_79 => l_array_source_79(Idx)
206518  , p_source_80 => l_array_source_80(Idx)
206519  , p_source_81 => l_array_source_81(Idx)
206520  , p_source_82 => l_array_source_82(Idx)
206521  , p_source_83 => l_array_source_83(Idx)
206522  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
206523  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
206524  , p_source_87 => l_array_source_87(Idx)
206525  , p_source_87_meaning => l_array_source_87_meaning(Idx)
206526  , p_source_143 => l_array_source_143(Idx)
206527  , p_source_144 => l_array_source_144(Idx)
206528  );
206529 If(l_balance_type_code = 'A') THEN
206530   l_actual_gain_loss_ref := l_gain_or_loss_ref;
206531 END IF;
206532 
206533 --
206534 
206535 
206536 --
206537 AcctLineType_157 (
206538  p_application_id  => p_application_id
206539  ,p_event_id     => l_event_id
206540  ,p_calculate_acctd_flag => l_calculate_acctd_flag
206541  ,p_calculate_g_l_flag => l_calculate_g_l_flag
206542  ,p_actual_flag => l_actual_flag
206543  ,p_balance_type_code => l_balance_type_code
206544  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
206545  
206546  , p_source_1 => l_array_source_1(Idx)
206547  , p_source_9 => l_array_source_9(Idx)
206548  , p_source_18 => l_array_source_18(Idx)
206549  , p_source_21 => l_array_source_21(Idx)
206550  , p_source_21_meaning => l_array_source_21_meaning(Idx)
206551  , p_source_41 => l_array_source_41(Idx)
206552  , p_source_43 => l_array_source_43(Idx)
206553  , p_source_45 => l_array_source_45(Idx)
206554  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206555  , p_source_52 => l_array_source_52(Idx)
206556  , p_source_53 => l_array_source_53(Idx)
206557  , p_source_54 => l_array_source_54(Idx)
206558  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206559  , p_source_56 => l_array_source_56(Idx)
206560  , p_source_57 => l_array_source_57(Idx)
206561  , p_source_58 => l_array_source_58(Idx)
206562  , p_source_59 => l_array_source_59(Idx)
206563  , p_source_60 => l_array_source_60(Idx)
206564  , p_source_61 => l_array_source_61(Idx)
206565  , p_source_65 => l_array_source_65(Idx)
206566  , p_source_66 => l_array_source_66(Idx)
206567  , p_source_67 => l_array_source_67(Idx)
206568  , p_source_68 => l_array_source_68(Idx)
206569  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206570  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
206571  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
206572  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206573  , p_source_72 => l_array_source_72(Idx)
206574  , p_source_73 => l_array_source_73(Idx)
206575  , p_source_74 => l_array_source_74(Idx)
206576  , p_source_75 => l_array_source_75(Idx)
206577  , p_source_76 => l_array_source_76(Idx)
206578  , p_source_77 => l_array_source_77(Idx)
206579  , p_source_78 => l_array_source_78(Idx)
206580  , p_source_79 => l_array_source_79(Idx)
206581  , p_source_80 => l_array_source_80(Idx)
206582  , p_source_81 => l_array_source_81(Idx)
206583  , p_source_82 => l_array_source_82(Idx)
206584  , p_source_83 => l_array_source_83(Idx)
206585  , p_source_84 => l_array_source_84(Idx)
206586  , p_source_84_meaning => l_array_source_84_meaning(Idx)
206587  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
206588  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
206589  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
206590  );
206591 If(l_balance_type_code = 'A') THEN
206592   l_actual_gain_loss_ref := l_gain_or_loss_ref;
206593 END IF;
206594 
206595 --
206596 
206597 
206598 --
206599 AcctLineType_164 (
206600  p_application_id  => p_application_id
206601  ,p_event_id     => l_event_id
206602  ,p_calculate_acctd_flag => l_calculate_acctd_flag
206603  ,p_calculate_g_l_flag => l_calculate_g_l_flag
206604  ,p_actual_flag => l_actual_flag
206605  ,p_balance_type_code => l_balance_type_code
206606  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
206607  
206608  , p_source_21 => l_array_source_21(Idx)
206609  , p_source_21_meaning => l_array_source_21_meaning(Idx)
206610  , p_source_41 => l_array_source_41(Idx)
206611  , p_source_43 => l_array_source_43(Idx)
206612  , p_source_45 => l_array_source_45(Idx)
206613  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206614  , p_source_52 => l_array_source_52(Idx)
206615  , p_source_53 => l_array_source_53(Idx)
206616  , p_source_54 => l_array_source_54(Idx)
206617  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206618  , p_source_56 => l_array_source_56(Idx)
206619  , p_source_57 => l_array_source_57(Idx)
206620  , p_source_58 => l_array_source_58(Idx)
206621  , p_source_59 => l_array_source_59(Idx)
206622  , p_source_60 => l_array_source_60(Idx)
206623  , p_source_65 => l_array_source_65(Idx)
206624  , p_source_66 => l_array_source_66(Idx)
206625  , p_source_67 => l_array_source_67(Idx)
206626  , p_source_68 => l_array_source_68(Idx)
206627  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206628  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206629  , p_source_72 => l_array_source_72(Idx)
206630  , p_source_73 => l_array_source_73(Idx)
206631  , p_source_74 => l_array_source_74(Idx)
206632  , p_source_75 => l_array_source_75(Idx)
206633  , p_source_76 => l_array_source_76(Idx)
206634  , p_source_77 => l_array_source_77(Idx)
206635  , p_source_78 => l_array_source_78(Idx)
206636  , p_source_79 => l_array_source_79(Idx)
206637  , p_source_80 => l_array_source_80(Idx)
206638  , p_source_81 => l_array_source_81(Idx)
206639  , p_source_82 => l_array_source_82(Idx)
206640  , p_source_83 => l_array_source_83(Idx)
206641  , p_source_84 => l_array_source_84(Idx)
206642  , p_source_84_meaning => l_array_source_84_meaning(Idx)
206643  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
206644  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
206645  , p_source_87 => l_array_source_87(Idx)
206646  , p_source_87_meaning => l_array_source_87_meaning(Idx)
206647  , p_source_143 => l_array_source_143(Idx)
206648  , p_source_144 => l_array_source_144(Idx)
206649  );
206650 If(l_balance_type_code = 'A') THEN
206651   l_actual_gain_loss_ref := l_gain_or_loss_ref;
206652 END IF;
206653 
206654 --
206655 
206656 
206657 --
206658 AcctLineType_178 (
206659  p_application_id  => p_application_id
206660  ,p_event_id     => l_event_id
206661  ,p_calculate_acctd_flag => l_calculate_acctd_flag
206662  ,p_calculate_g_l_flag => l_calculate_g_l_flag
206663  ,p_actual_flag => l_actual_flag
206664  ,p_balance_type_code => l_balance_type_code
206665  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
206666  
206667  , p_source_1 => l_array_source_1(Idx)
206668  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
206669  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
206670  , p_source_9 => l_array_source_9(Idx)
206671  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
206672  , p_source_41 => l_array_source_41(Idx)
206673  , p_source_43 => l_array_source_43(Idx)
206674  , p_source_45 => l_array_source_45(Idx)
206675  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206676  , p_source_52 => l_array_source_52(Idx)
206677  , p_source_53 => l_array_source_53(Idx)
206678  , p_source_54 => l_array_source_54(Idx)
206679  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206680  , p_source_56 => l_array_source_56(Idx)
206681  , p_source_57 => l_array_source_57(Idx)
206682  , p_source_58 => l_array_source_58(Idx)
206683  , p_source_59 => l_array_source_59(Idx)
206684  , p_source_60 => l_array_source_60(Idx)
206685  , p_source_61 => l_array_source_61(Idx)
206686  , p_source_65 => l_array_source_65(Idx)
206687  , p_source_66 => l_array_source_66(Idx)
206688  , p_source_67 => l_array_source_67(Idx)
206689  , p_source_68 => l_array_source_68(Idx)
206690  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206691  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
206692  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
206693  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206694  , p_source_72 => l_array_source_72(Idx)
206695  , p_source_73 => l_array_source_73(Idx)
206696  , p_source_74 => l_array_source_74(Idx)
206697  , p_source_75 => l_array_source_75(Idx)
206698  , p_source_76 => l_array_source_76(Idx)
206699  , p_source_77 => l_array_source_77(Idx)
206700  , p_source_78 => l_array_source_78(Idx)
206701  , p_source_79 => l_array_source_79(Idx)
206702  , p_source_80 => l_array_source_80(Idx)
206703  , p_source_81 => l_array_source_81(Idx)
206704  , p_source_82 => l_array_source_82(Idx)
206705  , p_source_83 => l_array_source_83(Idx)
206706  , p_source_135 => l_array_source_135(Idx)
206707  , p_source_135_meaning => l_array_source_135_meaning(Idx)
206708  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
206709  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
206710  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
206711  );
206712 If(l_balance_type_code = 'A') THEN
206713   l_actual_gain_loss_ref := l_gain_or_loss_ref;
206714 END IF;
206715 
206716 --
206717 
206718 
206719 --
206720 AcctLineType_179 (
206721  p_application_id  => p_application_id
206722  ,p_event_id     => l_event_id
206723  ,p_calculate_acctd_flag => l_calculate_acctd_flag
206724  ,p_calculate_g_l_flag => l_calculate_g_l_flag
206725  ,p_actual_flag => l_actual_flag
206726  ,p_balance_type_code => l_balance_type_code
206727  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
206728  
206729  , p_source_1 => l_array_source_1(Idx)
206730  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
206731  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
206732  , p_source_9 => l_array_source_9(Idx)
206733  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
206734  , p_source_41 => l_array_source_41(Idx)
206735  , p_source_43 => l_array_source_43(Idx)
206736  , p_source_45 => l_array_source_45(Idx)
206737  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206738  , p_source_52 => l_array_source_52(Idx)
206739  , p_source_53 => l_array_source_53(Idx)
206740  , p_source_54 => l_array_source_54(Idx)
206741  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206742  , p_source_56 => l_array_source_56(Idx)
206743  , p_source_57 => l_array_source_57(Idx)
206744  , p_source_58 => l_array_source_58(Idx)
206745  , p_source_59 => l_array_source_59(Idx)
206746  , p_source_60 => l_array_source_60(Idx)
206747  , p_source_61 => l_array_source_61(Idx)
206748  , p_source_65 => l_array_source_65(Idx)
206749  , p_source_66 => l_array_source_66(Idx)
206750  , p_source_67 => l_array_source_67(Idx)
206751  , p_source_68 => l_array_source_68(Idx)
206752  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206753  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
206754  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
206755  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206756  , p_source_72 => l_array_source_72(Idx)
206757  , p_source_73 => l_array_source_73(Idx)
206758  , p_source_74 => l_array_source_74(Idx)
206759  , p_source_75 => l_array_source_75(Idx)
206760  , p_source_76 => l_array_source_76(Idx)
206761  , p_source_77 => l_array_source_77(Idx)
206762  , p_source_78 => l_array_source_78(Idx)
206763  , p_source_79 => l_array_source_79(Idx)
206764  , p_source_80 => l_array_source_80(Idx)
206765  , p_source_81 => l_array_source_81(Idx)
206766  , p_source_82 => l_array_source_82(Idx)
206767  , p_source_83 => l_array_source_83(Idx)
206768  , p_source_135 => l_array_source_135(Idx)
206769  , p_source_135_meaning => l_array_source_135_meaning(Idx)
206770  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
206771  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
206772  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
206773  );
206774 If(l_balance_type_code = 'A') THEN
206775   l_actual_gain_loss_ref := l_gain_or_loss_ref;
206776 END IF;
206777 
206778 --
206779 
206780 
206781 --
206782 AcctLineType_180 (
206783  p_application_id  => p_application_id
206784  ,p_event_id     => l_event_id
206785  ,p_calculate_acctd_flag => l_calculate_acctd_flag
206786  ,p_calculate_g_l_flag => l_calculate_g_l_flag
206787  ,p_actual_flag => l_actual_flag
206788  ,p_balance_type_code => l_balance_type_code
206789  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
206790  
206791  , p_source_1 => l_array_source_1(Idx)
206792  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
206793  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
206794  , p_source_9 => l_array_source_9(Idx)
206795  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
206796  , p_source_41 => l_array_source_41(Idx)
206797  , p_source_43 => l_array_source_43(Idx)
206798  , p_source_45 => l_array_source_45(Idx)
206799  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206800  , p_source_52 => l_array_source_52(Idx)
206801  , p_source_53 => l_array_source_53(Idx)
206802  , p_source_54 => l_array_source_54(Idx)
206803  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206804  , p_source_56 => l_array_source_56(Idx)
206805  , p_source_57 => l_array_source_57(Idx)
206806  , p_source_58 => l_array_source_58(Idx)
206807  , p_source_59 => l_array_source_59(Idx)
206808  , p_source_60 => l_array_source_60(Idx)
206809  , p_source_61 => l_array_source_61(Idx)
206810  , p_source_65 => l_array_source_65(Idx)
206811  , p_source_66 => l_array_source_66(Idx)
206812  , p_source_67 => l_array_source_67(Idx)
206813  , p_source_68 => l_array_source_68(Idx)
206814  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206815  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
206816  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
206817  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206818  , p_source_72 => l_array_source_72(Idx)
206819  , p_source_73 => l_array_source_73(Idx)
206820  , p_source_74 => l_array_source_74(Idx)
206821  , p_source_75 => l_array_source_75(Idx)
206822  , p_source_76 => l_array_source_76(Idx)
206823  , p_source_77 => l_array_source_77(Idx)
206824  , p_source_78 => l_array_source_78(Idx)
206825  , p_source_79 => l_array_source_79(Idx)
206826  , p_source_80 => l_array_source_80(Idx)
206827  , p_source_81 => l_array_source_81(Idx)
206828  , p_source_82 => l_array_source_82(Idx)
206829  , p_source_83 => l_array_source_83(Idx)
206830  , p_source_135 => l_array_source_135(Idx)
206831  , p_source_135_meaning => l_array_source_135_meaning(Idx)
206832  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
206833  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
206834  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
206835  );
206836 If(l_balance_type_code = 'A') THEN
206837   l_actual_gain_loss_ref := l_gain_or_loss_ref;
206838 END IF;
206839 
206840 --
206841 
206842 
206843 --
206844 AcctLineType_197 (
206845  p_application_id  => p_application_id
206846  ,p_event_id     => l_event_id
206847  ,p_calculate_acctd_flag => l_calculate_acctd_flag
206848  ,p_calculate_g_l_flag => l_calculate_g_l_flag
206849  ,p_actual_flag => l_actual_flag
206850  ,p_balance_type_code => l_balance_type_code
206851  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
206852  
206853  , p_source_21 => l_array_source_21(Idx)
206854  , p_source_21_meaning => l_array_source_21_meaning(Idx)
206855  , p_source_41 => l_array_source_41(Idx)
206856  , p_source_43 => l_array_source_43(Idx)
206857  , p_source_45 => l_array_source_45(Idx)
206858  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206859  , p_source_52 => l_array_source_52(Idx)
206860  , p_source_53 => l_array_source_53(Idx)
206861  , p_source_54 => l_array_source_54(Idx)
206862  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206863  , p_source_56 => l_array_source_56(Idx)
206864  , p_source_57 => l_array_source_57(Idx)
206865  , p_source_58 => l_array_source_58(Idx)
206866  , p_source_59 => l_array_source_59(Idx)
206867  , p_source_60 => l_array_source_60(Idx)
206868  , p_source_65 => l_array_source_65(Idx)
206869  , p_source_66 => l_array_source_66(Idx)
206870  , p_source_67 => l_array_source_67(Idx)
206871  , p_source_68 => l_array_source_68(Idx)
206872  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206873  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206874  , p_source_72 => l_array_source_72(Idx)
206875  , p_source_73 => l_array_source_73(Idx)
206876  , p_source_74 => l_array_source_74(Idx)
206877  , p_source_75 => l_array_source_75(Idx)
206878  , p_source_76 => l_array_source_76(Idx)
206879  , p_source_77 => l_array_source_77(Idx)
206880  , p_source_78 => l_array_source_78(Idx)
206881  , p_source_79 => l_array_source_79(Idx)
206882  , p_source_80 => l_array_source_80(Idx)
206883  , p_source_81 => l_array_source_81(Idx)
206884  , p_source_82 => l_array_source_82(Idx)
206885  , p_source_83 => l_array_source_83(Idx)
206886  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
206887  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
206888  , p_source_87 => l_array_source_87(Idx)
206889  , p_source_87_meaning => l_array_source_87_meaning(Idx)
206890  , p_source_143 => l_array_source_143(Idx)
206891  , p_source_144 => l_array_source_144(Idx)
206892  );
206893 If(l_balance_type_code = 'A') THEN
206897 --
206894   l_actual_gain_loss_ref := l_gain_or_loss_ref;
206895 END IF;
206896 
206898 
206899 
206900 --
206901 AcctLineType_198 (
206902  p_application_id  => p_application_id
206903  ,p_event_id     => l_event_id
206904  ,p_calculate_acctd_flag => l_calculate_acctd_flag
206905  ,p_calculate_g_l_flag => l_calculate_g_l_flag
206906  ,p_actual_flag => l_actual_flag
206907  ,p_balance_type_code => l_balance_type_code
206908  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
206909  
206910  , p_source_1 => l_array_source_1(Idx)
206911  , p_source_9 => l_array_source_9(Idx)
206912  , p_source_18 => l_array_source_18(Idx)
206913  , p_source_21 => l_array_source_21(Idx)
206914  , p_source_21_meaning => l_array_source_21_meaning(Idx)
206915  , p_source_41 => l_array_source_41(Idx)
206916  , p_source_43 => l_array_source_43(Idx)
206917  , p_source_45 => l_array_source_45(Idx)
206918  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206919  , p_source_52 => l_array_source_52(Idx)
206920  , p_source_53 => l_array_source_53(Idx)
206921  , p_source_54 => l_array_source_54(Idx)
206922  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206923  , p_source_56 => l_array_source_56(Idx)
206924  , p_source_57 => l_array_source_57(Idx)
206925  , p_source_58 => l_array_source_58(Idx)
206926  , p_source_59 => l_array_source_59(Idx)
206927  , p_source_60 => l_array_source_60(Idx)
206928  , p_source_61 => l_array_source_61(Idx)
206929  , p_source_65 => l_array_source_65(Idx)
206930  , p_source_66 => l_array_source_66(Idx)
206931  , p_source_67 => l_array_source_67(Idx)
206932  , p_source_68 => l_array_source_68(Idx)
206933  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206934  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
206935  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
206936  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206937  , p_source_72 => l_array_source_72(Idx)
206938  , p_source_73 => l_array_source_73(Idx)
206939  , p_source_74 => l_array_source_74(Idx)
206940  , p_source_75 => l_array_source_75(Idx)
206941  , p_source_76 => l_array_source_76(Idx)
206942  , p_source_77 => l_array_source_77(Idx)
206943  , p_source_78 => l_array_source_78(Idx)
206944  , p_source_79 => l_array_source_79(Idx)
206945  , p_source_80 => l_array_source_80(Idx)
206946  , p_source_81 => l_array_source_81(Idx)
206947  , p_source_82 => l_array_source_82(Idx)
206948  , p_source_83 => l_array_source_83(Idx)
206949  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
206950  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
206951  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
206952  );
206953 If(l_balance_type_code = 'A') THEN
206954   l_actual_gain_loss_ref := l_gain_or_loss_ref;
206955 END IF;
206956 
206957 --
206958 
206959 
206960 --
206961 AcctLineType_208 (
206962  p_application_id  => p_application_id
206963  ,p_event_id     => l_event_id
206964  ,p_calculate_acctd_flag => l_calculate_acctd_flag
206965  ,p_calculate_g_l_flag => l_calculate_g_l_flag
206966  ,p_actual_flag => l_actual_flag
206967  ,p_balance_type_code => l_balance_type_code
206968  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
206969  
206970  , p_source_21 => l_array_source_21(Idx)
206971  , p_source_21_meaning => l_array_source_21_meaning(Idx)
206972  , p_source_41 => l_array_source_41(Idx)
206973  , p_source_43 => l_array_source_43(Idx)
206974  , p_source_45 => l_array_source_45(Idx)
206975  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
206976  , p_source_52 => l_array_source_52(Idx)
206977  , p_source_53 => l_array_source_53(Idx)
206978  , p_source_54 => l_array_source_54(Idx)
206979  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
206980  , p_source_56 => l_array_source_56(Idx)
206981  , p_source_57 => l_array_source_57(Idx)
206982  , p_source_58 => l_array_source_58(Idx)
206983  , p_source_59 => l_array_source_59(Idx)
206984  , p_source_60 => l_array_source_60(Idx)
206985  , p_source_65 => l_array_source_65(Idx)
206986  , p_source_66 => l_array_source_66(Idx)
206987  , p_source_67 => l_array_source_67(Idx)
206988  , p_source_68 => l_array_source_68(Idx)
206989  , p_source_68_meaning => l_array_source_68_meaning(Idx)
206990  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
206991  , p_source_72 => l_array_source_72(Idx)
206992  , p_source_73 => l_array_source_73(Idx)
206993  , p_source_74 => l_array_source_74(Idx)
206994  , p_source_75 => l_array_source_75(Idx)
206995  , p_source_76 => l_array_source_76(Idx)
206996  , p_source_77 => l_array_source_77(Idx)
206997  , p_source_78 => l_array_source_78(Idx)
206998  , p_source_79 => l_array_source_79(Idx)
206999  , p_source_80 => l_array_source_80(Idx)
207000  , p_source_81 => l_array_source_81(Idx)
207001  , p_source_82 => l_array_source_82(Idx)
207002  , p_source_83 => l_array_source_83(Idx)
207003  , p_source_84 => l_array_source_84(Idx)
207004  , p_source_84_meaning => l_array_source_84_meaning(Idx)
207005  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
207006  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
207007  , p_source_87 => l_array_source_87(Idx)
207008  , p_source_87_meaning => l_array_source_87_meaning(Idx)
207009  , p_source_135 => l_array_source_135(Idx)
207010  , p_source_135_meaning => l_array_source_135_meaning(Idx)
207011  , p_source_143 => l_array_source_143(Idx)
207012  , p_source_144 => l_array_source_144(Idx)
207013  );
207014 If(l_balance_type_code = 'A') THEN
207015   l_actual_gain_loss_ref := l_gain_or_loss_ref;
207016 END IF;
207017 
207021 --
207018 --
207019 
207020 
207022 AcctLineType_209 (
207023  p_application_id  => p_application_id
207024  ,p_event_id     => l_event_id
207025  ,p_calculate_acctd_flag => l_calculate_acctd_flag
207026  ,p_calculate_g_l_flag => l_calculate_g_l_flag
207027  ,p_actual_flag => l_actual_flag
207028  ,p_balance_type_code => l_balance_type_code
207029  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
207030  
207031  , p_source_1 => l_array_source_1(Idx)
207032  , p_source_9 => l_array_source_9(Idx)
207033  , p_source_18 => l_array_source_18(Idx)
207034  , p_source_21 => l_array_source_21(Idx)
207035  , p_source_21_meaning => l_array_source_21_meaning(Idx)
207036  , p_source_41 => l_array_source_41(Idx)
207037  , p_source_43 => l_array_source_43(Idx)
207038  , p_source_45 => l_array_source_45(Idx)
207039  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
207040  , p_source_52 => l_array_source_52(Idx)
207041  , p_source_53 => l_array_source_53(Idx)
207042  , p_source_54 => l_array_source_54(Idx)
207043  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
207044  , p_source_56 => l_array_source_56(Idx)
207045  , p_source_57 => l_array_source_57(Idx)
207046  , p_source_58 => l_array_source_58(Idx)
207047  , p_source_59 => l_array_source_59(Idx)
207048  , p_source_60 => l_array_source_60(Idx)
207049  , p_source_61 => l_array_source_61(Idx)
207050  , p_source_65 => l_array_source_65(Idx)
207051  , p_source_66 => l_array_source_66(Idx)
207052  , p_source_67 => l_array_source_67(Idx)
207053  , p_source_68 => l_array_source_68(Idx)
207054  , p_source_68_meaning => l_array_source_68_meaning(Idx)
207055  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
207056  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
207057  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
207058  , p_source_72 => l_array_source_72(Idx)
207059  , p_source_73 => l_array_source_73(Idx)
207060  , p_source_74 => l_array_source_74(Idx)
207061  , p_source_75 => l_array_source_75(Idx)
207062  , p_source_76 => l_array_source_76(Idx)
207063  , p_source_77 => l_array_source_77(Idx)
207064  , p_source_78 => l_array_source_78(Idx)
207065  , p_source_79 => l_array_source_79(Idx)
207066  , p_source_80 => l_array_source_80(Idx)
207067  , p_source_81 => l_array_source_81(Idx)
207068  , p_source_82 => l_array_source_82(Idx)
207069  , p_source_83 => l_array_source_83(Idx)
207070  , p_source_84 => l_array_source_84(Idx)
207071  , p_source_84_meaning => l_array_source_84_meaning(Idx)
207072  , p_source_135 => l_array_source_135(Idx)
207073  , p_source_135_meaning => l_array_source_135_meaning(Idx)
207074  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
207075  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
207076  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
207077  );
207078 If(l_balance_type_code = 'A') THEN
207079   l_actual_gain_loss_ref := l_gain_or_loss_ref;
207080 END IF;
207081 
207082 --
207083 
207084 
207085 --
207086 AcctLineType_210 (
207087  p_application_id  => p_application_id
207088  ,p_event_id     => l_event_id
207089  ,p_calculate_acctd_flag => l_calculate_acctd_flag
207090  ,p_calculate_g_l_flag => l_calculate_g_l_flag
207091  ,p_actual_flag => l_actual_flag
207092  ,p_balance_type_code => l_balance_type_code
207093  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
207094  
207095  , p_source_1 => l_array_source_1(Idx)
207096  , p_source_9 => l_array_source_9(Idx)
207097  , p_source_18 => l_array_source_18(Idx)
207098  , p_source_21 => l_array_source_21(Idx)
207099  , p_source_21_meaning => l_array_source_21_meaning(Idx)
207100  , p_source_41 => l_array_source_41(Idx)
207101  , p_source_43 => l_array_source_43(Idx)
207102  , p_source_45 => l_array_source_45(Idx)
207103  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
207104  , p_source_52 => l_array_source_52(Idx)
207105  , p_source_53 => l_array_source_53(Idx)
207106  , p_source_54 => l_array_source_54(Idx)
207107  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
207108  , p_source_56 => l_array_source_56(Idx)
207109  , p_source_57 => l_array_source_57(Idx)
207110  , p_source_58 => l_array_source_58(Idx)
207111  , p_source_59 => l_array_source_59(Idx)
207112  , p_source_60 => l_array_source_60(Idx)
207113  , p_source_61 => l_array_source_61(Idx)
207114  , p_source_62 => l_array_source_62(Idx)
207115  , p_source_63 => l_array_source_63(Idx)
207116  , p_source_64 => l_array_source_64(Idx)
207117  , p_source_65 => l_array_source_65(Idx)
207118  , p_source_66 => l_array_source_66(Idx)
207119  , p_source_67 => l_array_source_67(Idx)
207120  , p_source_68 => l_array_source_68(Idx)
207121  , p_source_68_meaning => l_array_source_68_meaning(Idx)
207122  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
207123  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
207124  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
207125  , p_source_72 => l_array_source_72(Idx)
207126  , p_source_73 => l_array_source_73(Idx)
207127  , p_source_74 => l_array_source_74(Idx)
207128  , p_source_75 => l_array_source_75(Idx)
207129  , p_source_76 => l_array_source_76(Idx)
207130  , p_source_77 => l_array_source_77(Idx)
207131  , p_source_78 => l_array_source_78(Idx)
207132  , p_source_79 => l_array_source_79(Idx)
207133  , p_source_80 => l_array_source_80(Idx)
207134  , p_source_81 => l_array_source_81(Idx)
207135  , p_source_82 => l_array_source_82(Idx)
207136  , p_source_83 => l_array_source_83(Idx)
207137  , p_source_84 => l_array_source_84(Idx)
207138  , p_source_84_meaning => l_array_source_84_meaning(Idx)
207142 If(l_balance_type_code = 'A') THEN
207139  , p_source_135 => l_array_source_135(Idx)
207140  , p_source_135_meaning => l_array_source_135_meaning(Idx)
207141  );
207143   l_actual_gain_loss_ref := l_gain_or_loss_ref;
207144 END IF;
207145 
207146 --
207147 
207148 
207149 --
207150 AcctLineType_213 (
207151  p_application_id  => p_application_id
207152  ,p_event_id     => l_event_id
207153  ,p_calculate_acctd_flag => l_calculate_acctd_flag
207154  ,p_calculate_g_l_flag => l_calculate_g_l_flag
207155  ,p_actual_flag => l_actual_flag
207156  ,p_balance_type_code => l_balance_type_code
207157  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
207158  
207159  , p_source_1 => l_array_source_1(Idx)
207160  , p_source_9 => l_array_source_9(Idx)
207161  , p_source_18 => l_array_source_18(Idx)
207162  , p_source_19 => g_array_event(l_event_id).array_value_char('source_19')
207163  , p_source_19_meaning => g_array_event(l_event_id).array_value_char('source_19_meaning')
207164  , p_source_20 => l_array_source_20(Idx)
207165  , p_source_21 => l_array_source_21(Idx)
207166  , p_source_21_meaning => l_array_source_21_meaning(Idx)
207167  , p_source_33 => l_array_source_33(Idx)
207168  , p_source_41 => l_array_source_41(Idx)
207169  , p_source_43 => l_array_source_43(Idx)
207170  , p_source_45 => l_array_source_45(Idx)
207171  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
207172  , p_source_52 => l_array_source_52(Idx)
207173  , p_source_53 => l_array_source_53(Idx)
207174  , p_source_54 => l_array_source_54(Idx)
207175  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
207176  , p_source_56 => l_array_source_56(Idx)
207177  , p_source_57 => l_array_source_57(Idx)
207178  , p_source_58 => l_array_source_58(Idx)
207179  , p_source_59 => l_array_source_59(Idx)
207180  , p_source_60 => l_array_source_60(Idx)
207181  , p_source_61 => l_array_source_61(Idx)
207182  , p_source_65 => l_array_source_65(Idx)
207183  , p_source_66 => l_array_source_66(Idx)
207184  , p_source_67 => l_array_source_67(Idx)
207185  , p_source_68 => l_array_source_68(Idx)
207186  , p_source_68_meaning => l_array_source_68_meaning(Idx)
207187  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
207188  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
207189  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
207190  , p_source_72 => l_array_source_72(Idx)
207191  , p_source_73 => l_array_source_73(Idx)
207192  , p_source_74 => l_array_source_74(Idx)
207193  , p_source_75 => l_array_source_75(Idx)
207194  , p_source_76 => l_array_source_76(Idx)
207195  , p_source_77 => l_array_source_77(Idx)
207196  , p_source_78 => l_array_source_78(Idx)
207197  , p_source_79 => l_array_source_79(Idx)
207198  , p_source_80 => l_array_source_80(Idx)
207199  , p_source_81 => l_array_source_81(Idx)
207200  , p_source_82 => l_array_source_82(Idx)
207201  , p_source_83 => l_array_source_83(Idx)
207202  , p_source_84 => l_array_source_84(Idx)
207203  , p_source_84_meaning => l_array_source_84_meaning(Idx)
207204  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
207205  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
207206  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
207207  );
207208 If(l_balance_type_code = 'A') THEN
207209   l_actual_gain_loss_ref := l_gain_or_loss_ref;
207210 END IF;
207211 
207212 --
207213 
207214 
207215 --
207216 AcctLineType_219 (
207217  p_application_id  => p_application_id
207218  ,p_event_id     => l_event_id
207219  ,p_calculate_acctd_flag => l_calculate_acctd_flag
207220  ,p_calculate_g_l_flag => l_calculate_g_l_flag
207221  ,p_actual_flag => l_actual_flag
207222  ,p_balance_type_code => l_balance_type_code
207223  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
207224  
207225  , p_source_21 => l_array_source_21(Idx)
207226  , p_source_21_meaning => l_array_source_21_meaning(Idx)
207227  , p_source_41 => l_array_source_41(Idx)
207228  , p_source_43 => l_array_source_43(Idx)
207229  , p_source_45 => l_array_source_45(Idx)
207230  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
207231  , p_source_52 => l_array_source_52(Idx)
207232  , p_source_53 => l_array_source_53(Idx)
207233  , p_source_54 => l_array_source_54(Idx)
207234  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
207235  , p_source_56 => l_array_source_56(Idx)
207236  , p_source_57 => l_array_source_57(Idx)
207237  , p_source_58 => l_array_source_58(Idx)
207238  , p_source_59 => l_array_source_59(Idx)
207239  , p_source_60 => l_array_source_60(Idx)
207240  , p_source_65 => l_array_source_65(Idx)
207241  , p_source_66 => l_array_source_66(Idx)
207242  , p_source_67 => l_array_source_67(Idx)
207243  , p_source_68 => l_array_source_68(Idx)
207244  , p_source_68_meaning => l_array_source_68_meaning(Idx)
207245  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
207246  , p_source_72 => l_array_source_72(Idx)
207247  , p_source_73 => l_array_source_73(Idx)
207248  , p_source_74 => l_array_source_74(Idx)
207249  , p_source_75 => l_array_source_75(Idx)
207250  , p_source_76 => l_array_source_76(Idx)
207251  , p_source_77 => l_array_source_77(Idx)
207252  , p_source_78 => l_array_source_78(Idx)
207253  , p_source_79 => l_array_source_79(Idx)
207254  , p_source_80 => l_array_source_80(Idx)
207255  , p_source_81 => l_array_source_81(Idx)
207256  , p_source_82 => l_array_source_82(Idx)
207257  , p_source_83 => l_array_source_83(Idx)
207258  , p_source_84 => l_array_source_84(Idx)
207259  , p_source_84_meaning => l_array_source_84_meaning(Idx)
207260  , p_source_85 => l_array_source_85(Idx)
207261  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
207265  , p_source_161 => l_array_source_161(Idx)
207262  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
207263  , p_source_87 => l_array_source_87(Idx)
207264  , p_source_87_meaning => l_array_source_87_meaning(Idx)
207266  , p_source_162 => l_array_source_162(Idx)
207267  );
207268 If(l_balance_type_code = 'A') THEN
207269   l_actual_gain_loss_ref := l_gain_or_loss_ref;
207270 END IF;
207271 
207272 --
207273 
207274 
207275 --
207276 AcctLineType_226 (
207277  p_application_id  => p_application_id
207278  ,p_event_id     => l_event_id
207279  ,p_calculate_acctd_flag => l_calculate_acctd_flag
207280  ,p_calculate_g_l_flag => l_calculate_g_l_flag
207281  ,p_actual_flag => l_actual_flag
207282  ,p_balance_type_code => l_balance_type_code
207283  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
207284  
207285  , p_source_21 => l_array_source_21(Idx)
207286  , p_source_21_meaning => l_array_source_21_meaning(Idx)
207287  , p_source_41 => l_array_source_41(Idx)
207288  , p_source_43 => l_array_source_43(Idx)
207289  , p_source_45 => l_array_source_45(Idx)
207290  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
207291  , p_source_52 => l_array_source_52(Idx)
207292  , p_source_53 => l_array_source_53(Idx)
207293  , p_source_54 => l_array_source_54(Idx)
207294  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
207295  , p_source_56 => l_array_source_56(Idx)
207296  , p_source_57 => l_array_source_57(Idx)
207297  , p_source_58 => l_array_source_58(Idx)
207298  , p_source_59 => l_array_source_59(Idx)
207299  , p_source_60 => l_array_source_60(Idx)
207300  , p_source_65 => l_array_source_65(Idx)
207301  , p_source_66 => l_array_source_66(Idx)
207302  , p_source_67 => l_array_source_67(Idx)
207303  , p_source_68 => l_array_source_68(Idx)
207304  , p_source_68_meaning => l_array_source_68_meaning(Idx)
207305  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
207306  , p_source_72 => l_array_source_72(Idx)
207307  , p_source_73 => l_array_source_73(Idx)
207308  , p_source_74 => l_array_source_74(Idx)
207309  , p_source_75 => l_array_source_75(Idx)
207310  , p_source_76 => l_array_source_76(Idx)
207311  , p_source_77 => l_array_source_77(Idx)
207312  , p_source_78 => l_array_source_78(Idx)
207313  , p_source_79 => l_array_source_79(Idx)
207314  , p_source_80 => l_array_source_80(Idx)
207315  , p_source_81 => l_array_source_81(Idx)
207316  , p_source_82 => l_array_source_82(Idx)
207317  , p_source_83 => l_array_source_83(Idx)
207318  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
207319  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
207320  , p_source_87 => l_array_source_87(Idx)
207321  , p_source_87_meaning => l_array_source_87_meaning(Idx)
207322  , p_source_135 => l_array_source_135(Idx)
207323  , p_source_135_meaning => l_array_source_135_meaning(Idx)
207324  , p_source_143 => l_array_source_143(Idx)
207325  , p_source_144 => l_array_source_144(Idx)
207326  );
207327 If(l_balance_type_code = 'A') THEN
207328   l_actual_gain_loss_ref := l_gain_or_loss_ref;
207329 END IF;
207330 
207331 --
207332 
207333 
207334 --
207335 AcctLineType_227 (
207336  p_application_id  => p_application_id
207337  ,p_event_id     => l_event_id
207338  ,p_calculate_acctd_flag => l_calculate_acctd_flag
207339  ,p_calculate_g_l_flag => l_calculate_g_l_flag
207340  ,p_actual_flag => l_actual_flag
207341  ,p_balance_type_code => l_balance_type_code
207342  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
207343  
207344  , p_source_1 => l_array_source_1(Idx)
207345  , p_source_9 => l_array_source_9(Idx)
207346  , p_source_18 => l_array_source_18(Idx)
207347  , p_source_21 => l_array_source_21(Idx)
207348  , p_source_21_meaning => l_array_source_21_meaning(Idx)
207349  , p_source_41 => l_array_source_41(Idx)
207350  , p_source_43 => l_array_source_43(Idx)
207351  , p_source_45 => l_array_source_45(Idx)
207352  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
207353  , p_source_52 => l_array_source_52(Idx)
207354  , p_source_53 => l_array_source_53(Idx)
207355  , p_source_54 => l_array_source_54(Idx)
207356  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
207357  , p_source_56 => l_array_source_56(Idx)
207358  , p_source_57 => l_array_source_57(Idx)
207359  , p_source_58 => l_array_source_58(Idx)
207360  , p_source_59 => l_array_source_59(Idx)
207361  , p_source_60 => l_array_source_60(Idx)
207362  , p_source_61 => l_array_source_61(Idx)
207363  , p_source_65 => l_array_source_65(Idx)
207364  , p_source_66 => l_array_source_66(Idx)
207365  , p_source_67 => l_array_source_67(Idx)
207366  , p_source_68 => l_array_source_68(Idx)
207367  , p_source_68_meaning => l_array_source_68_meaning(Idx)
207368  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
207369  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
207370  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
207371  , p_source_72 => l_array_source_72(Idx)
207372  , p_source_73 => l_array_source_73(Idx)
207373  , p_source_74 => l_array_source_74(Idx)
207374  , p_source_75 => l_array_source_75(Idx)
207375  , p_source_76 => l_array_source_76(Idx)
207376  , p_source_77 => l_array_source_77(Idx)
207377  , p_source_78 => l_array_source_78(Idx)
207378  , p_source_79 => l_array_source_79(Idx)
207379  , p_source_80 => l_array_source_80(Idx)
207380  , p_source_81 => l_array_source_81(Idx)
207381  , p_source_82 => l_array_source_82(Idx)
207382  , p_source_83 => l_array_source_83(Idx)
207383  , p_source_130 => l_array_source_130(Idx)
207384  , p_source_130_meaning => l_array_source_130_meaning(Idx)
207385  , p_source_135 => l_array_source_135(Idx)
207386  , p_source_135_meaning => l_array_source_135_meaning(Idx)
207387  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
207391 If(l_balance_type_code = 'A') THEN
207388  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
207389  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
207390  );
207392   l_actual_gain_loss_ref := l_gain_or_loss_ref;
207393 END IF;
207394 
207395 --
207396 
207397 
207398 --
207399 AcctLineType_235 (
207400  p_application_id  => p_application_id
207401  ,p_event_id     => l_event_id
207402  ,p_calculate_acctd_flag => l_calculate_acctd_flag
207403  ,p_calculate_g_l_flag => l_calculate_g_l_flag
207404  ,p_actual_flag => l_actual_flag
207405  ,p_balance_type_code => l_balance_type_code
207406  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
207407  
207408  , p_source_21 => l_array_source_21(Idx)
207409  , p_source_21_meaning => l_array_source_21_meaning(Idx)
207410  , p_source_41 => l_array_source_41(Idx)
207411  , p_source_43 => l_array_source_43(Idx)
207412  , p_source_45 => l_array_source_45(Idx)
207413  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
207414  , p_source_52 => l_array_source_52(Idx)
207415  , p_source_53 => l_array_source_53(Idx)
207416  , p_source_54 => l_array_source_54(Idx)
207417  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
207418  , p_source_56 => l_array_source_56(Idx)
207419  , p_source_57 => l_array_source_57(Idx)
207420  , p_source_58 => l_array_source_58(Idx)
207421  , p_source_59 => l_array_source_59(Idx)
207422  , p_source_60 => l_array_source_60(Idx)
207423  , p_source_65 => l_array_source_65(Idx)
207424  , p_source_66 => l_array_source_66(Idx)
207425  , p_source_67 => l_array_source_67(Idx)
207426  , p_source_68 => l_array_source_68(Idx)
207427  , p_source_68_meaning => l_array_source_68_meaning(Idx)
207428  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
207429  , p_source_72 => l_array_source_72(Idx)
207430  , p_source_73 => l_array_source_73(Idx)
207431  , p_source_74 => l_array_source_74(Idx)
207432  , p_source_75 => l_array_source_75(Idx)
207433  , p_source_76 => l_array_source_76(Idx)
207434  , p_source_77 => l_array_source_77(Idx)
207435  , p_source_78 => l_array_source_78(Idx)
207436  , p_source_79 => l_array_source_79(Idx)
207437  , p_source_80 => l_array_source_80(Idx)
207438  , p_source_81 => l_array_source_81(Idx)
207439  , p_source_82 => l_array_source_82(Idx)
207440  , p_source_83 => l_array_source_83(Idx)
207441  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
207442  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
207443  , p_source_87 => l_array_source_87(Idx)
207444  , p_source_87_meaning => l_array_source_87_meaning(Idx)
207445  , p_source_135 => l_array_source_135(Idx)
207446  , p_source_135_meaning => l_array_source_135_meaning(Idx)
207447  , p_source_143 => l_array_source_143(Idx)
207448  , p_source_144 => l_array_source_144(Idx)
207449  );
207450 If(l_balance_type_code = 'A') THEN
207451   l_actual_gain_loss_ref := l_gain_or_loss_ref;
207452 END IF;
207453 
207454 --
207455 
207456 
207457 --
207458 AcctLineType_236 (
207459  p_application_id  => p_application_id
207460  ,p_event_id     => l_event_id
207461  ,p_calculate_acctd_flag => l_calculate_acctd_flag
207462  ,p_calculate_g_l_flag => l_calculate_g_l_flag
207463  ,p_actual_flag => l_actual_flag
207464  ,p_balance_type_code => l_balance_type_code
207465  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
207466  
207467  , p_source_1 => l_array_source_1(Idx)
207468  , p_source_9 => l_array_source_9(Idx)
207469  , p_source_21 => l_array_source_21(Idx)
207470  , p_source_21_meaning => l_array_source_21_meaning(Idx)
207471  , p_source_38 => l_array_source_38(Idx)
207472  , p_source_41 => l_array_source_41(Idx)
207473  , p_source_43 => l_array_source_43(Idx)
207474  , p_source_45 => l_array_source_45(Idx)
207475  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
207476  , p_source_52 => l_array_source_52(Idx)
207477  , p_source_53 => l_array_source_53(Idx)
207478  , p_source_54 => l_array_source_54(Idx)
207479  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
207480  , p_source_56 => l_array_source_56(Idx)
207481  , p_source_57 => l_array_source_57(Idx)
207482  , p_source_58 => l_array_source_58(Idx)
207483  , p_source_59 => l_array_source_59(Idx)
207484  , p_source_60 => l_array_source_60(Idx)
207485  , p_source_61 => l_array_source_61(Idx)
207486  , p_source_65 => l_array_source_65(Idx)
207487  , p_source_66 => l_array_source_66(Idx)
207488  , p_source_67 => l_array_source_67(Idx)
207489  , p_source_68 => l_array_source_68(Idx)
207490  , p_source_68_meaning => l_array_source_68_meaning(Idx)
207491  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
207492  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
207493  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
207494  , p_source_72 => l_array_source_72(Idx)
207495  , p_source_73 => l_array_source_73(Idx)
207496  , p_source_74 => l_array_source_74(Idx)
207497  , p_source_75 => l_array_source_75(Idx)
207498  , p_source_76 => l_array_source_76(Idx)
207499  , p_source_77 => l_array_source_77(Idx)
207500  , p_source_78 => l_array_source_78(Idx)
207501  , p_source_79 => l_array_source_79(Idx)
207502  , p_source_80 => l_array_source_80(Idx)
207503  , p_source_81 => l_array_source_81(Idx)
207504  , p_source_82 => l_array_source_82(Idx)
207505  , p_source_83 => l_array_source_83(Idx)
207506  , p_source_84 => l_array_source_84(Idx)
207507  , p_source_84_meaning => l_array_source_84_meaning(Idx)
207508  , p_source_135 => l_array_source_135(Idx)
207509  , p_source_135_meaning => l_array_source_135_meaning(Idx)
207510  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
207511  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
207512  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
207513  );
207517 
207514 If(l_balance_type_code = 'A') THEN
207515   l_actual_gain_loss_ref := l_gain_or_loss_ref;
207516 END IF;
207518 --
207519 
207520 
207521 --
207522 AcctLineType_240 (
207523  p_application_id  => p_application_id
207524  ,p_event_id     => l_event_id
207525  ,p_calculate_acctd_flag => l_calculate_acctd_flag
207526  ,p_calculate_g_l_flag => l_calculate_g_l_flag
207527  ,p_actual_flag => l_actual_flag
207528  ,p_balance_type_code => l_balance_type_code
207529  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
207530  
207531  , p_source_1 => l_array_source_1(Idx)
207532  , p_source_9 => l_array_source_9(Idx)
207533  , p_source_21 => l_array_source_21(Idx)
207534  , p_source_21_meaning => l_array_source_21_meaning(Idx)
207535  , p_source_38 => l_array_source_38(Idx)
207536  , p_source_41 => l_array_source_41(Idx)
207537  , p_source_43 => l_array_source_43(Idx)
207538  , p_source_45 => l_array_source_45(Idx)
207539  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
207540  , p_source_52 => l_array_source_52(Idx)
207541  , p_source_53 => l_array_source_53(Idx)
207542  , p_source_54 => l_array_source_54(Idx)
207543  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
207544  , p_source_56 => l_array_source_56(Idx)
207545  , p_source_57 => l_array_source_57(Idx)
207546  , p_source_58 => l_array_source_58(Idx)
207547  , p_source_59 => l_array_source_59(Idx)
207548  , p_source_60 => l_array_source_60(Idx)
207549  , p_source_61 => l_array_source_61(Idx)
207550  , p_source_65 => l_array_source_65(Idx)
207551  , p_source_66 => l_array_source_66(Idx)
207552  , p_source_67 => l_array_source_67(Idx)
207553  , p_source_68 => l_array_source_68(Idx)
207554  , p_source_68_meaning => l_array_source_68_meaning(Idx)
207555  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
207556  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
207557  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
207558  , p_source_72 => l_array_source_72(Idx)
207559  , p_source_73 => l_array_source_73(Idx)
207560  , p_source_74 => l_array_source_74(Idx)
207561  , p_source_75 => l_array_source_75(Idx)
207562  , p_source_76 => l_array_source_76(Idx)
207563  , p_source_77 => l_array_source_77(Idx)
207564  , p_source_78 => l_array_source_78(Idx)
207565  , p_source_79 => l_array_source_79(Idx)
207566  , p_source_80 => l_array_source_80(Idx)
207567  , p_source_81 => l_array_source_81(Idx)
207568  , p_source_82 => l_array_source_82(Idx)
207569  , p_source_83 => l_array_source_83(Idx)
207570  , p_source_135 => l_array_source_135(Idx)
207571  , p_source_135_meaning => l_array_source_135_meaning(Idx)
207572  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
207573  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
207574  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
207575  );
207576 If(l_balance_type_code = 'A') THEN
207577   l_actual_gain_loss_ref := l_gain_or_loss_ref;
207578 END IF;
207579 
207580 --
207581 
207582 
207583 --
207584 AcctLineType_247 (
207585  p_application_id  => p_application_id
207586  ,p_event_id     => l_event_id
207587  ,p_calculate_acctd_flag => l_calculate_acctd_flag
207588  ,p_calculate_g_l_flag => l_calculate_g_l_flag
207589  ,p_actual_flag => l_actual_flag
207590  ,p_balance_type_code => l_balance_type_code
207591  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
207592  
207593  , p_source_1 => l_array_source_1(Idx)
207594  , p_source_9 => l_array_source_9(Idx)
207595  , p_source_21 => l_array_source_21(Idx)
207596  , p_source_21_meaning => l_array_source_21_meaning(Idx)
207597  , p_source_39 => l_array_source_39(Idx)
207598  , p_source_41 => l_array_source_41(Idx)
207599  , p_source_43 => l_array_source_43(Idx)
207600  , p_source_45 => l_array_source_45(Idx)
207601  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
207602  , p_source_52 => l_array_source_52(Idx)
207603  , p_source_53 => l_array_source_53(Idx)
207604  , p_source_54 => l_array_source_54(Idx)
207605  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
207606  , p_source_56 => l_array_source_56(Idx)
207607  , p_source_57 => l_array_source_57(Idx)
207608  , p_source_58 => l_array_source_58(Idx)
207609  , p_source_59 => l_array_source_59(Idx)
207610  , p_source_60 => l_array_source_60(Idx)
207611  , p_source_61 => l_array_source_61(Idx)
207612  , p_source_65 => l_array_source_65(Idx)
207613  , p_source_66 => l_array_source_66(Idx)
207614  , p_source_67 => l_array_source_67(Idx)
207615  , p_source_68 => l_array_source_68(Idx)
207616  , p_source_68_meaning => l_array_source_68_meaning(Idx)
207617  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
207618  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
207619  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
207620  , p_source_72 => l_array_source_72(Idx)
207621  , p_source_73 => l_array_source_73(Idx)
207622  , p_source_74 => l_array_source_74(Idx)
207623  , p_source_75 => l_array_source_75(Idx)
207624  , p_source_76 => l_array_source_76(Idx)
207625  , p_source_77 => l_array_source_77(Idx)
207626  , p_source_78 => l_array_source_78(Idx)
207627  , p_source_79 => l_array_source_79(Idx)
207628  , p_source_80 => l_array_source_80(Idx)
207629  , p_source_81 => l_array_source_81(Idx)
207630  , p_source_82 => l_array_source_82(Idx)
207631  , p_source_83 => l_array_source_83(Idx)
207632  , p_source_135 => l_array_source_135(Idx)
207633  , p_source_135_meaning => l_array_source_135_meaning(Idx)
207634  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
207635  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
207636  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
207637  );
207641 
207638 If(l_balance_type_code = 'A') THEN
207639   l_actual_gain_loss_ref := l_gain_or_loss_ref;
207640 END IF;
207642 --
207643 
207644 
207645 --
207646 AcctLineType_248 (
207647  p_application_id  => p_application_id
207648  ,p_event_id     => l_event_id
207649  ,p_calculate_acctd_flag => l_calculate_acctd_flag
207650  ,p_calculate_g_l_flag => l_calculate_g_l_flag
207651  ,p_actual_flag => l_actual_flag
207652  ,p_balance_type_code => l_balance_type_code
207653  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
207654  
207655  , p_source_1 => l_array_source_1(Idx)
207656  , p_source_9 => l_array_source_9(Idx)
207657  , p_source_21 => l_array_source_21(Idx)
207658  , p_source_21_meaning => l_array_source_21_meaning(Idx)
207659  , p_source_38 => l_array_source_38(Idx)
207660  , p_source_41 => l_array_source_41(Idx)
207661  , p_source_43 => l_array_source_43(Idx)
207662  , p_source_45 => l_array_source_45(Idx)
207663  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
207664  , p_source_52 => l_array_source_52(Idx)
207665  , p_source_53 => l_array_source_53(Idx)
207666  , p_source_54 => l_array_source_54(Idx)
207667  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
207668  , p_source_56 => l_array_source_56(Idx)
207669  , p_source_57 => l_array_source_57(Idx)
207670  , p_source_58 => l_array_source_58(Idx)
207671  , p_source_59 => l_array_source_59(Idx)
207672  , p_source_60 => l_array_source_60(Idx)
207673  , p_source_61 => l_array_source_61(Idx)
207674  , p_source_62 => l_array_source_62(Idx)
207675  , p_source_63 => l_array_source_63(Idx)
207676  , p_source_64 => l_array_source_64(Idx)
207677  , p_source_65 => l_array_source_65(Idx)
207678  , p_source_66 => l_array_source_66(Idx)
207679  , p_source_67 => l_array_source_67(Idx)
207680  , p_source_68 => l_array_source_68(Idx)
207681  , p_source_68_meaning => l_array_source_68_meaning(Idx)
207682  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
207683  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
207684  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
207685  , p_source_72 => l_array_source_72(Idx)
207686  , p_source_73 => l_array_source_73(Idx)
207687  , p_source_74 => l_array_source_74(Idx)
207688  , p_source_75 => l_array_source_75(Idx)
207689  , p_source_76 => l_array_source_76(Idx)
207690  , p_source_77 => l_array_source_77(Idx)
207691  , p_source_78 => l_array_source_78(Idx)
207692  , p_source_79 => l_array_source_79(Idx)
207693  , p_source_80 => l_array_source_80(Idx)
207694  , p_source_81 => l_array_source_81(Idx)
207695  , p_source_82 => l_array_source_82(Idx)
207696  , p_source_83 => l_array_source_83(Idx)
207697  , p_source_84 => l_array_source_84(Idx)
207698  , p_source_84_meaning => l_array_source_84_meaning(Idx)
207699  , p_source_135 => l_array_source_135(Idx)
207700  , p_source_135_meaning => l_array_source_135_meaning(Idx)
207701  );
207702 If(l_balance_type_code = 'A') THEN
207703   l_actual_gain_loss_ref := l_gain_or_loss_ref;
207704 END IF;
207705 
207706 --
207707 
207708 
207709 --
207710 AcctLineType_255 (
207711  p_application_id  => p_application_id
207712  ,p_event_id     => l_event_id
207713  ,p_calculate_acctd_flag => l_calculate_acctd_flag
207714  ,p_calculate_g_l_flag => l_calculate_g_l_flag
207715  ,p_actual_flag => l_actual_flag
207716  ,p_balance_type_code => l_balance_type_code
207717  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
207718  
207719  , p_source_21 => l_array_source_21(Idx)
207720  , p_source_21_meaning => l_array_source_21_meaning(Idx)
207721  , p_source_41 => l_array_source_41(Idx)
207722  , p_source_43 => l_array_source_43(Idx)
207723  , p_source_45 => l_array_source_45(Idx)
207724  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
207725  , p_source_52 => l_array_source_52(Idx)
207726  , p_source_53 => l_array_source_53(Idx)
207727  , p_source_54 => l_array_source_54(Idx)
207728  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
207729  , p_source_56 => l_array_source_56(Idx)
207730  , p_source_57 => l_array_source_57(Idx)
207731  , p_source_58 => l_array_source_58(Idx)
207732  , p_source_59 => l_array_source_59(Idx)
207733  , p_source_60 => l_array_source_60(Idx)
207734  , p_source_65 => l_array_source_65(Idx)
207735  , p_source_66 => l_array_source_66(Idx)
207736  , p_source_67 => l_array_source_67(Idx)
207737  , p_source_68 => l_array_source_68(Idx)
207738  , p_source_68_meaning => l_array_source_68_meaning(Idx)
207739  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
207740  , p_source_72 => l_array_source_72(Idx)
207741  , p_source_73 => l_array_source_73(Idx)
207742  , p_source_74 => l_array_source_74(Idx)
207743  , p_source_75 => l_array_source_75(Idx)
207744  , p_source_76 => l_array_source_76(Idx)
207745  , p_source_77 => l_array_source_77(Idx)
207746  , p_source_78 => l_array_source_78(Idx)
207747  , p_source_79 => l_array_source_79(Idx)
207748  , p_source_80 => l_array_source_80(Idx)
207749  , p_source_81 => l_array_source_81(Idx)
207750  , p_source_82 => l_array_source_82(Idx)
207751  , p_source_83 => l_array_source_83(Idx)
207752  , p_source_84 => l_array_source_84(Idx)
207753  , p_source_84_meaning => l_array_source_84_meaning(Idx)
207754  , p_source_85 => l_array_source_85(Idx)
207755  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
207756  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
207757  , p_source_87 => l_array_source_87(Idx)
207758  , p_source_87_meaning => l_array_source_87_meaning(Idx)
207759  , p_source_88 => l_array_source_88(Idx)
207760  );
207761 If(l_balance_type_code = 'A') THEN
207762   l_actual_gain_loss_ref := l_gain_or_loss_ref;
207763 END IF;
207764 
207765 --
207766 
207767 
207768 --
207769 AcctLineType_260 (
207770  p_application_id  => p_application_id
207774  ,p_actual_flag => l_actual_flag
207771  ,p_event_id     => l_event_id
207772  ,p_calculate_acctd_flag => l_calculate_acctd_flag
207773  ,p_calculate_g_l_flag => l_calculate_g_l_flag
207775  ,p_balance_type_code => l_balance_type_code
207776  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
207777  
207778  , p_source_21 => l_array_source_21(Idx)
207779  , p_source_21_meaning => l_array_source_21_meaning(Idx)
207780  , p_source_41 => l_array_source_41(Idx)
207781  , p_source_43 => l_array_source_43(Idx)
207782  , p_source_45 => l_array_source_45(Idx)
207783  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
207784  , p_source_52 => l_array_source_52(Idx)
207785  , p_source_53 => l_array_source_53(Idx)
207786  , p_source_54 => l_array_source_54(Idx)
207787  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
207788  , p_source_56 => l_array_source_56(Idx)
207789  , p_source_57 => l_array_source_57(Idx)
207790  , p_source_58 => l_array_source_58(Idx)
207791  , p_source_59 => l_array_source_59(Idx)
207792  , p_source_60 => l_array_source_60(Idx)
207793  , p_source_65 => l_array_source_65(Idx)
207794  , p_source_66 => l_array_source_66(Idx)
207795  , p_source_67 => l_array_source_67(Idx)
207796  , p_source_68 => l_array_source_68(Idx)
207797  , p_source_68_meaning => l_array_source_68_meaning(Idx)
207798  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
207799  , p_source_72 => l_array_source_72(Idx)
207800  , p_source_73 => l_array_source_73(Idx)
207801  , p_source_74 => l_array_source_74(Idx)
207802  , p_source_75 => l_array_source_75(Idx)
207803  , p_source_76 => l_array_source_76(Idx)
207804  , p_source_77 => l_array_source_77(Idx)
207805  , p_source_78 => l_array_source_78(Idx)
207806  , p_source_79 => l_array_source_79(Idx)
207807  , p_source_80 => l_array_source_80(Idx)
207808  , p_source_81 => l_array_source_81(Idx)
207809  , p_source_82 => l_array_source_82(Idx)
207810  , p_source_83 => l_array_source_83(Idx)
207811  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
207812  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
207813  , p_source_87 => l_array_source_87(Idx)
207814  , p_source_87_meaning => l_array_source_87_meaning(Idx)
207815  , p_source_143 => l_array_source_143(Idx)
207816  , p_source_144 => l_array_source_144(Idx)
207817  );
207818 If(l_balance_type_code = 'A') THEN
207819   l_actual_gain_loss_ref := l_gain_or_loss_ref;
207820 END IF;
207821 
207822 --
207823 
207824 
207825 --
207826 AcctLineType_264 (
207827  p_application_id  => p_application_id
207828  ,p_event_id     => l_event_id
207829  ,p_calculate_acctd_flag => l_calculate_acctd_flag
207830  ,p_calculate_g_l_flag => l_calculate_g_l_flag
207831  ,p_actual_flag => l_actual_flag
207832  ,p_balance_type_code => l_balance_type_code
207833  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
207834  
207835  , p_source_1 => l_array_source_1(Idx)
207836  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
207837  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
207838  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
207839  , p_source_9 => l_array_source_9(Idx)
207840  , p_source_10 => l_array_source_10(Idx)
207841  , p_source_10_meaning => l_array_source_10_meaning(Idx)
207842  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
207843  , p_source_18 => l_array_source_18(Idx)
207844  , p_source_21 => l_array_source_21(Idx)
207845  , p_source_21_meaning => l_array_source_21_meaning(Idx)
207846  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
207847  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
207848  , p_source_41 => l_array_source_41(Idx)
207849  , p_source_43 => l_array_source_43(Idx)
207850  , p_source_45 => l_array_source_45(Idx)
207851  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
207852  , p_source_52 => l_array_source_52(Idx)
207853  , p_source_53 => l_array_source_53(Idx)
207854  , p_source_54 => l_array_source_54(Idx)
207855  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
207856  , p_source_56 => l_array_source_56(Idx)
207857  , p_source_57 => l_array_source_57(Idx)
207858  , p_source_58 => l_array_source_58(Idx)
207859  , p_source_59 => l_array_source_59(Idx)
207860  , p_source_60 => l_array_source_60(Idx)
207861  , p_source_61 => l_array_source_61(Idx)
207862  , p_source_65 => l_array_source_65(Idx)
207863  , p_source_66 => l_array_source_66(Idx)
207864  , p_source_67 => l_array_source_67(Idx)
207865  , p_source_68 => l_array_source_68(Idx)
207866  , p_source_68_meaning => l_array_source_68_meaning(Idx)
207867  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
207868  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
207869  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
207870  , p_source_72 => l_array_source_72(Idx)
207871  , p_source_73 => l_array_source_73(Idx)
207872  , p_source_74 => l_array_source_74(Idx)
207873  , p_source_75 => l_array_source_75(Idx)
207874  , p_source_76 => l_array_source_76(Idx)
207875  , p_source_77 => l_array_source_77(Idx)
207876  , p_source_78 => l_array_source_78(Idx)
207877  , p_source_79 => l_array_source_79(Idx)
207878  , p_source_80 => l_array_source_80(Idx)
207879  , p_source_81 => l_array_source_81(Idx)
207880  , p_source_82 => l_array_source_82(Idx)
207881  , p_source_83 => l_array_source_83(Idx)
207882  , p_source_84 => l_array_source_84(Idx)
207883  , p_source_84_meaning => l_array_source_84_meaning(Idx)
207884  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
207885  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
207886  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
207887  );
207888 If(l_balance_type_code = 'A') THEN
207889   l_actual_gain_loss_ref := l_gain_or_loss_ref;
207893 
207890 END IF;
207891 
207892 --
207894 
207895 --
207896 AcctLineType_271 (
207897  p_application_id  => p_application_id
207898  ,p_event_id     => l_event_id
207899  ,p_calculate_acctd_flag => l_calculate_acctd_flag
207900  ,p_calculate_g_l_flag => l_calculate_g_l_flag
207901  ,p_actual_flag => l_actual_flag
207902  ,p_balance_type_code => l_balance_type_code
207903  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
207904  
207905  , p_source_21 => l_array_source_21(Idx)
207906  , p_source_21_meaning => l_array_source_21_meaning(Idx)
207907  , p_source_41 => l_array_source_41(Idx)
207908  , p_source_43 => l_array_source_43(Idx)
207909  , p_source_45 => l_array_source_45(Idx)
207910  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
207911  , p_source_52 => l_array_source_52(Idx)
207912  , p_source_53 => l_array_source_53(Idx)
207913  , p_source_54 => l_array_source_54(Idx)
207914  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
207915  , p_source_56 => l_array_source_56(Idx)
207916  , p_source_57 => l_array_source_57(Idx)
207917  , p_source_58 => l_array_source_58(Idx)
207918  , p_source_59 => l_array_source_59(Idx)
207919  , p_source_60 => l_array_source_60(Idx)
207920  , p_source_65 => l_array_source_65(Idx)
207921  , p_source_66 => l_array_source_66(Idx)
207922  , p_source_67 => l_array_source_67(Idx)
207923  , p_source_68 => l_array_source_68(Idx)
207924  , p_source_68_meaning => l_array_source_68_meaning(Idx)
207925  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
207926  , p_source_72 => l_array_source_72(Idx)
207927  , p_source_73 => l_array_source_73(Idx)
207928  , p_source_74 => l_array_source_74(Idx)
207929  , p_source_75 => l_array_source_75(Idx)
207930  , p_source_76 => l_array_source_76(Idx)
207931  , p_source_77 => l_array_source_77(Idx)
207932  , p_source_78 => l_array_source_78(Idx)
207933  , p_source_79 => l_array_source_79(Idx)
207934  , p_source_80 => l_array_source_80(Idx)
207935  , p_source_81 => l_array_source_81(Idx)
207936  , p_source_82 => l_array_source_82(Idx)
207937  , p_source_83 => l_array_source_83(Idx)
207938  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
207939  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
207940  , p_source_87 => l_array_source_87(Idx)
207941  , p_source_87_meaning => l_array_source_87_meaning(Idx)
207942  , p_source_143 => l_array_source_143(Idx)
207943  , p_source_144 => l_array_source_144(Idx)
207944  );
207945 If(l_balance_type_code = 'A') THEN
207946   l_actual_gain_loss_ref := l_gain_or_loss_ref;
207947 END IF;
207948 
207949 --
207950 
207951 
207952 --
207953 AcctLineType_272 (
207954  p_application_id  => p_application_id
207955  ,p_event_id     => l_event_id
207956  ,p_calculate_acctd_flag => l_calculate_acctd_flag
207957  ,p_calculate_g_l_flag => l_calculate_g_l_flag
207958  ,p_actual_flag => l_actual_flag
207959  ,p_balance_type_code => l_balance_type_code
207960  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
207961  
207962  , p_source_1 => l_array_source_1(Idx)
207963  , p_source_9 => l_array_source_9(Idx)
207964  , p_source_18 => l_array_source_18(Idx)
207965  , p_source_21 => l_array_source_21(Idx)
207966  , p_source_21_meaning => l_array_source_21_meaning(Idx)
207967  , p_source_41 => l_array_source_41(Idx)
207968  , p_source_43 => l_array_source_43(Idx)
207969  , p_source_45 => l_array_source_45(Idx)
207970  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
207971  , p_source_52 => l_array_source_52(Idx)
207972  , p_source_53 => l_array_source_53(Idx)
207973  , p_source_54 => l_array_source_54(Idx)
207974  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
207975  , p_source_56 => l_array_source_56(Idx)
207976  , p_source_57 => l_array_source_57(Idx)
207977  , p_source_58 => l_array_source_58(Idx)
207978  , p_source_59 => l_array_source_59(Idx)
207979  , p_source_60 => l_array_source_60(Idx)
207980  , p_source_61 => l_array_source_61(Idx)
207981  , p_source_65 => l_array_source_65(Idx)
207982  , p_source_66 => l_array_source_66(Idx)
207983  , p_source_67 => l_array_source_67(Idx)
207984  , p_source_68 => l_array_source_68(Idx)
207985  , p_source_68_meaning => l_array_source_68_meaning(Idx)
207986  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
207987  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
207988  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
207989  , p_source_72 => l_array_source_72(Idx)
207990  , p_source_73 => l_array_source_73(Idx)
207991  , p_source_74 => l_array_source_74(Idx)
207992  , p_source_75 => l_array_source_75(Idx)
207993  , p_source_76 => l_array_source_76(Idx)
207994  , p_source_77 => l_array_source_77(Idx)
207995  , p_source_78 => l_array_source_78(Idx)
207996  , p_source_79 => l_array_source_79(Idx)
207997  , p_source_80 => l_array_source_80(Idx)
207998  , p_source_81 => l_array_source_81(Idx)
207999  , p_source_82 => l_array_source_82(Idx)
208000  , p_source_83 => l_array_source_83(Idx)
208001  , p_source_84 => l_array_source_84(Idx)
208002  , p_source_84_meaning => l_array_source_84_meaning(Idx)
208003  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
208004  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
208005  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
208006  );
208007 If(l_balance_type_code = 'A') THEN
208008   l_actual_gain_loss_ref := l_gain_or_loss_ref;
208009 END IF;
208010 
208011 --
208012 
208013 
208014 --
208015 AcctLineType_276 (
208016  p_application_id  => p_application_id
208017  ,p_event_id     => l_event_id
208018  ,p_calculate_acctd_flag => l_calculate_acctd_flag
208019  ,p_calculate_g_l_flag => l_calculate_g_l_flag
208020  ,p_actual_flag => l_actual_flag
208024  , p_source_21 => l_array_source_21(Idx)
208021  ,p_balance_type_code => l_balance_type_code
208022  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
208023  
208025  , p_source_21_meaning => l_array_source_21_meaning(Idx)
208026  , p_source_41 => l_array_source_41(Idx)
208027  , p_source_43 => l_array_source_43(Idx)
208028  , p_source_45 => l_array_source_45(Idx)
208029  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
208030  , p_source_52 => l_array_source_52(Idx)
208031  , p_source_53 => l_array_source_53(Idx)
208032  , p_source_54 => l_array_source_54(Idx)
208033  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
208034  , p_source_56 => l_array_source_56(Idx)
208035  , p_source_57 => l_array_source_57(Idx)
208036  , p_source_58 => l_array_source_58(Idx)
208037  , p_source_59 => l_array_source_59(Idx)
208038  , p_source_60 => l_array_source_60(Idx)
208039  , p_source_65 => l_array_source_65(Idx)
208040  , p_source_66 => l_array_source_66(Idx)
208041  , p_source_67 => l_array_source_67(Idx)
208042  , p_source_68 => l_array_source_68(Idx)
208043  , p_source_68_meaning => l_array_source_68_meaning(Idx)
208044  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
208045  , p_source_72 => l_array_source_72(Idx)
208046  , p_source_73 => l_array_source_73(Idx)
208047  , p_source_74 => l_array_source_74(Idx)
208048  , p_source_75 => l_array_source_75(Idx)
208049  , p_source_76 => l_array_source_76(Idx)
208050  , p_source_77 => l_array_source_77(Idx)
208051  , p_source_78 => l_array_source_78(Idx)
208052  , p_source_79 => l_array_source_79(Idx)
208053  , p_source_80 => l_array_source_80(Idx)
208054  , p_source_81 => l_array_source_81(Idx)
208055  , p_source_82 => l_array_source_82(Idx)
208056  , p_source_83 => l_array_source_83(Idx)
208057  , p_source_84 => l_array_source_84(Idx)
208058  , p_source_84_meaning => l_array_source_84_meaning(Idx)
208059  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
208060  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
208061  , p_source_87 => l_array_source_87(Idx)
208062  , p_source_87_meaning => l_array_source_87_meaning(Idx)
208063  , p_source_161 => l_array_source_161(Idx)
208064  , p_source_162 => l_array_source_162(Idx)
208065  );
208066 If(l_balance_type_code = 'A') THEN
208067   l_actual_gain_loss_ref := l_gain_or_loss_ref;
208068 END IF;
208069 
208070 --
208071 
208072 
208073 --
208074 AcctLineType_283 (
208075  p_application_id  => p_application_id
208076  ,p_event_id     => l_event_id
208077  ,p_calculate_acctd_flag => l_calculate_acctd_flag
208078  ,p_calculate_g_l_flag => l_calculate_g_l_flag
208079  ,p_actual_flag => l_actual_flag
208080  ,p_balance_type_code => l_balance_type_code
208081  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
208082  
208083  , p_source_21 => l_array_source_21(Idx)
208084  , p_source_21_meaning => l_array_source_21_meaning(Idx)
208085  , p_source_41 => l_array_source_41(Idx)
208086  , p_source_43 => l_array_source_43(Idx)
208087  , p_source_45 => l_array_source_45(Idx)
208088  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
208089  , p_source_52 => l_array_source_52(Idx)
208090  , p_source_53 => l_array_source_53(Idx)
208091  , p_source_54 => l_array_source_54(Idx)
208092  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
208093  , p_source_56 => l_array_source_56(Idx)
208094  , p_source_57 => l_array_source_57(Idx)
208095  , p_source_58 => l_array_source_58(Idx)
208096  , p_source_59 => l_array_source_59(Idx)
208097  , p_source_60 => l_array_source_60(Idx)
208098  , p_source_65 => l_array_source_65(Idx)
208099  , p_source_66 => l_array_source_66(Idx)
208100  , p_source_67 => l_array_source_67(Idx)
208101  , p_source_68 => l_array_source_68(Idx)
208102  , p_source_68_meaning => l_array_source_68_meaning(Idx)
208103  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
208104  , p_source_72 => l_array_source_72(Idx)
208105  , p_source_73 => l_array_source_73(Idx)
208106  , p_source_74 => l_array_source_74(Idx)
208107  , p_source_75 => l_array_source_75(Idx)
208108  , p_source_76 => l_array_source_76(Idx)
208109  , p_source_77 => l_array_source_77(Idx)
208110  , p_source_78 => l_array_source_78(Idx)
208111  , p_source_79 => l_array_source_79(Idx)
208112  , p_source_80 => l_array_source_80(Idx)
208113  , p_source_81 => l_array_source_81(Idx)
208114  , p_source_82 => l_array_source_82(Idx)
208115  , p_source_83 => l_array_source_83(Idx)
208116  , p_source_86 => g_array_event(l_event_id).array_value_char('source_86')
208117  , p_source_86_meaning => g_array_event(l_event_id).array_value_char('source_86_meaning')
208118  , p_source_87 => l_array_source_87(Idx)
208119  , p_source_87_meaning => l_array_source_87_meaning(Idx)
208120  , p_source_143 => l_array_source_143(Idx)
208121  , p_source_144 => l_array_source_144(Idx)
208122  );
208123 If(l_balance_type_code = 'A') THEN
208124   l_actual_gain_loss_ref := l_gain_or_loss_ref;
208125 END IF;
208126 
208127 --
208128 
208129 
208130 --
208131 AcctLineType_284 (
208132  p_application_id  => p_application_id
208133  ,p_event_id     => l_event_id
208134  ,p_calculate_acctd_flag => l_calculate_acctd_flag
208135  ,p_calculate_g_l_flag => l_calculate_g_l_flag
208136  ,p_actual_flag => l_actual_flag
208137  ,p_balance_type_code => l_balance_type_code
208138  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
208139  
208140  , p_source_1 => l_array_source_1(Idx)
208141  , p_source_9 => l_array_source_9(Idx)
208142  , p_source_18 => l_array_source_18(Idx)
208143  , p_source_21 => l_array_source_21(Idx)
208144  , p_source_21_meaning => l_array_source_21_meaning(Idx)
208145  , p_source_41 => l_array_source_41(Idx)
208146  , p_source_43 => l_array_source_43(Idx)
208147  , p_source_45 => l_array_source_45(Idx)
208148  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
208152  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
208149  , p_source_52 => l_array_source_52(Idx)
208150  , p_source_53 => l_array_source_53(Idx)
208151  , p_source_54 => l_array_source_54(Idx)
208153  , p_source_56 => l_array_source_56(Idx)
208154  , p_source_57 => l_array_source_57(Idx)
208155  , p_source_58 => l_array_source_58(Idx)
208156  , p_source_59 => l_array_source_59(Idx)
208157  , p_source_60 => l_array_source_60(Idx)
208158  , p_source_61 => l_array_source_61(Idx)
208159  , p_source_65 => l_array_source_65(Idx)
208160  , p_source_66 => l_array_source_66(Idx)
208161  , p_source_67 => l_array_source_67(Idx)
208162  , p_source_68 => l_array_source_68(Idx)
208163  , p_source_68_meaning => l_array_source_68_meaning(Idx)
208164  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
208165  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
208166  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
208167  , p_source_72 => l_array_source_72(Idx)
208168  , p_source_73 => l_array_source_73(Idx)
208169  , p_source_74 => l_array_source_74(Idx)
208170  , p_source_75 => l_array_source_75(Idx)
208171  , p_source_76 => l_array_source_76(Idx)
208172  , p_source_77 => l_array_source_77(Idx)
208173  , p_source_78 => l_array_source_78(Idx)
208174  , p_source_79 => l_array_source_79(Idx)
208175  , p_source_80 => l_array_source_80(Idx)
208176  , p_source_81 => l_array_source_81(Idx)
208177  , p_source_82 => l_array_source_82(Idx)
208178  , p_source_83 => l_array_source_83(Idx)
208179  , p_source_84 => l_array_source_84(Idx)
208180  , p_source_84_meaning => l_array_source_84_meaning(Idx)
208181  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
208182  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
208183  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
208184  );
208185 If(l_balance_type_code = 'A') THEN
208186   l_actual_gain_loss_ref := l_gain_or_loss_ref;
208187 END IF;
208188 
208189 --
208190 
208191 
208192 --
208193 AcctLineType_290 (
208194  p_application_id  => p_application_id
208195  ,p_event_id     => l_event_id
208196  ,p_calculate_acctd_flag => l_calculate_acctd_flag
208197  ,p_calculate_g_l_flag => l_calculate_g_l_flag
208198  ,p_actual_flag => l_actual_flag
208199  ,p_balance_type_code => l_balance_type_code
208200  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
208201  
208202  , p_source_1 => l_array_source_1(Idx)
208203  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
208204  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
208205  , p_source_9 => l_array_source_9(Idx)
208206  , p_source_18 => l_array_source_18(Idx)
208207  , p_source_21 => l_array_source_21(Idx)
208208  , p_source_21_meaning => l_array_source_21_meaning(Idx)
208209  , p_source_31 => l_array_source_31(Idx)
208210  , p_source_41 => l_array_source_41(Idx)
208211  , p_source_43 => l_array_source_43(Idx)
208212  , p_source_45 => l_array_source_45(Idx)
208213  , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
208214  , p_source_52 => l_array_source_52(Idx)
208215  , p_source_53 => l_array_source_53(Idx)
208216  , p_source_54 => l_array_source_54(Idx)
208217  , p_source_55 => g_array_event(l_event_id).array_value_char('source_55')
208218  , p_source_56 => l_array_source_56(Idx)
208219  , p_source_57 => l_array_source_57(Idx)
208220  , p_source_58 => l_array_source_58(Idx)
208221  , p_source_59 => l_array_source_59(Idx)
208222  , p_source_60 => l_array_source_60(Idx)
208223  , p_source_61 => l_array_source_61(Idx)
208224  , p_source_65 => l_array_source_65(Idx)
208225  , p_source_66 => l_array_source_66(Idx)
208226  , p_source_67 => l_array_source_67(Idx)
208227  , p_source_68 => l_array_source_68(Idx)
208228  , p_source_68_meaning => l_array_source_68_meaning(Idx)
208229  , p_source_69 => g_array_event(l_event_id).array_value_num('source_69')
208230  , p_source_70 => g_array_event(l_event_id).array_value_num('source_70')
208231  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
208232  , p_source_72 => l_array_source_72(Idx)
208233  , p_source_73 => l_array_source_73(Idx)
208234  , p_source_74 => l_array_source_74(Idx)
208235  , p_source_75 => l_array_source_75(Idx)
208236  , p_source_76 => l_array_source_76(Idx)
208237  , p_source_77 => l_array_source_77(Idx)
208238  , p_source_78 => l_array_source_78(Idx)
208239  , p_source_79 => l_array_source_79(Idx)
208240  , p_source_80 => l_array_source_80(Idx)
208241  , p_source_81 => l_array_source_81(Idx)
208242  , p_source_82 => l_array_source_82(Idx)
208243  , p_source_83 => l_array_source_83(Idx)
208244  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
208245  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
208246  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
208247  );
208248 If(l_balance_type_code = 'A') THEN
208249   l_actual_gain_loss_ref := l_gain_or_loss_ref;
208250 END IF;
208251 
208252 --
208253 
208254       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
208255       -- or secondary ledger that has different currency with primary
208256       -- or alc that is calculated by sla
208257       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
208258             (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'))
208259 
208260 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
208261 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
208262           AND (l_actual_flag = 'A')) THEN
208263         XLA_AE_LINES_PKG.CreateGainOrLossLines(
208264           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
208268          ,p_event_class_code => C_EVENT_CLASS_CODE
208265          ,p_application_id   => p_application_id
208266          ,p_amb_context_code => 'DEFAULT'
208267          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
208269          ,p_event_type_code  => C_EVENT_TYPE_CODE
208270          
208271          ,p_gain_ccid        => -1
208272          ,p_loss_ccid        => -1
208273 
208274          ,p_actual_flag      => l_actual_flag
208275          ,p_enc_flag         => null
208276          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
208277          ,p_enc_g_l_ref      => null
208278          );
208279       END IF;
208280    END IF;
208281 END IF;
208282 
208283    ELSE
208284       --
208285       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
208286       --
208287       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
208288          trace
208289             (p_msg      => 'Trancaction revesal option is Y'
208290             ,p_level    => C_LEVEL_STATEMENT
208291             ,p_module   => l_log_module);
208292       END IF;
208293    END IF;
208294 
208295 END LOOP;
208296 l_result := XLA_AE_LINES_PKG.InsertLines ;
208297 end loop;
208298 close line_cur;
208299 
208300 
208301 --
208302 -- insert headers into xla_ae_headers_gt table
208303 --
208304 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
208305 
208306 -- insert into errors table here.
208307 
208308 END LOOP;
208309 
208310 --
208311 -- 4865292
208312 --
208313 -- Compare g_hdr_extract_count with event count in
208314 -- CreateHeadersAndLines.
208315 --
208316 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
208317 
208318 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
208319    trace (p_msg     => '# rows extracted from header extract objects '
208320                     || ' (running total): '
208321                     || g_hdr_extract_count
208322          ,p_level   => C_LEVEL_STATEMENT
208323          ,p_module  => l_log_module);
208324 END IF;
208325 
208326 CLOSE header_cur;
208327 --
208328 
208329 --
208330 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
208331    trace
208332       (p_msg      => 'END of EventClass_298'
208333       ,p_level    => C_LEVEL_PROCEDURE
208334       ,p_module   => l_log_module);
208335 END IF;
208336 --
208337 RETURN l_result;
208338 EXCEPTION
208339 WHEN xla_exceptions_pkg.application_exception THEN
208340    
208341 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
208342 
208343    
208344 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
208345 
208346    RAISE;
208347 
208348 WHEN NO_DATA_FOUND THEN
208349 
208350 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
208351 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
208352 
208353 FOR header_record IN header_cur
208354 LOOP
208355     l_array_header_events(header_record.event_id) := header_record.event_id;
208356 END LOOP;
208357 
208358 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
208359 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
208360 
208361 fnd_file.put_line(fnd_file.LOG, '                    ');
208362 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
208363 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
208364 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
208365 
208366 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
208367 LOOP
208368 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
208369 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
208370         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
208371 	END IF;
208372 END LOOP;
208373 
208374 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
208375 fnd_file.put_line(fnd_file.LOG, '                    ');
208376 
208377 
208378 xla_exceptions_pkg.raise_message
208379       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_298');
208380 
208381 
208382 WHEN OTHERS THEN
208383    xla_exceptions_pkg.raise_message
208384       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_298');
208385 END EventClass_298;
208386 --
208387 
208388 ---------------------------------------
208389 --
208390 -- PRIVATE PROCEDURE
208391 --         insert_sources_299
208392 --
208393 ----------------------------------------
208394 --
208395 PROCEDURE insert_sources_299(
208396                                 p_target_ledger_id       IN NUMBER
208397                               , p_language               IN VARCHAR2
208398                               , p_sla_ledger_id          IN NUMBER
208399                               , p_pad_start_date         IN DATE
208400                               , p_pad_end_date           IN DATE
208401                          )
208402 IS
208403 
208404 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT_BURDEN_ALL';
208405 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAYMENT_BURDEN';
208406 p_apps_owner                   VARCHAR2(30);
208407 l_log_module                   VARCHAR2(240);
208408 BEGIN
208409 IF g_log_enabled THEN
208410       l_log_module := C_DEFAULT_MODULE||'.insert_sources_299';
208411 END IF;
208412 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
208413 
208414       trace
208415          (p_msg      => 'BEGIN of insert_sources_299'
208416          ,p_level    => C_LEVEL_PROCEDURE
208417          ,p_module   => l_log_module);
208418 
208419 END IF;
208423   INTO p_apps_owner
208420 
208421 -- select APPS owner
208422 SELECT oracle_username
208424   FROM fnd_oracle_userid
208425  WHERE read_only_flag = 'U'
208426 ;
208427 
208428 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
208429       trace
208430          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
208431                         ' - p_language = '||p_language||
208432                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
208433                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
208434                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
208435                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
208436          ,p_level    => C_LEVEL_STATEMENT
208437          ,p_module   => l_log_module);
208438 END IF;
208439 
208440  
208441 
208442 
208443 --
208444 INSERT INTO xla_diag_sources  --line2
208445 (
208446         event_id
208447       , ledger_id
208448       , sla_ledger_id
208449       , description_language
208450       , object_name
208451       , object_type_code
208452       , line_number
208453       , source_application_id
208454       , source_type_code
208455       , source_code
208456       , source_value
208457       , source_meaning
208458       , created_by
208459       , creation_date
208460       , last_update_date
208461       , last_updated_by
208462       , last_update_login
208463       , program_update_date
208464       , program_application_id
208465       , program_id
208466       , request_id
208467 )
208468 SELECT  event_id
208469       , p_target_ledger_id
208470       , p_sla_ledger_id
208471       , p_language
208472       , object_name
208473       , object_type_code
208474       , line_number
208475       , source_application_id
208476       , source_type_code
208477       , source_code
208478       , SUBSTR(source_value,1,1996)
208479       , SUBSTR(source_meaning ,1,200)
208480       , xla_environment_pkg.g_Usr_Id
208481       , TRUNC(SYSDATE)
208482       , TRUNC(SYSDATE)
208483       , xla_environment_pkg.g_Usr_Id
208484       , xla_environment_pkg.g_Login_Id
208485       , TRUNC(SYSDATE)
208486       , xla_environment_pkg.g_Prog_Appl_Id
208487       , xla_environment_pkg.g_Prog_Id
208488       , xla_environment_pkg.g_Req_Id
208489   FROM (
208490        SELECT xet.event_id                  event_id
208491             , l1.line_number                 line_number
208492             , CASE r
208493                WHEN 1 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208494                 WHEN 2 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208495                 WHEN 3 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208496                 WHEN 4 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208497                 WHEN 5 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208498                 WHEN 6 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208499                 WHEN 7 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208500                 WHEN 8 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208501                 WHEN 9 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208502                 WHEN 10 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208503                 WHEN 11 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208504                 WHEN 12 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208505                 WHEN 13 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208506                 WHEN 14 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208507                 WHEN 15 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208508                 WHEN 16 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208509                 WHEN 17 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
208510                 
208511                ELSE null
208512               END                           object_name
208513             , CASE r
208514                 WHEN 1 THEN 'LINE' 
208515                 WHEN 2 THEN 'LINE' 
208516                 WHEN 3 THEN 'LINE' 
208517                 WHEN 4 THEN 'LINE' 
208518                 WHEN 5 THEN 'LINE' 
208519                 WHEN 6 THEN 'LINE' 
208520                 WHEN 7 THEN 'LINE' 
208521                 WHEN 8 THEN 'LINE' 
208522                 WHEN 9 THEN 'LINE' 
208523                 WHEN 10 THEN 'LINE' 
208524                 WHEN 11 THEN 'LINE' 
208525                 WHEN 12 THEN 'LINE' 
208526                 WHEN 13 THEN 'LINE' 
208527                 WHEN 14 THEN 'LINE' 
208528                 WHEN 15 THEN 'LINE' 
208529                 WHEN 16 THEN 'LINE' 
208530                 WHEN 17 THEN 'LINE' 
208531                 
208532                 ELSE null
208533               END                           object_type_code
208534             , CASE r
208535                 WHEN 1 THEN '200' 
208536                 WHEN 2 THEN '200' 
208537                 WHEN 3 THEN '200' 
208538                 WHEN 4 THEN '200' 
208539                 WHEN 5 THEN '200' 
208540                 WHEN 6 THEN '200' 
208541                 WHEN 7 THEN '200' 
208542                 WHEN 8 THEN '200' 
208543                 WHEN 9 THEN '200' 
208544                 WHEN 10 THEN '200' 
208545                 WHEN 11 THEN '200' 
208546                 WHEN 12 THEN '200' 
208547                 WHEN 13 THEN '200' 
208548                 WHEN 14 THEN '200' 
208549                 WHEN 15 THEN '200' 
208550                 WHEN 16 THEN '200' 
208551                 WHEN 17 THEN '200' 
208552                 
208553                 ELSE null
208554               END                           source_application_id
208555             , 'S'             source_type_code
208556             , CASE r
208557                 WHEN 1 THEN 'DISTRIBUTION_LINK_TYPE' 
208558                 WHEN 2 THEN 'AID_INVOICE_DIST_ID' 
208562                 WHEN 6 THEN 'AID_EXPENDITURE_TYPE' 
208559                 WHEN 3 THEN 'AI_INVOICE_CURRENCY_CODE' 
208560                 WHEN 4 THEN 'AID_AMOUNT' 
208561                 WHEN 5 THEN 'ACCT_REVERSAL_INDICATOR' 
208563                 WHEN 7 THEN 'ENC_UPG_CR_ACCT_CLASS' 
208564                 WHEN 8 THEN 'ENC_UPG_CR_ACCOUNT' 
208565                 WHEN 9 THEN 'AID_BASE_AMT_NO_ROUND' 
208566                 WHEN 10 THEN 'ENC_UPG_DR_ACCT_CLASS' 
208567                 WHEN 11 THEN 'ENC_UPG_DR_ACCOUNT' 
208568                 WHEN 12 THEN 'USE_ENC_UPG_ATTRIB_FLAG' 
208569                 WHEN 13 THEN 'ACCT_REVERSAL_FIRST_DIST_ID' 
208570                 WHEN 14 THEN 'AP_SECOND_DIST_ID' 
208571                 WHEN 15 THEN 'ACCT_REV_DISTRIBUTION_TYPE' 
208572                 WHEN 16 THEN 'ENC_UPG_CR_ENC_TYPE_ID' 
208573                 WHEN 17 THEN 'ENC_UPG_DR_ENC_TYPE_ID' 
208574                 
208575                 ELSE null
208576               END                           source_code
208577             , CASE r
208578                 WHEN 1 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
208579                 WHEN 2 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
208580                 WHEN 3 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
208581                 WHEN 4 THEN TO_CHAR(l1.AID_AMOUNT)
208582                 WHEN 5 THEN TO_CHAR(l1.ACCT_REVERSAL_INDICATOR)
208583                 WHEN 6 THEN TO_CHAR(l1.AID_EXPENDITURE_TYPE)
208584                 WHEN 7 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
208585                 WHEN 8 THEN TO_CHAR(l1.ENC_UPG_CR_ACCOUNT)
208586                 WHEN 9 THEN TO_CHAR(l1.AID_BASE_AMT_NO_ROUND)
208587                 WHEN 10 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
208588                 WHEN 11 THEN TO_CHAR(l1.ENC_UPG_DR_ACCOUNT)
208589                 WHEN 12 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
208590                 WHEN 13 THEN TO_CHAR(l1.ACCT_REVERSAL_FIRST_DIST_ID)
208591                 WHEN 14 THEN TO_CHAR(l1.AP_SECOND_DIST_ID)
208592                 WHEN 15 THEN TO_CHAR(l1.ACCT_REV_DISTRIBUTION_TYPE)
208593                 WHEN 16 THEN TO_CHAR(l1.ENC_UPG_CR_ENC_TYPE_ID)
208594                 WHEN 17 THEN TO_CHAR(l1.ENC_UPG_DR_ENC_TYPE_ID)
208595                 
208596                 ELSE null
208597               END                           source_value
208598             , null              source_meaning
208599          FROM  xla_events_gt     xet  
208600         , PA_XLA_BC_PKT_AP_DETAIL_V  l1
208601             , (select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
208602         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
208603           AND xet.event_class_code = C_EVENT_CLASS_CODE
208604             AND l1.event_id          = xet.event_id
208605 
208606 )
208607 ;
208608 --
208609 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
208610 
208611       trace
208612          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
208613          ,p_level    => C_LEVEL_STATEMENT
208614          ,p_module   => l_log_module);
208615 
208616 END IF;
208617 
208618 
208619 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
208620       trace
208621          (p_msg      => 'END of insert_sources_299'
208622          ,p_level    => C_LEVEL_PROCEDURE
208623          ,p_module   => l_log_module);
208624 END IF;
208625 EXCEPTION
208626   WHEN xla_exceptions_pkg.application_exception THEN
208627       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
208628             trace
208629                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
208630                ,p_level    => C_LEVEL_EXCEPTION
208631                ,p_module   => l_log_module);
208632       END IF;
208633       RAISE;
208634   WHEN OTHERS THEN
208635       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
208636             trace
208637                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
208638                ,p_level    => C_LEVEL_EXCEPTION
208639                ,p_module   => l_log_module);
208640        END IF;
208641        xla_exceptions_pkg.raise_message
208642            (p_location => 'XLA_00200_AAD_S_000006_PKG.insert_sources_299');
208643 END insert_sources_299;
208644 --
208645 
208646 ---------------------------------------
208647 --
208648 -- PRIVATE FUNCTION
208649 --         EventClass_299
208650 --
208651 ----------------------------------------
208652 --
208653 FUNCTION EventClass_299
208654        (p_application_id         IN NUMBER
208655        ,p_base_ledger_id         IN NUMBER
208656        ,p_target_ledger_id       IN NUMBER
208657        ,p_language               IN VARCHAR2
208658        ,p_currency_code          IN VARCHAR2
208659        ,p_sla_ledger_id          IN NUMBER
208660        ,p_pad_start_date         IN DATE
208661        ,p_pad_end_date           IN DATE
208662        ,p_primary_ledger_id      IN NUMBER)
208663 RETURN BOOLEAN IS
208664 --
208665 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT_BURDEN_ALL';
208666 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAYMENT_BURDEN';
208667 
208668 l_calculate_acctd_flag   VARCHAR2(1) :='N';
208669 l_calculate_g_l_flag     VARCHAR2(1) :='N';
208670 --
208671 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
208672 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
208673 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
208674 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
208675 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
208676 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
208677 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
208681 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
208678 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
208679 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
208680 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
208682 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
208683 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
208684 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
208685 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
208686 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
208687 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
208688 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
208689 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
208690 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
208691 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
208692 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
208693 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
208694 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
208695 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
208696 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
208697 
208698 l_event_id                             NUMBER;
208699 l_previous_event_id                    NUMBER;
208700 l_first_event_id                       NUMBER;
208701 l_last_event_id                        NUMBER;
208702 
208703 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
208704 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
208705 --
208706 --
208707 l_result                    BOOLEAN := TRUE;
208708 l_rows                      NUMBER  := 1000;
208709 l_event_type_name           VARCHAR2(80) := 'All';
208710 l_event_class_name          VARCHAR2(80) := 'Burden for Prepayments';
208711 l_description               VARCHAR2(4000);
208712 l_transaction_reversal      NUMBER;
208713 l_ae_header_id              NUMBER;
208714 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
208715 l_log_module                VARCHAR2(240);
208716 --
208717 l_acct_reversal_source      VARCHAR2(30);
208718 l_trx_reversal_source       VARCHAR2(30);
208719 
208720 l_continue_with_lines       BOOLEAN := TRUE;
208721 --
208722 l_acc_rev_gl_date_source    DATE;                      -- 4262811
208723 --
208724 type t_array_event_id is table of number index by binary_integer;
208725 
208726 l_rec_array_event                    t_rec_array_event;
208727 l_null_rec_array_event               t_rec_array_event;
208728 l_array_ae_header_id                 xla_number_array_type;
208729 l_actual_flag                        VARCHAR2(1) := NULL;
208730 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
208731 l_balance_type_code                  VARCHAR2(1) :=NULL;
208732 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
208733 
208734 --
208735 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
208736 --
208737 
208738 
208739 TYPE t_array_source_43 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
208740 TYPE t_array_source_52 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
208741 TYPE t_array_source_55 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
208742 TYPE t_array_source_61 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
208743 TYPE t_array_source_172 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
208744 TYPE t_array_source_173 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_EXPENDITURE_TYPE%TYPE INDEX BY BINARY_INTEGER;
208745 TYPE t_array_source_174 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
208746 TYPE t_array_source_175 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
208747 TYPE t_array_source_176 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_BASE_AMT_NO_ROUND%TYPE INDEX BY BINARY_INTEGER;
208748 TYPE t_array_source_177 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
208749 TYPE t_array_source_178 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
208750 TYPE t_array_source_179 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
208751 TYPE t_array_source_180 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
208752 TYPE t_array_source_181 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
208753 TYPE t_array_source_182 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REV_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
208754 TYPE t_array_source_183 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
208755 TYPE t_array_source_184 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
208756 
208757 
208758 l_array_source_43      t_array_source_43;
208759 l_array_source_52      t_array_source_52;
208760 l_array_source_55      t_array_source_55;
208761 l_array_source_61      t_array_source_61;
208762 l_array_source_172      t_array_source_172;
208763 l_array_source_173      t_array_source_173;
208764 l_array_source_174      t_array_source_174;
208765 l_array_source_175      t_array_source_175;
208766 l_array_source_176      t_array_source_176;
208767 l_array_source_177      t_array_source_177;
208768 l_array_source_178      t_array_source_178;
208772 l_array_source_182      t_array_source_182;
208769 l_array_source_179      t_array_source_179;
208770 l_array_source_180      t_array_source_180;
208771 l_array_source_181      t_array_source_181;
208773 l_array_source_183      t_array_source_183;
208774 l_array_source_184      t_array_source_184;
208775 
208776 --
208777 CURSOR header_cur
208778 IS
208779 SELECT /*+ leading(xet) cardinality(xet,1) */
208780 -- Event Class Code: PREPAYMENT_BURDEN
208781     xet.entity_id
208782    ,xet.legal_entity_id
208783    ,xet.entity_code
208784    ,xet.transaction_number
208785    ,xet.event_id
208786    ,xet.event_class_code
208787    ,xet.event_type_code
208788    ,xet.event_number
208789    ,xet.event_date
208790    ,xet.transaction_date
208791    ,xet.reference_num_1
208792    ,xet.reference_num_2
208793    ,xet.reference_num_3
208794    ,xet.reference_num_4
208795    ,xet.reference_char_1
208796    ,xet.reference_char_2
208797    ,xet.reference_char_3
208798    ,xet.reference_char_4
208799    ,xet.reference_date_1
208800    ,xet.reference_date_2
208801    ,xet.reference_date_3
208802    ,xet.reference_date_4
208803    ,xet.event_created_by
208804    ,xet.budgetary_control_flag  
208805   FROM xla_events_gt     xet  
208806  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
208807    and xet.event_class_code = C_EVENT_CLASS_CODE
208808    and xet.event_status_code <> 'N'  
208809  ORDER BY event_id
208810 ;
208811 
208812 
208813 --
208814 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
208815 IS
208816 SELECT  /*+ leading(xet) cardinality(xet,1) */
208817 -- Event Class Code: PREPAYMENT_BURDEN
208818     xet.entity_id
208819    ,xet.legal_entity_id
208820    ,xet.entity_code
208821    ,xet.transaction_number
208822    ,xet.event_id
208823    ,xet.event_class_code
208824    ,xet.event_type_code
208825    ,xet.event_number
208826    ,xet.event_date
208827    ,xet.transaction_date
208828    ,xet.reference_num_1
208829    ,xet.reference_num_2
208830    ,xet.reference_num_3
208831    ,xet.reference_num_4
208832    ,xet.reference_char_1
208833    ,xet.reference_char_2
208834    ,xet.reference_char_3
208835    ,xet.reference_char_4
208836    ,xet.reference_date_1
208837    ,xet.reference_date_2
208838    ,xet.reference_date_3
208839    ,xet.reference_date_4
208840    ,xet.event_created_by
208841    ,xet.budgetary_control_flag
208842  , l1.LINE_NUMBER  
208843   , l1.DISTRIBUTION_LINK_TYPE    source_43
208844   , l1.AID_INVOICE_DIST_ID    source_52
208845   , l1.AI_INVOICE_CURRENCY_CODE    source_55
208846   , l1.AID_AMOUNT    source_61
208847   , l1.ACCT_REVERSAL_INDICATOR    source_172
208848   , l1.AID_EXPENDITURE_TYPE    source_173
208849   , l1.ENC_UPG_CR_ACCT_CLASS    source_174
208850   , l1.ENC_UPG_CR_ACCOUNT    source_175
208851   , l1.AID_BASE_AMT_NO_ROUND    source_176
208852   , l1.ENC_UPG_DR_ACCT_CLASS    source_177
208853   , l1.ENC_UPG_DR_ACCOUNT    source_178
208854   , l1.USE_ENC_UPG_ATTRIB_FLAG    source_179
208855   , l1.ACCT_REVERSAL_FIRST_DIST_ID    source_180
208856   , l1.AP_SECOND_DIST_ID    source_181
208857   , l1.ACCT_REV_DISTRIBUTION_TYPE    source_182
208858   , l1.ENC_UPG_CR_ENC_TYPE_ID    source_183
208859   , l1.ENC_UPG_DR_ENC_TYPE_ID    source_184
208860   FROM xla_events_gt     xet 
208861   , PA_XLA_BC_PKT_AP_DETAIL_V  l1
208862  WHERE xet.event_id between x_first_event_id and x_last_event_id
208863    and xet.event_date between p_pad_start_date and p_pad_end_date
208864    and xet.event_class_code = C_EVENT_CLASS_CODE
208865    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
208866 ;
208867 
208868 --
208869 BEGIN
208870 IF g_log_enabled THEN
208871    l_log_module := C_DEFAULT_MODULE||'.EventClass_299';
208872 END IF;
208873 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
208874    trace
208875       (p_msg      => 'BEGIN of EventClass_299'
208876       ,p_level    => C_LEVEL_PROCEDURE
208877       ,p_module   => l_log_module);
208878 END IF;
208879 
208880 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
208881    trace
208882       (p_msg      => 'p_application_id = '||p_application_id||
208883                      ' - p_base_ledger_id = '||p_base_ledger_id||
208884                      ' - p_target_ledger_id  = '||p_target_ledger_id||
208885                      ' - p_language = '||p_language||
208886                      ' - p_currency_code = '||p_currency_code||
208887                      ' - p_sla_ledger_id = '||p_sla_ledger_id
208888       ,p_level    => C_LEVEL_STATEMENT
208889       ,p_module   => l_log_module);
208890 END IF;
208891 --
208892 -- initialze arrays
208893 --
208894 g_array_event.DELETE;
208895 l_rec_array_event := l_null_rec_array_event;
208896 --
208897 --------------------------------------
208898 -- 4262811 Initialze MPA Line Number
208899 --------------------------------------
208900 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
208901 
208902 --
208903 
208904 --
208905 OPEN header_cur;
208906 --
208907 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
208908    trace
208909    (p_msg      => 'SQL - FETCH header_cur'
208910    ,p_level    => C_LEVEL_STATEMENT
208911    ,p_module   => l_log_module);
208912 END IF;
208913 --
208914 LOOP
208915 FETCH header_cur BULK COLLECT INTO
208916         l_array_entity_id
208917       , l_array_legal_entity_id
208918       , l_array_entity_code
208919       , l_array_transaction_num
208923       , l_array_event_number
208920       , l_array_event_id
208921       , l_array_class_code
208922       , l_array_event_type
208924       , l_array_event_date
208925       , l_array_transaction_date
208926       , l_array_reference_num_1
208927       , l_array_reference_num_2
208928       , l_array_reference_num_3
208929       , l_array_reference_num_4
208930       , l_array_reference_char_1
208931       , l_array_reference_char_2
208932       , l_array_reference_char_3
208933       , l_array_reference_char_4
208934       , l_array_reference_date_1
208935       , l_array_reference_date_2
208936       , l_array_reference_date_3
208937       , l_array_reference_date_4
208938       , l_array_event_created_by
208939       , l_array_budgetary_control_flag 
208940       LIMIT l_rows;
208941 --
208942 IF (C_LEVEL_EVENT >= g_log_level) THEN
208943    trace
208944    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
208945    ,p_level    => C_LEVEL_EVENT
208946    ,p_module   => l_log_module);
208947 END IF;
208948 --
208949 EXIT WHEN l_array_entity_id.COUNT = 0;
208950 
208951 -- initialize arrays
208952 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
208953 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
208954 
208955 --
208956 -- Bug 4458708
208957 --
208958 XLA_AE_LINES_PKG.g_LineNumber := 0;
208959 
208960 
208961 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
208962 g_last_hdr_idx := l_array_event_id.LAST;
208963 --
208964 -- loop for the headers. Each iteration is for each header extract row
208965 -- fetched in header cursor
208966 --
208967 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
208968 
208969 --
208970 -- set event info as cache for other routines to refer event attributes
208971 --
208972 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
208973    (p_application_id           => p_application_id
208974    ,p_primary_ledger_id        => p_primary_ledger_id
208975    ,p_base_ledger_id           => p_base_ledger_id
208976    ,p_target_ledger_id         => p_target_ledger_id
208977    ,p_entity_id                => l_array_entity_id(hdr_idx)
208978    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
208979    ,p_entity_code              => l_array_entity_code(hdr_idx)
208980    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
208981    ,p_event_id                 => l_array_event_id(hdr_idx)
208982    ,p_event_class_code         => l_array_class_code(hdr_idx)
208983    ,p_event_type_code          => l_array_event_type(hdr_idx)
208984    ,p_event_number             => l_array_event_number(hdr_idx)
208985    ,p_event_date               => l_array_event_date(hdr_idx)
208986    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
208987    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
208988    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
208989    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
208990    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
208991    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
208992    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
208993    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
208994    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
208995    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
208996    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
208997    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
208998    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
208999    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
209000    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
209001 
209002 --
209003 -- set the status of entry to C_VALID (0)
209004 --
209005 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
209006 
209007 --
209008 -- initialize a row for ae header
209009 --
209010 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
209011 
209012 l_event_id := l_array_event_id(hdr_idx);
209013 
209014 --
209015 -- storing the hdr_idx for event. May be used by line cursor.
209016 --
209017 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
209018 
209019 --
209020 -- store sources from header extract. This can be improved to
209021 -- store only those sources from header extract that may be used in lines
209022 --
209023 
209024 
209025 --
209026 -- initilaize the status of ae headers for diffrent balance types
209027 -- the status is initialised to C_NOT_CREATED (2)
209028 --
209029 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
209030 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
209031 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
209032 
209033 --
209034 -- call api to validate and store accounting attributes for header
209035 --
209036 
209037 ------------------------------------------------------------
209038 -- Accrual Reversal : to get date for Standard Source (NONE)
209039 ------------------------------------------------------------
209040 l_acc_rev_gl_date_source := NULL;
209041 
209042      l_rec_acct_attrs.array_acct_attr_code(1)   := 'GL_DATE';
209043       l_rec_acct_attrs.array_date_value(1) := 
209044 xla_ae_sources_pkg.GetSystemSourceDate(
209045    p_source_code           => 'XLA_EVENT_DATE'
209046  , p_source_type_code      => 'Y'
209047  , p_source_application_id =>  602
209048 );
209049 
209050 
209051 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
209052 
209053 XLA_AE_HEADER_PKG.SetJeCategoryName;
209057 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
209054 
209055 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
209056 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
209058 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
209059 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
209060 
209061 
209062 -- No header level analytical criteria
209063 
209064 --
209065 --accounting attribute enhancement, bug 3612931
209066 --
209067 l_trx_reversal_source := SUBSTR(NULL, 1,30);
209068 
209069 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
209070    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
209071 
209072    xla_accounting_err_pkg.build_message
209073       (p_appli_s_name            => 'XLA'
209074       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
209075       ,p_token_1                 => 'ACCT_ATTR_NAME'
209076       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
209077       ,p_token_2                 => 'PRODUCT_NAME'
209078       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
209079       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
209080       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
209081       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
209082 
209083 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
209084    --
209085    -- following sets the accounting attributes needed to reverse
209086    -- accounting for a distributeion
209087    --
209088    xla_ae_lines_pkg.SetTrxReversalAttrs
209089       (p_event_id              => l_event_id
209090       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
209091       ,p_trx_reversal_source   => l_trx_reversal_source);
209092 
209093 END IF;
209094 
209095 
209096 ----------------------------------------------------------------
209097 -- 4262811 -  update the header statuses to invalid in need be
209098 ----------------------------------------------------------------
209099 --
209100 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
209101 
209102 
209103   -----------------------------------------------
209104   -- No accrual reversal for the event class/type
209105   -----------------------------------------------
209106 ----------------------------------------------------------------
209107 
209108 --
209109 -- this ends the header loop iteration for one bulk fetch
209110 --
209111 END LOOP;
209112 
209113 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
209114 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
209115 
209116 --
209117 -- insert dummy rows into lines gt table that were created due to
209118 -- transaction reversals
209119 --
209120 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
209121    l_result := XLA_AE_LINES_PKG.InsertLines;
209122 END IF;
209123 
209124 --
209125 -- reset the temp_line_num for each set of events fetched from header
209126 -- cursor rather than doing it for each new event in line cursor
209127 -- Bug 3939231
209128 --
209129 xla_ae_lines_pkg.g_temp_line_num := 0;
209130 
209131 
209132 
209133 --
209134 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
209135 --
209136 --
209137 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
209138 
209139       trace
209140          (p_msg      => 'SQL - FETCH line_cur'
209141          ,p_level    => C_LEVEL_STATEMENT
209142          ,p_module   => l_log_module);
209143 
209144 END IF;
209145 --
209146 --
209147 LOOP
209148   --
209149   FETCH line_cur BULK COLLECT INTO
209150         l_array_entity_id
209151       , l_array_legal_entity_id
209152       , l_array_entity_code
209153       , l_array_transaction_num
209154       , l_array_event_id
209155       , l_array_class_code
209156       , l_array_event_type
209157       , l_array_event_number
209158       , l_array_event_date
209159       , l_array_transaction_date
209160       , l_array_reference_num_1
209161       , l_array_reference_num_2
209162       , l_array_reference_num_3
209163       , l_array_reference_num_4
209164       , l_array_reference_char_1
209165       , l_array_reference_char_2
209166       , l_array_reference_char_3
209167       , l_array_reference_char_4
209168       , l_array_reference_date_1
209169       , l_array_reference_date_2
209170       , l_array_reference_date_3
209171       , l_array_reference_date_4
209172       , l_array_event_created_by
209173       , l_array_budgetary_control_flag
209174       , l_array_extract_line_num 
209175       , l_array_source_43
209176       , l_array_source_52
209177       , l_array_source_55
209178       , l_array_source_61
209179       , l_array_source_172
209180       , l_array_source_173
209181       , l_array_source_174
209182       , l_array_source_175
209183       , l_array_source_176
209184       , l_array_source_177
209185       , l_array_source_178
209186       , l_array_source_179
209187       , l_array_source_180
209188       , l_array_source_181
209189       , l_array_source_182
209190       , l_array_source_183
209191       , l_array_source_184
209192       LIMIT l_rows;
209193 
209194   --
209195   IF (C_LEVEL_EVENT >= g_log_level) THEN
209196             trace
209197                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
209201   --
209198                ,p_level    => C_LEVEL_EVENT
209199                ,p_module   => l_log_module);
209200   END IF;
209202   EXIT WHEN l_array_entity_id.count = 0;
209203 
209204   XLA_AE_LINES_PKG.g_rec_lines := null;
209205 
209206 --
209207 -- Bug 4458708
209208 --
209209 XLA_AE_LINES_PKG.g_LineNumber := 0;
209210 --
209211 --
209212 
209213 FOR Idx IN 1..l_array_event_id.count LOOP
209214    --
209215    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
209216    --
209217    l_event_id := l_array_event_id(idx);  -- 5648433
209218 
209219    --
209220    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
209221    --
209222 
209223    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
209224              (g_array_event(l_event_id).array_value_num('header_index'))
209225          ,'N'
209226          ) <> 'Y'
209227    THEN
209228       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
209229          trace
209230             (p_msg      => 'Trancaction revesal option is not Y '
209231             ,p_level    => C_LEVEL_STATEMENT
209232             ,p_module   => l_log_module);
209233       END IF;
209234 
209235 --
209236 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
209237 --
209238 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
209239 --
209240 -- set event info as cache for other routines to refer event attributes
209241 --
209242 
209243 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
209244    l_previous_event_id := l_event_id;
209245 
209246    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
209247       (p_application_id           => p_application_id
209248       ,p_primary_ledger_id        => p_primary_ledger_id
209249       ,p_base_ledger_id           => p_base_ledger_id
209250       ,p_target_ledger_id         => p_target_ledger_id
209251       ,p_entity_id                => l_array_entity_id(Idx)
209252       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
209253       ,p_entity_code              => l_array_entity_code(Idx)
209254       ,p_transaction_num          => l_array_transaction_num(Idx)
209255       ,p_event_id                 => l_array_event_id(Idx)
209256       ,p_event_class_code         => l_array_class_code(Idx)
209257       ,p_event_type_code          => l_array_event_type(Idx)
209258       ,p_event_number             => l_array_event_number(Idx)
209259       ,p_event_date               => l_array_event_date(Idx)
209260       ,p_transaction_date         => l_array_transaction_date(Idx)
209261       ,p_reference_num_1          => l_array_reference_num_1(Idx)
209262       ,p_reference_num_2          => l_array_reference_num_2(Idx)
209263       ,p_reference_num_3          => l_array_reference_num_3(Idx)
209264       ,p_reference_num_4          => l_array_reference_num_4(Idx)
209265       ,p_reference_char_1         => l_array_reference_char_1(Idx)
209266       ,p_reference_char_2         => l_array_reference_char_2(Idx)
209267       ,p_reference_char_3         => l_array_reference_char_3(Idx)
209268       ,p_reference_char_4         => l_array_reference_char_4(Idx)
209269       ,p_reference_date_1         => l_array_reference_date_1(Idx)
209270       ,p_reference_date_2         => l_array_reference_date_2(Idx)
209271       ,p_reference_date_3         => l_array_reference_date_3(Idx)
209272       ,p_reference_date_4         => l_array_reference_date_4(Idx)
209273       ,p_event_created_by         => l_array_event_created_by(Idx)
209274       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
209275        --
209276 END IF;
209277 
209278 
209279 
209280 --
209281 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
209282 
209283 l_acct_reversal_source := SUBSTR(l_array_source_172(Idx), 1,30);
209284 
209285 IF l_continue_with_lines THEN
209286    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
209287       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
209288 
209289       xla_accounting_err_pkg.build_message
209290          (p_appli_s_name            => 'XLA'
209291          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
209292          ,p_token_1                 => 'LINE_NUMBER'
209293          ,p_value_1                 => l_array_extract_line_num(Idx)
209294          ,p_token_2                 => 'PRODUCT_NAME'
209295          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
209296          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
209297          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
209298          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
209299 
209300    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
209301       --
209302       -- following sets the accounting attributes needed to reverse
209303       -- accounting for a distributeion
209304       --
209305 
209306       --
209307       -- 5217187
209308       --
209309       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
209310       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
209311                                        g_array_event(l_event_id).array_value_num('header_index'));
209312       --
209313       --
209314 
209315       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
209316       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_172(Idx);
209317       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
209318       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_52(Idx);
209322       l_rec_rev_acct_attrs.array_char_value(5)  := l_array_source_43(Idx);
209319       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_IDENTIFIER_2';
209320       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_173(Idx);
209321       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'DISTRIBUTION_TYPE';
209323       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ACCT_CLASS';
209324       l_rec_rev_acct_attrs.array_char_value(6)  := l_array_source_174(Idx);
209325       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_CCID';
209326       l_rec_rev_acct_attrs.array_num_value(7)  := l_array_source_175(Idx);
209327       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_AMT';
209328       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_61(Idx);
209329       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_CURR';
209330       l_rec_rev_acct_attrs.array_char_value(9)  := l_array_source_55(Idx);
209331       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_LEDGER_AMT';
209332       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_176(Idx);
209333       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ACCT_CLASS';
209334       l_rec_rev_acct_attrs.array_char_value(11)  := l_array_source_177(Idx);
209335       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
209336       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_178(Idx);
209337       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
209338       l_rec_rev_acct_attrs.array_num_value(13)  := l_array_source_61(Idx);
209339       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
209340       l_rec_rev_acct_attrs.array_char_value(14)  := l_array_source_55(Idx);
209341       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
209342       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_176(Idx);
209343       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
209344       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_179(Idx);
209345       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
209346       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_180(Idx);
209347       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_ID2';
209348       l_rec_rev_acct_attrs.array_char_value(18)  := l_array_source_181(Idx);
209349       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_TYPE';
209350       l_rec_rev_acct_attrs.array_char_value(19)  := l_array_source_182(Idx);
209351       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
209352       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_183(Idx);
209353       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
209354       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_184(Idx);
209355 
209356 
209357       xla_ae_lines_pkg.SetAcctReversalAttrs
209358          (p_event_id             => l_event_id
209359          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
209360          ,p_calculate_acctd_flag => l_calculate_acctd_flag
209361          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
209362    END IF;
209363 
209364    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
209365        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
209366       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
209367       -- or secondary ledger that has different currency with primary
209368       -- or alc that is calculated by sla
209369       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
209370             (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'))
209371 
209372 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
209373 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
209374           AND (l_actual_flag = 'A')) THEN
209375         XLA_AE_LINES_PKG.CreateGainOrLossLines(
209376           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
209377          ,p_application_id   => p_application_id
209378          ,p_amb_context_code => 'DEFAULT'
209379          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
209380          ,p_event_class_code => C_EVENT_CLASS_CODE
209381          ,p_event_type_code  => C_EVENT_TYPE_CODE
209382          
209383          ,p_gain_ccid        => -1
209384          ,p_loss_ccid        => -1
209385 
209386          ,p_actual_flag      => l_actual_flag
209387          ,p_enc_flag         => null
209388          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
209389          ,p_enc_g_l_ref      => null
209390          );
209391       END IF;
209392    END IF;
209393 END IF;
209394 
209395    ELSE
209396       --
209397       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
209398       --
209399       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
209400          trace
209401             (p_msg      => 'Trancaction revesal option is Y'
209402             ,p_level    => C_LEVEL_STATEMENT
209403             ,p_module   => l_log_module);
209404       END IF;
209405    END IF;
209406 
209407 END LOOP;
209408 l_result := XLA_AE_LINES_PKG.InsertLines ;
209409 end loop;
209410 close line_cur;
209411 
209412 
209413 --
209414 -- insert headers into xla_ae_headers_gt table
209415 --
209416 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
209417 
209418 -- insert into errors table here.
209419 
209420 END LOOP;
209421 
209422 --
209423 -- 4865292
209424 --
209428 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
209425 -- Compare g_hdr_extract_count with event count in
209426 -- CreateHeadersAndLines.
209427 --
209429 
209430 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
209431    trace (p_msg     => '# rows extracted from header extract objects '
209432                     || ' (running total): '
209433                     || g_hdr_extract_count
209434          ,p_level   => C_LEVEL_STATEMENT
209435          ,p_module  => l_log_module);
209436 END IF;
209437 
209438 CLOSE header_cur;
209439 --
209440 
209441 --
209442 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
209443    trace
209444       (p_msg      => 'END of EventClass_299'
209445       ,p_level    => C_LEVEL_PROCEDURE
209446       ,p_module   => l_log_module);
209447 END IF;
209448 --
209449 RETURN l_result;
209450 EXCEPTION
209451 WHEN xla_exceptions_pkg.application_exception THEN
209452    
209453 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
209454 
209455    
209456 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
209457 
209458    RAISE;
209459 
209460 WHEN NO_DATA_FOUND THEN
209461 
209462 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
209463 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
209464 
209465 FOR header_record IN header_cur
209466 LOOP
209467     l_array_header_events(header_record.event_id) := header_record.event_id;
209468 END LOOP;
209469 
209470 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
209471 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
209472 
209473 fnd_file.put_line(fnd_file.LOG, '                    ');
209474 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
209475 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
209476 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
209477 
209478 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
209479 LOOP
209480 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
209481 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
209482         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
209483 	END IF;
209484 END LOOP;
209485 
209486 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
209487 fnd_file.put_line(fnd_file.LOG, '                    ');
209488 
209489 
209490 xla_exceptions_pkg.raise_message
209491       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_299');
209492 
209493 
209494 WHEN OTHERS THEN
209495    xla_exceptions_pkg.raise_message
209496       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_299');
209497 END EventClass_299;
209498 --
209499 
209500 ---------------------------------------
209501 --
209502 -- PRIVATE PROCEDURE
209503 --         insert_sources_300
209504 --
209505 ----------------------------------------
209506 --
209507 PROCEDURE insert_sources_300(
209508                                 p_target_ledger_id       IN NUMBER
209509                               , p_language               IN VARCHAR2
209510                               , p_sla_ledger_id          IN NUMBER
209511                               , p_pad_start_date         IN DATE
209512                               , p_pad_end_date           IN DATE
209513                          )
209514 IS
209515 
209516 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAY_APPLICATION_BURDEN_ALL';
209517 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAY_APPLICATION_BURDEN';
209518 p_apps_owner                   VARCHAR2(30);
209519 l_log_module                   VARCHAR2(240);
209520 BEGIN
209521 IF g_log_enabled THEN
209522       l_log_module := C_DEFAULT_MODULE||'.insert_sources_300';
209523 END IF;
209524 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
209525 
209526       trace
209527          (p_msg      => 'BEGIN of insert_sources_300'
209528          ,p_level    => C_LEVEL_PROCEDURE
209529          ,p_module   => l_log_module);
209530 
209531 END IF;
209532 
209533 -- select APPS owner
209534 SELECT oracle_username
209535   INTO p_apps_owner
209536   FROM fnd_oracle_userid
209537  WHERE read_only_flag = 'U'
209538 ;
209539 
209540 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
209541       trace
209542          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
209543                         ' - p_language = '||p_language||
209544                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
209545                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
209546                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
209547                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
209548          ,p_level    => C_LEVEL_STATEMENT
209549          ,p_module   => l_log_module);
209550 END IF;
209551 
209552  
209553 
209554 
209555 --
209556 INSERT INTO xla_diag_sources  --line2
209557 (
209558         event_id
209559       , ledger_id
209560       , sla_ledger_id
209561       , description_language
209562       , object_name
209563       , object_type_code
209564       , line_number
209565       , source_application_id
209566       , source_type_code
209567       , source_code
209568       , source_value
209569       , source_meaning
209570       , created_by
209571       , creation_date
209575       , program_update_date
209572       , last_update_date
209573       , last_updated_by
209574       , last_update_login
209576       , program_application_id
209577       , program_id
209578       , request_id
209579 )
209580 SELECT  event_id
209581       , p_target_ledger_id
209582       , p_sla_ledger_id
209583       , p_language
209584       , object_name
209585       , object_type_code
209586       , line_number
209587       , source_application_id
209588       , source_type_code
209589       , source_code
209590       , SUBSTR(source_value,1,1996)
209591       , SUBSTR(source_meaning ,1,200)
209592       , xla_environment_pkg.g_Usr_Id
209593       , TRUNC(SYSDATE)
209594       , TRUNC(SYSDATE)
209595       , xla_environment_pkg.g_Usr_Id
209596       , xla_environment_pkg.g_Login_Id
209597       , TRUNC(SYSDATE)
209598       , xla_environment_pkg.g_Prog_Appl_Id
209599       , xla_environment_pkg.g_Prog_Id
209600       , xla_environment_pkg.g_Req_Id
209601   FROM (
209602        SELECT xet.event_id                  event_id
209603             , l1.line_number                 line_number
209604             , CASE r
209605                WHEN 1 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209606                 WHEN 2 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209607                 WHEN 3 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209608                 WHEN 4 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209609                 WHEN 5 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209610                 WHEN 6 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209611                 WHEN 7 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209612                 WHEN 8 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209613                 WHEN 9 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209614                 WHEN 10 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209615                 WHEN 11 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209616                 WHEN 12 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209617                 WHEN 13 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209618                 WHEN 14 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209619                 WHEN 15 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209620                 WHEN 16 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209621                 WHEN 17 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
209622                 
209623                ELSE null
209624               END                           object_name
209625             , CASE r
209626                 WHEN 1 THEN 'LINE' 
209627                 WHEN 2 THEN 'LINE' 
209628                 WHEN 3 THEN 'LINE' 
209629                 WHEN 4 THEN 'LINE' 
209630                 WHEN 5 THEN 'LINE' 
209631                 WHEN 6 THEN 'LINE' 
209632                 WHEN 7 THEN 'LINE' 
209633                 WHEN 8 THEN 'LINE' 
209634                 WHEN 9 THEN 'LINE' 
209635                 WHEN 10 THEN 'LINE' 
209636                 WHEN 11 THEN 'LINE' 
209637                 WHEN 12 THEN 'LINE' 
209638                 WHEN 13 THEN 'LINE' 
209639                 WHEN 14 THEN 'LINE' 
209640                 WHEN 15 THEN 'LINE' 
209641                 WHEN 16 THEN 'LINE' 
209642                 WHEN 17 THEN 'LINE' 
209643                 
209644                 ELSE null
209645               END                           object_type_code
209646             , CASE r
209647                 WHEN 1 THEN '200' 
209648                 WHEN 2 THEN '200' 
209649                 WHEN 3 THEN '200' 
209650                 WHEN 4 THEN '200' 
209651                 WHEN 5 THEN '200' 
209652                 WHEN 6 THEN '200' 
209653                 WHEN 7 THEN '200' 
209654                 WHEN 8 THEN '200' 
209655                 WHEN 9 THEN '200' 
209656                 WHEN 10 THEN '200' 
209657                 WHEN 11 THEN '200' 
209658                 WHEN 12 THEN '200' 
209659                 WHEN 13 THEN '200' 
209660                 WHEN 14 THEN '200' 
209661                 WHEN 15 THEN '200' 
209662                 WHEN 16 THEN '200' 
209663                 WHEN 17 THEN '200' 
209664                 
209665                 ELSE null
209666               END                           source_application_id
209667             , 'S'             source_type_code
209668             , CASE r
209669                 WHEN 1 THEN 'DISTRIBUTION_LINK_TYPE' 
209670                 WHEN 2 THEN 'AID_INVOICE_DIST_ID' 
209671                 WHEN 3 THEN 'AI_INVOICE_CURRENCY_CODE' 
209672                 WHEN 4 THEN 'AID_AMOUNT' 
209673                 WHEN 5 THEN 'ACCT_REVERSAL_INDICATOR' 
209674                 WHEN 6 THEN 'AID_EXPENDITURE_TYPE' 
209675                 WHEN 7 THEN 'ENC_UPG_CR_ACCT_CLASS' 
209676                 WHEN 8 THEN 'ENC_UPG_CR_ACCOUNT' 
209677                 WHEN 9 THEN 'AID_BASE_AMT_NO_ROUND' 
209678                 WHEN 10 THEN 'ENC_UPG_DR_ACCT_CLASS' 
209679                 WHEN 11 THEN 'ENC_UPG_DR_ACCOUNT' 
209680                 WHEN 12 THEN 'USE_ENC_UPG_ATTRIB_FLAG' 
209681                 WHEN 13 THEN 'ACCT_REVERSAL_FIRST_DIST_ID' 
209682                 WHEN 14 THEN 'AP_SECOND_DIST_ID' 
209683                 WHEN 15 THEN 'ACCT_REV_DISTRIBUTION_TYPE' 
209684                 WHEN 16 THEN 'ENC_UPG_CR_ENC_TYPE_ID' 
209685                 WHEN 17 THEN 'ENC_UPG_DR_ENC_TYPE_ID' 
209686                 
209687                 ELSE null
209688               END                           source_code
209689             , CASE r
209690                 WHEN 1 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
209691                 WHEN 2 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
209692                 WHEN 3 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
209693                 WHEN 4 THEN TO_CHAR(l1.AID_AMOUNT)
209694                 WHEN 5 THEN TO_CHAR(l1.ACCT_REVERSAL_INDICATOR)
209695                 WHEN 6 THEN TO_CHAR(l1.AID_EXPENDITURE_TYPE)
209696                 WHEN 7 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
209697                 WHEN 8 THEN TO_CHAR(l1.ENC_UPG_CR_ACCOUNT)
209698                 WHEN 9 THEN TO_CHAR(l1.AID_BASE_AMT_NO_ROUND)
209702                 WHEN 13 THEN TO_CHAR(l1.ACCT_REVERSAL_FIRST_DIST_ID)
209699                 WHEN 10 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
209700                 WHEN 11 THEN TO_CHAR(l1.ENC_UPG_DR_ACCOUNT)
209701                 WHEN 12 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
209703                 WHEN 14 THEN TO_CHAR(l1.AP_SECOND_DIST_ID)
209704                 WHEN 15 THEN TO_CHAR(l1.ACCT_REV_DISTRIBUTION_TYPE)
209705                 WHEN 16 THEN TO_CHAR(l1.ENC_UPG_CR_ENC_TYPE_ID)
209706                 WHEN 17 THEN TO_CHAR(l1.ENC_UPG_DR_ENC_TYPE_ID)
209707                 
209708                 ELSE null
209709               END                           source_value
209710             , null              source_meaning
209711          FROM  xla_events_gt     xet  
209712         , PA_XLA_BC_PKT_AP_DETAIL_V  l1
209713             , (select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
209714         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
209715           AND xet.event_class_code = C_EVENT_CLASS_CODE
209716             AND l1.event_id          = xet.event_id
209717 
209718 )
209719 ;
209720 --
209721 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
209722 
209723       trace
209724          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
209725          ,p_level    => C_LEVEL_STATEMENT
209726          ,p_module   => l_log_module);
209727 
209728 END IF;
209729 
209730 
209731 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
209732       trace
209733          (p_msg      => 'END of insert_sources_300'
209734          ,p_level    => C_LEVEL_PROCEDURE
209735          ,p_module   => l_log_module);
209736 END IF;
209737 EXCEPTION
209738   WHEN xla_exceptions_pkg.application_exception THEN
209739       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
209740             trace
209741                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
209742                ,p_level    => C_LEVEL_EXCEPTION
209743                ,p_module   => l_log_module);
209744       END IF;
209745       RAISE;
209746   WHEN OTHERS THEN
209747       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
209748             trace
209749                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
209750                ,p_level    => C_LEVEL_EXCEPTION
209751                ,p_module   => l_log_module);
209752        END IF;
209753        xla_exceptions_pkg.raise_message
209754            (p_location => 'XLA_00200_AAD_S_000006_PKG.insert_sources_300');
209755 END insert_sources_300;
209756 --
209757 
209758 ---------------------------------------
209759 --
209760 -- PRIVATE FUNCTION
209761 --         EventClass_300
209762 --
209763 ----------------------------------------
209764 --
209765 FUNCTION EventClass_300
209766        (p_application_id         IN NUMBER
209767        ,p_base_ledger_id         IN NUMBER
209768        ,p_target_ledger_id       IN NUMBER
209769        ,p_language               IN VARCHAR2
209770        ,p_currency_code          IN VARCHAR2
209771        ,p_sla_ledger_id          IN NUMBER
209772        ,p_pad_start_date         IN DATE
209773        ,p_pad_end_date           IN DATE
209774        ,p_primary_ledger_id      IN NUMBER)
209775 RETURN BOOLEAN IS
209776 --
209777 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAY_APPLICATION_BURDEN_ALL';
209778 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAY_APPLICATION_BURDEN';
209779 
209780 l_calculate_acctd_flag   VARCHAR2(1) :='N';
209781 l_calculate_g_l_flag     VARCHAR2(1) :='N';
209782 --
209783 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
209784 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
209785 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
209786 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
209787 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
209788 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
209789 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
209790 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
209791 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
209792 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
209793 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
209794 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
209795 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
209796 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
209797 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
209798 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
209799 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
209800 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
209801 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
209802 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
209803 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
209804 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
209805 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
209806 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
209807 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
209808 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
209809 
209810 l_event_id                             NUMBER;
209811 l_previous_event_id                    NUMBER;
209812 l_first_event_id                       NUMBER;
209813 l_last_event_id                        NUMBER;
209814 
209815 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
209819 l_result                    BOOLEAN := TRUE;
209816 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
209817 --
209818 --
209820 l_rows                      NUMBER  := 1000;
209821 l_event_type_name           VARCHAR2(80) := 'All';
209822 l_event_class_name          VARCHAR2(80) := 'Burden for Prepayment Applications';
209823 l_description               VARCHAR2(4000);
209824 l_transaction_reversal      NUMBER;
209825 l_ae_header_id              NUMBER;
209826 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
209827 l_log_module                VARCHAR2(240);
209828 --
209829 l_acct_reversal_source      VARCHAR2(30);
209830 l_trx_reversal_source       VARCHAR2(30);
209831 
209832 l_continue_with_lines       BOOLEAN := TRUE;
209833 --
209834 l_acc_rev_gl_date_source    DATE;                      -- 4262811
209835 --
209836 type t_array_event_id is table of number index by binary_integer;
209837 
209838 l_rec_array_event                    t_rec_array_event;
209839 l_null_rec_array_event               t_rec_array_event;
209840 l_array_ae_header_id                 xla_number_array_type;
209841 l_actual_flag                        VARCHAR2(1) := NULL;
209842 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
209843 l_balance_type_code                  VARCHAR2(1) :=NULL;
209844 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
209845 
209846 --
209847 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
209848 --
209849 
209850 
209851 TYPE t_array_source_43 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
209852 TYPE t_array_source_52 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
209853 TYPE t_array_source_55 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
209854 TYPE t_array_source_61 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
209855 TYPE t_array_source_172 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
209856 TYPE t_array_source_173 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_EXPENDITURE_TYPE%TYPE INDEX BY BINARY_INTEGER;
209857 TYPE t_array_source_174 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
209858 TYPE t_array_source_175 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
209859 TYPE t_array_source_176 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_BASE_AMT_NO_ROUND%TYPE INDEX BY BINARY_INTEGER;
209860 TYPE t_array_source_177 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
209861 TYPE t_array_source_178 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
209862 TYPE t_array_source_179 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
209863 TYPE t_array_source_180 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
209864 TYPE t_array_source_181 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
209865 TYPE t_array_source_182 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REV_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
209866 TYPE t_array_source_183 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
209867 TYPE t_array_source_184 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
209868 
209869 
209870 l_array_source_43      t_array_source_43;
209871 l_array_source_52      t_array_source_52;
209872 l_array_source_55      t_array_source_55;
209873 l_array_source_61      t_array_source_61;
209874 l_array_source_172      t_array_source_172;
209875 l_array_source_173      t_array_source_173;
209876 l_array_source_174      t_array_source_174;
209877 l_array_source_175      t_array_source_175;
209878 l_array_source_176      t_array_source_176;
209879 l_array_source_177      t_array_source_177;
209880 l_array_source_178      t_array_source_178;
209881 l_array_source_179      t_array_source_179;
209882 l_array_source_180      t_array_source_180;
209883 l_array_source_181      t_array_source_181;
209884 l_array_source_182      t_array_source_182;
209885 l_array_source_183      t_array_source_183;
209886 l_array_source_184      t_array_source_184;
209887 
209888 --
209889 CURSOR header_cur
209890 IS
209891 SELECT /*+ leading(xet) cardinality(xet,1) */
209892 -- Event Class Code: PREPAY_APPLICATION_BURDEN
209893     xet.entity_id
209894    ,xet.legal_entity_id
209895    ,xet.entity_code
209896    ,xet.transaction_number
209897    ,xet.event_id
209898    ,xet.event_class_code
209899    ,xet.event_type_code
209900    ,xet.event_number
209901    ,xet.event_date
209902    ,xet.transaction_date
209903    ,xet.reference_num_1
209904    ,xet.reference_num_2
209905    ,xet.reference_num_3
209906    ,xet.reference_num_4
209907    ,xet.reference_char_1
209908    ,xet.reference_char_2
209909    ,xet.reference_char_3
209910    ,xet.reference_char_4
209911    ,xet.reference_date_1
209912    ,xet.reference_date_2
209913    ,xet.reference_date_3
209914    ,xet.reference_date_4
209915    ,xet.event_created_by
209916    ,xet.budgetary_control_flag  
209917   FROM xla_events_gt     xet  
209918  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
209919    and xet.event_class_code = C_EVENT_CLASS_CODE
209920    and xet.event_status_code <> 'N'  
209921  ORDER BY event_id
209922 ;
209923 
209924 
209925 --
209926 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
209927 IS
209928 SELECT  /*+ leading(xet) cardinality(xet,1) */
209929 -- Event Class Code: PREPAY_APPLICATION_BURDEN
209930     xet.entity_id
209931    ,xet.legal_entity_id
209932    ,xet.entity_code
209933    ,xet.transaction_number
209934    ,xet.event_id
209935    ,xet.event_class_code
209936    ,xet.event_type_code
209940    ,xet.reference_num_1
209937    ,xet.event_number
209938    ,xet.event_date
209939    ,xet.transaction_date
209941    ,xet.reference_num_2
209942    ,xet.reference_num_3
209943    ,xet.reference_num_4
209944    ,xet.reference_char_1
209945    ,xet.reference_char_2
209946    ,xet.reference_char_3
209947    ,xet.reference_char_4
209948    ,xet.reference_date_1
209949    ,xet.reference_date_2
209950    ,xet.reference_date_3
209951    ,xet.reference_date_4
209952    ,xet.event_created_by
209953    ,xet.budgetary_control_flag
209954  , l1.LINE_NUMBER  
209955   , l1.DISTRIBUTION_LINK_TYPE    source_43
209956   , l1.AID_INVOICE_DIST_ID    source_52
209957   , l1.AI_INVOICE_CURRENCY_CODE    source_55
209958   , l1.AID_AMOUNT    source_61
209959   , l1.ACCT_REVERSAL_INDICATOR    source_172
209960   , l1.AID_EXPENDITURE_TYPE    source_173
209961   , l1.ENC_UPG_CR_ACCT_CLASS    source_174
209962   , l1.ENC_UPG_CR_ACCOUNT    source_175
209963   , l1.AID_BASE_AMT_NO_ROUND    source_176
209964   , l1.ENC_UPG_DR_ACCT_CLASS    source_177
209965   , l1.ENC_UPG_DR_ACCOUNT    source_178
209966   , l1.USE_ENC_UPG_ATTRIB_FLAG    source_179
209967   , l1.ACCT_REVERSAL_FIRST_DIST_ID    source_180
209968   , l1.AP_SECOND_DIST_ID    source_181
209969   , l1.ACCT_REV_DISTRIBUTION_TYPE    source_182
209970   , l1.ENC_UPG_CR_ENC_TYPE_ID    source_183
209971   , l1.ENC_UPG_DR_ENC_TYPE_ID    source_184
209972   FROM xla_events_gt     xet 
209973   , PA_XLA_BC_PKT_AP_DETAIL_V  l1
209974  WHERE xet.event_id between x_first_event_id and x_last_event_id
209975    and xet.event_date between p_pad_start_date and p_pad_end_date
209976    and xet.event_class_code = C_EVENT_CLASS_CODE
209977    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
209978 ;
209979 
209980 --
209981 BEGIN
209982 IF g_log_enabled THEN
209983    l_log_module := C_DEFAULT_MODULE||'.EventClass_300';
209984 END IF;
209985 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
209986    trace
209987       (p_msg      => 'BEGIN of EventClass_300'
209988       ,p_level    => C_LEVEL_PROCEDURE
209989       ,p_module   => l_log_module);
209990 END IF;
209991 
209992 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
209993    trace
209994       (p_msg      => 'p_application_id = '||p_application_id||
209995                      ' - p_base_ledger_id = '||p_base_ledger_id||
209996                      ' - p_target_ledger_id  = '||p_target_ledger_id||
209997                      ' - p_language = '||p_language||
209998                      ' - p_currency_code = '||p_currency_code||
209999                      ' - p_sla_ledger_id = '||p_sla_ledger_id
210000       ,p_level    => C_LEVEL_STATEMENT
210001       ,p_module   => l_log_module);
210002 END IF;
210003 --
210004 -- initialze arrays
210005 --
210006 g_array_event.DELETE;
210007 l_rec_array_event := l_null_rec_array_event;
210008 --
210009 --------------------------------------
210010 -- 4262811 Initialze MPA Line Number
210011 --------------------------------------
210012 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
210013 
210014 --
210015 
210016 --
210017 OPEN header_cur;
210018 --
210019 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
210020    trace
210021    (p_msg      => 'SQL - FETCH header_cur'
210022    ,p_level    => C_LEVEL_STATEMENT
210023    ,p_module   => l_log_module);
210024 END IF;
210025 --
210026 LOOP
210027 FETCH header_cur BULK COLLECT INTO
210028         l_array_entity_id
210029       , l_array_legal_entity_id
210030       , l_array_entity_code
210031       , l_array_transaction_num
210032       , l_array_event_id
210033       , l_array_class_code
210034       , l_array_event_type
210035       , l_array_event_number
210036       , l_array_event_date
210037       , l_array_transaction_date
210038       , l_array_reference_num_1
210039       , l_array_reference_num_2
210040       , l_array_reference_num_3
210041       , l_array_reference_num_4
210042       , l_array_reference_char_1
210043       , l_array_reference_char_2
210044       , l_array_reference_char_3
210045       , l_array_reference_char_4
210046       , l_array_reference_date_1
210047       , l_array_reference_date_2
210048       , l_array_reference_date_3
210049       , l_array_reference_date_4
210050       , l_array_event_created_by
210051       , l_array_budgetary_control_flag 
210052       LIMIT l_rows;
210053 --
210054 IF (C_LEVEL_EVENT >= g_log_level) THEN
210055    trace
210056    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
210057    ,p_level    => C_LEVEL_EVENT
210058    ,p_module   => l_log_module);
210062 
210059 END IF;
210060 --
210061 EXIT WHEN l_array_entity_id.COUNT = 0;
210063 -- initialize arrays
210064 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
210065 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
210066 
210067 --
210068 -- Bug 4458708
210069 --
210070 XLA_AE_LINES_PKG.g_LineNumber := 0;
210071 
210072 
210073 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
210074 g_last_hdr_idx := l_array_event_id.LAST;
210075 --
210076 -- loop for the headers. Each iteration is for each header extract row
210077 -- fetched in header cursor
210078 --
210079 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
210080 
210081 --
210082 -- set event info as cache for other routines to refer event attributes
210083 --
210084 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
210085    (p_application_id           => p_application_id
210086    ,p_primary_ledger_id        => p_primary_ledger_id
210087    ,p_base_ledger_id           => p_base_ledger_id
210088    ,p_target_ledger_id         => p_target_ledger_id
210089    ,p_entity_id                => l_array_entity_id(hdr_idx)
210090    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
210091    ,p_entity_code              => l_array_entity_code(hdr_idx)
210092    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
210093    ,p_event_id                 => l_array_event_id(hdr_idx)
210094    ,p_event_class_code         => l_array_class_code(hdr_idx)
210095    ,p_event_type_code          => l_array_event_type(hdr_idx)
210096    ,p_event_number             => l_array_event_number(hdr_idx)
210097    ,p_event_date               => l_array_event_date(hdr_idx)
210098    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
210099    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
210100    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
210101    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
210102    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
210103    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
210104    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
210105    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
210106    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
210107    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
210108    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
210109    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
210110    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
210111    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
210112    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
210113 
210114 --
210115 -- set the status of entry to C_VALID (0)
210116 --
210117 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
210118 
210119 --
210120 -- initialize a row for ae header
210121 --
210122 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
210123 
210124 l_event_id := l_array_event_id(hdr_idx);
210125 
210126 --
210127 -- storing the hdr_idx for event. May be used by line cursor.
210128 --
210129 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
210130 
210131 --
210132 -- store sources from header extract. This can be improved to
210133 -- store only those sources from header extract that may be used in lines
210134 --
210135 
210136 
210137 --
210138 -- initilaize the status of ae headers for diffrent balance types
210139 -- the status is initialised to C_NOT_CREATED (2)
210140 --
210141 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
210142 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
210143 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
210144 
210145 --
210146 -- call api to validate and store accounting attributes for header
210147 --
210148 
210149 ------------------------------------------------------------
210150 -- Accrual Reversal : to get date for Standard Source (NONE)
210151 ------------------------------------------------------------
210152 l_acc_rev_gl_date_source := NULL;
210153 
210154      l_rec_acct_attrs.array_acct_attr_code(1)   := 'GL_DATE';
210155       l_rec_acct_attrs.array_date_value(1) := 
210156 xla_ae_sources_pkg.GetSystemSourceDate(
210157    p_source_code           => 'XLA_EVENT_DATE'
210158  , p_source_type_code      => 'Y'
210159  , p_source_application_id =>  602
210160 );
210161 
210162 
210163 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
210164 
210165 XLA_AE_HEADER_PKG.SetJeCategoryName;
210166 
210167 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
210168 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
210169 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
210170 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
210171 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
210172 
210173 
210174 -- No header level analytical criteria
210175 
210176 --
210177 --accounting attribute enhancement, bug 3612931
210178 --
210179 l_trx_reversal_source := SUBSTR(NULL, 1,30);
210180 
210181 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
210185       (p_appli_s_name            => 'XLA'
210182    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
210183 
210184    xla_accounting_err_pkg.build_message
210186       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
210187       ,p_token_1                 => 'ACCT_ATTR_NAME'
210188       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
210189       ,p_token_2                 => 'PRODUCT_NAME'
210190       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
210191       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
210192       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
210193       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
210194 
210195 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
210196    --
210197    -- following sets the accounting attributes needed to reverse
210198    -- accounting for a distributeion
210199    --
210200    xla_ae_lines_pkg.SetTrxReversalAttrs
210201       (p_event_id              => l_event_id
210202       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
210203       ,p_trx_reversal_source   => l_trx_reversal_source);
210204 
210205 END IF;
210206 
210207 
210208 ----------------------------------------------------------------
210209 -- 4262811 -  update the header statuses to invalid in need be
210210 ----------------------------------------------------------------
210211 --
210212 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
210213 
210214 
210215   -----------------------------------------------
210216   -- No accrual reversal for the event class/type
210217   -----------------------------------------------
210218 ----------------------------------------------------------------
210219 
210220 --
210221 -- this ends the header loop iteration for one bulk fetch
210222 --
210223 END LOOP;
210224 
210225 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
210226 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
210227 
210228 --
210229 -- insert dummy rows into lines gt table that were created due to
210230 -- transaction reversals
210231 --
210232 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
210233    l_result := XLA_AE_LINES_PKG.InsertLines;
210234 END IF;
210235 
210236 --
210237 -- reset the temp_line_num for each set of events fetched from header
210238 -- cursor rather than doing it for each new event in line cursor
210239 -- Bug 3939231
210240 --
210241 xla_ae_lines_pkg.g_temp_line_num := 0;
210242 
210243 
210244 
210245 --
210246 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
210247 --
210248 --
210249 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
210250 
210251       trace
210252          (p_msg      => 'SQL - FETCH line_cur'
210253          ,p_level    => C_LEVEL_STATEMENT
210254          ,p_module   => l_log_module);
210255 
210256 END IF;
210257 --
210258 --
210259 LOOP
210260   --
210261   FETCH line_cur BULK COLLECT INTO
210262         l_array_entity_id
210263       , l_array_legal_entity_id
210264       , l_array_entity_code
210265       , l_array_transaction_num
210266       , l_array_event_id
210267       , l_array_class_code
210268       , l_array_event_type
210269       , l_array_event_number
210270       , l_array_event_date
210271       , l_array_transaction_date
210272       , l_array_reference_num_1
210273       , l_array_reference_num_2
210274       , l_array_reference_num_3
210275       , l_array_reference_num_4
210276       , l_array_reference_char_1
210277       , l_array_reference_char_2
210278       , l_array_reference_char_3
210279       , l_array_reference_char_4
210280       , l_array_reference_date_1
210281       , l_array_reference_date_2
210282       , l_array_reference_date_3
210283       , l_array_reference_date_4
210284       , l_array_event_created_by
210285       , l_array_budgetary_control_flag
210286       , l_array_extract_line_num 
210287       , l_array_source_43
210288       , l_array_source_52
210289       , l_array_source_55
210290       , l_array_source_61
210291       , l_array_source_172
210292       , l_array_source_173
210293       , l_array_source_174
210294       , l_array_source_175
210295       , l_array_source_176
210296       , l_array_source_177
210297       , l_array_source_178
210298       , l_array_source_179
210299       , l_array_source_180
210300       , l_array_source_181
210301       , l_array_source_182
210302       , l_array_source_183
210303       , l_array_source_184
210304       LIMIT l_rows;
210305 
210306   --
210307   IF (C_LEVEL_EVENT >= g_log_level) THEN
210308             trace
210309                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
210310                ,p_level    => C_LEVEL_EVENT
210311                ,p_module   => l_log_module);
210312   END IF;
210313   --
210314   EXIT WHEN l_array_entity_id.count = 0;
210315 
210316   XLA_AE_LINES_PKG.g_rec_lines := null;
210317 
210318 --
210319 -- Bug 4458708
210320 --
210321 XLA_AE_LINES_PKG.g_LineNumber := 0;
210322 --
210323 --
210324 
210325 FOR Idx IN 1..l_array_event_id.count LOOP
210326    --
210327    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
210328    --
210329    l_event_id := l_array_event_id(idx);  -- 5648433
210330 
210331    --
210335    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
210332    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
210333    --
210334 
210336              (g_array_event(l_event_id).array_value_num('header_index'))
210337          ,'N'
210338          ) <> 'Y'
210339    THEN
210340       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
210341          trace
210342             (p_msg      => 'Trancaction revesal option is not Y '
210343             ,p_level    => C_LEVEL_STATEMENT
210344             ,p_module   => l_log_module);
210345       END IF;
210346 
210347 --
210348 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
210349 --
210350 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
210351 --
210352 -- set event info as cache for other routines to refer event attributes
210353 --
210354 
210355 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
210356    l_previous_event_id := l_event_id;
210357 
210358    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
210359       (p_application_id           => p_application_id
210360       ,p_primary_ledger_id        => p_primary_ledger_id
210361       ,p_base_ledger_id           => p_base_ledger_id
210362       ,p_target_ledger_id         => p_target_ledger_id
210363       ,p_entity_id                => l_array_entity_id(Idx)
210364       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
210365       ,p_entity_code              => l_array_entity_code(Idx)
210366       ,p_transaction_num          => l_array_transaction_num(Idx)
210367       ,p_event_id                 => l_array_event_id(Idx)
210368       ,p_event_class_code         => l_array_class_code(Idx)
210369       ,p_event_type_code          => l_array_event_type(Idx)
210370       ,p_event_number             => l_array_event_number(Idx)
210371       ,p_event_date               => l_array_event_date(Idx)
210372       ,p_transaction_date         => l_array_transaction_date(Idx)
210373       ,p_reference_num_1          => l_array_reference_num_1(Idx)
210374       ,p_reference_num_2          => l_array_reference_num_2(Idx)
210375       ,p_reference_num_3          => l_array_reference_num_3(Idx)
210376       ,p_reference_num_4          => l_array_reference_num_4(Idx)
210377       ,p_reference_char_1         => l_array_reference_char_1(Idx)
210378       ,p_reference_char_2         => l_array_reference_char_2(Idx)
210379       ,p_reference_char_3         => l_array_reference_char_3(Idx)
210380       ,p_reference_char_4         => l_array_reference_char_4(Idx)
210381       ,p_reference_date_1         => l_array_reference_date_1(Idx)
210382       ,p_reference_date_2         => l_array_reference_date_2(Idx)
210383       ,p_reference_date_3         => l_array_reference_date_3(Idx)
210384       ,p_reference_date_4         => l_array_reference_date_4(Idx)
210385       ,p_event_created_by         => l_array_event_created_by(Idx)
210386       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
210387        --
210388 END IF;
210389 
210390 
210391 
210392 --
210393 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
210394 
210395 l_acct_reversal_source := SUBSTR(l_array_source_172(Idx), 1,30);
210396 
210397 IF l_continue_with_lines THEN
210398    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
210399       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
210400 
210401       xla_accounting_err_pkg.build_message
210402          (p_appli_s_name            => 'XLA'
210403          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
210404          ,p_token_1                 => 'LINE_NUMBER'
210405          ,p_value_1                 => l_array_extract_line_num(Idx)
210406          ,p_token_2                 => 'PRODUCT_NAME'
210407          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
210408          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
210409          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
210410          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
210411 
210412    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
210413       --
210414       -- following sets the accounting attributes needed to reverse
210415       -- accounting for a distributeion
210416       --
210417 
210418       --
210419       -- 5217187
210420       --
210421       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
210422       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
210423                                        g_array_event(l_event_id).array_value_num('header_index'));
210424       --
210425       --
210426 
210427       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
210428       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_172(Idx);
210429       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
210430       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_52(Idx);
210431       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_IDENTIFIER_2';
210432       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_173(Idx);
210433       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'DISTRIBUTION_TYPE';
210434       l_rec_rev_acct_attrs.array_char_value(5)  := l_array_source_43(Idx);
210435       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ACCT_CLASS';
210436       l_rec_rev_acct_attrs.array_char_value(6)  := l_array_source_174(Idx);
210437       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_CCID';
210438       l_rec_rev_acct_attrs.array_num_value(7)  := l_array_source_175(Idx);
210439       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_AMT';
210440       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_61(Idx);
210441       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_CURR';
210445       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ACCT_CLASS';
210442       l_rec_rev_acct_attrs.array_char_value(9)  := l_array_source_55(Idx);
210443       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_LEDGER_AMT';
210444       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_176(Idx);
210446       l_rec_rev_acct_attrs.array_char_value(11)  := l_array_source_177(Idx);
210447       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
210448       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_178(Idx);
210449       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
210450       l_rec_rev_acct_attrs.array_num_value(13)  := l_array_source_61(Idx);
210451       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
210452       l_rec_rev_acct_attrs.array_char_value(14)  := l_array_source_55(Idx);
210453       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
210454       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_176(Idx);
210455       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
210456       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_179(Idx);
210457       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
210458       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_180(Idx);
210459       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_ID2';
210460       l_rec_rev_acct_attrs.array_char_value(18)  := l_array_source_181(Idx);
210461       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_TYPE';
210462       l_rec_rev_acct_attrs.array_char_value(19)  := l_array_source_182(Idx);
210463       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
210464       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_183(Idx);
210465       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
210466       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_184(Idx);
210467 
210468 
210469       xla_ae_lines_pkg.SetAcctReversalAttrs
210470          (p_event_id             => l_event_id
210471          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
210472          ,p_calculate_acctd_flag => l_calculate_acctd_flag
210473          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
210474    END IF;
210475 
210476    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
210477        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
210478       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
210479       -- or secondary ledger that has different currency with primary
210480       -- or alc that is calculated by sla
210481       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
210482             (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'))
210483 
210484 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
210485 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
210486           AND (l_actual_flag = 'A')) THEN
210487         XLA_AE_LINES_PKG.CreateGainOrLossLines(
210488           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
210489          ,p_application_id   => p_application_id
210490          ,p_amb_context_code => 'DEFAULT'
210491          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
210492          ,p_event_class_code => C_EVENT_CLASS_CODE
210493          ,p_event_type_code  => C_EVENT_TYPE_CODE
210494          
210495          ,p_gain_ccid        => -1
210496          ,p_loss_ccid        => -1
210497 
210498          ,p_actual_flag      => l_actual_flag
210499          ,p_enc_flag         => null
210500          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
210501          ,p_enc_g_l_ref      => null
210502          );
210503       END IF;
210504    END IF;
210505 END IF;
210506 
210507    ELSE
210508       --
210509       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
210510       --
210511       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
210512          trace
210513             (p_msg      => 'Trancaction revesal option is Y'
210514             ,p_level    => C_LEVEL_STATEMENT
210515             ,p_module   => l_log_module);
210516       END IF;
210517    END IF;
210518 
210519 END LOOP;
210520 l_result := XLA_AE_LINES_PKG.InsertLines ;
210521 end loop;
210522 close line_cur;
210523 
210524 
210525 --
210526 -- insert headers into xla_ae_headers_gt table
210527 --
210528 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
210529 
210530 -- insert into errors table here.
210531 
210532 END LOOP;
210533 
210534 --
210535 -- 4865292
210536 --
210537 -- Compare g_hdr_extract_count with event count in
210538 -- CreateHeadersAndLines.
210539 --
210540 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
210541 
210542 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
210543    trace (p_msg     => '# rows extracted from header extract objects '
210544                     || ' (running total): '
210545                     || g_hdr_extract_count
210546          ,p_level   => C_LEVEL_STATEMENT
210547          ,p_module  => l_log_module);
210548 END IF;
210549 
210550 CLOSE header_cur;
210551 --
210552 
210553 --
210554 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
210555    trace
210556       (p_msg      => 'END of EventClass_300'
210557       ,p_level    => C_LEVEL_PROCEDURE
210558       ,p_module   => l_log_module);
210559 END IF;
210560 --
210561 RETURN l_result;
210562 EXCEPTION
210563 WHEN xla_exceptions_pkg.application_exception THEN
210564    
210565 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
210566 
210567    
210571 
210568 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
210569 
210570    RAISE;
210572 WHEN NO_DATA_FOUND THEN
210573 
210574 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
210575 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
210576 
210577 FOR header_record IN header_cur
210578 LOOP
210579     l_array_header_events(header_record.event_id) := header_record.event_id;
210580 END LOOP;
210581 
210582 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
210583 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
210584 
210585 fnd_file.put_line(fnd_file.LOG, '                    ');
210586 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
210587 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
210588 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
210589 
210590 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
210591 LOOP
210592 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
210593 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
210594         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
210595 	END IF;
210596 END LOOP;
210597 
210598 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
210599 fnd_file.put_line(fnd_file.LOG, '                    ');
210600 
210601 
210602 xla_exceptions_pkg.raise_message
210603       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_300');
210604 
210605 
210606 WHEN OTHERS THEN
210607    xla_exceptions_pkg.raise_message
210608       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_300');
210609 END EventClass_300;
210610 --
210611 
210612 ---------------------------------------
210613 --
210614 -- PRIVATE PROCEDURE
210615 --         insert_sources_301
210616 --
210617 ----------------------------------------
210618 --
210619 PROCEDURE insert_sources_301(
210620                                 p_target_ledger_id       IN NUMBER
210621                               , p_language               IN VARCHAR2
210622                               , p_sla_ledger_id          IN NUMBER
210623                               , p_pad_start_date         IN DATE
210624                               , p_pad_end_date           IN DATE
210625                          )
210626 IS
210627 
210628 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'RECONCILED PAYMENTS_ALL';
210629 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'RECONCILED PAYMENTS';
210630 p_apps_owner                   VARCHAR2(30);
210631 l_log_module                   VARCHAR2(240);
210632 BEGIN
210633 IF g_log_enabled THEN
210634       l_log_module := C_DEFAULT_MODULE||'.insert_sources_301';
210635 END IF;
210636 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
210637 
210638       trace
210639          (p_msg      => 'BEGIN of insert_sources_301'
210640          ,p_level    => C_LEVEL_PROCEDURE
210641          ,p_module   => l_log_module);
210642 
210643 END IF;
210644 
210645 -- select APPS owner
210646 SELECT oracle_username
210647   INTO p_apps_owner
210648   FROM fnd_oracle_userid
210649  WHERE read_only_flag = 'U'
210650 ;
210651 
210652 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
210653       trace
210654          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
210655                         ' - p_language = '||p_language||
210656                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
210657                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
210658                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
210659                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
210660          ,p_level    => C_LEVEL_STATEMENT
210661          ,p_module   => l_log_module);
210662 END IF;
210663 
210664 
210665 --
210666 INSERT INTO xla_diag_sources --hdr2
210667 (
210668         event_id
210669       , ledger_id
210670       , sla_ledger_id
210671       , description_language
210672       , object_name
210673       , object_type_code
210674       , line_number
210675       , source_application_id
210676       , source_type_code
210677       , source_code
210678       , source_value
210679       , source_meaning
210680       , created_by
210681       , creation_date
210682       , last_update_date
210683       , last_updated_by
210684       , last_update_login
210685       , program_update_date
210686       , program_application_id
210687       , program_id
210688       , request_id
210689 )
210690 SELECT
210691         event_id
210692       , p_target_ledger_id
210693       , p_sla_ledger_id
210694       , p_language
210695       , object_name
210696       , object_type_code
210697       , line_number
210698       , source_application_id
210699       , source_type_code
210700       , source_code
210701       , SUBSTR(source_value ,1,1996)
210702       , SUBSTR(source_meaning ,1,200)
210703       , xla_environment_pkg.g_Usr_Id
210704       , TRUNC(SYSDATE)
210705       , TRUNC(SYSDATE)
210706       , xla_environment_pkg.g_Usr_Id
210707       , xla_environment_pkg.g_Login_Id
210708       , TRUNC(SYSDATE)
210709       , xla_environment_pkg.g_Prog_Appl_Id
210710       , xla_environment_pkg.g_Prog_Id
210711       , xla_environment_pkg.g_Req_Id
210712   FROM (
210713        SELECT xet.event_id                  event_id
210714             , 0                          line_number
210715             , CASE r
210716                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210720                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
210717                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
210718                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210719                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210721                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
210722                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
210723                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
210724                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210725                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
210726                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210727                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
210728                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
210729                 WHEN 14 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
210730                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
210731                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210732                 WHEN 17 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
210733                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210734                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210735                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210736                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210737                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210738                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210739                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210740                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210741                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210742                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210743                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210744                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210745                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210746                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210747                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210748                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
210749                 
210750                ELSE null
210751               END                           object_name
210752             , CASE r
210753                 WHEN 1 THEN 'HEADER' 
210754                 WHEN 2 THEN 'HEADER' 
210755                 WHEN 3 THEN 'HEADER' 
210756                 WHEN 4 THEN 'HEADER' 
210757                 WHEN 5 THEN 'HEADER' 
210758                 WHEN 6 THEN 'HEADER' 
210759                 WHEN 7 THEN 'HEADER' 
210760                 WHEN 8 THEN 'HEADER' 
210761                 WHEN 9 THEN 'HEADER' 
210762                 WHEN 10 THEN 'HEADER' 
210763                 WHEN 11 THEN 'HEADER' 
210764                 WHEN 12 THEN 'HEADER' 
210765                 WHEN 13 THEN 'HEADER' 
210766                 WHEN 14 THEN 'HEADER' 
210767                 WHEN 15 THEN 'HEADER' 
210768                 WHEN 16 THEN 'HEADER' 
210769                 WHEN 17 THEN 'HEADER' 
210770                 WHEN 18 THEN 'HEADER' 
210771                 WHEN 19 THEN 'HEADER' 
210772                 WHEN 20 THEN 'HEADER' 
210773                 WHEN 21 THEN 'HEADER' 
210774                 WHEN 22 THEN 'HEADER' 
210775                 WHEN 23 THEN 'HEADER' 
210776                 WHEN 24 THEN 'HEADER' 
210777                 WHEN 25 THEN 'HEADER' 
210778                 WHEN 26 THEN 'HEADER' 
210779                 WHEN 27 THEN 'HEADER' 
210780                 WHEN 28 THEN 'HEADER' 
210781                 WHEN 29 THEN 'HEADER' 
210782                 WHEN 30 THEN 'HEADER' 
210783                 WHEN 31 THEN 'HEADER' 
210784                 WHEN 32 THEN 'HEADER' 
210785                 WHEN 33 THEN 'HEADER' 
210786                 
210787                 ELSE null
210788               END                           object_type_code
210789             , CASE r
210790                 WHEN 1 THEN '200' 
210791                 WHEN 2 THEN '200' 
210792                 WHEN 3 THEN '200' 
210793                 WHEN 4 THEN '200' 
210794                 WHEN 5 THEN '200' 
210795                 WHEN 6 THEN '200' 
210796                 WHEN 7 THEN '200' 
210797                 WHEN 8 THEN '200' 
210798                 WHEN 9 THEN '200' 
210799                 WHEN 10 THEN '200' 
210800                 WHEN 11 THEN '200' 
210801                 WHEN 12 THEN '200' 
210802                 WHEN 13 THEN '200' 
210803                 WHEN 14 THEN '200' 
210804                 WHEN 15 THEN '200' 
210805                 WHEN 16 THEN '200' 
210806                 WHEN 17 THEN '200' 
210807                 WHEN 18 THEN '200' 
210808                 WHEN 19 THEN '200' 
210809                 WHEN 20 THEN '200' 
210810                 WHEN 21 THEN '200' 
210811                 WHEN 22 THEN '200' 
210812                 WHEN 23 THEN '200' 
210813                 WHEN 24 THEN '200' 
210814                 WHEN 25 THEN '200' 
210815                 WHEN 26 THEN '200' 
210816                 WHEN 27 THEN '200' 
210817                 WHEN 28 THEN '200' 
210818                 WHEN 29 THEN '200' 
210819                 WHEN 30 THEN '200' 
210820                 WHEN 31 THEN '200' 
210821                 WHEN 32 THEN '200' 
210822                 WHEN 33 THEN '200' 
210823                 
210824                 ELSE null
210825               END                           source_application_id
210826             , 'S'             source_type_code
210827             , CASE r
210828                 WHEN 1 THEN 'CGAC_BANK_CHARGES_CCID' 
210829                 WHEN 2 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
210830                 WHEN 3 THEN 'CGAC_BANK_ERRORS_CCID' 
210831                 WHEN 4 THEN 'CGAC_AP_ASSET_CCID' 
210832                 WHEN 5 THEN 'FSP_DISC_TAKEN_CCID' 
210833                 WHEN 6 THEN 'ASP_DISCOUNT_DIST_METHOD' 
210837                 WHEN 10 THEN 'ASP_GAIN_CCID' 
210834                 WHEN 7 THEN 'ASP_INTEREST_CCID' 
210835                 WHEN 8 THEN 'ASP_PRORATE_INT_ACROSS_DISTS' 
210836                 WHEN 9 THEN 'CGAC_GAIN_CCID' 
210838                 WHEN 11 THEN 'CGAC_LOSS_CCID' 
210839                 WHEN 12 THEN 'ASP_LOSS_CCID' 
210840                 WHEN 13 THEN 'ASP_DISC_TAKEN_CCID' 
210841                 WHEN 14 THEN 'ASP_AUTO_OFFSET_FLAG' 
210842                 WHEN 15 THEN 'ASP_ROUNDING_ERROR_CCID' 
210843                 WHEN 16 THEN 'THIRD_PARTY_TYPE' 
210844                 WHEN 17 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
210845                 WHEN 18 THEN 'APH_BANK_CURRENCY_CODE' 
210846                 WHEN 19 THEN 'APH_BANK_TO_BASE_XRATE_DATE' 
210847                 WHEN 20 THEN 'APH_BANK_TO_BASE_XRATE' 
210848                 WHEN 21 THEN 'APH_BANK_TO_BASE_XRATE_TYPE' 
210849                 WHEN 22 THEN 'AC_VENDOR_ID' 
210850                 WHEN 23 THEN 'AC_VENDOR_SITE_ID' 
210851                 WHEN 24 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
210852                 WHEN 25 THEN 'AC_CURRENCY_CODE' 
210853                 WHEN 26 THEN 'AC_FUTURE_PAY_DUE_DATE' 
210854                 WHEN 27 THEN 'AC_EXCHANGE_DATE' 
210855                 WHEN 28 THEN 'AC_EXCHANGE_RATE' 
210856                 WHEN 29 THEN 'AC_EXCHANGE_RATE_TYPE' 
210857                 WHEN 30 THEN 'PAYMENT_TYPE' 
210858                 WHEN 31 THEN 'AC_DOC_CATEGORY_CODE' 
210859                 WHEN 32 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
210860                 WHEN 33 THEN 'AC_DOC_SEQUENCE_VALUE' 
210861                 
210862                 ELSE null
210863               END                           source_code
210864             , CASE r
210865                 WHEN 1 THEN TO_CHAR(h2.CGAC_BANK_CHARGES_CCID)
210866                 WHEN 2 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
210867                 WHEN 3 THEN TO_CHAR(h2.CGAC_BANK_ERRORS_CCID)
210868                 WHEN 4 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
210869                 WHEN 5 THEN TO_CHAR(h3.FSP_DISC_TAKEN_CCID)
210870                 WHEN 6 THEN TO_CHAR(h3.ASP_DISCOUNT_DIST_METHOD)
210871                 WHEN 7 THEN TO_CHAR(h3.ASP_INTEREST_CCID)
210872                 WHEN 8 THEN TO_CHAR(h3.ASP_PRORATE_INT_ACROSS_DISTS)
210873                 WHEN 9 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
210874                 WHEN 10 THEN TO_CHAR(h3.ASP_GAIN_CCID)
210875                 WHEN 11 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
210876                 WHEN 12 THEN TO_CHAR(h3.ASP_LOSS_CCID)
210877                 WHEN 13 THEN TO_CHAR(h3.ASP_DISC_TAKEN_CCID)
210878                 WHEN 14 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
210879                 WHEN 15 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
210880                 WHEN 16 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
210881                 WHEN 17 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
210882                 WHEN 18 THEN TO_CHAR(h2.APH_BANK_CURRENCY_CODE)
210883                 WHEN 19 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE_DATE)
210884                 WHEN 20 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE)
210885                 WHEN 21 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE_TYPE)
210886                 WHEN 22 THEN TO_CHAR(h2.AC_VENDOR_ID)
210887                 WHEN 23 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
210888                 WHEN 24 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
210889                 WHEN 25 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
210890                 WHEN 26 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
210891                 WHEN 27 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
210892                 WHEN 28 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
210893                 WHEN 29 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
210894                 WHEN 30 THEN TO_CHAR(h2.PAYMENT_TYPE)
210895                 WHEN 31 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
210896                 WHEN 32 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
210897                 WHEN 33 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
210898                 
210899                 ELSE null
210900               END                           source_value
210901             , CASE r
210902                 WHEN 2 THEN fvl3.meaning
210903                 WHEN 6 THEN fvl7.meaning
210904                 WHEN 14 THEN fvl35.meaning
210905                 WHEN 24 THEN fvl105.meaning
210906                 WHEN 30 THEN fvl115.meaning
210907                 
210908                 ELSE null
210909               END               source_meaning
210910          FROM xla_events_gt     xet  
210911       , AP_PAYMENT_EXTRACT_HEADER_V  h2
210912       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
210913   , fnd_lookup_values    fvl3
210914   , fnd_lookup_values    fvl7
210915   , fnd_lookup_values    fvl35
210916   , fnd_lookup_values    fvl105
210917   , fnd_lookup_values    fvl115
210918              ,(select rownum r from all_objects where rownum <= 33 and owner = p_apps_owner)
210919          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
210920            AND xet.event_class_code = C_EVENT_CLASS_CODE
210921               AND h2.event_id = xet.event_id
210922  AND h3.asp_org_id = h2.ac_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
210923   AND fvl3.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
210924   AND fvl3.view_application_id(+) = 200
210925   AND fvl3.language(+)            = USERENV('LANG')
210926      AND fvl7.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
210927   AND fvl7.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
210928   AND fvl7.view_application_id(+) = 200
210929   AND fvl7.language(+)            = USERENV('LANG')
210933   AND fvl35.language(+)            = USERENV('LANG')
210930      AND fvl35.lookup_type(+)         = 'YES_NO'
210931   AND fvl35.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
210932   AND fvl35.view_application_id(+) = 0
210934      AND fvl105.lookup_type(+)         = 'YES_NO'
210935   AND fvl105.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
210936   AND fvl105.view_application_id(+) = 0
210937   AND fvl105.language(+)            = USERENV('LANG')
210938      AND fvl115.lookup_type(+)         = 'PAYMENT TYPE'
210939   AND fvl115.lookup_code(+)         = h2.PAYMENT_TYPE
210940   AND fvl115.view_application_id(+) = 200
210941   AND fvl115.language(+)            = USERENV('LANG')
210942   
210943 )
210944 ;
210945 --
210946 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
210947 
210948       trace
210949          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
210950          ,p_level    => C_LEVEL_STATEMENT
210951          ,p_module   => l_log_module);
210952 
210953 END IF;
210954 --
210955 
210956 
210957 
210958 --
210959 INSERT INTO xla_diag_sources  --line2
210960 (
210961         event_id
210962       , ledger_id
210963       , sla_ledger_id
210964       , description_language
210965       , object_name
210966       , object_type_code
210967       , line_number
210968       , source_application_id
210969       , source_type_code
210970       , source_code
210971       , source_value
210972       , source_meaning
210973       , created_by
210974       , creation_date
210975       , last_update_date
210976       , last_updated_by
210977       , last_update_login
210978       , program_update_date
210979       , program_application_id
210980       , program_id
210981       , request_id
210982 )
210983 SELECT  event_id
210984       , p_target_ledger_id
210985       , p_sla_ledger_id
210986       , p_language
210987       , object_name
210988       , object_type_code
210989       , line_number
210990       , source_application_id
210991       , source_type_code
210992       , source_code
210993       , SUBSTR(source_value,1,1996)
210994       , SUBSTR(source_meaning ,1,200)
210995       , xla_environment_pkg.g_Usr_Id
210996       , TRUNC(SYSDATE)
210997       , TRUNC(SYSDATE)
210998       , xla_environment_pkg.g_Usr_Id
210999       , xla_environment_pkg.g_Login_Id
211000       , TRUNC(SYSDATE)
211001       , xla_environment_pkg.g_Prog_Appl_Id
211002       , xla_environment_pkg.g_Prog_Id
211003       , xla_environment_pkg.g_Req_Id
211004   FROM (
211005        SELECT xet.event_id                  event_id
211006             , l1.line_number                 line_number
211007             , CASE r
211008                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211009                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211010                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211011                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211012                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211013                 WHEN 6 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
211014                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211015                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211016                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211017                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211018                 WHEN 11 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
211019                 WHEN 12 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
211020                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211021                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211022                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211023                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211024                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211025                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211026                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211027                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211028                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211029                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211030                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211031                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211032                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211033                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211034                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211035                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211036                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211037                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211038                 WHEN 31 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
211039                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211040                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211041                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211042                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211043                 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211044                 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211045                 WHEN 38 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211046                 WHEN 39 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211047                 WHEN 40 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211048                 WHEN 41 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211049                 WHEN 42 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
211050                 
211051                ELSE null
211052               END                           object_name
211053             , CASE r
211054                 WHEN 1 THEN 'LINE' 
211055                 WHEN 2 THEN 'LINE' 
211056                 WHEN 3 THEN 'LINE' 
211057                 WHEN 4 THEN 'LINE' 
211061                 WHEN 8 THEN 'LINE' 
211058                 WHEN 5 THEN 'LINE' 
211059                 WHEN 6 THEN 'LINE' 
211060                 WHEN 7 THEN 'LINE' 
211062                 WHEN 9 THEN 'LINE' 
211063                 WHEN 10 THEN 'LINE' 
211064                 WHEN 11 THEN 'LINE' 
211065                 WHEN 12 THEN 'LINE' 
211066                 WHEN 13 THEN 'LINE' 
211067                 WHEN 14 THEN 'LINE' 
211068                 WHEN 15 THEN 'LINE' 
211069                 WHEN 16 THEN 'LINE' 
211070                 WHEN 17 THEN 'LINE' 
211071                 WHEN 18 THEN 'LINE' 
211072                 WHEN 19 THEN 'LINE' 
211073                 WHEN 20 THEN 'LINE' 
211074                 WHEN 21 THEN 'LINE' 
211075                 WHEN 22 THEN 'LINE' 
211076                 WHEN 23 THEN 'LINE' 
211077                 WHEN 24 THEN 'LINE' 
211078                 WHEN 25 THEN 'LINE' 
211079                 WHEN 26 THEN 'LINE' 
211080                 WHEN 27 THEN 'LINE' 
211081                 WHEN 28 THEN 'LINE' 
211082                 WHEN 29 THEN 'LINE' 
211083                 WHEN 30 THEN 'LINE' 
211084                 WHEN 31 THEN 'LINE' 
211085                 WHEN 32 THEN 'LINE' 
211086                 WHEN 33 THEN 'LINE' 
211087                 WHEN 34 THEN 'LINE' 
211088                 WHEN 35 THEN 'LINE' 
211089                 WHEN 36 THEN 'LINE' 
211090                 WHEN 37 THEN 'LINE' 
211091                 WHEN 38 THEN 'LINE' 
211092                 WHEN 39 THEN 'LINE' 
211093                 WHEN 40 THEN 'LINE' 
211094                 WHEN 41 THEN 'LINE' 
211095                 WHEN 42 THEN 'LINE' 
211096                 
211097                 ELSE null
211098               END                           object_type_code
211099             , CASE r
211100                 WHEN 1 THEN '200' 
211101                 WHEN 2 THEN '200' 
211102                 WHEN 3 THEN '200' 
211103                 WHEN 4 THEN '200' 
211104                 WHEN 5 THEN '200' 
211105                 WHEN 6 THEN '200' 
211106                 WHEN 7 THEN '200' 
211107                 WHEN 8 THEN '200' 
211108                 WHEN 9 THEN '200' 
211109                 WHEN 10 THEN '200' 
211110                 WHEN 11 THEN '200' 
211111                 WHEN 12 THEN '200' 
211112                 WHEN 13 THEN '200' 
211113                 WHEN 14 THEN '200' 
211114                 WHEN 15 THEN '200' 
211115                 WHEN 16 THEN '200' 
211116                 WHEN 17 THEN '200' 
211117                 WHEN 18 THEN '200' 
211118                 WHEN 19 THEN '200' 
211119                 WHEN 20 THEN '200' 
211120                 WHEN 21 THEN '200' 
211121                 WHEN 22 THEN '200' 
211122                 WHEN 23 THEN '200' 
211123                 WHEN 24 THEN '200' 
211124                 WHEN 25 THEN '200' 
211125                 WHEN 26 THEN '200' 
211126                 WHEN 27 THEN '200' 
211127                 WHEN 28 THEN '200' 
211128                 WHEN 29 THEN '200' 
211129                 WHEN 30 THEN '200' 
211130                 WHEN 31 THEN '200' 
211131                 WHEN 32 THEN '200' 
211132                 WHEN 33 THEN '200' 
211133                 WHEN 34 THEN '200' 
211134                 WHEN 35 THEN '200' 
211135                 WHEN 36 THEN '200' 
211136                 WHEN 37 THEN '200' 
211137                 WHEN 38 THEN '200' 
211138                 WHEN 39 THEN '200' 
211139                 WHEN 40 THEN '200' 
211140                 WHEN 41 THEN '200' 
211141                 WHEN 42 THEN '200' 
211142                 
211143                 ELSE null
211144               END                           source_application_id
211145             , 'S'             source_type_code
211146             , CASE r
211147                 WHEN 1 THEN 'AID_DIST_CCID' 
211148                 WHEN 2 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
211149                 WHEN 3 THEN 'AWT_RELATED_DIST_ACCOUNT' 
211150                 WHEN 4 THEN 'POD_CCID' 
211151                 WHEN 5 THEN 'PO_VARIANCE_ACCOUNT' 
211152                 WHEN 6 THEN 'TAX_ACCOUNT_CCID' 
211153                 WHEN 7 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
211154                 WHEN 8 THEN 'DISTRIBUTION_LINK_TYPE' 
211155                 WHEN 9 THEN 'AI_INVOICE_CURRENCY_CODE' 
211156                 WHEN 10 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
211157                 WHEN 11 THEN 'TAX_LINE_ID' 
211158                 WHEN 12 THEN 'SUMMARY_TAX_LINE_ID' 
211159                 WHEN 13 THEN 'BUS_FLOW_AP_APP_ID' 
211160                 WHEN 14 THEN 'BUS_FLOW_INV_DIST_TYPE' 
211161                 WHEN 15 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
211162                 WHEN 16 THEN 'BUS_FLOW_INV_DIST_ID' 
211163                 WHEN 17 THEN 'BUS_FLOW_INV_ID' 
211164                 WHEN 18 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
211165                 WHEN 19 THEN 'APHD_AMOUNT' 
211166                 WHEN 20 THEN 'BUS_FLOW_PAYMENT_DIST_TYPE' 
211167                 WHEN 21 THEN 'BUS_FLOW_PAYMENT_ENTITY_CODE' 
211168                 WHEN 22 THEN 'BUS_FLOW_PAYMENT_DIST_ID' 
211169                 WHEN 23 THEN 'BUS_FLOW_PAYMENT_ID' 
211170                 WHEN 24 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
211171                 WHEN 25 THEN 'APHD_CLEARING_BASE_AMT' 
211172                 WHEN 26 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
211173                 WHEN 27 THEN 'APHD_PAYMENT_BASE_AMT' 
211174                 WHEN 28 THEN 'APHD_INVOICE_BASE_AMT' 
211175                 WHEN 29 THEN 'BUS_FLOW_PAYMENT_MAT_DIST_ID' 
211176                 WHEN 30 THEN 'APHD_MATURED_BASE_AMOUNT' 
211177                 WHEN 31 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
211178                 WHEN 32 THEN 'INV_EXCHANGE_DATE' 
211182                 WHEN 36 THEN 'INV_CLR_BASE_AMT_DIFF' 
211179                 WHEN 33 THEN 'INV_EXCHANGE_RATE' 
211180                 WHEN 34 THEN 'INV_EXCHANGE_RATE_TYPE' 
211181                 WHEN 35 THEN 'INV_CLR_GAIN_LOSS_INDICATOR' 
211183                 WHEN 37 THEN 'MAT_CLR_GAIN_LOSS_INDICATOR' 
211184                 WHEN 38 THEN 'MAT_CLR_BASE_AMT_DIFF' 
211185                 WHEN 39 THEN 'PMT_CLR_GAIN_LOSS_INDICATOR' 
211186                 WHEN 40 THEN 'PMT_CLR_BASE_AMT_DIFF' 
211187                 WHEN 41 THEN 'AI_INVOICE_TYPE_PAID' 
211188                 WHEN 42 THEN 'AWT_AT_PMT_TIME' 
211189                 
211190                 ELSE null
211191               END                           source_code
211192             , CASE r
211193                 WHEN 1 THEN TO_CHAR(l1.AID_DIST_CCID)
211194                 WHEN 2 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
211195                 WHEN 3 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
211196                 WHEN 4 THEN TO_CHAR(l1.POD_CCID)
211197                 WHEN 5 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
211198                 WHEN 6 THEN TO_CHAR(l4.TAX_ACCOUNT_CCID)
211199                 WHEN 7 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
211200                 WHEN 8 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
211201                 WHEN 9 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
211202                 WHEN 10 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
211203                 WHEN 11 THEN TO_CHAR(l4.TAX_LINE_ID)
211204                 WHEN 12 THEN TO_CHAR(l4.SUMMARY_TAX_LINE_ID)
211205                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
211206                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
211207                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
211208                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
211209                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
211210                 WHEN 18 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
211211                 WHEN 19 THEN TO_CHAR(l1.APHD_AMOUNT)
211212                 WHEN 20 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_TYPE)
211213                 WHEN 21 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ENTITY_CODE)
211214                 WHEN 22 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_ID)
211215                 WHEN 23 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ID)
211216                 WHEN 24 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
211217                 WHEN 25 THEN TO_CHAR(l1.APHD_CLEARING_BASE_AMT)
211218                 WHEN 26 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
211219                 WHEN 27 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
211220                 WHEN 28 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
211221                 WHEN 29 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_MAT_DIST_ID)
211222                 WHEN 30 THEN TO_CHAR(l1.APHD_MATURED_BASE_AMOUNT)
211223                 WHEN 31 THEN TO_CHAR(l4.DEF_REC_SETTLEMENT_OPTION_CODE)
211224                 WHEN 32 THEN TO_CHAR(l1.INV_EXCHANGE_DATE)
211225                 WHEN 33 THEN TO_CHAR(l1.INV_EXCHANGE_RATE)
211226                 WHEN 34 THEN TO_CHAR(l1.INV_EXCHANGE_RATE_TYPE)
211227                 WHEN 35 THEN TO_CHAR(l1.INV_CLR_GAIN_LOSS_INDICATOR)
211228                 WHEN 36 THEN TO_CHAR(l1.INV_CLR_BASE_AMT_DIFF)
211229                 WHEN 37 THEN TO_CHAR(l1.MAT_CLR_GAIN_LOSS_INDICATOR)
211230                 WHEN 38 THEN TO_CHAR(l1.MAT_CLR_BASE_AMT_DIFF)
211231                 WHEN 39 THEN TO_CHAR(l1.PMT_CLR_GAIN_LOSS_INDICATOR)
211232                 WHEN 40 THEN TO_CHAR(l1.PMT_CLR_BASE_AMT_DIFF)
211233                 WHEN 41 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
211234                 WHEN 42 THEN TO_CHAR(l1.AWT_AT_PMT_TIME)
211235                 
211236                 ELSE null
211237               END                           source_value
211238             , CASE r
211239                 WHEN 2 THEN fvl21.meaning
211240                 WHEN 10 THEN fvl68.meaning
211241                 WHEN 18 THEN fvl90.meaning
211242                 WHEN 31 THEN fvl130.meaning
211243                 WHEN 41 THEN fvl158.meaning
211244                 WHEN 42 THEN fvl160.meaning
211245                 
211246                 ELSE null
211247               END               source_meaning
211248          FROM  xla_events_gt     xet  
211249         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
211250         , ZX_AP_DEF_TAX_EXTRACT_V  l4
211251   , fnd_lookup_values    fvl21
211252   , fnd_lookup_values    fvl68
211253   , fnd_lookup_values    fvl90
211254   , fnd_lookup_values    fvl130
211255   , fnd_lookup_values    fvl158
211256   , fnd_lookup_values    fvl160
211257             , (select rownum r from all_objects where rownum <= 42 and owner = p_apps_owner)
211258         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
211259           AND xet.event_class_code = C_EVENT_CLASS_CODE
211260             AND l1.event_id          = xet.event_id
211261  AND l1.aid_detail_tax_dist_id = l4.rec_nrec_tax_dist_id (+)    AND fvl21.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
211262   AND fvl21.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
211263   AND fvl21.view_application_id(+) = 200
211264   AND fvl21.language(+)            = USERENV('LANG')
211265      AND fvl68.lookup_type(+)         = 'YES_NO'
211266   AND fvl68.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
211267   AND fvl68.view_application_id(+) = 0
211268   AND fvl68.language(+)            = USERENV('LANG')
211269      AND fvl90.lookup_type(+)         = 'PAY_DIST_TYPES'
211270   AND fvl90.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
211271   AND fvl90.view_application_id(+) = 200
211272   AND fvl90.language(+)            = USERENV('LANG')
211273      AND fvl130.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
211274   AND fvl130.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
211275   AND fvl130.view_application_id(+) = 0
211276   AND fvl130.language(+)            = USERENV('LANG')
211277      AND fvl158.lookup_type(+)         = 'INVOICE TYPE'
211278   AND fvl158.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
211282   AND fvl160.lookup_code(+)         = l1.AWT_AT_PMT_TIME
211279   AND fvl158.view_application_id(+) = 200
211280   AND fvl158.language(+)            = USERENV('LANG')
211281      AND fvl160.lookup_type(+)         = 'YES_NO'
211283   AND fvl160.view_application_id(+) = 0
211284   AND fvl160.language(+)            = USERENV('LANG')
211285   
211286 )
211287 ;
211288 --
211289 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
211290 
211291       trace
211292          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
211293          ,p_level    => C_LEVEL_STATEMENT
211294          ,p_module   => l_log_module);
211295 
211296 END IF;
211297 
211298 
211299 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
211300       trace
211301          (p_msg      => 'END of insert_sources_301'
211302          ,p_level    => C_LEVEL_PROCEDURE
211303          ,p_module   => l_log_module);
211304 END IF;
211305 EXCEPTION
211306   WHEN xla_exceptions_pkg.application_exception THEN
211307       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
211308             trace
211309                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
211310                ,p_level    => C_LEVEL_EXCEPTION
211311                ,p_module   => l_log_module);
211312       END IF;
211313       RAISE;
211314   WHEN OTHERS THEN
211315       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
211316             trace
211317                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
211318                ,p_level    => C_LEVEL_EXCEPTION
211319                ,p_module   => l_log_module);
211320        END IF;
211321        xla_exceptions_pkg.raise_message
211322            (p_location => 'XLA_00200_AAD_S_000006_PKG.insert_sources_301');
211323 END insert_sources_301;
211324 --
211325 
211326 ---------------------------------------
211327 --
211328 -- PRIVATE FUNCTION
211329 --         EventClass_301
211330 --
211331 ----------------------------------------
211332 --
211333 FUNCTION EventClass_301
211334        (p_application_id         IN NUMBER
211335        ,p_base_ledger_id         IN NUMBER
211336        ,p_target_ledger_id       IN NUMBER
211337        ,p_language               IN VARCHAR2
211338        ,p_currency_code          IN VARCHAR2
211339        ,p_sla_ledger_id          IN NUMBER
211340        ,p_pad_start_date         IN DATE
211341        ,p_pad_end_date           IN DATE
211342        ,p_primary_ledger_id      IN NUMBER)
211343 RETURN BOOLEAN IS
211344 --
211345 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'RECONCILED PAYMENTS_ALL';
211346 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'RECONCILED PAYMENTS';
211347 
211348 l_calculate_acctd_flag   VARCHAR2(1) :='N';
211349 l_calculate_g_l_flag     VARCHAR2(1) :='N';
211350 --
211351 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
211352 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
211353 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
211354 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
211355 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
211356 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
211357 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
211358 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
211359 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
211360 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
211361 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
211362 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
211363 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
211364 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
211365 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
211366 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
211367 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
211368 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
211369 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
211370 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
211371 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
211372 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
211373 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
211374 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
211375 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
211376 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
211377 
211378 l_event_id                             NUMBER;
211379 l_previous_event_id                    NUMBER;
211380 l_first_event_id                       NUMBER;
211381 l_last_event_id                        NUMBER;
211382 
211383 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
211384 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
211385 --
211386 --
211387 l_result                    BOOLEAN := TRUE;
211388 l_rows                      NUMBER  := 1000;
211389 l_event_type_name           VARCHAR2(80) := 'All';
211390 l_event_class_name          VARCHAR2(80) := 'Reconciled Payments';
211391 l_description               VARCHAR2(4000);
211392 l_transaction_reversal      NUMBER;
211393 l_ae_header_id              NUMBER;
211394 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
211395 l_log_module                VARCHAR2(240);
211396 --
211400 l_continue_with_lines       BOOLEAN := TRUE;
211397 l_acct_reversal_source      VARCHAR2(30);
211398 l_trx_reversal_source       VARCHAR2(30);
211399 
211401 --
211402 l_acc_rev_gl_date_source    DATE;                      -- 4262811
211403 --
211404 type t_array_event_id is table of number index by binary_integer;
211405 
211406 l_rec_array_event                    t_rec_array_event;
211407 l_null_rec_array_event               t_rec_array_event;
211408 l_array_ae_header_id                 xla_number_array_type;
211409 l_actual_flag                        VARCHAR2(1) := NULL;
211410 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
211411 l_balance_type_code                  VARCHAR2(1) :=NULL;
211412 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
211413 
211414 --
211415 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
211416 --
211417 
211418 TYPE t_array_source_2 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_BANK_CHARGES_CCID%TYPE INDEX BY BINARY_INTEGER;
211419 TYPE t_array_source_3 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
211420 TYPE t_array_source_4 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_BANK_ERRORS_CCID%TYPE INDEX BY BINARY_INTEGER;
211421 TYPE t_array_source_5 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
211422 TYPE t_array_source_6 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
211423 TYPE t_array_source_7 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
211424 TYPE t_array_source_16 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_INTEREST_CCID%TYPE INDEX BY BINARY_INTEGER;
211425 TYPE t_array_source_17 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PRORATE_INT_ACROSS_DISTS%TYPE INDEX BY BINARY_INTEGER;
211426 TYPE t_array_source_24 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
211427 TYPE t_array_source_25 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
211428 TYPE t_array_source_26 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
211429 TYPE t_array_source_27 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
211430 TYPE t_array_source_32 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
211431 TYPE t_array_source_35 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
211432 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
211433 TYPE t_array_source_71 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
211434 TYPE t_array_source_89 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
211435 TYPE t_array_source_97 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
211436 TYPE t_array_source_98 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE_DATE%TYPE INDEX BY BINARY_INTEGER;
211437 TYPE t_array_source_99 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE%TYPE INDEX BY BINARY_INTEGER;
211438 TYPE t_array_source_100 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
211439 TYPE t_array_source_102 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
211440 TYPE t_array_source_103 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
211441 TYPE t_array_source_105 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
211442 TYPE t_array_source_106 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
211443 TYPE t_array_source_107 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
211444 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
211445 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
211446 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
211447 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
211448 TYPE t_array_source_169 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
211449 TYPE t_array_source_170 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
211450 TYPE t_array_source_171 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
211451 
211452 TYPE t_array_source_18 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
211453 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
211454 TYPE t_array_source_31 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
211455 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
211456 TYPE t_array_source_34 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
211457 TYPE t_array_source_40 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
211458 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
211459 TYPE t_array_source_43 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
211460 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
211461 TYPE t_array_source_68 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
211462 TYPE t_array_source_74 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
211466 TYPE t_array_source_81 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
211463 TYPE t_array_source_76 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
211464 TYPE t_array_source_79 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
211465 TYPE t_array_source_80 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
211467 TYPE t_array_source_82 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
211468 TYPE t_array_source_83 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
211469 TYPE t_array_source_90 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
211470 TYPE t_array_source_91 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
211471 TYPE t_array_source_92 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
211472 TYPE t_array_source_93 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
211473 TYPE t_array_source_94 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
211474 TYPE t_array_source_95 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ID%TYPE INDEX BY BINARY_INTEGER;
211475 TYPE t_array_source_96 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
211476 TYPE t_array_source_101 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_CLEARING_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
211477 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
211478 TYPE t_array_source_108 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
211479 TYPE t_array_source_109 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
211480 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_MAT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
211481 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_MATURED_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
211482 TYPE t_array_source_130 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
211483 TYPE t_array_source_136 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
211484 TYPE t_array_source_137 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
211485 TYPE t_array_source_138 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
211486 TYPE t_array_source_146 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
211487 TYPE t_array_source_147 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
211488 TYPE t_array_source_151 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.MAT_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
211489 TYPE t_array_source_152 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.MAT_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
211490 TYPE t_array_source_154 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
211491 TYPE t_array_source_155 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
211492 TYPE t_array_source_158 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
211493 TYPE t_array_source_160 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_AT_PMT_TIME%TYPE INDEX BY BINARY_INTEGER;
211494 
211495 l_array_source_2              t_array_source_2;
211496 l_array_source_3              t_array_source_3;
211497 l_array_source_3_meaning      t_array_lookup_meaning;
211498 l_array_source_4              t_array_source_4;
211499 l_array_source_5              t_array_source_5;
211500 l_array_source_6              t_array_source_6;
211501 l_array_source_7              t_array_source_7;
211502 l_array_source_7_meaning      t_array_lookup_meaning;
211503 l_array_source_16              t_array_source_16;
211504 l_array_source_17              t_array_source_17;
211505 l_array_source_24              t_array_source_24;
211506 l_array_source_25              t_array_source_25;
211507 l_array_source_26              t_array_source_26;
211508 l_array_source_27              t_array_source_27;
211509 l_array_source_32              t_array_source_32;
211510 l_array_source_35              t_array_source_35;
211511 l_array_source_35_meaning      t_array_lookup_meaning;
211512 l_array_source_37              t_array_source_37;
211513 l_array_source_71              t_array_source_71;
211514 l_array_source_89              t_array_source_89;
211515 l_array_source_97              t_array_source_97;
211516 l_array_source_98              t_array_source_98;
211517 l_array_source_99              t_array_source_99;
211518 l_array_source_100              t_array_source_100;
211519 l_array_source_102              t_array_source_102;
211520 l_array_source_103              t_array_source_103;
211521 l_array_source_105              t_array_source_105;
211522 l_array_source_105_meaning      t_array_lookup_meaning;
211523 l_array_source_106              t_array_source_106;
211524 l_array_source_107              t_array_source_107;
211525 l_array_source_110              t_array_source_110;
211526 l_array_source_111              t_array_source_111;
211527 l_array_source_112              t_array_source_112;
211528 l_array_source_115              t_array_source_115;
211529 l_array_source_115_meaning      t_array_lookup_meaning;
211530 l_array_source_169              t_array_source_169;
211531 l_array_source_170              t_array_source_170;
211532 l_array_source_171              t_array_source_171;
211533 
211534 l_array_source_18      t_array_source_18;
211535 l_array_source_21      t_array_source_21;
211536 l_array_source_21_meaning      t_array_lookup_meaning;
211537 l_array_source_31      t_array_source_31;
211541 l_array_source_41      t_array_source_41;
211538 l_array_source_33      t_array_source_33;
211539 l_array_source_34      t_array_source_34;
211540 l_array_source_40      t_array_source_40;
211542 l_array_source_43      t_array_source_43;
211543 l_array_source_55      t_array_source_55;
211544 l_array_source_68      t_array_source_68;
211545 l_array_source_68_meaning      t_array_lookup_meaning;
211546 l_array_source_74      t_array_source_74;
211547 l_array_source_76      t_array_source_76;
211548 l_array_source_79      t_array_source_79;
211549 l_array_source_80      t_array_source_80;
211550 l_array_source_81      t_array_source_81;
211551 l_array_source_82      t_array_source_82;
211552 l_array_source_83      t_array_source_83;
211553 l_array_source_90      t_array_source_90;
211554 l_array_source_90_meaning      t_array_lookup_meaning;
211555 l_array_source_91      t_array_source_91;
211556 l_array_source_92      t_array_source_92;
211557 l_array_source_93      t_array_source_93;
211558 l_array_source_94      t_array_source_94;
211559 l_array_source_95      t_array_source_95;
211560 l_array_source_96      t_array_source_96;
211561 l_array_source_101      t_array_source_101;
211562 l_array_source_104      t_array_source_104;
211563 l_array_source_108      t_array_source_108;
211564 l_array_source_109      t_array_source_109;
211565 l_array_source_113      t_array_source_113;
211566 l_array_source_114      t_array_source_114;
211567 l_array_source_130      t_array_source_130;
211568 l_array_source_130_meaning      t_array_lookup_meaning;
211569 l_array_source_136      t_array_source_136;
211570 l_array_source_137      t_array_source_137;
211571 l_array_source_138      t_array_source_138;
211572 l_array_source_146      t_array_source_146;
211573 l_array_source_147      t_array_source_147;
211574 l_array_source_151      t_array_source_151;
211575 l_array_source_152      t_array_source_152;
211576 l_array_source_154      t_array_source_154;
211577 l_array_source_155      t_array_source_155;
211578 l_array_source_158      t_array_source_158;
211579 l_array_source_158_meaning      t_array_lookup_meaning;
211580 l_array_source_160      t_array_source_160;
211581 l_array_source_160_meaning      t_array_lookup_meaning;
211582 
211583 --
211584 CURSOR header_cur
211585 IS
211586 SELECT /*+ leading(xet) cardinality(xet,1) */
211587 -- Event Class Code: RECONCILED PAYMENTS
211588     xet.entity_id
211589    ,xet.legal_entity_id
211590    ,xet.entity_code
211591    ,xet.transaction_number
211592    ,xet.event_id
211593    ,xet.event_class_code
211594    ,xet.event_type_code
211595    ,xet.event_number
211596    ,xet.event_date
211597    ,xet.transaction_date
211598    ,xet.reference_num_1
211599    ,xet.reference_num_2
211600    ,xet.reference_num_3
211601    ,xet.reference_num_4
211602    ,xet.reference_char_1
211603    ,xet.reference_char_2
211604    ,xet.reference_char_3
211605    ,xet.reference_char_4
211606    ,xet.reference_date_1
211607    ,xet.reference_date_2
211608    ,xet.reference_date_3
211609    ,xet.reference_date_4
211610    ,xet.event_created_by
211611    ,xet.budgetary_control_flag 
211612   , h2.CGAC_BANK_CHARGES_CCID    source_2
211613   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_3
211614   , fvl3.meaning   source_3_meaning
211615   , h2.CGAC_BANK_ERRORS_CCID    source_4
211616   , h2.CGAC_AP_ASSET_CCID    source_5
211617   , h3.FSP_DISC_TAKEN_CCID    source_6
211618   , h3.ASP_DISCOUNT_DIST_METHOD    source_7
211619   , fvl7.meaning   source_7_meaning
211620   , h3.ASP_INTEREST_CCID    source_16
211621   , h3.ASP_PRORATE_INT_ACROSS_DISTS    source_17
211622   , h2.CGAC_GAIN_CCID    source_24
211623   , h3.ASP_GAIN_CCID    source_25
211624   , h2.CGAC_LOSS_CCID    source_26
211625   , h3.ASP_LOSS_CCID    source_27
211626   , h3.ASP_DISC_TAKEN_CCID    source_32
211627   , h3.ASP_AUTO_OFFSET_FLAG    source_35
211628   , fvl35.meaning   source_35_meaning
211629   , h3.ASP_ROUNDING_ERROR_CCID    source_37
211630   , h2.THIRD_PARTY_TYPE    source_71
211631   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_89
211632   , h2.APH_BANK_CURRENCY_CODE    source_97
211633   , h2.APH_BANK_TO_BASE_XRATE_DATE    source_98
211634   , h2.APH_BANK_TO_BASE_XRATE    source_99
211635   , h2.APH_BANK_TO_BASE_XRATE_TYPE    source_100
211636   , h2.AC_VENDOR_ID    source_102
211637   , h2.AC_VENDOR_SITE_ID    source_103
211638   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_105
211639   , fvl105.meaning   source_105_meaning
211640   , h2.AC_CURRENCY_CODE    source_106
211641   , h2.AC_FUTURE_PAY_DUE_DATE    source_107
211642   , h2.AC_EXCHANGE_DATE    source_110
211643   , h2.AC_EXCHANGE_RATE    source_111
211644   , h2.AC_EXCHANGE_RATE_TYPE    source_112
211645   , h2.PAYMENT_TYPE    source_115
211646   , fvl115.meaning   source_115_meaning
211647   , h2.AC_DOC_CATEGORY_CODE    source_169
211648   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_170
211649   , h2.AC_DOC_SEQUENCE_VALUE    source_171
211650   FROM xla_events_gt     xet 
211651   , AP_PAYMENT_EXTRACT_HEADER_V  h2
211652   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
211653   , fnd_lookup_values    fvl3
211654   , fnd_lookup_values    fvl7
211655   , fnd_lookup_values    fvl35
211656   , fnd_lookup_values    fvl105
211657   , fnd_lookup_values    fvl115
211658  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
211659    and xet.event_class_code = C_EVENT_CLASS_CODE
211660    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
211661  AND h3.asp_org_id = h2.ac_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
211662   AND fvl3.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
211663   AND fvl3.view_application_id(+) = 200
211664   AND fvl3.language(+)            = USERENV('LANG')
211668   AND fvl7.language(+)            = USERENV('LANG')
211665      AND fvl7.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
211666   AND fvl7.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
211667   AND fvl7.view_application_id(+) = 200
211669      AND fvl35.lookup_type(+)         = 'YES_NO'
211670   AND fvl35.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
211671   AND fvl35.view_application_id(+) = 0
211672   AND fvl35.language(+)            = USERENV('LANG')
211673      AND fvl105.lookup_type(+)         = 'YES_NO'
211674   AND fvl105.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
211675   AND fvl105.view_application_id(+) = 0
211676   AND fvl105.language(+)            = USERENV('LANG')
211677      AND fvl115.lookup_type(+)         = 'PAYMENT TYPE'
211678   AND fvl115.lookup_code(+)         = h2.PAYMENT_TYPE
211679   AND fvl115.view_application_id(+) = 200
211680   AND fvl115.language(+)            = USERENV('LANG')
211681   
211682  ORDER BY event_id
211683 ;
211684 
211685 
211686 --
211687 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
211688 IS
211689 SELECT  /*+ leading(xet) cardinality(xet,1) */
211690 -- Event Class Code: RECONCILED PAYMENTS
211691     xet.entity_id
211692    ,xet.legal_entity_id
211693    ,xet.entity_code
211694    ,xet.transaction_number
211695    ,xet.event_id
211696    ,xet.event_class_code
211697    ,xet.event_type_code
211698    ,xet.event_number
211699    ,xet.event_date
211700    ,xet.transaction_date
211701    ,xet.reference_num_1
211702    ,xet.reference_num_2
211703    ,xet.reference_num_3
211704    ,xet.reference_num_4
211705    ,xet.reference_char_1
211706    ,xet.reference_char_2
211707    ,xet.reference_char_3
211708    ,xet.reference_char_4
211709    ,xet.reference_date_1
211710    ,xet.reference_date_2
211711    ,xet.reference_date_3
211712    ,xet.reference_date_4
211713    ,xet.event_created_by
211714    ,xet.budgetary_control_flag
211715  , l1.LINE_NUMBER  
211716   , l1.AID_DIST_CCID    source_18
211717   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_21
211718   , fvl21.meaning   source_21_meaning
211719   , l1.AWT_RELATED_DIST_ACCOUNT    source_31
211720   , l1.POD_CCID    source_33
211721   , l1.PO_VARIANCE_ACCOUNT    source_34
211722   , l4.TAX_ACCOUNT_CCID    source_40
211723   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_41
211724   , l1.DISTRIBUTION_LINK_TYPE    source_43
211725   , l1.AI_INVOICE_CURRENCY_CODE    source_55
211726   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_68
211727   , fvl68.meaning   source_68_meaning
211728   , l4.TAX_LINE_ID    source_74
211729   , l4.SUMMARY_TAX_LINE_ID    source_76
211730   , l1.BUS_FLOW_AP_APP_ID    source_79
211731   , l1.BUS_FLOW_INV_DIST_TYPE    source_80
211732   , l1.BUS_FLOW_INV_ENTITY_CODE    source_81
211733   , l1.BUS_FLOW_INV_DIST_ID    source_82
211734   , l1.BUS_FLOW_INV_ID    source_83
211735   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_90
211736   , fvl90.meaning   source_90_meaning
211737   , l1.APHD_AMOUNT    source_91
211738   , l1.BUS_FLOW_PAYMENT_DIST_TYPE    source_92
211739   , l1.BUS_FLOW_PAYMENT_ENTITY_CODE    source_93
211740   , l1.BUS_FLOW_PAYMENT_DIST_ID    source_94
211741   , l1.BUS_FLOW_PAYMENT_ID    source_95
211742   , l1.APHD_PAYMENT_HIST_DIST_ID    source_96
211743   , l1.APHD_CLEARING_BASE_AMT    source_101
211744   , l1.APHD_REV_PAY_HIST_DIST_ID    source_104
211745   , l1.APHD_PAYMENT_BASE_AMT    source_108
211746   , l1.APHD_INVOICE_BASE_AMT    source_109
211747   , l1.BUS_FLOW_PAYMENT_MAT_DIST_ID    source_113
211748   , l1.APHD_MATURED_BASE_AMOUNT    source_114
211749   , l4.DEF_REC_SETTLEMENT_OPTION_CODE    source_130
211750   , fvl130.meaning   source_130_meaning
211751   , l1.INV_EXCHANGE_DATE    source_136
211752   , l1.INV_EXCHANGE_RATE    source_137
211753   , l1.INV_EXCHANGE_RATE_TYPE    source_138
211754   , l1.INV_CLR_GAIN_LOSS_INDICATOR    source_146
211755   , l1.INV_CLR_BASE_AMT_DIFF    source_147
211756   , l1.MAT_CLR_GAIN_LOSS_INDICATOR    source_151
211757   , l1.MAT_CLR_BASE_AMT_DIFF    source_152
211758   , l1.PMT_CLR_GAIN_LOSS_INDICATOR    source_154
211759   , l1.PMT_CLR_BASE_AMT_DIFF    source_155
211760   , l1.AI_INVOICE_TYPE_PAID    source_158
211761   , fvl158.meaning   source_158_meaning
211762   , l1.AWT_AT_PMT_TIME    source_160
211763   , fvl160.meaning   source_160_meaning
211764   FROM xla_events_gt     xet 
211765   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
211766   , ZX_AP_DEF_TAX_EXTRACT_V  l4
211767   , fnd_lookup_values    fvl21
211768   , fnd_lookup_values    fvl68
211769   , fnd_lookup_values    fvl90
211770   , fnd_lookup_values    fvl130
211771   , fnd_lookup_values    fvl158
211772   , fnd_lookup_values    fvl160
211773  WHERE xet.event_id between x_first_event_id and x_last_event_id
211774    and xet.event_date between p_pad_start_date and p_pad_end_date
211775    and xet.event_class_code = C_EVENT_CLASS_CODE
211776    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
211777  AND l1.AID_DETAIL_TAX_DIST_ID = l4.REC_NREC_TAX_DIST_ID (+)    AND fvl21.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
211778   AND fvl21.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
211779   AND fvl21.view_application_id(+) = 200
211780   AND fvl21.language(+)            = USERENV('LANG')
211781      AND fvl68.lookup_type(+)         = 'YES_NO'
211782   AND fvl68.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
211783   AND fvl68.view_application_id(+) = 0
211784   AND fvl68.language(+)            = USERENV('LANG')
211785      AND fvl90.lookup_type(+)         = 'PAY_DIST_TYPES'
211786   AND fvl90.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
211787   AND fvl90.view_application_id(+) = 200
211788   AND fvl90.language(+)            = USERENV('LANG')
211792   AND fvl130.language(+)            = USERENV('LANG')
211789      AND fvl130.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
211790   AND fvl130.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
211791   AND fvl130.view_application_id(+) = 0
211793      AND fvl158.lookup_type(+)         = 'INVOICE TYPE'
211794   AND fvl158.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
211795   AND fvl158.view_application_id(+) = 200
211796   AND fvl158.language(+)            = USERENV('LANG')
211797      AND fvl160.lookup_type(+)         = 'YES_NO'
211798   AND fvl160.lookup_code(+)         = l1.AWT_AT_PMT_TIME
211799   AND fvl160.view_application_id(+) = 0
211800   AND fvl160.language(+)            = USERENV('LANG')
211801   ;
211802 
211803 --
211804 BEGIN
211805 IF g_log_enabled THEN
211806    l_log_module := C_DEFAULT_MODULE||'.EventClass_301';
211807 END IF;
211808 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
211809    trace
211810       (p_msg      => 'BEGIN of EventClass_301'
211811       ,p_level    => C_LEVEL_PROCEDURE
211812       ,p_module   => l_log_module);
211813 END IF;
211814 
211815 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
211816    trace
211817       (p_msg      => 'p_application_id = '||p_application_id||
211818                      ' - p_base_ledger_id = '||p_base_ledger_id||
211819                      ' - p_target_ledger_id  = '||p_target_ledger_id||
211820                      ' - p_language = '||p_language||
211821                      ' - p_currency_code = '||p_currency_code||
211822                      ' - p_sla_ledger_id = '||p_sla_ledger_id
211823       ,p_level    => C_LEVEL_STATEMENT
211824       ,p_module   => l_log_module);
211825 END IF;
211826 --
211827 -- initialze arrays
211828 --
211829 g_array_event.DELETE;
211830 l_rec_array_event := l_null_rec_array_event;
211831 --
211832 --------------------------------------
211833 -- 4262811 Initialze MPA Line Number
211834 --------------------------------------
211835 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
211836 
211837 --
211838 
211839 --
211840 OPEN header_cur;
211841 --
211842 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
211843    trace
211844    (p_msg      => 'SQL - FETCH header_cur'
211845    ,p_level    => C_LEVEL_STATEMENT
211846    ,p_module   => l_log_module);
211847 END IF;
211848 --
211849 LOOP
211850 FETCH header_cur BULK COLLECT INTO
211851         l_array_entity_id
211852       , l_array_legal_entity_id
211853       , l_array_entity_code
211854       , l_array_transaction_num
211855       , l_array_event_id
211856       , l_array_class_code
211857       , l_array_event_type
211858       , l_array_event_number
211859       , l_array_event_date
211860       , l_array_transaction_date
211861       , l_array_reference_num_1
211862       , l_array_reference_num_2
211863       , l_array_reference_num_3
211864       , l_array_reference_num_4
211865       , l_array_reference_char_1
211866       , l_array_reference_char_2
211867       , l_array_reference_char_3
211868       , l_array_reference_char_4
211869       , l_array_reference_date_1
211870       , l_array_reference_date_2
211871       , l_array_reference_date_3
211872       , l_array_reference_date_4
211873       , l_array_event_created_by
211874       , l_array_budgetary_control_flag 
211875       , l_array_source_2
211876       , l_array_source_3
211877       , l_array_source_3_meaning
211878       , l_array_source_4
211879       , l_array_source_5
211880       , l_array_source_6
211881       , l_array_source_7
211882       , l_array_source_7_meaning
211883       , l_array_source_16
211884       , l_array_source_17
211885       , l_array_source_24
211886       , l_array_source_25
211887       , l_array_source_26
211888       , l_array_source_27
211889       , l_array_source_32
211890       , l_array_source_35
211891       , l_array_source_35_meaning
211892       , l_array_source_37
211893       , l_array_source_71
211894       , l_array_source_89
211895       , l_array_source_97
211896       , l_array_source_98
211897       , l_array_source_99
211898       , l_array_source_100
211899       , l_array_source_102
211900       , l_array_source_103
211901       , l_array_source_105
211902       , l_array_source_105_meaning
211903       , l_array_source_106
211904       , l_array_source_107
211905       , l_array_source_110
211906       , l_array_source_111
211907       , l_array_source_112
211908       , l_array_source_115
211909       , l_array_source_115_meaning
211910       , l_array_source_169
211911       , l_array_source_170
211912       , l_array_source_171
211913       LIMIT l_rows;
211914 --
211915 IF (C_LEVEL_EVENT >= g_log_level) THEN
211916    trace
211917    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
211918    ,p_level    => C_LEVEL_EVENT
211919    ,p_module   => l_log_module);
211920 END IF;
211921 --
211922 EXIT WHEN l_array_entity_id.COUNT = 0;
211923 
211924 -- initialize arrays
211925 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
211926 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
211927 
211928 --
211929 -- Bug 4458708
211930 --
211931 XLA_AE_LINES_PKG.g_LineNumber := 0;
211932 
211933 
211934 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
211935 g_last_hdr_idx := l_array_event_id.LAST;
211936 --
211937 -- loop for the headers. Each iteration is for each header extract row
211938 -- fetched in header cursor
211939 --
211940 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
211941 
211942 --
211943 -- set event info as cache for other routines to refer event attributes
211944 --
211948    ,p_base_ledger_id           => p_base_ledger_id
211945 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
211946    (p_application_id           => p_application_id
211947    ,p_primary_ledger_id        => p_primary_ledger_id
211949    ,p_target_ledger_id         => p_target_ledger_id
211950    ,p_entity_id                => l_array_entity_id(hdr_idx)
211951    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
211952    ,p_entity_code              => l_array_entity_code(hdr_idx)
211953    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
211954    ,p_event_id                 => l_array_event_id(hdr_idx)
211955    ,p_event_class_code         => l_array_class_code(hdr_idx)
211956    ,p_event_type_code          => l_array_event_type(hdr_idx)
211957    ,p_event_number             => l_array_event_number(hdr_idx)
211958    ,p_event_date               => l_array_event_date(hdr_idx)
211959    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
211960    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
211961    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
211962    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
211963    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
211964    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
211965    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
211966    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
211967    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
211968    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
211969    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
211970    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
211971    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
211972    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
211973    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
211974 
211975 --
211976 -- set the status of entry to C_VALID (0)
211977 --
211978 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
211979 
211980 --
211981 -- initialize a row for ae header
211982 --
211983 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
211984 
211985 l_event_id := l_array_event_id(hdr_idx);
211986 
211987 --
211988 -- storing the hdr_idx for event. May be used by line cursor.
211989 --
211990 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
211991 
211992 --
211993 -- store sources from header extract. This can be improved to
211994 -- store only those sources from header extract that may be used in lines
211995 --
211996 
211997 g_array_event(l_event_id).array_value_num('source_2') := l_array_source_2(hdr_idx);
211998 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
211999 g_array_event(l_event_id).array_value_char('source_3_meaning') := l_array_source_3_meaning(hdr_idx);
212000 g_array_event(l_event_id).array_value_num('source_4') := l_array_source_4(hdr_idx);
212001 g_array_event(l_event_id).array_value_num('source_5') := l_array_source_5(hdr_idx);
212002 g_array_event(l_event_id).array_value_num('source_6') := l_array_source_6(hdr_idx);
212003 g_array_event(l_event_id).array_value_char('source_7') := l_array_source_7(hdr_idx);
212004 g_array_event(l_event_id).array_value_char('source_7_meaning') := l_array_source_7_meaning(hdr_idx);
212005 g_array_event(l_event_id).array_value_num('source_16') := l_array_source_16(hdr_idx);
212006 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
212007 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
212008 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
212009 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
212010 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
212011 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
212012 g_array_event(l_event_id).array_value_char('source_35') := l_array_source_35(hdr_idx);
212013 g_array_event(l_event_id).array_value_char('source_35_meaning') := l_array_source_35_meaning(hdr_idx);
212014 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
212015 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
212016 g_array_event(l_event_id).array_value_char('source_89') := l_array_source_89(hdr_idx);
212017 g_array_event(l_event_id).array_value_char('source_97') := l_array_source_97(hdr_idx);
212018 g_array_event(l_event_id).array_value_date('source_98') := l_array_source_98(hdr_idx);
212019 g_array_event(l_event_id).array_value_num('source_99') := l_array_source_99(hdr_idx);
212020 g_array_event(l_event_id).array_value_char('source_100') := l_array_source_100(hdr_idx);
212021 g_array_event(l_event_id).array_value_num('source_102') := l_array_source_102(hdr_idx);
212022 g_array_event(l_event_id).array_value_num('source_103') := l_array_source_103(hdr_idx);
212023 g_array_event(l_event_id).array_value_char('source_105') := l_array_source_105(hdr_idx);
212024 g_array_event(l_event_id).array_value_char('source_105_meaning') := l_array_source_105_meaning(hdr_idx);
212025 g_array_event(l_event_id).array_value_char('source_106') := l_array_source_106(hdr_idx);
212026 g_array_event(l_event_id).array_value_date('source_107') := l_array_source_107(hdr_idx);
212027 g_array_event(l_event_id).array_value_date('source_110') := l_array_source_110(hdr_idx);
212028 g_array_event(l_event_id).array_value_num('source_111') := l_array_source_111(hdr_idx);
212029 g_array_event(l_event_id).array_value_char('source_112') := l_array_source_112(hdr_idx);
212030 g_array_event(l_event_id).array_value_char('source_115') := l_array_source_115(hdr_idx);
212031 g_array_event(l_event_id).array_value_char('source_115_meaning') := l_array_source_115_meaning(hdr_idx);
212032 g_array_event(l_event_id).array_value_char('source_169') := l_array_source_169(hdr_idx);
212036 --
212033 g_array_event(l_event_id).array_value_num('source_170') := l_array_source_170(hdr_idx);
212034 g_array_event(l_event_id).array_value_num('source_171') := l_array_source_171(hdr_idx);
212035 
212037 -- initilaize the status of ae headers for diffrent balance types
212038 -- the status is initialised to C_NOT_CREATED (2)
212039 --
212040 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
212041 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
212042 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
212043 
212044 --
212045 -- call api to validate and store accounting attributes for header
212046 --
212047 
212048 ------------------------------------------------------------
212049 -- Accrual Reversal : to get date for Standard Source (NONE)
212050 ------------------------------------------------------------
212051 l_acc_rev_gl_date_source := NULL;
212052 
212053      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
212054       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_169');
212055      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
212056       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_170');
212057      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
212058       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_171');
212059      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
212060       l_rec_acct_attrs.array_date_value(4) := 
212061 xla_ae_sources_pkg.GetSystemSourceDate(
212062    p_source_code           => 'XLA_EVENT_DATE'
212063  , p_source_type_code      => 'Y'
212064  , p_source_application_id =>  602
212065 );
212066 
212067 
212068 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
212069 
212070 XLA_AE_HEADER_PKG.SetJeCategoryName;
212071 
212072 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
212073 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
212074 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
212075 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
212076 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
212077 
212078 
212079 -- No header level analytical criteria
212080 
212081 --
212082 --accounting attribute enhancement, bug 3612931
212083 --
212084 l_trx_reversal_source := SUBSTR(NULL, 1,30);
212085 
212086 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
212087    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
212088 
212089    xla_accounting_err_pkg.build_message
212090       (p_appli_s_name            => 'XLA'
212091       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
212092       ,p_token_1                 => 'ACCT_ATTR_NAME'
212093       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
212094       ,p_token_2                 => 'PRODUCT_NAME'
212095       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
212096       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
212097       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
212098       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
212099 
212100 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
212101    --
212102    -- following sets the accounting attributes needed to reverse
212103    -- accounting for a distributeion
212104    --
212105    xla_ae_lines_pkg.SetTrxReversalAttrs
212106       (p_event_id              => l_event_id
212107       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
212108       ,p_trx_reversal_source   => l_trx_reversal_source);
212109 
212110 END IF;
212111 
212112 
212113 ----------------------------------------------------------------
212114 -- 4262811 -  update the header statuses to invalid in need be
212115 ----------------------------------------------------------------
212116 --
212117 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
212118 
212119 
212120   -----------------------------------------------
212121   -- No accrual reversal for the event class/type
212122   -----------------------------------------------
212123 ----------------------------------------------------------------
212124 
212125 --
212126 -- this ends the header loop iteration for one bulk fetch
212127 --
212128 END LOOP;
212129 
212130 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
212131 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
212132 
212133 --
212134 -- insert dummy rows into lines gt table that were created due to
212135 -- transaction reversals
212136 --
212137 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
212138    l_result := XLA_AE_LINES_PKG.InsertLines;
212139 END IF;
212140 
212141 --
212142 -- reset the temp_line_num for each set of events fetched from header
212143 -- cursor rather than doing it for each new event in line cursor
212144 -- Bug 3939231
212145 --
212146 xla_ae_lines_pkg.g_temp_line_num := 0;
212147 
212148 
212149 
212150 --
212151 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
212152 --
212153 --
212154 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
212155 
212156       trace
212157          (p_msg      => 'SQL - FETCH line_cur'
212161 END IF;
212158          ,p_level    => C_LEVEL_STATEMENT
212159          ,p_module   => l_log_module);
212160 
212162 --
212163 --
212164 LOOP
212165   --
212166   FETCH line_cur BULK COLLECT INTO
212167         l_array_entity_id
212168       , l_array_legal_entity_id
212169       , l_array_entity_code
212170       , l_array_transaction_num
212171       , l_array_event_id
212172       , l_array_class_code
212173       , l_array_event_type
212174       , l_array_event_number
212175       , l_array_event_date
212176       , l_array_transaction_date
212177       , l_array_reference_num_1
212178       , l_array_reference_num_2
212179       , l_array_reference_num_3
212180       , l_array_reference_num_4
212181       , l_array_reference_char_1
212182       , l_array_reference_char_2
212183       , l_array_reference_char_3
212184       , l_array_reference_char_4
212185       , l_array_reference_date_1
212186       , l_array_reference_date_2
212187       , l_array_reference_date_3
212188       , l_array_reference_date_4
212189       , l_array_event_created_by
212190       , l_array_budgetary_control_flag
212191       , l_array_extract_line_num 
212192       , l_array_source_18
212193       , l_array_source_21
212194       , l_array_source_21_meaning
212195       , l_array_source_31
212196       , l_array_source_33
212197       , l_array_source_34
212198       , l_array_source_40
212199       , l_array_source_41
212200       , l_array_source_43
212201       , l_array_source_55
212202       , l_array_source_68
212203       , l_array_source_68_meaning
212204       , l_array_source_74
212205       , l_array_source_76
212206       , l_array_source_79
212207       , l_array_source_80
212208       , l_array_source_81
212209       , l_array_source_82
212210       , l_array_source_83
212211       , l_array_source_90
212212       , l_array_source_90_meaning
212213       , l_array_source_91
212214       , l_array_source_92
212215       , l_array_source_93
212216       , l_array_source_94
212217       , l_array_source_95
212218       , l_array_source_96
212219       , l_array_source_101
212220       , l_array_source_104
212221       , l_array_source_108
212222       , l_array_source_109
212223       , l_array_source_113
212224       , l_array_source_114
212225       , l_array_source_130
212226       , l_array_source_130_meaning
212227       , l_array_source_136
212228       , l_array_source_137
212229       , l_array_source_138
212230       , l_array_source_146
212231       , l_array_source_147
212232       , l_array_source_151
212233       , l_array_source_152
212234       , l_array_source_154
212235       , l_array_source_155
212236       , l_array_source_158
212237       , l_array_source_158_meaning
212238       , l_array_source_160
212239       , l_array_source_160_meaning
212240       LIMIT l_rows;
212241 
212242   --
212243   IF (C_LEVEL_EVENT >= g_log_level) THEN
212244             trace
212245                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
212246                ,p_level    => C_LEVEL_EVENT
212247                ,p_module   => l_log_module);
212248   END IF;
212249   --
212250   EXIT WHEN l_array_entity_id.count = 0;
212251 
212252   XLA_AE_LINES_PKG.g_rec_lines := null;
212253 
212254 --
212255 -- Bug 4458708
212256 --
212257 XLA_AE_LINES_PKG.g_LineNumber := 0;
212258 --
212259 --
212260 
212261 FOR Idx IN 1..l_array_event_id.count LOOP
212262    --
212263    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
212264    --
212265    l_event_id := l_array_event_id(idx);  -- 5648433
212266 
212267    --
212268    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
212269    --
212270 
212271    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
212272              (g_array_event(l_event_id).array_value_num('header_index'))
212273          ,'N'
212274          ) <> 'Y'
212275    THEN
212276       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
212277          trace
212278             (p_msg      => 'Trancaction revesal option is not Y '
212279             ,p_level    => C_LEVEL_STATEMENT
212280             ,p_module   => l_log_module);
212281       END IF;
212282 
212283 --
212284 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
212285 --
212286 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
212287 --
212288 -- set event info as cache for other routines to refer event attributes
212289 --
212290 
212291 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
212292    l_previous_event_id := l_event_id;
212293 
212294    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
212295       (p_application_id           => p_application_id
212296       ,p_primary_ledger_id        => p_primary_ledger_id
212297       ,p_base_ledger_id           => p_base_ledger_id
212298       ,p_target_ledger_id         => p_target_ledger_id
212299       ,p_entity_id                => l_array_entity_id(Idx)
212300       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
212301       ,p_entity_code              => l_array_entity_code(Idx)
212302       ,p_transaction_num          => l_array_transaction_num(Idx)
212303       ,p_event_id                 => l_array_event_id(Idx)
212304       ,p_event_class_code         => l_array_class_code(Idx)
212305       ,p_event_type_code          => l_array_event_type(Idx)
212306       ,p_event_number             => l_array_event_number(Idx)
212310       ,p_reference_num_2          => l_array_reference_num_2(Idx)
212307       ,p_event_date               => l_array_event_date(Idx)
212308       ,p_transaction_date         => l_array_transaction_date(Idx)
212309       ,p_reference_num_1          => l_array_reference_num_1(Idx)
212311       ,p_reference_num_3          => l_array_reference_num_3(Idx)
212312       ,p_reference_num_4          => l_array_reference_num_4(Idx)
212313       ,p_reference_char_1         => l_array_reference_char_1(Idx)
212314       ,p_reference_char_2         => l_array_reference_char_2(Idx)
212315       ,p_reference_char_3         => l_array_reference_char_3(Idx)
212316       ,p_reference_char_4         => l_array_reference_char_4(Idx)
212317       ,p_reference_date_1         => l_array_reference_date_1(Idx)
212318       ,p_reference_date_2         => l_array_reference_date_2(Idx)
212319       ,p_reference_date_3         => l_array_reference_date_3(Idx)
212320       ,p_reference_date_4         => l_array_reference_date_4(Idx)
212321       ,p_event_created_by         => l_array_event_created_by(Idx)
212322       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
212323        --
212324 END IF;
212325 
212326 
212327 
212328 --
212329 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
212330 
212331 l_acct_reversal_source := SUBSTR(l_array_source_41(Idx), 1,30);
212332 
212333 IF l_continue_with_lines THEN
212334    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
212335       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
212336 
212337       xla_accounting_err_pkg.build_message
212338          (p_appli_s_name            => 'XLA'
212339          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
212340          ,p_token_1                 => 'LINE_NUMBER'
212341          ,p_value_1                 => l_array_extract_line_num(Idx)
212342          ,p_token_2                 => 'PRODUCT_NAME'
212343          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
212344          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
212345          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
212346          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
212347 
212348    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
212349       --
212350       -- following sets the accounting attributes needed to reverse
212351       -- accounting for a distributeion
212352       --
212353 
212354       --
212355       -- 5217187
212356       --
212357       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
212358       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
212359                                        g_array_event(l_event_id).array_value_num('header_index'));
212360       --
212361       --
212362 
212363       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
212364       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_41(Idx);
212365       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
212366       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_96(Idx);
212367       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
212368       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_43(Idx);
212369       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
212370       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_71');
212371       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
212372       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_104(Idx);
212373       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
212374       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_43(Idx);
212375       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
212376       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_74(Idx);
212377       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
212378       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_74(Idx);
212379       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
212380       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_76(Idx);
212381 
212382 
212383       xla_ae_lines_pkg.SetAcctReversalAttrs
212384          (p_event_id             => l_event_id
212385          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
212386          ,p_calculate_acctd_flag => l_calculate_acctd_flag
212387          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
212388    END IF;
212389 
212390    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
212391        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
212392 
212393 --
212394 AcctLineType_63 (
212395  p_application_id  => p_application_id
212396  ,p_event_id     => l_event_id
212397  ,p_calculate_acctd_flag => l_calculate_acctd_flag
212398  ,p_calculate_g_l_flag => l_calculate_g_l_flag
212399  ,p_actual_flag => l_actual_flag
212400  ,p_balance_type_code => l_balance_type_code
212401  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
212402  
212403  , p_source_2 => g_array_event(l_event_id).array_value_num('source_2')
212404  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
212405  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
212406  , p_source_18 => l_array_source_18(Idx)
212407  , p_source_41 => l_array_source_41(Idx)
212408  , p_source_43 => l_array_source_43(Idx)
212409  , p_source_68 => l_array_source_68(Idx)
212410  , p_source_68_meaning => l_array_source_68_meaning(Idx)
212414  , p_source_79 => l_array_source_79(Idx)
212411  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
212412  , p_source_74 => l_array_source_74(Idx)
212413  , p_source_76 => l_array_source_76(Idx)
212415  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
212416  , p_source_90 => l_array_source_90(Idx)
212417  , p_source_90_meaning => l_array_source_90_meaning(Idx)
212418  , p_source_91 => l_array_source_91(Idx)
212419  , p_source_92 => l_array_source_92(Idx)
212420  , p_source_93 => l_array_source_93(Idx)
212421  , p_source_94 => l_array_source_94(Idx)
212422  , p_source_95 => l_array_source_95(Idx)
212423  , p_source_96 => l_array_source_96(Idx)
212424  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
212425  , p_source_98 => g_array_event(l_event_id).array_value_date('source_98')
212426  , p_source_99 => g_array_event(l_event_id).array_value_num('source_99')
212427  , p_source_100 => g_array_event(l_event_id).array_value_char('source_100')
212428  , p_source_101 => l_array_source_101(Idx)
212429  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
212430  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
212431  , p_source_104 => l_array_source_104(Idx)
212432  );
212433 If(l_balance_type_code = 'A') THEN
212434   l_actual_gain_loss_ref := l_gain_or_loss_ref;
212435 END IF;
212436 
212437 --
212438 
212439 
212440 --
212441 AcctLineType_64 (
212442  p_application_id  => p_application_id
212443  ,p_event_id     => l_event_id
212444  ,p_calculate_acctd_flag => l_calculate_acctd_flag
212445  ,p_calculate_g_l_flag => l_calculate_g_l_flag
212446  ,p_actual_flag => l_actual_flag
212447  ,p_balance_type_code => l_balance_type_code
212448  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
212449  
212450  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
212451  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
212452  , p_source_4 => g_array_event(l_event_id).array_value_num('source_4')
212453  , p_source_18 => l_array_source_18(Idx)
212454  , p_source_41 => l_array_source_41(Idx)
212455  , p_source_43 => l_array_source_43(Idx)
212456  , p_source_68 => l_array_source_68(Idx)
212457  , p_source_68_meaning => l_array_source_68_meaning(Idx)
212458  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
212459  , p_source_74 => l_array_source_74(Idx)
212460  , p_source_76 => l_array_source_76(Idx)
212461  , p_source_79 => l_array_source_79(Idx)
212462  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
212463  , p_source_90 => l_array_source_90(Idx)
212464  , p_source_90_meaning => l_array_source_90_meaning(Idx)
212465  , p_source_91 => l_array_source_91(Idx)
212466  , p_source_92 => l_array_source_92(Idx)
212467  , p_source_93 => l_array_source_93(Idx)
212468  , p_source_94 => l_array_source_94(Idx)
212469  , p_source_95 => l_array_source_95(Idx)
212470  , p_source_96 => l_array_source_96(Idx)
212471  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
212472  , p_source_98 => g_array_event(l_event_id).array_value_date('source_98')
212473  , p_source_99 => g_array_event(l_event_id).array_value_num('source_99')
212474  , p_source_100 => g_array_event(l_event_id).array_value_char('source_100')
212475  , p_source_101 => l_array_source_101(Idx)
212476  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
212477  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
212478  , p_source_104 => l_array_source_104(Idx)
212479  );
212480 If(l_balance_type_code = 'A') THEN
212481   l_actual_gain_loss_ref := l_gain_or_loss_ref;
212482 END IF;
212483 
212484 --
212485 
212486 
212487 --
212488 AcctLineType_65 (
212489  p_application_id  => p_application_id
212490  ,p_event_id     => l_event_id
212491  ,p_calculate_acctd_flag => l_calculate_acctd_flag
212492  ,p_calculate_g_l_flag => l_calculate_g_l_flag
212493  ,p_actual_flag => l_actual_flag
212494  ,p_balance_type_code => l_balance_type_code
212495  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
212496  
212497  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
212498  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
212499  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
212500  , p_source_41 => l_array_source_41(Idx)
212501  , p_source_43 => l_array_source_43(Idx)
212502  , p_source_68 => l_array_source_68(Idx)
212503  , p_source_68_meaning => l_array_source_68_meaning(Idx)
212504  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
212505  , p_source_74 => l_array_source_74(Idx)
212506  , p_source_76 => l_array_source_76(Idx)
212507  , p_source_79 => l_array_source_79(Idx)
212508  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
212509  , p_source_90 => l_array_source_90(Idx)
212510  , p_source_90_meaning => l_array_source_90_meaning(Idx)
212511  , p_source_91 => l_array_source_91(Idx)
212512  , p_source_92 => l_array_source_92(Idx)
212513  , p_source_93 => l_array_source_93(Idx)
212514  , p_source_94 => l_array_source_94(Idx)
212515  , p_source_95 => l_array_source_95(Idx)
212516  , p_source_96 => l_array_source_96(Idx)
212517  , p_source_98 => g_array_event(l_event_id).array_value_date('source_98')
212518  , p_source_99 => g_array_event(l_event_id).array_value_num('source_99')
212519  , p_source_100 => g_array_event(l_event_id).array_value_char('source_100')
212520  , p_source_101 => l_array_source_101(Idx)
212521  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
212522  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
212523  , p_source_104 => l_array_source_104(Idx)
212524  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
212525  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
212526  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
212530 END IF;
212527  );
212528 If(l_balance_type_code = 'A') THEN
212529   l_actual_gain_loss_ref := l_gain_or_loss_ref;
212531 
212532 --
212533 
212534 
212535 --
212536 AcctLineType_66 (
212537  p_application_id  => p_application_id
212538  ,p_event_id     => l_event_id
212539  ,p_calculate_acctd_flag => l_calculate_acctd_flag
212540  ,p_calculate_g_l_flag => l_calculate_g_l_flag
212541  ,p_actual_flag => l_actual_flag
212542  ,p_balance_type_code => l_balance_type_code
212543  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
212544  
212545  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
212546  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
212547  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
212548  , p_source_41 => l_array_source_41(Idx)
212549  , p_source_43 => l_array_source_43(Idx)
212550  , p_source_68 => l_array_source_68(Idx)
212551  , p_source_68_meaning => l_array_source_68_meaning(Idx)
212552  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
212553  , p_source_74 => l_array_source_74(Idx)
212554  , p_source_76 => l_array_source_76(Idx)
212555  , p_source_79 => l_array_source_79(Idx)
212556  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
212557  , p_source_90 => l_array_source_90(Idx)
212558  , p_source_90_meaning => l_array_source_90_meaning(Idx)
212559  , p_source_91 => l_array_source_91(Idx)
212560  , p_source_92 => l_array_source_92(Idx)
212561  , p_source_93 => l_array_source_93(Idx)
212562  , p_source_94 => l_array_source_94(Idx)
212563  , p_source_95 => l_array_source_95(Idx)
212564  , p_source_96 => l_array_source_96(Idx)
212565  , p_source_98 => g_array_event(l_event_id).array_value_date('source_98')
212566  , p_source_99 => g_array_event(l_event_id).array_value_num('source_99')
212567  , p_source_100 => g_array_event(l_event_id).array_value_char('source_100')
212568  , p_source_101 => l_array_source_101(Idx)
212569  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
212570  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
212571  , p_source_104 => l_array_source_104(Idx)
212572  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
212573  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
212574  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
212575  );
212576 If(l_balance_type_code = 'A') THEN
212577   l_actual_gain_loss_ref := l_gain_or_loss_ref;
212578 END IF;
212579 
212580 --
212581 
212582 
212583 --
212584 AcctLineType_67 (
212585  p_application_id  => p_application_id
212586  ,p_event_id     => l_event_id
212587  ,p_calculate_acctd_flag => l_calculate_acctd_flag
212588  ,p_calculate_g_l_flag => l_calculate_g_l_flag
212589  ,p_actual_flag => l_actual_flag
212590  ,p_balance_type_code => l_balance_type_code
212591  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
212592  
212593  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
212594  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
212595  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
212596  , p_source_41 => l_array_source_41(Idx)
212597  , p_source_43 => l_array_source_43(Idx)
212598  , p_source_68 => l_array_source_68(Idx)
212599  , p_source_68_meaning => l_array_source_68_meaning(Idx)
212600  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
212601  , p_source_74 => l_array_source_74(Idx)
212602  , p_source_76 => l_array_source_76(Idx)
212603  , p_source_79 => l_array_source_79(Idx)
212604  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
212605  , p_source_90 => l_array_source_90(Idx)
212606  , p_source_90_meaning => l_array_source_90_meaning(Idx)
212607  , p_source_91 => l_array_source_91(Idx)
212608  , p_source_92 => l_array_source_92(Idx)
212609  , p_source_93 => l_array_source_93(Idx)
212610  , p_source_94 => l_array_source_94(Idx)
212611  , p_source_95 => l_array_source_95(Idx)
212612  , p_source_96 => l_array_source_96(Idx)
212613  , p_source_98 => g_array_event(l_event_id).array_value_date('source_98')
212614  , p_source_99 => g_array_event(l_event_id).array_value_num('source_99')
212615  , p_source_100 => g_array_event(l_event_id).array_value_char('source_100')
212616  , p_source_101 => l_array_source_101(Idx)
212617  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
212618  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
212619  , p_source_104 => l_array_source_104(Idx)
212620  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
212621  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
212622  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
212623  );
212627 
212624 If(l_balance_type_code = 'A') THEN
212625   l_actual_gain_loss_ref := l_gain_or_loss_ref;
212626 END IF;
212628 --
212629 
212630 
212631 --
212632 AcctLineType_68 (
212633  p_application_id  => p_application_id
212634  ,p_event_id     => l_event_id
212635  ,p_calculate_acctd_flag => l_calculate_acctd_flag
212636  ,p_calculate_g_l_flag => l_calculate_g_l_flag
212637  ,p_actual_flag => l_actual_flag
212638  ,p_balance_type_code => l_balance_type_code
212639  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
212640  
212641  , p_source_41 => l_array_source_41(Idx)
212642  , p_source_43 => l_array_source_43(Idx)
212643  , p_source_68 => l_array_source_68(Idx)
212644  , p_source_68_meaning => l_array_source_68_meaning(Idx)
212645  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
212646  , p_source_74 => l_array_source_74(Idx)
212647  , p_source_76 => l_array_source_76(Idx)
212648  , p_source_79 => l_array_source_79(Idx)
212649  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
212650  , p_source_90 => l_array_source_90(Idx)
212651  , p_source_90_meaning => l_array_source_90_meaning(Idx)
212652  , p_source_91 => l_array_source_91(Idx)
212653  , p_source_92 => l_array_source_92(Idx)
212654  , p_source_93 => l_array_source_93(Idx)
212655  , p_source_94 => l_array_source_94(Idx)
212656  , p_source_95 => l_array_source_95(Idx)
212657  , p_source_96 => l_array_source_96(Idx)
212658  , p_source_104 => l_array_source_104(Idx)
212659  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
212660  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
212661  , p_source_108 => l_array_source_108(Idx)
212662  );
212663 If(l_balance_type_code = 'A') THEN
212664   l_actual_gain_loss_ref := l_gain_or_loss_ref;
212665 END IF;
212666 
212667 --
212668 
212669 
212670 --
212671 AcctLineType_69 (
212672  p_application_id  => p_application_id
212673  ,p_event_id     => l_event_id
212674  ,p_calculate_acctd_flag => l_calculate_acctd_flag
212675  ,p_calculate_g_l_flag => l_calculate_g_l_flag
212676  ,p_actual_flag => l_actual_flag
212677  ,p_balance_type_code => l_balance_type_code
212678  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
212679  
212680  , p_source_41 => l_array_source_41(Idx)
212681  , p_source_43 => l_array_source_43(Idx)
212682  , p_source_68 => l_array_source_68(Idx)
212683  , p_source_68_meaning => l_array_source_68_meaning(Idx)
212684  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
212685  , p_source_74 => l_array_source_74(Idx)
212686  , p_source_76 => l_array_source_76(Idx)
212687  , p_source_79 => l_array_source_79(Idx)
212688  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
212689  , p_source_90 => l_array_source_90(Idx)
212690  , p_source_90_meaning => l_array_source_90_meaning(Idx)
212691  , p_source_91 => l_array_source_91(Idx)
212692  , p_source_92 => l_array_source_92(Idx)
212693  , p_source_93 => l_array_source_93(Idx)
212694  , p_source_94 => l_array_source_94(Idx)
212695  , p_source_95 => l_array_source_95(Idx)
212696  , p_source_96 => l_array_source_96(Idx)
212697  , p_source_104 => l_array_source_104(Idx)
212698  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
212699  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
212700  , p_source_109 => l_array_source_109(Idx)
212701  );
212702 If(l_balance_type_code = 'A') THEN
212703   l_actual_gain_loss_ref := l_gain_or_loss_ref;
212704 END IF;
212705 
212706 --
212707 
212708 
212709 --
212710 AcctLineType_72 (
212711  p_application_id  => p_application_id
212712  ,p_event_id     => l_event_id
212713  ,p_calculate_acctd_flag => l_calculate_acctd_flag
212714  ,p_calculate_g_l_flag => l_calculate_g_l_flag
212715  ,p_actual_flag => l_actual_flag
212716  ,p_balance_type_code => l_balance_type_code
212717  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
212718  
212719  , p_source_41 => l_array_source_41(Idx)
212720  , p_source_43 => l_array_source_43(Idx)
212721  , p_source_68 => l_array_source_68(Idx)
212722  , p_source_68_meaning => l_array_source_68_meaning(Idx)
212723  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
212724  , p_source_74 => l_array_source_74(Idx)
212725  , p_source_76 => l_array_source_76(Idx)
212726  , p_source_79 => l_array_source_79(Idx)
212727  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
212728  , p_source_90 => l_array_source_90(Idx)
212729  , p_source_90_meaning => l_array_source_90_meaning(Idx)
212730  , p_source_91 => l_array_source_91(Idx)
212731  , p_source_92 => l_array_source_92(Idx)
212732  , p_source_93 => l_array_source_93(Idx)
212733  , p_source_95 => l_array_source_95(Idx)
212734  , p_source_96 => l_array_source_96(Idx)
212735  , p_source_104 => l_array_source_104(Idx)
212736  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
212737  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
212738  , p_source_113 => l_array_source_113(Idx)
212739  , p_source_114 => l_array_source_114(Idx)
212740  );
212741 If(l_balance_type_code = 'A') THEN
212742   l_actual_gain_loss_ref := l_gain_or_loss_ref;
212743 END IF;
212744 
212745 --
212746 
212747 
212748 --
212749 AcctLineType_99 (
212750  p_application_id  => p_application_id
212751  ,p_event_id     => l_event_id
212752  ,p_calculate_acctd_flag => l_calculate_acctd_flag
212753  ,p_calculate_g_l_flag => l_calculate_g_l_flag
212754  ,p_actual_flag => l_actual_flag
212755  ,p_balance_type_code => l_balance_type_code
212756  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
212757  
212758  , p_source_21 => l_array_source_21(Idx)
212759  , p_source_21_meaning => l_array_source_21_meaning(Idx)
212760  , p_source_40 => l_array_source_40(Idx)
212761  , p_source_41 => l_array_source_41(Idx)
212765  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
212762  , p_source_43 => l_array_source_43(Idx)
212763  , p_source_68 => l_array_source_68(Idx)
212764  , p_source_68_meaning => l_array_source_68_meaning(Idx)
212766  , p_source_74 => l_array_source_74(Idx)
212767  , p_source_76 => l_array_source_76(Idx)
212768  , p_source_79 => l_array_source_79(Idx)
212769  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
212770  , p_source_90 => l_array_source_90(Idx)
212771  , p_source_90_meaning => l_array_source_90_meaning(Idx)
212772  , p_source_91 => l_array_source_91(Idx)
212773  , p_source_92 => l_array_source_92(Idx)
212774  , p_source_93 => l_array_source_93(Idx)
212775  , p_source_94 => l_array_source_94(Idx)
212776  , p_source_95 => l_array_source_95(Idx)
212777  , p_source_96 => l_array_source_96(Idx)
212778  , p_source_98 => g_array_event(l_event_id).array_value_date('source_98')
212779  , p_source_99 => g_array_event(l_event_id).array_value_num('source_99')
212780  , p_source_100 => g_array_event(l_event_id).array_value_char('source_100')
212781  , p_source_101 => l_array_source_101(Idx)
212782  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
212783  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
212784  , p_source_104 => l_array_source_104(Idx)
212785  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
212786  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
212787  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
212788  , p_source_130 => l_array_source_130(Idx)
212789  , p_source_130_meaning => l_array_source_130_meaning(Idx)
212790  );
212791 If(l_balance_type_code = 'A') THEN
212792   l_actual_gain_loss_ref := l_gain_or_loss_ref;
212793 END IF;
212794 
212795 --
212796 
212797 
212798 --
212799 AcctLineType_100 (
212800  p_application_id  => p_application_id
212801  ,p_event_id     => l_event_id
212802  ,p_calculate_acctd_flag => l_calculate_acctd_flag
212803  ,p_calculate_g_l_flag => l_calculate_g_l_flag
212804  ,p_actual_flag => l_actual_flag
212805  ,p_balance_type_code => l_balance_type_code
212806  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
212807  
212808  , p_source_21 => l_array_source_21(Idx)
212809  , p_source_21_meaning => l_array_source_21_meaning(Idx)
212810  , p_source_41 => l_array_source_41(Idx)
212811  , p_source_43 => l_array_source_43(Idx)
212812  , p_source_68 => l_array_source_68(Idx)
212813  , p_source_68_meaning => l_array_source_68_meaning(Idx)
212814  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
212815  , p_source_74 => l_array_source_74(Idx)
212816  , p_source_76 => l_array_source_76(Idx)
212817  , p_source_79 => l_array_source_79(Idx)
212818  , p_source_82 => l_array_source_82(Idx)
212819  , p_source_83 => l_array_source_83(Idx)
212820  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
212821  , p_source_90 => l_array_source_90(Idx)
212822  , p_source_90_meaning => l_array_source_90_meaning(Idx)
212823  , p_source_91 => l_array_source_91(Idx)
212824  , p_source_92 => l_array_source_92(Idx)
212825  , p_source_93 => l_array_source_93(Idx)
212826  , p_source_96 => l_array_source_96(Idx)
212827  , p_source_104 => l_array_source_104(Idx)
212828  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
212829  , p_source_109 => l_array_source_109(Idx)
212830  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
212831  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
212832  , p_source_130 => l_array_source_130(Idx)
212833  , p_source_130_meaning => l_array_source_130_meaning(Idx)
212834  );
212835 If(l_balance_type_code = 'A') THEN
212836   l_actual_gain_loss_ref := l_gain_or_loss_ref;
212837 END IF;
212838 
212839 --
212840 
212841 
212842 --
212843 AcctLineType_108 (
212844  p_application_id  => p_application_id
212845  ,p_event_id     => l_event_id
212846  ,p_calculate_acctd_flag => l_calculate_acctd_flag
212847  ,p_calculate_g_l_flag => l_calculate_g_l_flag
212848  ,p_actual_flag => l_actual_flag
212849  ,p_balance_type_code => l_balance_type_code
212850  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
212851  
212852  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
212853  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
212854  , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
212855  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
212856  , p_source_7_meaning => g_array_event(l_event_id).array_value_char('source_7_meaning')
212857  , p_source_18 => l_array_source_18(Idx)
212858  , p_source_21 => l_array_source_21(Idx)
212859  , p_source_21_meaning => l_array_source_21_meaning(Idx)
212860  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
212861  , p_source_33 => l_array_source_33(Idx)
212862  , p_source_34 => l_array_source_34(Idx)
212863  , p_source_41 => l_array_source_41(Idx)
212864  , p_source_43 => l_array_source_43(Idx)
212865  , p_source_55 => l_array_source_55(Idx)
212866  , p_source_68 => l_array_source_68(Idx)
212867  , p_source_68_meaning => l_array_source_68_meaning(Idx)
212868  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
212869  , p_source_74 => l_array_source_74(Idx)
212870  , p_source_76 => l_array_source_76(Idx)
212871  , p_source_79 => l_array_source_79(Idx)
212872  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
212873  , p_source_90 => l_array_source_90(Idx)
212874  , p_source_90_meaning => l_array_source_90_meaning(Idx)
212875  , p_source_91 => l_array_source_91(Idx)
212876  , p_source_92 => l_array_source_92(Idx)
212877  , p_source_93 => l_array_source_93(Idx)
212878  , p_source_94 => l_array_source_94(Idx)
212879  , p_source_95 => l_array_source_95(Idx)
212880  , p_source_96 => l_array_source_96(Idx)
212884  , p_source_104 => l_array_source_104(Idx)
212881  , p_source_101 => l_array_source_101(Idx)
212882  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
212883  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
212885  , p_source_136 => l_array_source_136(Idx)
212886  , p_source_137 => l_array_source_137(Idx)
212887  , p_source_138 => l_array_source_138(Idx)
212888  );
212889 If(l_balance_type_code = 'A') THEN
212890   l_actual_gain_loss_ref := l_gain_or_loss_ref;
212891 END IF;
212892 
212893 --
212894 
212895 
212896 --
212897 AcctLineType_120 (
212898  p_application_id  => p_application_id
212899  ,p_event_id     => l_event_id
212900  ,p_calculate_acctd_flag => l_calculate_acctd_flag
212901  ,p_calculate_g_l_flag => l_calculate_g_l_flag
212902  ,p_actual_flag => l_actual_flag
212903  ,p_balance_type_code => l_balance_type_code
212904  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
212905  
212906  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
212907  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
212908  , p_source_18 => l_array_source_18(Idx)
212909  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
212910  , p_source_41 => l_array_source_41(Idx)
212911  , p_source_43 => l_array_source_43(Idx)
212912  , p_source_55 => l_array_source_55(Idx)
212913  , p_source_68 => l_array_source_68(Idx)
212914  , p_source_68_meaning => l_array_source_68_meaning(Idx)
212915  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
212916  , p_source_74 => l_array_source_74(Idx)
212917  , p_source_76 => l_array_source_76(Idx)
212918  , p_source_79 => l_array_source_79(Idx)
212919  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
212920  , p_source_90 => l_array_source_90(Idx)
212921  , p_source_90_meaning => l_array_source_90_meaning(Idx)
212922  , p_source_91 => l_array_source_91(Idx)
212923  , p_source_92 => l_array_source_92(Idx)
212924  , p_source_93 => l_array_source_93(Idx)
212925  , p_source_94 => l_array_source_94(Idx)
212926  , p_source_95 => l_array_source_95(Idx)
212927  , p_source_96 => l_array_source_96(Idx)
212928  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
212929  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
212930  , p_source_104 => l_array_source_104(Idx)
212931  , p_source_109 => l_array_source_109(Idx)
212932  , p_source_136 => l_array_source_136(Idx)
212933  , p_source_137 => l_array_source_137(Idx)
212934  , p_source_138 => l_array_source_138(Idx)
212935  );
212936 If(l_balance_type_code = 'A') THEN
212937   l_actual_gain_loss_ref := l_gain_or_loss_ref;
212938 END IF;
212939 
212940 --
212941 
212942 
212943 --
212944 AcctLineType_136 (
212945  p_application_id  => p_application_id
212946  ,p_event_id     => l_event_id
212947  ,p_calculate_acctd_flag => l_calculate_acctd_flag
212948  ,p_calculate_g_l_flag => l_calculate_g_l_flag
212949  ,p_actual_flag => l_actual_flag
212950  ,p_balance_type_code => l_balance_type_code
212951  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
212952  
212953  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
212954  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
212955  , p_source_18 => l_array_source_18(Idx)
212956  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
212957  , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
212958  , p_source_41 => l_array_source_41(Idx)
212959  , p_source_43 => l_array_source_43(Idx)
212960  , p_source_68 => l_array_source_68(Idx)
212961  , p_source_68_meaning => l_array_source_68_meaning(Idx)
212962  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
212963  , p_source_74 => l_array_source_74(Idx)
212964  , p_source_76 => l_array_source_76(Idx)
212965  , p_source_79 => l_array_source_79(Idx)
212966  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
212967  , p_source_90 => l_array_source_90(Idx)
212968  , p_source_90_meaning => l_array_source_90_meaning(Idx)
212969  , p_source_91 => l_array_source_91(Idx)
212970  , p_source_92 => l_array_source_92(Idx)
212971  , p_source_93 => l_array_source_93(Idx)
212972  , p_source_94 => l_array_source_94(Idx)
212973  , p_source_95 => l_array_source_95(Idx)
212974  , p_source_96 => l_array_source_96(Idx)
212975  , p_source_98 => g_array_event(l_event_id).array_value_date('source_98')
212976  , p_source_99 => g_array_event(l_event_id).array_value_num('source_99')
212977  , p_source_100 => g_array_event(l_event_id).array_value_char('source_100')
212978  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
212979  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
212980  , p_source_104 => l_array_source_104(Idx)
212981  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
212982  , p_source_146 => l_array_source_146(Idx)
212983  , p_source_147 => l_array_source_147(Idx)
212984  );
212985 If(l_balance_type_code = 'A') THEN
212986   l_actual_gain_loss_ref := l_gain_or_loss_ref;
212987 END IF;
212988 
212989 --
212990 
212991 
212992 --
212993 AcctLineType_137 (
212994  p_application_id  => p_application_id
212995  ,p_event_id     => l_event_id
212996  ,p_calculate_acctd_flag => l_calculate_acctd_flag
212997  ,p_calculate_g_l_flag => l_calculate_g_l_flag
212998  ,p_actual_flag => l_actual_flag
212999  ,p_balance_type_code => l_balance_type_code
213000  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
213001  
213002  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
213003  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
213004  , p_source_18 => l_array_source_18(Idx)
213005  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
213006  , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
213010  , p_source_43 => l_array_source_43(Idx)
213007  , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
213008  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
213009  , p_source_41 => l_array_source_41(Idx)
213011  , p_source_68 => l_array_source_68(Idx)
213012  , p_source_68_meaning => l_array_source_68_meaning(Idx)
213013  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
213014  , p_source_74 => l_array_source_74(Idx)
213015  , p_source_76 => l_array_source_76(Idx)
213016  , p_source_79 => l_array_source_79(Idx)
213017  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
213018  , p_source_90 => l_array_source_90(Idx)
213019  , p_source_90_meaning => l_array_source_90_meaning(Idx)
213020  , p_source_91 => l_array_source_91(Idx)
213021  , p_source_92 => l_array_source_92(Idx)
213022  , p_source_93 => l_array_source_93(Idx)
213023  , p_source_94 => l_array_source_94(Idx)
213024  , p_source_95 => l_array_source_95(Idx)
213025  , p_source_96 => l_array_source_96(Idx)
213026  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
213027  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
213028  , p_source_104 => l_array_source_104(Idx)
213029  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
213030  , p_source_147 => l_array_source_147(Idx)
213031  );
213032 If(l_balance_type_code = 'A') THEN
213033   l_actual_gain_loss_ref := l_gain_or_loss_ref;
213034 END IF;
213035 
213036 --
213037 
213038 
213039 --
213040 AcctLineType_142 (
213041  p_application_id  => p_application_id
213042  ,p_event_id     => l_event_id
213043  ,p_calculate_acctd_flag => l_calculate_acctd_flag
213044  ,p_calculate_g_l_flag => l_calculate_g_l_flag
213045  ,p_actual_flag => l_actual_flag
213046  ,p_balance_type_code => l_balance_type_code
213047  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
213048  
213049  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
213050  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
213051  , p_source_18 => l_array_source_18(Idx)
213052  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
213053  , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
213054  , p_source_41 => l_array_source_41(Idx)
213055  , p_source_43 => l_array_source_43(Idx)
213056  , p_source_68 => l_array_source_68(Idx)
213057  , p_source_68_meaning => l_array_source_68_meaning(Idx)
213058  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
213059  , p_source_74 => l_array_source_74(Idx)
213060  , p_source_76 => l_array_source_76(Idx)
213061  , p_source_79 => l_array_source_79(Idx)
213062  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
213063  , p_source_90 => l_array_source_90(Idx)
213064  , p_source_90_meaning => l_array_source_90_meaning(Idx)
213065  , p_source_91 => l_array_source_91(Idx)
213066  , p_source_92 => l_array_source_92(Idx)
213067  , p_source_93 => l_array_source_93(Idx)
213068  , p_source_94 => l_array_source_94(Idx)
213069  , p_source_95 => l_array_source_95(Idx)
213070  , p_source_96 => l_array_source_96(Idx)
213071  , p_source_98 => g_array_event(l_event_id).array_value_date('source_98')
213072  , p_source_99 => g_array_event(l_event_id).array_value_num('source_99')
213073  , p_source_100 => g_array_event(l_event_id).array_value_char('source_100')
213074  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
213075  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
213076  , p_source_104 => l_array_source_104(Idx)
213077  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
213078  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
213079  , p_source_151 => l_array_source_151(Idx)
213080  , p_source_152 => l_array_source_152(Idx)
213081  );
213082 If(l_balance_type_code = 'A') THEN
213083   l_actual_gain_loss_ref := l_gain_or_loss_ref;
213084 END IF;
213085 
213086 --
213087 
213088 
213089 --
213090 AcctLineType_144 (
213091  p_application_id  => p_application_id
213092  ,p_event_id     => l_event_id
213093  ,p_calculate_acctd_flag => l_calculate_acctd_flag
213094  ,p_calculate_g_l_flag => l_calculate_g_l_flag
213095  ,p_actual_flag => l_actual_flag
213096  ,p_balance_type_code => l_balance_type_code
213097  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
213098  
213099  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
213100  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
213101  , p_source_18 => l_array_source_18(Idx)
213102  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
213103  , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
213104  , p_source_41 => l_array_source_41(Idx)
213105  , p_source_43 => l_array_source_43(Idx)
213106  , p_source_68 => l_array_source_68(Idx)
213107  , p_source_68_meaning => l_array_source_68_meaning(Idx)
213108  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
213109  , p_source_74 => l_array_source_74(Idx)
213110  , p_source_76 => l_array_source_76(Idx)
213111  , p_source_79 => l_array_source_79(Idx)
213112  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
213113  , p_source_90 => l_array_source_90(Idx)
213114  , p_source_90_meaning => l_array_source_90_meaning(Idx)
213115  , p_source_91 => l_array_source_91(Idx)
213116  , p_source_92 => l_array_source_92(Idx)
213117  , p_source_93 => l_array_source_93(Idx)
213118  , p_source_94 => l_array_source_94(Idx)
213119  , p_source_95 => l_array_source_95(Idx)
213120  , p_source_96 => l_array_source_96(Idx)
213121  , p_source_98 => g_array_event(l_event_id).array_value_date('source_98')
213122  , p_source_99 => g_array_event(l_event_id).array_value_num('source_99')
213123  , p_source_100 => g_array_event(l_event_id).array_value_char('source_100')
213127  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
213124  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
213125  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
213126  , p_source_104 => l_array_source_104(Idx)
213128  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
213129  , p_source_154 => l_array_source_154(Idx)
213130  , p_source_155 => l_array_source_155(Idx)
213131  );
213132 If(l_balance_type_code = 'A') THEN
213133   l_actual_gain_loss_ref := l_gain_or_loss_ref;
213134 END IF;
213135 
213136 --
213137 
213138 
213139 --
213140 AcctLineType_148 (
213141  p_application_id  => p_application_id
213142  ,p_event_id     => l_event_id
213143  ,p_calculate_acctd_flag => l_calculate_acctd_flag
213144  ,p_calculate_g_l_flag => l_calculate_g_l_flag
213145  ,p_actual_flag => l_actual_flag
213146  ,p_balance_type_code => l_balance_type_code
213147  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
213148  
213149  , p_source_16 => g_array_event(l_event_id).array_value_num('source_16')
213150  , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
213151  , p_source_18 => l_array_source_18(Idx)
213152  , p_source_21 => l_array_source_21(Idx)
213153  , p_source_21_meaning => l_array_source_21_meaning(Idx)
213154  , p_source_41 => l_array_source_41(Idx)
213155  , p_source_43 => l_array_source_43(Idx)
213156  , p_source_68 => l_array_source_68(Idx)
213157  , p_source_68_meaning => l_array_source_68_meaning(Idx)
213158  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
213159  , p_source_74 => l_array_source_74(Idx)
213160  , p_source_76 => l_array_source_76(Idx)
213161  , p_source_79 => l_array_source_79(Idx)
213162  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
213163  , p_source_90 => l_array_source_90(Idx)
213164  , p_source_90_meaning => l_array_source_90_meaning(Idx)
213165  , p_source_91 => l_array_source_91(Idx)
213166  , p_source_92 => l_array_source_92(Idx)
213167  , p_source_93 => l_array_source_93(Idx)
213168  , p_source_94 => l_array_source_94(Idx)
213169  , p_source_95 => l_array_source_95(Idx)
213170  , p_source_96 => l_array_source_96(Idx)
213171  , p_source_98 => g_array_event(l_event_id).array_value_date('source_98')
213172  , p_source_99 => g_array_event(l_event_id).array_value_num('source_99')
213173  , p_source_100 => g_array_event(l_event_id).array_value_char('source_100')
213174  , p_source_101 => l_array_source_101(Idx)
213175  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
213176  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
213177  , p_source_104 => l_array_source_104(Idx)
213178  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
213179  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
213180  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
213181  , p_source_158 => l_array_source_158(Idx)
213182  , p_source_158_meaning => l_array_source_158_meaning(Idx)
213183  );
213184 If(l_balance_type_code = 'A') THEN
213185   l_actual_gain_loss_ref := l_gain_or_loss_ref;
213186 END IF;
213187 
213188 --
213189 
213190 
213191 --
213192 AcctLineType_165 (
213193  p_application_id  => p_application_id
213194  ,p_event_id     => l_event_id
213195  ,p_calculate_acctd_flag => l_calculate_acctd_flag
213196  ,p_calculate_g_l_flag => l_calculate_g_l_flag
213197  ,p_actual_flag => l_actual_flag
213198  ,p_balance_type_code => l_balance_type_code
213199  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
213200  
213201  , p_source_41 => l_array_source_41(Idx)
213202  , p_source_43 => l_array_source_43(Idx)
213203  , p_source_68 => l_array_source_68(Idx)
213204  , p_source_68_meaning => l_array_source_68_meaning(Idx)
213205  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
213206  , p_source_74 => l_array_source_74(Idx)
213207  , p_source_76 => l_array_source_76(Idx)
213208  , p_source_79 => l_array_source_79(Idx)
213209  , p_source_80 => l_array_source_80(Idx)
213210  , p_source_81 => l_array_source_81(Idx)
213211  , p_source_82 => l_array_source_82(Idx)
213212  , p_source_83 => l_array_source_83(Idx)
213213  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
213214  , p_source_90 => l_array_source_90(Idx)
213215  , p_source_90_meaning => l_array_source_90_meaning(Idx)
213216  , p_source_91 => l_array_source_91(Idx)
213217  , p_source_96 => l_array_source_96(Idx)
213218  , p_source_104 => l_array_source_104(Idx)
213219  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
213220  , p_source_109 => l_array_source_109(Idx)
213221  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
213222  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
213223  , p_source_158 => l_array_source_158(Idx)
213224  , p_source_158_meaning => l_array_source_158_meaning(Idx)
213225  , p_source_160 => l_array_source_160(Idx)
213226  , p_source_160_meaning => l_array_source_160_meaning(Idx)
213227  );
213228 If(l_balance_type_code = 'A') THEN
213229   l_actual_gain_loss_ref := l_gain_or_loss_ref;
213230 END IF;
213231 
213232 --
213233 
213234 
213235 --
213236 AcctLineType_167 (
213237  p_application_id  => p_application_id
213238  ,p_event_id     => l_event_id
213239  ,p_calculate_acctd_flag => l_calculate_acctd_flag
213240  ,p_calculate_g_l_flag => l_calculate_g_l_flag
213241  ,p_actual_flag => l_actual_flag
213242  ,p_balance_type_code => l_balance_type_code
213243  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
213244  
213245  , p_source_41 => l_array_source_41(Idx)
213246  , p_source_43 => l_array_source_43(Idx)
213247  , p_source_68 => l_array_source_68(Idx)
213251  , p_source_76 => l_array_source_76(Idx)
213248  , p_source_68_meaning => l_array_source_68_meaning(Idx)
213249  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
213250  , p_source_74 => l_array_source_74(Idx)
213252  , p_source_79 => l_array_source_79(Idx)
213253  , p_source_80 => l_array_source_80(Idx)
213254  , p_source_81 => l_array_source_81(Idx)
213255  , p_source_82 => l_array_source_82(Idx)
213256  , p_source_83 => l_array_source_83(Idx)
213257  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
213258  , p_source_90 => l_array_source_90(Idx)
213259  , p_source_90_meaning => l_array_source_90_meaning(Idx)
213260  , p_source_91 => l_array_source_91(Idx)
213261  , p_source_96 => l_array_source_96(Idx)
213262  , p_source_104 => l_array_source_104(Idx)
213263  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
213264  , p_source_109 => l_array_source_109(Idx)
213265  , p_source_158 => l_array_source_158(Idx)
213266  , p_source_158_meaning => l_array_source_158_meaning(Idx)
213267  );
213268 If(l_balance_type_code = 'A') THEN
213269   l_actual_gain_loss_ref := l_gain_or_loss_ref;
213270 END IF;
213271 
213272 --
213273 
213274 
213275 --
213276 AcctLineType_183 (
213277  p_application_id  => p_application_id
213278  ,p_event_id     => l_event_id
213279  ,p_calculate_acctd_flag => l_calculate_acctd_flag
213280  ,p_calculate_g_l_flag => l_calculate_g_l_flag
213281  ,p_actual_flag => l_actual_flag
213282  ,p_balance_type_code => l_balance_type_code
213283  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
213284  
213285  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
213286  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
213287  , p_source_18 => l_array_source_18(Idx)
213288  , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
213289  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
213290  , p_source_41 => l_array_source_41(Idx)
213291  , p_source_43 => l_array_source_43(Idx)
213292  , p_source_68 => l_array_source_68(Idx)
213293  , p_source_68_meaning => l_array_source_68_meaning(Idx)
213294  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
213295  , p_source_74 => l_array_source_74(Idx)
213296  , p_source_76 => l_array_source_76(Idx)
213297  , p_source_79 => l_array_source_79(Idx)
213298  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
213299  , p_source_90 => l_array_source_90(Idx)
213300  , p_source_90_meaning => l_array_source_90_meaning(Idx)
213301  , p_source_91 => l_array_source_91(Idx)
213302  , p_source_92 => l_array_source_92(Idx)
213303  , p_source_93 => l_array_source_93(Idx)
213304  , p_source_94 => l_array_source_94(Idx)
213305  , p_source_95 => l_array_source_95(Idx)
213306  , p_source_96 => l_array_source_96(Idx)
213307  , p_source_98 => g_array_event(l_event_id).array_value_date('source_98')
213308  , p_source_99 => g_array_event(l_event_id).array_value_num('source_99')
213309  , p_source_100 => g_array_event(l_event_id).array_value_char('source_100')
213310  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
213311  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
213312  , p_source_104 => l_array_source_104(Idx)
213313  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
213314  , p_source_146 => l_array_source_146(Idx)
213315  , p_source_147 => l_array_source_147(Idx)
213316  );
213317 If(l_balance_type_code = 'A') THEN
213318   l_actual_gain_loss_ref := l_gain_or_loss_ref;
213319 END IF;
213320 
213321 --
213322 
213323 
213324 --
213325 AcctLineType_184 (
213326  p_application_id  => p_application_id
213327  ,p_event_id     => l_event_id
213328  ,p_calculate_acctd_flag => l_calculate_acctd_flag
213329  ,p_calculate_g_l_flag => l_calculate_g_l_flag
213330  ,p_actual_flag => l_actual_flag
213331  ,p_balance_type_code => l_balance_type_code
213332  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
213333  
213334  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
213335  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
213336  , p_source_18 => l_array_source_18(Idx)
213337  , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
213338  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
213339  , p_source_41 => l_array_source_41(Idx)
213340  , p_source_43 => l_array_source_43(Idx)
213341  , p_source_68 => l_array_source_68(Idx)
213342  , p_source_68_meaning => l_array_source_68_meaning(Idx)
213343  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
213344  , p_source_74 => l_array_source_74(Idx)
213345  , p_source_76 => l_array_source_76(Idx)
213346  , p_source_79 => l_array_source_79(Idx)
213347  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
213348  , p_source_90 => l_array_source_90(Idx)
213349  , p_source_90_meaning => l_array_source_90_meaning(Idx)
213350  , p_source_91 => l_array_source_91(Idx)
213351  , p_source_92 => l_array_source_92(Idx)
213352  , p_source_93 => l_array_source_93(Idx)
213353  , p_source_94 => l_array_source_94(Idx)
213354  , p_source_95 => l_array_source_95(Idx)
213355  , p_source_96 => l_array_source_96(Idx)
213356  , p_source_98 => g_array_event(l_event_id).array_value_date('source_98')
213357  , p_source_99 => g_array_event(l_event_id).array_value_num('source_99')
213358  , p_source_100 => g_array_event(l_event_id).array_value_char('source_100')
213359  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
213360  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
213361  , p_source_104 => l_array_source_104(Idx)
213362  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
213363  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
213364  , p_source_151 => l_array_source_151(Idx)
213368   l_actual_gain_loss_ref := l_gain_or_loss_ref;
213365  , p_source_152 => l_array_source_152(Idx)
213366  );
213367 If(l_balance_type_code = 'A') THEN
213369 END IF;
213370 
213371 --
213372 
213373 
213374 --
213375 AcctLineType_186 (
213376  p_application_id  => p_application_id
213377  ,p_event_id     => l_event_id
213378  ,p_calculate_acctd_flag => l_calculate_acctd_flag
213379  ,p_calculate_g_l_flag => l_calculate_g_l_flag
213380  ,p_actual_flag => l_actual_flag
213381  ,p_balance_type_code => l_balance_type_code
213382  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
213383  
213384  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
213385  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
213386  , p_source_18 => l_array_source_18(Idx)
213387  , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
213388  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
213389  , p_source_41 => l_array_source_41(Idx)
213390  , p_source_43 => l_array_source_43(Idx)
213391  , p_source_68 => l_array_source_68(Idx)
213392  , p_source_68_meaning => l_array_source_68_meaning(Idx)
213393  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
213394  , p_source_74 => l_array_source_74(Idx)
213395  , p_source_76 => l_array_source_76(Idx)
213396  , p_source_79 => l_array_source_79(Idx)
213397  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
213398  , p_source_90 => l_array_source_90(Idx)
213399  , p_source_90_meaning => l_array_source_90_meaning(Idx)
213400  , p_source_91 => l_array_source_91(Idx)
213401  , p_source_92 => l_array_source_92(Idx)
213402  , p_source_93 => l_array_source_93(Idx)
213403  , p_source_94 => l_array_source_94(Idx)
213404  , p_source_95 => l_array_source_95(Idx)
213405  , p_source_96 => l_array_source_96(Idx)
213406  , p_source_98 => g_array_event(l_event_id).array_value_date('source_98')
213407  , p_source_99 => g_array_event(l_event_id).array_value_num('source_99')
213408  , p_source_100 => g_array_event(l_event_id).array_value_char('source_100')
213409  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
213410  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
213411  , p_source_104 => l_array_source_104(Idx)
213412  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
213413  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
213414  , p_source_154 => l_array_source_154(Idx)
213415  , p_source_155 => l_array_source_155(Idx)
213416  );
213417 If(l_balance_type_code = 'A') THEN
213418   l_actual_gain_loss_ref := l_gain_or_loss_ref;
213419 END IF;
213420 
213421 --
213422 
213423 
213424 --
213425 AcctLineType_190 (
213426  p_application_id  => p_application_id
213427  ,p_event_id     => l_event_id
213428  ,p_calculate_acctd_flag => l_calculate_acctd_flag
213429  ,p_calculate_g_l_flag => l_calculate_g_l_flag
213430  ,p_actual_flag => l_actual_flag
213431  ,p_balance_type_code => l_balance_type_code
213432  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
213433  
213434  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
213435  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
213436  , p_source_18 => l_array_source_18(Idx)
213437  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
213438  , p_source_41 => l_array_source_41(Idx)
213439  , p_source_43 => l_array_source_43(Idx)
213440  , p_source_68 => l_array_source_68(Idx)
213441  , p_source_68_meaning => l_array_source_68_meaning(Idx)
213442  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
213443  , p_source_74 => l_array_source_74(Idx)
213444  , p_source_76 => l_array_source_76(Idx)
213445  , p_source_79 => l_array_source_79(Idx)
213446  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
213447  , p_source_90 => l_array_source_90(Idx)
213448  , p_source_90_meaning => l_array_source_90_meaning(Idx)
213449  , p_source_91 => l_array_source_91(Idx)
213450  , p_source_92 => l_array_source_92(Idx)
213451  , p_source_93 => l_array_source_93(Idx)
213452  , p_source_94 => l_array_source_94(Idx)
213453  , p_source_95 => l_array_source_95(Idx)
213454  , p_source_96 => l_array_source_96(Idx)
213455  , p_source_98 => g_array_event(l_event_id).array_value_date('source_98')
213456  , p_source_99 => g_array_event(l_event_id).array_value_num('source_99')
213457  , p_source_100 => g_array_event(l_event_id).array_value_char('source_100')
213458  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
213459  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
213460  , p_source_104 => l_array_source_104(Idx)
213461  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
213462  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
213463  , p_source_114 => l_array_source_114(Idx)
213464  );
213465 If(l_balance_type_code = 'A') THEN
213466   l_actual_gain_loss_ref := l_gain_or_loss_ref;
213467 END IF;
213468 
213469 --
213470 
213471 
213472 --
213473 AcctLineType_212 (
213474  p_application_id  => p_application_id
213475  ,p_event_id     => l_event_id
213476  ,p_calculate_acctd_flag => l_calculate_acctd_flag
213477  ,p_calculate_g_l_flag => l_calculate_g_l_flag
213478  ,p_actual_flag => l_actual_flag
213479  ,p_balance_type_code => l_balance_type_code
213480  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
213481  
213482  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
213483  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
213484  , p_source_18 => l_array_source_18(Idx)
213485  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
213486  , p_source_41 => l_array_source_41(Idx)
213487  , p_source_43 => l_array_source_43(Idx)
213488  , p_source_68 => l_array_source_68(Idx)
213492  , p_source_76 => l_array_source_76(Idx)
213489  , p_source_68_meaning => l_array_source_68_meaning(Idx)
213490  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
213491  , p_source_74 => l_array_source_74(Idx)
213493  , p_source_79 => l_array_source_79(Idx)
213494  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
213495  , p_source_90 => l_array_source_90(Idx)
213496  , p_source_90_meaning => l_array_source_90_meaning(Idx)
213497  , p_source_91 => l_array_source_91(Idx)
213498  , p_source_92 => l_array_source_92(Idx)
213499  , p_source_93 => l_array_source_93(Idx)
213500  , p_source_94 => l_array_source_94(Idx)
213501  , p_source_95 => l_array_source_95(Idx)
213502  , p_source_96 => l_array_source_96(Idx)
213503  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
213504  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
213505  , p_source_104 => l_array_source_104(Idx)
213506  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
213507  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
213508  , p_source_108 => l_array_source_108(Idx)
213509  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
213510  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
213511  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
213512  );
213513 If(l_balance_type_code = 'A') THEN
213514   l_actual_gain_loss_ref := l_gain_or_loss_ref;
213515 END IF;
213516 
213517 --
213518 
213519 
213520 --
213521 AcctLineType_285 (
213522  p_application_id  => p_application_id
213523  ,p_event_id     => l_event_id
213524  ,p_calculate_acctd_flag => l_calculate_acctd_flag
213525  ,p_calculate_g_l_flag => l_calculate_g_l_flag
213526  ,p_actual_flag => l_actual_flag
213527  ,p_balance_type_code => l_balance_type_code
213528  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
213529  
213530  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
213531  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
213532  , p_source_18 => l_array_source_18(Idx)
213533  , p_source_31 => l_array_source_31(Idx)
213534  , p_source_41 => l_array_source_41(Idx)
213535  , p_source_43 => l_array_source_43(Idx)
213536  , p_source_68 => l_array_source_68(Idx)
213537  , p_source_68_meaning => l_array_source_68_meaning(Idx)
213538  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
213539  , p_source_74 => l_array_source_74(Idx)
213540  , p_source_76 => l_array_source_76(Idx)
213541  , p_source_79 => l_array_source_79(Idx)
213542  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
213543  , p_source_90 => l_array_source_90(Idx)
213544  , p_source_90_meaning => l_array_source_90_meaning(Idx)
213545  , p_source_91 => l_array_source_91(Idx)
213546  , p_source_92 => l_array_source_92(Idx)
213547  , p_source_93 => l_array_source_93(Idx)
213548  , p_source_94 => l_array_source_94(Idx)
213549  , p_source_95 => l_array_source_95(Idx)
213550  , p_source_96 => l_array_source_96(Idx)
213551  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
213552  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
213553  , p_source_104 => l_array_source_104(Idx)
213554  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
213555  , p_source_109 => l_array_source_109(Idx)
213556  , p_source_136 => l_array_source_136(Idx)
213557  , p_source_137 => l_array_source_137(Idx)
213558  , p_source_138 => l_array_source_138(Idx)
213559  , p_source_160 => l_array_source_160(Idx)
213560  , p_source_160_meaning => l_array_source_160_meaning(Idx)
213561  );
213562 If(l_balance_type_code = 'A') THEN
213563   l_actual_gain_loss_ref := l_gain_or_loss_ref;
213564 END IF;
213565 
213566 --
213567 
213568       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
213569       -- or secondary ledger that has different currency with primary
213570       -- or alc that is calculated by sla
213571       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
213572             (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'))
213573 
213574 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
213575 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
213576           AND (l_actual_flag = 'A')) THEN
213577         XLA_AE_LINES_PKG.CreateGainOrLossLines(
213578           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
213579          ,p_application_id   => p_application_id
213580          ,p_amb_context_code => 'DEFAULT'
213581          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
213582          ,p_event_class_code => C_EVENT_CLASS_CODE
213583          ,p_event_type_code  => C_EVENT_TYPE_CODE
213584          
213585          ,p_gain_ccid        => -1
213586          ,p_loss_ccid        => -1
213587 
213588          ,p_actual_flag      => l_actual_flag
213589          ,p_enc_flag         => null
213590          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
213591          ,p_enc_g_l_ref      => null
213592          );
213593       END IF;
213594    END IF;
213595 END IF;
213596 
213597    ELSE
213598       --
213599       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
213600       --
213601       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
213602          trace
213603             (p_msg      => 'Trancaction revesal option is Y'
213607    END IF;
213604             ,p_level    => C_LEVEL_STATEMENT
213605             ,p_module   => l_log_module);
213606       END IF;
213608 
213609 END LOOP;
213610 l_result := XLA_AE_LINES_PKG.InsertLines ;
213611 end loop;
213612 close line_cur;
213613 
213614 
213615 --
213616 -- insert headers into xla_ae_headers_gt table
213617 --
213618 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
213619 
213620 -- insert into errors table here.
213621 
213622 END LOOP;
213623 
213624 --
213625 -- 4865292
213626 --
213627 -- Compare g_hdr_extract_count with event count in
213628 -- CreateHeadersAndLines.
213629 --
213630 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
213631 
213632 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
213633    trace (p_msg     => '# rows extracted from header extract objects '
213634                     || ' (running total): '
213635                     || g_hdr_extract_count
213636          ,p_level   => C_LEVEL_STATEMENT
213637          ,p_module  => l_log_module);
213638 END IF;
213639 
213640 CLOSE header_cur;
213641 --
213642 
213643 --
213644 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
213645    trace
213646       (p_msg      => 'END of EventClass_301'
213647       ,p_level    => C_LEVEL_PROCEDURE
213648       ,p_module   => l_log_module);
213649 END IF;
213650 --
213651 RETURN l_result;
213652 EXCEPTION
213653 WHEN xla_exceptions_pkg.application_exception THEN
213654    
213655 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
213656 
213657    
213658 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
213659 
213660    RAISE;
213661 
213662 WHEN NO_DATA_FOUND THEN
213663 
213664 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
213665 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
213666 
213667 FOR header_record IN header_cur
213668 LOOP
213669     l_array_header_events(header_record.event_id) := header_record.event_id;
213670 END LOOP;
213671 
213672 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
213673 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
213674 
213675 fnd_file.put_line(fnd_file.LOG, '                    ');
213676 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
213677 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
213678 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
213679 
213680 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
213681 LOOP
213682 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
213683 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
213684         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
213685 	END IF;
213686 END LOOP;
213687 
213688 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
213689 fnd_file.put_line(fnd_file.LOG, '                    ');
213690 
213691 
213692 xla_exceptions_pkg.raise_message
213693       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_301');
213694 
213695 
213696 WHEN OTHERS THEN
213697    xla_exceptions_pkg.raise_message
213698       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_301');
213699 END EventClass_301;
213700 --
213701 
213702 ---------------------------------------
213703 --
213704 -- PRIVATE PROCEDURE
213705 --         insert_sources_302
213706 --
213707 ----------------------------------------
213708 --
213709 PROCEDURE insert_sources_302(
213710                                 p_target_ledger_id       IN NUMBER
213711                               , p_language               IN VARCHAR2
213712                               , p_sla_ledger_id          IN NUMBER
213713                               , p_pad_start_date         IN DATE
213714                               , p_pad_end_date           IN DATE
213715                          )
213716 IS
213717 
213718 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'REFUNDS_ALL';
213719 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'REFUNDS';
213720 p_apps_owner                   VARCHAR2(30);
213721 l_log_module                   VARCHAR2(240);
213722 BEGIN
213723 IF g_log_enabled THEN
213724       l_log_module := C_DEFAULT_MODULE||'.insert_sources_302';
213725 END IF;
213726 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
213727 
213728       trace
213729          (p_msg      => 'BEGIN of insert_sources_302'
213730          ,p_level    => C_LEVEL_PROCEDURE
213731          ,p_module   => l_log_module);
213732 
213733 END IF;
213734 
213735 -- select APPS owner
213736 SELECT oracle_username
213737   INTO p_apps_owner
213738   FROM fnd_oracle_userid
213739  WHERE read_only_flag = 'U'
213740 ;
213741 
213742 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
213743       trace
213744          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
213745                         ' - p_language = '||p_language||
213746                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
213747                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
213748                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
213749                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
213750          ,p_level    => C_LEVEL_STATEMENT
213751          ,p_module   => l_log_module);
213752 END IF;
213753 
213754 
213755 --
213756 INSERT INTO xla_diag_sources --hdr2
213757 (
213758         event_id
213759       , ledger_id
213763       , object_type_code
213760       , sla_ledger_id
213761       , description_language
213762       , object_name
213764       , line_number
213765       , source_application_id
213766       , source_type_code
213767       , source_code
213768       , source_value
213769       , source_meaning
213770       , created_by
213771       , creation_date
213772       , last_update_date
213773       , last_updated_by
213774       , last_update_login
213775       , program_update_date
213776       , program_application_id
213777       , program_id
213778       , request_id
213779 )
213780 SELECT
213781         event_id
213782       , p_target_ledger_id
213783       , p_sla_ledger_id
213784       , p_language
213785       , object_name
213786       , object_type_code
213787       , line_number
213788       , source_application_id
213789       , source_type_code
213790       , source_code
213791       , SUBSTR(source_value ,1,1996)
213792       , SUBSTR(source_meaning ,1,200)
213793       , xla_environment_pkg.g_Usr_Id
213794       , TRUNC(SYSDATE)
213795       , TRUNC(SYSDATE)
213796       , xla_environment_pkg.g_Usr_Id
213797       , xla_environment_pkg.g_Login_Id
213798       , TRUNC(SYSDATE)
213799       , xla_environment_pkg.g_Prog_Appl_Id
213800       , xla_environment_pkg.g_Prog_Id
213801       , xla_environment_pkg.g_Req_Id
213802   FROM (
213803        SELECT xet.event_id                  event_id
213804             , 0                          line_number
213805             , CASE r
213806                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
213807                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213808                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
213809                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
213810                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213811                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213812                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
213813                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213814                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
213815                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
213816                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
213817                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
213818                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213819                 WHEN 14 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
213820                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213821                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213822                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213823                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213824                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213825                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213826                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213827                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213828                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213829                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213830                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213831                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213832                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
213833                 
213834                ELSE null
213835               END                           object_name
213836             , CASE r
213837                 WHEN 1 THEN 'HEADER' 
213838                 WHEN 2 THEN 'HEADER' 
213839                 WHEN 3 THEN 'HEADER' 
213840                 WHEN 4 THEN 'HEADER' 
213841                 WHEN 5 THEN 'HEADER' 
213842                 WHEN 6 THEN 'HEADER' 
213843                 WHEN 7 THEN 'HEADER' 
213844                 WHEN 8 THEN 'HEADER' 
213845                 WHEN 9 THEN 'HEADER' 
213846                 WHEN 10 THEN 'HEADER' 
213847                 WHEN 11 THEN 'HEADER' 
213848                 WHEN 12 THEN 'HEADER' 
213849                 WHEN 13 THEN 'HEADER' 
213850                 WHEN 14 THEN 'HEADER' 
213851                 WHEN 15 THEN 'HEADER' 
213852                 WHEN 16 THEN 'HEADER' 
213853                 WHEN 17 THEN 'HEADER' 
213854                 WHEN 18 THEN 'HEADER' 
213855                 WHEN 19 THEN 'HEADER' 
213856                 WHEN 20 THEN 'HEADER' 
213857                 WHEN 21 THEN 'HEADER' 
213858                 WHEN 22 THEN 'HEADER' 
213859                 WHEN 23 THEN 'HEADER' 
213860                 WHEN 24 THEN 'HEADER' 
213861                 WHEN 25 THEN 'HEADER' 
213862                 WHEN 26 THEN 'HEADER' 
213863                 WHEN 27 THEN 'HEADER' 
213864                 
213865                 ELSE null
213866               END                           object_type_code
213867             , CASE r
213868                 WHEN 1 THEN '200' 
213869                 WHEN 2 THEN '200' 
213870                 WHEN 3 THEN '200' 
213871                 WHEN 4 THEN '200' 
213872                 WHEN 5 THEN '200' 
213873                 WHEN 6 THEN '200' 
213874                 WHEN 7 THEN '200' 
213875                 WHEN 8 THEN '200' 
213876                 WHEN 9 THEN '200' 
213877                 WHEN 10 THEN '200' 
213878                 WHEN 11 THEN '200' 
213879                 WHEN 12 THEN '200' 
213880                 WHEN 13 THEN '200' 
213881                 WHEN 14 THEN '200' 
213882                 WHEN 15 THEN '200' 
213883                 WHEN 16 THEN '200' 
213884                 WHEN 17 THEN '200' 
213885                 WHEN 18 THEN '200' 
213886                 WHEN 19 THEN '200' 
213887                 WHEN 20 THEN '200' 
213888                 WHEN 21 THEN '200' 
213892                 WHEN 25 THEN '200' 
213889                 WHEN 22 THEN '200' 
213890                 WHEN 23 THEN '200' 
213891                 WHEN 24 THEN '200' 
213893                 WHEN 26 THEN '200' 
213894                 WHEN 27 THEN '200' 
213895                 
213896                 ELSE null
213897               END                           source_application_id
213898             , 'S'             source_type_code
213899             , CASE r
213900                 WHEN 1 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
213901                 WHEN 2 THEN 'CGAC_AP_ASSET_CCID' 
213902                 WHEN 3 THEN 'FSP_DISC_TAKEN_CCID' 
213903                 WHEN 4 THEN 'ASP_DISCOUNT_DIST_METHOD' 
213904                 WHEN 5 THEN 'CGAC_CASH_CLEARING_CCID' 
213905                 WHEN 6 THEN 'CGAC_GAIN_CCID' 
213906                 WHEN 7 THEN 'ASP_GAIN_CCID' 
213907                 WHEN 8 THEN 'CGAC_LOSS_CCID' 
213908                 WHEN 9 THEN 'ASP_LOSS_CCID' 
213909                 WHEN 10 THEN 'ASP_DISC_TAKEN_CCID' 
213910                 WHEN 11 THEN 'ASP_AUTO_OFFSET_FLAG' 
213911                 WHEN 12 THEN 'ASP_ROUNDING_ERROR_CCID' 
213912                 WHEN 13 THEN 'THIRD_PARTY_TYPE' 
213913                 WHEN 14 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
213914                 WHEN 15 THEN 'AC_VENDOR_ID' 
213915                 WHEN 16 THEN 'AC_VENDOR_SITE_ID' 
213916                 WHEN 17 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
213917                 WHEN 18 THEN 'AC_CURRENCY_CODE' 
213918                 WHEN 19 THEN 'AC_FUTURE_PAY_DUE_DATE' 
213919                 WHEN 20 THEN 'AC_EXCHANGE_DATE' 
213920                 WHEN 21 THEN 'AC_EXCHANGE_RATE' 
213921                 WHEN 22 THEN 'AC_EXCHANGE_RATE_TYPE' 
213922                 WHEN 23 THEN 'PAYMENT_TYPE' 
213923                 WHEN 24 THEN 'AC_DOC_CATEGORY_CODE' 
213924                 WHEN 25 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
213925                 WHEN 26 THEN 'AC_DOC_SEQUENCE_VALUE' 
213926                 WHEN 27 THEN 'TRANSAC_REVERSAL_FLAG' 
213927                 
213928                 ELSE null
213929               END                           source_code
213930             , CASE r
213931                 WHEN 1 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
213932                 WHEN 2 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
213933                 WHEN 3 THEN TO_CHAR(h3.FSP_DISC_TAKEN_CCID)
213934                 WHEN 4 THEN TO_CHAR(h3.ASP_DISCOUNT_DIST_METHOD)
213935                 WHEN 5 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
213936                 WHEN 6 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
213937                 WHEN 7 THEN TO_CHAR(h3.ASP_GAIN_CCID)
213938                 WHEN 8 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
213939                 WHEN 9 THEN TO_CHAR(h3.ASP_LOSS_CCID)
213940                 WHEN 10 THEN TO_CHAR(h3.ASP_DISC_TAKEN_CCID)
213941                 WHEN 11 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
213942                 WHEN 12 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
213943                 WHEN 13 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
213944                 WHEN 14 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
213945                 WHEN 15 THEN TO_CHAR(h2.AC_VENDOR_ID)
213946                 WHEN 16 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
213947                 WHEN 17 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
213948                 WHEN 18 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
213949                 WHEN 19 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
213950                 WHEN 20 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
213951                 WHEN 21 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
213952                 WHEN 22 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
213953                 WHEN 23 THEN TO_CHAR(h2.PAYMENT_TYPE)
213954                 WHEN 24 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
213955                 WHEN 25 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
213956                 WHEN 26 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
213957                 WHEN 27 THEN TO_CHAR(h2.TRANSAC_REVERSAL_FLAG)
213958                 
213959                 ELSE null
213960               END                           source_value
213961             , CASE r
213962                 WHEN 1 THEN fvl3.meaning
213963                 WHEN 4 THEN fvl7.meaning
213964                 WHEN 11 THEN fvl35.meaning
213965                 WHEN 17 THEN fvl105.meaning
213966                 WHEN 23 THEN fvl115.meaning
213967                 WHEN 27 THEN fvl185.meaning
213968                 
213969                 ELSE null
213970               END               source_meaning
213971          FROM xla_events_gt     xet  
213972       , AP_PAYMENT_EXTRACT_HEADER_V  h2
213973       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
213974   , fnd_lookup_values    fvl3
213975   , fnd_lookup_values    fvl7
213976   , fnd_lookup_values    fvl35
213977   , fnd_lookup_values    fvl105
213978   , fnd_lookup_values    fvl115
213979   , fnd_lookup_values    fvl185
213980              ,(select rownum r from all_objects where rownum <= 27 and owner = p_apps_owner)
213981          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
213982            AND xet.event_class_code = C_EVENT_CLASS_CODE
213983               AND h2.event_id = xet.event_id
213984  AND h3.asp_org_id = h2.ac_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
213985   AND fvl3.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
213986   AND fvl3.view_application_id(+) = 200
213987   AND fvl3.language(+)            = USERENV('LANG')
213988      AND fvl7.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
213989   AND fvl7.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
213990   AND fvl7.view_application_id(+) = 200
213991   AND fvl7.language(+)            = USERENV('LANG')
213992      AND fvl35.lookup_type(+)         = 'YES_NO'
213993   AND fvl35.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
213994   AND fvl35.view_application_id(+) = 0
213995   AND fvl35.language(+)            = USERENV('LANG')
213996      AND fvl105.lookup_type(+)         = 'YES_NO'
213997   AND fvl105.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
214001   AND fvl115.lookup_code(+)         = h2.PAYMENT_TYPE
213998   AND fvl105.view_application_id(+) = 0
213999   AND fvl105.language(+)            = USERENV('LANG')
214000      AND fvl115.lookup_type(+)         = 'PAYMENT TYPE'
214002   AND fvl115.view_application_id(+) = 200
214003   AND fvl115.language(+)            = USERENV('LANG')
214004      AND fvl185.lookup_type(+)         = 'YES_NO'
214005   AND fvl185.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
214006   AND fvl185.view_application_id(+) = 0
214007   AND fvl185.language(+)            = USERENV('LANG')
214008   
214009 )
214010 ;
214011 --
214012 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
214013 
214014       trace
214015          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
214016          ,p_level    => C_LEVEL_STATEMENT
214017          ,p_module   => l_log_module);
214018 
214019 END IF;
214020 --
214021 
214022 
214023 
214024 --
214025 INSERT INTO xla_diag_sources  --line2
214026 (
214027         event_id
214028       , ledger_id
214029       , sla_ledger_id
214030       , description_language
214031       , object_name
214032       , object_type_code
214033       , line_number
214034       , source_application_id
214035       , source_type_code
214036       , source_code
214037       , source_value
214038       , source_meaning
214039       , created_by
214040       , creation_date
214041       , last_update_date
214042       , last_updated_by
214043       , last_update_login
214044       , program_update_date
214045       , program_application_id
214046       , program_id
214047       , request_id
214048 )
214049 SELECT  event_id
214050       , p_target_ledger_id
214051       , p_sla_ledger_id
214052       , p_language
214053       , object_name
214054       , object_type_code
214055       , line_number
214056       , source_application_id
214057       , source_type_code
214058       , source_code
214059       , SUBSTR(source_value,1,1996)
214060       , SUBSTR(source_meaning ,1,200)
214061       , xla_environment_pkg.g_Usr_Id
214062       , TRUNC(SYSDATE)
214063       , TRUNC(SYSDATE)
214064       , xla_environment_pkg.g_Usr_Id
214065       , xla_environment_pkg.g_Login_Id
214066       , TRUNC(SYSDATE)
214067       , xla_environment_pkg.g_Prog_Appl_Id
214068       , xla_environment_pkg.g_Prog_Id
214069       , xla_environment_pkg.g_Req_Id
214070   FROM (
214071        SELECT xet.event_id                  event_id
214072             , l1.line_number                 line_number
214073             , CASE r
214074                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214075                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214076                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214077                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214078                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214079                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214080                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214081                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214082                 WHEN 9 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
214083                 WHEN 10 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
214084                 WHEN 11 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
214085                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214086                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214087                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214088                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214089                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214090                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214091                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214092                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214093                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214094                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214095                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214096                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214097                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214098                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214099                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214100                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
214101                 
214102                ELSE null
214103               END                           object_name
214104             , CASE r
214105                 WHEN 1 THEN 'LINE' 
214106                 WHEN 2 THEN 'LINE' 
214107                 WHEN 3 THEN 'LINE' 
214108                 WHEN 4 THEN 'LINE' 
214109                 WHEN 5 THEN 'LINE' 
214110                 WHEN 6 THEN 'LINE' 
214111                 WHEN 7 THEN 'LINE' 
214112                 WHEN 8 THEN 'LINE' 
214113                 WHEN 9 THEN 'LINE' 
214114                 WHEN 10 THEN 'LINE' 
214115                 WHEN 11 THEN 'LINE' 
214116                 WHEN 12 THEN 'LINE' 
214117                 WHEN 13 THEN 'LINE' 
214118                 WHEN 14 THEN 'LINE' 
214119                 WHEN 15 THEN 'LINE' 
214120                 WHEN 16 THEN 'LINE' 
214121                 WHEN 17 THEN 'LINE' 
214122                 WHEN 18 THEN 'LINE' 
214123                 WHEN 19 THEN 'LINE' 
214124                 WHEN 20 THEN 'LINE' 
214125                 WHEN 21 THEN 'LINE' 
214126                 WHEN 22 THEN 'LINE' 
214127                 WHEN 23 THEN 'LINE' 
214128                 WHEN 24 THEN 'LINE' 
214129                 WHEN 25 THEN 'LINE' 
214130                 WHEN 26 THEN 'LINE' 
214131                 WHEN 27 THEN 'LINE' 
214132                 
214133                 ELSE null
214137                 WHEN 2 THEN '200' 
214134               END                           object_type_code
214135             , CASE r
214136                 WHEN 1 THEN '200' 
214138                 WHEN 3 THEN '200' 
214139                 WHEN 4 THEN '200' 
214140                 WHEN 5 THEN '200' 
214141                 WHEN 6 THEN '200' 
214142                 WHEN 7 THEN '200' 
214143                 WHEN 8 THEN '200' 
214144                 WHEN 9 THEN '200' 
214145                 WHEN 10 THEN '200' 
214146                 WHEN 11 THEN '200' 
214147                 WHEN 12 THEN '200' 
214148                 WHEN 13 THEN '200' 
214149                 WHEN 14 THEN '200' 
214150                 WHEN 15 THEN '200' 
214151                 WHEN 16 THEN '200' 
214152                 WHEN 17 THEN '200' 
214153                 WHEN 18 THEN '200' 
214154                 WHEN 19 THEN '200' 
214155                 WHEN 20 THEN '200' 
214156                 WHEN 21 THEN '200' 
214157                 WHEN 22 THEN '200' 
214158                 WHEN 23 THEN '200' 
214159                 WHEN 24 THEN '200' 
214160                 WHEN 25 THEN '200' 
214161                 WHEN 26 THEN '200' 
214162                 WHEN 27 THEN '200' 
214163                 
214164                 ELSE null
214165               END                           source_application_id
214166             , 'S'             source_type_code
214167             , CASE r
214168                 WHEN 1 THEN 'AID_DIST_CCID' 
214169                 WHEN 2 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
214170                 WHEN 3 THEN 'POD_CCID' 
214171                 WHEN 4 THEN 'PO_VARIANCE_ACCOUNT' 
214172                 WHEN 5 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
214173                 WHEN 6 THEN 'DISTRIBUTION_LINK_TYPE' 
214174                 WHEN 7 THEN 'AI_INVOICE_CURRENCY_CODE' 
214175                 WHEN 8 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
214176                 WHEN 9 THEN 'TAX_LINE_ID' 
214177                 WHEN 10 THEN 'REC_NREC_TAX_DIST_ID' 
214178                 WHEN 11 THEN 'SUMMARY_TAX_LINE_ID' 
214179                 WHEN 12 THEN 'BUS_FLOW_AP_APP_ID' 
214180                 WHEN 13 THEN 'BUS_FLOW_INV_DIST_TYPE' 
214181                 WHEN 14 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
214182                 WHEN 15 THEN 'BUS_FLOW_INV_DIST_ID' 
214183                 WHEN 16 THEN 'BUS_FLOW_INV_ID' 
214184                 WHEN 17 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
214185                 WHEN 18 THEN 'APHD_AMOUNT' 
214186                 WHEN 19 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
214187                 WHEN 20 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
214188                 WHEN 21 THEN 'APHD_PAYMENT_BASE_AMT' 
214189                 WHEN 22 THEN 'APHD_INVOICE_BASE_AMT' 
214190                 WHEN 23 THEN 'INV_EXCHANGE_DATE' 
214191                 WHEN 24 THEN 'INV_EXCHANGE_RATE' 
214192                 WHEN 25 THEN 'INV_EXCHANGE_RATE_TYPE' 
214193                 WHEN 26 THEN 'INV_PMT_BASE_AMT_DIFF' 
214194                 WHEN 27 THEN 'INV_PMT_GAIN_LOSS_INDICATOR' 
214195                 
214196                 ELSE null
214197               END                           source_code
214198             , CASE r
214199                 WHEN 1 THEN TO_CHAR(l1.AID_DIST_CCID)
214200                 WHEN 2 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
214201                 WHEN 3 THEN TO_CHAR(l1.POD_CCID)
214202                 WHEN 4 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
214203                 WHEN 5 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
214204                 WHEN 6 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
214205                 WHEN 7 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
214206                 WHEN 8 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
214207                 WHEN 9 THEN TO_CHAR(l4.TAX_LINE_ID)
214208                 WHEN 10 THEN TO_CHAR(l5.REC_NREC_TAX_DIST_ID)
214209                 WHEN 11 THEN TO_CHAR(l4.SUMMARY_TAX_LINE_ID)
214210                 WHEN 12 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
214211                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
214212                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
214213                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
214214                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
214215                 WHEN 17 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
214216                 WHEN 18 THEN TO_CHAR(l1.APHD_AMOUNT)
214217                 WHEN 19 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
214218                 WHEN 20 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
214219                 WHEN 21 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
214220                 WHEN 22 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
214221                 WHEN 23 THEN TO_CHAR(l1.INV_EXCHANGE_DATE)
214222                 WHEN 24 THEN TO_CHAR(l1.INV_EXCHANGE_RATE)
214223                 WHEN 25 THEN TO_CHAR(l1.INV_EXCHANGE_RATE_TYPE)
214224                 WHEN 26 THEN TO_CHAR(l1.INV_PMT_BASE_AMT_DIFF)
214225                 WHEN 27 THEN TO_CHAR(l1.INV_PMT_GAIN_LOSS_INDICATOR)
214226                 
214227                 ELSE null
214228               END                           source_value
214229             , CASE r
214230                 WHEN 2 THEN fvl21.meaning
214231                 WHEN 8 THEN fvl68.meaning
214232                 WHEN 17 THEN fvl90.meaning
214233                 
214234                 ELSE null
214235               END               source_meaning
214236          FROM  xla_events_gt     xet  
214237         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
214238         , ZX_AP_DEF_TAX_EXTRACT_V  l4
214239         , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
214240   , fnd_lookup_values    fvl21
214241   , fnd_lookup_values    fvl68
214242   , fnd_lookup_values    fvl90
214243             , (select rownum r from all_objects where rownum <= 27 and owner = p_apps_owner)
214244         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
214245           AND xet.event_class_code = C_EVENT_CLASS_CODE
214246             AND l1.event_id          = xet.event_id
214250   AND fvl21.language(+)            = USERENV('LANG')
214247  AND l1.aid_detail_tax_dist_id = l4.rec_nrec_tax_dist_id (+)  AND l1.aid_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+)    AND fvl21.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
214248   AND fvl21.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
214249   AND fvl21.view_application_id(+) = 200
214251      AND fvl68.lookup_type(+)         = 'YES_NO'
214252   AND fvl68.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
214253   AND fvl68.view_application_id(+) = 0
214254   AND fvl68.language(+)            = USERENV('LANG')
214255      AND fvl90.lookup_type(+)         = 'PAY_DIST_TYPES'
214256   AND fvl90.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
214257   AND fvl90.view_application_id(+) = 200
214258   AND fvl90.language(+)            = USERENV('LANG')
214259   
214260 )
214261 ;
214262 --
214263 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
214264 
214265       trace
214266          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
214267          ,p_level    => C_LEVEL_STATEMENT
214268          ,p_module   => l_log_module);
214269 
214270 END IF;
214271 
214272 
214273 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
214274       trace
214275          (p_msg      => 'END of insert_sources_302'
214276          ,p_level    => C_LEVEL_PROCEDURE
214277          ,p_module   => l_log_module);
214278 END IF;
214279 EXCEPTION
214280   WHEN xla_exceptions_pkg.application_exception THEN
214281       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
214282             trace
214283                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
214284                ,p_level    => C_LEVEL_EXCEPTION
214285                ,p_module   => l_log_module);
214286       END IF;
214287       RAISE;
214288   WHEN OTHERS THEN
214289       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
214290             trace
214291                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
214292                ,p_level    => C_LEVEL_EXCEPTION
214293                ,p_module   => l_log_module);
214294        END IF;
214295        xla_exceptions_pkg.raise_message
214296            (p_location => 'XLA_00200_AAD_S_000006_PKG.insert_sources_302');
214297 END insert_sources_302;
214298 --
214299 
214300 ---------------------------------------
214301 --
214302 -- PRIVATE FUNCTION
214303 --         EventClass_302
214304 --
214305 ----------------------------------------
214306 --
214307 FUNCTION EventClass_302
214308        (p_application_id         IN NUMBER
214309        ,p_base_ledger_id         IN NUMBER
214310        ,p_target_ledger_id       IN NUMBER
214311        ,p_language               IN VARCHAR2
214312        ,p_currency_code          IN VARCHAR2
214313        ,p_sla_ledger_id          IN NUMBER
214314        ,p_pad_start_date         IN DATE
214315        ,p_pad_end_date           IN DATE
214316        ,p_primary_ledger_id      IN NUMBER)
214317 RETURN BOOLEAN IS
214318 --
214319 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'REFUNDS_ALL';
214320 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'REFUNDS';
214321 
214322 l_calculate_acctd_flag   VARCHAR2(1) :='N';
214323 l_calculate_g_l_flag     VARCHAR2(1) :='N';
214324 --
214325 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
214326 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
214327 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
214328 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
214329 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
214330 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
214331 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
214332 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
214333 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
214334 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
214335 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
214336 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
214337 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
214338 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
214339 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
214340 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
214341 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
214342 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
214343 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
214344 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
214345 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
214346 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
214347 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
214348 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
214349 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
214350 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
214351 
214352 l_event_id                             NUMBER;
214353 l_previous_event_id                    NUMBER;
214354 l_first_event_id                       NUMBER;
214355 l_last_event_id                        NUMBER;
214356 
214357 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
214358 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
214359 --
214360 --
214361 l_result                    BOOLEAN := TRUE;
214362 l_rows                      NUMBER  := 1000;
214363 l_event_type_name           VARCHAR2(80) := 'All';
214364 l_event_class_name          VARCHAR2(80) := 'Refunds';
214365 l_description               VARCHAR2(4000);
214366 l_transaction_reversal      NUMBER;
214367 l_ae_header_id              NUMBER;
214368 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
214369 l_log_module                VARCHAR2(240);
214370 --
214371 l_acct_reversal_source      VARCHAR2(30);
214372 l_trx_reversal_source       VARCHAR2(30);
214373 
214374 l_continue_with_lines       BOOLEAN := TRUE;
214375 --
214376 l_acc_rev_gl_date_source    DATE;                      -- 4262811
214377 --
214378 type t_array_event_id is table of number index by binary_integer;
214379 
214380 l_rec_array_event                    t_rec_array_event;
214381 l_null_rec_array_event               t_rec_array_event;
214382 l_array_ae_header_id                 xla_number_array_type;
214383 l_actual_flag                        VARCHAR2(1) := NULL;
214384 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
214385 l_balance_type_code                  VARCHAR2(1) :=NULL;
214386 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
214387 
214388 --
214389 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
214390 --
214391 
214392 TYPE t_array_source_3 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
214393 TYPE t_array_source_5 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
214394 TYPE t_array_source_6 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
214395 TYPE t_array_source_7 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
214396 TYPE t_array_source_23 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
214397 TYPE t_array_source_24 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
214398 TYPE t_array_source_25 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
214399 TYPE t_array_source_26 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
214400 TYPE t_array_source_27 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
214401 TYPE t_array_source_32 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
214405 TYPE t_array_source_89 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
214402 TYPE t_array_source_35 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
214403 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
214404 TYPE t_array_source_71 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
214406 TYPE t_array_source_102 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
214407 TYPE t_array_source_103 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
214408 TYPE t_array_source_105 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
214409 TYPE t_array_source_106 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
214410 TYPE t_array_source_107 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
214411 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
214415 TYPE t_array_source_169 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
214412 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
214413 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
214414 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
214416 TYPE t_array_source_170 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
214417 TYPE t_array_source_171 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
214418 TYPE t_array_source_185 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.TRANSAC_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
214419 
214420 TYPE t_array_source_18 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
214421 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
214422 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
214423 TYPE t_array_source_34 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
214424 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
214425 TYPE t_array_source_43 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
214426 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
214427 TYPE t_array_source_68 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
214428 TYPE t_array_source_74 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
214429 TYPE t_array_source_75 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
214430 TYPE t_array_source_76 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
214431 TYPE t_array_source_79 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
214432 TYPE t_array_source_80 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
214433 TYPE t_array_source_81 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
214434 TYPE t_array_source_82 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
214435 TYPE t_array_source_83 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
214436 TYPE t_array_source_90 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
214437 TYPE t_array_source_91 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
214438 TYPE t_array_source_96 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
214439 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
214440 TYPE t_array_source_108 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
214441 TYPE t_array_source_109 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
214442 TYPE t_array_source_136 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
214443 TYPE t_array_source_137 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
214444 TYPE t_array_source_138 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
214445 TYPE t_array_source_148 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_PMT_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
214446 TYPE t_array_source_153 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_PMT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
214447 
214448 l_array_source_3              t_array_source_3;
214449 l_array_source_3_meaning      t_array_lookup_meaning;
214450 l_array_source_5              t_array_source_5;
214451 l_array_source_6              t_array_source_6;
214452 l_array_source_7              t_array_source_7;
214453 l_array_source_7_meaning      t_array_lookup_meaning;
214454 l_array_source_23              t_array_source_23;
214455 l_array_source_24              t_array_source_24;
214456 l_array_source_25              t_array_source_25;
214457 l_array_source_26              t_array_source_26;
214458 l_array_source_27              t_array_source_27;
214459 l_array_source_32              t_array_source_32;
214460 l_array_source_35              t_array_source_35;
214461 l_array_source_35_meaning      t_array_lookup_meaning;
214462 l_array_source_37              t_array_source_37;
214463 l_array_source_71              t_array_source_71;
214464 l_array_source_89              t_array_source_89;
214465 l_array_source_102              t_array_source_102;
214466 l_array_source_103              t_array_source_103;
214467 l_array_source_105              t_array_source_105;
214468 l_array_source_105_meaning      t_array_lookup_meaning;
214469 l_array_source_106              t_array_source_106;
214470 l_array_source_107              t_array_source_107;
214471 l_array_source_110              t_array_source_110;
214472 l_array_source_111              t_array_source_111;
214473 l_array_source_112              t_array_source_112;
214474 l_array_source_115              t_array_source_115;
214475 l_array_source_115_meaning      t_array_lookup_meaning;
214476 l_array_source_169              t_array_source_169;
214477 l_array_source_170              t_array_source_170;
214478 l_array_source_171              t_array_source_171;
214479 l_array_source_185              t_array_source_185;
214480 l_array_source_185_meaning      t_array_lookup_meaning;
214481 
214482 l_array_source_18      t_array_source_18;
214483 l_array_source_21      t_array_source_21;
214484 l_array_source_21_meaning      t_array_lookup_meaning;
214488 l_array_source_43      t_array_source_43;
214485 l_array_source_33      t_array_source_33;
214486 l_array_source_34      t_array_source_34;
214487 l_array_source_41      t_array_source_41;
214489 l_array_source_55      t_array_source_55;
214490 l_array_source_68      t_array_source_68;
214491 l_array_source_68_meaning      t_array_lookup_meaning;
214492 l_array_source_74      t_array_source_74;
214493 l_array_source_75      t_array_source_75;
214494 l_array_source_76      t_array_source_76;
214495 l_array_source_79      t_array_source_79;
214496 l_array_source_80      t_array_source_80;
214497 l_array_source_81      t_array_source_81;
214498 l_array_source_82      t_array_source_82;
214499 l_array_source_83      t_array_source_83;
214500 l_array_source_90      t_array_source_90;
214501 l_array_source_90_meaning      t_array_lookup_meaning;
214502 l_array_source_91      t_array_source_91;
214503 l_array_source_96      t_array_source_96;
214504 l_array_source_104      t_array_source_104;
214505 l_array_source_108      t_array_source_108;
214506 l_array_source_109      t_array_source_109;
214507 l_array_source_136      t_array_source_136;
214508 l_array_source_137      t_array_source_137;
214509 l_array_source_138      t_array_source_138;
214510 l_array_source_148      t_array_source_148;
214511 l_array_source_153      t_array_source_153;
214512 
214513 --
214514 CURSOR header_cur
214515 IS
214516 SELECT /*+ leading(xet) cardinality(xet,1) */
214517 -- Event Class Code: REFUNDS
214518     xet.entity_id
214519    ,xet.legal_entity_id
214520    ,xet.entity_code
214521    ,xet.transaction_number
214522    ,xet.event_id
214523    ,xet.event_class_code
214524    ,xet.event_type_code
214525    ,xet.event_number
214526    ,xet.event_date
214527    ,xet.transaction_date
214528    ,xet.reference_num_1
214529    ,xet.reference_num_2
214530    ,xet.reference_num_3
214531    ,xet.reference_num_4
214532    ,xet.reference_char_1
214533    ,xet.reference_char_2
214534    ,xet.reference_char_3
214535    ,xet.reference_char_4
214536    ,xet.reference_date_1
214537    ,xet.reference_date_2
214538    ,xet.reference_date_3
214539    ,xet.reference_date_4
214540    ,xet.event_created_by
214541    ,xet.budgetary_control_flag 
214542   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_3
214543   , fvl3.meaning   source_3_meaning
214544   , h2.CGAC_AP_ASSET_CCID    source_5
214545   , h3.FSP_DISC_TAKEN_CCID    source_6
214546   , h3.ASP_DISCOUNT_DIST_METHOD    source_7
214547   , fvl7.meaning   source_7_meaning
214548   , h2.CGAC_CASH_CLEARING_CCID    source_23
214549   , h2.CGAC_GAIN_CCID    source_24
214550   , h3.ASP_GAIN_CCID    source_25
214551   , h2.CGAC_LOSS_CCID    source_26
214552   , h3.ASP_LOSS_CCID    source_27
214553   , h3.ASP_DISC_TAKEN_CCID    source_32
214554   , h3.ASP_AUTO_OFFSET_FLAG    source_35
214555   , fvl35.meaning   source_35_meaning
214556   , h3.ASP_ROUNDING_ERROR_CCID    source_37
214557   , h2.THIRD_PARTY_TYPE    source_71
214558   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_89
214559   , h2.AC_VENDOR_ID    source_102
214560   , h2.AC_VENDOR_SITE_ID    source_103
214561   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_105
214562   , fvl105.meaning   source_105_meaning
214563   , h2.AC_CURRENCY_CODE    source_106
214564   , h2.AC_FUTURE_PAY_DUE_DATE    source_107
214565   , h2.AC_EXCHANGE_DATE    source_110
214566   , h2.AC_EXCHANGE_RATE    source_111
214567   , h2.AC_EXCHANGE_RATE_TYPE    source_112
214568   , h2.PAYMENT_TYPE    source_115
214569   , fvl115.meaning   source_115_meaning
214570   , h2.AC_DOC_CATEGORY_CODE    source_169
214571   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_170
214572   , h2.AC_DOC_SEQUENCE_VALUE    source_171
214573   , h2.TRANSAC_REVERSAL_FLAG    source_185
214574   , fvl185.meaning   source_185_meaning
214575   FROM xla_events_gt     xet 
214576   , AP_PAYMENT_EXTRACT_HEADER_V  h2
214577   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
214578   , fnd_lookup_values    fvl3
214579   , fnd_lookup_values    fvl7
214580   , fnd_lookup_values    fvl35
214581   , fnd_lookup_values    fvl105
214582   , fnd_lookup_values    fvl115
214583   , fnd_lookup_values    fvl185
214584  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
214585    and xet.event_class_code = C_EVENT_CLASS_CODE
214586    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
214587  AND h3.asp_org_id = h2.ac_org_id   AND fvl3.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
214588   AND fvl3.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
214589   AND fvl3.view_application_id(+) = 200
214590   AND fvl3.language(+)            = USERENV('LANG')
214591      AND fvl7.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
214592   AND fvl7.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
214593   AND fvl7.view_application_id(+) = 200
214597   AND fvl35.view_application_id(+) = 0
214594   AND fvl7.language(+)            = USERENV('LANG')
214595      AND fvl35.lookup_type(+)         = 'YES_NO'
214596   AND fvl35.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
214598   AND fvl35.language(+)            = USERENV('LANG')
214599      AND fvl105.lookup_type(+)         = 'YES_NO'
214600   AND fvl105.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
214601   AND fvl105.view_application_id(+) = 0
214602   AND fvl105.language(+)            = USERENV('LANG')
214603      AND fvl115.lookup_type(+)         = 'PAYMENT TYPE'
214604   AND fvl115.lookup_code(+)         = h2.PAYMENT_TYPE
214605   AND fvl115.view_application_id(+) = 200
214606   AND fvl115.language(+)            = USERENV('LANG')
214607      AND fvl185.lookup_type(+)         = 'YES_NO'
214608   AND fvl185.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
214609   AND fvl185.view_application_id(+) = 0
214610   AND fvl185.language(+)            = USERENV('LANG')
214611   
214612  ORDER BY event_id
214613 ;
214614 
214615 
214616 --
214617 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
214618 IS
214619 SELECT  /*+ leading(xet) cardinality(xet,1) */
214620 -- Event Class Code: REFUNDS
214621     xet.entity_id
214622    ,xet.legal_entity_id
214623    ,xet.entity_code
214624    ,xet.transaction_number
214625    ,xet.event_id
214626    ,xet.event_class_code
214627    ,xet.event_type_code
214628    ,xet.event_number
214629    ,xet.event_date
214630    ,xet.transaction_date
214631    ,xet.reference_num_1
214632    ,xet.reference_num_2
214633    ,xet.reference_num_3
214634    ,xet.reference_num_4
214635    ,xet.reference_char_1
214636    ,xet.reference_char_2
214637    ,xet.reference_char_3
214638    ,xet.reference_char_4
214639    ,xet.reference_date_1
214640    ,xet.reference_date_2
214641    ,xet.reference_date_3
214642    ,xet.reference_date_4
214643    ,xet.event_created_by
214644    ,xet.budgetary_control_flag
214645  , l1.LINE_NUMBER  
214646   , l1.AID_DIST_CCID    source_18
214647   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_21
214648   , fvl21.meaning   source_21_meaning
214649   , l1.POD_CCID    source_33
214650   , l1.PO_VARIANCE_ACCOUNT    source_34
214651   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_41
214652   , l1.DISTRIBUTION_LINK_TYPE    source_43
214653   , l1.AI_INVOICE_CURRENCY_CODE    source_55
214654   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_68
214655   , fvl68.meaning   source_68_meaning
214656   , l4.TAX_LINE_ID    source_74
214657   , l5.REC_NREC_TAX_DIST_ID    source_75
214658   , l4.SUMMARY_TAX_LINE_ID    source_76
214659   , l1.BUS_FLOW_AP_APP_ID    source_79
214660   , l1.BUS_FLOW_INV_DIST_TYPE    source_80
214661   , l1.BUS_FLOW_INV_ENTITY_CODE    source_81
214662   , l1.BUS_FLOW_INV_DIST_ID    source_82
214663   , l1.BUS_FLOW_INV_ID    source_83
214664   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_90
214665   , fvl90.meaning   source_90_meaning
214666   , l1.APHD_AMOUNT    source_91
214667   , l1.APHD_PAYMENT_HIST_DIST_ID    source_96
214668   , l1.APHD_REV_PAY_HIST_DIST_ID    source_104
214669   , l1.APHD_PAYMENT_BASE_AMT    source_108
214670   , l1.APHD_INVOICE_BASE_AMT    source_109
214671   , l1.INV_EXCHANGE_DATE    source_136
214672   , l1.INV_EXCHANGE_RATE    source_137
214673   , l1.INV_EXCHANGE_RATE_TYPE    source_138
214674   , l1.INV_PMT_BASE_AMT_DIFF    source_148
214675   , l1.INV_PMT_GAIN_LOSS_INDICATOR    source_153
214676   FROM xla_events_gt     xet 
214677   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
214678   , ZX_AP_DEF_TAX_EXTRACT_V  l4
214679   , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
214680   , fnd_lookup_values    fvl21
214681   , fnd_lookup_values    fvl68
214682   , fnd_lookup_values    fvl90
214683  WHERE xet.event_id between x_first_event_id and x_last_event_id
214684    and xet.event_date between p_pad_start_date and p_pad_end_date
214685    and xet.event_class_code = C_EVENT_CLASS_CODE
214686    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
214687  AND l1.AID_DETAIL_TAX_DIST_ID = l4.REC_NREC_TAX_DIST_ID (+)  AND l1.AID_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+)    AND fvl21.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
214688   AND fvl21.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
214689   AND fvl21.view_application_id(+) = 200
214690   AND fvl21.language(+)            = USERENV('LANG')
214691      AND fvl68.lookup_type(+)         = 'YES_NO'
214692   AND fvl68.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
214693   AND fvl68.view_application_id(+) = 0
214694   AND fvl68.language(+)            = USERENV('LANG')
214695      AND fvl90.lookup_type(+)         = 'PAY_DIST_TYPES'
214696   AND fvl90.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
214697   AND fvl90.view_application_id(+) = 200
214698   AND fvl90.language(+)            = USERENV('LANG')
214699   ;
214700 
214701 --
214702 BEGIN
214703 IF g_log_enabled THEN
214704    l_log_module := C_DEFAULT_MODULE||'.EventClass_302';
214705 END IF;
214706 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
214707    trace
214708       (p_msg      => 'BEGIN of EventClass_302'
214709       ,p_level    => C_LEVEL_PROCEDURE
214710       ,p_module   => l_log_module);
214711 END IF;
214712 
214713 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
214714    trace
214715       (p_msg      => 'p_application_id = '||p_application_id||
214716                      ' - p_base_ledger_id = '||p_base_ledger_id||
214717                      ' - p_target_ledger_id  = '||p_target_ledger_id||
214718                      ' - p_language = '||p_language||
214719                      ' - p_currency_code = '||p_currency_code||
214720                      ' - p_sla_ledger_id = '||p_sla_ledger_id
214721       ,p_level    => C_LEVEL_STATEMENT
214722       ,p_module   => l_log_module);
214723 END IF;
214724 --
214725 -- initialze arrays
214726 --
214727 g_array_event.DELETE;
214728 l_rec_array_event := l_null_rec_array_event;
214729 --
214730 --------------------------------------
214731 -- 4262811 Initialze MPA Line Number
214732 --------------------------------------
214733 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
214734 
214735 --
214736 
214737 --
214738 OPEN header_cur;
214739 --
214740 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
214741    trace
214742    (p_msg      => 'SQL - FETCH header_cur'
214743    ,p_level    => C_LEVEL_STATEMENT
214744    ,p_module   => l_log_module);
214745 END IF;
214746 --
214747 LOOP
214748 FETCH header_cur BULK COLLECT INTO
214749         l_array_entity_id
214750       , l_array_legal_entity_id
214751       , l_array_entity_code
214752       , l_array_transaction_num
214753       , l_array_event_id
214754       , l_array_class_code
214755       , l_array_event_type
214756       , l_array_event_number
214757       , l_array_event_date
214758       , l_array_transaction_date
214759       , l_array_reference_num_1
214760       , l_array_reference_num_2
214761       , l_array_reference_num_3
214762       , l_array_reference_num_4
214763       , l_array_reference_char_1
214764       , l_array_reference_char_2
214765       , l_array_reference_char_3
214766       , l_array_reference_char_4
214767       , l_array_reference_date_1
214768       , l_array_reference_date_2
214769       , l_array_reference_date_3
214770       , l_array_reference_date_4
214771       , l_array_event_created_by
214772       , l_array_budgetary_control_flag 
214773       , l_array_source_3
214774       , l_array_source_3_meaning
214775       , l_array_source_5
214776       , l_array_source_6
214777       , l_array_source_7
214778       , l_array_source_7_meaning
214779       , l_array_source_23
214780       , l_array_source_24
214781       , l_array_source_25
214782       , l_array_source_26
214783       , l_array_source_27
214784       , l_array_source_32
214785       , l_array_source_35
214786       , l_array_source_35_meaning
214787       , l_array_source_37
214788       , l_array_source_71
214789       , l_array_source_89
214790       , l_array_source_102
214791       , l_array_source_103
214792       , l_array_source_105
214793       , l_array_source_105_meaning
214794       , l_array_source_106
214795       , l_array_source_107
214796       , l_array_source_110
214797       , l_array_source_111
214798       , l_array_source_112
214799       , l_array_source_115
214800       , l_array_source_115_meaning
214801       , l_array_source_169
214802       , l_array_source_170
214803       , l_array_source_171
214804       , l_array_source_185
214805       , l_array_source_185_meaning
214806       LIMIT l_rows;
214807 --
214808 IF (C_LEVEL_EVENT >= g_log_level) THEN
214809    trace
214810    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
214811    ,p_level    => C_LEVEL_EVENT
214812    ,p_module   => l_log_module);
214813 END IF;
214814 --
214815 EXIT WHEN l_array_entity_id.COUNT = 0;
214816 
214817 -- initialize arrays
214818 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
214819 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
214820 
214821 --
214822 -- Bug 4458708
214826 
214823 --
214824 XLA_AE_LINES_PKG.g_LineNumber := 0;
214825 
214827 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
214828 g_last_hdr_idx := l_array_event_id.LAST;
214829 --
214830 -- loop for the headers. Each iteration is for each header extract row
214831 -- fetched in header cursor
214832 --
214833 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
214834 
214835 --
214836 -- set event info as cache for other routines to refer event attributes
214837 --
214838 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
214839    (p_application_id           => p_application_id
214840    ,p_primary_ledger_id        => p_primary_ledger_id
214841    ,p_base_ledger_id           => p_base_ledger_id
214842    ,p_target_ledger_id         => p_target_ledger_id
214843    ,p_entity_id                => l_array_entity_id(hdr_idx)
214844    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
214845    ,p_entity_code              => l_array_entity_code(hdr_idx)
214846    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
214847    ,p_event_id                 => l_array_event_id(hdr_idx)
214848    ,p_event_class_code         => l_array_class_code(hdr_idx)
214849    ,p_event_type_code          => l_array_event_type(hdr_idx)
214850    ,p_event_number             => l_array_event_number(hdr_idx)
214851    ,p_event_date               => l_array_event_date(hdr_idx)
214852    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
214853    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
214854    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
214855    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
214856    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
214857    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
214858    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
214859    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
214860    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
214861    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
214862    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
214863    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
214864    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
214865    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
214866    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
214867 
214868 --
214869 -- set the status of entry to C_VALID (0)
214870 --
214871 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
214872 
214873 --
214874 -- initialize a row for ae header
214875 --
214876 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
214877 
214878 l_event_id := l_array_event_id(hdr_idx);
214879 
214880 --
214881 -- storing the hdr_idx for event. May be used by line cursor.
214882 --
214883 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
214884 
214885 --
214886 -- store sources from header extract. This can be improved to
214887 -- store only those sources from header extract that may be used in lines
214888 --
214889 
214890 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
214891 g_array_event(l_event_id).array_value_char('source_3_meaning') := l_array_source_3_meaning(hdr_idx);
214892 g_array_event(l_event_id).array_value_num('source_5') := l_array_source_5(hdr_idx);
214893 g_array_event(l_event_id).array_value_num('source_6') := l_array_source_6(hdr_idx);
214894 g_array_event(l_event_id).array_value_char('source_7') := l_array_source_7(hdr_idx);
214895 g_array_event(l_event_id).array_value_char('source_7_meaning') := l_array_source_7_meaning(hdr_idx);
214896 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
214897 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
214898 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
214899 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
214900 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
214901 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
214902 g_array_event(l_event_id).array_value_char('source_35') := l_array_source_35(hdr_idx);
214903 g_array_event(l_event_id).array_value_char('source_35_meaning') := l_array_source_35_meaning(hdr_idx);
214904 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
214905 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
214906 g_array_event(l_event_id).array_value_char('source_89') := l_array_source_89(hdr_idx);
214907 g_array_event(l_event_id).array_value_num('source_102') := l_array_source_102(hdr_idx);
214908 g_array_event(l_event_id).array_value_num('source_103') := l_array_source_103(hdr_idx);
214909 g_array_event(l_event_id).array_value_char('source_105') := l_array_source_105(hdr_idx);
214910 g_array_event(l_event_id).array_value_char('source_105_meaning') := l_array_source_105_meaning(hdr_idx);
214911 g_array_event(l_event_id).array_value_char('source_106') := l_array_source_106(hdr_idx);
214912 g_array_event(l_event_id).array_value_date('source_107') := l_array_source_107(hdr_idx);
214913 g_array_event(l_event_id).array_value_date('source_110') := l_array_source_110(hdr_idx);
214914 g_array_event(l_event_id).array_value_num('source_111') := l_array_source_111(hdr_idx);
214915 g_array_event(l_event_id).array_value_char('source_112') := l_array_source_112(hdr_idx);
214916 g_array_event(l_event_id).array_value_char('source_115') := l_array_source_115(hdr_idx);
214917 g_array_event(l_event_id).array_value_char('source_115_meaning') := l_array_source_115_meaning(hdr_idx);
214918 g_array_event(l_event_id).array_value_char('source_169') := l_array_source_169(hdr_idx);
214919 g_array_event(l_event_id).array_value_num('source_170') := l_array_source_170(hdr_idx);
214920 g_array_event(l_event_id).array_value_num('source_171') := l_array_source_171(hdr_idx);
214921 g_array_event(l_event_id).array_value_char('source_185') := l_array_source_185(hdr_idx);
214922 g_array_event(l_event_id).array_value_char('source_185_meaning') := l_array_source_185_meaning(hdr_idx);
214923 
214924 --
214925 -- initilaize the status of ae headers for diffrent balance types
214926 -- the status is initialised to C_NOT_CREATED (2)
214927 --
214928 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
214929 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
214930 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
214931 
214932 --
214933 -- call api to validate and store accounting attributes for header
214934 --
214935 
214936 ------------------------------------------------------------
214937 -- Accrual Reversal : to get date for Standard Source (NONE)
214938 ------------------------------------------------------------
214939 l_acc_rev_gl_date_source := NULL;
214940 
214941      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
214942       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_169');
214943      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
214944       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_170');
214945      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
214946       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_171');
214947      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
214948       l_rec_acct_attrs.array_date_value(4) := 
214949 xla_ae_sources_pkg.GetSystemSourceDate(
214950    p_source_code           => 'XLA_EVENT_DATE'
214951  , p_source_type_code      => 'Y'
214952  , p_source_application_id =>  602
214953 );
214954      l_rec_acct_attrs.array_acct_attr_code(5)   := 'TRX_ACCT_REVERSAL_OPTION';
214955       l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_185');
214956 
214957 
214958 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
214959 
214960 XLA_AE_HEADER_PKG.SetJeCategoryName;
214961 
214962 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
214963 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
214964 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
214965 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
214966 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
214967 
214968 
214969 -- No header level analytical criteria
214970 
214971 --
214972 --accounting attribute enhancement, bug 3612931
214973 --
214974 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_185'), 1,30);
214975 
214976 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
214977    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
214978 
214979    xla_accounting_err_pkg.build_message
214980       (p_appli_s_name            => 'XLA'
214981       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
214982       ,p_token_1                 => 'ACCT_ATTR_NAME'
214983       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
214984       ,p_token_2                 => 'PRODUCT_NAME'
214985       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
214986       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
214987       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
214988       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
214989 
214990 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
214991    --
214992    -- following sets the accounting attributes needed to reverse
214993    -- accounting for a distributeion
214994    --
214995    xla_ae_lines_pkg.SetTrxReversalAttrs
214996       (p_event_id              => l_event_id
214997       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
214998       ,p_trx_reversal_source   => l_trx_reversal_source);
214999 
215000 END IF;
215001 
215002 
215003 ----------------------------------------------------------------
215004 -- 4262811 -  update the header statuses to invalid in need be
215005 ----------------------------------------------------------------
215006 --
215007 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
215008 
215009 
215010   -----------------------------------------------
215011   -- No accrual reversal for the event class/type
215012   -----------------------------------------------
215013 ----------------------------------------------------------------
215014 
215018 END LOOP;
215015 --
215016 -- this ends the header loop iteration for one bulk fetch
215017 --
215019 
215020 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
215021 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
215022 
215023 --
215024 -- insert dummy rows into lines gt table that were created due to
215025 -- transaction reversals
215026 --
215027 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
215028    l_result := XLA_AE_LINES_PKG.InsertLines;
215029 END IF;
215030 
215031 --
215032 -- reset the temp_line_num for each set of events fetched from header
215033 -- cursor rather than doing it for each new event in line cursor
215034 -- Bug 3939231
215035 --
215036 xla_ae_lines_pkg.g_temp_line_num := 0;
215037 
215038 
215039 
215040 --
215041 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
215042 --
215043 --
215044 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
215045 
215046       trace
215047          (p_msg      => 'SQL - FETCH line_cur'
215048          ,p_level    => C_LEVEL_STATEMENT
215049          ,p_module   => l_log_module);
215050 
215051 END IF;
215052 --
215053 --
215054 LOOP
215055   --
215056   FETCH line_cur BULK COLLECT INTO
215057         l_array_entity_id
215058       , l_array_legal_entity_id
215059       , l_array_entity_code
215060       , l_array_transaction_num
215061       , l_array_event_id
215062       , l_array_class_code
215063       , l_array_event_type
215064       , l_array_event_number
215065       , l_array_event_date
215066       , l_array_transaction_date
215067       , l_array_reference_num_1
215068       , l_array_reference_num_2
215069       , l_array_reference_num_3
215070       , l_array_reference_num_4
215071       , l_array_reference_char_1
215072       , l_array_reference_char_2
215073       , l_array_reference_char_3
215074       , l_array_reference_char_4
215075       , l_array_reference_date_1
215076       , l_array_reference_date_2
215077       , l_array_reference_date_3
215078       , l_array_reference_date_4
215079       , l_array_event_created_by
215080       , l_array_budgetary_control_flag
215081       , l_array_extract_line_num 
215082       , l_array_source_18
215083       , l_array_source_21
215084       , l_array_source_21_meaning
215085       , l_array_source_33
215086       , l_array_source_34
215087       , l_array_source_41
215088       , l_array_source_43
215089       , l_array_source_55
215090       , l_array_source_68
215091       , l_array_source_68_meaning
215092       , l_array_source_74
215093       , l_array_source_75
215094       , l_array_source_76
215095       , l_array_source_79
215096       , l_array_source_80
215097       , l_array_source_81
215098       , l_array_source_82
215099       , l_array_source_83
215100       , l_array_source_90
215101       , l_array_source_90_meaning
215102       , l_array_source_91
215103       , l_array_source_96
215104       , l_array_source_104
215105       , l_array_source_108
215106       , l_array_source_109
215107       , l_array_source_136
215108       , l_array_source_137
215109       , l_array_source_138
215110       , l_array_source_148
215111       , l_array_source_153
215112       LIMIT l_rows;
215113 
215114   --
215115   IF (C_LEVEL_EVENT >= g_log_level) THEN
215116             trace
215117                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
215118                ,p_level    => C_LEVEL_EVENT
215119                ,p_module   => l_log_module);
215120   END IF;
215121   --
215122   EXIT WHEN l_array_entity_id.count = 0;
215123 
215124   XLA_AE_LINES_PKG.g_rec_lines := null;
215125 
215126 --
215127 -- Bug 4458708
215128 --
215129 XLA_AE_LINES_PKG.g_LineNumber := 0;
215130 --
215131 --
215132 
215133 FOR Idx IN 1..l_array_event_id.count LOOP
215134    --
215135    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
215136    --
215137    l_event_id := l_array_event_id(idx);  -- 5648433
215138 
215139    --
215140    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
215141    --
215142 
215143    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
215144              (g_array_event(l_event_id).array_value_num('header_index'))
215145          ,'N'
215146          ) <> 'Y'
215147    THEN
215148       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
215149          trace
215150             (p_msg      => 'Trancaction revesal option is not Y '
215151             ,p_level    => C_LEVEL_STATEMENT
215152             ,p_module   => l_log_module);
215153       END IF;
215154 
215155 --
215156 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
215157 --
215158 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
215159 --
215160 -- set event info as cache for other routines to refer event attributes
215161 --
215162 
215163 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
215164    l_previous_event_id := l_event_id;
215165 
215166    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
215167       (p_application_id           => p_application_id
215168       ,p_primary_ledger_id        => p_primary_ledger_id
215169       ,p_base_ledger_id           => p_base_ledger_id
215170       ,p_target_ledger_id         => p_target_ledger_id
215171       ,p_entity_id                => l_array_entity_id(Idx)
215172       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
215173       ,p_entity_code              => l_array_entity_code(Idx)
215174       ,p_transaction_num          => l_array_transaction_num(Idx)
215175       ,p_event_id                 => l_array_event_id(Idx)
215176       ,p_event_class_code         => l_array_class_code(Idx)
215177       ,p_event_type_code          => l_array_event_type(Idx)
215178       ,p_event_number             => l_array_event_number(Idx)
215179       ,p_event_date               => l_array_event_date(Idx)
215180       ,p_transaction_date         => l_array_transaction_date(Idx)
215181       ,p_reference_num_1          => l_array_reference_num_1(Idx)
215182       ,p_reference_num_2          => l_array_reference_num_2(Idx)
215183       ,p_reference_num_3          => l_array_reference_num_3(Idx)
215184       ,p_reference_num_4          => l_array_reference_num_4(Idx)
215185       ,p_reference_char_1         => l_array_reference_char_1(Idx)
215186       ,p_reference_char_2         => l_array_reference_char_2(Idx)
215187       ,p_reference_char_3         => l_array_reference_char_3(Idx)
215188       ,p_reference_char_4         => l_array_reference_char_4(Idx)
215189       ,p_reference_date_1         => l_array_reference_date_1(Idx)
215190       ,p_reference_date_2         => l_array_reference_date_2(Idx)
215191       ,p_reference_date_3         => l_array_reference_date_3(Idx)
215192       ,p_reference_date_4         => l_array_reference_date_4(Idx)
215193       ,p_event_created_by         => l_array_event_created_by(Idx)
215194       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
215195        --
215196 END IF;
215197 
215198 
215199 
215200 --
215201 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
215202 
215203 l_acct_reversal_source := SUBSTR(l_array_source_41(Idx), 1,30);
215204 
215205 IF l_continue_with_lines THEN
215206    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
215207       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
215208 
215209       xla_accounting_err_pkg.build_message
215210          (p_appli_s_name            => 'XLA'
215211          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
215212          ,p_token_1                 => 'LINE_NUMBER'
215213          ,p_value_1                 => l_array_extract_line_num(Idx)
215214          ,p_token_2                 => 'PRODUCT_NAME'
215215          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
215216          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
215217          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
215218          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
215219 
215220    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
215221       --
215222       -- following sets the accounting attributes needed to reverse
215223       -- accounting for a distributeion
215224       --
215225 
215226       --
215227       -- 5217187
215228       --
215229       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
215230       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
215231                                        g_array_event(l_event_id).array_value_num('header_index'));
215232       --
215233       --
215234 
215235       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
215236       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_41(Idx);
215237       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
215238       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_96(Idx);
215239       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
215243       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
215240       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_43(Idx);
215241       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
215242       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_71');
215244       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_104(Idx);
215245       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
215246       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_43(Idx);
215247       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
215248       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_74(Idx);
215249       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
215250       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_75(Idx);
215251       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
215252       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_76(Idx);
215253 
215254 
215255       xla_ae_lines_pkg.SetAcctReversalAttrs
215256          (p_event_id             => l_event_id
215257          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
215258          ,p_calculate_acctd_flag => l_calculate_acctd_flag
215259          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
215260    END IF;
215261 
215265 --
215262    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
215263        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
215264 
215266 AcctLineType_83 (
215267  p_application_id  => p_application_id
215268  ,p_event_id     => l_event_id
215269  ,p_calculate_acctd_flag => l_calculate_acctd_flag
215270  ,p_calculate_g_l_flag => l_calculate_g_l_flag
215271  ,p_actual_flag => l_actual_flag
215272  ,p_balance_type_code => l_balance_type_code
215273  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
215274  
215275  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
215276  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
215277  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
215278  , p_source_41 => l_array_source_41(Idx)
215279  , p_source_43 => l_array_source_43(Idx)
215280  , p_source_68 => l_array_source_68(Idx)
215281  , p_source_68_meaning => l_array_source_68_meaning(Idx)
215282  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
215283  , p_source_74 => l_array_source_74(Idx)
215284  , p_source_75 => l_array_source_75(Idx)
215285  , p_source_76 => l_array_source_76(Idx)
215286  , p_source_79 => l_array_source_79(Idx)
215287  , p_source_80 => l_array_source_80(Idx)
215288  , p_source_81 => l_array_source_81(Idx)
215289  , p_source_82 => l_array_source_82(Idx)
215290  , p_source_83 => l_array_source_83(Idx)
215291  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
215292  , p_source_90 => l_array_source_90(Idx)
215293  , p_source_90_meaning => l_array_source_90_meaning(Idx)
215294  , p_source_91 => l_array_source_91(Idx)
215295  , p_source_96 => l_array_source_96(Idx)
215296  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
215297  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
215298  , p_source_104 => l_array_source_104(Idx)
215299  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
215300  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
215301  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
215302  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
215303  , p_source_108 => l_array_source_108(Idx)
215304  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
215305  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
215306  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
215307  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
215308  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
215309  );
215310 If(l_balance_type_code = 'A') THEN
215311   l_actual_gain_loss_ref := l_gain_or_loss_ref;
215312 END IF;
215313 
215314 --
215315 
215316 
215317 --
215318 AcctLineType_84 (
215319  p_application_id  => p_application_id
215320  ,p_event_id     => l_event_id
215321  ,p_calculate_acctd_flag => l_calculate_acctd_flag
215322  ,p_calculate_g_l_flag => l_calculate_g_l_flag
215323  ,p_actual_flag => l_actual_flag
215324  ,p_balance_type_code => l_balance_type_code
215325  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
215326  
215327  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
215328  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
215329  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
215330  , p_source_41 => l_array_source_41(Idx)
215331  , p_source_43 => l_array_source_43(Idx)
215332  , p_source_68 => l_array_source_68(Idx)
215333  , p_source_68_meaning => l_array_source_68_meaning(Idx)
215334  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
215335  , p_source_74 => l_array_source_74(Idx)
215336  , p_source_75 => l_array_source_75(Idx)
215337  , p_source_76 => l_array_source_76(Idx)
215338  , p_source_79 => l_array_source_79(Idx)
215339  , p_source_80 => l_array_source_80(Idx)
215340  , p_source_81 => l_array_source_81(Idx)
215341  , p_source_82 => l_array_source_82(Idx)
215342  , p_source_83 => l_array_source_83(Idx)
215343  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
215344  , p_source_90 => l_array_source_90(Idx)
215345  , p_source_90_meaning => l_array_source_90_meaning(Idx)
215346  , p_source_91 => l_array_source_91(Idx)
215347  , p_source_96 => l_array_source_96(Idx)
215348  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
215349  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
215350  , p_source_104 => l_array_source_104(Idx)
215351  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
215352  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
215353  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
215354  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
215355  , p_source_108 => l_array_source_108(Idx)
215356  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
215357  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
215358  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
215359  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
215360  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
215361  );
215363   l_actual_gain_loss_ref := l_gain_or_loss_ref;
215364 END IF;
215365 
215366 --
215367 
215368 
215369 --
215370 AcctLineType_85 (
215371  p_application_id  => p_application_id
215372  ,p_event_id     => l_event_id
215373  ,p_calculate_acctd_flag => l_calculate_acctd_flag
215374  ,p_calculate_g_l_flag => l_calculate_g_l_flag
215375  ,p_actual_flag => l_actual_flag
215376  ,p_balance_type_code => l_balance_type_code
215377  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
215378  
215379  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
215380  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
215381  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
215382  , p_source_41 => l_array_source_41(Idx)
215383  , p_source_43 => l_array_source_43(Idx)
215384  , p_source_68 => l_array_source_68(Idx)
215385  , p_source_68_meaning => l_array_source_68_meaning(Idx)
215386  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
215387  , p_source_74 => l_array_source_74(Idx)
215388  , p_source_75 => l_array_source_75(Idx)
215389  , p_source_76 => l_array_source_76(Idx)
215390  , p_source_79 => l_array_source_79(Idx)
215391  , p_source_80 => l_array_source_80(Idx)
215392  , p_source_81 => l_array_source_81(Idx)
215393  , p_source_82 => l_array_source_82(Idx)
215394  , p_source_83 => l_array_source_83(Idx)
215395  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
215396  , p_source_90 => l_array_source_90(Idx)
215397  , p_source_90_meaning => l_array_source_90_meaning(Idx)
215398  , p_source_91 => l_array_source_91(Idx)
215399  , p_source_96 => l_array_source_96(Idx)
215400  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
215401  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
215402  , p_source_104 => l_array_source_104(Idx)
215403  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
215404  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
215405  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
215406  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
215407  , p_source_108 => l_array_source_108(Idx)
215408  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
215409  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
215410  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
215411  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
215412  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
215413  );
215414 If(l_balance_type_code = 'A') THEN
215415   l_actual_gain_loss_ref := l_gain_or_loss_ref;
215416 END IF;
215417 
215418 --
215419 
215420 
215421 --
215422 AcctLineType_86 (
215423  p_application_id  => p_application_id
215424  ,p_event_id     => l_event_id
215425  ,p_calculate_acctd_flag => l_calculate_acctd_flag
215426  ,p_calculate_g_l_flag => l_calculate_g_l_flag
215427  ,p_actual_flag => l_actual_flag
215428  ,p_balance_type_code => l_balance_type_code
215429  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
215430  
215431  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
215432  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
215433  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
215434  , p_source_41 => l_array_source_41(Idx)
215435  , p_source_43 => l_array_source_43(Idx)
215436  , p_source_68 => l_array_source_68(Idx)
215437  , p_source_68_meaning => l_array_source_68_meaning(Idx)
215438  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
215439  , p_source_74 => l_array_source_74(Idx)
215440  , p_source_75 => l_array_source_75(Idx)
215441  , p_source_76 => l_array_source_76(Idx)
215442  , p_source_79 => l_array_source_79(Idx)
215443  , p_source_80 => l_array_source_80(Idx)
215444  , p_source_81 => l_array_source_81(Idx)
215445  , p_source_82 => l_array_source_82(Idx)
215446  , p_source_83 => l_array_source_83(Idx)
215447  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
215448  , p_source_90 => l_array_source_90(Idx)
215449  , p_source_90_meaning => l_array_source_90_meaning(Idx)
215450  , p_source_91 => l_array_source_91(Idx)
215451  , p_source_96 => l_array_source_96(Idx)
215452  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
215453  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
215454  , p_source_104 => l_array_source_104(Idx)
215455  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
215456  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
215457  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
215458  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
215459  , p_source_109 => l_array_source_109(Idx)
215460  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
215461  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
215462  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
215463  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
215464  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
215465  );
215466 If(l_balance_type_code = 'A') THEN
215471 
215362 If(l_balance_type_code = 'A') THEN
215467   l_actual_gain_loss_ref := l_gain_or_loss_ref;
215468 END IF;
215469 
215470 --
215472 
215473 --
215474 AcctLineType_87 (
215475  p_application_id  => p_application_id
215476  ,p_event_id     => l_event_id
215477  ,p_calculate_acctd_flag => l_calculate_acctd_flag
215478  ,p_calculate_g_l_flag => l_calculate_g_l_flag
215479  ,p_actual_flag => l_actual_flag
215480  ,p_balance_type_code => l_balance_type_code
215481  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
215482  
215483  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
215484  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
215485  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
215486  , p_source_41 => l_array_source_41(Idx)
215487  , p_source_43 => l_array_source_43(Idx)
215488  , p_source_68 => l_array_source_68(Idx)
215489  , p_source_68_meaning => l_array_source_68_meaning(Idx)
215490  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
215491  , p_source_74 => l_array_source_74(Idx)
215492  , p_source_75 => l_array_source_75(Idx)
215493  , p_source_76 => l_array_source_76(Idx)
215494  , p_source_79 => l_array_source_79(Idx)
215495  , p_source_80 => l_array_source_80(Idx)
215496  , p_source_81 => l_array_source_81(Idx)
215497  , p_source_82 => l_array_source_82(Idx)
215498  , p_source_83 => l_array_source_83(Idx)
215499  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
215500  , p_source_90 => l_array_source_90(Idx)
215501  , p_source_90_meaning => l_array_source_90_meaning(Idx)
215502  , p_source_91 => l_array_source_91(Idx)
215503  , p_source_96 => l_array_source_96(Idx)
215504  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
215505  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
215506  , p_source_104 => l_array_source_104(Idx)
215507  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
215508  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
215509  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
215510  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
215511  , p_source_109 => l_array_source_109(Idx)
215512  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
215513  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
215514  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
215515  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
215516  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
215517  );
215518 If(l_balance_type_code = 'A') THEN
215519   l_actual_gain_loss_ref := l_gain_or_loss_ref;
215520 END IF;
215521 
215522 --
215523 
215524 
215525 --
215526 AcctLineType_88 (
215527  p_application_id  => p_application_id
215528  ,p_event_id     => l_event_id
215529  ,p_calculate_acctd_flag => l_calculate_acctd_flag
215530  ,p_calculate_g_l_flag => l_calculate_g_l_flag
215531  ,p_actual_flag => l_actual_flag
215532  ,p_balance_type_code => l_balance_type_code
215533  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
215534  
215535  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
215536  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
215537  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
215538  , p_source_41 => l_array_source_41(Idx)
215539  , p_source_43 => l_array_source_43(Idx)
215540  , p_source_68 => l_array_source_68(Idx)
215541  , p_source_68_meaning => l_array_source_68_meaning(Idx)
215542  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
215543  , p_source_74 => l_array_source_74(Idx)
215544  , p_source_75 => l_array_source_75(Idx)
215545  , p_source_76 => l_array_source_76(Idx)
215546  , p_source_79 => l_array_source_79(Idx)
215547  , p_source_80 => l_array_source_80(Idx)
215548  , p_source_81 => l_array_source_81(Idx)
215549  , p_source_82 => l_array_source_82(Idx)
215550  , p_source_83 => l_array_source_83(Idx)
215551  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
215552  , p_source_90 => l_array_source_90(Idx)
215553  , p_source_90_meaning => l_array_source_90_meaning(Idx)
215554  , p_source_91 => l_array_source_91(Idx)
215555  , p_source_96 => l_array_source_96(Idx)
215556  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
215557  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
215558  , p_source_104 => l_array_source_104(Idx)
215559  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
215560  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
215561  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
215562  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
215563  , p_source_109 => l_array_source_109(Idx)
215564  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
215565  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
215566  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
215567  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
215568  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
215569  );
215570 If(l_balance_type_code = 'A') THEN
215571   l_actual_gain_loss_ref := l_gain_or_loss_ref;
215572 END IF;
215573 
215574 --
215575 
215576 
215577 --
215578 AcctLineType_95 (
215579  p_application_id  => p_application_id
215580  ,p_event_id     => l_event_id
215581  ,p_calculate_acctd_flag => l_calculate_acctd_flag
215582  ,p_calculate_g_l_flag => l_calculate_g_l_flag
215583  ,p_actual_flag => l_actual_flag
215584  ,p_balance_type_code => l_balance_type_code
215585  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
215586  
215587  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
215588  , p_source_35 => g_array_event(l_event_id).array_value_char('source_35')
215589  , p_source_35_meaning => g_array_event(l_event_id).array_value_char('source_35_meaning')
215590  , p_source_41 => l_array_source_41(Idx)
215591  , p_source_43 => l_array_source_43(Idx)
215592  , p_source_68 => l_array_source_68(Idx)
215593  , p_source_68_meaning => l_array_source_68_meaning(Idx)
215594  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
215595  , p_source_74 => l_array_source_74(Idx)
215596  , p_source_75 => l_array_source_75(Idx)
215597  , p_source_76 => l_array_source_76(Idx)
215598  , p_source_79 => l_array_source_79(Idx)
215599  , p_source_80 => l_array_source_80(Idx)
215600  , p_source_81 => l_array_source_81(Idx)
215601  , p_source_82 => l_array_source_82(Idx)
215602  , p_source_83 => l_array_source_83(Idx)
215603  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
215604  , p_source_90 => l_array_source_90(Idx)
215605  , p_source_90_meaning => l_array_source_90_meaning(Idx)
215606  , p_source_91 => l_array_source_91(Idx)
215607  , p_source_96 => l_array_source_96(Idx)
215608  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
215609  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
215610  , p_source_104 => l_array_source_104(Idx)
215611  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
215612  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
215613  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
215614  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
215615  , p_source_108 => l_array_source_108(Idx)
215616  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
215617  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
215618  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
215619  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
215620  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
215621  );
215622 If(l_balance_type_code = 'A') THEN
215623   l_actual_gain_loss_ref := l_gain_or_loss_ref;
215624 END IF;
215625 
215626 --
215627 
215628 
215629 --
215630 AcctLineType_96 (
215631  p_application_id  => p_application_id
215632  ,p_event_id     => l_event_id
215633  ,p_calculate_acctd_flag => l_calculate_acctd_flag
215634  ,p_calculate_g_l_flag => l_calculate_g_l_flag
215635  ,p_actual_flag => l_actual_flag
215636  ,p_balance_type_code => l_balance_type_code
215637  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
215638  
215639  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
215640  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
215641  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
215642  , p_source_41 => l_array_source_41(Idx)
215646  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
215643  , p_source_43 => l_array_source_43(Idx)
215644  , p_source_68 => l_array_source_68(Idx)
215645  , p_source_68_meaning => l_array_source_68_meaning(Idx)
215647  , p_source_74 => l_array_source_74(Idx)
215648  , p_source_75 => l_array_source_75(Idx)
215649  , p_source_76 => l_array_source_76(Idx)
215650  , p_source_79 => l_array_source_79(Idx)
215651  , p_source_80 => l_array_source_80(Idx)
215652  , p_source_81 => l_array_source_81(Idx)
215653  , p_source_82 => l_array_source_82(Idx)
215654  , p_source_83 => l_array_source_83(Idx)
215655  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
215656  , p_source_90 => l_array_source_90(Idx)
215657  , p_source_90_meaning => l_array_source_90_meaning(Idx)
215658  , p_source_91 => l_array_source_91(Idx)
215659  , p_source_96 => l_array_source_96(Idx)
215660  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
215661  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
215662  , p_source_104 => l_array_source_104(Idx)
215663  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
215664  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
215665  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
215666  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
215667  , p_source_108 => l_array_source_108(Idx)
215668  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
215669  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
215670  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
215671  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
215672  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
215673  );
215674 If(l_balance_type_code = 'A') THEN
215675   l_actual_gain_loss_ref := l_gain_or_loss_ref;
215676 END IF;
215677 
215678 --
215679 
215680 
215681 --
215682 AcctLineType_97 (
215683  p_application_id  => p_application_id
215684  ,p_event_id     => l_event_id
215685  ,p_calculate_acctd_flag => l_calculate_acctd_flag
215686  ,p_calculate_g_l_flag => l_calculate_g_l_flag
215687  ,p_actual_flag => l_actual_flag
215688  ,p_balance_type_code => l_balance_type_code
215689  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
215690  
215691  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
215692  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
215693  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
215694  , p_source_41 => l_array_source_41(Idx)
215695  , p_source_43 => l_array_source_43(Idx)
215696  , p_source_68 => l_array_source_68(Idx)
215697  , p_source_68_meaning => l_array_source_68_meaning(Idx)
215698  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
215699  , p_source_74 => l_array_source_74(Idx)
215700  , p_source_75 => l_array_source_75(Idx)
215701  , p_source_76 => l_array_source_76(Idx)
215702  , p_source_79 => l_array_source_79(Idx)
215703  , p_source_80 => l_array_source_80(Idx)
215704  , p_source_81 => l_array_source_81(Idx)
215705  , p_source_82 => l_array_source_82(Idx)
215706  , p_source_83 => l_array_source_83(Idx)
215707  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
215708  , p_source_90 => l_array_source_90(Idx)
215709  , p_source_90_meaning => l_array_source_90_meaning(Idx)
215710  , p_source_91 => l_array_source_91(Idx)
215711  , p_source_96 => l_array_source_96(Idx)
215712  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
215713  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
215714  , p_source_104 => l_array_source_104(Idx)
215715  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
215716  , p_source_105_meaning => g_array_event(l_event_id).array_value_char('source_105_meaning')
215717  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
215718  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
215719  , p_source_108 => l_array_source_108(Idx)
215720  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
215721  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
215722  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
215723  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
215724  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
215725  );
215726 If(l_balance_type_code = 'A') THEN
215727   l_actual_gain_loss_ref := l_gain_or_loss_ref;
215728 END IF;
215729 
215730 --
215731 
215732 
215733 --
215734 AcctLineType_110 (
215735  p_application_id  => p_application_id
215736  ,p_event_id     => l_event_id
215737  ,p_calculate_acctd_flag => l_calculate_acctd_flag
215738  ,p_calculate_g_l_flag => l_calculate_g_l_flag
215739  ,p_actual_flag => l_actual_flag
215740  ,p_balance_type_code => l_balance_type_code
215741  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
215742  
215743  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
215744  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
215745  , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
215746  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
215747  , p_source_7_meaning => g_array_event(l_event_id).array_value_char('source_7_meaning')
215748  , p_source_18 => l_array_source_18(Idx)
215749  , p_source_21 => l_array_source_21(Idx)
215750  , p_source_21_meaning => l_array_source_21_meaning(Idx)
215751  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
215752  , p_source_33 => l_array_source_33(Idx)
215753  , p_source_34 => l_array_source_34(Idx)
215754  , p_source_41 => l_array_source_41(Idx)
215758  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
215755  , p_source_43 => l_array_source_43(Idx)
215756  , p_source_68 => l_array_source_68(Idx)
215757  , p_source_68_meaning => l_array_source_68_meaning(Idx)
215759  , p_source_74 => l_array_source_74(Idx)
215760  , p_source_75 => l_array_source_75(Idx)
215761  , p_source_76 => l_array_source_76(Idx)
215762  , p_source_79 => l_array_source_79(Idx)
215763  , p_source_80 => l_array_source_80(Idx)
215764  , p_source_81 => l_array_source_81(Idx)
215765  , p_source_82 => l_array_source_82(Idx)
215766  , p_source_83 => l_array_source_83(Idx)
215767  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
215768  , p_source_90 => l_array_source_90(Idx)
215769  , p_source_90_meaning => l_array_source_90_meaning(Idx)
215770  , p_source_91 => l_array_source_91(Idx)
215771  , p_source_96 => l_array_source_96(Idx)
215772  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
215773  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
215774  , p_source_104 => l_array_source_104(Idx)
215775  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
215776  , p_source_109 => l_array_source_109(Idx)
215777  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
215778  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
215779  , p_source_136 => l_array_source_136(Idx)
215780  , p_source_137 => l_array_source_137(Idx)
215781  , p_source_138 => l_array_source_138(Idx)
215782  );
215783 If(l_balance_type_code = 'A') THEN
215784   l_actual_gain_loss_ref := l_gain_or_loss_ref;
215785 END IF;
215786 
215787 --
215788 
215789 
215790 --
215791 AcctLineType_122 (
215792  p_application_id  => p_application_id
215793  ,p_event_id     => l_event_id
215794  ,p_calculate_acctd_flag => l_calculate_acctd_flag
215795  ,p_calculate_g_l_flag => l_calculate_g_l_flag
215796  ,p_actual_flag => l_actual_flag
215797  ,p_balance_type_code => l_balance_type_code
215798  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
215799  
215800  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
215801  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
215802  , p_source_18 => l_array_source_18(Idx)
215803  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
215804  , p_source_41 => l_array_source_41(Idx)
215805  , p_source_43 => l_array_source_43(Idx)
215806  , p_source_55 => l_array_source_55(Idx)
215807  , p_source_68 => l_array_source_68(Idx)
215808  , p_source_68_meaning => l_array_source_68_meaning(Idx)
215809  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
215810  , p_source_74 => l_array_source_74(Idx)
215811  , p_source_75 => l_array_source_75(Idx)
215812  , p_source_76 => l_array_source_76(Idx)
215813  , p_source_79 => l_array_source_79(Idx)
215814  , p_source_80 => l_array_source_80(Idx)
215815  , p_source_81 => l_array_source_81(Idx)
215816  , p_source_82 => l_array_source_82(Idx)
215817  , p_source_83 => l_array_source_83(Idx)
215818  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
215819  , p_source_90 => l_array_source_90(Idx)
215820  , p_source_90_meaning => l_array_source_90_meaning(Idx)
215821  , p_source_91 => l_array_source_91(Idx)
215822  , p_source_96 => l_array_source_96(Idx)
215823  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
215824  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
215825  , p_source_104 => l_array_source_104(Idx)
215826  , p_source_109 => l_array_source_109(Idx)
215827  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
215828  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
215829  , p_source_136 => l_array_source_136(Idx)
215830  , p_source_137 => l_array_source_137(Idx)
215831  , p_source_138 => l_array_source_138(Idx)
215832  );
215833 If(l_balance_type_code = 'A') THEN
215834   l_actual_gain_loss_ref := l_gain_or_loss_ref;
215835 END IF;
215836 
215837 --
215838 
215839 
215840 --
215841 AcctLineType_141 (
215842  p_application_id  => p_application_id
215843  ,p_event_id     => l_event_id
215844  ,p_calculate_acctd_flag => l_calculate_acctd_flag
215845  ,p_calculate_g_l_flag => l_calculate_g_l_flag
215846  ,p_actual_flag => l_actual_flag
215847  ,p_balance_type_code => l_balance_type_code
215848  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
215849  
215850  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
215851  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
215852  , p_source_18 => l_array_source_18(Idx)
215853  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
215854  , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
215855  , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
215856  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
215857  , p_source_41 => l_array_source_41(Idx)
215858  , p_source_43 => l_array_source_43(Idx)
215859  , p_source_68 => l_array_source_68(Idx)
215860  , p_source_68_meaning => l_array_source_68_meaning(Idx)
215861  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
215862  , p_source_74 => l_array_source_74(Idx)
215863  , p_source_75 => l_array_source_75(Idx)
215864  , p_source_76 => l_array_source_76(Idx)
215865  , p_source_79 => l_array_source_79(Idx)
215866  , p_source_80 => l_array_source_80(Idx)
215867  , p_source_81 => l_array_source_81(Idx)
215868  , p_source_82 => l_array_source_82(Idx)
215869  , p_source_83 => l_array_source_83(Idx)
215870  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
215871  , p_source_90 => l_array_source_90(Idx)
215872  , p_source_90_meaning => l_array_source_90_meaning(Idx)
215873  , p_source_96 => l_array_source_96(Idx)
215877  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
215874  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
215875  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
215876  , p_source_104 => l_array_source_104(Idx)
215878  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
215879  , p_source_148 => l_array_source_148(Idx)
215880  );
215881 If(l_balance_type_code = 'A') THEN
215882   l_actual_gain_loss_ref := l_gain_or_loss_ref;
215883 END IF;
215884 
215885 --
215886 
215887 
215888 --
215889 AcctLineType_147 (
215890  p_application_id  => p_application_id
215891  ,p_event_id     => l_event_id
215892  ,p_calculate_acctd_flag => l_calculate_acctd_flag
215893  ,p_calculate_g_l_flag => l_calculate_g_l_flag
215894  ,p_actual_flag => l_actual_flag
215895  ,p_balance_type_code => l_balance_type_code
215896  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
215897  
215898  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
215899  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
215900  , p_source_18 => l_array_source_18(Idx)
215901  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
215902  , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
215903  , p_source_41 => l_array_source_41(Idx)
215904  , p_source_43 => l_array_source_43(Idx)
215905  , p_source_68 => l_array_source_68(Idx)
215906  , p_source_68_meaning => l_array_source_68_meaning(Idx)
215907  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
215908  , p_source_74 => l_array_source_74(Idx)
215909  , p_source_75 => l_array_source_75(Idx)
215910  , p_source_76 => l_array_source_76(Idx)
215911  , p_source_79 => l_array_source_79(Idx)
215912  , p_source_80 => l_array_source_80(Idx)
215913  , p_source_81 => l_array_source_81(Idx)
215914  , p_source_82 => l_array_source_82(Idx)
215915  , p_source_83 => l_array_source_83(Idx)
215916  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
215917  , p_source_90 => l_array_source_90(Idx)
215918  , p_source_90_meaning => l_array_source_90_meaning(Idx)
215919  , p_source_91 => l_array_source_91(Idx)
215920  , p_source_96 => l_array_source_96(Idx)
215921  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
215922  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
215923  , p_source_104 => l_array_source_104(Idx)
215924  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
215925  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
215926  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
215927  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
215928  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
215929  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
215930  , p_source_148 => l_array_source_148(Idx)
215931  , p_source_153 => l_array_source_153(Idx)
215932  );
215933 If(l_balance_type_code = 'A') THEN
215934   l_actual_gain_loss_ref := l_gain_or_loss_ref;
215935 END IF;
215936 
215937 --
215938 
215939 
215940 --
215941 AcctLineType_182 (
215942  p_application_id  => p_application_id
215943  ,p_event_id     => l_event_id
215944  ,p_calculate_acctd_flag => l_calculate_acctd_flag
215945  ,p_calculate_g_l_flag => l_calculate_g_l_flag
215946  ,p_actual_flag => l_actual_flag
215947  ,p_balance_type_code => l_balance_type_code
215948  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
215949  
215950  , p_source_41 => l_array_source_41(Idx)
215951  , p_source_43 => l_array_source_43(Idx)
215952  , p_source_68 => l_array_source_68(Idx)
215953  , p_source_68_meaning => l_array_source_68_meaning(Idx)
215954  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
215955  , p_source_74 => l_array_source_74(Idx)
215956  , p_source_75 => l_array_source_75(Idx)
215957  , p_source_76 => l_array_source_76(Idx)
215958  , p_source_79 => l_array_source_79(Idx)
215959  , p_source_80 => l_array_source_80(Idx)
215960  , p_source_81 => l_array_source_81(Idx)
215961  , p_source_82 => l_array_source_82(Idx)
215962  , p_source_83 => l_array_source_83(Idx)
215963  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
215964  , p_source_90 => l_array_source_90(Idx)
215965  , p_source_90_meaning => l_array_source_90_meaning(Idx)
215966  , p_source_91 => l_array_source_91(Idx)
215967  , p_source_96 => l_array_source_96(Idx)
215968  , p_source_104 => l_array_source_104(Idx)
215969  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
215970  , p_source_109 => l_array_source_109(Idx)
215971  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
215972  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
215973  );
215974 If(l_balance_type_code = 'A') THEN
215975   l_actual_gain_loss_ref := l_gain_or_loss_ref;
215976 END IF;
215977 
215978 --
215979 
215980 
215981 --
215982 AcctLineType_189 (
215983  p_application_id  => p_application_id
215984  ,p_event_id     => l_event_id
215985  ,p_calculate_acctd_flag => l_calculate_acctd_flag
215986  ,p_calculate_g_l_flag => l_calculate_g_l_flag
215987  ,p_actual_flag => l_actual_flag
215988  ,p_balance_type_code => l_balance_type_code
215989  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
215990  
215991  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
215992  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
215993  , p_source_18 => l_array_source_18(Idx)
215994  , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
215995  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
215996  , p_source_41 => l_array_source_41(Idx)
216000  , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
215997  , p_source_43 => l_array_source_43(Idx)
215998  , p_source_68 => l_array_source_68(Idx)
215999  , p_source_68_meaning => l_array_source_68_meaning(Idx)
216001  , p_source_74 => l_array_source_74(Idx)
216002  , p_source_75 => l_array_source_75(Idx)
216003  , p_source_76 => l_array_source_76(Idx)
216004  , p_source_79 => l_array_source_79(Idx)
216005  , p_source_80 => l_array_source_80(Idx)
216006  , p_source_81 => l_array_source_81(Idx)
216007  , p_source_82 => l_array_source_82(Idx)
216008  , p_source_83 => l_array_source_83(Idx)
216009  , p_source_89 => g_array_event(l_event_id).array_value_char('source_89')
216010  , p_source_90 => l_array_source_90(Idx)
216011  , p_source_90_meaning => l_array_source_90_meaning(Idx)
216012  , p_source_91 => l_array_source_91(Idx)
216013  , p_source_96 => l_array_source_96(Idx)
216014  , p_source_102 => g_array_event(l_event_id).array_value_num('source_102')
216015  , p_source_103 => g_array_event(l_event_id).array_value_num('source_103')
216016  , p_source_104 => l_array_source_104(Idx)
216017  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
216018  , p_source_110 => g_array_event(l_event_id).array_value_date('source_110')
216019  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
216020  , p_source_112 => g_array_event(l_event_id).array_value_char('source_112')
216021  , p_source_115 => g_array_event(l_event_id).array_value_char('source_115')
216022  , p_source_115_meaning => g_array_event(l_event_id).array_value_char('source_115_meaning')
216023  , p_source_148 => l_array_source_148(Idx)
216024  , p_source_153 => l_array_source_153(Idx)
216025  );
216026 If(l_balance_type_code = 'A') THEN
216027   l_actual_gain_loss_ref := l_gain_or_loss_ref;
216028 END IF;
216029 
216030 --
216031 
216032       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
216033       -- or secondary ledger that has different currency with primary
216034       -- or alc that is calculated by sla
216035       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
216036             (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'))
216037 
216038 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
216039 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
216040           AND (l_actual_flag = 'A')) THEN
216041         XLA_AE_LINES_PKG.CreateGainOrLossLines(
216042           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
216043          ,p_application_id   => p_application_id
216044          ,p_amb_context_code => 'DEFAULT'
216045          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
216046          ,p_event_class_code => C_EVENT_CLASS_CODE
216047          ,p_event_type_code  => C_EVENT_TYPE_CODE
216048          
216049          ,p_gain_ccid        => -1
216050          ,p_loss_ccid        => -1
216051 
216052          ,p_actual_flag      => l_actual_flag
216053          ,p_enc_flag         => null
216054          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
216055          ,p_enc_g_l_ref      => null
216056          );
216057       END IF;
216058    END IF;
216059 END IF;
216060 
216061    ELSE
216062       --
216063       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
216064       --
216065       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216066          trace
216067             (p_msg      => 'Trancaction revesal option is Y'
216068             ,p_level    => C_LEVEL_STATEMENT
216069             ,p_module   => l_log_module);
216070       END IF;
216071    END IF;
216072 
216073 END LOOP;
216074 l_result := XLA_AE_LINES_PKG.InsertLines ;
216075 end loop;
216076 close line_cur;
216077 
216078 
216079 --
216080 -- insert headers into xla_ae_headers_gt table
216081 --
216082 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
216083 
216084 -- insert into errors table here.
216085 
216086 END LOOP;
216087 
216088 --
216089 -- 4865292
216090 --
216091 -- Compare g_hdr_extract_count with event count in
216092 -- CreateHeadersAndLines.
216093 --
216094 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
216095 
216096 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216097    trace (p_msg     => '# rows extracted from header extract objects '
216098                     || ' (running total): '
216099                     || g_hdr_extract_count
216100          ,p_level   => C_LEVEL_STATEMENT
216101          ,p_module  => l_log_module);
216102 END IF;
216103 
216104 CLOSE header_cur;
216105 --
216106 
216107 --
216111       ,p_level    => C_LEVEL_PROCEDURE
216108 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
216109    trace
216110       (p_msg      => 'END of EventClass_302'
216112       ,p_module   => l_log_module);
216113 END IF;
216114 --
216115 RETURN l_result;
216116 EXCEPTION
216117 WHEN xla_exceptions_pkg.application_exception THEN
216118    
216119 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
216120 
216121    
216122 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
216123 
216124    RAISE;
216125 
216126 WHEN NO_DATA_FOUND THEN
216127 
216128 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
216129 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
216130 
216131 FOR header_record IN header_cur
216132 LOOP
216133     l_array_header_events(header_record.event_id) := header_record.event_id;
216134 END LOOP;
216135 
216136 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
216137 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
216138 
216139 fnd_file.put_line(fnd_file.LOG, '                    ');
216140 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
216141 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
216142 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
216143 
216144 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
216145 LOOP
216146 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
216147 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
216148         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
216149 	END IF;
216150 END LOOP;
216151 
216152 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
216153 fnd_file.put_line(fnd_file.LOG, '                    ');
216154 
216155 
216156 xla_exceptions_pkg.raise_message
216157       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_302');
216158 
216159 
216160 WHEN OTHERS THEN
216161    xla_exceptions_pkg.raise_message
216162       (p_location => 'XLA_00200_AAD_S_000006_PKG.EventClass_302');
216163 END EventClass_302;
216164 --
216165 
216166 --
216167 --+============================================+
216168 --|                                            |
216169 --|  PRIVATE FUNCTION                          |
216170 --|                                            |
216171 --+============================================+
216172 --
216173 FUNCTION CreateHeadersAndLines
216174        (p_application_id         IN NUMBER
216175        ,p_base_ledger_id         IN NUMBER
216176        ,p_target_ledger_id       IN NUMBER
216177        ,p_pad_start_date         IN DATE
216178        ,p_pad_end_date           IN DATE
216179        ,p_primary_ledger_id      IN NUMBER)
216180 RETURN BOOLEAN IS
216181 l_created                   BOOLEAN:=FALSE;
216182 l_event_id                  NUMBER;
216183 l_event_date                DATE;
216184 l_language                  VARCHAR2(30);
216185 l_currency_code             VARCHAR2(30);
216186 l_sla_ledger_id             NUMBER;
216187 l_log_module                VARCHAR2(240);
216188 
216189 BEGIN
216190 --
216191 IF g_log_enabled THEN
216192    l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
216193 END IF;
216194 --
216195 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
216196    trace
216197       (p_msg      => 'BEGIN of CreateHeadersAndLines'
216198       ,p_level    => C_LEVEL_PROCEDURE
216199       ,p_module   => l_log_module);
216200 END IF;
216201 
216202 l_language         := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
216203 l_currency_code    := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
216204 l_sla_ledger_id    := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
216205 
216206 --
216207 -- initialize array of lines with NULL
216208 --
216209 xla_ae_lines_pkg.SetNullLine;
216210 
216211 --
216212 -- initialize header extract count -- Bug 4865292
216213 --
216214 g_hdr_extract_count:= 0;
216215 
216216 
216217 l_created := EventClass_291(
216218    p_application_id         => p_application_id
216219  , p_base_ledger_id         => p_base_ledger_id
216220  , p_target_ledger_id       => p_target_ledger_id
216221  , p_language               => l_language
216222  , p_currency_code          => l_currency_code
216223  , p_sla_ledger_id          => l_sla_ledger_id
216224  , p_pad_start_date         => p_pad_start_date
216225  , p_pad_end_date           => p_pad_end_date
216226  , p_primary_ledger_id      => p_primary_ledger_id
216227 );
216228 
216229 
216230 
216234           trace
216231      IF ( g_diagnostics_mode ='Y' ) THEN
216232 
216233          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216235               (p_msg      => 'CALL Transaction Objects Diagnostics'
216236               ,p_level    => C_LEVEL_STATEMENT
216237               ,p_module   => l_log_module);
216238 
216239          END IF;
216240 
216241          insert_sources_291(
216242                           p_target_ledger_id => p_target_ledger_id
216243                         , p_language         => l_language
216244                         , p_sla_ledger_id    => l_sla_ledger_id
216245                         , p_pad_start_date   => p_pad_start_date
216246                         , p_pad_end_date     => p_pad_end_date
216247                           );
216248 
216249      END IF;
216250 
216251 l_created := EventClass_292(
216252    p_application_id         => p_application_id
216253  , p_base_ledger_id         => p_base_ledger_id
216254  , p_target_ledger_id       => p_target_ledger_id
216255  , p_language               => l_language
216256  , p_currency_code          => l_currency_code
216257  , p_sla_ledger_id          => l_sla_ledger_id
216258  , p_pad_start_date         => p_pad_start_date
216259  , p_pad_end_date           => p_pad_end_date
216260  , p_primary_ledger_id      => p_primary_ledger_id
216261 );
216262 
216263 
216264 
216265      IF ( g_diagnostics_mode ='Y' ) THEN
216266 
216267          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216268           trace
216269               (p_msg      => 'CALL Transaction Objects Diagnostics'
216270               ,p_level    => C_LEVEL_STATEMENT
216271               ,p_module   => l_log_module);
216272 
216273          END IF;
216274 
216275          insert_sources_292(
216276                           p_target_ledger_id => p_target_ledger_id
216277                         , p_language         => l_language
216278                         , p_sla_ledger_id    => l_sla_ledger_id
216279                         , p_pad_start_date   => p_pad_start_date
216280                         , p_pad_end_date     => p_pad_end_date
216281                           );
216282 
216283      END IF;
216284 
216285 l_created := EventClass_293(
216286    p_application_id         => p_application_id
216287  , p_base_ledger_id         => p_base_ledger_id
216288  , p_target_ledger_id       => p_target_ledger_id
216289  , p_language               => l_language
216290  , p_currency_code          => l_currency_code
216291  , p_sla_ledger_id          => l_sla_ledger_id
216292  , p_pad_start_date         => p_pad_start_date
216293  , p_pad_end_date           => p_pad_end_date
216294  , p_primary_ledger_id      => p_primary_ledger_id
216295 );
216296 
216297 
216298 
216299      IF ( g_diagnostics_mode ='Y' ) THEN
216300 
216301          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216302           trace
216303               (p_msg      => 'CALL Transaction Objects Diagnostics'
216304               ,p_level    => C_LEVEL_STATEMENT
216305               ,p_module   => l_log_module);
216306 
216307          END IF;
216308 
216309          insert_sources_293(
216310                           p_target_ledger_id => p_target_ledger_id
216311                         , p_language         => l_language
216312                         , p_sla_ledger_id    => l_sla_ledger_id
216313                         , p_pad_start_date   => p_pad_start_date
216314                         , p_pad_end_date     => p_pad_end_date
216315                           );
216316 
216317      END IF;
216318 
216319 l_created := EventClass_294(
216320    p_application_id         => p_application_id
216321  , p_base_ledger_id         => p_base_ledger_id
216322  , p_target_ledger_id       => p_target_ledger_id
216323  , p_language               => l_language
216324  , p_currency_code          => l_currency_code
216325  , p_sla_ledger_id          => l_sla_ledger_id
216326  , p_pad_start_date         => p_pad_start_date
216327  , p_pad_end_date           => p_pad_end_date
216328  , p_primary_ledger_id      => p_primary_ledger_id
216329 );
216330 
216331 
216332 
216333      IF ( g_diagnostics_mode ='Y' ) THEN
216334 
216335          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216336           trace
216337               (p_msg      => 'CALL Transaction Objects Diagnostics'
216338               ,p_level    => C_LEVEL_STATEMENT
216339               ,p_module   => l_log_module);
216340 
216341          END IF;
216342 
216343          insert_sources_294(
216344                           p_target_ledger_id => p_target_ledger_id
216345                         , p_language         => l_language
216346                         , p_sla_ledger_id    => l_sla_ledger_id
216347                         , p_pad_start_date   => p_pad_start_date
216348                         , p_pad_end_date     => p_pad_end_date
216349                           );
216350 
216351      END IF;
216352 
216353 l_created := EventClass_295(
216354    p_application_id         => p_application_id
216355  , p_base_ledger_id         => p_base_ledger_id
216356  , p_target_ledger_id       => p_target_ledger_id
216357  , p_language               => l_language
216358  , p_currency_code          => l_currency_code
216359  , p_sla_ledger_id          => l_sla_ledger_id
216360  , p_pad_start_date         => p_pad_start_date
216361  , p_pad_end_date           => p_pad_end_date
216362  , p_primary_ledger_id      => p_primary_ledger_id
216363 );
216364 
216365 
216366 
216367      IF ( g_diagnostics_mode ='Y' ) THEN
216368 
216369          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216370           trace
216374 
216371               (p_msg      => 'CALL Transaction Objects Diagnostics'
216372               ,p_level    => C_LEVEL_STATEMENT
216373               ,p_module   => l_log_module);
216375          END IF;
216376 
216377          insert_sources_295(
216378                           p_target_ledger_id => p_target_ledger_id
216379                         , p_language         => l_language
216383                           );
216380                         , p_sla_ledger_id    => l_sla_ledger_id
216381                         , p_pad_start_date   => p_pad_start_date
216382                         , p_pad_end_date     => p_pad_end_date
216384 
216385      END IF;
216386 
216387 l_created := EventClass_296(
216388    p_application_id         => p_application_id
216389  , p_base_ledger_id         => p_base_ledger_id
216390  , p_target_ledger_id       => p_target_ledger_id
216391  , p_language               => l_language
216392  , p_currency_code          => l_currency_code
216393  , p_sla_ledger_id          => l_sla_ledger_id
216394  , p_pad_start_date         => p_pad_start_date
216395  , p_pad_end_date           => p_pad_end_date
216396  , p_primary_ledger_id      => p_primary_ledger_id
216397 );
216398 
216399 
216400 
216401      IF ( g_diagnostics_mode ='Y' ) THEN
216402 
216403          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216404           trace
216405               (p_msg      => 'CALL Transaction Objects Diagnostics'
216406               ,p_level    => C_LEVEL_STATEMENT
216407               ,p_module   => l_log_module);
216408 
216409          END IF;
216410 
216411          insert_sources_296(
216412                           p_target_ledger_id => p_target_ledger_id
216413                         , p_language         => l_language
216414                         , p_sla_ledger_id    => l_sla_ledger_id
216415                         , p_pad_start_date   => p_pad_start_date
216416                         , p_pad_end_date     => p_pad_end_date
216417                           );
216418 
216419      END IF;
216420 
216421 l_created := EventClass_297(
216422    p_application_id         => p_application_id
216423  , p_base_ledger_id         => p_base_ledger_id
216424  , p_target_ledger_id       => p_target_ledger_id
216425  , p_language               => l_language
216426  , p_currency_code          => l_currency_code
216427  , p_sla_ledger_id          => l_sla_ledger_id
216428  , p_pad_start_date         => p_pad_start_date
216429  , p_pad_end_date           => p_pad_end_date
216430  , p_primary_ledger_id      => p_primary_ledger_id
216431 );
216432 
216433 
216434 
216435      IF ( g_diagnostics_mode ='Y' ) THEN
216436 
216437          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216438           trace
216439               (p_msg      => 'CALL Transaction Objects Diagnostics'
216440               ,p_level    => C_LEVEL_STATEMENT
216441               ,p_module   => l_log_module);
216442 
216443          END IF;
216444 
216445          insert_sources_297(
216446                           p_target_ledger_id => p_target_ledger_id
216447                         , p_language         => l_language
216448                         , p_sla_ledger_id    => l_sla_ledger_id
216449                         , p_pad_start_date   => p_pad_start_date
216450                         , p_pad_end_date     => p_pad_end_date
216451                           );
216452 
216453      END IF;
216454 
216455 l_created := EventClass_298(
216456    p_application_id         => p_application_id
216457  , p_base_ledger_id         => p_base_ledger_id
216458  , p_target_ledger_id       => p_target_ledger_id
216459  , p_language               => l_language
216460  , p_currency_code          => l_currency_code
216461  , p_sla_ledger_id          => l_sla_ledger_id
216462  , p_pad_start_date         => p_pad_start_date
216463  , p_pad_end_date           => p_pad_end_date
216464  , p_primary_ledger_id      => p_primary_ledger_id
216465 );
216466 
216467 
216468 
216469      IF ( g_diagnostics_mode ='Y' ) THEN
216470 
216471          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216472           trace
216473               (p_msg      => 'CALL Transaction Objects Diagnostics'
216474               ,p_level    => C_LEVEL_STATEMENT
216475               ,p_module   => l_log_module);
216476 
216477          END IF;
216478 
216479          insert_sources_298(
216480                           p_target_ledger_id => p_target_ledger_id
216481                         , p_language         => l_language
216482                         , p_sla_ledger_id    => l_sla_ledger_id
216483                         , p_pad_start_date   => p_pad_start_date
216484                         , p_pad_end_date     => p_pad_end_date
216485                           );
216486 
216487      END IF;
216488 
216489 l_created := EventClass_299(
216490    p_application_id         => p_application_id
216491  , p_base_ledger_id         => p_base_ledger_id
216492  , p_target_ledger_id       => p_target_ledger_id
216493  , p_language               => l_language
216494  , p_currency_code          => l_currency_code
216495  , p_sla_ledger_id          => l_sla_ledger_id
216496  , p_pad_start_date         => p_pad_start_date
216497  , p_pad_end_date           => p_pad_end_date
216498  , p_primary_ledger_id      => p_primary_ledger_id
216499 );
216500 
216501 
216502 
216503      IF ( g_diagnostics_mode ='Y' ) THEN
216504 
216505          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216506           trace
216507               (p_msg      => 'CALL Transaction Objects Diagnostics'
216508               ,p_level    => C_LEVEL_STATEMENT
216509               ,p_module   => l_log_module);
216510 
216511          END IF;
216512 
216513          insert_sources_299(
216514                           p_target_ledger_id => p_target_ledger_id
216515                         , p_language         => l_language
216516                         , p_sla_ledger_id    => l_sla_ledger_id
216517                         , p_pad_start_date   => p_pad_start_date
216518                         , p_pad_end_date     => p_pad_end_date
216519                           );
216520 
216521      END IF;
216522 
216523 l_created := EventClass_300(
216524    p_application_id         => p_application_id
216525  , p_base_ledger_id         => p_base_ledger_id
216526  , p_target_ledger_id       => p_target_ledger_id
216527  , p_language               => l_language
216528  , p_currency_code          => l_currency_code
216529  , p_sla_ledger_id          => l_sla_ledger_id
216530  , p_pad_start_date         => p_pad_start_date
216531  , p_pad_end_date           => p_pad_end_date
216532  , p_primary_ledger_id      => p_primary_ledger_id
216533 );
216534 
216535 
216536 
216537      IF ( g_diagnostics_mode ='Y' ) THEN
216538 
216539          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216540           trace
216541               (p_msg      => 'CALL Transaction Objects Diagnostics'
216542               ,p_level    => C_LEVEL_STATEMENT
216543               ,p_module   => l_log_module);
216544 
216545          END IF;
216546 
216547          insert_sources_300(
216548                           p_target_ledger_id => p_target_ledger_id
216549                         , p_language         => l_language
216550                         , p_sla_ledger_id    => l_sla_ledger_id
216551                         , p_pad_start_date   => p_pad_start_date
216552                         , p_pad_end_date     => p_pad_end_date
216553                           );
216554 
216555      END IF;
216556 
216557 l_created := EventClass_301(
216558    p_application_id         => p_application_id
216559  , p_base_ledger_id         => p_base_ledger_id
216560  , p_target_ledger_id       => p_target_ledger_id
216561  , p_language               => l_language
216562  , p_currency_code          => l_currency_code
216563  , p_sla_ledger_id          => l_sla_ledger_id
216564  , p_pad_start_date         => p_pad_start_date
216565  , p_pad_end_date           => p_pad_end_date
216566  , p_primary_ledger_id      => p_primary_ledger_id
216567 );
216568 
216569 
216570 
216571      IF ( g_diagnostics_mode ='Y' ) THEN
216572 
216573          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216574           trace
216575               (p_msg      => 'CALL Transaction Objects Diagnostics'
216576               ,p_level    => C_LEVEL_STATEMENT
216577               ,p_module   => l_log_module);
216578 
216579          END IF;
216580 
216581          insert_sources_301(
216582                           p_target_ledger_id => p_target_ledger_id
216583                         , p_language         => l_language
216584                         , p_sla_ledger_id    => l_sla_ledger_id
216585                         , p_pad_start_date   => p_pad_start_date
216586                         , p_pad_end_date     => p_pad_end_date
216587                           );
216588 
216589      END IF;
216590 
216591 l_created := EventClass_302(
216592    p_application_id         => p_application_id
216593  , p_base_ledger_id         => p_base_ledger_id
216594  , p_target_ledger_id       => p_target_ledger_id
216595  , p_language               => l_language
216596  , p_currency_code          => l_currency_code
216597  , p_sla_ledger_id          => l_sla_ledger_id
216601 );
216598  , p_pad_start_date         => p_pad_start_date
216599  , p_pad_end_date           => p_pad_end_date
216600  , p_primary_ledger_id      => p_primary_ledger_id
216602 
216603 
216604 
216605      IF ( g_diagnostics_mode ='Y' ) THEN
216606 
216607          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216608           trace
216609               (p_msg      => 'CALL Transaction Objects Diagnostics'
216610               ,p_level    => C_LEVEL_STATEMENT
216611               ,p_module   => l_log_module);
216612 
216613          END IF;
216614 
216615          insert_sources_302(
216616                           p_target_ledger_id => p_target_ledger_id
216617                         , p_language         => l_language
216618                         , p_sla_ledger_id    => l_sla_ledger_id
216619                         , p_pad_start_date   => p_pad_start_date
216620                         , p_pad_end_date     => p_pad_end_date
216621                           );
216622 
216623      END IF;
216624 
216625 
216626  --
216627  -- Bug 4865292
216628  -- When the number of events and that of header extract do not match,
216629  -- set the no header extract flag to indicate there are some issues
216630  -- in header extract.
216631  --
216632  -- Event count context is set in xla_accounting_pkg.unit_processor.
216633  -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
216634  -- to report it as a general error.
216635  --
216636  IF  xla_context_pkg.get_event_count_context <> g_hdr_extract_count
216637  AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
216638 
216639      IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216640         trace
216641           (p_msg      => '# of extracted headers and events does not match'
216642           ,p_level    => C_LEVEL_STATEMENT
216643           ,p_module   => l_log_module);
216644 
216645         trace
216646           (p_msg      => '# of extracted headers: '
216647                          ||g_hdr_extract_count
216648           ,p_level    => C_LEVEL_STATEMENT
216649           ,p_module   => l_log_module);
216650 
216651         trace
216652           (p_msg      => '# of events in xla_events_gt: '
216653                          ||xla_context_pkg.get_event_count_context
216654           ,p_level    => C_LEVEL_STATEMENT
216655           ,p_module   => l_log_module);
216656 
216657         trace
216658           (p_msg      => 'Event No Header Extract Context: '
216659                          ||xla_context_pkg.get_event_nohdr_context
216660           ,p_level    => C_LEVEL_STATEMENT
216661           ,p_module   => l_log_module);
216662 
216663      END IF;
216664 
216665 
216666      xla_context_pkg.set_event_nohdr_context
216667        (p_nohdr_extract_flag => 'Y'
216668        ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
216669 
216670      IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216671         trace
216672           (p_msg      => 'No Header Extract Flag is set to Y'
216673           ,p_level    => C_LEVEL_STATEMENT
216674           ,p_module   => l_log_module);
216675      END IF;
216676 
216677  END IF;
216678 
216679 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
216680    trace
216681       (p_msg      => 'END of CreateHeadersAndLines'
216682       ,p_level    => C_LEVEL_PROCEDURE
216683       ,p_module   => l_log_module);
216684 END IF;
216685 
216686 RETURN l_created;
216687 EXCEPTION
216688 WHEN xla_exceptions_pkg.application_exception THEN
216689    RAISE;
216690 WHEN OTHERS THEN
216691    xla_exceptions_pkg.raise_message
216692       (p_location => 'XLA_00200_AAD_S_000006_PKG.CreateHeadersAndLines');
216693 END CreateHeadersAndLines;
216694 --
216695 --
216696 
216697 --
216698 --+============================================+
216699 --|                                            |
216700 --|  PUBLIC FUNCTION                           |
216701 --|                                            |
216702 --+============================================+
216703 --
216704 FUNCTION CreateJournalEntries
216705        (p_application_id         IN NUMBER
216706        ,p_base_ledger_id         IN NUMBER
216707        ,p_pad_start_date         IN DATE
216708        ,p_pad_end_date           IN DATE
216709        ,p_primary_ledger_id      IN NUMBER)
216710 RETURN NUMBER IS
216711 l_log_module                   VARCHAR2(240);
216712 l_array_ledgers                xla_accounting_cache_pkg.t_array_ledger_id;
216713 l_temp_result                  BOOLEAN;
216714 l_result                       NUMBER;
216715 BEGIN
216716 --
216717 IF g_log_enabled THEN
216718    l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
216719 END IF;
216720 --
216721 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
216722    trace
216723       (p_msg      => 'BEGIN of CreateJournalEntries'||
216724                      ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
216725       ,p_level    => C_LEVEL_PROCEDURE
216726       ,p_module   => l_log_module);
216727 
216728 END IF;
216729 
216730 --
216731 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
216732 
216733 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
216734    trace
216735       (p_msg      => 'g_diagnostics_mode = '||g_diagnostics_mode
216736       ,p_level    => C_LEVEL_STATEMENT
216737       ,p_module   => l_log_module);
216738 END IF;
216739 --
216740 xla_ae_journal_entry_pkg.SetProductAcctDefinition
216741    (p_product_rule_code      => 'AP_ENC_ACCRUAL'
216742    ,p_product_rule_type_code => 'S'
216743    ,p_product_rule_version   => ''
216744    ,p_product_rule_name      => 'Encumbrance Accrual'
216745    ,p_amb_context_code       => 'DEFAULT'
216746    );
216747 
216748 l_array_ledgers :=
216749    xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
216750       (p_base_ledger_id  => p_base_ledger_id);
216751 
216752 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
216753    l_temp_result :=
216754       XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
216755          (p_application_id           => p_application_id
216756          ,p_base_ledger_id           => p_base_ledger_id
216757          ,p_target_ledger_id         => l_array_ledgers(Idx)
216758          ,p_primary_ledger_id        => p_primary_ledger_id
216759          ,p_pad_start_date           => p_pad_start_date
216760          ,p_pad_end_date             => p_pad_end_date);
216761 
216762    l_temp_result :=
216763       l_temp_result AND
216764       CreateHeadersAndLines
216765          (p_application_id             => p_application_id
216766          ,p_base_ledger_id             => p_base_ledger_id
216767          ,p_target_ledger_id           => l_array_ledgers(Idx)
216768          ,p_pad_start_date             => p_pad_start_date
216769          ,p_pad_end_date               => p_pad_end_date
216770          ,p_primary_ledger_id          => p_primary_ledger_id
216771          );
216772 END LOOP;
216773 
216774 
216775 IF (g_diagnostics_mode = 'Y' AND
216776     C_LEVEL_UNEXPECTED >= g_log_level AND
216777     xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
216778 
216779    xla_accounting_dump_pkg.acctg_event_extract_log(
216780     p_application_id  => p_application_id
216781     ,p_request_id     => xla_environment_pkg.g_Req_Id
216782    );
216783 
216784 END IF;
216785 
216786 CASE l_temp_result
216787   WHEN TRUE THEN l_result := 0;
216788   ELSE l_result := 2;
216789 END CASE;
216790 
216791 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
216792    trace
216793       (p_msg      => 'return value. = '||TO_CHAR(l_result)
216794       ,p_level    => C_LEVEL_PROCEDURE
216795       ,p_module   => l_log_module);
216796    trace
216797       (p_msg      => 'END of CreateJournalEntries '
216798       ,p_level    => C_LEVEL_PROCEDURE
216799       ,p_module   => l_log_module);
216800 END IF;
216801 
216802 RETURN l_result;
216803 EXCEPTION
216804 WHEN xla_exceptions_pkg.application_exception THEN
216805    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
216806    trace
216807       (p_msg      => 'ERROR. = '||sqlerrm
216808       ,p_level    => C_LEVEL_PROCEDURE
216809       ,p_module   => l_log_module);
216810    END IF;
216811    RAISE;
216812 WHEN OTHERS THEN
216813    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
216814    trace
216815       (p_msg      => 'ERROR. = '||sqlerrm
216816       ,p_level    => C_LEVEL_PROCEDURE
216817       ,p_module   => l_log_module);
216818    END IF;
216819    xla_exceptions_pkg.raise_message
216820       (p_location => 'XLA_00200_AAD_S_000006_PKG.CreateJournalEntries');
216821 END CreateJournalEntries;
216822 --
216823 --=============================================================================
216824 --
216825 --
216826 --
216827 --
216828 --
216829 --
216830 --
216831 --
216832 --
216833 --
216834 --
216835 --
216836 --
216837 --
216838 --
216839 --
216840 --
216841 --
216842 --
216843 --
216844 --
216845 --
216846 --=============================================================================
216847 --=============================================================================
216848 --          *********** Initialization routine **********
216849 --=============================================================================
216850 
216851 BEGIN
216852    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
216853    g_log_enabled    := fnd_log.test
216854                           (log_level  => g_log_level
216855                           ,module     => C_DEFAULT_MODULE);
216856 
216857    IF NOT g_log_enabled  THEN
216858       g_log_level := C_LEVEL_LOG_DISABLED;
216859    END IF;
216860 --
216861 END XLA_00200_AAD_S_000006_PKG;
216862 --